I compiled a build for Win with that fix. The GBC bootloader works fine, but there’s a problem with the GB one if you select GBA mode. The bootloader loads, but the Nintendo logo just repeatedly keeps coming down, corrupting itself differently each time. It works fine with Auto or GB selected.
Another bug I found in Donkey Kong (94). When the bootloader is enabled, you get some garbage screens before the title shows up that shouldn’t be there. And the sound effect for Paula’s “Help! Help!” doesn’t play. Both are fixed as soon as I disable the bootloader.
The issue with gba mode is because the gba gbc bios was never dumped so I moved some opcodes around in the normal gbc one to accommodate setting register b to 0x1 to indicate gba mode.
The gba never used the monochrome gameboy bios so the patch corrupts it.
I will lock to the gbc bios when in gba mode.
The other issue is likely because I set all hardware regs to 0x00 not there original value and it seemed to work,I will look into this.
I wonder if it’s Super Game Boy related somehow. If you’re running on a SGB, the “Help! Help!” changes to a recorded voice effect. Maybe it’s trying to act like it’s playing on a SGB, but since it’s a GB it can’t actually play anything. Probably not :P.
I remember VBA-M had the same problem where the sound effect didn’t play last time I used it for DK94.
Can you please add the option to boot gb roms in gbc mode so we can use the bootrom colour palettes?
Maybe in the future, right now I just want to forget about the bootloader.(I will still fix whats broken but then I need a break)
Thanks for all your hard work and testing, I think I’ll try this out later when the stuff that’s broken have been fixed.
There’s some neat commits waiting to be merged in this PR:
It’s great that things are happening in the GB and GBC front!
When this is merged old savestates will NOT work!(eeprom/sram saves are fine)(This should not happen again, but it is still possible since it is under active development and if fixing a bug requires breaking old savestates that is what must happen)
But here are the new features!
These only apply if you use the bootloader!
Boot gb games in gbc mode, keycode palettes supported. Use gb or gbc bootloader. You now choose your console type gb,gbc,gba.(or auto) Gba mode works using custom gba bootloader from gbc bootloader and an asm patch.
Please test this when merged it will help fix anything wrong with it.
These may seem like bugs but are not: Booting gbc games in gb mode, compatibility error screen. Booting gb games in gbc mode requires the gbc bootloader to be present. Gbc/gb mode and gb savestates are not interchangeable. Nonbootloader modes work same as before accept old savestates are broken.
Can you have it so the bootrom config is stored in the savestate? So when a state is loaded it will use the config used in that save state. If no bootrom info exists in the state then load without a bootrom for compatibility with old states.
No because the savestate struct had to be changed to store the gbc gb mode palette.
Most of the other issues have been resolved though.
It is mostly working and anyone who can compile it I am encouraging to use it to test for bugs.(I have already tested the basics savestate, loadstate, auto mode, using/not using bootloaders.)
Thanks, but could you please upload a compiled core with these changes here for us who don’t have the ability to compile it. I really want to try these changes out thoroughly.
Windows 64 bit build: http://vaporeon.io/crap/gambatte_libretro_pull73_win64.7z
The palettes seem to be wrong in gb mode games.
W10 64-bit - The Bootscreens show!
dance dance
I don’t care what anyone says, a huge piece of the emulation puzzle was just slam-dunked into place. BOOM-SHAKALAKA!! If this was NBA Jam, I’d say you’re on fire!
In regards to that, thankyouthankyouthankyouthankyouthankyou. a million times thank you!
I feel you, I feel you!
It has been merged into the main branch and the only known issue is that old savesates are incompatible.
Please test, have fun and report the bugs if you find any.
The DK94 issue still happens when the bootloader is enabled. I tested every Emulated Hardware option and none of them fix it.
Ok that is still an issue, do any other super gameboy games have bizarre glitches?
You where right it was testing the controller register to see if it is on a super gameboy. (My reg value was 0x0F the correct start value is 0xCF)