GB Studio Changelog

What's new in GB Studio 3.2.1

Feb 29, 2024
  • Fixed:
  • Fix sound effects previews in editor not matching how they sound in game @pau-tomas
  • Fix crash when typing "!S" into dialogue events
  • Fix bug where engine plugins that include an engine.json with no fields causes all default engine settings to be hidden @pau-tomas
  • Fix issue where transferring data over linkcable would cause game to hang

New in GB Studio 3.2.0 (Jan 29, 2024)

  • Added:
  • Add ability to choose timer context in timer events allowing up to four timers to be used per scene @patrickmollohan
  • Add event "If Current Scene Is" to allow conditionally running scripts based on the current scene @patrickmollohan
  • Add ability to set background tile priority for Color games using Priorty tool in colorize section. Priority tiles appear above sprites
  • Add support for UGE v6 to music editor @pau-tomas
  • Subpattern editor added to Instrument Editor @pau-tomas
  • Add warning when trying to reuse background from a logo scene @pau-tomas
  • Add descriptive README files to asset folders in new projects @pau-tomas
  • Add slope brush when drawing collisions
  • Add magic brush when painting tiles and drawing collisions, updates all tiles matching the one clicked @RichardULZ
  • Add support for slopes to platform scenes @Canight @gearfo @Gumpy Function
  • Add ability to make Analogue Pocket builds using CLI tool @SalvatoreTosti
  • Add warning when using engine plugins built on older versions of GB Studio
  • Changed:
  • Updated Simplified Chinese localisation. @wcxu21
  • Updated Polish localisation. @ReptiIe
  • Update to latest GBVM
  • Rename "Obj Palette" in sprite editor to "Monochrome Palette" to make its purpose clearer, now includes palette preview @pau-tomas
  • Allow actor fields that aren't named "actorId" or "otherActorId" to be in custom scripts @patrickmollohan
  • Fix issue where editing a variable's name in sidebar would sometimes cause a different variable to become selected
  • Fixed:
  • Fixed issue where piano roll would scroll vertically when switching patterns @pau-tomas
  • Fix issue where editing a custom script could cause variables to switch back to pass by reference
  • Fix issue where loading a scene containing projectiles or dynamically modified sprites could cause graphical corruption @untoxa
  • Fix issue where script event title would show wrong local variable name for scenes @pau-tomas
  • Fix muting bug with FXH parser @coffeevalenbat
  • Fix issue where Animation State value for projectiles was being ignored
  • Fix issue where falling on to ladder while holding dpad down could sometimes cause player to get stuck
  • Fix bounds check for right screen edge when player isn't 16px wide
  • Fix VM_REPLACE_TILE_XY to allow tiles larger than 255 for logo scene type
  • Performance:
  • Performance improvements in ScriptEditorEventHelper, no longer rerenders all scenes when updating @pau-tomas

New in GB Studio 3.1.0 (Sep 11, 2022)

  • 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.

