mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
looking at 'Super WIng' (pinball game) based on a crash report at MARP.
there is an unused ROM, I think it contains a 2nd stage layout for the game, and appears to be banked in after you finish a bonus round, however, even hooking it up as a banked rom the game crashes, and the data in the ROM looks suspicious (there are flipped bits at fairly regular offsets even in 0xff fill areas) It could be the bank hookup is wrong, but the data concerns me enough to mark the rom as BAD_DUMP. We need another PCB to dump the Colour PROM anyway, although we've only seen it once.
This commit is contained in:
parent
31a96e35e6
commit
67cd025b03
@ -9,9 +9,18 @@ Hardware a bit (interrupts, sound) similar to mouser as well
|
||||
|
||||
TODO:
|
||||
- unused rom 6.8s (located on the pcb near the gfx rom 7.8p, but contains
|
||||
data (similar to the one in roms 4.5p and 5.5r).
|
||||
There are two possibilities: its bad dump of gfx rom (two extra bit layers
|
||||
of current gfx) or it's banked at 0x4000 - 0x7fff area.
|
||||
data (similar to the one in roms 4.5p and 5.5r)
|
||||
|
||||
The game currently crashes after the bonus round rather than moving on to
|
||||
the next level, it writes 01 to 0xa187 which is probably ROM bank, however
|
||||
banking the ROM in there results in the game crashing anyway, and looking
|
||||
at the data I wonder if it is corrupt, there are odd patterns in FF fill
|
||||
areas.
|
||||
|
||||
(to access the bonus round take out the targets on the middle-left then hit
|
||||
the ball into one of the portals at the top left)
|
||||
|
||||
|
||||
- dump color prom
|
||||
- some unknown DSW and inputs
|
||||
- hopper
|
||||
@ -71,6 +80,9 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(superwng_cointcnt2_w);
|
||||
DECLARE_WRITE8_MEMBER(superwng_hopper_w);
|
||||
DECLARE_READ8_MEMBER(superwng_sound_byte_r);
|
||||
DECLARE_WRITE8_MEMBER(superwng_unk_a187_w);
|
||||
DECLARE_WRITE8_MEMBER(superwng_unk_a185_w);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
virtual void machine_start();
|
||||
@ -82,6 +94,16 @@ public:
|
||||
INTERRUPT_GEN_MEMBER(superwng_sound_nmi_assert);
|
||||
};
|
||||
|
||||
WRITE8_MEMBER(superwng_state::superwng_unk_a187_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data&1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(superwng_state::superwng_unk_a185_w)
|
||||
{
|
||||
// printf("superwng_unk_a185_w %02x\n", data);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info)
|
||||
{
|
||||
int code = m_videoram_bg[tile_index];
|
||||
@ -291,7 +313,8 @@ WRITE8_MEMBER(superwng_state::superwng_hopper_w)
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8, superwng_state )
|
||||
AM_RANGE(0x0000, 0x6fff) AM_ROM AM_WRITENOP
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x6fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x7000, 0x7fff) AM_RAM
|
||||
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(superwng_bg_vram_w) AM_SHARE("videorabg")
|
||||
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(superwng_fg_vram_w) AM_SHARE("videorafg")
|
||||
@ -309,9 +332,9 @@ static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8, superwng_state )
|
||||
AM_RANGE(0xa182, 0xa182) AM_WRITE(superwng_tilebank_w)
|
||||
AM_RANGE(0xa183, 0xa183) AM_WRITE(superwng_flip_screen_w)
|
||||
AM_RANGE(0xa184, 0xa184) AM_WRITE(superwng_cointcnt1_w)
|
||||
AM_RANGE(0xa185, 0xa185) AM_WRITENOP // unknown, always(?) 0
|
||||
AM_RANGE(0xa185, 0xa185) AM_WRITE(superwng_unk_a185_w) // unknown, always(?) 0
|
||||
AM_RANGE(0xa186, 0xa186) AM_WRITE(superwng_cointcnt2_w)
|
||||
AM_RANGE(0xa187, 0xa187) AM_WRITENOP // unknown, always(?) 0
|
||||
AM_RANGE(0xa187, 0xa187) AM_WRITE(superwng_unk_a187_w) // unknown, always(?) 0
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( superwng_sound_map, AS_PROGRAM, 8, superwng_state )
|
||||
@ -433,6 +456,7 @@ void superwng_state::machine_start()
|
||||
save_item(NAME(m_tile_bank));
|
||||
save_item(NAME(m_sound_byte));
|
||||
save_item(NAME(m_nmi_enable));
|
||||
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base()+0x4000, 0x4000);
|
||||
}
|
||||
|
||||
void superwng_state::machine_reset()
|
||||
@ -483,8 +507,7 @@ ROM_START( superwng )
|
||||
ROM_LOAD( "3.5m", 0x2000, 0x2000, CRC(3b08bd19) SHA1(2020e2835df86a6a279bbf9d013a489f0e32a4bd) )
|
||||
ROM_LOAD( "4.5p", 0x4000, 0x2000, CRC(6a49746d) SHA1(f5cd5eb77f60972a3897243f9ee3d61aac0878fc) )
|
||||
ROM_LOAD( "5.5r", 0x6000, 0x2000, CRC(ebd23487) SHA1(16e8faf989aa80dbf9934450ec4ba642a6f88c63) )
|
||||
|
||||
ROM_LOAD( "6.8s", 0x10000, 0x4000, CRC(774433e0) SHA1(82b10d797581c14914bcce320f2aa5d3fb1fba33) ) /* unknown */
|
||||
ROM_LOAD( "6.8s", 0x4000, 0x4000, BAD_DUMP CRC(774433e0) SHA1(82b10d797581c14914bcce320f2aa5d3fb1fba33) ) // banked but probably bad..
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "1.1a", 0x0000, 0x2000, CRC(a70aa39e) SHA1(b03de65d7bd020eb77495997128dce5ccbdbefac) )
|
||||
|
Loading…
Reference in New Issue
Block a user