libretro / FBNeo

FBNeo - We are Team FBNeo.
https://neo-source.com
Other
225 stars 134 forks source link

Subsystems menu non-working on Vita (and possibly others) #197

Closed kwyxz closed 4 years ago

kwyxz commented 4 years ago

On Playstation Vita, the subsystems menu is non-functional.

To reproduce :

Retroarch will go back to the menu and the logs show No content, starting dummy core

With some systems the loader is able to figure out what to do with simply using "Load content" (for example with Neo Geo CD cue files) but with simpler ROMs like Megadrive, it doesn't do anything and the logs are pretty much empty of any useful information even in debug mode.

Even after creating a playlist to specify the subsystem, the ROM seems to load but then the core doesn't run properly. Log says [libretro INFO] Driver md_sonic was successfully started : game's full name is Sonic the Hedgehog (Euro, USA) but immediately goes back to the RetroArch menu.

Here's the playlist I created, for info. Maybe I bungled it?

$ cat Sega\ -\ Mega\ Drive\ -\ Genesis.lpl 
{
  "version": "1.2",
  "default_core_path": "",
  "default_core_name": "",
  "label_display_mode": 0,
  "right_thumbnail_mode": 0,
  "left_thumbnail_mode": 0,
  "items": [
    {
      "path": "ux0:/homebrew/roms/sonic.zip",
      "label": "",
      "core_path": "app0:fbneo_libretro.self",
      "core_name": "Arcade (FinalBurn Neo)",
      "crc32": "",
      "db_name": "",
      "subsystem_ident": "md",
      "subsystem_name": "Sega Megadrive",
      "subsystem_roms": [
        "ux0:/homebrew/roms/sonic.zip"
      ]
    }
  ]
}
kwyxz commented 4 years ago

Logs :

[INFO] RetroArch 1.8.1 (Git 6443169)
[INFO] === Build =======================================
[INFO] Capabilities:  NEON
[INFO] Built: Nov 11 2019
[INFO] Version: 1.8.1
[INFO] Git: 6443169
[INFO] =================================================
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] Redirecting save file to "ux0:/data/retroarch/savefiles/.srm".
[INFO] Redirecting savestate to "ux0:/data/retroarch/savestates/.state".
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 30000.00 Hz.
[INFO] [Video]: Video @ 960x720
[INFO] vita2d_gfx_init: w: 960  h: 720
[INFO] RARCH_SCALE_BASE: 256 input_scale: 2 = 512
[INFO] Format: SCE_GXM_TEXTURE_FORMAT_R5G6B5
[INFO] [Joypad]: Found joypad driver: "vita".
[INFO] [Autoconf]: No profiles found.
[INFO] [Font]: Using font rendering backend: bitmap.
[INFO] [Video]: Found display server: null
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: CBS ColecoVision
  Ident: cv
  ID: 1
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 1
Special game type: MSX 1
  Ident: msx
  ID: 4
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 2
Special game type: Nec PC-Engine
  Ident: pce
  ID: 5
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 3
Special game type: Nec SuperGrafX
  Ident: sgx
  ID: 7
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 4
Special game type: Nec TurboGrafx-16
  Ident: tg16
  ID: 9
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 5
Special game type: Sega GameGear
  Ident: gg
  ID: 2
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 6
Special game type: Sega Master System
  Ident: sms
  ID: 8
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 7
Special game type: Sega Megadrive
  Ident: md
  ID: 3
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 8
Special game type: Sega SG-1000
  Ident: sg1k
  ID: 6
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 9
Special game type: ZX Spectrum
  Ident: spec
  ID: 10
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 10
Special game type: Neogeo CD
  Ident: neocd
  ID: 11
  Content:
[INFO]     Iso (required)
[INFO] Subsystems: 11
[INFO] [Menu]: Found menu display driver: "vita2d".
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] [LED]: LED driver = 'null' 0x81ca3fd4
[INFO] [MIDI]: Initializing ...
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "null" driver.
[INFO] SRAM will not be saved.
[INFO] Loading history file: [ux0:/data/retroarch/content_history.lpl].
[INFO] Loading history file: [ux0:/data/retroarch/content_music_history.lpl].
[INFO] Loading favorites file: [ux0:/data/retroarch/content_favorites.lpl].
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] Creating texture: 4x4
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: CBS ColecoVision
  Ident: cv
  ID: 1
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 1
Special game type: MSX 1
  Ident: msx
  ID: 4
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 2
Special game type: Nec PC-Engine
  Ident: pce
  ID: 5
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 3
Special game type: Nec SuperGrafX
  Ident: sgx
  ID: 7
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 4
Special game type: Nec TurboGrafx-16
  Ident: tg16
  ID: 9
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 5
Special game type: Sega GameGear
  Ident: gg
  ID: 2
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 6
Special game type: Sega Master System
  Ident: sms
  ID: 8
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 7
Special game type: Sega Megadrive
  Ident: md
  ID: 3
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 8
Special game type: Sega SG-1000
  Ident: sg1k
  ID: 6
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 9
Special game type: ZX Spectrum
  Ident: spec
  ID: 10
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 10
Special game type: Neogeo CD
  Ident: neocd
  ID: 11
  Content:
