Hardware Projects‎ > ‎SNES‎ > ‎

Capcom Cx4 Coprocessor

Among the least-understood of the Super Nintendo coprocessors is the Capcom Cx4.  Used in Mega Man X2 and Mega Man X3 (Rockman X2/X3 in Japan), it was used to to perform general trigonometric calculations for wireframe effects, sprite positioning and rotation.  Back in 2008, the Cx4 was successfully decapped, and as a result, the instruction set was reverse-engineered and the data ROM was dumped.  As a result, we now have low-level emulation support for it in higan, but there's still not a whole lot of information out there, so I'm trying to collect as much as I can here.  To start out, byuu asked me to build him a re-programmable cart so he could run his own code and test it out, so the first step was to trace out the chip's pinout.  I wasn't able to find an existing one, so I started from scratch.  I picked up both existing official Cx4 PCB's, the SHVC-1DC0N-01 (Rockman X3), and SHVC-2DC0N-01 (Rockman X2), and my tracing results are recorded here.

 1
 A3 21 A15 41 RA8 61 /IRQ
 2 A4 22 A14 42 RA7 62 D7
 3 A5 23 A13 43 RA6 63 D6
 4 A6 24 A12 44 RA5 64 D5
 5 A7 25 /SRCE 45 RA4 65 D4
 6 A8 26 /RCE2 46 RA3 66 Vcc
 7 A9 27 /RCE1 47 RA2 67 D3
 8 A10 28 RA19 48 RA1 68 D2
 9 A11 29 RA18 49 RA0 69 D1
 10 GND 30 RA17 50 GND 70 D0
 11 XIN 31 Vcc 51 /RWE 71 Vcc
 12 XOUT 32 RA16 52 /ROE 72 /RST
 13 A23 33 RA15 53 RD7 73 GND
 14 A22 34 RA20 54 RD6 74 ??
 15 A21 35 RA14 55 RD5 75 ??
 16 A20 36 RA13 56 RD4 76 /RD
 17 A19 37 RA12 57 RD3 77 /WR
 18 A18 38 RA11 58 RD2 78 A0
 19 A17 39 RA10 59 RD1 79 A1
 20 A16 40 RA9 60 RD0 80 A2

Pins 74 and 75 are connected to GND on both official PCB's but are not connected internally to GND.  They're most likely inputs of some kind.  Maybe a Hi/LoROM switch like pin #10 on the MAD-1, or something like that, but right now, that's pure speculation.

The Cx4 supports either 1x16Mbit ROM or 2x8Mbit ROMs, and 1x256Kbit SRAM (though neither official cart included SRAM).

ROM is mapped to $00-$7F,$80-$FF:8000-FFFF
SRAM is mapped to $70-$77:0000-7FFF