trunk/src/mame/drivers/sfcbox.c
r17555 | r17556 | |
135 | 135 | required_device <mb90092_device> m_mb90092; |
136 | 136 | |
137 | 137 | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 138 | |
| 139 | DECLARE_WRITE8_MEMBER( port_81_w ); |
138 | 140 | }; |
139 | 141 | |
140 | 142 | UINT32 sfcbox_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) |
r17555 | r17556 | |
179 | 181 | AM_RANGE(0x60000, 0x67fff) AM_NOP // grom slot 1 |
180 | 182 | ADDRESS_MAP_END |
181 | 183 | |
| 184 | WRITE8_MEMBER( sfcbox_state::port_81_w ) |
| 185 | { |
| 186 | device_set_input_line(m_maincpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); |
| 187 | device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); |
182 | 188 | |
| 189 | ioport("OSD_CS")->write(data, 0xff); |
| 190 | } |
183 | 191 | |
184 | 192 | static ADDRESS_MAP_START( sfcbox_io, AS_IO, 8, sfcbox_state ) |
185 | 193 | AM_RANGE(0x0b, 0x0b) AM_DEVWRITE("mb90092",mb90092_device,write) |
186 | 194 | AM_RANGE(0x00, 0x3f) AM_RAM // internal i/o |
187 | 195 | // AM_RANGE(0x80, 0x80) // Keyswitch and Button Inputs / SNES Transfer and Misc Output |
188 | | // AM_RANGE(0x81, 0x81) // SNES Transfer and Misc Input / Misc Output |
| 196 | AM_RANGE(0x81, 0x81) AM_WRITE(port_81_w) // SNES Transfer and Misc Input / Misc Output |
189 | 197 | // AM_RANGE(0x82, 0x82) // Unknown/unused |
190 | 198 | // AM_RANGE(0x83, 0x83) // Joypad Input/Status / Joypad Output/Control |
191 | 199 | // AM_RANGE(0x84, 0x84) // Joypad 1, MSB (1st 8 bits) (eg. Bit7=ButtonB, 0=Low=Pressed) |
r17555 | r17556 | |
199 | 207 | |
200 | 208 | |
201 | 209 | static INPUT_PORTS_START( snes ) |
| 210 | PORT_START("OSD_CS") |
| 211 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mb90092", mb90092_device, set_cs_line) |
| 212 | |
202 | 213 | PORT_START("SERIAL1_DATA1_L") |
203 | 214 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Button A") PORT_PLAYER(1) |
204 | 215 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Button X") PORT_PLAYER(1) |
r17555 | r17556 | |
342 | 353 | MACHINE_CONFIG_END |
343 | 354 | |
344 | 355 | |
| 356 | static MACHINE_START( sfcbox ) |
| 357 | { |
| 358 | sfcbox_state *state = machine.driver_data<sfcbox_state>(); |
| 359 | |
| 360 | MACHINE_START_CALL(snes); |
| 361 | |
| 362 | state->m_is_sfcbox = 1; |
| 363 | } |
| 364 | |
| 365 | static MACHINE_RESET( sfcbox ) |
| 366 | { |
| 367 | sfcbox_state *state = machine.driver_data<sfcbox_state>(); |
| 368 | |
| 369 | MACHINE_RESET_CALL( snes ); |
| 370 | |
| 371 | /* start with both CPUs disabled */ |
| 372 | device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, ASSERT_LINE); |
| 373 | device_set_input_line(state->m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE); |
| 374 | } |
| 375 | |
345 | 376 | static MACHINE_CONFIG_DERIVED( sfcbox, snes ) |
346 | 377 | |
347 | 378 | MCFG_CPU_ADD("bios", Z180, XTAL_12MHz / 2) /* HD64180RF6X */ |
348 | 379 | MCFG_CPU_PROGRAM_MAP(sfcbox_map) |
349 | 380 | MCFG_CPU_IO_MAP(sfcbox_io) |
350 | 381 | |
351 | | MCFG_MB90092_ADD("mb90092",XTAL_12MHz / 2) /* TODO: pixel clock */ |
| 382 | MCFG_MB90092_ADD("mb90092",XTAL_12MHz / 2) /* TODO: correct clock */ |
352 | 383 | |
353 | | /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs for now */ |
| 384 | MCFG_MACHINE_START( sfcbox ) |
| 385 | MCFG_MACHINE_RESET( sfcbox ) |
| 386 | |
| 387 | /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs */ |
354 | 388 | MCFG_DEFAULT_LAYOUT(layout_dualhsxs) |
355 | 389 | |
356 | 390 | MCFG_SCREEN_ADD("osd", RASTER) |
r17555 | r17556 | |
375 | 409 | ROM_LOAD( "spc700.rom", 0x00, 0x40, CRC(44bb3a40) SHA1(97e352553e94242ae823547cd853eecda55c20f0) ) \ |
376 | 410 | ROM_REGION( 0x10000, "krom", 0 ) \ |
377 | 411 | ROM_LOAD( "krom1.ic1", 0x00000, 0x10000, CRC(c9010002) SHA1(f4c74086a83b728b1c1af3a021a60efa80eff5a4) ) \ |
| 412 | ROM_REGION( 0x100000, "user3", 0 ) \ |
| 413 | ROM_LOAD( "atrom-4s-0.rom5", 0x00000, 0x80000, CRC(ad3ec05c) SHA1(a3d336db585fe02a37c323422d9db6a33fd489a6) ) \ |
378 | 414 | |
379 | 415 | |
380 | 416 | ROM_START( sfcbox ) |
r17555 | r17556 | |
386 | 422 | ROM_START( pss61 ) |
387 | 423 | SFCBOX_BIOS |
388 | 424 | |
389 | | ROM_REGION( 0x100000, "atrom", 0 ) |
390 | | ROM_LOAD( "atrom-4s-0.rom5", 0x00000, 0x80000, CRC(ad3ec05c) SHA1(a3d336db585fe02a37c323422d9db6a33fd489a6) ) |
391 | | |
392 | 425 | ROM_REGION( 0x8000, "grom", 0 ) |
393 | 426 | ROM_LOAD( "grom1-1.ic1", 0x0000, 0x8000, CRC(333bf9a7) SHA1(5d0cd9ca29e5580c3eebe9f136839987c879f979) ) |
394 | 427 | |
395 | | ROM_REGION( 0x380000, "user3", 0 ) |
| 428 | ROM_REGION( 0x380000, "game", 0 ) |
396 | 429 | ROM_LOAD( "shvc-mk-0.rom6", 0x000000, 0x080000, CRC(c8002453) SHA1(cbb853bf911255c1d8eb27cd34fc7855a0dda218) ) |
397 | 430 | ROM_LOAD( "shvc-4m-1.rom3", 0x080000, 0x200000, CRC(91b28d56) SHA1(b83dd73d3d6049450bb8092d73c3af879804f58c) ) |
398 | 431 | ROM_LOAD( "shvc-fo-1.ic20", 0x280000, 0x100000, CRC(ad668a41) SHA1(39ff7354a7fa02295c899b7a7ec3556998ac2636) ) /* Super FX hook needed for Star Fox */ |
r17555 | r17556 | |
404 | 437 | ROM_REGION( 0x8000, "grom", 0 ) |
405 | 438 | ROM_LOAD( "grom2-1.ic1", 0x0000, 0x8000, CRC(bcfc5642) SHA1(a96e52685bd3dcdf09d1b7acd6e1c1ab7726a640) ) |
406 | 439 | |
407 | | ROM_REGION( 0x180000, "user3", 0 ) |
| 440 | ROM_REGION( 0x180000, "game", 0 ) |
408 | 441 | ROM_LOAD( "shvc-gc-0.rom1", 0x000000, 0x100000, CRC(b4fd7aff) SHA1(eb553b77418dedba25fc4d5dddcb04f424b0f6a9) ) |
409 | 442 | ROM_LOAD( "shvc-2a-1.rom3", 0x100000, 0x080000, CRC(6b23e2e4) SHA1(684123a12ca1e31115bd6221d96f82461066877f) ) |
410 | 443 | ROM_END |
r17555 | r17556 | |
415 | 448 | ROM_REGION( 0x8000, "grom", 0 ) |
416 | 449 | ROM_LOAD( "grom3-1.ic1", 0x0000, 0x8000, CRC(ebec4c1c) SHA1(d638ef1486b4c0b3d4d5b666929ca7947e16efad) ) |
417 | 450 | |
418 | | ROM_REGION( 0x500000, "user3", 0 ) |
| 451 | ROM_REGION( 0x500000, "game", 0 ) |
419 | 452 | ROM_LOAD( "shvc-t2-1.rom3", 0x000000, 0x100000, CRC(4ae93c10) SHA1(5fa25d027940907b769578d7bf85a9d5ba94911a) ) |
420 | 453 | ROM_LOAD( "shvc-8x-1.rom1", 0x100000, 0x400000, CRC(3adef543) SHA1(df02860e691fbee453e345dd343c08b6da08d4ea) ) |
421 | 454 | ROM_END |
r17555 | r17556 | |
426 | 459 | ROM_REGION( 0x8000, "grom", 0 ) |
427 | 460 | ROM_LOAD( "grom4-1.ic1", 0x0000, 0x8000, NO_DUMP ) |
428 | 461 | |
429 | | ROM_REGION( 0x500000, "user3", 0 ) |
| 462 | ROM_REGION( 0x500000, "game", 0 ) |
430 | 463 | ROM_LOAD( "shvc-m4-0.rom3", 0x000000, 0x100000, CRC(fb259f4f) SHA1(8faeb56f80e82dd042bdc84d19c526a979c6de8f) ) |
431 | 464 | ROM_LOAD( "shvc-8x-1.rom1", 0x100000, 0x400000, CRC(3adef543) SHA1(df02860e691fbee453e345dd343c08b6da08d4ea) ) |
432 | 465 | // Possibly reverse order : |