[INFO]     Iso (required)
[INFO] Subsystems: 11
[INFO] FRONTEND_FORK_CORE
[INFO] [subsystem] settings current subsytem to: 7(md) roms: 1
[INFO] [subsystem] subsystem id: 7 subsystem ident: md rom id: 0, rom path: ux0:/homebrew/roms/sonic.zip
[INFO] Updating firmware status for: (null) on ux0:/data/retroarch/system
[INFO] No content, starting dummy core.
[INFO] arg #0: retroarch
[INFO] arg #1: --menu
[INFO] arg #2: -s
[INFO] arg #3: ux0:/data/retroarch/savefiles
[INFO] arg #4: -S
[INFO] arg #5: ux0:/data/retroarch/savestates
[INFO] arg #6: -c
[INFO] arg #7: ux0:/data/retroarch/retroarch.cfg
[INFO] arg #8: -v
[INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] Unloading game..
[INFO] Unloading core..
[INFO] Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] Set config file to : ux0:/data/retroarch/retroarch.cfg
[INFO] RetroArch 1.8.1 (Git 6443169)
[INFO] === Build =======================================
[INFO] Capabilities:  NEON
[INFO] Built: Nov 11 2019
[INFO] Version: 1.8.1
[INFO] Git: 6443169
[INFO] =================================================
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Special game type: CBS ColecoVision
  Ident: cv
  ID: 1
  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: 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: ZX Spectrum
  Ident: spec
  ID: 10
  Content:
[INFO]     Rom (required)
[INFO] Special game type: Neogeo CD
  Ident: neocd
  ID: 11
  Content:
