trunk/src/mame/drivers/superwng.c
| r244887 | r244888 | |
| 9 | 9 | |
| 10 | 10 | TODO: |
| 11 | 11 | - unused rom 6.8s (located on the pcb near the gfx rom 7.8p, but contains |
| 12 | | data (similar to the one in roms 4.5p and 5.5r). |
| 13 | | There are two possibilities: its bad dump of gfx rom (two extra bit layers |
| 14 | | of current gfx) or it's banked at 0x4000 - 0x7fff area. |
| 12 | data (similar to the one in roms 4.5p and 5.5r) |
| 13 | |
| 14 | The game currently crashes after the bonus round rather than moving on to |
| 15 | the next level, it writes 01 to 0xa187 which is probably ROM bank, however |
| 16 | banking the ROM in there results in the game crashing anyway, and looking |
| 17 | at the data I wonder if it is corrupt, there are odd patterns in FF fill |
| 18 | areas. |
| 19 | |
| 20 | (to access the bonus round take out the targets on the middle-left then hit |
| 21 | the ball into one of the portals at the top left) |
| 22 | |
| 23 | |
| 15 | 24 | - dump color prom |
| 16 | 25 | - some unknown DSW and inputs |
| 17 | 26 | - hopper |
| r244887 | r244888 | |
| 71 | 80 | DECLARE_WRITE8_MEMBER(superwng_cointcnt2_w); |
| 72 | 81 | DECLARE_WRITE8_MEMBER(superwng_hopper_w); |
| 73 | 82 | DECLARE_READ8_MEMBER(superwng_sound_byte_r); |
| 83 | DECLARE_WRITE8_MEMBER(superwng_unk_a187_w); |
| 84 | DECLARE_WRITE8_MEMBER(superwng_unk_a185_w); |
| 85 | |
| 74 | 86 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 75 | 87 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
| 76 | 88 | virtual void machine_start(); |
| r244887 | r244888 | |
| 82 | 94 | INTERRUPT_GEN_MEMBER(superwng_sound_nmi_assert); |
| 83 | 95 | }; |
| 84 | 96 | |
| 97 | WRITE8_MEMBER(superwng_state::superwng_unk_a187_w) |
| 98 | { |
| 99 | membank("bank1")->set_entry(data&1); |
| 100 | } |
| 101 | |
| 102 | WRITE8_MEMBER(superwng_state::superwng_unk_a185_w) |
| 103 | { |
| 104 | // printf("superwng_unk_a185_w %02x\n", data); |
| 105 | } |
| 106 | |
| 85 | 107 | TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info) |
| 86 | 108 | { |
| 87 | 109 | int code = m_videoram_bg[tile_index]; |
| r244887 | r244888 | |
| 291 | 313 | } |
| 292 | 314 | |
| 293 | 315 | static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8, superwng_state ) |
| 294 | | AM_RANGE(0x0000, 0x6fff) AM_ROM AM_WRITENOP |
| 316 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 317 | AM_RANGE(0x4000, 0x6fff) AM_ROMBANK("bank1") |
| 295 | 318 | AM_RANGE(0x7000, 0x7fff) AM_RAM |
| 296 | 319 | AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(superwng_bg_vram_w) AM_SHARE("videorabg") |
| 297 | 320 | AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(superwng_fg_vram_w) AM_SHARE("videorafg") |
| r244887 | r244888 | |
| 309 | 332 | AM_RANGE(0xa182, 0xa182) AM_WRITE(superwng_tilebank_w) |
| 310 | 333 | AM_RANGE(0xa183, 0xa183) AM_WRITE(superwng_flip_screen_w) |
| 311 | 334 | AM_RANGE(0xa184, 0xa184) AM_WRITE(superwng_cointcnt1_w) |
| 312 | | AM_RANGE(0xa185, 0xa185) AM_WRITENOP // unknown, always(?) 0 |
| 335 | AM_RANGE(0xa185, 0xa185) AM_WRITE(superwng_unk_a185_w) // unknown, always(?) 0 |
| 313 | 336 | AM_RANGE(0xa186, 0xa186) AM_WRITE(superwng_cointcnt2_w) |
| 314 | | AM_RANGE(0xa187, 0xa187) AM_WRITENOP // unknown, always(?) 0 |
| 337 | AM_RANGE(0xa187, 0xa187) AM_WRITE(superwng_unk_a187_w) // unknown, always(?) 0 |
| 315 | 338 | ADDRESS_MAP_END |
| 316 | 339 | |
| 317 | 340 | static ADDRESS_MAP_START( superwng_sound_map, AS_PROGRAM, 8, superwng_state ) |
| r244887 | r244888 | |
| 433 | 456 | save_item(NAME(m_tile_bank)); |
| 434 | 457 | save_item(NAME(m_sound_byte)); |
| 435 | 458 | save_item(NAME(m_nmi_enable)); |
| 459 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base()+0x4000, 0x4000); |
| 436 | 460 | } |
| 437 | 461 | |
| 438 | 462 | void superwng_state::machine_reset() |
| r244887 | r244888 | |
| 483 | 507 | ROM_LOAD( "3.5m", 0x2000, 0x2000, CRC(3b08bd19) SHA1(2020e2835df86a6a279bbf9d013a489f0e32a4bd) ) |
| 484 | 508 | ROM_LOAD( "4.5p", 0x4000, 0x2000, CRC(6a49746d) SHA1(f5cd5eb77f60972a3897243f9ee3d61aac0878fc) ) |
| 485 | 509 | ROM_LOAD( "5.5r", 0x6000, 0x2000, CRC(ebd23487) SHA1(16e8faf989aa80dbf9934450ec4ba642a6f88c63) ) |
| 510 | ROM_LOAD( "6.8s", 0x4000, 0x4000, BAD_DUMP CRC(774433e0) SHA1(82b10d797581c14914bcce320f2aa5d3fb1fba33) ) // banked but probably bad.. |
| 486 | 511 | |
| 487 | | ROM_LOAD( "6.8s", 0x10000, 0x4000, CRC(774433e0) SHA1(82b10d797581c14914bcce320f2aa5d3fb1fba33) ) /* unknown */ |
| 488 | | |
| 489 | 512 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 490 | 513 | ROM_LOAD( "1.1a", 0x0000, 0x2000, CRC(a70aa39e) SHA1(b03de65d7bd020eb77495997128dce5ccbdbefac) ) |
| 491 | 514 | |