finalburnneo / FBNeo

FinalBurn Neo - We are Team FBNeo.
http://neo-source.com
Other
944 stars 369 forks source link

Retroarch Switch Core - Arkanoid Returns crash on startup #1188

Closed melterx12 closed 2 years ago

melterx12 commented 2 years ago

Per title, Arkanoid Returns crashes Retroarch on starting the game. I tested the same rom on Retroarch FBNeo core on my PC as well as the Retroarch Switch FBAlpha core and both of those methods work fine.

(I am using title redirection, not the applet)

Can provide additional info as needed.

barbudreadmon commented 2 years ago

(I am using title redirection, not the applet)

I don't know what that means

Can provide additional info as needed.

Please provide logs. Does it display anything before starting ? Other Taito F3 games have the same issue ?

melterx12 commented 2 years ago

Title redirection means I am launching retroarch the proper way on the Switch with full RAM access, just in case anyone is wondering.

Nothing is displayed at all, just a black screen before crash. Checked some other Taito F3 games looks like they are all crashing (Tested Land Maker and Puzzle Bobble 4, same issue, very similar log output as below)

Log Below (Debug Verbosity): [INFO] RetroArch 1.11.0 (Git 9586d67) [INFO] === Build ======================================= [INFO] Capabilities: [INFO] Built: Sep 30 2022 [INFO] Version: 1.11.0 [INFO] Git: 9586d67 [INFO] ================================================= [INFO] [Input]: Found input driver: "switch".

[INFO] Special game type: CBS ColecoVision Ident: cv ID: 1 Content: [INFO] Rom (required) [INFO] Special game type: Fairchild ChannelF Ident: chf ID: 15 Content: [INFO] Rom (required) [INFO] Special game type: MSX 1 Ident: msx ID: 4 Content: [INFO] Rom (required) [INFO] Special game type: Nec PC-Engine Ident: pce ID: 5 Content: [INFO] Rom (required) [INFO] Special game type: Nec SuperGrafX Ident: sgx ID: 7 Content: [INFO] Rom (required) [INFO] Special game type: Nec TurboGrafx-16 Ident: tg16 ID: 9 Content: [INFO] Rom (required) [INFO] Special game type: Nintendo Entertainment System Ident: nes ID: 11 Content: [INFO] Rom (required) [INFO] Special game type: Nintendo Family Disk System Ident: fds ID: 12 Content: [INFO] Rom (required) [INFO] Special game type: Sega GameGear Ident: gg ID: 2 Content: [INFO] Rom (required) [INFO] Special game type: Sega Master System Ident: sms ID: 8 Content: [INFO] Rom (required) [INFO] Special game type: Sega Megadrive Ident: md ID: 3 Content: [INFO] Rom (required) [INFO] Special game type: Sega SG-1000 Ident: sg1k ID: 6 Content: [INFO] Rom (required) [INFO] Special game type: SNK Neo Geo Pocket Ident: ngp ID: 14 Content: [INFO] Rom (required) [INFO] Special game type: ZX Spectrum Ident: spec ID: 10 Content: [INFO] Rom (required) [INFO] Special game type: Neogeo CD Ident: neocd ID: 13 Content: [INFO] Iso (required) [INFO] [Overrides]: Redirecting save file to "/retroarch/cores/savefiles/arkretrn.srm". [INFO] [Overrides]: Redirecting save state to "/retroarch/cores/savestates/arkretrn.state".

[INFO] [Content]: Content loading skipped. Implementation will load it on its own.

[libretro INFO] Setting save dir to /retroarch/cores/savefiles [INFO] [Environ]: SYSTEM_DIRECTORY: "/retroarch/cores/system". [libretro INFO] Setting system dir to /retroarch/cores/system [libretro DEBUG] [FBNeo] nSwitchCode 0x00 : P1 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x01 : P1 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x02 : P1 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x03 : P1 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x04 : P1 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x05 : P1 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x06 : P1 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x07 : P1 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x08 : P1 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x09 : P1 Button 4 [libretro DEBUG] [FBNeo] nAxisNum 0x01 : P1 Analog Dial [libretro DEBUG] [FBNeo] nSwitchCode 0x0A : P2 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x0B : P2 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x0C : P2 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x0D : P2 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x0E : P2 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x0F : P2 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x10 : P2 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x11 : P2 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x12 : P2 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x13 : P2 Button 4 [libretro DEBUG] [FBNeo] nAxisNum 0x02 : P2 Analog Dial [libretro DEBUG] [FBNeo] nSwitchCode 0x14 : P3 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x15 : P3 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x16 : P3 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x17 : P3 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x18 : P3 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x19 : P3 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x1A : P3 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x1B : P3 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x1C : P3 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x1D : P3 Button 4 [libretro DEBUG] [FBNeo] nSwitchCode 0x1E : P4 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x1F : P4 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x20 : P4 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x21 : P4 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x22 : P4 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x23 : P4 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x24 : P4 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x25 : P4 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x26 : P4 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x27 : P4 Button 4

