summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-08-16 11:07:01 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-08-16 11:07:01 -0400
commitd2ff131373521223786563d4e41a44babe49c260 (patch)
treeec13df2f1fdce2c8687ccfcceec3ab4db93fbf6f
parent888332da9eb896ee6efe67bd6be9c73e62a31d22 (diff)
New working clones
------------------ Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 2) [The Dumping Union / Team Recreativas.org, AJR]
-rw-r--r--src/mame/drivers/galaxold.cpp99
-rw-r--r--src/mame/includes/galaxold.h2
-rw-r--r--src/mame/mame.lst1
-rw-r--r--src/mame/video/galaxold.cpp14
4 files changed, 115 insertions, 1 deletions
diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp
index 7b5672eb0b8..8e794119c96 100644
--- a/src/mame/drivers/galaxold.cpp
+++ b/src/mame/drivers/galaxold.cpp
@@ -537,6 +537,32 @@ static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8, galaxold_state )
ADDRESS_MAP_END
+static ADDRESS_MAP_START( dkongjrmc_map, AS_PROGRAM, 8, galaxold_state )
+ AM_RANGE(0x0000, 0x5fff) AM_ROM
+ AM_RANGE(0x6000, 0x6fff) AM_RAM
+ AM_RANGE(0x7000, 0x70ff) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
+ AM_RANGE(0x7100, 0x71ff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x7000, 0x73ff) AM_RAM_WRITE(galaxold_videoram_w)
+ AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x7800, 0x7800) AM_READ_PORT("DSW")
+ AM_RANGE(0x7801, 0x7801) AM_WRITE(galaxold_nmi_enable_w)
+ AM_RANGE(0x7802, 0x7802) AM_WRITE(galaxold_leds_w)
+ AM_RANGE(0x7804, 0x7804) AM_WRITE(galaxold_gfxbank_w)
+ AM_RANGE(0x7806, 0x7806) AM_WRITE(galaxold_flip_screen_x_w)
+ AM_RANGE(0x7807, 0x7807) AM_WRITE(galaxold_flip_screen_y_w)
+ AM_RANGE(0x7d00, 0x7d02) AM_MIRROR(0x0080) AM_DEVWRITE("cust", galaxian_sound_device, background_enable_w)
+ AM_RANGE(0x7d03, 0x7d03) AM_MIRROR(0x0080) AM_DEVWRITE("cust", galaxian_sound_device, noise_enable_w)
+ AM_RANGE(0x7d05, 0x7d05) AM_MIRROR(0x0080) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w)
+ AM_RANGE(0x7d06, 0x7d07) AM_MIRROR(0x0080) AM_DEVWRITE("cust", galaxian_sound_device, vol_w)
+ AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
+ AM_RANGE(0x8103, 0x8103) AM_WRITE(galaxold_coin_counter_w)
+ AM_RANGE(0x8104, 0x8107) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x8200, 0x8200) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ AM_RANGE(0x9000, 0x9fff) AM_ROM
+ADDRESS_MAP_END
+
+
static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW0") /* mirror */
@@ -1596,6 +1622,44 @@ static INPUT_PORTS_START( dkongjrm )
INPUT_PORTS_END
+static INPUT_PORTS_START( dkongjrmc )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x40, "4" )
+ PORT_DIPSETTING( 0x80, "5" )
+ PORT_DIPSETTING( 0xc0, "6" )
+
+ PORT_START("DSW")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x02, "20000" )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
/* verified from Z80 code */
static INPUT_PORTS_START( porter )
PORT_START("IN0")
@@ -2334,6 +2398,14 @@ static MACHINE_CONFIG_DERIVED( dkongjrm, mooncrst )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( dkongjrmc, mooncrst )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(dkongjrmc_map)
+
+ MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrmc)
+MACHINE_CONFIG_END
+
+
static MACHINE_CONFIG_DERIVED( rockclim, mooncrst )
/* basic machine hardware */
@@ -3031,6 +3103,30 @@ ROM_START( dkongjrm )
ROM_LOAD( "hustler.clr", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
ROM_END
+ROM_START( dkongjrmc ) // "CENTROMATIC - G/G" main board
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "2732-1.bin", 0x0000, 0x1000, CRC(1bcb41be) SHA1(74b1700babd26cb0c781bc702130a63da0386463) )
+ ROM_LOAD( "2732-2.bin", 0x1000, 0x1000, CRC(f027a6b9) SHA1(557ab9737c31b4c57b1d37d62bb5ce51c574c4b9) )
+ ROM_LOAD( "2732-3.bin", 0x2000, 0x1000, CRC(e2484ff4) SHA1(fdd77db1ba0dc7876e0503aace7273d7a8dedd53) )
+ ROM_LOAD( "2732-4.bin", 0x3000, 0x1000, CRC(37e5dd92) SHA1(69bbc765a54e98b69cf6831342469a9c94659f8f) )
+ ROM_LOAD( "2732-5.bin", 0x4000, 0x1000, CRC(b2d89348) SHA1(209f3ca7c97afa3e746f778df0c34664f8791855) )
+ ROM_LOAD( "2732-6.bin", 0x5000, 0x1000, CRC(24b0c560) SHA1(0b7e099ad2aace542fedb8b7c8c28204d3ea7a46) )
+ ROM_LOAD( "2732-7.bin", 0x9000, 0x1000, CRC(7428eefa) SHA1(82e5c8461fe48e5d6222bb5d0a259e6fd0c5cac7) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 ) // GFX ROM sub board marked "CALFESA" on solder side
+ ROM_LOAD( "2732-A.bin", 0x0000, 0x1000, CRC(526ed721) SHA1(5fd317908b9d9aa70768f8f7cfbfdfa6d1e654b6) )
+ ROM_LOAD( "2732-B.bin", 0x1000, 0x1000, CRC(d2cb5130) SHA1(b87d2c74cc74782fec7268f0a637613450a2fb4b) )
+ ROM_LOAD( "2732-C.bin", 0x2000, 0x1000, CRC(7ceae713) SHA1(1f85d3b34cf10bd6277b408aed051a18cf9b1090) )
+ ROM_LOAD( "2732-D.bin", 0x3000, 0x1000, CRC(2aa1acf1) SHA1(fdf58e737253ca5f0cf3667d3a74efeafdb66e21) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "82s123.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
+
+ ROM_REGION( 0x0200, "mainproms", 0 )
+ ROM_LOAD( "TBP28L22N-8240A.bin", 0x0000, 0x0100, CRC(df72ed74) SHA1(fce9a846b7238c2cc8898e6338485f3df0a56755) )
+ ROM_LOAD( "TBP28L22N-A8240A.bin", 0x0100, 0x0100, CRC(9575df2b) SHA1(9360730fc230d17f6be5fc7f8d46d79566839cfa) )
+ROM_END
+
ROM_START( porter )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "port1.bin", 0x0000, 0x0800, CRC(babaf7fe) SHA1(2138abf57990df9b6f9953efd3be9b2bede49520) )
@@ -3440,7 +3536,8 @@ GAME( 1981, scrambler, scramble, scrambler, scrambler, galaxold_state, 0,
GAME( 1981, 4in1, 0, 4in1, 4in1, galaxold_state, 4in1, ROT90, "Armenia / Food and Fun", "4 Fun in 1", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, bagmanmc, bagman, bagmanmc, bagmanmc, galaxold_state, 0, ROT90, "bootleg", "Bagman (bootleg on Moon Cresta hardware, set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1984, bagmanm2, bagman, bagmanmc, bagmanmc, galaxold_state, 0, ROT90, "bootleg (GIB)", "Bagman (bootleg on Moon Cresta hardware, set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, dkongjrm, dkongjr, dkongjrm, dkongjrm, galaxold_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg on Moon Cresta hardware)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, dkongjrm, dkongjr, dkongjrm, dkongjrm, galaxold_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 1)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, dkongjrmc, dkongjr, dkongjrmc, dkongjrmc, galaxold_state, 0, ROT90, "bootleg (Centromatic)", "Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 2)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // sprites leave artifacts
GAME( 1982, porter, dockman, porter, porter, galaxold_state, 0, ROT90, "bootleg", "Port Man (bootleg on Moon Cresta hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL )
GAME( 1982, tazzmang, tazmania, tazzmang, tazzmang, galaxold_state, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1982, tazzmang2, tazmania, tazzmang, tazzmang, galaxold_state, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware with Starfield)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h
index ecc85ead4f9..c8e9263fb7b 100644
--- a/src/mame/includes/galaxold.h
+++ b/src/mame/includes/galaxold.h
@@ -192,6 +192,7 @@ public:
DECLARE_VIDEO_START(newsin7);
DECLARE_VIDEO_START(pisces);
DECLARE_VIDEO_START(dkongjrm);
+ DECLARE_VIDEO_START(dkongjrmc);
DECLARE_VIDEO_START(rockclim);
DECLARE_VIDEO_START(galaxold_plain);
DECLARE_VIDEO_START(ozon1);
@@ -234,6 +235,7 @@ public:
void mimonkey_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
void batman2_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
void dkongjrm_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
+ void dkongjrmc_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
void ad2083_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
void dambustr_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs);
void drivfrcg_modify_color(uint8_t *color);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index a478096b401..e0ab016782e 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -13166,6 +13166,7 @@ ckonggx //
ckongis //
ckongmc // 1981 bootleg
dkongjrm // bootleg
+dkongjrmc // bootleg (Centromatic)
drivfrcb // bootleg
drivfrcg // [1984] Shinkai (Magic Electronics USA license)
drivfrct // bootleg
diff --git a/src/mame/video/galaxold.cpp b/src/mame/video/galaxold.cpp
index 17973e04170..b8787b288c5 100644
--- a/src/mame/video/galaxold.cpp
+++ b/src/mame/video/galaxold.cpp
@@ -540,6 +540,14 @@ VIDEO_START_MEMBER(galaxold_state,dkongjrm)
m_spriteram2_present= 1;
}
+VIDEO_START_MEMBER(galaxold_state,dkongjrmc)
+{
+ VIDEO_START_CALL_MEMBER(galaxold_plain);
+
+ m_modify_charcode = &galaxold_state::pisces_modify_charcode;
+ m_modify_spritecode = &galaxold_state::dkongjrmc_modify_spritecode;
+}
+
VIDEO_START_MEMBER(galaxold_state,scorpion)
{
VIDEO_START_CALL_MEMBER(scrambold);
@@ -1039,6 +1047,11 @@ void galaxold_state::dkongjrm_modify_spritecode(uint8_t *spriteram, int *code, i
*flipx = 0;
}
+void galaxold_state::dkongjrmc_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs)
+{
+ *code = (spriteram[offs + 1] & 0x7f) | 0x80; // bit 6 is also X flip
+}
+
void galaxold_state::ad2083_modify_spritecode(uint8_t *spriteram, int *code, int *flipx, int *flipy, int offs)
{
/* No x flip */
@@ -1059,6 +1072,7 @@ void galaxold_state::drivfrcg_modify_color(uint8_t *color)
*color = ((*color & 0x40) >> 3) | (*color & 7);
}
+
/* y position mapping functions */