Flycast - Various Issues

I’m having various issues with Flycast and I’m not sure how to fix them. I don’t want to spam the forums so I’m putting these in one thread.

  1. NBA 2K1 crashes after the intro FMVs. It gives me an “SH4 exception when blocked” error.
  2. NBA 2K2 freezes after the intro FMVs. Black screen.
  3. The triggers aren’t being mapped as analog. I’m using a PS4 controller and the default mapping maps them as a button and not a trigger, making some games that use the triggers a bit harder.

Are there any fixes for these?

1 Like

Hi ENunn5.
is this the first time you’ve had this error?
PC, Android, xBox, etc?

I just tried NBA 2K1/2k2 and they work perfect, try the following.
Reset the settings.
Verify that the bios are correct.
I have seen that it can be related to a bad dump.
Make sure the ones you have are good.

The triggers, no idea, what game are you referring to?

Nope, its happened several times.

PC. Two computers, same issue on both.

Didn’t fix it.

Does Flycast need a BIOS? I was never asked for one.

It was indeed my dumps. Did another dump and it boots up fine! It’s weird because the same dumps I have work fine on my real Dreamcast. Oh well, at least they’re working now.

Crazy Taxi, NBA 2K, basically any game that takes advantage of the triggers. Retroarch maps it as a button, so I can’t get any precision with them. Going slow in racing games is impossible, free throws in NBA 2K are impossible.

Thanks, a little more information is always helpful, because lately I have lost my super powers of divination. :grimacing:

I gave you the common errors in this case, I assumed it was the dump. I have no experience in GDI, but you have in the RetroArch menu an option to make cue+bin images.

In any case, if you have the original games, I recommend you to use the Redump guides to make sure they are perfect. If you have games ripped on CD, you are probably going to have thousands of errors.

About the trigger. I have an Xbox controller, I tested it with Daytona (in the control settings you can edit the axes), and it works perfect, maybe you have to stop by here, if you don’t see any error similar to what you have, it’s ideal to report it.

Edit. Flycast emulates the BIOS, but if you read the documentation and github, they recommend using them.

Thanks for the help!

How do I edit the axis? I went to Settings > Input > Port 1 Controls and L2 and R2 are mapped as “Auto: L2/R2 (btn)”. Tried to change it by pressing the trigger and it just maps it as buttons 6 and 7.

I also tried to go into the config, and changed these settings

input_player1_l2_axis = "+2"
input_player1_r2_axis = "+4"

However, its either not working as intended (basically working as a button) or it’s really sensitive.

I mean the game configuration, the Europe version has this, I used it to test all axes and triggers.

At ‘Settings » Input’ I see this.
image
When I change them manually I see this. And they continue to work well in Flycast.
image

In ‘Quick Menu » Controls’ of the emulator it shows me this.
image

Apparently it’s not a bug, it’s configured but it takes the triggers as if they were buttons. It looks like it’s picking up a PS2 controller.

It should work “+2 and +4” are axes, not buttons. But “Auto: L2/R2 (btn)” are buttons.

Does your controller have a switch to change the L2 and R2 from triggers to buttons?
You can also check the option within ‘Quick Menu » Core Option » Input’ for emulator control settings. If ‘Digital Triggers’ is ON, it will function as a button.

Do the triggers work in other games outside RetroArch?
It does not hurt to test an application such as joystick or antimicrox to make sure that your control works.

That’s odd, I’m using an official Sony Dualshock 4 v2.

Nope.

It’s off.

Yep, they work fine. The issue only happens in Retroarch.

I booted up Daytona and went through the analog calibration menu. The left trigger acts like a button despite it being mapped to +2. The right trigger acts like a button whenever I lightly press it, but then I press it in all the way, then pull back, it acts like a trigger. Super odd.

I’ve exhausted my resources. So, there’s only one option left…
We’re going to need super hero help!

image

@BarbuDreadMon please help us, the triggers are not working.

@alexb3d I haven’t worked on that core neither used it for years, and i only ever contributed to the arcade support anyway.

The correct url for reporting issues is https://github.com/flyinghead/flycast/issues

However, i’m wondering how @ENunn5 installed that core ? Is he maybe using a retrogaming distribution like retropie ? If so, that might be the problem here, since, afaik, retropie doesn’t allow the installation of latest retroarch or flycast core.

