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 : |