New in GB Studio 3.0.3 (Jan 25, 2022)

  • Added:
  • Added event to determine if device is running on SGB
  • Added event to determine if device is a GBA
  • Added ability to choose from two keyboard layout options for tracker @pau-tomas
  • Added ability to to set the start playback position in music editor by clicking bar above piano roll @pau-tomas
  • Add engine support for text sounds untoxa
  • Added ability to use values between -32768 and 32767 in variable events @Rebusmind
  • Added ability to clamp to 8-bit while using multiply
  • Added ability to see where automatic Fade In event will appear in Scene "On Init" script with option to disable or change speed
  • Added missing label in Actor Show event @ReyAnthony
  • Add vertical scrolling in last parallax viewport is Speed=1 @um3k
  • Add palette name to tile palette select based on current preview scene @ReyAnthony
  • Added event to manually seed random number generator
  • Changed:
  • Changed if color supported event to return false when game is DMG even if run on color device
  • Changed wording from "Reenable" to "Enable" for toggling events/else @codyjb
  • Update engine to latest hUGEDriver untoxa
  • Changed default .uge template to be blank MOL-IS-MOL
  • Updated to latest GBDK-2020
  • Improved Math Functions clamp to not require branching
  • Updated Polish localisation. @ReptiIe
  • Updated Simplified Chinese localisation. @wcxu21
  • Fixed:
  • Fixed blurry emulator when running web export on desktop Safari @pau-tomas
  • Fix issue where replacing trigger OnLeave script would replace OnEnter @pau-tomas
  • Fix issue replacing math expression variables in custom events @pau-tomas
  • Fix issue where some events when used in init scripts would cause the script to wait until the scene had faded in before continuing
  • Fix music editor: Instrument name isn't editable @pau-tomas
  • Fix music editor: Ticks per row field updates aren't reflected when playing the song @pau-tomas
  • Fix music editor: Wave form changes are not updating for instrument preview @pau-tomas
  • Improved engine GBA detection untoxa
  • Fix scroll jitter seen in top-down scenes untoxa
  • Save executing ctxs when saving game data untoxa
  • Fixed issue where scene may not fade in some cases where scene init script contained conditional events
  • Fix keyboard accessibility for add/remove buttons in form fields @rik-smeets
  • Fixed issue causing Math event values > 128 to wrap as they were treated as signed 8-bit numbers @Rebusmind
  • Fixed clamp when adding/subtracting negative numbers
  • Generate a new save hash when project changes to prevent crashes when loading invalid data untoxa
  • Fix crashes when using too many sprite tiles by using GBDK-2020 sprite hiding function untoxa
  • Fix rendering of garbage when no scene has loaded yet untoxa
  • Fix overlay hide untoxa
  • Fix issue where walking events was incorrectly replacing actorIds with $self$
  • Fix issue with saving/loading patterns from UGE files @pau-tomas
  • Fixed issue where changing player sprite mid scene would write over actor tiles (still an issue using "Replace Default Sprite" with a larger than initial)
  • Fix playing note preview when adding to wave channel @pau-tomas
  • Fixed some fields not being localised correctly (such as the top left Project View Button)
  • Fixed issue where random numbers were being seeded every call preventing them from being very random

New in GB Studio 3.0.2 (Dec 24, 2021)

  • Added:
  • Added in-game crash handler screen untoxa
  • Added support for 16-bit in flag events @Rebusmind
  • Compile files in parallel based on available CPU cores for system
  • Changed:
  • Updated Portuguese localisation. @toxworks
  • Updated Simplified Chinese localisation. @wcxu21
  • Optimised game engine input script checks untoxa
  • Reimplemented GBSPack in pure JS as binary was incorrectly flagged by anti-virus software on Windows
  • Updated French localisation. @Toinane
  • Player bounce event no longer deprecated
  • Don't prevent jumping when overlapping actor in platform scenes
  • Fixed:
  • Fixed some cases where assets would no longer live reload by switching to using chokidar glob syntax rather than regex filters @RichardULZ
  • Allow tilesets with zero length untoxa
  • Fix issue where VM_LOCK was not affecting context switching untoxa
  • Properly detect grouped property fields for events inside custom scripts @pau-tomas
  • Detect variables in math expression events within Custom Scripts @pau-tomas
  • Rebuilt GBDK for Mac to support macOS versions below 10.15 untoxa
  • Hide sprites when overlay is fullscreen untoxa
  • Make sequences of control codes in strings "instant" untoxa
  • Fixed error when saving wave length in music editor @pau-tomas
  • Fixed copy/paste on Ubuntu
  • Fixed codegen for Link Close event @pau-tomas
  • Fixed issue where world view would snap to center of selected scene each time a change was made @tustin2121
  • Fixed accidental movement of scenes/drawing when panning with the middle mouse button @tustin2121

