Homebrew The Jagoomba Thread

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
A while ago I worked on a fork of the Goomba Color emulator that lets you play GB/C games off of a GBA cartridge, calling it Jagoomba Color. You can find it on Github here: https://github.com/EvilJagaGenius/jagoombacolor
With the aid of some very helpful ROM hackers I managed to get a few games running in the emulator that weren't before, and others have contributed even more fixes. You can check the Github page for more info.

I've held off on creating a thread because I don't like calling undue attention to my amateur ASM and hacking work. However, this is better than having other people's threads get hijacked with bug reports and such. Post bug reports either here or on Github, or if you have ideas on how to fix things, discussion is appreciated. Pull requests doubly so. Lately I've been struggling to find time to work on this, so contributions are very welcome.

Need help with:
- Fixing some games with really jerky scrolling. It's visible on Kirby TnT's title screen, but affects Perfect Dark and Crystalis badly.
- Mid-frame BG palette changing/Hi-color mode. I don't know if it's possible to fix this within Goomba Color's limitations, but I'd like to try. I think it'd take changes to how the emulator renders to fix, Github issue here: https://github.com/EvilJagaGenius/jagoombacolor/issues/20

Latest version: v0.5
https://github.com/EvilJagaGenius/jagoombacolor/releases/tag/v0.5

Finally, many thanks to FluBBa, Dwedit, Minucce, Sterophonick, Nuvie, Radimerry, Therealteamplayer, and everyone else who's contributed to this one way or another.
 
Last edited by EvilJagaGenius,

patters

Well-Known Member
Member
Joined
Jan 28, 2006
Messages
170
Trophies
1
XP
878
Country
I have a question. I recently wrote Python 3 builder scripts for many of the emulators on the GBA, Goomba/Goomba Color/Jagoomba included. I added a feature to allow replacement of the ROM title by the filename, as the compilation is built. I read the specification regarding 11, 15, or 16 byte ROM titles, and inspected the Jagoomba source to find how this was implemented:

Jagoomba:
https://github.com/EvilJagaGenius/j...c2568b812867de854e6cdcd527271/src/main.c#L651

My implementation:
https://github.com/patters-syno/gba...a8631d444ca973dd0db3544/goomba_compile.py#L96

Why is it that Jagoomba (and Goomba Color) interpret Legend of Zelda Link's Awakening DX as having an 11 byte title, when according to the spec it seems it should be a 15 byte one, even if the ROM isn't using those additional bytes by default? Is there some additional case I haven't accounted for?
 
  • Like
Reactions: husky3g

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
I have a question. I recently wrote Python 3 builder scripts for many of the emulators on the GBA, Goomba/Goomba Color/Jagoomba included. I added a feature to allow replacement of the ROM title by the filename, as the compilation is built. I read the specification regarding 11, 15, or 16 byte ROM titles, and inspected the Jagoomba source to find how this was implemented:

Jagoomba:
https://github.com/EvilJagaGenius/j...c2568b812867de854e6cdcd527271/src/main.c#L651

My implementation:
https://github.com/patters-syno/gba...a8631d444ca973dd0db3544/goomba_compile.py#L96

Why is it that Jagoomba (and Goomba Color) interpret Legend of Zelda Link's Awakening DX as having an 11 byte title, when according to the spec it seems it should be a 15 byte one, even if the ROM isn't using those additional bytes by default? Is there some additional case I haven't accounted for?
I looked at LADX's header, and it's ZELDA followed by 6 spaces (0x00). It looks like getcartname() is checking to see if any of the last five chars in the header are 0x00, and if so, blanks out the last 5 chars of the game title. Since the 11th byte in the header is 0x00, it blanks out the last 5 chars no matter what name you give it. Or at least that's my best guess.

On a different topic, if you let Faceball sit after booting it'll play a little demo of the game. So it seems like it can render and run the game just fine, it's just something about pressing Start on the title screen that makes it crash.
 

metroid maniac

An idiot with an opinion
Member
Joined
May 16, 2009
Messages
2,081
Trophies
2
XP
2,619
Country

patters

