The rumours are true; the Sega Saturn's System Manager and Peripheral Control (SMPC) chip is indeed a Hitachi HMCS400-series 4-bit micro!

This represents a delightful personal milestone / bucket list item for me!

The TEST pins on chips were always where things stopped for me, in the past. The manufacturer tells you exactly nothing about what will happen if you assert that pin and it's often subtle and complex... this case is no exception, but for whatever reason I decided to power through and achieved my goal: dumping the mask ROM with the chip's firmware!

Clear enough in hindsight, as always - it essentially lets you disconnect the ROM and feed in instructions from outside. Which, working out that that was even the scheme was quite a puzzle! And then dealing with the whole disconnected ROM thing, to actually get that data out. There's a couple of low-res die shots on siliconprawn[1] - not enough to read logic, but just enough to trace some lines and build confidence that it /might/ expose enough innards to work!

[1] https://siliconpr0n.org/archive/doku.php?id=d356:sega:315-5744-smpc

So that was fun last night and now I have an emulator for the HMCS400 plus the weird special Sega sauce that is about 90% complete :D

Nobody really needed this, it's an easy enough block to emulate, but it /does/ have some undocumented functionality and now we can find out what!

the only interesting undocumented feature I have found after all that is... what looks like a half-baked Nintendo CIC-style copy protection? it can send some randomly generated bits serially to the cartridge port, read some bits back, apply some manglement to the combination and hand the resulting stew back to the main CPUs

which is especially unusual for a CD based console??

I haven't documented it yet but for the sake of not losing it all the relevant stuff is pushed here including disassembler and emulator; it happily runs requests and even returns packets read from gamepads:

https://codeberg.org/abrasive/smpc-emulator

smpc-emulator

Emulator for the Sega Saturn's SMPC (System Mangler and Peripheral Churner), which is a little 4-bit microcontroller hiding in there

Codeberg.org
ok I take this back apparently getting the timing right is a huge compatibility nightmare so this makes emulator devs and users' lives better! weew for utiliity :3