#gbadev pro tip: if there's a magic switch you can flip to make your game run better with literally no downsides, you should flip it, dummy
(I'm talking about the game pak prefetch buffer which I accidentally left off for the entirety of development until today lmao)
Another fun #gbadev problem, this time tripping up gpSP (very optimized GBA emulator) with unreachable code.
Some code that never gets called (but was still present in the ROM) had a bug where it would attempt to call an ARM routine as Thumb code.
gpSP discovered this ARM routine via the buggy code path and performed dynamic recompilation on it as if it were Thumb, producing nonsensical native code, which it then cached indefinitely.
So any time our game called the ARM routine, gpSP would be like "oh yeah I've seen this before", and jump to the nonsense code, crashing the emulator!
fun #gbadev thing I learned this week:
if you disable DMA at the exact same moment that it internally starts (within a few CPU cycles), the whole GBA will lock up.
So, say you're using HBlank DMA to achieve one of those fancy scanline parallax effects. When cleaning up the scene you want to stop the effect, so you cancel the DMA right away in your main game code.
Bad news! You've now introduced a 1 in 400 chance that the game will crash any time the player dies, goes through a door, etc. Only on hardware, not on emulators! Even worse, in some cases (from what I can tell) it will trash _all_ the memory, obliterating their save file!
The solution is simple: just make sure to only clear DMA when you're certain DMA is not about to trigger (e.g. at the start of your VBlank handler). But woww I can't believe it's taken all these years for me to learn about this!
Been adding bonus story modes to Cool Herders - you can finally play as any character and get (minor) storyline. For a shortened story that just reuses graphics, it takes a lot of work (a couple hours) to format the text and test it. But I only have three left to go.
The hardest one I just finished, Chrys the sheep. Since she was a secret character on the DS, I meant her for multiplayer and gave her a silly special. I needed to add a couple of exceptions and a proper powered up special for her to get through the GBA version (since it's not multiplayer), but that's all working now.
So many little tweaks and twiddles and cleanups and enhancements, it's starting to feel like a game. Just 7 todos left (one I caused today). #retrodev #gba #gbadev
Inky and the Alien Aquarium is a cute Game Boy Advance puzzle game with 9 days left to back on Kickstarter. Check it out!
Back to work on Cool Herders GBA, we're getting into the polish areas. Tonight I got the end credits sequence working. Some parts were harder than the DS (two screens to one, no text overlay, lower res), some much easier (no need to load sprites a bit at a time to avoid animation hiccups - they're all in ROM ;) ). #gba #gbadev #retrodev
my fedi break wasn't all that successful but I'm back to say HEY check out inky, it's made from scratch for the GBA by amazing people and deserves all the success! https://www.kickstarter.com/projects/pocketpulp/inky-and-the-alien-aquarium-new-gba-homebrew-puzzle-game #gba #gbadev
so, say that I wanted to use the output of a gb/gba link cable to send a CV clock signal. I believe the GB link cable can output +5V and the GBA 3.5V? Would this be enough for a clock signal to be interpreted correctly?
Bringing some of the new GBA renderer optimizations to uxngba :uxn:
I'm specially happy with the new way I'm doing blending modes, removing per-nibble for loops in favor of some bit wrangling wizardry to remove these loops.
2.9x speedup for 2bpp sprites (chr) and 2.55x for 1bpp (icn).
Still have some unmerged changes with an updated uxn core, since I have that on a separate branch where I was doing oquonie work, but will be there soon.
Introducing STEPPER, a 16-bit sequencer for the GBA.
Available now on itch:
https://badd10de.itch.io/stepper-gba
Source code:
https://git.badd10de.dev/stepper/
#gbadev #finishit #musicproduction #musodon
I unearthed my GameBoy Advance SP, and discovered it still had a flash cart in it. I booted it up, and to my delight it still had the homebrew Mega Man game I had been working on WAY back in 2005.
Sadly, I don’t think I have the code anymore. I need to find a way to extract the ROM from this cart though…
#240pTestSuite is a #homebrew tool for testing compatibility of an #upscaler with #RetroGames and adjusting a TV's colors and geometry. The ports to #NES, #GameBoy, and #GBA have been updated this week. Highlights of v0.23:
- Health warning for tests that flash
- Backlight zone test has movement speed control for measuring afterglow time
- MDFourier plays sync tone when ready
- [NES] Input test (plug in controllers and see if they work)
- [NES] Monoscope pattern by Keith Raney (khmr33)
- [NES] MMC1 and MMC3 builds of the Suite and stand-alone ROMs of MDFourier
- [GB] Super Game Boy sound test
- [GB] Test #SurroundSound decoder
- [GBA] Parallax scroll in Hill zone and Shadow sprite isn't glitchy anymore
- [GB, GBA] Shadow sprite: Add Donna background by Jose Salot
ROM and source code: https://github.com/pinobatch/240p-test-mini/releases
#NESdev #GBdev #GBAdev #homebrew #indiedev #ScreenshotSaturday
#240ptestsuite #homebrew #upscaler #retrogames #nes #gameboy #gba #surroundsound #nesdev #gbdev #gbadev #indiedev #ScreenshotSaturday
Added a small stage selection menu to my #GameBoyAdvance game ✨
Progressing to a full release soon!
#gameboyadvance #gamedev #gbadev
piuGBA, a Pump It Up rhythm game port/emulator for Gameboy Advance by rodri042 has received a wireless adapter update (with a bunch of bugfixes)! See the wireless co-op gameplay in action on YouTube — https://www.youtube.com/watch?v=Vnj-kcS3yu4
Visit the project's Github page for the latest release and more info — https://github.com/rodri042/piugba
These feel like small goals but I'm pretty sure they will end up being big lol. I've only made game jams, so actually approaching a project that I can spend more time on is uh.....
(it's a farm game, because of course it's a farm game)
Also, the Homebrew Hub (https://hh.gbdev.io/games/gba) has been recently updated with entries for the 2004Mbit and GBAX 2003 coding events! Some of the compo ROMs are still missing, so feel free to contribute these or any other cool missing entries if you have any via project's Github page — https://github.com/gbadev-org/games
#CommunityShowcase via @NotImplementedLife
"Finally achieved dynamic tile streaming, and it requires only two lines of code to set everything up!
I'm not exaggerating when I say that I waited 6 years for this to happen, literally I'm crying :blobcatFine:"
Pick your class and see how fast you can escape a dungeon in Dungeon Master, a new hombrew roguelike for the GBA by Soskar and Maksasj!
Get the ROM at https://soskar.itch.io/dungeon-master or play online on Homebrew Hub at https://hh.gbdev.io/game/dungeon-master
Inky and the Alien Aquarium is an upcoming block pushing puzzle game for the #GameboyAdvance created by one of the #GBAJam22 sponsors, Pocket Pulp! (https://pulp.biz, @velipso)
Some of its features are:
— 50 puzzles of evolving difficulty
— custom game engine, art and music
— both digital and limited physical editions available for purchase
You can learn more about the game and its upcoming Kickstarter campaign, as well as sign up to be a playtester at https://forms.pulp.biz/inky-and-the-alien-aquarium-a-new-homebrew-for-the-game-boy-advance
#gameboyadvance #gbajam22 #gbadev
The #gbadev experience is finding some UI code you wrote 3 years ago is wasting 1KB of precious Internal Work RAM that that you could be using to speed up your hottest routines instead. :blobcatSmileSweat: