Releases: chrismaltby/gb-studio
GB Studio v4.0.0-beta1
Sneak preview of GB Studio 4! Everything still subject to change, so make sure you keep plenty of backups of your projects.
If you have any issues with your music not sounding the same, there is a migrator tool available at https://chrismaltby.github.io/gbs-uge-migrator/ (backup before using this too!)
[4.0.0-beta1]
Added
- Add ability to launch projectiles at a target actor @patrickmollohan @pau-tomas
- Add angle selector input showing degrees for GBVM angle values @pau-tomas
- Add support for atan2 function in math expressions @pau-tomas
- Add magnitude field to camera shake event @patrickmollohan
- Add checkbox to toggle if new animation should loop when using Set Actor Animation State event @pau-tomas
- Add shortcut to search scenes when in world mode by pressing
/
- Add support from adding sound effects to a project by dragging files into project window (to match how this works for other asset types)
- Add native support for Macs with Apple silicon without needing Rosetta
- Add support for
<<
and>>
operators in math expressions @pau-tomas - Add script debugger pane to World view, when game is run while this is open allows inspecting currently running scripts, setting breakpoints and updating live variable values
- Add 'Color Only' mode. Roughly doubles the amount of tiles available for backgrounds and sprites though game will no longer run on original GB (DMG) hardware
- Add event "Replace Tile At Position" and "Replace Tile From Sequence" to update background tiles, calling "Replace Tile From Sequence" repeatedly will cycle through animation frames
- Add new asset folder "Tilesets" for use in "Replace Tile" events
- Add ability for plugins to define additional scene types by including defined types (e.g.
"sceneTypes": [{"key": "RACING", "label": "Racing 2D"}]
) inengine.json
@pau-tomas - Add ability for
Actor Move Relative
,Actor Set Position Relative
andIf Actor At Position
to use variables as coordinate inputs - Add ability for almost every script event input that supports variables to use advanced values, click the button to the left of the value input to select value types, and combine them with math operators
- Add ability to use variables within Menu and Choice events @pau-tomas
- Add stack preview mode to debugger
- Add ability to set common tilesets between scenes, the common tiles will always be loaded in a consistent order between scenes sharing the same common tileset
- Add ability to set Fade Speed as "Instant" when switching scenes, combine this with use of common tilesets in both scenes to enable seamless scene switching
- Add ability to use variables, advanced values and expressions for coordinates in Change Scene event
- Add ability to "Preview as Monochrome" when using mixed color mode by toggling button at bottom left of World view
- Add ability to provide color PNGs for backgrounds and extract palettes automatically by either clicking "Auto Color" button in brush toolbar or using dropdown on Scene sidebar next to "Background Palettes" label
- Add ability to override tile data for auto colored backgrounds by providing a matching *.mono.png in your assets/backgrounds folder containing a monochrome version of the background. When provided this file will be used for tiles data and the regular image will be used to extract the color palettes (useful for mixed color mode games when auto palettes isn't creating tile data as you'd like automatically)
- Add ability to edit waveforms in music editor using keyboard with ability to copy/paste @pau-tomas
- Add ability to restore scene's default palettes in "Set Background Palettes" (especially useful when using auto palettes)
- Add ability to set filename when creating a new song in music editor
- Add context menus when right clicking on list items, or on scenes/actors/triggers in world view, or tiles on sprite editor view allowing renaming/deleting
- Add ability to multi select scenes by shift click + dragging on world view or shift clicking in scenes list. When multiple scenes are selected they can be moved at the same time
- Add ability to multi select script events by shift clicking the event's header. When multiple events are selected they can be moved, copied, grouped or deleted at the same time
- Add ability for scenes, scripts, palettes and image/music assets to be organised into folders by naming them with path separators (
/
or\
supported) e.g naming a sceneui/menu/Inventory
will place it in a folderui/menu
- Generate
game_globals.h
at compile time allowing access to global variables from C code @pau-tomas - Add support for using random numbers in GBVM RPN instructions @untoxa
- Add
Set Camera Position
event which can be used before scene fade in to instantly move camera to a new location - Add
Script Lock
andScript Unlock
events allowing pausing other scripts and scene updates until the script is completed or unlocked - Add
Build Options
to "Settings" section with option to toggle if "Build Log" should be opened automatically on warnings - Add
Show Navigator
button to World toolbar if navigator is closed - Add ability to rename flags in Variable Flags Add/Clear/Set events @pau-tomas
Changed
- Updated Polish localisation. @ReptiIe
- Updated to latest GBVM
- Updated code generation to reduce access to stack @pau-tomas
- Update Variable Uses sidebar to include any uses within Scripts @pau-tomas
- Improved organisation of "Add Event" menu by grouping related event types
- Updated German localisation. @gonzoMD
- Add Event Menu highlights matching text when searching
- Updated to latest GBDK-2020
- Dragging scenes now snaps to an 8px grid allowing easier alignment of scenes
- Camera speed events updated to use pixels per frame values like actor movement, allowing more precise speed control and speeds faster than 1px per frame
- Build information and warnings moved to "Build Log" section of Debugger
Fixed
- Fix localisation for default names of scenes, actors and triggers, new entities no longer hard coded to use English names
- Fix issue where clicking on a scene would sometimes not cause it to become selected
- Fix issue where dragging World using middle mouse button and releasing button with cursor outside of window would cause scrolling to still be enabled
- Fix issue where double clicking scene search input would cause window to become maximised on macOS
- Fix issue where pasting a "Call Script" event could sometimes incorrectly say script has been modified if project hadn't been saved and reloaded first
- Fix issue where creating a new pattern in music editor would sometimes cause the other patterns in the song to play at a lower octave
- Fix issue where variables in Dialogue and Math inputs could appear above script tabs
- Fix calculation of last parallax layer height in editor input @pau-tomas
- Fix compiler warning when using some unary operators in While loop @pau-tomas
- Fix issue where fonts referenced from plugins were not always being included in compiled game
- Fix issue where navigator split sizes would update every time a project was opened, causing unnecessary changes when project stored in version control system
- Fix issue where some slower camera speeds weren't actually slower
- Fix issue where setting "Show Connections" to "None" would prevent Player start position from being visible/draggable
- Fix issue where note lengths for wave instruments in .uge files were not being stored according to file specification. This may cause some .uge files created with older builds of GB Studio to not sound correct. If you need to fix any .uge files, you can use this migrator tool
- Fix issue where navigator sidebar could sometimes not be wide enough to show Add and Search buttons in section headers
- Fix issue where document wasn't being flagged as modified until first change after migrating a project
Removed
- Removed "Build & Run" section, all previous functionality is now available in "Build Log" section of Debugger
GB Studio v3.2.1
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.2.1]
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
GB Studio v3.2.0
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.2.0]
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
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.
GB Studio v3.0.3
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.0.3]
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
GB Studio v3.0.2
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.0.2]
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
GB Studio v3.0.1
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.0.1]
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
GB Studio v3.0.0
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[3.0.0]
- Moved to new GBVM based game engine (big thanks to untoxa)
- Added sprite editor with support for large sprites and multiple animation states
- Added ability to define idle animations, jump and climb animations for platform scenes and hover animations for point and click scenes.
- Added hUGEDriver music support
- Added music editor for .uge files (thank you to pau-tomas + Daid and Superdisk for the inspiration and support)
- Added parallax background support
- Added math expression events to simplify performing calculations
- Added support for multiple saves slots
- Added ability to create .pocket files for use on Analogue Pocket
- Allow sprites and backgrounds to share vram, lets you use more sprite tiles on backgrounds with fewer tiles
- Increased the number of background palettes available per scene to 8
- Added ability to set 8 sprite palettes per scene, sprites can choose which palette to use per 8px x 16px tile
- Allow cancelling a build in progress
- Add support for Super GB border images
- Add ability to store 3 save slots
- Add ability to fire script when leaving a trigger
- Added ability to use additional custom emotes by adding images to assets/emotes.
- Updated “Add Event” menu to group events and allow setting favourites.
- Moved emulator to use binjgb
GB Studio v2.0.0-beta5
Snapshot of the latest 2.0.0 beta
GB Studio v1.2.2
GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.
[1.2.2]
Fixed
- Various bug fixes for release of Dragonborne