Well-Known Member
Member
Joined
Jan 28, 2006
Messages
170
Trophies
1
XP
878
Country
I looked at LADX's header, and it's ZELDA followed by 6 spaces (0x00). It looks like getcartname() is checking to see if any of the last five chars in the header are 0x00, and if so, blanks out the last 5 chars of the game title. Since the 11th byte in the header is 0x00, it blanks out the last 5 chars no matter what name you give it. Or at least that's my best guess.
I read that differently. Check byte 16. If it's not a GBC cart, the name is the full 16 bytes. It it's a GBC cart, then if there are any zeros in bytes 11-15 then the name is able to use 15 bytes. If all chars 11-15 are non zero then it's a GAME_ID, which is pruned and the title is 11 chars.
I've solved my question though. The trick with LoZ is that you cannot populate all 15 bytes, because then bytes 11-15 will be interpreted as a GAME_ID by the emulator and will be pruned away, back to 11 bytes. So 14 bytes is effectively the longest that a GBC title can become.
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,177
Trophies
2
XP
33,540
Country
Mexico
Jagoomba already fixed Pokemon Crystal, is this romhack still broken?
Vanilla Crystal was indeed fixed, but this romhack adds some more stuff and breaks on boot.
I *think* Polished Crystal adds an error message on boot telling you the error number and a slight description on what failed, so probably that can help debugging it for Jagoomba
 
  • Like
Reactions: Takokeshi

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
I don't want to promise anything but I'm trying to fix the Wario Land DX hack that came out recently. (I like the thing, makes a nice companion to toruzz's hacks.) There are some pull requests that came in recently that might have fixed Metal Gear Solid, I still need to test them but if all goes well I'd like to push a new release sometime soon.
 

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
I hope this new version fixes the issues with V-Rally and Tomb Raider as well
I believe I know what the issue is for those two, I think they use mid-frame BG palette changes for a sort of hi-color mode that Jagoomba doesn't support yet. I think it's the same issue that plagues Crystalis' and DKC's title screens. Not sure how to fix it though.
 

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
a quick test with pokemon pinball tells me that it indeed rumbles.

EDIT: perfect dark rumbles too, but graphics aren't working correctly. it's a demanding game so expected as much.
Alright, sweet, finally got that building reliably. Shame about Perfect Dark, I didn't know about that one. Quick looks makes me think it's not hi-color issues but the same jerky scrolling that's in Crystalis and Kirby TnT's title screen?

Anyway, v0.5 is ready and you can grab it here: https://github.com/EvilJagaGenius/jagoombacolor/releases/tag/v0.5
Make sure to read the release description!
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,177
Trophies
2
XP
33,540
Country
Mexico
There's a particular Crystal romhack which doesn't seem to work with Goomba as of yet.
The hack in question is Polished Crystal (specifically the latest v3 beta since that's the latest version and one close to a proper stable release):
https://github.com/Rangi42/polishedcrystal/releases/tag/v3.0.0-beta-nightly

Upon trying to load it with the latest Jagoomba v5, the game does get to the title screen, but after pressing a button to get to the game menu screen, I get this image:
goomba.png


According to the main developer of the hack, Rangi42, this could be the reason:
Rangi42 said:
IIRC the main feature Goomba is missing for PC support is DMA copying; PC actually checks some arbitrary bug with reading/writing rSC that happened to be incorrect for VBA and was easy to check, which is what I really wanted to discourage using.

Not sure if it'd be possible to fix this one to make it work but Jagoomba, but I'm leaving this here in case there's any hope on it :D
 

EvilJagaGenius

Well-Known Member
OP
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
I tested a few gbc games on this update v0.5, and they all no longer run by default, they run in gb mode and they all show "this game will only play on game boy color" screen, I can change in settings to run in gbc/sgb mode but have to change setting for each gbc game... or am I overlooking something? thanks
That's odd, that wasn't happening while I was testing. I think it should default to "Prefer GBC over SGB". Out of curiosity, were these games you had existing saves for? The code that saves Game Boy type relies on an unused byte in the save files, maybe it's reading that and switching into GB mode based on that?

If that's the case you probably have to switch to GBC/SGB mode for each affected game, but it should save that setting afterwards.
 
  • Like
Reactions: patters

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,962
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,971
Country
United States
Would it be possible to fully support LSDJ's 128k saves? LSDJ runs a ROM test and an SRAM test at it's first startup, and saves it's initial .SAV right then and there to SRAM, so the next time it boots, it shouldn't run the tests again... but it always does. Fixing this would be a HUGE relief to many people.
 

PTRed1996

New Member
Newbie
Joined
Jul 5, 2022
Messages
1
Trophies
0
Age
30
Location
Virginia
XP
31
Country
United States
Hi so I was wondering if there is a version of this that lets you save without a save battery? I need this version to make Crystal run right on my flash cart as the regular Goomba and even their patch that supports saves without a battery doesn’t cut it.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Hello @realtimesave.