[INFO] Controller port: 1 [INFO] Classic (ID: 5) [INFO] Modern (ID: 517) [INFO] Mouse (ball only) (ID: 773) [INFO] Mouse (full) (ID: 514) [INFO] Pointer (ID: 6) [INFO] Lightgun (ID: 4) [INFO] Controller port: 2 [INFO] Classic (ID: 5) [INFO] Modern (ID: 517) [INFO] Mouse (ball only) (ID: 773) [INFO] Mouse (full) (ID: 514) [INFO] Pointer (ID: 6) [INFO] Lightgun (ID: 4) [libretro INFO] Initialize DIP switches.

[INFO] [Environ]: GET_VARIABLE: fbneo-cpu-speed-adjust = "100%" [INFO] [Environ]: GET_VARIABLE: fbneo-allow-depth-32 = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-vertical-mode = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-force-60hz = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-frameskip-type = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-frameskip-manual-threshold = "33" [INFO] [Environ]: GET_VARIABLE: fbneo-fixed-frameskip = "0" [INFO] [Environ]: GET_VARIABLE: fbneo-diagnostic-input = "Hold Start" [INFO] [Environ]: GET_VARIABLE: fbneo-hiscores = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-allow-patched-romsets = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-samplerate = "48000" [INFO] [Environ]: GET_VARIABLE: fbneo-sample-interpolation = "4-point 3rd order" [INFO] [Environ]: GET_VARIABLE: fbneo-fm-interpolation = "4-point 3rd order" [INFO] [Environ]: GET_VARIABLE: fbneo-lowpass-filter = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-analog-speed = "100%" [INFO] [Environ]: GET_VARIABLE: fbneo-lightgun-crosshair-emulation = "hide with lightgun device" [libretro INFO] [FBNeo] Searching all possible locations for romset arkretrn [libretro INFO] [FBNeo] Romset found at /roms/arkretrn [libretro INFO] [FBNeo] No romset found at /retroarch/cores/system/fbneo/arkretrn [libretro INFO] [FBNeo] No romset found at /retroarch/cores/system/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0xb50cfb92 and name e36-11.20 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0xc940dba1 and name e36-10.19 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0xf16985e0 and name e36-09.18 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x4467ff37 and name e36-15.17 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x1ea8558b and name e36-03.12 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x694eda31 and name e36-02.8 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x54b9b2cd and name e36-01.4 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x266bf1c1 and name e36-07.47 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x110ab729 and name e36-06.45 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0xdb18bce2 and name e36-05.43 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x3bae39be and name e36-12.32 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x94448e82 and name e36-13.33 from archive /roms/arkretrn [libretro INFO] [FBNeo] Using ROM with known crc 0x2250959b and name e36-04.38 from archive /roms/arkretrn [libretro INFO] [FBNeo] No missing files, proceeding [libretro INFO] [FBNeo] Samplerate set to 48000 [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-arkretrn-MusicTempo(must_restart!) = "Normal / Fast"

[libretro INFO] [FBNeo] Applied dipswitches from core options [libretro DEBUG] Cheat cpu-register INIT. [libretro DEBUG] CPU-registry: 68k cpu #0 ... [libretro DEBUG] CPU-registry: 68k cpu #1 ...

barbudreadmon commented 2 years ago

From where it's crashing, i can only think there is some problem with those 2 lines on switch :

https://github.com/finalburnneo/FBNeo/blob/35ec4af081e816cbf3e8c362a3fe870f73bd0a8a/src/burn/drv/taito/d_taitof3.cpp#L1304-L1305

For now i commented the second one as a test fix on the libretro port (it's for debugging and not required for emulation, but maybe there is something illegal about it on switch), let me know if the issue disappears after updating your core, then we'll try to figure out the exact reason for the crash.

melterx12 commented 2 years ago

yep that fixed it - all the games are working now thanks!👍

should I close this issue ?

barbudreadmon commented 2 years ago

Nope, i'd like to figure out what is wrong exactly with this line so i'll ask you for further testing soon if you don't mind.

melterx12 commented 2 years ago

sure no problem

barbudreadmon commented 2 years ago

I pushed another test fix, let me know the results after it's available from the buildbot (maybe backup your current core for safety)

melterx12 commented 2 years ago

is it still building? tried updating cores just now through the online updater but it says no update was found

barbudreadmon commented 2 years ago

There is some time lag before new builds become available from the online updater, try again in 1-2 hours

melterx12 commented 2 years ago

got the updated core, all the games are still working 👍

melterx12 commented 2 years ago

noticed another two games are crashing in a similar way: Mushihimesama and Mushihimesama Futari

Log: [INFO] RetroArch 1.11.1 (Git 389ef31) [INFO] === Build ======================================= [INFO] Capabilities: [INFO] Built: Oct 4 2022 [INFO] Version: 1.11.1 [INFO] Git: 389ef31 [INFO] ================================================= [INFO] [Input]: Found input driver: "switch".

[INFO] Special game type: CBS ColecoVision Ident: cv ID: 1 Content: [INFO] Rom (required) [INFO] Special game type: Fairchild ChannelF Ident: chf ID: 15 Content: [INFO] Rom (required) [INFO] Special game type: MSX 1 Ident: msx ID: 4 Content: [INFO] Rom (required) [INFO] Special game type: Nec PC-Engine Ident: pce ID: 5 Content: [INFO] Rom (required) [INFO] Special game type: Nec SuperGrafX Ident: sgx ID: 7 Content: [INFO] Rom (required) [INFO] Special game type: Nec TurboGrafx-16 Ident: tg16 ID: 9 Content: [INFO] Rom (required) [INFO] Special game type: Nintendo Entertainment System Ident: nes ID: 11 Content: [INFO] Rom (required) [INFO] Special game type: Nintendo Family Disk System Ident: fds ID: 12 Content: [INFO] Rom (required) [INFO] Special game type: Sega GameGear Ident: gg ID: 2 Content: [INFO] Rom (required) [INFO] Special game type: Sega Master System Ident: sms ID: 8 Content: [INFO] Rom (required) [INFO] Special game type: Sega Megadrive Ident: md ID: 3 Content: [INFO] Rom (required) [INFO] Special game type: Sega SG-1000 Ident: sg1k ID: 6 Content: [INFO] Rom (required) [INFO] Special game type: SNK Neo Geo Pocket Ident: ngp ID: 14 Content: [INFO] Rom (required) [INFO] Special game type: ZX Spectrum Ident: spec ID: 10 Content: [INFO] Rom (required) [INFO] Special game type: Neogeo CD Ident: neocd ID: 13 Content: [INFO] Iso (required) [INFO] [Overrides]: Redirecting save file to "/retroarch/cores/savefiles/mushisam.srm". [INFO] [Overrides]: Redirecting save state to "/retroarch/cores/savestates/mushisam.state".

[INFO] [Content]: Content loading skipped. Implementation will load it on its own.

[libretro INFO] Setting save dir to /retroarch/cores/savefiles [INFO] [Environ]: SYSTEM_DIRECTORY: "/retroarch/cores/system". [libretro INFO] Setting system dir to /retroarch/cores/system [libretro INFO] DIP switches offset: 24. [libretro DEBUG] [FBNeo] nSwitchCode 0x00 : P1 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x01 : P1 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x02 : P1 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x03 : P1 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x04 : P1 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x05 : P1 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x06 : P1 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x07 : P1 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x08 : P1 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x09 : P1 Button 4 [libretro DEBUG] [FBNeo] nSwitchCode 0x0A : P2 Coin [libretro DEBUG] [FBNeo] nSwitchCode 0x0B : P2 Start [libretro DEBUG] [FBNeo] nSwitchCode 0x0C : P2 Up [libretro DEBUG] [FBNeo] nSwitchCode 0x0D : P2 Down [libretro DEBUG] [FBNeo] nSwitchCode 0x0E : P2 Left [libretro DEBUG] [FBNeo] nSwitchCode 0x0F : P2 Right [libretro DEBUG] [FBNeo] nSwitchCode 0x10 : P2 Button 1 [libretro DEBUG] [FBNeo] nSwitchCode 0x11 : P2 Button 2 [libretro DEBUG] [FBNeo] nSwitchCode 0x12 : P2 Button 3 [libretro DEBUG] [FBNeo] nSwitchCode 0x13 : P2 Button 4

[INFO] Controller port: 1 [INFO] Classic (ID: 5) [INFO] Modern (ID: 517) [INFO] Mouse (ball only) (ID: 773) [INFO] Mouse (full) (ID: 514) [INFO] Pointer (ID: 6) [INFO] Lightgun (ID: 4) [INFO] Controller port: 2 [INFO] Classic (ID: 5) [INFO] Modern (ID: 517) [INFO] Mouse (ball only) (ID: 773) [INFO] Mouse (full) (ID: 514) [INFO] Pointer (ID: 6) [INFO] Lightgun (ID: 4) [libretro INFO] Initialize DIP switches.

[INFO] [Environ]: GET_VARIABLE: fbneo-cpu-speed-adjust = "100%" [INFO] [Environ]: GET_VARIABLE: fbneo-allow-depth-32 = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-vertical-mode = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-force-60hz = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-frameskip-type = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-frameskip-manual-threshold = "33" [INFO] [Environ]: GET_VARIABLE: fbneo-fixed-frameskip = "0" [INFO] [Environ]: GET_VARIABLE: fbneo-diagnostic-input = "Hold Start" [INFO] [Environ]: GET_VARIABLE: fbneo-hiscores = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-allow-patched-romsets = "disabled" [INFO] [Environ]: GET_VARIABLE: fbneo-samplerate = "48000" [INFO] [Environ]: GET_VARIABLE: fbneo-sample-interpolation = "4-point 3rd order" [INFO] [Environ]: GET_VARIABLE: fbneo-fm-interpolation = "4-point 3rd order" [INFO] [Environ]: GET_VARIABLE: fbneo-lowpass-filter = "enabled" [INFO] [Environ]: GET_VARIABLE: fbneo-analog-speed = "100%" [INFO] [Environ]: GET_VARIABLE: fbneo-lightgun-crosshair-emulation = "hide with lightgun device" [libretro INFO] [FBNeo] Searching all possible locations for romset mushisam [libretro INFO] [FBNeo] Romset found at /roms/Arcade/mushisam [libretro INFO] [FBNeo] No romset found at /retroarch/cores/system/fbneo/mushisam [libretro INFO] [FBNeo] No romset found at /retroarch/cores/system/mushisam [libretro INFO] [FBNeo] Using ROM with known crc 0x15321b30 and name mushisam_u4 from archive /roms/Arcade/mushisam [libretro INFO] [FBNeo] Using ROM with known crc 0x4f0a842a and name mushisam_u2 from archive /roms/Arcade/mushisam [libretro INFO] [FBNeo] Using ROM with known crc 0x138e2050 and name u23 from archive /roms/Arcade/mushisam [libretro INFO] [FBNeo] Using ROM with known crc 0xe3d05c9f and name u24 from archive /roms/Arcade/mushisam [libretro INFO] [FBNeo] No missing files, proceeding [libretro INFO] [FBNeo] Samplerate set to 48000 [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-S2_1 = "Off" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-S2_2 = "Off" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-S2_3 = "Off" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-S2_4 = "Off" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-Thread_Blitter = "On" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-Speed_Hacks = "On" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-Thread_Sync = "Before Draw" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-Blitter_Delay = "Off" [INFO] [Environ]: GET_VARIABLE: fbneo-dipswitch-mushisam-el_rika's_CPU_Rate_tenth-percent_adjust = ".0"

[libretro INFO] [FBNeo] Applied dipswitches from core options [libretro DEBUG] BurnSetMouseDivider() @ 1 [libretro DEBUG] Cheat cpu-register INIT. [libretro DEBUG] -- sh3 init @ 102400000hz [libretro DEBUG] Sh3SetClockCV1k: 102400000 tmu prescale 4 [libretro DEBUG] CPU-registry: sh3 cpu #0 ...

barbudreadmon commented 2 years ago

Indeed, that would be exactly the same problem, the switch port is somehow crashing on "%S" format specifiers, which i am replacing by "%s" format specifiers at runtime ("%S" only works with windows). I might have an idea about what's going on, looks like the libretro guys made a backward compatibility breaking change without warning.

barbudreadmon commented 2 years ago

i pushed a fix, i expect it will fix the problem everywhere

melterx12 commented 2 years ago

thanks will test later today and report back

melterx12 commented 2 years ago

the Mushihime games and tatio games are all working now! Thanks!

barbudreadmon commented 2 years ago

I'll close then, thanks for the report !