I thought you were the one who carried and maintained it on RetroArch. It was a mix-up, sorry. The other day I talked to you about flycast graphics.
What are the cores you maintain? apart from FBNeo and Kronos.

The call for help should be for @flyinghead

I don’t have a problem with the 360 controller, It is the PS4 controller that does not recognize the triggers.
RetroArch recognizes them as “Auto: L2/R2 (btn)” and if assigned manually places them as axes. “+2” & “+4”, but they still behave like buttons.

I searched flyinghead’s github and found nothing.
In the libretro github there is this that is related to this problem.

@ENunn5 please tell us the operating system, retroarch version and core. And generating a log is very convenient.

I just installed it like I would any core. Online updater > Core Downloader. I’m just using standard Retroarch.

Windows 11, Retroarch 1.10.3, Flycast core, I can’t tell if its the latest or not.

Can’t seem to attach a log file. Should I just upload it somewhere and link it?

I’m a FBNeo developer.

As for my contributions to Flycast and Kronos, it was mostly a one-time thingy to sort out things i was familiar with. Well, i guess i’m still somehow responsible for “maintaining” the Kronos core since the libretro buildbot still uses the libretro fork instead of the upstream repo, so someone has to sync the source code once in a while.

1 Like

Retroarch used to have issues with triggers and remapping, i think it was fixed around a year ago so that 1.10.3 version is probably affected. I recommend updating your whole setup before confirming your issue still remains.

Anyway there is nothing that can be done about old software version since nobody owns a time machine to go fix them, so you should always make sure you are using the latest software versions before reporting any issue.

1 Like

You may need to delete the configuration files or do a clean install.
When you load the core, directly without content, at the bottom left you will see the version, and in the Info menu that is a little further down.
It is always advisable to regularly update the core from Online Updater.

Log :point_down:t3:

Resumen

It is possible that the problem is solved when you upgrade, and you don’t need the log, for future occasions, copy all the text, select the option in the gear, “Hide details”, and paste it there, to have a text like this.

I didn’t even know there was an update out. Retroarch doesn’t seem to have a way to update itself in the app. It’s updated to 1.15.0 now. And sadly, the issue still remains.

Got it, I’m using Flycast 0070f9a.

Got it.

