summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/twin16.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/twin16.c')
-rw-r--r--src/mame/drivers/twin16.c98
1 files changed, 49 insertions, 49 deletions
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index 19e80350990..5160fc8f695 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -10,32 +10,32 @@ OSC. : 3.579545MHz 18432.00KHz
Main processors are a pair of 68000 CPUs
Sounds are generated by a Z80, a Yamaha 2151 and 3012, a Konami custom IC and a uPD7759C
- Dark Adventure / Devil World / Majuu no Ohkoku
- Vulcan Venture / Gradius II
- Cuebrick
- MIA (Japan)
- Final Round / Hard Puncher (Japan)
+ Dark Adventure / Devil World / Majuu no Ohkoku
+ Vulcan Venture / Gradius II
+ Cuebrick
+ MIA (Japan)
+ Final Round / Hard Puncher (Japan)
68000 Memory Map for Konami Twin System
- CPUA CPUB
- 0x000000..0x03ffff ROM 0x000000..0x03ffff
- 0x040000..0x043fff communication RAM 0x040000..0x043fff (shared)
- 0x060000..0x063fff work RAM 0x060000..0x063fff
- 0x080000..0x080fff palette
- 0x080000..0x09ffff ROM (extra tile data)
- 0x0a0000..0x0a0001 IRQ control 0x0a0000..0x0a0001
- 0x0a0008..0x0a0009 sound command
- 0x0a0010..0xa00011 watchdog
- 0x0c0000..0x0c0001 screenflip
- 0x0c0002..0x0c000f scroll registers
-
- 0x100000..0x103fff FIXRAM (text layer)
- 0x120000..0x123fff VIDRAM (tilemaps) 0x480000..0x483fff (shared)
- 0x140000..0x143fff OBJRAM (sprites) 0x400000..0x403fff (shared)
- ZIP RAM (tiles) 0x500000..0x53ffff
- gfx ROM (banked) 0x600000..0x77ffff
- sprite gfx RAM 0x780000..0x79ffff
+ CPUA CPUB
+ 0x000000..0x03ffff ROM 0x000000..0x03ffff
+ 0x040000..0x043fff communication RAM 0x040000..0x043fff (shared)
+ 0x060000..0x063fff work RAM 0x060000..0x063fff
+ 0x080000..0x080fff palette
+ 0x080000..0x09ffff ROM (extra tile data)
+ 0x0a0000..0x0a0001 IRQ control 0x0a0000..0x0a0001
+ 0x0a0008..0x0a0009 sound command
+ 0x0a0010..0xa00011 watchdog
+ 0x0c0000..0x0c0001 screenflip
+ 0x0c0002..0x0c000f scroll registers
+
+ 0x100000..0x103fff FIXRAM (text layer)
+ 0x120000..0x123fff VIDRAM (tilemaps) 0x480000..0x483fff (shared)
+ 0x140000..0x143fff OBJRAM (sprites) 0x400000..0x403fff (shared)
+ ZIP RAM (tiles) 0x500000..0x53ffff
+ gfx ROM (banked) 0x600000..0x77ffff
+ sprite gfx RAM 0x780000..0x79ffff
Known Issues:
- repeated uPD7759C samples in fround, disconnecting reset helps but doesn't fix it
@@ -115,13 +115,13 @@ static WRITE16_HANDLER( sound_command_w )
static WRITE16_HANDLER( twin16_CPUA_register_w )
{
/*
- 7 6 5 4 3 2 1 0
- X sprite processing disable
- X IRQ5 enable (CPUA)
- X 0->1 trigger IRQ6 on CPUB
- X 0->1 trigger IRQ on sound CPU
- x x x coin counters
- */
+ 7 6 5 4 3 2 1 0
+ X sprite processing disable
+ X IRQ5 enable (CPUA)
+ X 0->1 trigger IRQ6 on CPUB
+ X 0->1 trigger IRQ on sound CPU
+ x x x coin counters
+ */
UINT16 old = twin16_CPUA_register;
COMBINE_DATA(&twin16_CPUA_register);
if (twin16_CPUA_register != old)
@@ -144,11 +144,11 @@ static WRITE16_HANDLER( twin16_CPUA_register_w )
static WRITE16_HANDLER( twin16_CPUB_register_w )
{
/*
- 7 6 5 4 3 2 1 0
- X gfx bank select
- X IRQ5 enable
- X 0->1 trigger IRQ6 on CPUA
- */
+ 7 6 5 4 3 2 1 0
+ X gfx bank select
+ X IRQ5 enable
+ X 0->1 trigger IRQ6 on CPUA
+ */
UINT16 old = twin16_CPUB_register;
COMBINE_DATA(&twin16_CPUB_register);
if( twin16_CPUB_register!=old )
@@ -161,17 +161,17 @@ static WRITE16_HANDLER( twin16_CPUB_register_w )
static WRITE16_HANDLER( fround_CPU_register_w )
{
/*
- 7 6 5 4 3 2 1 0
- X 0->1 trigger IRQ on sound CPU
- x x coin counters
- */
+ 7 6 5 4 3 2 1 0
+ X 0->1 trigger IRQ on sound CPU
+ x x coin counters
+ */
UINT16 old = twin16_CPUA_register;
COMBINE_DATA(&twin16_CPUA_register);
if (twin16_CPUA_register != old)
{
if ((old & 0x08) == 0 && (twin16_CPUA_register & 0x08))
cputag_set_input_line_and_vector(space->machine, "audiocpu", 0, HOLD_LINE, 0xff);
-
+
coin_counter_w(0, twin16_CPUA_register & 0x01);
coin_counter_w(1, twin16_CPUA_register & 0x02);
}
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w)
-// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
+// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(twin16_paletteram_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x081000, 0x081fff) AM_WRITENOP
@@ -253,7 +253,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(twin16_video_register_w)
AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE(&twin16_text_ram)
-// AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj
+// AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&videoram16)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE(1) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
ADDRESS_MAP_END
@@ -261,7 +261,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w)
-// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
+// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x09ffff) AM_READ(extra_rom_r)
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUB_register_w)
@@ -704,11 +704,11 @@ static MACHINE_START( twin16 )
{
twin16_CPUA_register=0;
twin16_CPUB_register=0;
-
+
/* register for savestates */
state_save_register_global(machine, twin16_CPUA_register);
state_save_register_global(machine, twin16_CPUB_register);
-
+
state_save_register_global(machine, twin16_sound_command);
state_save_register_global(machine, cuebrickj_nvram_bank);
state_save_register_global_array(machine, cuebrickj_nvram);
@@ -728,10 +728,10 @@ static MACHINE_DRIVER_START( twin16 )
MDRV_CPU_PROGRAM_MAP(sound_map)
MDRV_QUANTUM_TIME(HZ(6000))
-
+
MDRV_MACHINE_START(twin16)
MDRV_MACHINE_RESET(twin16)
-
+
// video hardware
MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_BUFFERS_SPRITERAM)
@@ -783,10 +783,10 @@ static MACHINE_DRIVER_START( fround )
MDRV_CPU_PROGRAM_MAP(sound_map)
MDRV_QUANTUM_TIME(HZ(6000))
-
+
MDRV_MACHINE_START(twin16)
MDRV_MACHINE_RESET(twin16)
-
+
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_BUFFERS_SPRITERAM)