Google Dino Advance 1.1 (GBA Winter Jam 2025)
Google Dino Advance » Devlog
I decided to join the GBA Winter Jam last minute. With only around four evenings to work on this it was a mad dash to the finish line. Quite a few ideas got left on the cutting room floor, but I'm happy with what I got out and I hope to put out another update in the future.
Google Dino Advance was my first C / GBA project. It's definitely not particularly pleasing code to look at, it was predominantly translated JavaScript that I hammered out without thinking. I'd feel bad if a new developer looked to it for an example project. To remedy that, effort was put towards cleaning it up (some of it), with some last minute features sprinkled around to dirty it up again.
Refactor(y) things I accomplished
- Converted the project to the latest version of devkitARM
- With a heavy heart I leapt into the unknown. It will make it easier for new developers to build the project... and hopefully I can still build my other projects.
- Converted the project to CMake with gba-toolchain
- I use gba-toolchain for everything now, it's way more sane than a makefile. I recommend it to newcomers.
- It also allows you to use CLion, the best C IDE.
- Refactors
- The mega file has been broken into several digestible pieces.
- Variables de-globalized (mostly).
- Majority of the graphical updates, input, and game logic disentangled from one another.
- Graphical assets processed at build time instead of being committed into code
- More on this later...
- Basic buffer system for drawing sprites.
- As opposed to the weird fixed OAM macro system I had prior.
- Tweaked graphics
- Simplified palettes that were identical after being crunched into 15-bit RGB
- Go into the Chromium source and tell me why Dino's standing position tail outline has a 5-point off-white from everything else.
- Unified everything into sets that the alternate palettes can use.
- Simplified palettes that were identical after being crunched into 15-bit RGB
- Minor bugfixes
- Improved save identification
- Proper license attribution
- New screenshots and a tidier cover image for Itch
What still needs to be done
- Back merge game logic from the latest Chromium
- The original version opted to bake in most of the logic values that were based on screen size.
- I want a fresh cut of the game logic with support for varying screen sizes (for other future features).
- Plus convert it over to fixed point, rather than the mess that still haunts the repo.
- Proper asset handling
- The game still uses the same janky 2D mapped sprite sheet for both BGs and OBJs
- I loved designing this sprite sheet in 2021, it's ridiculous!
- I have a graphical pipeline / animation library thing set up for Isle Advance, but it's far from drag-and-drop right now, so this will have to wait.
- There was an attempt to set up something a little bit cleaner with at least linear sprite mapping, but Grit is already finicky, the grit CMake module is even worse. Not worth the squeeze right now.
- The game still uses the same janky 2D mapped sprite sheet for both BGs and OBJs
New Features
- Local Co-Op
- Hold L+R on the `No Internet` screen for five seconds to launch a Co-Op session.
- Player One controls Dino using the D-Pad
- Player Two controls Mr. Dino using the face buttons.
- Revive system: Get the meat to revive your partner!
- Hold L+R on the `No Internet` screen for five seconds to launch a Co-Op session.
- Alternate Palettes
- Hold down a key combination while the game is booting for alternate colors from the GBC backwards compatibility.
- List available here:
Files
Google-Dino-Advance 1.1.zip 49 kB
49 days ago
Get Google Dino Advance
Google Dino Advance
Dino jumps onto Game Boy Advance!
Status | Released |
Author | frzit |
Tags | Demake, Game Boy, Game Boy Advance, Game Boy ROM, Homebrew, infinite-runner, Retro |
Leave a comment
Log in with itch.io to leave a comment.