summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/dkong.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/dkong.c')
-rw-r--r--src/mame/drivers/dkong.c1471
1 files changed, 582 insertions, 889 deletions
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index 7d512de73b4..142d8282ddb 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -4,8 +4,16 @@ TODO:
- dkongjr discrete interface
- write a shootgal palette_init
-- when i am retired: implement 8257 DMA controller
+- Pestplce colors and origin
+- Shooting Gallery: Shootgal.txt mentions speech pcb, mikesarcade.com dk conversion
+ Clarify
+- 8ballact: read 1507 no mapped
+- drakton - add dkongjr conversion
+- implement 74LS259 (8bit addressable latches), 74LS175 (QUAD D FlipFlop), 74LS373 (Octal transparent latch)
+
+Done:
+- when i am retired: implement 8257 DMA controller
- radarscp_grid_color_w() is wrong, it probably isn't supposed to change
the grid color. There are reports of the grid being constantly blue in
the real game, the flyer confirms this.
@@ -23,6 +31,29 @@ TODO:
- combined memory maps
- first attempts on decoding m58815
+ Couriersud: 11/2007
+
+ - Added configuration switch to change palette between TKG02 (radarscp conversion) and TKG04 (dkong 2board)
+ - Added speech support (samples) to radarsc1
+ - Hooked up and written 8257 dma controller
+ All dkong and dkongjr based games now use the 8257
+ All epos and 2650 based games now use the 8257
+ - Fixed 2650 games to use dkong audio as well - only cpu replaced by addon board ...
+ - straightened memory maps
+ - Fixed bug in dkong3b memory map
+ - Externalized sound drivers to MACHINE_START in audio/dkong.c
+ - DAC Filter now uses lowpass sallen key filter
+ - Reorganized INPUT_PORTS
+ - Fixed sound for drakton and strtheat
+ - Added Dip-Switch locations to 8ballact
+ - Fixed 8ballact according to conversion manual
+ - Reorganized code
+ - http://members.cox.net/rcolbert/mame_cocktail_project.htm mentions, that radarscp to dkong conversions
+ have a sticker TKG-2 over the TRS-02 label.
+ - PCB Info (Dkong.txt) mentions, that TKG-3 is a 4 board set. This seems to be based on the radarscp 4-board set trs-02.
+ Schematics show, that these boards actually were based on TRS-02
+ - TKG-4 is a 2 board set.
+
Donkey Kong and Donkey Kong Jr. memory map (preliminary) (DKong 3 follows)
0000-3fff ROM (Donkey Kong Jr.and Donkey Kong 3: 0000-5fff)
@@ -174,23 +205,56 @@ Changes:
***************************************************************************/
#include "driver.h"
-#include "cpu/i8039/i8039.h"
#include "cpu/s2650/s2650.h"
#include "cpu/m6502/m6502.h"
-#include "sound/dac.h"
-#include "sound/samples.h"
-#include "sound/nes_apu.h"
#include "includes/dkong.h"
+#include "machine/8257dma.h"
#include <math.h>
/*************************************
*
- * Globals
+ * prototypes
*
*************************************/
-static INT8 counter;
-static int hunchloopback;
+static UINT8 hb_dma_read_byte(int channel, offs_t offset);
+static void hb_dma_write_byte(int channel, offs_t offset, UINT8 data);
+static UINT8 dk_dma_read_byte(int channel, offs_t offset);
+static void dk_dma_write_byte(int channel, offs_t offset, UINT8 data);
+static UINT8 p8257_ctl_r(void);
+static void p8257_ctl_w(UINT8 data);
+
+/*************************************
+ *
+ * statics
+ *
+ *************************************/
+
+static struct dma8257_interface dk_dma =
+{
+ 0,
+ CLOCK_1H,
+
+ dk_dma_read_byte,
+ dk_dma_write_byte,
+
+ { 0, p8257_ctl_r, 0, 0 },
+ { p8257_ctl_w, 0, 0, 0 },
+ { 0, 0, 0, 0 }
+};
+
+static struct dma8257_interface hb_dma =
+{
+ 0,
+ CLOCK_1H,
+
+ hb_dma_read_byte,
+ hb_dma_write_byte,
+
+ { 0, p8257_ctl_r, 0, 0 },
+ { p8257_ctl_w, 0, 0, 0 },
+ { 0, 0, 0, 0 }
+};
/*************************************
*
@@ -209,49 +273,182 @@ static INTERRUPT_GEN( hunchbkd_interrupt )
*
*************************************/
-/* EPOS games */
+static MACHINE_START( dkong2b )
+{
+ dkong_state *state = machine->driver_data;
+
+ dma8257_init(1);
+ dma8257_config(0, &dk_dma);
+
+ state->hardware_type = HARDWARE_TKG04;
+
+ state_save_register_global(state->decrypt_counter);
+ state_save_register_global(state->dma_latch);
+
+}
+
+
+static MACHINE_START( hunchbkd )
+{
+ UINT8 *p = memory_region(REGION_PROMS);
+ int i;
+
+ dkong_state *state = Machine->driver_data;
+
+ machine_start_dkong2b(machine);
+ dma8257_config(0, &hb_dma);
+
+ for (i=0;i<0x200;i++)
+ state->rev_map[i] = -1;
+ for (i=0;i<0x200;i++)
+ state->rev_map[p[0x300+i]] = i;
+
+ state_save_register_global(state->hunchloopback);
+
+ state->hunchloopback = 0;
+
+}
+
+
+static MACHINE_START( radarscp )
+{
+ dkong_state *state = Machine->driver_data;
+
+ machine_start_dkong2b(machine);
+ state->hardware_type = HARDWARE_TRS02;
+}
+
+static MACHINE_START( radarsc1 )
+{
+ dkong_state *state = Machine->driver_data;
+
+ machine_start_dkong2b(machine);
+ state->hardware_type = HARDWARE_TRS01;
+}
+
static MACHINE_RESET( dkong )
{
+
+ dma8257_reset();
+
}
static MACHINE_RESET( strtheat )
{
+ dkong_state *state = machine->driver_data;
UINT8 *ROM = memory_region(REGION_CPU1);
machine_reset_dkong(machine);
/* The initial state of the counter is 0x08 */
memory_configure_bank(1, 0, 4, &ROM[0x10000], 0x4000);
- counter = 0x08;
+ state->decrypt_counter = 0x08;
memory_set_bank(1, 0);
}
static MACHINE_RESET( drakton )
{
+ dkong_state *state = machine->driver_data;
UINT8 *ROM = memory_region(REGION_CPU1);
machine_reset_dkong(machine);
/* The initial state of the counter is 0x09 */
memory_configure_bank(1, 0, 4, &ROM[0x10000], 0x4000);
- counter = 0x09;
+ state->decrypt_counter = 0x09;
memory_set_bank(1, 1);
}
-static MACHINE_START( dkong )
+/*************************************
+ *
+ * DMA handling
+ *
+ *************************************/
+
+static UINT8 dk_dma_read_byte(int channel, offs_t offset)
+{
+ UINT8 result;
+
+ cpuintrf_push_context(0);
+ result = program_read_byte(offset);
+ cpuintrf_pop_context();
+
+ return result;
+}
+
+static void dk_dma_write_byte(int channel, offs_t offset, UINT8 data)
+{
+ cpuintrf_push_context(0);
+ program_write_byte(offset, data);
+ cpuintrf_pop_context();
+}
+
+static UINT8 hb_dma_read_byte(int channel, offs_t offset)
+{
+ dkong_state *state = Machine->driver_data;
+ int bucket = state->rev_map[(offset>>10) & 0x1ff];
+ int addr;
+ UINT8 data;
+
+ if (bucket<0)
+ fatalerror("hb_dma_read_byte - unmapped access for 0x%02x - bucket 0x%02x\n", offset, bucket);
+
+ addr = ((bucket<<7) & 0x7c00) | (offset & 0x3ff);
+
+ cpuintrf_push_context(0);
+ data = program_read_byte(addr);
+ cpuintrf_pop_context();
+
+ return data;
+}
+
+static void hb_dma_write_byte(int channel, offs_t offset, UINT8 data)
{
- state_save_register_global(counter);
- state_save_register_global(hunchloopback);
- hunchloopback = 0;
+ dkong_state *state = Machine->driver_data;
+ int bucket = state->rev_map[(offset>>10) & 0x1ff];
+ int addr;
+
+ if (bucket<0)
+ fatalerror("hb_dma_read_byte - unmapped access for 0x%02x - bucket 0x%02x\n", offset, bucket);
+
+ addr = ((bucket<<7) & 0x7c00) | (offset & 0x3ff);
+
+ cpuintrf_push_context(0);
+ program_write_byte(addr, data);
+ cpuintrf_pop_context();
}
+static UINT8 p8257_ctl_r(void)
+{
+ dkong_state *state = Machine->driver_data;
+ return state->dma_latch;
+}
+
+static void p8257_ctl_w(UINT8 data)
+{
+ dkong_state *state = Machine->driver_data;
+ state->dma_latch = data;
+}
+
+
/*************************************
*
* Output ports
*
*************************************/
+static WRITE8_HANDLER( p8257_drq_w )
+{
+ dma8257_drq_write(0, 0, data & 0x01);
+ dma8257_drq_write(0, 1, data & 0x01);
+}
+
+static READ8_HANDLER( dkong_in2_r )
+{
+ return (readinputportbytag("IN2") & 0xBF) | (dkong_audio_status_r(0) << 6);
+}
+
static READ8_HANDLER( hunchbkd_mirror_r )
{
return program_read_byte(0x1000+offset);
@@ -264,25 +461,27 @@ static WRITE8_HANDLER( hunchbkd_mirror_w )
static READ8_HANDLER( epos_decrypt_rom )
{
+ dkong_state *state = Machine->driver_data;
+
if (offset & 0x01)
{
- counter = counter - 1;
- if (counter < 0)
- counter = 0x0F;
+ state->decrypt_counter = state->decrypt_counter - 1;
+ if (state->decrypt_counter < 0)
+ state->decrypt_counter = 0x0F;
}
else
{
- counter = (counter + 1) & 0x0F;
+ state->decrypt_counter = (state->decrypt_counter + 1) & 0x0F;
}
- switch(counter)
+ switch(state->decrypt_counter)
{
case 0x08: memory_set_bank(1, 0); break;
case 0x09: memory_set_bank(1, 1); break;
case 0x0A: memory_set_bank(1, 2); break;
case 0x0B: memory_set_bank(1, 3); break;
default:
- logerror("Invalid counter = %02X\n",counter);
+ logerror("Invalid counter = %02X\n",state->decrypt_counter);
break;
}
@@ -291,7 +490,9 @@ static READ8_HANDLER( epos_decrypt_rom )
static WRITE8_HANDLER( hunchbkd_data_w )
{
- hunchloopback=data;
+ dkong_state *state = Machine->driver_data;
+
+ state->hunchloopback = data;
}
static READ8_HANDLER( hunchbkd_port0_r )
@@ -309,7 +510,9 @@ static READ8_HANDLER( hunchbkd_port0_r )
static READ8_HANDLER( hunchbkd_port1_r )
{
- return hunchloopback;
+ dkong_state *state = Machine->driver_data;
+
+ return state->hunchloopback;
}
static READ8_HANDLER( herbiedk_port1_r )
@@ -387,39 +590,20 @@ static WRITE8_HANDLER( dkong3_2a03_reset_w )
static ADDRESS_MAP_START( dkong_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x73ff) AM_RAM
- AM_RANGE(0x6900, 0x6a7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
- AM_RANGE(0x6a80, 0x6cff) AM_RAM /* 0x6b00: sprite set 2 */
+ AM_RANGE(0x6000, 0x6bff) AM_RAM
+ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
+ AM_RANGE(0x7800, 0x780f) AM_READWRITE(dma8257_0_r, dma8257_0_w) /* P8257 control registers */
AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkong_sh_tuneselect_w) /* IN0, sound CPU intf */
- AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */
+ AM_RANGE(0x7c80, 0x7c80) AM_READWRITE(input_port_1_r, radarscp_grid_color_w) /* IN1 */
AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */
AM_RANGE(0x7d00, 0x7d07) AM_WRITE(dkong_snd_disc_w) /* Sound signals */
- AM_RANGE(0x7d80, 0x7d80) AM_READWRITE(input_port_3_r, dkong_sh_w) /* DSW1 */
+ AM_RANGE(0x7d80, 0x7d80) AM_READWRITE(input_port_3_r, dkong_audio_irq_w) /* DSW1 */
+ AM_RANGE(0x7d81, 0x7d81) AM_WRITE(radarscp_grid_enable_w)
AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
- AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_ROM) /* Pest Place only */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( epos_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_BANK1) /* DK: 0000-3fff */
- AM_RANGE(0x6000, 0x61ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x6200, 0x6fff) AM_RAM
- AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
- AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkong_sh_tuneselect_w)
- AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */
- AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */
- AM_RANGE(0x7d00, 0x7d07) AM_WRITE(dkong_snd_disc_w) /* sound */
- AM_RANGE(0x7d80, 0x7d80) AM_READWRITE(dkong_in2_r, dkong_sh_w)
- AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
- AM_RANGE(0x7d83, 0x7d83) AM_NOP
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
+ AM_RANGE(0x7d85, 0x7d85) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
ADDRESS_MAP_END
@@ -428,61 +612,22 @@ static ADDRESS_MAP_START( epos_readport, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x00, 0xff) AM_READ(epos_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( radarscp_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x73ff) AM_RAM
- AM_RANGE(0x6900, 0x6a7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
- AM_RANGE(0x6a80, 0x6cff) AM_RAM /* 0x6b00: sprite set 2 */
- AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
- AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkong_sh_tuneselect_w) /* IN0, sound CPU intf */
- AM_RANGE(0x7c80, 0x7c80) AM_READWRITE(input_port_1_r, radarscp_grid_color_w)/* IN1 */
- AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */
- AM_RANGE(0x7d00, 0x7d07) AM_WRITE(dkong_snd_disc_w) /* Sound signals */
- AM_RANGE(0x7d80, 0x7d80) AM_READWRITE(input_port_3_r, dkong_sh_w) /* DSW1 */
- AM_RANGE(0x7d81, 0x7d81) AM_WRITE(radarscp_grid_enable_w)
- AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
- AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
- AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_ROM) /* Pest Place only */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( radarsc1_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x73ff) AM_RAM
- AM_RANGE(0x6900, 0x6a7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
- AM_RANGE(0x6a80, 0x6cff) AM_RAM /* 0x6b00: sprite set 2 */
- AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
- AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkong_sh_tuneselect_w) /* IN0, sound CPU intf */
- AM_RANGE(0x7c80, 0x7c80) AM_READWRITE(input_port_1_r, radarscp_grid_color_w)/* IN1 */
- AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */
- AM_RANGE(0x7d00, 0x7d07) AM_WRITE(radarsc1_snd_disc_w) /* Sound signals */
- AM_RANGE(0x7d80, 0x7d80) AM_READWRITE(input_port_3_r, dkong_sh_w) /* DSW1 */
- AM_RANGE(0x7d81, 0x7d81) AM_WRITE(radarscp_grid_enable_w)
- AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
- AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
- AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_ROM) /* Pest Place only */
-ADDRESS_MAP_END
-
static ADDRESS_MAP_START( hunchbkd_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
+ AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* 0x7000 */
AM_RANGE(0x1400, 0x1400) AM_READWRITE(input_port_0_r, dkong_sh_tuneselect_w)
- AM_RANGE(0x1480, 0x1480) AM_READWRITE(input_port_1_r, dkongjr_gfxbank_w)
+ AM_RANGE(0x1480, 0x1480) AM_READ(input_port_1_r)
AM_RANGE(0x1500, 0x1500) AM_READ(input_port_2_r) /* IN2/DSW2 */
- AM_RANGE(0x1580, 0x1580) AM_READWRITE(input_port_3_r, dkong_sh_w) /* DSW1 */
+ AM_RANGE(0x1580, 0x1580) AM_READWRITE(input_port_3_r, dkong_audio_irq_w) /* DSW1 */
AM_RANGE(0x1582, 0x1582) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x1584, 0x1584) AM_NOP /* Possibly still interupt enable */
- AM_RANGE(0x1585, 0x1585) AM_NOP /* written a lot - every int */
+ AM_RANGE(0x1585, 0x1585) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x1586, 0x1587) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0x1600, 0x17ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x1800, 0x1bff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x1C00, 0x1fff) AM_RAM
+ AM_RANGE(0x1600, 0x17ff) AM_RAM /* 0x6400 spriteram location */
+ AM_RANGE(0x1800, 0x1bff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram) /* 0x7400 */
+ AM_RANGE(0x1C00, 0x1f7f) AM_RAM /* 0x6000 */
+ AM_RANGE(0x1f80, 0x1f8f) AM_READWRITE(dma8257_0_r, dma8257_0_w) /* P8257 control registers */
+ /* 0x6800 not remapped */
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x3fff) AM_READWRITE(hunchbkd_mirror_r, hunchbkd_mirror_w)
AM_RANGE(0x4000, 0x4fff) AM_ROM
@@ -548,12 +693,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dkongjr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x68ff) AM_RAM
- AM_RANGE(0x6900, 0x6a7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
- AM_RANGE(0x6a80, 0x6cff) AM_RAM /* 0x6b00: sprite set 2 */
- AM_RANGE(0x6d00, 0x6fff) AM_RAM
+ AM_RANGE(0x6000, 0x6bff) AM_RAM
+ AM_RANGE(0x6c00, 0x6fff) AM_RAM /* DK3 bootleg only */
+ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
+ AM_RANGE(0x7800, 0x780f) AM_READWRITE(dma8257_0_r, dma8257_0_w) /* P8257 control registers */
AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkongjr_sh_tuneselect_w)
AM_RANGE(0x7c80, 0x7c80) AM_READWRITE(input_port_1_r, dkongjr_gfxbank_w)
AM_RANGE(0x7c81, 0x7c81) AM_WRITE(dkongjr_sh_test6_w)
@@ -564,94 +708,46 @@ static ADDRESS_MAP_START( dkongjr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
+ AM_RANGE(0x7d85, 0x7d85) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) /* bootleg DKjr only */
- AM_RANGE(0xd000, 0xdfff) AM_WRITE(MWA8_ROM) /* DK3 bootleg only */
+ AM_RANGE(0x8000, 0x9fff) AM_ROM /* bootleg DKjr only */
+ AM_RANGE(0xb000, 0xbfff) AM_ROM /* pestplce only */
+ AM_RANGE(0xd000, 0xdfff) AM_ROM /* DK3 bootleg only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pestplce_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x68ff) AM_RAM
- AM_RANGE(0x6900, 0x6a7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite set 1 */
- AM_RANGE(0x6a80, 0x6cff) AM_RAM /* 0x6b00: sprite set 2 */
- AM_RANGE(0x6d00, 0x6fff) AM_RAM
- AM_RANGE(0x7400, 0x77ff) AM_READWRITE(MRA8_RAM, dkong_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x7800, 0x780f) AM_NOP /* P8257 control registers */
- AM_RANGE(0x7c00, 0x7c00) AM_READWRITE(input_port_0_r, dkongjr_sh_tuneselect_w)
- AM_RANGE(0x7c80, 0x7c80) AM_READWRITE(input_port_1_r, dkongjr_gfxbank_w)
- AM_RANGE(0x7c81, 0x7c81) AM_WRITE(dkongjr_sh_test6_w)
- AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */
- AM_RANGE(0x7d00, 0x7d07) AM_WRITE(dkong_snd_disc_w) /* walk/jump/boom sample trigger */
- AM_RANGE(0x7d80, 0x7d80) AM_READ(input_port_3_r) AM_WRITENOP //(dkong_sh_w)
- AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
- //AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0x7d85, 0x7d85) AM_NOP /* P8257 ==> /DRQ0 /DRQ1 */
- AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
- AM_RANGE(0xb000, 0xbfff) AM_ROM
-ADDRESS_MAP_END
/*************************************
*
- * Sound CPU memory handlers
+ * Port definitions
*
*************************************/
-static ADDRESS_MAP_START( dkong_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_ROM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( dkong_sound_io_map, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0x00, 0xff) AM_READ(dkong_sh_tune_r)
- AM_RANGE(I8039_p1, I8039_p1) AM_READWRITE(dkong_sh_p1_r, dkong_sh_p1_w)
- AM_RANGE(I8039_p2, I8039_p2) AM_READWRITE(dkong_sh_p2_r, dkong_sh_p2_w)
- AM_RANGE(I8039_t0, I8039_t0) AM_READ(dkong_sh_t0_r)
- AM_RANGE(I8039_t1, I8039_t1) AM_READ(dkong_sh_t1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( radarsc1_sound_io_map, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0x00, 0xff) AM_READ(radarsc1_sh_tune_r)
- AM_RANGE(0x00, 0xff) AM_WRITE(dkong_sh_p1_w) // DAC here
- AM_RANGE(I8039_p1, I8039_p1) AM_READWRITE(radarsc1_sh_p1_r, radarsc1_sh_p1_w)
- AM_RANGE(I8039_p2, I8039_p2) AM_READWRITE(dkong_sh_p2_r, radarsc1_sh_p2_w)
- AM_RANGE(I8039_t0, I8039_t0) AM_READ(dkong_sh_t0_r)
- AM_RANGE(I8039_t1, I8039_t1) AM_READ(dkong_sh_t1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( hunchbkd_sound_io_map, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(I8039_bus, I8039_bus) AM_READ(soundlatch_r)
- AM_RANGE(I8039_p1, I8039_p1) AM_READWRITE(dkong_sh_p1_r, dkong_sh_p1_w)
- AM_RANGE(I8039_p2, I8039_p2) AM_READWRITE(dkong_sh_p2_r, dkong_sh_p2_w)
- AM_RANGE(I8039_t0, I8039_t0) AM_READ(dkong_sh_t0_r)
- AM_RANGE(I8039_t1, I8039_t1) AM_READ(dkong_sh_t1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( dkong3_sound1_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch_r) // overwrite default
- AM_RANGE(0x4017, 0x4017) AM_READ(soundlatch2_r)
- AM_RANGE(0x4000, 0x4017) AM_READ(NESPSG_0_r)
- AM_RANGE(0x4000, 0x4017) AM_WRITE(NESPSG_0_w)
- AM_RANGE(0xe000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( dkong3_sound2_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch3_r) // overwrite default
- AM_RANGE(0x4000, 0x4017) AM_READ(NESPSG_1_r)
- AM_RANGE(0x4000, 0x4017) AM_WRITE(NESPSG_1_w)
- AM_RANGE(0xe000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+static INPUT_PORTS_START( radarscp_in0_2 )
+ PORT_START_TAG("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+INPUT_PORTS_END
-/*************************************
- *
- * Port definitions
- *
- *************************************/
+static INPUT_PORTS_START( radarscp_in1_2 )
+ PORT_START_TAG("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_COCKTAIL /* not connected - held to high */
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_COCKTAIL /* not connected - held to high */
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+INPUT_PORTS_END
-static INPUT_PORTS_START( dkong )
- PORT_START /* IN0 */
+static INPUT_PORTS_START( dkong_in0_4 )
+ PORT_START_TAG("IN0") /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
@@ -660,8 +756,10 @@ static INPUT_PORTS_START( dkong )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+INPUT_PORTS_END
- PORT_START /* IN1 */
+static INPUT_PORTS_START( dkong_in1_4 )
+ PORT_START_TAG("IN1") /* IN1 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
@@ -670,12 +768,38 @@ static INPUT_PORTS_START( dkong )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dkong_in0_8 )
+ PORT_START_TAG("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dkong_in1_8 )
+ PORT_START_TAG("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+INPUT_PORTS_END
+static INPUT_PORTS_START( dkong_in2 )
/* Bit 0x80 is (SERVICE OR COIN) !
* Bit 0x01 is going to the connector but it is not labeled
* It should be a IPT_UNKNOWN. In fact, it will reset the game.
*/
- PORT_START /* IN2 */
+ PORT_START_TAG("IN2") /* IN2 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME(DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* connection not labeled in schematics */
/* This may freeze or reset dkong */
@@ -685,8 +809,10 @@ static INPUT_PORTS_START( dkong )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+INPUT_PORTS_END
- PORT_START /* DSW0 */
+static INPUT_PORTS_START( dkong_dsw0 )
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!1,!2" )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "4" )
@@ -709,74 +835,45 @@ static INPUT_PORTS_START( dkong )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" )
PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+static INPUT_PORTS_START( dkong_config )
PORT_START_TAG("VR2")
PORT_ADJUSTER( 90, "VR2 - DAC Volume" )
+ PORT_START_TAG("VIDHW")
+ PORT_CONFNAME( 0x01, 0x01, "Video Hardware" )
+ PORT_CONFSETTING( 0x00, "TKG-02 (Radarscope Conversion)" )
+ PORT_CONFSETTING( 0x01, "TKG-04 (Two board set)" )
+
INPUT_PORTS_END
-static INPUT_PORTS_START( radarscp )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected - held to high */
+static INPUT_PORTS_START( dkong )
+ PORT_INCLUDE( dkong_in0_4 )
+ PORT_INCLUDE( dkong_in1_4 )
+ PORT_INCLUDE( dkong_in2 )
+ PORT_INCLUDE( dkong_dsw0 )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_COCKTAIL /* not connected - held to high */
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_COCKTAIL /* not connected - held to high */
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* not connected - held to high */
+ PORT_INCLUDE( dkong_config )
+INPUT_PORTS_END
+static INPUT_PORTS_START( radarscp )
+ PORT_INCLUDE( radarscp_in0_2 )
+ PORT_INCLUDE( radarscp_in1_2 )
/* Bit 0x80 is (SERVICE OR COIN) !
* Bit 0x01 is going to the connector and is labeled test switch
* It should be a IPT_UNUSED. In fact, it will reset the game.
*/
- PORT_START /* IN2 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME(DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* connection not labeled in schematics */
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_DIPNAME( 0x10, 0x10, "TP3" )
PORT_DIPSETTING( 0x00, "Gnd" )
PORT_DIPSETTING( 0x10, "Open" )
PORT_DIPNAME( 0x20, 0x20, "TP5" )
PORT_DIPSETTING( 0x00, "Gnd" )
PORT_DIPSETTING( 0x20, "Open" )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* SACA - Sound Acknowledge*/
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x00, "7000" )
- PORT_DIPSETTING( 0x04, "10000" )
- PORT_DIPSETTING( 0x08, "15000" )
- PORT_DIPSETTING( 0x0c, "20000" )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_INCLUDE( dkong_dsw0 )
PORT_START_TAG("VR2")
PORT_ADJUSTER( 35, "VR2 - DAC Volume" )
@@ -784,7 +881,7 @@ static INPUT_PORTS_START( radarscp )
INPUT_PORTS_END
static INPUT_PORTS_START( dkong3 )
- PORT_START /* IN0 */
+ PORT_START_TAG("IN0") /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
@@ -794,7 +891,7 @@ static INPUT_PORTS_START( dkong3 )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN3 )
- PORT_START /* IN1 */
+ PORT_START_TAG("IN1") /* IN1 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
@@ -804,7 +901,7 @@ static INPUT_PORTS_START( dkong3 )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:!1,!2,!3")
PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
@@ -822,7 +919,7 @@ static INPUT_PORTS_START( dkong3 )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
- PORT_START /* DSW1 */
+ PORT_START_TAG("DSW1") /* DSW1 */
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2")
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "4" )
@@ -846,45 +943,12 @@ static INPUT_PORTS_START( dkong3 )
INPUT_PORTS_END
static INPUT_PORTS_START( dkong3b )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in0_4 )
+ PORT_INCLUDE( dkong_in1_4 )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in2 )
- PORT_START /* IN2 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
-
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
@@ -911,86 +975,57 @@ static INPUT_PORTS_START( dkong3b )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
+static INPUT_PORTS_START( dkongjr )
+ PORT_INCLUDE( dkong_in0_4 )
+ PORT_INCLUDE( dkong_in1_4 )
+ PORT_INCLUDE( dkong_in2 )
+ PORT_INCLUDE( dkong_dsw0 )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( hunchbkd )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_INCLUDE( dkong_in1_8 )
- PORT_START /* IN2 */
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_INCLUDE( dkong_dsw0 )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!2" )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION( "SW1:!3,!4" )
PORT_DIPSETTING( 0x00, "10000" )
PORT_DIPSETTING( 0x04, "20000" )
PORT_DIPSETTING( 0x08, "40000" )
PORT_DIPSETTING( 0x0c, "80000" )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_START /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
INPUT_PORTS_END
static INPUT_PORTS_START( shootgal )
- PORT_START /* IN0 */
+ PORT_START_TAG("IN0") /* IN0 */
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START /* IN1 */
+ PORT_START_TAG("IN1") /* IN1 */
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START /* IN2 */
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x01, 0x00, "1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
@@ -1014,203 +1049,108 @@ static INPUT_PORTS_START( shootgal )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
+
INPUT_PORTS_END
static INPUT_PORTS_START( sbdk )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_INCLUDE( dkong_in1_8 )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START /* IN2 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Start 1 / P1 Button 1") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start 2 / P1 Button 2") PORT_PLAYER(1)
- PORT_START /* DSW0 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_INCLUDE( dkong_dsw0 )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!2" )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!3" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!4" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
+
INPUT_PORTS_END
static INPUT_PORTS_START( herbiedk )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_INCLUDE( dkong_in1_8 )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START /* IN2 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Start 1 / P1 Button 1") PORT_PLAYER(1)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start 2 / P1 Button 2") PORT_PLAYER(1)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_INCLUDE( dkong_in2 )
- PORT_START /* DSW0 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_INCLUDE( dkong_dsw0 )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!2" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!3" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!4" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
INPUT_PORTS_END
/* Notes :
- you ALWAYS get an extra life at 150000 points.
- having more than 6 lives will reset the game.
*/
+
static INPUT_PORTS_START( herodk )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_MODIFY("IN0")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_INCLUDE( dkong_in1_8 )
+ PORT_MODIFY("IN1")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN2 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_INCLUDE( dkong_in2 )
- PORT_START /* DSW0 */
- PORT_DIPUNUSED( 0x01, IP_ACTIVE_HIGH )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) )
+ PORT_INCLUDE( dkong_dsw0 )
+ PORT_MODIFY("DSW0")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW1:!1" )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!2" )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPNAME( 0x0c, 0x00, "Difficulty?" ) // Stored at 0x1c99
+ PORT_DIPNAME( 0x0c, 0x00, "Difficulty?" ) PORT_DIPLOCATION( "SW1:!3,!4" ) // Stored at 0x1c99
PORT_DIPSETTING( 0x00, "0" )
PORT_DIPSETTING( 0x04, "1" )
PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x0c, "3" )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
INPUT_PORTS_END
static INPUT_PORTS_START( pestplce )
- PORT_START /* IN0 */
+ PORT_START_TAG("IN0") /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1)
@@ -1220,7 +1160,7 @@ static INPUT_PORTS_START( pestplce )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN1 */
+ PORT_START_TAG("IN1") /* IN1 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
@@ -1230,17 +1170,11 @@ static INPUT_PORTS_START( pestplce )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN2 */
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "4" )
@@ -1263,41 +1197,27 @@ static INPUT_PORTS_START( pestplce )
PORT_DIPSETTING( 0x40, "30000" )
PORT_DIPSETTING( 0x80, "40000" )
PORT_DIPSETTING( 0xc0, DEF_STR ( None ) )
+
+ PORT_INCLUDE( dkong_config )
INPUT_PORTS_END
static INPUT_PORTS_START( spclforc )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_MODIFY("IN0")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
+ PORT_INCLUDE( dkong_in1_8 )
+ PORT_MODIFY("IN1")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN2 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Start 1 / P1 Button 1") PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start 2 / P1 Button 2") PORT_PLAYER(1)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
@@ -1322,58 +1242,30 @@ static INPUT_PORTS_START( spclforc )
PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK )
+
+ PORT_INCLUDE( dkong_config )
+
INPUT_PORTS_END
static INPUT_PORTS_START( 8ballact )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_INCLUDE( dkong_in0_8 )
+ PORT_INCLUDE( dkong_in1_8 )
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START /* IN2 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_INCLUDE( dkong_in2 )
- PORT_START /* DSW0 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
+ PORT_START_TAG("DSW0") /* DSW0 */
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW1:!1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW1:!2" )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!3" )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:!4" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW1:!5,!6,!7" )
PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
@@ -1382,47 +1274,24 @@ static INPUT_PORTS_START( 8ballact )
PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:!8" )
- PORT_START /* Sense */
+ PORT_START_TAG("SENSE") /* Sense */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK )
-INPUT_PORTS_END
+ PORT_INCLUDE( dkong_config )
-static INPUT_PORTS_START( drakton )
- PORT_START /* IN0 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
- PORT_START /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+static INPUT_PORTS_START( drakton )
+ PORT_INCLUDE( dkong_in0_4 )
+ PORT_INCLUDE( dkong_in1_4 )
- PORT_START /* IN2 */
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
@@ -1446,11 +1315,14 @@ static INPUT_PORTS_START( drakton )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
+
+ PORT_INCLUDE( dkong_config )
+
INPUT_PORTS_END
static INPUT_PORTS_START( strtheat )
- PORT_START /* IN0 */
+ PORT_START_TAG("IN0") /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
@@ -1460,7 +1332,7 @@ static INPUT_PORTS_START( strtheat )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN1 */
+ PORT_START_TAG("IN1") /* IN1 */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
@@ -1470,17 +1342,11 @@ static INPUT_PORTS_START( strtheat )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_START /* IN2 */
+ PORT_INCLUDE( dkong_in2 )
+ PORT_MODIFY("IN2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_START /* DSW0 */
+ PORT_START_TAG("DSW0") /* DSW0 */
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
@@ -1505,11 +1371,14 @@ static INPUT_PORTS_START( strtheat )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
- PORT_START /* IN4 */
+ PORT_START_TAG("IN4") /* IN4 */
PORT_BIT( 0x03, 0x00, IPT_DIAL ) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_REVERSE
- PORT_START /* IN5 */
+ PORT_START_TAG("IN5") /* IN5 */
PORT_BIT( 0x03, 0x00, IPT_DIAL ) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL
+
+ PORT_INCLUDE( dkong_config )
+
INPUT_PORTS_END
/*************************************
@@ -1571,32 +1440,6 @@ GFXDECODE_END
*
*************************************/
-static const char *dkongjr_sample_names[] =
-{
- "*dkongjr",
- "jump.wav",
- "land.wav",
- "roar.wav",
- "climb0.wav",
- "climb1.wav",
- "climb2.wav",
- "death.wav",
- "drop.wav",
- "walk0.wav",
- "walk1.wav",
- "walk2.wav",
- "snapjaw.wav",
- 0 /* end of array */
-};
-
-static struct Samplesinterface dkongjr_samples_interface =
-{
- 8, /* 8 channels */
- dkongjr_sample_names
-};
-
-static struct NESinterface nes_interface_1 = { REGION_CPU2 };
-static struct NESinterface nes_interface_2 = { REGION_CPU3 };
/*************************************
*
@@ -1604,18 +1447,17 @@ static struct NESinterface nes_interface_2 = { REGION_CPU3 };
*
*************************************/
-static MACHINE_DRIVER_START( radarscp )
+static MACHINE_DRIVER_START( dkong_base )
+
+ /* driver data */
+ MDRV_DRIVER_DATA(dkong_state)
/* basic machine hardware */
- MDRV_CPU_ADD(Z80, CLOCK_1H) /* 3.072 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(radarscp_map, 0)
+ MDRV_CPU_ADD_TAG("main", Z80, CLOCK_1H)
+ MDRV_CPU_PROGRAM_MAP(dkong_map, 0)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map, 0)
- MDRV_CPU_IO_MAP(dkong_sound_io_map, 0)
-
- MDRV_MACHINE_START(dkong)
+ MDRV_MACHINE_START(dkong2b)
MDRV_MACHINE_RESET(dkong)
/* video hardware */
@@ -1623,176 +1465,89 @@ static MACHINE_DRIVER_START( radarscp )
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256+256+8+1)
+ MDRV_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
- MDRV_PALETTE_INIT(radarscp)
- MDRV_VIDEO_START(radarscp)
- MDRV_VIDEO_UPDATE(radarscp)
+ MDRV_PALETTE_INIT(dkong2b)
+ MDRV_VIDEO_START(dkong)
+ MDRV_VIDEO_UPDATE(dkong)
- /* sound hardware */
- MDRV_SOUND_START(dkong)
+MACHINE_DRIVER_END
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0)
- MDRV_SOUND_CONFIG_DISCRETE(radarscp)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+static MACHINE_DRIVER_START( radarscp )
-MACHINE_DRIVER_END
+ MDRV_IMPORT_FROM(dkong_base)
-static MACHINE_DRIVER_START( radarsc1 )
+ MDRV_MACHINE_START(radarscp)
+ MDRV_PALETTE_LENGTH(RS_PALETTE_LENGTH)
+ MDRV_PALETTE_INIT(radarscp)
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, CLOCK_1H) /* 3.072 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(radarsc1_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
+ /* sound hardware */
+ MDRV_IMPORT_FROM(radarscp_audio)
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
- MDRV_CPU_IO_MAP(radarsc1_sound_io_map, 0)
+MACHINE_DRIVER_END
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
+static MACHINE_DRIVER_START( radarsc1 )
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256+256+8+1)
+ MDRV_IMPORT_FROM(dkong_base)
+ MDRV_MACHINE_START(radarsc1)
+ MDRV_PALETTE_LENGTH(RS_PALETTE_LENGTH)
MDRV_PALETTE_INIT(radarsc1)
- MDRV_VIDEO_START(radarsc1)
- MDRV_VIDEO_UPDATE(radarscp)
/* sound hardware */
- MDRV_SOUND_START(radarsc1)
+ MDRV_IMPORT_FROM(radarsc1_audio)
- MDRV_SPEAKER_STANDARD_MONO("mono")
-
- MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0)
- MDRV_SOUND_CONFIG_DISCRETE(radarscp)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
-static MACHINE_DRIVER_START( dkong )
-
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, CLOCK_1H)
- MDRV_CPU_PROGRAM_MAP(dkong_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
- MDRV_CPU_IO_MAP(dkong_sound_io_map, 0)
+static MACHINE_DRIVER_START( dkong2b )
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
+ MDRV_IMPORT_FROM(dkong_base)
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256)
-
- MDRV_PALETTE_INIT(dkong)
- MDRV_VIDEO_START(dkong)
- MDRV_VIDEO_UPDATE(dkong)
+ MDRV_MACHINE_START(dkong2b)
+ MDRV_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
/* sound hardware */
- MDRV_SOUND_START(dkong)
+ MDRV_IMPORT_FROM(dkong2b_audio)
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0)
- MDRV_SOUND_CONFIG_DISCRETE(dkong)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.7)
MACHINE_DRIVER_END
+
static MACHINE_DRIVER_START( hunchbkd )
+ MDRV_IMPORT_FROM(dkong2b)
+
/* basic machine hardware */
- MDRV_CPU_ADD_TAG("main", S2650, 3072000/2) /* ??? */
+ MDRV_CPU_REPLACE("main", S2650, CLOCK_1H / 2) /* ??? */
MDRV_CPU_PROGRAM_MAP(hunchbkd_map, 0)
MDRV_CPU_IO_MAP(hunchbkd_io_map, 0)
MDRV_CPU_VBLANK_INT(hunchbkd_interrupt,1)
- MDRV_CPU_ADD_TAG("sound", I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map, 0)
- MDRV_CPU_IO_MAP(hunchbkd_sound_io_map, 0)
-
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
-
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256)
-
- MDRV_PALETTE_INIT(dkong)
- MDRV_VIDEO_START(dkong)
- MDRV_VIDEO_UPDATE(dkong)
-
- /* sound hardware */
- MDRV_SOUND_START(hunchbkd)
+ MDRV_MACHINE_START(hunchbkd)
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(DAC, 0)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( epos )
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, CLOCK_1H)
- MDRV_CPU_PROGRAM_MAP(epos_map, 0)
- MDRV_CPU_IO_MAP(epos_readport,0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
-
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
- MDRV_CPU_IO_MAP(dkong_sound_io_map, 0)
-
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
+ MDRV_IMPORT_FROM(dkong2b)
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256)
-
- MDRV_PALETTE_INIT(dkong)
- MDRV_VIDEO_START(dkong)
- MDRV_VIDEO_UPDATE(dkong)
-
- /* sound hardware */
- MDRV_SOUND_START(hunchbkd)
+ MDRV_CPU_MODIFY("main")
+ MDRV_CPU_IO_MAP(epos_readport,0)
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(DAC, 0)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( dkong3 )
+ /* driver data */
+ MDRV_DRIVER_DATA(dkong_state)
+
/* basic machine hardware */
MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz */
MDRV_CPU_PROGRAM_MAP(dkong3_map, 0)
MDRV_CPU_IO_MAP(0, dkong3_io_map)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
- MDRV_CPU_ADD(N2A03,N2A03_DEFAULTCLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong3_sound1_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
-
- MDRV_CPU_ADD(N2A03,N2A03_DEFAULTCLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong3_sound2_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
-
- MDRV_MACHINE_START(dkong)
+ MDRV_MACHINE_START(dkong2b)
MDRV_MACHINE_RESET(dkong)
/* video hardware */
@@ -1800,93 +1555,37 @@ static MACHINE_DRIVER_START( dkong3 )
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256)
+ MDRV_PALETTE_LENGTH(DK3_PALETTE_LENGTH)
MDRV_PALETTE_INIT(dkong3)
MDRV_VIDEO_START(dkong)
MDRV_VIDEO_UPDATE(dkong)
/* sound hardware */
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(NES, N2A03_DEFAULTCLOCK)
- MDRV_SOUND_CONFIG(nes_interface_1)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-
- MDRV_SOUND_ADD(NES, N2A03_DEFAULTCLOCK)
- MDRV_SOUND_CONFIG(nes_interface_2)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ MDRV_IMPORT_FROM(dkong3_audio)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( dkongjr )
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, CLOCK_1H)
- MDRV_CPU_PROGRAM_MAP(dkongjr_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
-
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map,0)
- MDRV_CPU_IO_MAP(dkong_sound_io_map, 0)
-
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
+ MDRV_IMPORT_FROM(dkong_base)
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MDRV_GFXDECODE(dkong)
- MDRV_PALETTE_LENGTH(256)
-
- MDRV_PALETTE_INIT(dkong)
- MDRV_VIDEO_START(dkong)
- MDRV_VIDEO_UPDATE(dkong)
+ MDRV_CPU_MODIFY("main")
+ MDRV_CPU_PROGRAM_MAP(dkongjr_map, 0)
/* sound hardware */
- MDRV_SOUND_START(dkongjr)
+ MDRV_IMPORT_FROM(dkongjr_audio)
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(DAC, 0)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
-
- MDRV_SOUND_ADD(SAMPLES, 0)
- MDRV_SOUND_CONFIG(dkongjr_samples_interface)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( pestplce )
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(pestplce_map, 0)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
-
- MDRV_CPU_ADD(I8035,I8035_CLOCK)
- MDRV_CPU_PROGRAM_MAP(dkong_sound_map, 0)
- MDRV_CPU_IO_MAP(dkong_sound_io_map, 0)
-
- MDRV_MACHINE_START(dkong)
- MDRV_MACHINE_RESET(dkong)
+ MDRV_IMPORT_FROM(dkongjr)
- /* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MDRV_GFXDECODE(pestplce)
- MDRV_PALETTE_LENGTH(256)
-
- MDRV_PALETTE_INIT(dkong) // wrong!
- MDRV_VIDEO_START(dkong)
+ MDRV_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
+ MDRV_PALETTE_INIT(dkong2b) // wrong!
MDRV_VIDEO_UPDATE(pestplce)
- /* sound hardware */
- MDRV_SOUND_START(hunchbkd)
-
- MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(DAC, 0)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
-
- /* samples */
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( herbiedk )
@@ -1896,7 +1595,6 @@ static MACHINE_DRIVER_START( herbiedk )
MDRV_CPU_MODIFY("main")
MDRV_CPU_IO_MAP(herbiedk_io_map, 0)
- //MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1000))
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( spclforc )
@@ -2056,14 +1754,6 @@ ROM_START( dkong )
ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */
-
-/*********************************************************
-I use more appropreate filenames for color PROMs.
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
- ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) )
- ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) )
- ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) )
-*********************************************************/
ROM_END
ROM_START( dkongo )
@@ -2092,14 +1782,6 @@ ROM_START( dkongo )
ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */
-
-/*********************************************************
-I use more appropreate filenames for color PROMs.
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
- ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) )
- ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) )
- ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) )
-*********************************************************/
ROM_END
ROM_START( dkongjp )
@@ -2127,14 +1809,6 @@ ROM_START( dkongjp )
ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */
-
-/*********************************************************
-I use more appropreate filenames for color PROMs.
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
- ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) )
- ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) )
- ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) )
-*********************************************************/
ROM_END
ROM_START( dkongjo )
@@ -2162,14 +1836,6 @@ ROM_START( dkongjo )
ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */
-
-/*********************************************************
-I use more appropreate filenames for color PROMs.
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
- ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) )
- ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) )
- ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) )
-*********************************************************/
ROM_END
ROM_START( dkongjo1 )
@@ -2198,13 +1864,6 @@ ROM_START( dkongjo1 )
ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */
-/*********************************************************
-I use more appropreate filenames for color PROMs.
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
- ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) )
- ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) )
- ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) )
-*********************************************************/
ROM_END
ROM_START( dkongjr )
@@ -2518,7 +2177,10 @@ ROM_START( hunchbkd )
ROM_LOAD( "hbprom.2e", 0x0000, 0x0100, CRC(37aab98f) SHA1(0b002ab82158854bdd4a9db05eee037711017313) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "hbprom.2f", 0x0100, 0x0100, CRC(845b8dcc) SHA1(eebd0c024172e54b509f1f99d9159438d5f3a905) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "hbprom.2n", 0x0200, 0x0100, CRC(dff9070a) SHA1(307b95749343b5106247d842f773b2b445faa156) ) /* character color codes on a per-column basis */
- ROM_LOAD( "82s147.prm", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* unknown */
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* address mapping */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( sbdk )
@@ -2541,10 +2203,14 @@ ROM_START( sbdk )
ROM_LOAD( "sb-dk.7e", 0x1000, 0x0800, CRC(8e48b13e) SHA1(b4589685a60a8463f656a4f5b0dedfb265c3b3e4) )
ROM_LOAD( "sb-dk.7f", 0x1800, 0x0800, CRC(989969f3) SHA1(de641082476ac3da3872461263566dfb398ea43a) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "sb.2e", 0x0000, 0x0100, CRC(4f06f789) SHA1(0b2775dd8da1c20121639871ed291a015a34e1f6) )
ROM_LOAD( "sb.2f", 0x0100, 0x0100, CRC(2c15b1b2) SHA1(7c80eb77ba47e2f4d889fc10663a0391d4329a1d) )
ROM_LOAD( "sb.2n", 0x0200, 0x0100, CRC(dff9070a) SHA1(307b95749343b5106247d842f773b2b445faa156) )
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* address mapping */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( herbiedk )
@@ -2571,7 +2237,7 @@ ROM_START( herbiedk )
ROM_LOAD( "74s287.2k", 0x0000, 0x0100, CRC(7dc0a381) SHA1(7d974b2249392160e3b800e7113d4899c3600b7f) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "74s287.2j", 0x0100, 0x0100, CRC(0a440c00) SHA1(e3249a646cd8aa50739e09ae101e796ea3aac37a) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "74s287.vid", 0x0200, 0x0100, CRC(5a3446cc) SHA1(158de015006e6c400cb7ee758fda7ff760eb5835) ) /* character color codes on a per-column basis */
- ROM_LOAD( "82s147.hh", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* unknown */
+ ROM_LOAD( "82s147.hh", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* address mapping */
ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, CRC(d6a04bcc) SHA1(ef1ed4311869d46dec95c2bfb31875c2f022da4f) )
@@ -2602,10 +2268,14 @@ ROM_START( herodk )
ROM_LOAD( "yellow.7e", 0x1000, 0x0800, CRC(f6272e96) SHA1(a9608966613aedb36cfb04f85730efed9a44d17c) )
ROM_LOAD( "violet.7f", 0x1800, 0x0800, CRC(ca020685) SHA1(fe0d8d85c3bf244384e9c94f6a7f17db31083245) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "82s129.2e", 0x0000, 0x0100, CRC(da4b47e6) SHA1(2cfc7d489002113eb91048cc29d24831dadbfabb) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "82s129.2f", 0x0100, 0x0100, CRC(96e213a4) SHA1(38f21e7bce96fd2159aa61e64d66aa574d85873c) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(37aece4b) SHA1(08dbb470644278132b8126649fe41d70e7750bee) ) /* character color codes on a per-column basis */
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( herodku )
@@ -2631,10 +2301,14 @@ ROM_START( herodku )
ROM_LOAD( "yellow.7e", 0x1000, 0x0800, CRC(f6272e96) SHA1(a9608966613aedb36cfb04f85730efed9a44d17c) )
ROM_LOAD( "violet.7f", 0x1800, 0x0800, CRC(ca020685) SHA1(fe0d8d85c3bf244384e9c94f6a7f17db31083245) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "82s129.2e", 0x0000, 0x0100, CRC(da4b47e6) SHA1(2cfc7d489002113eb91048cc29d24831dadbfabb) ) /* palette low 4 bits (inverted) */
ROM_LOAD( "82s129.2f", 0x0100, 0x0100, CRC(96e213a4) SHA1(38f21e7bce96fd2159aa61e64d66aa574d85873c) ) /* palette high 4 bits (inverted) */
ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(37aece4b) SHA1(08dbb470644278132b8126649fe41d70e7750bee) ) /* character color codes on a per-column basis */
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( spclforc )
@@ -2654,10 +2328,14 @@ ROM_START( spclforc )
ROM_LOAD( "2732.7e", 0x2000, 0x1000, CRC(f6a113bd) SHA1(2f8776780284081f7858334766be6a6fde3a3371) )
ROM_LOAD( "2732.7f", 0x3000, 0x1000, CRC(42857a7a) SHA1(267dd954480bc87f14c758803cb26b7812d323b8) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "82s126.2e", 0x0000, 0x0100, CRC(b3751a25) SHA1(4b444e8fd02ac8674ecaba2fee083cb9feb99fa0) )
ROM_LOAD( "82s126.2f", 0x0100, 0x0100, CRC(1026d438) SHA1(927009e6ed520c39c36c1d7966589c6778df1a3a) )
ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(9735998d) SHA1(c3f50f97369547b1fd25da64507a5c8b725de6d0) )
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( spcfrcii )
@@ -2677,10 +2355,14 @@ ROM_START( spcfrcii )
ROM_LOAD( "spfc2.7e", 0x2000, 0x1000, CRC(f6a113bd) SHA1(2f8776780284081f7858334766be6a6fde3a3371) )
ROM_LOAD( "spfc2.7f", 0x3000, 0x1000, CRC(42857a7a) SHA1(267dd954480bc87f14c758803cb26b7812d323b8) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "spfc2.2e", 0x0000, 0x0100, CRC(b3751a25) SHA1(4b444e8fd02ac8674ecaba2fee083cb9feb99fa0) )
ROM_LOAD( "spfc2.2f", 0x0100, 0x0100, CRC(1026d438) SHA1(927009e6ed520c39c36c1d7966589c6778df1a3a) )
ROM_LOAD( "spfc2.2n", 0x0200, 0x0100, CRC(9735998d) SHA1(c3f50f97369547b1fd25da64507a5c8b725de6d0) )
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( 8ballact )
@@ -2706,10 +2388,14 @@ ROM_START( 8ballact )
ROM_LOAD( "8b-dk.7e", 0x1000, 0x0800, CRC(655af8a8) SHA1(d434efc89226d28d24e858186fab9aff0e476deb) )
ROM_LOAD( "8b-dk.7f", 0x1800, 0x0800, CRC(a29b2763) SHA1(6b2ee88e96a1b74193f12f4fa64a6705f17557b1) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "8b.2e", 0x0000, 0x0100, CRC(c7379a12) SHA1(e128e7d7c71ec61b934651c29648d0d2fc69e306) )
ROM_LOAD( "8b.2f", 0x0100, 0x0100, CRC(116612b4) SHA1(9a7c5329f211b13d5a757fdac761d7096d78b65a) )
ROM_LOAD( "8b.2n", 0x0200, 0x0100, CRC(30586988) SHA1(a9c246fd01cb3ff371ad33b55d5b2fe4898c4d1b) )
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
ROM_START( 8ballat2 )
@@ -2735,10 +2421,14 @@ ROM_START( 8ballat2 )
ROM_LOAD( "8b-jr.7e", 0x1000, 0x0800, CRC(655af8a8) SHA1(d434efc89226d28d24e858186fab9aff0e476deb) )
ROM_LOAD( "8b-jr.7f", 0x1800, 0x0800, CRC(a29b2763) SHA1(6b2ee88e96a1b74193f12f4fa64a6705f17557b1) )
- ROM_REGION( 0x0300, REGION_PROMS, 0 )
+ ROM_REGION( 0x0500, REGION_PROMS, 0 )
ROM_LOAD( "8b.2e", 0x0000, 0x0100, CRC(c7379a12) SHA1(e128e7d7c71ec61b934651c29648d0d2fc69e306) )
ROM_LOAD( "8b.2f", 0x0100, 0x0100, CRC(116612b4) SHA1(9a7c5329f211b13d5a757fdac761d7096d78b65a) )
ROM_LOAD( "8b.2n", 0x0200, 0x0100, CRC(30586988) SHA1(a9c246fd01cb3ff371ad33b55d5b2fe4898c4d1b) )
+ ROM_LOAD( "82s147.prm", 0x0300, 0x0200, BAD_DUMP CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* no dump - taken from hunchbkd */
+
+ ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE )
+ ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, NO_DUMP ) /* missing - pls153 ??? */
ROM_END
/* encrypted */
@@ -2749,8 +2439,8 @@ ROM_START( drakton )
ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */
/* one is used for dkong conversions, the other one for dkongjr conversions */
- ROM_LOAD( "2716.3h", 0x0000, 0x0800, CRC(3489a35b) SHA1(9ebcf4b20b212d54e6b1a6d9abbda3109298631b) )
- ROM_LOAD( "2716.3h1", 0x0000, 0x0800, CRC(2a6ec016) SHA1(c95e185a39c8029f00798ce0a00759a4deb45677) )
+ ROM_LOAD( "2716.3h", 0x0000, 0x0800, CRC(3489a35b) SHA1(9ebcf4b20b212d54e6b1a6d9abbda3109298631b) ) /* dkong */
+ ROM_LOAD( "2716.3h1", 0x0800, 0x0800, CRC(2a6ec016) SHA1(c95e185a39c8029f00798ce0a00759a4deb45677) ) /* dkongjr */
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "2716.3n", 0x0000, 0x0800, CRC(ea0e7f9a) SHA1(a8e2b43e15281d45e414eaae98e5248bad79c41b) )
@@ -2901,7 +2591,6 @@ static DRIVER_INIT( herodk )
int A;
UINT8 *rom = memory_region(REGION_CPU1);
-
/* swap data lines D3 and D4 */
for (A = 0;A < 0x8000;A++)
{
@@ -2915,48 +2604,52 @@ static DRIVER_INIT( herodk )
}
}
+
+
/*************************************
*
* Game drivers
*
*************************************/
-GAME( 1980, radarscp, 0, radarscp, radarscp, 0, ROT90, "Nintendo", "Radar Scope", GAME_SUPPORTS_SAVE )
-GAME( 1980, radarsc1, 0, radarsc1, radarscp, 0, ROT90, "Nintendo", "Radar Scope (TRS01)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkong, 0, dkong, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongo, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongjp, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongjo, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongjo1, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3) (bad dump?)", GAME_SUPPORTS_SAVE )
+GAME( 1980, radarscp, 0, radarscp, radarscp, 0, ROT90, "Nintendo", "Radar Scope", GAME_SUPPORTS_SAVE )
+GAME( 1980, radarsc1, radarscp, radarsc1, radarscp, 0, ROT90, "Nintendo", "Radar Scope (TRS01)", GAME_SUPPORTS_SAVE )
+
+GAME( 1981, dkong, 0, dkong2b, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong (US set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1981, dkongo, dkong, dkong2b, dkong, 0, ROT90, "Nintendo", "Donkey Kong (US set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1981, dkongjp, dkong, dkong2b, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1981, dkongjo, dkong, dkong2b, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1981, dkongjo1, dkong, dkong2b, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3) (bad dump?)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjr, 0, dkongjr, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrj, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkngjnrj, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrb, dkongjr, dkongjr, dkong, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkngjnrb, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (bootleg?)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dkongjr, 0, dkongjr, dkongjr, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dkngjnrj, dkongjr, dkongjr, dkongjr, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dkngjnrb, dkongjr, dkongjr, dkongjr, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1983, dkong3, 0, dkong3, dkong3, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", GAME_SUPPORTS_SAVE )
-GAME( 1983, dkong3j, dkong3, dkong3, dkong3, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1983, dkong3, 0, dkong3, dkong3, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", GAME_SUPPORTS_SAVE )
+GAME( 1983, dkong3j, dkong3, dkong3, dkong3, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1984, herbiedk, huncholy, herbiedk, herbiedk, 0, ROT90, "CVS", "Herbie at the Olympics (DK conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1984, herbiedk, huncholy, herbiedk, herbiedk, 0, ROT90, "CVS", "Herbie at the Olympics (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1983, hunchbkd, hunchbak, hunchbkd, hunchbkd, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", GAME_WRONG_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1983, hunchbkd, hunchbak, hunchbkd, hunchbkd, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", GAME_WRONG_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, sbdk, superbik, hunchbkd, sbdk, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1984, sbdk, superbik, hunchbkd, sbdk, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", GAME_SUPPORTS_SAVE )
GAME( 1984, herodk, hero, hunchbkd, herodk, herodk, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, herodku, hero, hunchbkd, herodk, 0, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion not encrypted)", GAME_SUPPORTS_SAVE )
+GAME( 1984, herodku, hero, hunchbkd, herodk, 0, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 8ballact, 0, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 8ballat2, 8ballact, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DKJr conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1984, 8ballact, 0, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DK conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1984, 8ballat2, 8ballact, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DKJr conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, shootgal, 0, shootgal, shootgal, 0, ROT180, "Seatongrove Ltd (Zaccaria licence)", "Shooting Gallery", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, shootgal, 0, shootgal, shootgal, 0, ROT180, "Seatongrove Ltd (Zaccaria licence)", "Shooting Gallery", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, pestplce, mario, pestplce, pestplce, 0, ROT180, "bootleg", "Pest Place", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1983, pestplce, mario, pestplce, pestplce, 0, ROT180, "bootleg", "Pest Place", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, spclforc, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, spcfrcii, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces II", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1985, spclforc, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1985, spcfrcii, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces II", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, drakton, 0, drakton, drakton, drakton, ROT90, "Epos Corporation", "Drakton", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, strtheat, 0, strtheat, strtheat, strtheat, ROT90, "Epos Corporation", "Street Heat - Cardinal Amusements", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+//FIXME: move DRIVER_INIT here
+GAME( 1984, drakton, 0, drakton, drakton, drakton, ROT90, "Epos Corporation", "Drakton", GAME_SUPPORTS_SAVE )
+GAME( 1985, strtheat, 0, strtheat, strtheat, strtheat, ROT90, "Epos Corporation", "Street Heat - Cardinal Amusements", GAME_SUPPORTS_SAVE )