New in GB Studio 3.0.1 (Dec 16, 2021)

  • Added:
  • Improved console errors for gbvm scripts @pau-tomas
  • Improved warning message when no .mod files are found and music engine is set to GBT Player @pau-tomas
  • Additional tracker editor keyboard shortcuts @RichardULZ
  • Added error message if music editor fails to save due to read only permissions
  • Added ability to toggle if input scripts should override default button actions
  • Changed:
  • Updated Polish localisation. @ReptiIe
  • Blank project updated to use hUGEDriver by default
  • Reduced padding on scene info
  • Engine "define" fields now written to state_defines.h file
  • Scene info now highlights actor count in orange if reached (but not over) scene limit
  • Animation state name input now includes pencil button to work closer to variable renaming
  • Fixed:
  • Fixed error when using clamp in math events @pau-tomas
  • Updated 32-bit Windows app to use correct 32-bit GBDK-2020
  • Fixed error when building if any "Actor Set Sprite Sheet" events link to deleted sprites
  • Fix issue when gbvm scripts use .ARG10 and above @RichardULZ
  • Fix issue where music preview would stop working after window loses focus @RichardULZ
  • Fix issue where new template music and font files would be read only by default on Windows
  • Fix issue where migrated emotes and default font would be read only by default on Windows
  • Fix setting fade in / fade out speed
  • Fix for issue migrating projects with references to avatars that no longer exist
  • Fix issue where input scripts wouldn't override default button actions untoxa
  • Fix issue where input scripts could fire while interact scripts were running (VM is locked)
  • Fix issue where game would crash if more than 19 actors are used in a single scene

New in GB Studio 1.2.2 (May 24, 2021)

  • Various bug fixes for release of Dragonborne

New in GB Studio 1.2.1 (Jan 16, 2020)

  • Added:
  • Allow variables to be used in choice and menu events. @pau-tomas
  • Switching scene background will keep current collisions if image hasn't had collisions set already. @RichardULZ
  • Changed:
  • Updated Portuguese localisation. @toxworks
  • Updated Brazilian Portuguese localisation. @junkajii
  • Fixed:
  • Fix bug where color palettes would appear in different shades to provided hex codes when viewed in game
  • Fix bug where event buttons would become stuck in paste mode when switching windows while holding Alt key
  • Fix bug where projects could be made with invalid filenames
  • Fix bug where collisions couldn't be placed if "Show Collisions" setting was off.
  • Fix bug where variable lists sometimes showed old names.
  • Fix bug where game engine would occassionally be corrupted in Window 10 builds @chrismaltby + @RichardULZ
  • Fix bug where overlays would prevent timer scripts from running @RichardULZ
  • Fix bug where opening menu would modify text draw speed. @pau-tomas

