Updates Available

Latest version of SmileBASIC is Ver.3.3.2 and an update is now available for download from Nintendo eShop. For more details about the latest update please see “Updates” section below.

To check how to download the update, click here.

Details of Updates

Bug Fixes in Ver. 3.3.2 (August 10, 2016)

BASIC Interpreter-related

Severity: High

Vulnerability due to checking given parameters found in BGSCREEN instruction
Screen display is corrupted if a GRP file is loaded by LOAD instruction with a strings or an array specified in the second or third arguments then the application stops responding as it goes
In an infinite loop with WHILE or GOTO instruction a LOAD function with an nonexistent file and FALSE parameter specified causes a program unstoppable by pressing the STOP or START button in an error dialog
RINGCOPY instruction may bring SmileBASIC a forced termination if an negative number is set to a “copy destination offset” argument

Severity: Middle

PRGNAME function returns a corrupted file name if a program is loaded with a length of both a project and a file is 14 characters long
MIN or MAX function returns unexpected values if an array with zero elements is specified
CHKFILE function returns incorrect value if any file(s) included in a DLC project which does not exist or not yet purchased are specified
BACKTRACE instruction does not work properly in the DIRECT mode
FILES and LOAD instruction fails if PROJECT instruction points to the SYS folder as a default project

MENU and UI-related

Severity: Middle

Incorrect characters on “á” key top
Incorrect definition of the standard sprite #166/dt>

Compatibility notes until Ver.3.3.2 (As of August 10, 2016)

  • If the newly added instructions have already been defined, duplicate function errors will occur.
  • Previously, when loading a text file, &H0D was converted to &H0A. However, from Ver. 3.3.0, this conversion will no longer be made.
  • Fixed so that the Z-coordinate will also be tracked when setting SPLINK. Due to this change, the display priority for the link source (child) when using SPLINK will change.
  • Up until Ver. 3.1.0, the SQR function was mistakenly also registered as the SQRT function. This was deleted in Ver. 3.2.0.
  • Instruction and function checks are now stricter. If an argument was incorrectly specified, up until Ver. 3.1.0 the argument was ignored, but from Ver. 3.2.0 an error may occur.
  • In the sample game GAME3JUMP, the BG priority has been changed from 0<1<2<3 to 3>2>1>0. Therefore, when creating a program using the GAME3JUMP map data, unexpected behavior may occur.
  • A function was added that gets empty management numbers in the SPSET instruction. Due to the addition of this function, processes that handle sprites (e.g. SPOFS, SPHIDE) will return an error when the SPSET instruction is not passed. When using a sprite, it must first be converted to SPSET.
  • Up until now, there was a bug in which if SPCHR was used during SPHIDE, the sprite’s state would become SPSHOW. The new version has been fixed so that even if SPCHR is used, the sprite’s state will not become SPSHOW (the sprite will not be displayed).
    Therefore, programs in which display is controlled using only a combination of SPHIDE and SPCHR, the sprite’s state will no longer become SPSHOW (the sprite will no longer be displayed).
    Please add SPSHOW after SPCHR to display the program.
  • The Origin X and Y coordinates for sprites with a definition number greater than 2048 that are installed as standard are adjusted to a more general position. The center of the diagram seen from the top becomes the origin and is not limited to the footing of the base axis.
    Therefore, the home coordinate for sprites with a definition number greater than 2048 will change (mainly image types that are viewed from directly above).
    For example, as the origin of images, such as a fighter plane, has changed from the bottom to the middle of the image, the behavior of programs that use rotation may differ to the previous version.
  • Sprites for which the origin position has changed
    1473 Block Parts
    2161-2163 Pickle
    2165-2167 Shovel
    2169-2171 Blinking Hammer
    2177-2179 Slingshot
    2181-2183 Hook
    2185-2187 Small Sword
    2189-2191 Knife
    2193-2195 Super Sword
    2197-2199 Wooden Cane
    2201-2203 Steel Stick
    2205-2207 Super Cane
    2209-2211 Axe
    2212-2215 Shield
    2218-2221 Wooden Bow
    2222-2225 Steel Bow
    2227-2229 Arrow
    2230 Throwing Star
    2237-2239 Frying Pan
    2241-2243 Whisk
    2245-2247 Kitchen Knife
    2249-2251 Wooden Spoon
    2253-2255 Wooden Fork
    2286 Balloon String
    2308-2309 Big Thorn
    2322-2323 Footprint
    2324-2328 Reversi Piece
    2329-2334 Dice
    2335-2337 Rock-Paper-Scissors
    2338-2345 Cursor
    2346-2347 Aim
    2348-2351 Triangle Mark
    2352 Flag
    2353 Warning
    2364-2366 Bat
    2367-2370 Golf Club
    2372-2374 Table-Tennis Racket
    2376-2378 Baseball Glove
    2380-2382 Racket
    2383-2388 Sports Equipment
    2389 Darts
    2392-2393 Bowling
    2395-2410 Car
    2412 Checkered Flag
    2421-2436 Boat
    2437-2452 Frog
    2453-2460 Jellyfish
    2461-2464 Fish
    2465-2472 Spider
    2473-2480 Mouse
    2481-2484 Cockroach
    2485-2488 Bee
    2489-2492 Butterfly
    2494-2499 Musical Note
    2500-2511 Zodiac Sign
    3225-3228 Umpire’s Flag
    3229-3230 Effect
    3233-3242 Speech Balloon
    3243-3270 Option, Shmup Enemy, Spiky Ball, Worm
    3271-3274 Bomb
    3275-3278 Power-Up
    3279-3282 Broken Pieces
    3299-3341 Shmup Player Craft, Enemy Robot
    3341-3415 Shield, Effect, Laser, Bullet, Bubble, Water Droplet, Icicle
    3424-3431 Explosion Effect
    3432-3434 Dragon
    3435-3436 G Boss
    3465-3470 Large Enemy, Submarine
    3476-3479 Stretching Hand
    3480-3494 Hakase, Wanpaku, Kanzaki, Intelli, Dummy
    Shrimp General
    Crab Lord
    3515-3520 Block
Details of previous updates (included in Ver. 3.3.2)