GB Studio v3.1.0
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.1.0]
Added
- Add VM_LOAD_TILESET and VM_OVERLAY_SET_MAP to gbvm @untoxa
- Add VM_ACTOR_MOVE_CANCEL @um3k
- Allow using frames rather than seconds for wait/camera shake/attach timer script events
- Added events to Deactivate & Activate actors, similar to old hide/show but prevents update scripts from running on disabled actors
- Added ability to choose any referenced assets in GBVM script event forcing assets to be included within built project
- Added ability to rename the GBVM symbol used for generated data files, accessible from "View GBVM Symbols" in right sidebar menu + GBVM event references section
- Added syntax highlighting and line numbers to GBVM event code input
- Added event Actor Move Cancel to cancel any scripted movement currently running for a given actor @um3k
- Add sound effects file support reading WAV (.wav), VGM (.vgm, .vgz) and FXHammer (.sav) files from assets/sounds folder
- Add support for setting sound effects priority @untoxa
- Add ability to generate Emulicious debugging files @RichardULZ
- Add tooltips to Song Editor tools @DeerTears
- Added Piano Roll selection tool (also accessible by holding Shift) allowing multiple notes to be dragged at once @pau-tomas
- Added copy paste support for notes in music editor with OpenMPT/hUGETracker compatible clipboard format @pau-tomas
- Added ability to select multiple cells in tracker editor by holding shift while pressing arrow keys @pau-tomas
- Added keyboard shortcut (Space bar) to toggle play/pause in music editor @pau-tomas
- Add Idle event to wait for a single frame using VM_IDLE
- Add "Loop For" and "Loop While" events
- Add ability to pass number values as parameters when calling scripts @pau-tomas
- Add ability to access global variables from within scripts @pau-tomas
- Add ability to set script parameters to be passed by reference or by value (previously was always by reference)
- Add ability to use pixel values for actor and camera movement @Y0UR-U5ERNAME
- Add ability to view & change units used for time and distances inline within number and variable inputs
- Add event "If Actor Distance From Actor" to check if one actor is within a certain range of another @juliusl
- Add event "Start Actor's 'On Update' Script" @patrickmollohan
- Add "Keep Running While Offscreen" option to actor "On Update" scripts
- Add ability to prevent projectiles being destroyed on collision and to prevent projectile animation from looping @untoxa
- Add support for engine plugins, individual C or ASM files placed in
PROJECT_PATH/plugins/PLUGIN_NAME/engine/src/
replacing or adding partial parts of the game engine - Add support for partial engine files in
PROJECT_PATH/assets/engine
missing files will be pulled from the default game engine - Add support for calling C functions directly from GBVM with
VM_CALL_NATIVE
, in conjunction engine plugins allows creation of plugin events which call new native C functions - Add compile time warning if too many unique projectiles are within a scene
- Add effect editor to music editor piano roll @pau-tomas
- Add noise macro preview for music editor @RichardULZ
- Display channel specific instrument names on instrument select dropdown @pau-tomas
- Allow editing effects from tracker editor @RichardULZ
- Allow transposing selected notes in tracker with Ctrl/Ctrl+Shift and Mousewheel or "+" / "-" keys @RichardULZ
- Add sound effects preview from dropdowns @pau-tomas
- Add tooltips to all script event labels (also used to auto generate documentation for new site)
- Add "Music House" to the color sample project with examples of music and sound effects @pau-tomas. Music and sound effects by Tronimal.
- Add new song template for UGE songs, with new default instruments. Song created by Tronimal.
- Add support for extending engine.json from plugins @pau-tomas
Changed
- Updated to latest GBDK-2020
- Updated to latest GBVM
- Save/restore RNG seed when saving/loading a game @untoxa
- Updated Polish localisation. @ReptiIe
- Optimised Switch event codegen to use VM_SWITCH instruction
- Optimised codegen to use a stack frame rather than push/pop
- Improved randomize @untoxa
- Improved gbspack error when data is over bank size limits
- Update hUGEDriver @untoxa
- Hide/show actor now ONLY hides/shows, update scripts & collisions are not affected (existing hide/show events migrated to deactivate/activate for compatibility)
- Updated Simplified Chinese localisation. @wcxu21
- Updated German localisation. @attackemartin
- List of "Variable Uses" now calculated in background thread to reduce pause while reading large projects
- Timer, input and music scripts set from within a custom script no longer allow the script parameters to be used as they were not working, global variables can now be used instead.
- Optimised actors_update() and vm_actor_move_to() to improve CPU usage
- Improve music editor copy/paste with ModPlug compatible clipboard @RichardULZ
Fixed
- Fixed Wait event in scene init scripts to happen after automatic fade in
- Fixed issue where animated camera lock would be off by 8x8px
- Fix vertical shoot em up scene type @um3k
- Fixed display of errors in game engine files while building
- Fix issue where activating an actor wouldn't trigger update script @untoxa
- Fix issue where full magenta characters in font files didn't have zero width
- Fixed typo in Japanese localisation @RYU-N2001
- Updated 32-bit Windows app to use correct 32-bit GBDK-2020 (again) @untoxa
- Fixed issue where relative actor movement on left or top edge of scene would wrap around scene @um3k
- Fix issue where soft reset could lead to UI tiles over scene tiles @untoxa
- Fix issue where undoing from music editor would also undo global project changes @pau-tomas
- Fix compiling noise macros for UGE songs @pau-tomas
- Fix setting music editor preview start position to a different pattern @pau-tomas
- Fix issue where projectiles launched at >224 degrees would be facing in wrong direction @john-lay
- Restore previously playing music when loading game data
- Fix issue where new patterns added to songs in music editor would not be played until song was reloaded @pau-tomas
- Fix an issue where fading out mid-scene would cause game to hang @untoxa
- Fix copying trigger scripts @pau-tomas
- Fix issue where selecting "Wait until finished" on sound effect events could cause broken scripts containing decimal wait values
- Fix selecting properties on "Self" such as position and direction @pau-tomas
- Fix issue where renaming sprite files would lose any attached metadata
- Prevent user from creating projects ending with a period @patrickmollohan
- Fix issue where using multiple identical sound events in a project would store the data in the ROM duplicated once for every sound effect call
- Fix plat_jump_vel maximum value in engine.json @patrickmollohan
- Fix issue where a commented out actor update script would cause slow down while the actor is onscreen
- Fix issues with build caching which was requiring cache to be cleared regularly if variable references were changed
- Fix issue where Drag world mode and Paste event mode could become stuck if using Alt+Tab to switch windows while active
- Fix issue using single "$" and "#" characters in dialogue
- Fix issue when setting actor's position to another actor's position using properties @patrickmollohan
- Fix issue using actor properties from within custom scripts
Removed
- Removed .CURRENT_SCRIPT_BANK for gbvm scripts as results were unreliable
- Removed deprecated dividing ratio and shift clock fields from noise instrument editor @pau-tomas
- Removed loop option on music play event, doesn't work for hUGEDriver and was broken on GBTPlayer. Instead add an empty pattern with an infinite loop (using effect Bxx) to the tracks you want to not loop.