From f2e20e364ae01994c87bfc1fda629fd358f89fee Mon Sep 17 00:00:00 2001 From: angelosa Date: Thu, 9 Nov 2017 20:12:04 +0100 Subject: Machine promoted to WORKING --------------------------- Ping Pong King [Angelo Salese] (out of whatsnew: fixed sprite left edge wraparound, made "round" dipsw more verbose, misc cleanups) --- src/mame/drivers/gladiatr.cpp | 31 ++++++++++++++----------------- src/mame/includes/gladiatr.h | 2 -- src/mame/video/gladiatr.cpp | 6 ++++++ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp index 82f7d279660..a41bf2f02a0 100644 --- a/src/mame/drivers/gladiatr.cpp +++ b/src/mame/drivers/gladiatr.cpp @@ -570,10 +570,6 @@ WRITE8_MEMBER(ppking_state::ppking_qx1_w) } } -WRITE8_MEMBER(ppking_state::ppking_qx2_w) -{ -} - WRITE8_MEMBER(ppking_state::ppking_qx3_w) { } @@ -591,17 +587,17 @@ READ8_MEMBER(ppking_state::ppking_qx1_r) return m_soundlatch2->read(space,0); } -READ8_MEMBER(ppking_state::ppking_qx2_r) -{ - return machine().rand(); -} - READ8_MEMBER(ppking_state::ppking_qx3_r) { - return machine().rand()&0xf; + if(offset == 1) + return 1; + + return 0; } -// serial communication with another board +// serial communication with another board (COMU in service mode) +// NMI is used to acquire data from the other board, +// either sent via 1->0 poll of the 0xc003 port or by reading 0xc0c0 (former more likely) READ8_MEMBER(ppking_state::ppking_qxcomu_r) { if(offset == 1) @@ -655,7 +651,6 @@ static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, ppking_state ) AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) AM_RANGE(0x20, 0x21) AM_READ(ppking_qx1_r) AM_WRITE(ppking_qx1_w) AM_RANGE(0x40, 0x40) AM_WRITE(cpu2_irq_ack_w) - AM_RANGE(0x60, 0x61) AM_READWRITE(ppking_qx2_r,ppking_qx2_w) // unaccessed, probably leftover AM_RANGE(0x80, 0x81) AM_READWRITE(ppking_qx3_r,ppking_qx3_w) AM_RANGE(0xe0, 0xe0) AM_WRITE(adpcm_command_w) ADDRESS_MAP_END @@ -776,10 +771,12 @@ static INPUT_PORTS_START( ppking ) PORT_DIPNAME( 0x01, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:1") PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "Round" ) PORT_DIPLOCATION("SW3:2") - PORT_DIPSETTING( 0x00, "Normal" ) - PORT_DIPSETTING( 0x02, "Free" ) - PORT_DIPNAME( 0x04, 0x00, "Backup Clear" ) PORT_DIPLOCATION("SW3:3") + // Round -> Normal/Round Free in manual, allows player to continue playing even if he loses + PORT_DIPNAME( 0x02, 0x00, "Win Round even when losing (Cheat)" ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + // Happens at reset + PORT_DIPNAME( 0x04, 0x00, "Backup RAM Clear" ) PORT_DIPLOCATION("SW3:3") PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPUNUSED_DIPLOC( 0x08, 0x00, "SW3:4" ) @@ -1470,7 +1467,7 @@ DRIVER_INIT_MEMBER(ppking_state, ppking) -GAME( 1985, ppking, 0, ppking, ppking, ppking_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_LAN ) +GAME( 1985, ppking, 0, ppking, ppking, ppking_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_LAN ) GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h index 868255246e4..92195ba56d3 100644 --- a/src/mame/includes/gladiatr.h +++ b/src/mame/includes/gladiatr.h @@ -166,9 +166,7 @@ public: DECLARE_READ8_MEMBER(ppking_f1_r); DECLARE_WRITE8_MEMBER(ppking_qx0_w); DECLARE_WRITE8_MEMBER(ppking_qx1_w); - DECLARE_WRITE8_MEMBER(ppking_qx2_w); DECLARE_WRITE8_MEMBER(ppking_qx3_w); - DECLARE_READ8_MEMBER(ppking_qx2_r); DECLARE_READ8_MEMBER(ppking_qx3_r); DECLARE_READ8_MEMBER(ppking_qx0_r); DECLARE_READ8_MEMBER(ppking_qx1_r); diff --git a/src/mame/video/gladiatr.cpp b/src/mame/video/gladiatr.cpp index 02c2ab24fcc..03702a38cb9 100644 --- a/src/mame/video/gladiatr.cpp +++ b/src/mame/video/gladiatr.cpp @@ -252,6 +252,12 @@ void gladiatr_state_base::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cl color, xflip, yflip, sx+x*16, sy+y*16,0); + // wraparound, used by Ping Pong King when scrolling from right to left + m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + t, + color, + xflip, yflip, + sx+x*16, sy+y*16+256,0); } } } -- cgit v1.2.3