Homebrew The Jagoomba Thread

EvilJagaGenius

Well-Known Member
OP
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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
103
Trophies
0
XP
443
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
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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
1,893
Trophies
0
XP
1,348
Country

patters

Well-Known Member
Member
Joined
Jan 28, 2006
Messages
103
Trophies
0
XP
443
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
Developer
Joined
Jan 17, 2013
Messages
10,965
Trophies
1
XP
13,633
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
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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
Developer
Joined
Jan 17, 2013
Messages
10,965
Trophies
1
XP
13,633
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
 

NotMyFakeName

New Member
Newbie
Joined
May 24, 2021
Messages
2
Trophies
0
Age
41
XP
67
Country
United States
Could somebody with an EZ-Flash Omega Definitive Edition test this build for me before I release v0.5? It should have rumble support but I can't actually test it myself.
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
 

Attachments

  • IMG_0953.jpeg
    IMG_0953.jpeg
    1.3 MB · Views: 12
  • IMG_0954.jpeg
    IMG_0954.jpeg
    1.1 MB · Views: 11
  • IMG_0955.jpeg
    IMG_0955.jpeg
    1.2 MB · Views: 10
Last edited by NotMyFakeName,

EvilJagaGenius

Well-Known Member
OP
Newcomer
Joined
May 27, 2020
Messages
85
Trophies
0
XP
238
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

NotMyFakeName

New Member
Newbie
Joined
May 24, 2021
Messages
2
Trophies
0
Age
41
XP
67
Country
United States
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.
Thanks for this, I did some further testing and your right, only gbc games I’d already played with existing saves were affected, I tried others without saves and they do show in grayscale gb mode or with sgb mode if supported just fine, only the gbc games I had already been playing I needed to manually change their settings to “Prefer GBC over SGB” and the setting does retain.
 
Last edited by NotMyFakeName,
  • Like
Reactions: patters

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
10,909
Trophies
3
Location
WA State
Website
ko-fi.com
XP
12,608
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
28
Location
Virginia
XP
11
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.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Skelletonike @ Skelletonike:
    You can get some pretty good combo washing and drying machines for like 350€ nowadays.
    Gift
  • Veho @ Veho:
    They are never as good and thorough as getting them separate but they beat the clothesline so yeah.
    Gift
  • Skelletonike @ Skelletonike:
    got an LG one last month and it was pretty good, was on sale so got it for 400€ (normal price was usually 650). Can't complain
    bout it so far.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I prefer the clothesline in summer
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Good morning
    Gift
  • Veho @ Veho:
    Good morning.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Has Childish Gambino become more mature?
    Gift
  • Veho @ Veho:
    No.
    Gift
  • Veho @ Veho:
    He will never become mature, he will go straight to Senile Gambino.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It sounds good, we might get good music from Senile Gambino that we wouldn't from Straight Gambino
    Gift
  • Veho @ Veho:
    Bought a used Nerf Mega blaster yesterday, good condition, but only got one single foam dart for it. And it was so chewed up, when I tried to fire it today it ripped the tip clean off and spat the thing out in two pieces.
    Gift
  • Veho @ Veho:
    Radical.
    Gift
  • Veho @ Veho:
    I need some mega darts now.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Don't forget cqc is still valid in gun combat
    Gift
  • FAST6191 @ FAST6191:
    Trying to get americans to use a clothes line there Veho?
    Gift
  • FAST6191 @ FAST6191:
    Always seems to be a bizarre and quaint concept whenever I speak to them
    Gift
  • FAST6191 @ FAST6191:
    or they come visit
    Gift
  • FAST6191 @ FAST6191:
    and this is not the northern snow in May types either. Desert living types as well.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I've seen so many american movies with clotheslines
    Gift
  • FAST6191 @ FAST6191:
    any set past about 1986?
    Gift
  • Dark_Phoras @ Dark_Phoras:
    That I don't know
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Here it's common to see drying racks in balconies, even of two modern newly built buildings nearby
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I have a drying machine at home and we seldom use it, even in winter
    Gift
  • Dark_Phoras @ Dark_Phoras:
    So, maybe it's a different habit from the usual american's, as you say
    Gift
  • Dark_Phoras @ Dark_Phoras:
    The cold weather is slowly creeping back, how nice
    Gift
    Dark_Phoras @ Dark_Phoras: The cold weather is slowly creeping back, how nice