mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
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:
parent
5782fedb11
commit
9017dbad99
@ -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 )
|
||||
|
@ -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) */
|
||||
|
Loading…
Reference in New Issue
Block a user