Homebrew New VBA GX fork (2.3.0)

  • Thread starter Thread starter libertyernie
  • Start date Start date
  • Views Views 196,860
  • Replies Replies 406
  • Likes Likes 25
I am LOVING this new release, particularly for the Super Game Boy borders, heck even custom borders! I much prefer libwii's GUI over the not-so-user-friendly Retroarch, so for me this is my new favorite way of playing GB and GBC games (I do have a Super Game Boy too, but the only GB carts I have are Pokémon since I had no idea that all these other great GB games like Kirby and Zelda even existed when I was a kid). I was really close to spending $90 on an Everdrive GB but with this release, it's like there's no point!

I also attached my palettes.xml file with my custom palettes for Kirby's Dream Land and Super Mario Land 2 :)
I had to make Mario's default color white because he shares a lot of palettes with the enemies...
And if you use red you'll end up with EVERY enemy having red eyes, including Mario.
Quite a nightmarish version of SML2 if you ask me. XD

Oh and I've been also creating custom borders too!
I added some I have, if you see some named but with the default border is because I haven't worked on those yet.
How did you get the Kirby's Dream Land palette to work? I tried making my own custom palette for it, but no matter what palette I use for it the bottom status display is completely black (but the rest of the display is fine). In addition to that, when playing Pokémon (Gen I) in regular GB mode (not SGB), the whole screen turns black whenever a dialogue box pops up (such as talking to an NPC), and returns to normal once you're done talking. Yet when I use the exact same palette for Super Mario Land, everything works fine. All of that happens to me with any custom palette, no matter what I try. In fact, the whole "GB Mono Colorization" thing is pretty glitchy in general, though I understand that it's not libertyernie's fault, since that was a feature from 2.2.8 that was never really complete to begin with.
 
How did you get the Kirby's Dream Land palette to work? I tried making my own custom palette for it, but no matter what palette I use for it the bottom status display is completely black (but the rest of the display is fine). In addition to that, when playing Pokémon (Gen I) in regular GB mode (not SGB), the whole screen turns black whenever a dialogue box pops up (such as talking to an NPC), and returns to normal once you're done talking. Yet when I use the exact same palette for Super Mario Land, everything works fine. All of that happens to me with any custom palette, no matter what I try. In fact, the whole "GB Mono Colorization" thing is pretty glitchy in general, though I understand that it's not libertyernie's fault, since that was a feature from 2.2.8 that was never really complete to begin with.

I was having that issue before 2.3.0 actually.
The status display for Kirby's Dream Land sometimes became all black and not visible at all.
I cannot say for Red/Blue since I only play a hacked version of Yellow (Emu edition).
I really don't know why that happened, but from this last two builds I've been able to do custom palettes with no issues.

One thing worth noticing...
I found out that if you try to change a color palette in Kirby's DL, the palette doesn't load up properly in that screen or sometimes it messes up the graphics like turning Kirby black or red, etc.
YOu would have to enter a room or change screen for it to take effect like it should.
Maybe that happens with the Pokemon games too and that might be why somethings disappear.
Try exiting and re-entering the area in-game to see if that helps.
 
I was having that issue before 2.3.0 actually.
The status display for Kirby's Dream Land sometimes became all black and not visible at all.
I cannot say for Red/Blue since I only play a hacked version of Yellow (Emu edition).
I really don't know why that happened, but from this last two builds I've been able to do custom palettes with no issues.

One thing worth noticing...
I found out that if you try to change a color palette in Kirby's DL, the palette doesn't load up properly in that screen or sometimes it messes up the graphics like turning Kirby black or red, etc.
YOu would have to enter a room or change screen for it to take effect like it should.
Maybe that happens with the Pokemon games too and that might be why somethings disappear.
Try exiting and re-entering the area in-game to see if that helps.
Wow, thanks for the fast reply!

No matter what I try, the status bar remains completely black. After trying a different game and going back, now the status bar was yellow while the rest of the screen was normal...wtf?


Here is the palette I'm trying to use. It is identical to the 3DS VC grayscale palette:


<game name="KIRBY DREAM LAND" use="1">
<bkgr c0="0xCECEAD" c1="0xA5A58C" c2="0x6B6B52" c3="0x292919" />
<wind c0="0xCECEAD" c1="0xA5A58C" c2="0x6B6B52" c3="0x292919" />
<obj0 c0="0xCECEAD" c1="0xA5A58C" c2="0x6B6B52" />
<obj1 c0="0xCECEAD" c1="0xA5A58C" c2="0x6B6B52" />
</game>
 
Wow, thanks for the fast reply!

No matter what I try, the status bar remains completely black. After trying a different game and going back, now the status bar was yellow while the rest of the screen was normal...wtf?

Here is the palette I'm trying to use. It is identical to the 3DS VC grayscale palette:

What options do you have enabled?
Those values will only give a gray scale with a black status bar and Kirby somewhat glowy right?
Try out the palette I uploaded and tell me what happens.

Backup yours before you move anything.
Although it is not hard to create it again from scratch.

0xCECEAD:
Red: Value in custom palette editor-> CE
Green: Value in custom palette editor-> CE
Blue: Value in custom palette editor-> AD

In that order to give the desired color.
Quite good to understand how HEX values work with palettes. :P
 
What options do you have enabled?
Those values will only give a gray scale with a black status bar and Kirby somewhat glowy right?
Try out the palette I uploaded and tell me what happens.

Backup yours before you move anything.
Although it is not hard to create it again from scratch.

0xCECEAD:
Red: Value in custom palette editor-> CE
Green: Value in custom palette editor-> CE
Blue: Value in custom palette editor-> AD

In that order to give the desired color.
Quite good to understand how HEX values work with palettes. :P
For some reason your palette works fine, but I like playing GB games in grayscale (unless if they have SGB/Color enhancements). It's weird, if I directly edit the values from your palette to the 3DS VC palette in the XML file, the status bar is still completely black (or sometimes some other random color). Kirby only becomes glowy if the Home Menu button is pressed.

All I would like to do is just use the 3DS VC grayscale palette, since it matches a Game Boy Pocket very closely.

