it seems like fightcade hasn't actually been updated since the start of the year. From the outside it looks like the main dev is wrapped up in other business as well as trying to get duckstation integrated into fightcade. So the ETA on Sega C-2 with rollback netcode is gonna have to wait.
Right now I'm focusing on creating a custom PP2 savestate for fightcade. The main goals of the savestate are:
- Setting the dipswitch to enable freeplay (easy)
- Cheating the wait timer from 10 seconds to 100 seconds (done)
- Getting players into the match screen as quickly as possible (easy..?)
- Ensuring the RNG seed is sufficiently randomized (...)
That last one is tricky to nail down. The way PP2 is written, the seed is set to a fixed number on boot (0x35879DE2 if you are curious) and only gets iterated when random events fire off. So the issue is that the closer you set the savestate to game start, the fewer opportunities you have to sufficiently randomize the RNG before the start of a game. I was able to consistently get the exact same seed from cold boot just by mashing start.
It might be a better question to ask what exactly causes the RNG to be called? From some limited analysis, it seems like the following things do it:
- The flashes and sparkles in the attract animation
- Puyos blinking on the game field (including during the attract demo)
- Something to do with the background characters animating in the waiting for player screen..?
Waiting for the attract sequence to run long enough to make enough RNG calls is a no-go since it takes so long to get a sufficiently randomized number of calls in, so the recruit screen is the next best bet. It's also only one screen removed from the start of a game -- unfortunately, it doesn't seem like anything on the mode select screen calls the RNG.
The main issue is that whatever calls the RNG on the recruit screen doesn't do so evenly -- it only makes calls about every 1-2 seconds. So that's still infrequent enough to be able to game the RNG if you know what's up.
Right now my gameplan is to try to see if the update rate for the background animations can be modified in RAM somehow - if I can get the RNG call to happen every frame, for example, you'd get a lot more randomization of the seed for the first match of the set. Right now I'm using the MAME debugger to step through the assembly code to look for calls to RAM around calls to the RNG function. I'm not a big fan of the MAME debugger, but I can't figure out how to get Ghidra to properly disassemble the m86k ROM, or how to set up ASM breakpoints in Bizhawk. If you know how I'd love to hear how!
It'd be cool to figure out if it's possible to corrupt the savestate to spawn an RNG-based sprite on the mode select screen to cut down on one more menu. That's way outside of my skillset though.
There are basically infinite games on there and it takes 5 seconds to boot up. I can't stress how much fun I've had mashing with people in obscure games. Even if you don't end up getting really deep into them, it builds a good mindset and makes it easier to pick up big new releases when they roll around. It's super easy to set up as well: download it from
I can't speak for the in-person experience because the last time I was at EVO was 2015, but as a viewer it kinda sucks when you see more ads than games. Now CB has incredible vibes, tons of side games that get attention, and less huge ad breaks to take you out of it. It's still the number one event to me. It's a lot more accessible and less hot and crowded than EVO's Vegas location, being in Chicago. I even wrote a full article on the Mystery Game, a still-living tradition from the region. You can read that
I get it, a big part of fighting games is the fact that anyone could be a top player. This doesn't mean you have to force yourself to play when you're not having fun, much less worry about results. So what if you went 0-2 at your first local or got placed into Bronze on ranked? You're here to have a good time at the end of the day. None of this would exist without people like you, no matter what anyone says.