[INFO]     Iso (required)
[INFO] Redirecting save file to "ux0:/data/retroarch/savefiles/FinalBurn Neo.srm".
[INFO] Redirecting savestate to "ux0:/data/retroarch/savestates/FinalBurn Neo.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] Redirecting savestate to "ux0:/data/retroarch/savestates/sonic.state".
[INFO] Content loading skipped. Implementation will load it on its own.
[libretro INFO] Setting save dir to ux0:/data/retroarch/savefiles
[INFO] [Environ]: SYSTEM_DIRECTORY: "ux0:/data/retroarch/system".
[libretro INFO] Setting system dir to ux0:/data/retroarch/system
[INFO] [Environ]: SET_CONTROLLER_INFO.
[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]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
[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-load-subsystem-from-parent:
    enabled
[INFO] [Environ]: GET_VARIABLE fbneo-frameskip:
    0
[INFO] [Environ]: GET_VARIABLE fbneo-hiscores:
    enabled
[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-analog-speed:
    100
[INFO] [Environ]: GET_VARIABLE fbneo-cyclone:
    disabled
[libretro INFO] [FBNEO] Archive: sonic
[libretro INFO] [FBNEO] Using ROM with good CRC and name mpr-13913.ic1 from archive ux0:/homebrew/roms/sonic
[INFO] [Environ]: GET_VARIABLE fbneo-dipswitch-md_sonic-Hardware:
    Auto Detect
[INFO] [Environ]: GET_VARIABLE fbneo-dipswitch-md_sonic-32-Col_Mode_Draw:
    Center
[libretro DEBUG] Cheat cpu-register INIT.
[libretro DEBUG] 68K Rom, Num 1, Size 80000
[libretro DEBUG] CPU-registry: 68k cpu #0 ...
[libretro DEBUG] CPU-registry: Z80 cpu #0 ...
[libretro WARN] Autodetecting Cartridge (Hardware Code: 554a2045):
[libretro WARN] Japan NTSC supported
[libretro WARN] Europe PAL supported
[libretro WARN] USA NTSC supported
[libretro WARN] Emulating USA NTSC Machine
[INFO] SET_GEOMETRY: 320x224, aspect: 1.333.
[libretro INFO] [Cheevos] System RAM set to 0x857eb858 zu
[INFO] [Environ]: SET_ROTATION: 0
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[libretro INFO] Driver md_sonic was successfully started : game's full name is Sonic the Hedgehog (Euro, USA)
[INFO] Skipping SRAM load..
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 47952.05 Hz.
[INFO] [Video]: Video @ 897x672
[INFO] vita2d_gfx_init: w: 897  h: 672
[INFO] RARCH_SCALE_BASE: 256 input_scale: 2 = 512
[INFO] Format: SCE_GXM_TEXTURE_FORMAT_R5G6B5
[INFO] [Joypad]: Found joypad driver: "vita".
[INFO] [Autoconf]: No profiles found.
[INFO] [Font]: Using font rendering backend: bitmap.
[INFO] [Video]: Found display server: null
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: CBS ColecoVision
  Ident: cv
  ID: 1
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 1
Special game type: MSX 1
  Ident: msx
  ID: 4
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 2
Special game type: Nec PC-Engine
  Ident: pce
  ID: 5
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 3
Special game type: Nec SuperGrafX
  Ident: sgx
  ID: 7
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 4
Special game type: Nec TurboGrafx-16
  Ident: tg16
  ID: 9
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 5
Special game type: Sega GameGear
  Ident: gg
  ID: 2
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 6
Special game type: Sega Master System
  Ident: sms
  ID: 8
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 7
Special game type: Sega Megadrive
  Ident: md
  ID: 3
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 8
Special game type: Sega SG-1000
  Ident: sg1k
  ID: 6
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 9
Special game type: ZX Spectrum
  Ident: spec
  ID: 10
  Content:
[INFO]     Rom (required)
[INFO] Subsystem ID: 10
Special game type: Neogeo CD
  Ident: neocd
  ID: 11
  Content:
[INFO]     Iso (required)
[INFO] Subsystems: 11
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] [Font]: Using font rendering backend: stb-unicode.
[INFO] [LED]: LED driver = 'null' 0x81ca3fd4
[INFO] [MIDI]: Initializing ...
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "null" driver.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO]  RetroPad, User 1, Button "B (bottom)" => "Button B"
[INFO]  RetroPad, User 1, Button "Y (left)" => "Button A"
[INFO]  RetroPad, User 1, Button "Select" => "Mode"
[INFO]  RetroPad, User 1, Button "Start" => "Start"
[INFO]  RetroPad, User 1, Button "D-Pad Up" => "Up"
[INFO]  RetroPad, User 1, Button "D-Pad Down" => "Down"
[INFO]  RetroPad, User 1, Button "D-Pad Left" => "Left"
[INFO]  RetroPad, User 1, Button "D-Pad Right" => "Right"
[INFO]  RetroPad, User 1, Button "A (right)" => "Button C"
[INFO]  RetroPad, User 1, Button "X (up)" => "Button X"
[INFO]  RetroPad, User 1, Button "L" => "Button Z"
[INFO]  RetroPad, User 1, Button "R" => "Button Y"
[INFO]  RetroPad, User 2, Button "B (bottom)" => "Button B"
[INFO]  RetroPad, User 2, Button "Y (left)" => "Button A"
[INFO]  RetroPad, User 2, Button "Select" => "Mode"
[INFO]  RetroPad, User 2, Button "Start" => "Start"
[INFO]  RetroPad, User 2, Button "D-Pad Up" => "Up"
[INFO]  RetroPad, User 2, Button "D-Pad Down" => "Down"
[INFO]  RetroPad, User 2, Button "D-Pad Left" => "Left"
[INFO]  RetroPad, User 2, Button "D-Pad Right" => "Right"
[INFO]  RetroPad, User 2, Button "A (right)" => "Button C"
[INFO]  RetroPad, User 2, Button "X (up)" => "Button X"
[INFO]  RetroPad, User 2, Button "L" => "Button Z"
[INFO]  RetroPad, User 2, Button "R" => "Button Y"
[INFO] Loading history file: [ux0:/data/retroarch/content_history.lpl].
[INFO] Loading history file: [ux0:/data/retroarch/content_music_history.lpl].
[INFO] Loading favorites file: [ux0:/data/retroarch/content_favorites.lpl].
[INFO] Creating texture: 320x224
[INFO] [config] Saved new config to "ux0:/data/retroarch/retroarch.cfg".
[INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] Unloading game..
[INFO] Unloading core..
[INFO] Unloading core symbols..
[INFO] [Core Options]: Saved core options file to "ux0:/data/retroarch/retroarch-core-options.cfg"
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
barbudreadmon commented 4 years ago

The core is handling the subsystem feature properly, seems like a RetroArch issue specific to the vita platform to me.

With some systems the loader is able to figure out what to do with simply using "Load content" (for example with Neo Geo CD cue files)

They will load like this in FBNeo if they are in a neocd folder, that would mean you are using the alternative non-subsystems method to load them, see https://github.com/libretro/FBNeo/issues/66 and https://github.com/libretro/FBNeo/pull/159 for more informations (you can do the same with megadrive by placing the roms in a megadriv folder). Let me know if the folder method works for you.

Either way, you should open an issue at https://github.com/libretro/RetroArch about the subsystem feature not working properly on vita.

kwyxz commented 4 years ago

Thanks for the explanation @barbudreadmon I will open the issue with RetroArch then.