trunk/src/mame/video/cps1.c
| r30713 | r30714 | |
| 1269 | 1269 | }; |
| 1270 | 1270 | |
| 1271 | 1271 | |
| 1272 | |
| 1273 | /* |
| 1274 | Name knm10b; |
| 1275 | PartNo ; |
| 1276 | Date ; |
| 1277 | Revision ; |
| 1278 | Designer ; |
| 1279 | Company ; |
| 1280 | Assembly ; |
| 1281 | Location ; |
| 1282 | Device g16v8; |
| 1283 | |
| 1284 | Dedicated input pins |
| 1285 | |
| 1286 | pin 1 = I0; Input |
| 1287 | pin 2 = I1; Input |
| 1288 | pin 3 = I2; Input |
| 1289 | pin 4 = I3; Input |
| 1290 | pin 5 = I4; Input |
| 1291 | pin 6 = I5; Input |
| 1292 | pin 7 = I6; Input |
| 1293 | pin 8 = I7; Input |
| 1294 | pin 9 = I8; Input |
| 1295 | pin 11 = I9; Input |
| 1296 | |
| 1297 | Programmable output pins |
| 1298 | |
| 1299 | pin 12 = B0; Combinatorial output |
| 1300 | pin 13 = B1; Combinatorial output |
| 1301 | pin 14 = B2; Combinatorial output |
| 1302 | pin 15 = B3; Combinatorial output |
| 1303 | pin 16 = B4; Combinatorial output |
| 1304 | pin 17 = B5; Combinatorial output |
| 1305 | pin 18 = B6; Combinatorial output |
| 1306 | pin 19 = B7; Combinatorial output |
| 1307 | |
| 1308 | Output equations |
| 1309 | |
| 1310 | !B7 = !I0 & !I1 & !I2 & !I3 & !I4 & !I5 & !I9 |
| 1311 | # I0 & !I1 & !I2 & !I3 & !I4 & !I5 & I9; |
| 1312 | !B6 = !I0 & !I1 & !I2 & !I3 & !I4 & !I5 & !I9 |
| 1313 | # I0 & !I1 & !I2 & !I3 & !I4 & !I5 & I9; |
| 1314 | !B5 = !I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9 |
| 1315 | # I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9; |
| 1316 | !B4 = !I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9 |
| 1317 | # I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9; |
| 1318 | !B3 = !I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & !I9 |
| 1319 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & !I9 |
| 1320 | # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & !I9 |
| 1321 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & !I9 |
| 1322 | # !I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & !I9 |
| 1323 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & !I9 |
| 1324 | # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & !I9 |
| 1325 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & !I9 |
| 1326 | # I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & I9 |
| 1327 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & I9 |
| 1328 | # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & I9 |
| 1329 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & I9 |
| 1330 | # I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & I9 |
| 1331 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & I9 |
| 1332 | # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & I9 |
| 1333 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & I9; |
| 1334 | !B2 = !I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & !I9 |
| 1335 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & !I9 |
| 1336 | # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & !I9 |
| 1337 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & !I9 |
| 1338 | # !I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & !I9 |
| 1339 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & !I9 |
| 1340 | # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & !I9 |
| 1341 | # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & !I9 |
| 1342 | # I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & I9 |
| 1343 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & I9 |
| 1344 | # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & I9 |
| 1345 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & I9 |
| 1346 | # I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & I9 |
| 1347 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & I9 |
| 1348 | # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & I9 |
| 1349 | # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & I9; |
| 1350 | !B1 = !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 |
| 1351 | # !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 |
| 1352 | # !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 |
| 1353 | # !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 |
| 1354 | # !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 |
| 1355 | # !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 |
| 1356 | # !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 |
| 1357 | # !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8; |
| 1358 | !B0 = I0 & I9; |
| 1359 | |
| 1360 | */ |
| 1361 | // wrong, need to figure this out from the PAL |
| 1362 | |
| 1363 | #define mapper_KNM10B { 0x8000, 0x8000, 0x8000, 0 }, mapper_KNM10B_table |
| 1364 | static const struct gfx_range mapper_KNM10B_table[] = |
| 1365 | { |
| 1366 | /* type start end bank */ |
| 1367 | { GFXTYPE_SPRITES , 0x00000, 0x07fff, 0 }, |
| 1368 | { GFXTYPE_SCROLL2 , 0x00000, 0x07fff, 0 }, |
| 1369 | { GFXTYPE_SCROLL1, 0x01000, 0x01fff, 2 }, |
| 1370 | { GFXTYPE_SCROLL3 , 0x01000, 0x01fff, 2 }, |
| 1371 | { 0 } |
| 1372 | }; |
| 1373 | |
| 1374 | |
| 1375 | |
| 1272 | 1376 | static const struct CPS1config cps1_config_table[]= |
| 1273 | 1377 | { |
| 1274 | 1378 | /* name CPSB gfx mapper in2 in3 out2 kludge */ |
| r30713 | r30714 | |
| 1473 | 1577 | |
| 1474 | 1578 | {"cps2", CPS_B_21_DEF, mapper_cps2 }, |
| 1475 | 1579 | |
| 1580 | /* CPS1 board + extra support boards */ |
| 1581 | {"kenseim", CPS_B_21_DEF, mapper_KNM10B }, // wrong, need to convert equations from PAL |
| 1582 | |
| 1476 | 1583 | {0} /* End of table */ |
| 1477 | 1584 | }; |
| 1478 | 1585 | |
trunk/src/mame/drivers/kenseim.c
| r0 | r30714 | |
| 1 | /* Kensei Mogura |
| 2 | aka Street Fighter II Whac-a-mole game */ |
| 3 | |
| 4 | /* |
| 5 | this game uses a CPS1 board as the 'Video board' |
| 6 | the main game is driven by an additional PCB containing a TMPZ84C011 and MB89363B |
| 7 | moles + hammer are physical non-video parts |
| 8 | |
| 9 | https://www.youtube.com/watch?v=wk71y7OGU-k |
| 10 | https://www.youtube.com/watch?v=mV00MMyBBXM |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | Additional PCB (todo, ascii layout) |
| 16 | |
| 17 | -------------------------- |
| 18 | | |
| 19 | | |
| 20 | | KENSEI MOGURA |
| 21 | | 9401-TS280 |
| 22 | | TOGO JAPAN |
| 23 | | |
| 24 | |
| 25 | */ |
| 26 | |
| 27 | // note: I've kept this code out of cps1.c as there is likely to be a substantial amount of game specific code here ones all the extra hardware is emulated |
| 28 | |
| 29 | #include "emu.h" |
| 30 | #include "cpu/z80/z80.h" |
| 31 | #include "includes/cps1.h" |
| 32 | |
| 33 | class kenseim_state : public cps_state |
| 34 | { |
| 35 | public: |
| 36 | kenseim_state(const machine_config &mconfig, device_type type, const char *tag) |
| 37 | : cps_state(mconfig, type, tag) { } |
| 38 | |
| 39 | /* kenseim */ |
| 40 | DECLARE_READ16_MEMBER(cps1_kensei_r); |
| 41 | DECLARE_DRIVER_INIT(kenseim); |
| 42 | }; |
| 43 | |
| 44 | |
| 45 | READ16_MEMBER(kenseim_state::cps1_kensei_r) |
| 46 | { |
| 47 | return rand(); |
| 48 | } |
| 49 | |
| 50 | /* |
| 51 | Manufacturer: Fujitsu |
| 52 | Part Number: MB89363 / MB89363B / MB89363R |
| 53 | Package: Surface Mount QFP80 / QFP64P (MB89363R) |
| 54 | Description: 8-bit x 3 x 2 (6 x 8-bit) parallel data I/O port VLSI chip |
| 55 | Parallel Communication Interface |
| 56 | Extended I/O |
| 57 | |
| 58 | Note: MB89363B is compatible with 8255 |
| 59 | |
| 60 | Pin Assignment: |
| 61 | +5v |
| 62 | P P P P P P P P P V P P P P P P P P P |
| 63 | N N 5 4 4 4 4 4 4 4 4 C N 1 1 1 1 1 1 1 1 2 N N |
| 64 | C C 3 0 1 2 3 4 5 6 7 C C 7 6 5 4 3 2 1 0 3 C C |
| 65 | |
| 66 | | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | | |
| 67 | | | | | | | | | | | | | | | | | | | | | | | | | |
| 68 | | | v v v v v v v v v | | v v v v v v v v v | | |
| 69 | .-------------------------------------------------------. |
| 70 | | 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 | |
| 71 | | 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 | |
| 72 | P52 <-> | 65 40 | <-> P22 |
| 73 | P51 <-> | 66 39 | <-> P21 |
| 74 | P50 <-> | 67 38 | <-> P20 |
| 75 | P54 <-> | 68 37 | <-> P24 |
| 76 | P55 <-> | 69 36 | <-> P25 |
| 77 | P56 <-> | 70 35 | <-> P26 |
| 78 | P57 <-> | 71 34 | <-> P27 |
| 79 | NC --- | 72 MB89363B 33 | --- NC |
| 80 | NC --- | 73 32 | <-- RSLCT1 |
| 81 | GND --> | 74 31 | <-- RSLCT0 |
| 82 | CS2 --> | 75 30 | <-- GND |
| 83 | R --> | 76 29 | <-- CS1 |
| 84 | P30 <-> | 77 28 | <-> P00 |
| 85 | P31 <-> | 78 27 | <-> P01 |
| 86 | P32 <-> | 79 26 | <-> P02 |
| 87 | P33 <-> | 80 25 | <-> P03 |
| 88 | \ 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 | |
| 89 | \ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 | |
| 90 | -----------------------------------------------------' |
| 91 | ^ ^ ^ ^ ^ ^ | | ^ | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | |
| 92 | | | | | | | | | | | | | | | | | | | | | | | | | |
| 93 | v v v v | | | | | | | v v v v v v v v v v v v | |
| 94 | |
| 95 | P P P P W R N N R N O D D D D D D D D P P P P N |
| 96 | 3 3 3 3 S C C H C U B B B B B B B B 0 0 0 0 C |
| 97 | 4 5 6 7 T / S 0 1 2 3 4 5 6 7 7 6 5 4 |
| 98 | R / |
| 99 | L I |
| 100 | N |
| 101 | S |
| 102 | |
| 103 | Block Diagram / Pin Descriptions: |
| 104 | http://www.mess.org/_media/datasheets/fujitsu/mb89363b_partial.pdf |
| 105 | |
| 106 | D.C. Characteristics: |
| 107 | (Recommended operating conditions unless otherwise noted) |
| 108 | (VCC = +5V +- 10%, GND = 0V, TA = -40o C to 85o C) |
| 109 | Value |
| 110 | Parameter Symbol Min Max Unit Test Condition |
| 111 | ---------------------------------------------------------------------------------- |
| 112 | Input Low Voltage ViL -0.3 0.8 V |
| 113 | Input High Voltage ViH 2.2 VCC +0.3 V |
| 114 | Output Low Voltage VoL - 0.4 V IoL = 2.5mA |
| 115 | Output High Voltage VoH 3.0 - V IoH =-2.5mA |
| 116 | |
| 117 | Sources: |
| 118 | http://www.emb-tech.co.jp/pc104/96dio.pdf |
| 119 | http://www.pb5800.com/resources/2350ser01.pdf |
| 120 | http://www.diagramasde.com/diagramas/otros2/TS-850S%20Service%20Manual%20.pdf |
| 121 | */ |
| 122 | |
| 123 | static ADDRESS_MAP_START( kenseim_map, AS_PROGRAM, 8, kenseim_state ) |
| 124 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 125 | AM_RANGE(0xf000, 0xffff) AM_RAM |
| 126 | ADDRESS_MAP_END |
| 127 | |
| 128 | static ADDRESS_MAP_START( kenseim_io_map, AS_IO, 8, kenseim_state ) |
| 129 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 130 | |
| 131 | // tmpz84c011 |
| 132 | // AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r,tmpz84c011_0_pa_w) |
| 133 | // AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_0_pb_r,tmpz84c011_0_pb_w) |
| 134 | // AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_0_pc_r,tmpz84c011_0_pc_w) |
| 135 | // AM_RANGE(0x30, 0x30) AM_READWRITE(tmpz84c011_0_pd_r,tmpz84c011_0_pd_w) |
| 136 | // AM_RANGE(0x40, 0x40) AM_READWRITE(tmpz84c011_0_pe_r,tmpz84c011_0_pe_w) |
| 137 | // AM_RANGE(0x54, 0x54) AM_READWRITE(tmpz84c011_0_dir_pa_r,tmpz84c011_0_dir_pa_w) |
| 138 | // AM_RANGE(0x55, 0x55) AM_READWRITE(tmpz84c011_0_dir_pb_r,tmpz84c011_0_dir_pb_w) |
| 139 | // AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_0_dir_pc_r,tmpz84c011_0_dir_pc_w) |
| 140 | // AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_0_dir_pd_r,tmpz84c011_0_dir_pd_w) |
| 141 | // AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r,tmpz84c011_0_dir_pe_w) |
| 142 | ADDRESS_MAP_END |
| 143 | |
| 144 | |
| 145 | static MACHINE_CONFIG_DERIVED_CLASS( kenseim, cps1_12MHz, kenseim_state ) |
| 146 | |
| 147 | MCFG_CPU_ADD("gamecpu", TMPZ84C011, XTAL_16MHz) // tmpz84c011 - divider unknown |
| 148 | MCFG_CPU_PROGRAM_MAP(kenseim_map) |
| 149 | MCFG_CPU_IO_MAP(kenseim_io_map) |
| 150 | MACHINE_CONFIG_END |
| 151 | |
| 152 | static INPUT_PORTS_START( kenseim ) |
| 153 | // the regular CPS1 input ports are used for comms with the extra board |
| 154 | PORT_START("IN0") |
| 155 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 156 | |
| 157 | PORT_START("IN1") |
| 158 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 159 | |
| 160 | // most of the regular CPS1 dips are unused |
| 161 | PORT_START("DSWA") |
| 162 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "CPSA SW(A):1" ) |
| 163 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "CPSA SW(A):2" ) |
| 164 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "CPSA SW(A):3" ) |
| 165 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "CPSA SW(A):4" ) |
| 166 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "CPSA SW(A):5" ) |
| 167 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "CPSA SW(A):6" ) |
| 168 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "CPSA SW(A):7" ) |
| 169 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "CPSA SW(A):8" ) |
| 170 | |
| 171 | PORT_START("DSWB") |
| 172 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "CPSA SW(B):1" ) |
| 173 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "CPSA SW(B):2" ) |
| 174 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "CPSA SW(B):3" ) |
| 175 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "CPSA SW(B):4" ) |
| 176 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "CPSA SW(B):5" ) |
| 177 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "CPSA SW(B):6" ) |
| 178 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "CPSA SW(B):7" ) |
| 179 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "CPSA SW(B):8" ) |
| 180 | |
| 181 | PORT_START("DSWC") |
| 182 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "CPSA SW(C):1" ) |
| 183 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "CPSA SW(C):2" ) |
| 184 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "CPSA SW(C):3" ) |
| 185 | PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("CPSA SW(C):4") |
| 186 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 187 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 188 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("CPSA SW(C):5") |
| 189 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 190 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 191 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("CPSA SW(C):6") |
| 192 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 193 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 194 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "CPSA SW(C):7" ) |
| 195 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "CPSA SW(C):8" ) |
| 196 | |
| 197 | // the extra board has 2 dip banks used for most game options |
| 198 | PORT_START("DSW1") |
| 199 | PORT_DIPUNKNOWN( 0x01, 0x01 ) |
| 200 | PORT_DIPUNKNOWN( 0x02, 0x02 ) |
| 201 | PORT_DIPUNKNOWN( 0x04, 0x04 ) |
| 202 | PORT_DIPUNKNOWN( 0x08, 0x08 ) |
| 203 | PORT_DIPUNKNOWN( 0x10, 0x10 ) |
| 204 | PORT_DIPUNKNOWN( 0x20, 0x20 ) |
| 205 | PORT_DIPUNKNOWN( 0x40, 0x40 ) |
| 206 | PORT_DIPUNKNOWN( 0x80, 0x80 ) |
| 207 | |
| 208 | PORT_START("DSW2") |
| 209 | PORT_DIPUNUSED( 0x01, 0x01 ) |
| 210 | PORT_DIPUNUSED( 0x02, 0x02 ) |
| 211 | PORT_DIPUNUSED( 0x04, 0x04 ) |
| 212 | PORT_DIPUNUSED( 0x08, 0x08 ) |
| 213 | PORT_DIPUNUSED( 0x10, 0x10 ) |
| 214 | PORT_DIPUNUSED( 0x20, 0x20 ) |
| 215 | PORT_DIPUNUSED( 0x40, 0x40 ) |
| 216 | PORT_DIPUNUSED( 0x80, 0x80 ) |
| 217 | INPUT_PORTS_END |
| 218 | |
| 219 | ROM_START( kenseim ) |
| 220 | ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */ |
| 221 | ROM_LOAD16_WORD_SWAP( "knm_23.8f", 0x000000, 0x80000, CRC(f8368900) SHA1(07a8e9fffcf7be6cb154b60a0559211bc7127c5d) ) |
| 222 | ROM_LOAD16_WORD_SWAP( "knm_21.6f", 0x100000, 0x80000, CRC(a8025e91) SHA1(24cd3f34ae96947a1101e5f5cb6cf0d1c1d66dc0) ) |
| 223 | |
| 224 | ROM_REGION( 0x600000, "gfx", 0 ) |
| 225 | ROMX_LOAD( "knm_01.3a", 0x000000, 0x80000, CRC(923f0c0c) SHA1(2569543ba33900d1e9c7c3981c8fe1cb40743546) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 226 | ROMX_LOAD( "knm_02.4a", 0x000002, 0x80000, CRC(fa694f67) SHA1(b1ffbeaba71619e9b52f1f50abc7dafe2f3332b1) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 227 | ROMX_LOAD( "knm_03.5a", 0x000004, 0x80000, CRC(af7af02c) SHA1(ce2e0c696b50e4806f25fc69bf4455048c9fa396) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 228 | ROMX_LOAD( "knm_04.6a", 0x000006, 0x80000, CRC(607a9af4) SHA1(78862e37c1fa727d9e36099e87ee17dfa9d2498f) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 229 | ROMX_LOAD( "knm_05.7a", 0x200000, 0x80000, CRC(d877eee9) SHA1(d63e123fa6c1f9927cec3cf93474f31729348fd5) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 230 | ROMX_LOAD( "knm_06.8a", 0x200002, 0x80000, CRC(8821a281) SHA1(216305421783baa20994eec33e26537f69f34fcb) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 231 | ROMX_LOAD( "knm_07.9a", 0x200004, 0x80000, CRC(00306d09) SHA1(581c4ba6f9eb3050d6bf989016532457314441e4) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 232 | ROMX_LOAD( "knm_08.10a", 0x200006, 0x80000, CRC(4a329d16) SHA1(60d66cec8c226ef49890d8b2cd82d798dfefa049) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 233 | ROMX_LOAD( "knm_10.3c", 0x400000, 0x80000, CRC(ca93a942) SHA1(1f293617e6f202054690035ebe6b6e45ffe68cc9) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 234 | ROMX_LOAD( "knm_11.4c", 0x400002, 0x80000, CRC(a91f3091) SHA1(7cddcd30aa6a561ce297b877611ffabfac10be28) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 235 | ROMX_LOAD( "knm_12.5c", 0x400004, 0x80000, CRC(5da8303a) SHA1(de30149e323f7892bb9967a98a0d3cd9c261dc69) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 236 | ROMX_LOAD( "knm_13.6c", 0x400006, 0x80000, CRC(889bb671) SHA1(c7952ed801343e79c06be8ed765a293e7322307b) , ROM_GROUPWORD | ROM_SKIP(6) ) |
| 237 | |
| 238 | ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ |
| 239 | ROM_LOAD( "knm_09.12a", 0x00000, 0x08000, CRC(15394dd7) SHA1(d96413cc8fa6cd3cfdafb2ab6305e41cfd2b8874) ) |
| 240 | ROM_CONTINUE( 0x10000, 0x18000 ) |
| 241 | |
| 242 | ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ |
| 243 | ROM_LOAD( "knm_18.11c", 0x00000, 0x20000, CRC(9e3e4773) SHA1(6e750a9610fabc4bf4964b5a754414d612d43dec) ) |
| 244 | ROM_LOAD( "knm_19.12c", 0x20000, 0x20000, CRC(d6c4047f) SHA1(1259a3cbfc14c348ce4bd87b5de5e97ad252f7fb) ) |
| 245 | |
| 246 | // to do, verify these are the correct plds |
| 247 | |
| 248 | ROM_REGION( 0x0200, "aboardplds", ROMREGION_ERASE00 ) |
| 249 | ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) |
| 250 | ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) |
| 251 | ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) |
| 252 | ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) |
| 253 | ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) |
| 254 | |
| 255 | ROM_REGION( 0x0200, "bboardplds", ROMREGION_ERASE00 ) |
| 256 | ROM_LOAD( "knm10b.1a", 0x0000, 0x0117, NO_DUMP ) |
| 257 | ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) |
| 258 | ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) |
| 259 | |
| 260 | ROM_REGION( 0x0200, "cboardplds", ROMREGION_ERASE00 ) |
| 261 | ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) |
| 262 | ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) |
| 263 | |
| 264 | ROM_REGION( 0x08000, "gamecpu", 0 ) |
| 265 | ROM_LOAD( "kensei_mogura_ver1.0.u2", 0x00000, 0x08000, CRC(725cfcfc) SHA1(5a4c6e6efe2ddb38bec3218e55a746ea0146209f) ) |
| 266 | ROM_END |
| 267 | |
| 268 | DRIVER_INIT_MEMBER(kenseim_state,kenseim) |
| 269 | { |
| 270 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x800007, read16_delegate(FUNC(kenseim_state::cps1_kensei_r),this)); |
| 271 | DRIVER_INIT_CALL(cps1); |
| 272 | } |
| 273 | |
| 274 | |
| 275 | // 1994.04.18 is from extra PCB rom, Siguma or Sigma? (Siguma is in the ROM) |
| 276 | // the CPS1 board roms contain "M O G U R A 9 2 0 9 2 4" strings suggesting that part of the code was developed earlier |
| 277 | GAME( 1994, kenseim, 0, kenseim, kenseim, kenseim_state, kenseim, ROT0, "Sigma / Togo / Capcom", "Kensei Mogura (1994.04.18, Ver 1.00)", GAME_NOT_WORKING ) |
| 278 | |