barbudreadmon / fbalpha-backup-dontuse-ty

Deprecated port of Final Burn Alpha to Libretro (v0.2.97.43).
61 stars 43 forks source link

Ironclad (Neo Geo) - Black screen #66

Closed Oggom closed 8 years ago

Oggom commented 8 years ago

Mentioned by raptura658 from the forums, Ironclad just shows a black screen.

Strangely enough, when messing around with the settings and restarting the game different things started to happen, like Retroarch crashing, the game not booting at all and showing the game for a split second.

The same ROM works fine in standalone. Console just outputs this http://pastebin.com/WWfkS8j1

On an unrelated note, I've noticed the core can load Universe BIOS ver. 3.2 despite it not being added to libretro.cpp. Magic!

barbudreadmon commented 8 years ago

Same issue with v0.2.97.37 ?

Oggom commented 8 years ago

Yes

AkimanBengus commented 8 years ago

I tried to fix the problem but this out of my competence. I did a test by changing the driver in d_neogeo.cpp the neogeousaDIPInfo with neogeoDIPInfo like this:

image

and with this change, there is no more error message, the sound and the input work but still no picture.

Maybe this can help another people to solve the issue.

barbudreadmon commented 8 years ago

For whatever reason, "neogeousaDIPInfo" seems to be no issue on other flavors of fba libretro.

@AkimanBengus : That's only one part of this issue, but could this part be related to your changes on DIPSwitch handling ?

I'll ask upstream if they have any idea about the black screen issue we get on all fba libretro flavors.

barbudreadmon commented 8 years ago

Ok, answer from upstream : "It's a Neogeo Bios issue the game will only work if the Bios are set to USA or Japan anything else and it wont work correctly"

So i tried changing neogeousaDIPInfo to neogeoDIPInfo in d_neogeo.cpp to get rid of the error, then i chose DIPSWITCH mode and a usa bios in core option, game is now working with picture.

I assume the purpose of neogeousaDIPInfo (and other custom DIPInfo in d_neogeo.cpp) is to preset some dipswitch, including a usa bios in this case. @AkimanBengus : is there a way to get this feature to work ?

AkimanBengus commented 8 years ago

I tried a few hours ago but I hadn't time to answer, sorry.

I had the same conclusion, some neogeo games like ironclad have 2 dip switch descriptors: neodefaultDIPList // Fake DIPs {0x02, 0xFF, 0xFF, 0x80, NULL}, => Asia Bios neousadefaultDIPList. // Fake DIPs {0x02, 0xFF, 0xFF, 0x83, NULL}, => Usa Bios

We can see that the default value for the Bios Dipswitch is in both descriptors and the usa bios is specified in the second with the 0x83.

I think the Dipswitch handling works correctly and without it the game wouldn't work: I tried the 0.2.97.35 version of fba and the game didn't boot because only the Asia Bios was loaded.

The workaround to play the game is to set the DIPSWITCH mode and let the Dipswitch Bios select the good default value. There is no need to change the d_neogeo.cpp.

Now I will tried to fix this by detecting this special case or by creating a list of theses games for which I will remove the NeoGeo Mode and rely on the Dipswitch Bios

AkimanBengus commented 8 years ago

I fixed the Ironclad issue :-)

Is there somebody who can inform the upstream that there is a small bug for NeoGeo Demos (Spiderman...) in the d_neogeo.cpp => cf. the second commit from #72

Thanks in advance

Oggom commented 8 years ago

Thank you for the fix :+1:

Is there somebody who can inform the upstream that there is a small bug for NeoGeo Demos

Looks like @barbudreadmon took care of that http://neosource.1emulation.com/forums/index.php?topic=2693.75