Phil Stroffolino Mjolnir WIP

Phil Stroffolino posted some WIP news for Mjolnir. Many Namco games support a “link up” feature, using the C139 controller.
This allows the operator to connect up to 8 PCBs for multiplayer, LAN-style gaming.

This is used in a many games, including:
- the Final Lap series
- Cyber Sled
- Winning Run
- Driver’s Eyes
- Ridge Racer
- Time Crisis
…just to name a few.

Driver’s Eyes is an interesting use case, as the controller is used to link the separate displays (left, middle, and right monitor) for a single-player game.

I’ve 90% reverse engineered the controller, and completed some tests.

But there a more fundamental architectural problem that needs to be solved before it can be supported in a mainstream emulator: how to support emulation where for any game, 1..8 PCB instances might be present?

It’s not easy to take a driver and modify it to support multiple instances. You’d have to declare additional instances of virtual CPUs, input ports, monitors. Many emulated components are currently written to assume a single instance. Which variants shold be supported for any game - “1 cab”? “5 cabs” Even if these weren’t troublesome on their own, emulating “all pcbs” within a single process on a local machine is not practical from a performance perspective.

Towards this end, I’m exploring support for running N PCB instances using separate processes for each PCB, and pipes for the inter-CPU communication/synchronization. The goal is to allow PCBs to be emulated on different physical machines if so desired.

Check out Phil Stroffolino’s post here.

Leave a Reply

You must be logged in to post a comment.