New in GB Studio 1.2.0 (Dec 14, 2019)

  • Added:
  • Add OnInit script to each actor.
  • Add preview in dropdowns for scenes, actors and sprite sheets.
  • Add ability to paste events by holding Alt while clicking event buttons.
  • Add language select to view menu.
  • Generate backups of previous version before saving.
  • Sidebar supports two column layout when wide enough.
  • Each actor/trigger/scene given four local variables.
  • Add ability to remap keyboard controls.
  • Add ability to set custom HTML header in web builds.
  • Add custom cursors depending on tool state.
  • Alternating row colors while scripting.
  • Add ability to disable events.
  • Add ability to disable else branch in conditional events.
  • Add ability to use any variable in text (no longer only first 100).
  • Add event to disable/enable collisions per actor.
  • Add Switch event.
  • Add Settings section grouping project settings together and adding settings for custom keyboard controls and custom HTML header.
  • Add support for GameBoy Color palettes. @fydo
  • Add support for GameBoy Color double CPU mode. @pau-tomas @RichardULZ
  • Add menu event. @pau-tomas
  • Add 'Self' to actor selector. @pau-tomas
  • Add custom events functionality. @pau-tomas
  • Add avatars to text dialogue. @pau-tomas
  • Add support for bit flag variables in scripting. @pau-tomas
  • Add Comments in scripting. @ManuGamesDev
  • Add sound effects. @gregtour
  • Add timer events. @gregtour
  • Add Gamepad support @bbbbbr
  • Add events to save and restore actor direction using variables. @ManuGamesDev
  • German localisation. @WAUthethird
  • Spanish localisation. @WAUthethird
  • Norwegian localisation. @thomas-alrek
  • Italian localisation. @marcosecchi
  • Latin American Spanish localisation. @foobraco
  • Polish localisation. @MajkelKorczak
  • Korean localisation. @juni070127
  • Japanese localisation. @cubicstyle
  • Scots localisation. @Cobradabest
  • Changed:
  • Update Windows 32-bit to use GBDK 2.96.
  • Prevent actors from leaving scene edges.
  • Refactor to handle larger project files.
  • Rebuilt event system allowing easier community contributions.
  • Update Windows 64-bit to use GBDK 2.96. @gregtour
  • Updated Brazilian Portuguese localisation. @junkajii
  • Updated Portuguese localisation. @toxworks
  • Improve emulator audio. @RichardULZ
  • Improve keyboard controls in event search. @allie
  • Improve template.mod music file. @RichardULZ
  • Fixed:
  • Fixed MBC1 support.
  • Fix issues flushing sava data on Windows
  • Fix issue where copy / pasting scenes would break actor connections in scripts
  • Fix collisions at bottom edge of screen.
  • Ignore invalid PNG images when loading project.
  • Release held buttons when emulator loses focus.
  • Fix for issue with cursor position moving while editing dialogue @MattTuttle
  • Fix GBTplayer ch4 pan fx @RichardULZ
  • Fix bug when Actor Invoke is used with conditional statement @RichardULZ
  • Fixed issue where multi-frame static actors would animate while moving @RichardULZ
  • CameraMoveTo speed fixes @RichardULZ

New in GB Studio 1.1.0 (May 18, 2019)

  • Added:
  • Support for animating sprites by cycling between frames of animation.
  • Ability to use variables in text by using new variable id placeholders "You have $01$ gold".
  • Events for Saving and Loading your game.
  • Event for attaching scripts to button inputs.
  • Extra actor commands for setting relative position, check facing direction. @thomas-alrek
  • Math commands, random numbers, add, subtract, multiply and divide variables with each other other and much more. @thomas-alrek
  • Events for pushing and popping scenes from a stack allowing nested menus to be created returning back to your initial position when closed. @thomas-alrek
  • Event to invoke a script from another actor. @thomas-alrek
  • Pan around world viewer using Alt + click, middle click or by clicking and dragging in the space between scenes.
  • Ability to control zoom using pinch gestures or Ctrl + Mouse Wheel @thomas-alrek
  • Drag and drop actors and triggers between scenes.
  • Ability to type text directly into Add Event search and have it create a new Display Text module with the text you entered.
  • Event for controlling text open, draw and close animation speeds. @RichardULZ
  • All script events are now collapsable and can be renamed.
  • Dark mode theme selection to Windows and Linux.
  • Ability to select GameBoy cartridge type.
  • Ability to control movement and animation speed of actors.
  • Support for copy and paste for scenes, actors, triggers and scripts.
  • Event groups allowing you to better organise your scripts.
  • Notes fields to project, scenes, actors and triggers. @thomas-alrek
  • Splash page now has a list of recently opened projects.
  • Editor sidebar now resizable. @thomas-alrek
  • Support for 32-bit Windows.
  • Support for localisation of the app (now accepting pull requests for all languages).
  • Chinese localisation. @InchouRyu
  • Brazilian Portuguese localisation @junkajii
  • Portuguese localisation @toxworks
  • Changed
  • Display text event now supports up to 3 lines of text.
  • Warnings when image assets don't follow specifications are now more noticeable in build phase.
  • Fixed:
  • Fixed audio bugs in emulator where sound would pop as emulator opened and closed.
  • Fixed vsync tearing. @RichardULZ
  • Input handling fixes on Windows build.
  • Lots of other bug fixes.