Adds 'Jumping Pop' please co-credit Robin Cooper

there are some issues, the unused palette bits are significant as the colours are wrong at the moment, also maybe it should be joystick, not spinner etc..  It's an ugly Korean hack game ;-)

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Jumping Pop (NICs, Korean bootleg of Plump Pop) [Robin Cooper, David Haywood]
This commit is contained in:
davidhay 2008-04-19 23:47:34 +00:00
parent 5782fedb11
commit 9017dbad99
2 changed files with 223 additions and 0 deletions

View File

@ -217,6 +217,34 @@ Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/11/06
***************************************************************************/
/***************************************************************************
Jumping Pop
- added by David Haywood, thanks to Robin Cooper
This is not a Taito board, it's a copy, it contains no original Taito or
Seta components.
The game is a bootleg of Plump Pop produced by NICs of Korea, it has new
graphics, sounds etc.
Uses a YM2151 instead of the YM2203, has no MCU
Uses Palette RAM instead of PROMs.
ToDo:
Palette format (or gfx decode?) appears to be incorrect, some colours
clearly don't match the screenshot.
Frequencies have not been measured
The bar behind the players flickers first boot / first attract levels, bug?
Inputs might be wrong, should be joystick not spinner? (can't select character)
***************************************************************************/
#include "driver.h"
#include "deprecat.h"
#include "cpu/i8x41/i8x41.h"
@ -224,6 +252,7 @@ Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/11/06
#include "sound/dac.h"
#include "sound/samples.h"
#include "includes/tnzs.h"
#include "sound/2151intf.h"
UINT8 *tnzs_objram, *tnzs_sharedram;
UINT8 *tnzs_vdcram, *tnzs_scrollram, *tnzs_objctrl, *tnzs_bg_flag;
@ -515,6 +544,75 @@ static ADDRESS_MAP_START( i8742_writeport, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x02, 0x02) AM_WRITE(tnzs_port2_w)
ADDRESS_MAP_END
WRITE8_HANDLER( jpopnics_palette_w )
{
int r,g,b;
UINT16 paldata;
paletteram[offset] = data;
offset = offset >> 1;
paldata = (paletteram[offset*2]<<8) | paletteram[(offset*2+1)];
g = (paldata >> 12) & 0x000f;
r = (paldata >> 4) & 0x000f;
b = (paldata >> 8) & 0x000f;
// the other bits seem to be used, and the colours are wrong..
palette_set_color_rgb(Machine,offset,r<<4, g<<4, b<<4);
}
static ADDRESS_MAP_START( jpopnics_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_READWRITE(SMH_BANK1, SMH_ROM)
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&tnzs_objram)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1) /* WORK RAM (shared by the 2 z80's) */
AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE(&tnzs_vdcram) /* VDC RAM */
AM_RANGE(0xf200, 0xf2ff) AM_RAM AM_BASE(&tnzs_scrollram) /* scrolling info */
AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_bg_flag) /* enable / disable background transparency */
AM_RANGE(0xf600, 0xf600) AM_READWRITE(SMH_NOP, tnzs_bankswitch_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_WRITE(jpopnics_palette_w) AM_BASE(&paletteram)
ADDRESS_MAP_END
READ8_HANDLER( moo_r )
{
return mame_rand(machine);
}
READ8_HANDLER( bbb_r )
{
return 0xff;
}
WRITE8_HANDLER( jpopnics_subbankswitch_w )
{
UINT8 *RAM = memory_region(REGION_CPU2);
/* bits 0-1 select ROM bank */
memory_set_bankptr (2, &RAM[0x10000 + 0x2000 * (data & 3)]);
}
static ADDRESS_MAP_START( jpopnics_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_READWRITE(SMH_BANK2, SMH_ROM)
AM_RANGE(0xa000, 0xa000) AM_WRITE(jpopnics_subbankswitch_w)
AM_RANGE(0xb000, 0xb000) AM_READ(input_port_0_r) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0xb001, 0xb001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xc000, 0xc000) AM_READ(input_port_1_r)
AM_RANGE(0xc001, 0xc001) AM_READ(input_port_2_r)
AM_RANGE(0xc600, 0xc600) AM_READ(input_port_3_r)
AM_RANGE(0xc601, 0xc601) AM_READ(input_port_4_r)
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
AM_RANGE(0xf000, 0xf003) AM_READ(arknoid2_sh_f000_r)
ADDRESS_MAP_END
#define TNZS_PLAYER_INPUT(_n_)\
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_)\
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_)\
@ -775,6 +873,74 @@ static INPUT_PORTS_START( plumppop )
PORT_BIT( 0xffff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(70) PORT_KEYDELTA(15) PORT_PLAYER(2)
INPUT_PORTS_END
static INPUT_PORTS_START( jpopnics )
PORT_START
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START
PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Button 2 (Cheat)")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
PORT_START
PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Button 2 (Cheat)") PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
PORT_START
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
TAITO_COINAGE_JAPAN_8
PORT_START
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x03, DEF_STR( Medium ) )
PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x08, "50k 150k" )
PORT_DIPSETTING( 0x0c, "70k 200k" )
PORT_DIPSETTING( 0x04, "100k 250k" )
PORT_DIPSETTING( 0x00, "200k 300k" )
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x20, "2" )
PORT_DIPSETTING( 0x30, "3" )
PORT_DIPSETTING( 0x10, "4" )
PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) )
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
PORT_START
PORT_START
PORT_START_TAG("AN1") /* spinner 1 - read at f000/1 */
PORT_BIT( 0xffff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(70) PORT_KEYDELTA(15)
PORT_START_TAG("AN2") /* spinner 2 - read at f002/3 */
PORT_BIT( 0xffff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(70) PORT_KEYDELTA(15) PORT_PLAYER(2)
INPUT_PORTS_END
#define DRTOPP_COMMON\
PORT_START_TAG("DSWB")\
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )\
@ -1558,6 +1724,40 @@ static MACHINE_DRIVER_START( kabukiz )
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( jpopnics )
/* basic machine hardware */
MDRV_CPU_ADD(Z80,XTAL_12MHz/2) /* Not verified - Main board Crystal is 12MHz */
MDRV_CPU_PROGRAM_MAP(jpopnics_main_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_CPU_ADD(Z80,XTAL_12MHz/2) /* Not verified - Main board Crystal is 12MHz */
MDRV_CPU_PROGRAM_MAP(jpopnics_sub_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(100)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(tnzs)
MDRV_PALETTE_LENGTH(1024)
MDRV_VIDEO_UPDATE(tnzs)
MDRV_VIDEO_EOF(tnzs)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD(YM2151, XTAL_12MHz/4) /* Not verified - Main board Crystal is 12MHz */
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_DRIVER_END
/***************************************************************************
@ -1601,6 +1801,27 @@ ROM_START( plumppop )
ROM_LOAD( "a98-12.bpr", 0x0200, 0x200, CRC(90dc9da7) SHA1(f719dead7f4597e5ee6f1103599505b98cb58299) ) /* lo bytes, AM27S29 or compatible like MB7124 */
ROM_END
ROM_START( jpopnics )
ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "u96cpu2", 0x00000, 0x08000, CRC(649e951c) SHA1(b26bb157da9fcf5d3eddbb637a4cb2cb1b0fedac) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_CONTINUE( 0x20000, 0x10000 ) /* banked at 8000-bfff */
ROM_REGION( 0x18000, REGION_CPU2, 0 ) /* 64k for the second CPU */
ROM_LOAD( "u124cpu1", 0x00000, 0x08000, CRC(8453e8e4) SHA1(aac1bd501a15f79e3ed566c949504169b2aa762d) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "u94gfx", 0x00000, 0x10000, CRC(e49f2fdd) SHA1(6824c6520d0039c062f028e69cbfa7b3790ea756) )
ROM_CONTINUE( 0x20000, 0x10000 )
ROM_LOAD( "u93gfx", 0x40000, 0x10000, CRC(a7791b5b) SHA1(4abfe9b2612ed0d17f1282a60879cf1d0620ae4c) )
ROM_CONTINUE( 0x60000, 0x10000 )
ROM_LOAD( "u92gfx", 0x80000, 0x10000, CRC(b30caac7) SHA1(a434f67e1bec9848d9c3e184734d8cebee048176) )
ROM_CONTINUE( 0xa0000, 0x10000 )
ROM_LOAD( "u91gfx", 0xc0000, 0x10000, CRC(18ada5f2) SHA1(3307dd11e5cd0d0abe8b7751a5fbf54998558b34) )
ROM_CONTINUE( 0xe0000, 0x10000 )
ROM_END
ROM_START( extrmatn )
ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-20.11c", 0x00000, 0x08000, CRC(04e3fc1f) SHA1(b1cf2f79f43fa33d6175368c897f84ec6aa6e746) )
@ -2146,3 +2367,4 @@ GAME( 1988, tnzso, tnzs, tnzs, tnzs2, tnzs, ROT0, "Taito Cor
GAME( 1988, kabukiz, 0, kabukiz, kabukiz, kabukiz, ROT0, "Taito Corporation Japan", "Kabuki-Z (World)", 0 )
GAME( 1988, kabukizj, kabukiz, kabukiz, kabukiz, kabukiz, ROT0, "Taito Corporation", "Kabuki-Z (Japan)", 0 )
GAME( 1989, insectx, 0, insectx, insectx, insectx, ROT0, "Taito Corporation Japan", "Insector X (World)", 0 )
GAME( 1992, jpopnics, 0, jpopnics, jpopnics, 0, ROT0, "Nics", "Jumping Pop (Nics, Korean bootleg of Plump Pop)", GAME_IMPERFECT_GRAPHICS )

View File

@ -1735,6 +1735,7 @@ const game_driver * const drivers[] =
/* Taito "tnzs" (Seta) hardware */
DRIVER( plumppop ) /* A98 (c) 1987 Taito Corporation (Japan) */
DRIVER( jpopnics ) /* (c)1992 NICs, based on Plump Pop code */
DRIVER( extrmatn ) /* B06 (c) 1987 World Games */
DRIVER( extrmatj ) /* B06 (c) 1987 Taito Corporation (Japan)*/
DRIVER( arknoid2 ) /* B08 (c) 1987 Taito Corporation Japan (World) */