MiSTer-devel / PSX_MiSTer

PSX for MiSTer
GNU General Public License v2.0
204 stars 49 forks source link

Wipeout 3 Special Edition - difficulties saving game while using NeGcon via SNAC #283

Open Thelypody opened 3 months ago

Thelypody commented 3 months ago

PSX core: 20240318, Main: 20240329 (from unstable nighties). WipEout 3 - Special Edition (Europe) (En,Fr,De,Es,It)

I'm using a real NeGcon controller connected to MiSTer via SNAC. I'm using virtual memory cards for saves. Second controller is disabled in core settings. While playing Wipeout 3 SE, I encountered weird behavior from the game while saving. On the screen where the game asks you to choose a memory card, core suddenly starts thinking that a regular controller is connected, making inputs from NeGcon impossible.

20240401_045439-screen Options menu. Note text on the bottom referring to NeGcon's I and B buttons, absent from regular controllers. 20240401_045446-screen Load/Save menu. Same NeGcon buttons mentioned. 20240401_045451-screen Memory card select menu. The game suddenly starts referring to buttons as Cross and Triangle. Game doesn't respond to NeGcon inputs anymore.

This issue does not happen when NeGcon input is simulated via core controller settings; the game acts as normal, displays I and B on memory card select and accepts inputs.

Previously I played Wipeout (Europe), Wipeout 2097 (Europe), Tempest X3 (USA) and Ridge Racer Revolution (USA) and had no issues saving game to virtual memory card in those games.

RobertPeip commented 3 months ago

Most likely the detection for the pad<->memcard switch does not work in the core.

The core relies on the game to let go the controller interface select line low between both accesses. If the game doesn't do this, it will not switch back to SNAC after the virtual memcard was accesses. Typically games do that, that's why it's working most cases. Maybe this game does not.

Would need to be researched what the game does between both accesses and if a second detection or a more safe detection could be added.