My options are:
Hardware: Auto
Super Game Boy border: On
GB Mono Colorization: Off
Palette: Custom (won't let me choose another one)

Another issue I noticed: When pressing pause in Super Mario Land, the pause text area is all black.

Obviously it's an entire layer that's being rendered as black when using a custom palette. I have a feeling it's because the fourth color is "missing" in obj0 and obj1 in the palette editor.
 
I also attached my palettes.xml file with my custom palettes for Kirby's Dream Land and Super Mario Land 2 :)
I had to make Mario's default color white because he shares a lot of palettes with the enemies...
And if you use red you'll end up with EVERY enemy having red eyes, including Mario.
Quite a nightmarish version of SML2 if you ask me. XD

Oh and I've been also creating custom borders too!
I added some I have, if you see some named but with the default border is because I haven't worked on those yet.


Thank you for this. I replaced the /apps/vbagx/palletes.xml with the one you provided and also the /vbagx/borders as well.
Unfortunately i still get no color in vanilla SML2 and SML1, or any borders show up in those 2 games, even though i see the files in your borders folder you provided. I have the DX of SML1 and it works great so i do not care about vanilla SML1 (though i'd like the border of this game to show up). SML2 though, i do not know what i am not doing correctly. Maybe i have named my SML2 rom incorrectly? How have you named yours?


Btw, i use these emulation settings:
Hardware: Auto
Super Game Boy border: On
GB Mono Colorization: Off (if i set it to on, i get blackscreen for GB, can only hear the sound of the game)
Palette: Custom (won't let me choose another one, i do not know why)
like Chaos Rush just posted above
 
Thank you for this. I replaced the /apps/vbagx/palletes.xml with the one you provided and also the /vbagx/borders as well.
Unfortunately i still get no color in vanilla SML2 and SML1, or any borders show up in those 2 games, even though i see the files in your borders folder you provided. I have the DX of SML1 and it works great so i do not care about vanilla SML1 (though i'd like the border of this game to show up). SML2 though, i do not know what i am not doing correctly. Maybe i have named my SML2 rom incorrectly? How have you named yours?

Btw, i use these emulation settings:
Hardware: Auto
Super Game Boy border: On
GB Mono Colorization: Off (if i set it to on, i get blackscreen for GB, can only hear the sound of the game)
Palette: Custom (won't let me choose another one, i do not know why)
like Chaos Rush just posted above
i have GB Mono Colorization ON, try that out and let me know if the custom palettes work.
Also, I do get some borders to load up, like SML2 and such.
I edited the GB ROM headers to be MARIOLAND2DX and SUPERMARIOLANDDX, so maybe that's it.
Rename the custom borders for that of the original ROm header (MARIO LAND 2 and SUPER MARIO LAND, i don't know if they are all together or with spaces, also I don't know yet how the borders are being called to the emu)
I have them like Super Mario Land DX and Super Mario Land 2 - 6 Golden Coins DX if that helps.
For some reason your palette works fine, but I like playing GB games in grayscale (unless if they have SGB/Color enhancements). It's weird, if I directly edit the values from your palette to the 3DS VC palette in the XML file, the status bar is still completely black (or sometimes some other random color). Kirby only becomes glowy if the Home Menu button is pressed.

All I would like to do is just use the 3DS VC grayscale palette, since it matches a Game Boy Pocket very closely.

My options are:
Hardware: Auto
Super Game Boy border: On
GB Mono Colorization: Off
Palette: Custom (won't let me choose another one)

Another issue I noticed: When pressing pause in Super Mario Land, the pause text area is all black.

Obviously it's an entire layer that's being rendered as black when using a custom palette. I have a feeling it's because the fourth color is "missing" in obj0 and obj1 in the palette editor.
Try editing the XML file to those HEX values I wrote before.
 
i have GB Mono Colorization ON, try that out and let me know if the custom palettes work.
Also, I do get some borders to load up, like SML2 and such.
I edited the GB ROM headers to be MARIOLAND2DX and SUPERMARIOLANDDX, so maybe that's it.
Rename the custom borders for that of the original ROm header (MARIO LAND 2 and SUPER MARIO LAND, i don't know if they are all together or with spaces, also I don't know yet how the borders are being called to the emu)
I have them like Super Mario Land DX and Super Mario Land 2 - 6 Golden Coins DX if that helps.

Try editing the XML file to those HEX values I wrote before.

Whenever i turn GB colorization to On i get a blackscreen where the GB screen would be. I can still see the SGB border and hear the game play and respond to my inputs in the background, but i cannot see anything but black.

Is it cause i game on a CRT with scart RGB (i say this cause maybe it is NTSC signal, i dunno) ?
 
I'm almost done with the Custom Borders for all my games!
Only Mario Deluxe, and both Oracle Zeldas left! :D
Although, there are still some borders not showing up on boot, does anyone know how do I have to name the PNG files?
 
Try editing the XML file to those HEX values I wrote before.
It won't let you, because you can only do it in intervals of 8 relative to whatever the starting value was. Meaning that I can't just edit your palette to my palette, since you can't get to "CE" by subtracting 8 from "FF". And even if you could, I don't think it would make a difference since the palette data would be exactly the same as me simply opening up the XML and manually putting in the palette I want. Can we just agree that Tantric's palette editor is just glitchy?

On a different note, here are some 3DS VC borders cropped to 256x224:
GB Border 256x224.pngGBC Border 256x224.png
 
It won't let you, because you can only do it in intervals of 8 relative to whatever the starting value was. Meaning that I can't just edit your palette to my palette, since you can't get to "CE" by subtracting 8 from "FF". And even if you could, I don't think it would make a difference since the palette data would be exactly the same as me simply opening up the XML and manually putting in the palette I want. Can we just agree that Tantric's palette editor is just glitchy?

On a different note, here are some 3DS VC borders cropped to 256x224:
View attachment 11078View attachment 11079

What about editing it to the next closest value?
By substracting 8 bits from FF and going all the way to CX we get to CF and the other one is C7.
What happens if you try those out?
That's one way, the other one is starting from 00 all the way up to C8 and D0. You could try D0 too but the closest one is CF.

Maybe the limitation of the HEX values is because the Game Boy Color doesn't have that wide of a range to work with.
The maximum number of colors it could use is 56.
If we take into consideration that the maximum value (white) is FF, then we get a 128 decimal value once converted.
It means that using two bits for colors makes the posibility of having 128 colors, but the Gameboy Color hardware only supports 56 out of those 128.

But yeah the palette editor from Tantric is quite glitchy. XD
 
I've tried doing what Chaos Rush said a long time ago and mostly failed, I ended up doing it manually for the Gambatte core of RA. For that emu specifically there is no limit, you just use any RGB value and it works. Same for fceumm with the 64 colors in the NES palette. VBAGX just has a weird way of handling palettes.

On a different note, here are some 3DS VC borders cropped to 256x224:

Out of curiosity since there's no 240p support, why did you use 256x224 and not 512x448? Or is that required by VBAGX?
I previously compiled a folder with most GBA borders but also did a few for GB from raw 3DS VC screenshots.
For RA though there's no actual limit so I just scaled it from x240 to 570x456(bicubic), I used the 456 height instead of 480 to avoid the image getting lost from overscan, but the setup in those 3DS borders require bilinear filtering. I just think it's pointless to use that border if you're going to see a lot less than what the 3DS showed.
 
Out of curiosity since there's no 240p support, why did you use 256x224 and not 512x448? Or is that required by VBAGX?
I previously compiled a folder with most GBA borders but also did a few for GB from raw 3DS VC screenshots.
For RA though there's no actual limit so I just scaled it from x240 to 570x456(bicubic), I used the 456 height instead of 480 to avoid the image getting lost from overscan, but the setup in those 3DS borders require bilinear filtering. I just think it's pointless to use that border if you're going to see a lot less than what the 3DS showed.

VBAGX seems to load 256x224 borders only, if you use any other size it will prompt a window saying it is the wrong size, but it will still load the border.

EDIT:
Fuck custom borders, this is my dream!
2vvwdc3.png


atn03s.png
Looks freaking sexy O.O
 
The only reason 256x224 is the border size is because that's the size of a Super Game Boy border (SGB resolution.) I might add support for any size of border at some point.
I'll look at the save files and color hacks when I get a chance.

The border files should be named after the game ID in the ROM header.
 
  • Like
Reactions: ShadowOne333
The only reason 256x224 is the border size is because that's the size of a Super Game Boy border (SGB resolution.) I might add support for any size of border at some point.
I'll look at the save files and color hacks when I get a chance.

The border files should be named after the game ID in the ROM header.

Thank you for the reply!
I Hex edited some ROM headers so they match the Border, but even though they don't get load up.
I will edit them again to see if that does the trick.

Thanks again for the support!

EDIT:
I am finally done with all my custom borders :)
If anyone wants to use any of my borders, I attached the rar with all of them.
Enjoy!
 

Attachments

@ShadowOne33 - the Auto save file you posted isn't corrupted, but the regular one is. Kind of.

On a PC, the RTC data at the end of the save file is supposed to look something like this (VBA-M adds 4 more bytes on the end because it uses a 64-byte UTC time value):
1D000000 31000000 03000000 57000000
00000000 1D000000 31000000 03000000
57000000 00000000 9C024054

The first 20 bytes and the next 20 bytes are the same; they record a number of seconds, minutes, hours, days, and something else. Notice how the bytes that aren't 0s are all at the beginning - that's because PC processors are little-endian.

A VBA-GX 2.2.8 save looks like this:
0000001D 00000031 00000003 00000057
00000000 0000001D 00000031 00000003
00000057 00000000 5440029C

VBA-GX 2.3.1 tries to figure out what kind it is, and convert it to little-endian if it's not already. But if you load a PC save file in VBA-GX 2.2.8/2.3.0 or vice versa, the game will get confused and think you have 400 million seconds, or something like that. So the seconds/minutes/hours/days value gets corrupted, which is why the clock moves so fast.

If you go into your save file with the clock problem and set those last 44 bytes to all zeroes, that should fix it.
 
  • Like
Reactions: ShadowOne333
@ShadowOne33 - the Auto save file you posted isn't corrupted, but the regular one is. Kind of.

On a PC, the RTC data at the end of the save file is supposed to look something like this (VBA-M adds 4 more bytes on the end because it uses a 64-byte UTC time value):
1D000000 31000000 03000000 57000000
00000000 1D000000 31000000 03000000
57000000 00000000 9C024054

The first 20 bytes and the next 20 bytes are the same; they record a number of seconds, minutes, hours, days, and something else. Notice how the bytes that aren't 0s are all at the beginning - that's because PC processors are little-endian.

A VBA-GX 2.2.8 save looks like this:
0000001D 00000031 00000003 00000057
00000000 0000001D 00000031 00000003
00000057 00000000 5440029C

VBA-GX 2.3.1 tries to figure out what kind it is, and convert it to little-endian if it's not already. But if you load a PC save file in VBA-GX 2.2.8/2.3.0 or vice versa, the game will get confused and think you have 400 million seconds, or something like that. So the seconds/minutes/hours/days value gets corrupted, which is why the clock moves so fast.

If you go into your save file with the clock problem and set those last 44 bytes to all zeroes, that should fix it.
So that is what is causing it...
I also see that all the bytes are swapped in a mirror way. Quite interesting.
I'll do the 00 replacement for those 44 bytes then. Thanks for the help!
 
Nice work on the update however motion controls seem to have stoppped working on Wario Ware Twisted for me after updating.

I have tried both Motion Plus and Vanilla Wiimotes but no avial.

Anyone else have problems??

Later I'll roll it back and see what happens.
 

Site & Scene News

New Hot Discussed User Submitted