Summary
[INFO] RetroArch 1.15.0 (Git 56e088b)
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.15.0
[INFO] Git: 56e088b
[INFO] Built: Jun 25 2023
[INFO] =================================================
[INFO] [Input]: Found input driver: "dinput".
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Set video size to: 2560x1440.
[INFO] [GLCore]: Found GL context: "wgl".
[INFO] [GLCore]: Detecting screen resolution: 2560x1440.
[INFO] [WGL]: Extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_no_error WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_context_flush_control WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_colorspace WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_copy_image WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_multigpu_context WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle 
[INFO] [WGL]: Adaptive VSync supported.
[INFO] [GLCore]: Vendor: NVIDIA Corporation, Renderer: NVIDIA GeForce RTX 2060/PCIe/SSE2.
[INFO] [GLCore]: Version: 4.6.0 NVIDIA 536.23.
[INFO] [GLCore]: Using resolution 2560x1440.
[INFO] [XInput]: Found XInput v1.4.
[WARN] [DInput]: Strong rumble unavailable.
[WARN] [DInput]: Weak rumble unavailable.
[INFO] [Joypad]: Found joypad driver: "dinput".
[INFO] [GLCore]: Loading stock shader.
[INFO] [slang]: Building pass #0 (N/A)
[INFO] [GLCore]: Not using frame history.
[INFO] [GLCore]: Not using framebuffer feedback.
[INFO] [Video]: Found display server: "win32".
[INFO] [Autoconf]: DualShock 4 Controller configured in port 1.
[INFO] [XAudio2]: Requesting 64 ms latency, using 64 ms latency.
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [Microphone]: Initialized microphone driver
[INFO] [Display]: Found display driver: "glcore".
[INFO] [MIDI]: Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "C:\Emulators\RetroArch-Win64\content_favorites.lpl".
[INFO] [Core]: Using content: "D:\ROMS and ISOS\Dreamcast\NBA 2K2\disc.gdi".
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] RetroArch 1.15.0 (Git 56e088b)
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.15.0
[INFO] Git: 56e088b
[INFO] Built: Jun 25 2023
[INFO] =================================================
[INFO] [Input]: Found input driver: "dinput".
[INFO] [Core]: Loading dynamic libretro core from: "C:\Emulators\RetroArch-Win64\cores\flycast_libretro.dll"
[INFO] [Overrides]: Core-specific overrides found at "C:\Emulators\RetroArch-Win64\config\Flycast\Flycast.cfg".
[INFO] [Overrides]: Game-specific overrides found at "C:\Emulators\RetroArch-Win64\config\Flycast\disc.cfg".
[INFO] [Overrides]: Game-specific overrides stacking on top of previous overrides.
[INFO] [Config]: Loading config: "C:\Emulators\RetroArch-Win64\retroarch.cfg".
[INFO] [Config]: Appending override config: "C:\Emulators\RetroArch-Win64\config\Flycast\Flycast.cfg".
[INFO] [Config]: Appending override config: "C:\Emulators\RetroArch-Win64\config\Flycast\disc.cfg".
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] [Remaps]: Core-specific remap found at "C:\Emulators\RetroArch-Win64\config\remaps\Flycast\Flycast.rmp".
[INFO] [Overrides]: Redirecting save file to "C:\Emulators\RetroArch-Win64\saves\disc.srm".
[INFO] [Overrides]: Redirecting save state to "C:\Emulators\RetroArch-Win64\states\disc.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[libretro INFO] shell/libretro/libretro.cpp:312 N[BOOT]: retro_init
[INFO] [Environ]: GET_PERF_INTERFACE.
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[INFO] [Environ]: SET_KEYBOARD_CALLBACK.
[INFO] [Environ]: GET_DISK_CONTROL_INTERFACE_VERSION.
[INFO] [Environ]: SET_DISK_CONTROL_EXT_INTERFACE.
[libretro INFO] core/hw/mem/addrspace.cpp:431 N[VMEM]: Info: nvmem is enabled
[libretro INFO] core/hw/mem/addrspace.cpp:462 N[VMEM]: BASE 00007ff4dd620000 RAM(16 MB) 00007ff4e9620000 VRAM64(8 MB) 00007ff4e1620000 ARAM(2 MB) 00007ff4fd620000
[INFO] [Content]: Content loading skipped. Implementation will load it on its own.
[libretro INFO] shell/libretro/libretro.cpp:1813 N[BOOT]: retro_load_game: D:\ROMS and ISOS\Dreamcast\NBA 2K2\disc.gdi
[INFO] [Environ]: GET_RUMBLE_INTERFACE.
[INFO] [Environ]: SYSTEM_DIRECTORY: "C:\Emulators\RetroArch-Win64\system".
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[ERROR] [Environ]: GET_VARIABLE: pvr.rend - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: rend.PerStripSorting - Invalid value.
[libretro INFO] File extension is: .gdi
[INFO] [Environ]: GET_PREFERRED_HW_RENDER, video driver name: glcore.
[INFO] [Environ]: GET_PREFERRED_HW_RENDER - Context callback set to RETRO_HW_CONTEXT_OPENGL_CORE.
[INFO] [Environ]: SET_HW_RENDER, context type: glcore.
[INFO] Requesting core OpenGL context (3.2).
[libretro INFO] core/hw/mem/addrspace.cpp:431 N[VMEM]: Info: nvmem is enabled
[libretro INFO] core/hw/mem/addrspace.cpp:462 N[VMEM]: BASE 00007ff4dd620000 RAM(16 MB) 00007ff4e9620000 VRAM64(8 MB) 00007ff4e1620000 ARAM(2 MB) 00007ff4fd620000
[ERROR] [Environ]: GET_VARIABLE: pvr.rend - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: rend.PerStripSorting - Invalid value.
[libretro INFO] core/emulator.cpp:54 N[BOOT]: Game ID is [MK-51178]
[libretro INFO] core/emulator.cpp:568 N[BOOT]: Did not load BIOS, using reios
[libretro INFO] core/emulator.cpp:54 N[BOOT]: Game ID is [MK-51178]
[INFO] [Environ]: SET_ROTATION: 0
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [Replay]: Found last replay slot: #0
[INFO] [SRAM]: Skipping SRAM load.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[libretro INFO] shell/libretro/libretro.cpp:2162 N[RENDERER]: retro_get_system_av_info: Res=2880
[INFO] [Audio]: Set audio input rate to: 44100.00 Hz.
[INFO] [Video]: Timings deviate too much. Will not adjust. (Target = 120.00 Hz, Game = 60.00 Hz)
[INFO] [Video]: Set video size to: 2560x1440.
[INFO] [Video]: Using HW render, glcore driver forced.
[INFO] [GLCore]: Found GL context: "wgl".
[INFO] [GLCore]: Detecting screen resolution: 2560x1440.
[INFO] [WGL]: Extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_no_error WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_context_flush_control WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_colorspace WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_copy_image WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_multigpu_context WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle 
[INFO] [WGL]: Adaptive VSync supported.
[INFO] [GLCore]: Initializing HW render (8192x8192).
[INFO] [GLCore]: Max texture size: 32768 px, renderbuffer size: 32768 px.
[INFO] [GLCore]: Vendor: NVIDIA Corporation, Renderer: NVIDIA GeForce RTX 2060/PCIe/SSE2.
[INFO] [GLCore]: Version: 4.6.0 NVIDIA 536.23.
[INFO] [GLCore]: Using resolution 2560x1440.
[WARN] [DInput]: Strong rumble unavailable.
[WARN] [DInput]: Weak rumble unavailable.
[INFO] [Joypad]: Found joypad driver: "dinput".
[INFO] [GLCore]: Loading stock shader.
[INFO] [slang]: Building pass #0 (N/A)
[INFO] [GLCore]: Not using frame history.
[INFO] [GLCore]: Not using framebuffer feedback.
[INFO] [Video]: Found display server: "win32".
[libretro INFO] core/rend/gles/gles.cpp:562 N[RENDERER]: OpenGL version 4.6
[INFO] [Autoconf]: DualShock 4 Controller configured in port 1.
[INFO] [XAudio2]: Requesting 64 ms latency, using 64 ms latency.
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [Microphone]: Initialized microphone driver
[INFO] [Display]: Found display driver: "glcore".
[INFO] [MIDI]: Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "C:\Emulators\RetroArch-Win64\content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "C:\Emulators\RetroArch-Win64\content_favorites.lpl".
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[libretro INFO] core/reios/reios.cpp:616 N[REIOS]: -----------------
[libretro INFO] core/reios/reios.cpp:617 N[REIOS]: REIOS: Booting up
[libretro INFO] core/reios/reios.cpp:618 N[REIOS]: -----------------
[INFO] [Environ]: SET_GEOMETRY: 640x480, Aspect: 1.333.
[INFO] [Environ]: SET_GEOMETRY.
[INFO] [Environ]: SET_GEOMETRY: 640x480, Aspect: 1.333.
[INFO] [Environ]: SET_GEOMETRY.
[INFO] [Environ]: SET_GEOMETRY.
[INFO] [Config]: Loading config: "C:\Emulators\RetroArch-Win64\retroarch.cfg".
[INFO] [Overrides]: Configuration overrides unloaded, original configuration restored.
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 47 seconds.
[INFO] [Runtime]: Saving runtime log file: "C:\Emulators\RetroArch-Win64\playlists\logs\Flycast\disc.lrtl".
[INFO] [Core]: Unloading game..
[ERROR] [Environ]: GET_VARIABLE: pvr.rend - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: rend.PerStripSorting - Invalid value.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Core]: Saved core options file to "C:\Emulators\RetroArch-Win64\config\Flycast\Flycast.opt".
[INFO] [Video]: Average monitor Hz: 77.006006 Hz. (34.414 % frame time deviation, based on 2048 last samples).

It depends on your installation, if it is installed manually, it is updated manually, if it is through a software center or application store, the updates are automatic, but I can’t help you here, I use Linux.

Excellent!!! although you didn’t press the triggers (which are the problem), hopefully it won’t be necessary.
Your control driver is set to ‘Settings » Drivers » Controller » dinput
Try other drivers and test the triggers.

Does this help?

Are you sure? My input driver is dinput but my controller driver is set to xinput.

Unfortunately not. It still acts like its a button when lightly pressed.

The idea is that you change the driver to see if it works with another one. If none of them work, replace the default driver.

In this case, it is advisable to report the issue on github.

Copy this text…

and creates a log, loading the game and pressing the triggers.

Again, the correct url for reporting flycast issues is https://github.com/flyinghead/flycast/issues. Flyinghead might or might not answer if you report issues on the deprecated libretro repository.

What if it’s a button mapping problem in Retroarch?
Some time ago I had a similar failure and changing the driver, it worked.

@ENunn5 please try the standalone.
https://flyinghead.github.io/flycast-builds/