Closed vaguerant closed 5 years ago
I just pushed some more changes, the summary basically covers everything
driverlist.h
instead of driverlist_neogeo.h
where it belongedgamelist.txt
since it was still including all games, now it lists the games actually supported by this coredriverlist_neogeo.h
instead of driverlist.h
, because the former is what this core actually builds fromSorry about the whitespace fix garbage commit; Travis-CI failed the build on Wii U for no clear reason, was advised in IRC to make a minor push to try again and the build succeeded without issue.
@vaguerant @twinaphex Just to inform you that since this first Bios change, the Wii port is broken.
By default, all games can't find a correct bios and result in corrupted/missing graphics. Even with the last commits suggested here, only the smaller games starts ok by forcing the bios in rgui options. However, all the large games using vm show a black screen.
The problem is that I've forced unibios for vm games and relies on Bios dipswitch index that may have changed. cf. https://github.com/libretro/fbalpha2012_neogeo/blob/master/src/burner/libretro/libretro.cpp#L620
I know it wasn't the ideal solution in the first place and that it could break the code one day, but I couldn't find a better and simpler approach.
@Wiimpathy If I'm reading that correctly, it forces the BIOS dipswitch to 0x0e
, which before these changes was UniBIOS 3.0, and is now UniBIOS 3.3? What if you built from this PR but made
https://github.com/libretro/fbalpha2012_neogeo/blob/master/src/burner/libretro/libretro.cpp#L627
dipswitch_core_options[dip_idx].values[0].bdi.nSetting = 0x11;
I have no idea what changes to the UniBIOS were made that affect this, but 0x11
corresponds to UniBIOS 3.0, which is what fbalpha2012 was using before my changes. I don't have a Wii build environment set up, would you be able to test if that resolves the issue?
It's still a temporary fix that would break the next time more BIOSes were added, but hopefully it would at least get the core back into working shape on Wii in the meantime. You could also try 0x10
or 0x0f
to see whether UniBIOSes 3.1 or 3.2 are able to work.
Yes, with your last commit and changing the nSetting make it work. And with all UniBIOSes.
To prevent this issue for future updates, perhaps it'd be better to give nSetting the first found UniBIOS:
dipswitch_core_options[dip_idx].values[0].bdi.nSetting = available_uni_bios->NeoSystem;
What's really missing but that's a general problem with retroarch fba is error messages in rgui. I mean, for example, in the case of no found bios it would have been useful.
Ah, so it was just a matter of having UniBIOS 3.3 available. I agree, having Wii VM use the first UniBIOS available rather than requiring a specific version (especially one not nominally supported by FBA versions this old, as users may not have newer versions in their neogeo.zip
) is a great idea.
Last one, I promise. Adding the UniBIOSes threw the indexes off which I didn't correct previously. This meant the emulator was applying the wrong BIOS in some situations, and in theory would have broken trackball support which needs a special BIOS, except for two things: I'm not sure if trackball support is hooked up anyway, and in the process of fixing this I noticed the trackball BIOS's index was already set wrong before I ever added the UniBIOSes--this PR also fixes that and a couple of other similar minor errors with niche hardware BIOSes.
I've tested this build back to front and I'm certain everything is in working shape now. Sincerest apologies for the mess of PRs.