Time Crisis in MAME?
-
Hello,
I am aware that the PlayStation version of Time Crisis runs very well on a Raspberry Pi 4B, but I am curious about the arcade version and wanted to tinker with it myself.
I am using a Raspberry Pi 4B with the RetroPie 4.7 image updated to 4.8. The emulator I will focus in is lr-mame (version .243) in RetroArch 1.10.0.
Time Crisis fails to get past the "SUB CPU START WAIT" check upon boot in lr-mame. This issue (or worse) appears to occur in every version of MAME available in RetroPie, even standalone MAME.
However, the same version of lr-mame with the same ROM in RetroArch on Windows does load the game properly.
Does anyone have an idea of why that may be?
The verbose log doesn't indicate any errors specific to the issue (the emulator doesn't freeze or crash). I tried moving over the NVRAM from Windows to the Pi with no luck. I attempted both RetroArch and MAME save states, but those also failed to work. MAME had documented issues with this exact boot test several years ago, but the method of bypassing the error (press F2 and then F3) does not work on the Pi.
While I'm probably setting myself up for disappointment with the performance of this particular game on a Pi, I still just have to know! 😆
Verbose log:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame/mamearcade_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/timecris.zip" --verbose --appendconfig /dev/shm/retroarch.cfg [INFO] [Config]: Loading config from: "/opt/retropie/configs/arcade/retroarch.cfg". [INFO] [Config]: Appending config "/dev/shm/retroarch.cfg". [WARN] [GameMode]: GameMode cannot be enabled on this system ("dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory.") https://github.com/FeralInteractive/gamemode needs to be installed. [WARN] [Config]: GameMode unsupported - disabling... [INFO] RetroArch 1.10.0 (Git e9e85f3) [INFO] === Build ======================================= [INFO] Capabilities: NEON VFPv3 VFPv4 [INFO] Built: Jan 30 2022 [INFO] Version: 1.10.0 [INFO] Git: e9e85f3 [INFO] ================================================= [INFO] [Input]: Found input driver: "x". [INFO] [Core]: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-mame/mamearcade_libretro.so" [INFO] [Overrides]: No core-specific overrides found at "/home/pi/.config/retroarch/config/MAME/MAME.cfg". [INFO] [Overrides]: No content-dir-specific overrides found at "/home/pi/.config/retroarch/config/MAME/arcade.cfg". [INFO] [Overrides]: No game-specific overrides found at "/home/pi/.config/retroarch/config/MAME/timecris.cfg". [INFO] [Environ]: SET_VARIABLES. [INFO] [Core]: Game-specific core options found at "/home/pi/.config/retroarch/config/MAME/timecris.opt". [INFO] [Remaps]: Remap directory: "/opt/retropie/configs/arcade/". [INFO] [Overrides]: Redirecting save file to "/home/pi/RetroPie/roms/arcade/timecris.srm". [INFO] [Overrides]: Redirecting save state to "/home/pi/RetroPie/roms/arcade/timecris.state". [INFO] [Environ]: GET_LOG_INTERFACE. [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/pi/RetroPie/BIOS". [libretro INFO] SYSTEM_DIRECTORY: /home/pi/RetroPie/BIOS [INFO] [Environ]: CORE_ASSETS_DIRECTORY: "/home/pi/.config/retroarch/downloads". [libretro INFO] CONTENT_DIRECTORY: /home/pi/.config/retroarch/downloads [INFO] [Environ]: GET_SAVE_DIRECTORY. [libretro INFO] SAVE_DIRECTORY: /home/pi/RetroPie/roms/arcade/ [INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888. [INFO] [Content]: Content loading skipped. Implementation will load it on its own. [libretro INFO] Joystick map: disabled [INFO] [Environ]: SET_INPUT_DESCRIPTORS: [INFO] [SRAM]: Skipping SRAM load. [INFO] [Core]: Version of libretro API: 1, Compiled against API: 1 [libretro INFO] Joystick map: disabled [INFO] [Environ]: SET_INPUT_DESCRIPTORS: [libretro INFO] AV_INFO: width=640 height=480 [libretro INFO] AV_INFO: max_width=640 max_height=480 [libretro INFO] AV_INFO: aspect_ratio = 1.333333 [libretro INFO] AV_INFO: fps = 60.000000 sample_rate = 48000.000000 [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. [INFO] [Video]: Set video size to: 1920x1080. [INFO] [Video]: Starting threaded video driver ... [INFO] [DRM]: Found 1 connectors. [INFO] [DRM]: Connector 0 connected: yes [INFO] [DRM]: Connector 0 has 34 modes. [INFO] [DRM]: Connector 0 assigned to monitor index: #1. [INFO] [DRM]: Mode 0: (1920x1080) 1920 x 1080, 60.000000 Hz [INFO] [DRM]: Mode 1: (1920x1080) 1920 x 1080, 59.940201 Hz [INFO] [DRM]: Mode 2: (1920x1080i) 1920 x 1080, 30.000000 Hz [INFO] [DRM]: Mode 3: (1920x1080i) 1920 x 1080, 29.970100 Hz [INFO] [DRM]: Mode 4: (1920x1080) 1920 x 1080, 30.000000 Hz [INFO] [DRM]: Mode 5: (1920x1080) 1920 x 1080, 29.970100 Hz [INFO] [DRM]: Mode 6: (1920x1080) 1920 x 1080, 24.000000 Hz [INFO] [DRM]: Mode 7: (1920x1080) 1920 x 1080, 23.976080 Hz [INFO] [DRM]: Mode 8: (1680x1050) 1680 x 1050, 59.883251 Hz [INFO] [DRM]: Mode 9: (1600x900) 1600 x 900, 60.000000 Hz [INFO] [DRM]: Mode 10: (1280x1024) 1280 x 1024, 75.024673 Hz [INFO] [DRM]: Mode 11: (1280x1024) 1280 x 1024, 60.019741 Hz [INFO] [DRM]: Mode 12: (1440x900) 1440 x 900, 59.901459 Hz [INFO] [DRM]: Mode 13: (1280x800) 1280 x 800, 59.909546 Hz [INFO] [DRM]: Mode 14: (1152x864) 1152 x 864, 75.000000 Hz [INFO] [DRM]: Mode 15: (1280x720) 1280 x 720, 60.000000 Hz [INFO] [DRM]: Mode 16: (1280x720) 1280 x 720, 59.940201 Hz [INFO] [DRM]: Mode 17: (1024x768) 1024 x 768, 75.028580 Hz [INFO] [DRM]: Mode 18: (1024x768) 1024 x 768, 70.069359 Hz [INFO] [DRM]: Mode 19: (1024x768) 1024 x 768, 60.003841 Hz [INFO] [DRM]: Mode 20: (832x624) 832 x 624, 74.551270 Hz [INFO] [DRM]: Mode 21: (800x600) 800 x 600, 75.000000 Hz [INFO] [DRM]: Mode 22: (800x600) 800 x 600, 72.187569 Hz [INFO] [DRM]: Mode 23: (800x600) 800 x 600, 60.316540 Hz [INFO] [DRM]: Mode 24: (720x480) 720 x 480, 60.000000 Hz [INFO] [DRM]: Mode 25: (720x480) 720 x 480, 59.940060 Hz [INFO] [DRM]: Mode 26: (720x480i) 720 x 480, 30.001110 Hz [INFO] [DRM]: Mode 27: (720x480i) 720 x 480, 29.970030 Hz [INFO] [DRM]: Mode 28: (640x480) 640 x 480, 75.000000 Hz [INFO] [DRM]: Mode 29: (640x480) 640 x 480, 72.808800 Hz [INFO] [DRM]: Mode 30: (640x480) 640 x 480, 66.666664 Hz [INFO] [DRM]: Mode 31: (640x480) 640 x 480, 60.000000 Hz [INFO] [DRM]: Mode 32: (640x480) 640 x 480, 59.940475 Hz [INFO] [DRM]: Mode 33: (720x400) 720 x 400, 70.081665 Hz [INFO] [GL]: Found GL context: "kms". [INFO] [GL]: Detecting screen resolution: 1920x1080. [INFO] [EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay [INFO] [EGL]: EGL version: 1.4 [INFO] [EGL]: Current context: 0xa153b020. [INFO] [KMS]: New FB: 1920x1080 (stride: 7680). [INFO] [GL]: Vendor: Broadcom, Renderer: V3D 4.2. [INFO] [GL]: Version: OpenGL ES 3.1 Mesa 19.3.2. [INFO] [GL]: Using resolution 1920x1080. [INFO] [GL]: Default shader backend found: glsl. [INFO] [Shader driver]: Using GLSL shader backend. [WARN] [GL]: Stock GLSL shaders will be used. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GL]: Using 4 textures. [INFO] [GL]: Loaded 1 program(s). [INFO] [udev]: Keyboard #0: "Logitech Wireless Keyboard PID:4023" (/dev/input/event0). [INFO] [udev]: Mouse #0: "Logitech Wireless Mouse" (REL) /dev/input/event1 [INFO] [udev]: Pad #0 (/dev/input/event4) supports force feedback. [INFO] [udev]: Pad #0 (/dev/input/event4) supports 16 force feedback effects. [INFO] [Joypad]: Found joypad driver: "udev". [INFO] [Font]: Using font rendering backend: "stb-unicode". [INFO] [Video]: Found display server: "null". [INFO] ALSA: Using floating point format. [INFO] ALSA: Period size: 480 frames [INFO] ALSA: Buffer size: 1536 frames [INFO] [Display]: Found display driver: "gl". [INFO] [Playlist]: Loading history file: "/opt/retropie/configs/arcade/content_history.lpl". [INFO] [Playlist]: Loading history file: "/opt/retropie/configs/arcade/content_music_history.lpl". [INFO] [Playlist]: Loading history file: "/opt/retropie/configs/arcade/content_video_history.lpl". [INFO] [Playlist]: Loading history file: "/opt/retropie/configs/arcade/content_image_history.lpl". [INFO] [Playlist]: Loading favorites file: "/opt/retropie/configs/arcade/content_favorites.lpl". [libretro INFO] Starting game:/home/pi/RetroPie/roms/arcade/timecris.zip [libretro INFO] Game name: timecris, Game description: Time Crisis (Rev. TS2 Ver.B, World) [libretro ERROR] System not found: arcade [libretro WARN] Driver arcade not found -1 [libretro INFO] Creating frontend for game: timecris [libretro INFO] Softlists: 0 Adding monitor screen0 (640 x 480) a:1.333333 [libretro INFO] RES:0 [libretro INFO] MAIN FIRST [libretro INFO] Joystick map: disabled [INFO] [Environ]: SET_INPUT_DESCRIPTORS: [libretro INFO] AV_INFO: width=640 height=480 [libretro INFO] AV_INFO: max_width=640 max_height=480 [libretro INFO] AV_INFO: aspect_ratio = 1.333333 [libretro INFO] AV_INFO: fps = 59.904060 sample_rate = 48000.000000 [INFO] [Environ]: SET_SYSTEM_AV_INFO: 640x480, Aspect: 1.333, FPS: 59.90, Sample rate: 48000.00 Hz. [INFO] [Audio]: Set audio input rate to: 48076.88 Hz. [INFO] ALSA: Using floating point format. [INFO] ALSA: Period size: 480 frames [INFO] ALSA: Buffer size: 1536 frames [INFO] [Display]: Found display driver: "gl". [INFO] [Input]: Game Focus => OFF [libretro INFO] ChangeAV: w:640 h:480 ra:1.333333. [INFO] [KMS]: New FB: 1920x1080 (stride: 7680). [INFO] [KMS]: New FB: 1920x1080 (stride: 7680). [INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 05 seconds. [INFO] [Core]: Unloading game.. [INFO] [Core]: Unloading core.. RETRO DEINIT retro_finish begin Average speed: 97.10% (5 seconds) retro exit machine retro_finish end [INFO] [Core]: Unloading core symbols.. [INFO] [Core]: Saved game-specific core options to "/home/pi/.config/retroarch/config/MAME/timecris.opt". [INFO] Threaded video stats: Frames pushed: 341, Frames dropped: 2.
(The error about system not found is shown for working games too. The game options file was an attempt to disable as many settings as possible, but the issue still occurs with a vanilla set of core options.)
-
Tested with mame-standalone 0.240 , 0.241 and 0.243 on RPI4.
Same problem over here, F2/F3 solution doesn't work.
Will have a look later. -
@ChaosEffect said in Time Crisis in MAME?:
Does anyone have an idea of why that may be?
MAME and most emulators were written for x86 processors, they aren't guaranteed to work on other architectures of processors which handle a few things differently.
It might be something totally different here though, like F2/F3 not being mapped since you mention they are supposedly a known workaround for that specific issue. -
@barbudreadmon Thanks! F2 and F3 do serve the intended purposes in lr-mame (service and restart) at least. I think that particular solution was only used in a pre-2010 version of MAME until a solution in the code was added very soon after (still pre-dating .139).
Each main version of MAME available to a Pi in RetroPie has issues Time Crisis:
- 2003(plus): Game is labeled as not working and fails another check at boot
- 2010: Completely freezes RetroArch at that boot screen, requiring a reboot
- 2015: Actually gets past that boot screen but freezes RetroArch right after
- 2016: Same as MAME/lr-mame
I did see some casual mentions of people getting Time Crisis to boot on a Pi from years ago. I think they were referring to lr-mame2010. 🤷♂️
A similar sort of thing happens in lr-mame on Pi with the games that use the iteagle BIOS: there is an attempt to boot and then a failure at a check screen. This is more just a curiosity for me. I'd expect Time Crisis to be at least playable, but those iteagle games almost certainly need much more powerful hardware.
-
I tried also on Apple Mac M1 with a virtual machine in UTM.
Sort of virtualizing the RPI4 with a 64 bit os.
Trying the piaarch64
binary from stickfreaks doesn't work either.So for the first time I installed mame0.243 directly in OSX on my Apple Mac M1 with arm64 cpu.
With the info we have up till now, we should expect that the game should not run because we don't run on a x86/x86_64 machine.
Though, the game works beautifully on the Mac M1. -
Thought I'd necro-bump this in case it helps: the latest MAME runs the game well and, so far, it can hit 40-60fps on the Pi5 without any overclock. Thought I'd share!
-
@pjft interesting. With lr-mame? I'm getting an error when trying to build that. Care to share what commit/build date you have? Not sure how often lr-mame is updated
-
@retropieuser555 Yes, lr-mame. I had to add a swapfile though, 2GB just to play it safe (on an 8GB Pi5). I'll check the exact commit as I had to restart my image because of a faulty SD card but, from what I can tell, it is currently just cloning the latest commit from master. I am just installing it via the lr-mame install script from RetroPie-Setup.
HEAD is now in branch 'master' at commit '0ef9aa356162ce6b51232aecbe309af2e7fbe167'
Hope this helps.
EDIT: swapfile to compile, not to run.
-
@pjft interesting, sorry I'm full of questions, where did you add your swapfilesize check? Curious if it'll be ok on a 4GB pi 5
Edit: I'm guessing you did it at this level, rather than somewhere in the code of lr-mame https://pimylifeup.com/raspberry-pi-swap-file/ ?
-
See for a similar question about lr-mame over here.
-
@retropieuser555 Correct. As long as you have space in the sd card, by all means bump it up to 6000 or so. As mentioned, on my end the 8GB didn't suffice - it started freezing when it ran out of memory and was managing a poorly allocated default 100MB swapfile. Maybe it works differently for you though.
-
Thanks for following up on this. I too have tried this with lr-mame on a Pi 5 and get similar performance. The "alternate renderer" appears to improve performance slightly too. What really bogs down the performance is the explosion at the very beginning of the game (a submarine?). The FPS will gradually drop as more smoke fills the screen.
And FYI: Time Crisis II also works but isn't anywhere close to what I'd call playable on a Pi 5.
-
@ChaosEffect thanks for the further inputs here. Happy to hear about Time Crisis 2, though I can imagine it'll just be unplayable. I still have my PS2 connected to a large CRT and the GunCon for 1, 2 and 3 - and then the PS3 for 4 and Crisis Zone. :)
I was unable to overclock my pi5 at all, curious if anyone actually manages to do so and happens to try out Time Crisis. The increased resolution of the Arcade version versus the PS1 one is fantastic!
-
@pjft I'm in the same boat with the overclock. Even slight changes appear to be wildly unstable for me. My experience with Pi 4 was that overclocking only seemed to help arcade games with very minor hiccups (Judge Dredd in lr-mame2015 going from slightly stuttering audio to full speed is the prime example). I was hopeful that messing with the magical "CPU Clock" numbers would help out, but that didn't appear to make any major difference.
...although that clock setting set to 70 appears to keep Point Blank 3 arcade in the 99–100% speed range at all times.
-
@pjft said in Time Crisis in MAME?:
The increased resolution of the Arcade version versus the PS1 one is fantastic!
Any idea why swanstation/duckstation is not available on retropie ? I believe it has both arm dynarecs and an opengles renderer, plus a vulkan one if retropie ever decide to enable vulkan support. It should be able to run psx games with upscaling.
-
@barbudreadmon Good question, and good call. I haven't really ever tried upscaled resolution on emulators, as I kind of tend to "like" the original looks, but I'll give it a shot and see how it goes. Thanks!
Hope you're doing well.
-
Swanstation is available in the RetroPie-Extra repo and works very well with RPi3,4 and 5. It has some performance issues when running in hardware mode (Opengl) with some games, but generally runs well, I haven't tried vulkan.
It has been removed due to disagreements between the duckstation developer and RetroArch. I very much hope the developers include it, but to tell the truth, it's not necessary anymore. The developer of lr-pcsx-rearmed it has done an amazing job in the last few months and fixed all the problems that made the use of swanstation unnecessary.
-
@windg Thanks! Actually, on the Pi5 there's lr-beetle-psx and it also allows for 2x resolution. I'll see if that helps. And I'll see if I can get swanstation to work there. For some reason my lr-pcsx-rearmed is crashing on the Pi5.
EDIT: I see it's about the kernel8.img thing. Thanks.
-
@windg said in Time Crisis in MAME?:
It has been removed due to disagreements between the duckstation developer and RetroArch.
It doesn't make much sense to me, there are disagreements between the MAME team and the libretro project (more like one-sided bashing, just the same as duckstation), but retropie still includes all the MAME libretro cores.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.