From 2130adc105dd7724de0f2816e09239d2a53d73a0 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Tue, 13 Aug 2013 17:02:57 +0000 Subject: [PATCH] reduce some code duplication, preparation for creating a new device (nw) --- .gitattributes | 3 - src/mame/drivers/ddragon3.c | 609 ++++++++++++++++++++++++++++++---- src/mame/drivers/wwfwfest.c | 616 ----------------------------------- src/mame/includes/ddragon3.h | 59 +++- src/mame/includes/wwfwfest.h | 56 ---- src/mame/mame.mak | 1 - src/mame/video/ddragon3.c | 273 ++++++++++++---- src/mame/video/wwfwfest.c | 286 ---------------- 8 files changed, 796 insertions(+), 1107 deletions(-) delete mode 100644 src/mame/drivers/wwfwfest.c delete mode 100644 src/mame/includes/wwfwfest.h delete mode 100644 src/mame/video/wwfwfest.c diff --git a/.gitattributes b/.gitattributes index ccbb4632496..7481bf46893 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3980,7 +3980,6 @@ src/mame/drivers/wpc_flip2.c svneol=native#text/plain src/mame/drivers/wpc_s.c svneol=native#text/plain src/mame/drivers/wrally.c svneol=native#text/plain src/mame/drivers/wwfsstar.c svneol=native#text/plain -src/mame/drivers/wwfwfest.c svneol=native#text/plain src/mame/drivers/xain.c svneol=native#text/plain src/mame/drivers/xexex.c svneol=native#text/plain src/mame/drivers/xmen.c svneol=native#text/plain @@ -4690,7 +4689,6 @@ src/mame/includes/wiz.h svneol=native#text/plain src/mame/includes/wolfpack.h svneol=native#text/plain src/mame/includes/wrally.h svneol=native#text/plain src/mame/includes/wwfsstar.h svneol=native#text/plain -src/mame/includes/wwfwfest.h svneol=native#text/plain src/mame/includes/xain.h svneol=native#text/plain src/mame/includes/xexex.h svneol=native#text/plain src/mame/includes/xmen.h svneol=native#text/plain @@ -6055,7 +6053,6 @@ src/mame/video/wiz.c svneol=native#text/plain src/mame/video/wolfpack.c svneol=native#text/plain src/mame/video/wrally.c svneol=native#text/plain src/mame/video/wwfsstar.c svneol=native#text/plain -src/mame/video/wwfwfest.c svneol=native#text/plain src/mame/video/xain.c svneol=native#text/plain src/mame/video/xevious.c svneol=native#text/plain src/mame/video/xexex.c svneol=native#text/plain diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index 3be80762768..6a93de6120b 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -127,6 +127,48 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated) - IC47 - IC48 + + + + + + Wrestlefest + Technos 1991 + + TA-0031 + 68000-12 + 31J0_IC1 6264 6264 31A14-2 31A13-2 6264 6264 31A12-0 24MHz + 31J1_IC2 + TJ-002 TJ-004 + 6264 SW1 + 28MHz SW2 + SW3 + 61C16-35 + 61C16-35 61C16-35 + 31J2_IC8 + 31J3_IC9 + 31J4_IC10 + 31J5_IC11 + 31J6_IC12 + 31J7_IC13 + 31J8_IC14 TJ-003 31A11-2 M6295 31J10_IC73 + 31J9_IC15 61C16-35 61C16-35 Z80 YM2151 + + + Clock Crystals: + + X1 - 28.000 MHz + X2 - 3.579545 MHz (for Z80) + X3 - 24.000 MHz (for 68000) + X4 - 1.056 MHz (not used, initially intended for OKI6295?) + + + The mask roms at IC1 and IC2 have the same pinouts as a MX27C4100 or M27C400 + except pin 1 is not A17 but instead not used (not connected). + + + + ******************************************************************/ /* @@ -145,8 +187,9 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated) #include "sound/okim6295.h" #include "includes/ddragon3.h" -#define PIXEL_CLOCK (XTAL_28MHz / 4) - +#define MASTER_CLOCK XTAL_24MHz +#define CPU_CLOCK MASTER_CLOCK / 2 +#define PIXEL_CLOCK MASTER_CLOCK / 4 /************************************* * @@ -159,6 +202,16 @@ WRITE8_MEMBER(ddragon3_state::oki_bankswitch_w) m_oki->set_bank_base((data & 1) * 0x40000); } + + + +WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite) +{ + soundlatch_byte_w(space,1,data & 0xff); + m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE ); +} + + WRITE16_MEMBER(ddragon3_state::ddragon3_io_w) { COMBINE_DATA(&m_io_reg[offset]); @@ -198,6 +251,61 @@ WRITE16_MEMBER(ddragon3_state::ddragon3_io_w) } } + +WRITE16_MEMBER(wwfwfest_state::wwfwfest_irq_ack_w) +{ + if (offset == 0) + m_maincpu->set_input_line(3, CLEAR_LINE); + + else + m_maincpu->set_input_line(2, CLEAR_LINE); +} + +WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w) +{ + flip_screen_set(data&1); +} + +/*- Palette Reads/Writes -*/ + +READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r) +{ + offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; + return m_generic_paletteram_16[offset]; +} + +WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) +{ + offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; + paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask); +} + +/*- Priority Control -*/ + + +WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write) +{ + m_pri = data; +} + + + + +/* DIPs are spread across the other input ports */ +CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_3f_r) +{ + const char *tag = (const char *)param; + return ioport(tag)->read() & 0x3f; +} + +CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r) +{ + const char *tag = (const char *)param; + return (ioport(tag)->read() & 0xc0) >> 6; +} + + + /************************************* * * Memory Maps @@ -250,6 +358,26 @@ static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16, ddragon3_state ) AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */ ADDRESS_MAP_END +static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram - 4 bytes per tile */ + AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */ + AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* BG0 Ram - 4 bytes per tile */ + AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* BG1 Ram - 2 bytes per tile */ + AM_RANGE(0x100000, 0x100007) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w) + AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w) + AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w) + AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite) + AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write) + AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1") + AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2") + AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3") + AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4") + AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */ +ADDRESS_MAP_END + + static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state ) AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM @@ -259,6 +387,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state ) AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w) ADDRESS_MAP_END + static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8, ddragon3_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM @@ -463,30 +592,158 @@ static INPUT_PORTS_START( ctribeb ) PORT_DIPUNUSED_DIPLOC( 0x0800, 0x0800, "SW2:4" ) INPUT_PORTS_END + + +static INPUT_PORTS_START( wwfwfest ) + PORT_START("P1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW2") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("P2") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW2") + + PORT_START("P3") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) + PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW1") + + PORT_START("P4") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 ) + PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW1") + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + /* Nb: There are actually 3 dips on the board, 2 * 8, and 1 *4 */ + PORT_START("DSW1") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPNAME( 0x04, 0x04, "Buy In Price" ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x04, "1 Coin" ) + PORT_DIPSETTING( 0x00, "As start price" ) + PORT_DIPNAME( 0x08, 0x08, "Regain Power Price" ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x08, "1 Coin" ) + PORT_DIPSETTING( 0x00, "As start price" ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Continue_Price ) ) PORT_DIPLOCATION("SW1:5") + PORT_DIPSETTING( 0x10, "1 Coin" ) + PORT_DIPSETTING( 0x00, "As start price" ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "FBI Logo" ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("DSW2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Players ) ) PORT_DIPLOCATION("SW2:3,4") /* Nothing listed for seting ON/ON IE:0x00 */ + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x0c, "4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) + PORT_DIPNAME( 0x60, 0x60, "Clear Stage Power Up" ) PORT_DIPLOCATION("SW2:6,7") + PORT_DIPSETTING( 0x00, "0" ) + PORT_DIPSETTING( 0x20, "12" ) + PORT_DIPSETTING( 0x60, "24" ) + PORT_DIPSETTING( 0x40, "32" ) + PORT_DIPNAME( 0x80, 0x80, "Championship Game" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPSETTING( 0x00, "4th" ) + PORT_DIPSETTING( 0x80, "5th" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( wwfwfesta ) + PORT_INCLUDE(wwfwfest) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x80, 0x00, "FBI Logo" ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + + /************************************* * * Graphics Layouts * *************************************/ -static const gfx_layout tile_layout = + +static const gfx_layout tiles8x8_layout = { - 16,16, /* 16*16 tiles */ - 8192, /* 8192 tiles */ - 4, /* 4 bits per pixel */ - { 0, 0x40000*8, 2*0x40000*8 , 3*0x40000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every tile takes 32 consecutive bytes */ + 8,8, + RGN_FRAC(1,1), + 4, + { 0, 2, 4, 6 }, + { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, + 32*8 }; -static const gfx_layout sprite_layout = { +static const gfx_layout wwf_tile_layout = +{ 16,16, /* 16*16 tiles */ - 0x90000/32, /* 4096 tiles */ + RGN_FRAC(1,2), /* 8192 tiles */ 4, /* 4 bits per pixel */ - { 0, 0x100000*8, 2*0x100000*8 , 3*0x100000*8 }, /* the bitplanes are separated */ + { 8, 0, RGN_FRAC(1,2)+8 , RGN_FRAC(1,2)+0 }, /* the bitplanes are separated */ + { 0, 1, 2, 3, 4, 5, 6, 7, + 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7 }, + { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, + 16*8, 16*9, 16*10, 16*11, 16*12, 16*13, 16*14, 16*15 }, + 64*8 /* every tile takes 64 consecutive bytes */ +}; + +static const gfx_layout wwf_sprite_layout = { + 16,16, /* 16*16 tiles */ + RGN_FRAC(1,4), + 4, /* 4 bits per pixel */ + { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4) , RGN_FRAC(3,4) }, /* the bitplanes are separated */ { 0, 1, 2, 3, 4, 5, 6, 7, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, @@ -501,10 +758,19 @@ static const gfx_layout sprite_layout = { *************************************/ static GFXDECODE_START( ddragon3 ) - GFXDECODE_ENTRY( "gfx1", 0, tile_layout, 256, 32 ) - GFXDECODE_ENTRY( "gfx2", 0, sprite_layout, 0, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, wwf_tile_layout, 512, 32 ) + GFXDECODE_ENTRY( "gfx1", 0, wwf_tile_layout, 256, 32 ) + GFXDECODE_ENTRY( "gfx2", 0, wwf_sprite_layout, 0, 16 ) GFXDECODE_END +static GFXDECODE_START( wwfwfest ) + GFXDECODE_ENTRY( "gfx3", 0, wwf_tile_layout, 0x0c00, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, wwf_tile_layout, 0x1000, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, wwf_sprite_layout, 0x0400, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x0000, 16 ) +GFXDECODE_END + + /************************************* * @@ -521,14 +787,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_state::ddragon3_scanline) { if (scanline > 0) m_screen->update_partial(scanline - 1); - m_maincpu->set_input_line(5, ASSERT_LINE); + m_maincpu->set_input_line(raster_level, ASSERT_LINE); } /* Vblank is raised on scanline 248 */ if (scanline == 248) { m_screen->update_partial(scanline - 1); - m_maincpu->set_input_line(6, ASSERT_LINE); + m_maincpu->set_input_line(vblank_level, ASSERT_LINE); } } @@ -579,10 +845,12 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3) + MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(ddragon3) MCFG_PALETTE_LENGTH(768) + MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -625,6 +893,46 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* 24 crystal, 12 rated chip */ + MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddragon3_state, ddragon3_scanline, "screen", 0, 1) + + MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) + MCFG_CPU_PROGRAM_MAP(sound_map) + + /* video hardware */ + MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ + MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest) + MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) + + MCFG_GFXDECODE(wwfwfest) + MCFG_PALETTE_LENGTH(8192) + + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.45) + MCFG_SOUND_ROUTE(1, "mono", 0.45) + + MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( wwfwfstb, wwfwfest ) + MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb) +MACHINE_CONFIG_END + + /************************************* * * ROM definition(s) @@ -639,11 +947,11 @@ ROM_START( ddragon3 ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "30a13-0.ic43", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "30j-7.ic4", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) - ROM_LOAD( "30j-6.ic5", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "30j-5.ic6", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "30j-4.ic7", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "30j-7.ic4", 0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) + ROM_LOAD16_BYTE( "30j-6.ic5", 0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) + ROM_LOAD16_BYTE( "30j-5.ic6", 0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) + ROM_LOAD16_BYTE( "30j-4.ic7", 0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "30j-3.ic9", 0x000000, 0x80000, CRC(b3151871) SHA1(a647b4d9bddd6b8715a1d24641391a2e2d0f8867) ) @@ -670,11 +978,11 @@ ROM_START( ddragon3j ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "30j13.ic43", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "30j-7.ic4", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) - ROM_LOAD( "30j-6.ic5", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "30j-5.ic6", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "30j-4.ic7", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "30j-7.ic4", 0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) + ROM_LOAD16_BYTE( "30j-6.ic5", 0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) + ROM_LOAD16_BYTE( "30j-5.ic6", 0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) + ROM_LOAD16_BYTE( "30j-4.ic7", 0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "30j-3.ic9", 0x000000, 0x80000, CRC(b3151871) SHA1(a647b4d9bddd6b8715a1d24641391a2e2d0f8867) ) @@ -701,15 +1009,15 @@ ROM_START( ddragon3p ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "30a13-0.ic43", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "14.ic45", 0x000000, 0x20000, CRC(b036a27b) SHA1(c13589c3882bb86f14a3b0143f2d9a4474350ddd) ) - ROM_LOAD( "15.ic46", 0x020000, 0x20000, CRC(24d0bf41) SHA1(2e9c26c8078d17323af6ba378c7ceaed9045d3f7) ) - ROM_LOAD( "30.ic13", 0x040000, 0x20000, CRC(72fe2b16) SHA1(92f02381c0216cf5cfede6813e4dcb814a040091) ) - ROM_LOAD( "31.ic14", 0x060000, 0x20000, CRC(ab48a0c8) SHA1(b908f601a621697ad3b5067d26b6fb1713c4af39) ) - ROM_LOAD( "23.ic29", 0x080000, 0x20000, CRC(0768fedd) SHA1(757c4378f53b4b8cc024b4c5a74d19ab653e886e) ) - ROM_LOAD( "24.ic30", 0x0a0000, 0x20000, CRC(ec9db18a) SHA1(7e4085ba4c0e20ec00f392a2bf9cdb81be53b97f) ) - ROM_LOAD( "21.ic25", 0x0c0000, 0x20000, CRC(902744b9) SHA1(eea623ce013bc270b1611982dd2f9388b205dbb3) ) - ROM_LOAD( "22.ic26", 0x0e0000, 0x20000, CRC(5b142d4d) SHA1(88e22e102efa35449c0d9f6139eb0718528a9d72) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "14.ic45", 0x000001, 0x20000, CRC(b036a27b) SHA1(c13589c3882bb86f14a3b0143f2d9a4474350ddd) ) + ROM_LOAD16_BYTE( "15.ic46", 0x040001, 0x20000, CRC(24d0bf41) SHA1(2e9c26c8078d17323af6ba378c7ceaed9045d3f7) ) + ROM_LOAD16_BYTE( "30.ic13", 0x000000, 0x20000, CRC(72fe2b16) SHA1(92f02381c0216cf5cfede6813e4dcb814a040091) ) + ROM_LOAD16_BYTE( "31.ic14", 0x040000, 0x20000, CRC(ab48a0c8) SHA1(b908f601a621697ad3b5067d26b6fb1713c4af39) ) + ROM_LOAD16_BYTE( "23.ic29", 0x080001, 0x20000, CRC(0768fedd) SHA1(757c4378f53b4b8cc024b4c5a74d19ab653e886e) ) + ROM_LOAD16_BYTE( "24.ic30", 0x0c0001, 0x20000, CRC(ec9db18a) SHA1(7e4085ba4c0e20ec00f392a2bf9cdb81be53b97f) ) + ROM_LOAD16_BYTE( "21.ic25", 0x080000, 0x20000, CRC(902744b9) SHA1(eea623ce013bc270b1611982dd2f9388b205dbb3) ) + ROM_LOAD16_BYTE( "22.ic26", 0x0c0000, 0x20000, CRC(5b142d4d) SHA1(88e22e102efa35449c0d9f6139eb0718528a9d72) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "9.ic39", 0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) @@ -754,11 +1062,11 @@ ROM_START( ddragon3b ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "dd3.06", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "dd3.f", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) - ROM_LOAD( "dd3.e", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "dd3.b", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "dd3.a", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "dd3.f", 0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) + ROM_LOAD16_BYTE( "dd3.e", 0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) + ROM_LOAD16_BYTE( "dd3.b", 0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) + ROM_LOAD16_BYTE( "dd3.a", 0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "dd3.3e", 0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) //4a @@ -803,11 +1111,11 @@ ROM_START( ctribe ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "28j7-0.ic11", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) - ROM_LOAD( "28j6-0.ic13", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "28j5-0.ic12", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "28j4-0.ic14", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "28j7-0.ic11", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) + ROM_LOAD16_BYTE( "28j6-0.ic13", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) + ROM_LOAD16_BYTE( "28j5-0.ic12", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) + ROM_LOAD16_BYTE( "28j4-0.ic14", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "28j3-0.ic77", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) @@ -837,11 +1145,11 @@ ROM_START( ctribe1 ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "28j7-0.ic11", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) - ROM_LOAD( "28j6-0.ic13", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "28j5-0.ic12", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "28j4-0.ic14", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "28j7-0.ic11", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) + ROM_LOAD16_BYTE( "28j6-0.ic13", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) + ROM_LOAD16_BYTE( "28j5-0.ic12", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) + ROM_LOAD16_BYTE( "28j4-0.ic14", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "28j3-0.ic77", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) @@ -871,11 +1179,11 @@ ROM_START( ctribej ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "28j10-0.89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "28j7-0.ic11", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) - ROM_LOAD( "28j6-0.ic13", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "28j5-0.ic12", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "28j4-0.ic14", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "28j7-0.ic11", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) + ROM_LOAD16_BYTE( "28j6-0.ic13", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) + ROM_LOAD16_BYTE( "28j5-0.ic12", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) + ROM_LOAD16_BYTE( "28j4-0.ic14", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "28j3-0.ic77", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) @@ -905,11 +1213,11 @@ ROM_START( ctribeb ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "ct_ep4.rom", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "ct_mr7.rom", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) - ROM_LOAD( "ct_mr6.rom", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "ct_mr5.rom", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "ct_mr4.rom", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "ct_mr7.rom", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) + ROM_LOAD16_BYTE( "ct_mr6.rom", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) + ROM_LOAD16_BYTE( "ct_mr5.rom", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) + ROM_LOAD16_BYTE( "ct_mr4.rom", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "ct_mr3.rom", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) @@ -936,15 +1244,16 @@ ROM_START( ctribeb2 ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "6.bin", 0x00000, 0x10000, CRC(0101df2d) SHA1(35e1efa4a11c0f9d9db5ee057926e5de29c3a4c1) ) - ROM_REGION( 0x200000, "gfx1", 0 ) /* Background */ - ROM_LOAD( "7.bin", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) - ROM_LOAD( "8.bin", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "11.bin", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "12.bin", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) - ROM_LOAD( "9.bin", 0x100000, 0x20000, CRC(2719d7ce) SHA1(35275d32b584c477033037bc041a3687ecca412d) ) - ROM_LOAD( "10.bin", 0x140000, 0x20000, CRC(753a4f53) SHA1(c76a449ef29dde671196cda1f128b0b2d4839a97) ) - ROM_LOAD( "13.bin", 0x180000, 0x20000, CRC(59e01fe1) SHA1(67f5a4e9c9e9ebc6218b7c2ede0e5ff51682ee2f) ) - ROM_LOAD( "14.bin", 0x1c0000, 0x20000, CRC(a69ab4f3) SHA1(bc99c6a587c972cb5c9e719c53ef921a28f1498e) ) + ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ + ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) + ROM_LOAD16_BYTE( "8.bin", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) + ROM_LOAD16_BYTE( "11.bin", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) + ROM_LOAD16_BYTE( "12.bin", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) + // a second copy of the 2nd half of the above roms? did the bootleg pull the data for one of the layers from here instead? + ROM_LOAD16_BYTE( "9.bin", 0x040001, 0x20000, CRC(2719d7ce) SHA1(35275d32b584c477033037bc041a3687ecca412d) ) + ROM_LOAD16_BYTE( "10.bin", 0x040000, 0x20000, CRC(753a4f53) SHA1(c76a449ef29dde671196cda1f128b0b2d4839a97) ) + ROM_LOAD16_BYTE( "13.bin", 0x0c0001, 0x20000, CRC(59e01fe1) SHA1(67f5a4e9c9e9ebc6218b7c2ede0e5ff51682ee2f) ) + ROM_LOAD16_BYTE( "14.bin", 0x0c0000, 0x20000, CRC(a69ab4f3) SHA1(bc99c6a587c972cb5c9e719c53ef921a28f1498e) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ ROM_LOAD( "34.bin", 0x000000, 0x20000, CRC(5b498f0e) SHA1(9d93ca1f44e1f04eb3b66db6027130683c9431a2) ) @@ -973,6 +1282,155 @@ ROM_START( ctribeb2 ) ROM_LOAD( "4.bin", 0x020000, 0x20000, CRC(1a3a0b39) SHA1(8847530027cf4be03ffbc6d78dee97b459d03a04) ) ROM_END + +ROM_START( wwfwfest ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ + ROM_LOAD16_BYTE( "31a13-2.ic19", 0x00001, 0x40000, CRC(7175bca7) SHA1(992b47a787b5bc2a5a381ec78b8dfaf7d42c614b) ) + ROM_LOAD16_BYTE( "31a14-2.ic18", 0x00000, 0x40000, CRC(5d06bfd1) SHA1(39a93da662158aa5a9953dcabfcb47c2fc196dc7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ + ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ + ROM_LOAD( "31a12-0.ic33", 0x00000, 0x20000, CRC(d0803e20) SHA1(b68758e9a5522396f831a3972571f8aed54c64de) ) + + ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ + ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ + ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ + ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ + ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ + ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ + ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ + ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ + ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ + + ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ + ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ + ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ +ROM_END + +ROM_START( wwfwfesta ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ + ROM_LOAD16_BYTE( "wf_18.rom", 0x00000, 0x40000, CRC(933ea1a0) SHA1(61da142cfa7abd3b77ab21979c061a078c0d0c63) ) + ROM_LOAD16_BYTE( "wf_19.rom", 0x00001, 0x40000, CRC(bd02e3c4) SHA1(7ae63e48caf9919ce7b63b4c5aa9474ba8c336da) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ + ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ + ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) ) + + ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ + ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ + ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ + ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ + ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ + ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ + ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ + ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ + ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ + + ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ + ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ + ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ +ROM_END + +ROM_START( wwfwfestb ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ + ROM_LOAD16_BYTE( "3", 0x00000, 0x40000, CRC(ea73369c) SHA1(be614a342f9014251810fa30ec56fec03f7c8ef3) ) + ROM_LOAD16_BYTE( "2", 0x00001, 0x40000, CRC(632bb3a4) SHA1(9c04fed5aeefc683810cfbd9b3318e155ed9813f) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ + ROM_LOAD( "1", 0x00000, 0x10000, CRC(d9e8cda2) SHA1(754c73cd341d51ffd35cdb62155a3f061416c9ba) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "wf_73a.rom", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ + ROM_LOAD( "4", 0x00000, 0x20000, CRC(520ef575) SHA1(99a5e9b94e9234851c6b504d58939ad84e0d6589) ) + + ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16) */ + ROM_LOAD( "wf_09.rom", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ + ROM_LOAD( "wf_08.rom", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ + ROM_LOAD( "wf_11.rom", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ + ROM_LOAD( "wf_10.rom", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ + ROM_LOAD( "wf_12.rom", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ + ROM_LOAD( "wf_13.rom", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ + ROM_LOAD( "wf_15.rom", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ + ROM_LOAD( "wf_14.rom", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ + + ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ + ROM_LOAD16_BYTE( "5", 0x40000, 0x20000, CRC(35e4d6eb) SHA1(d2a12bde268bc0734e6806ff5302b8c3dcc17280) ) /* 0 */ + ROM_LOAD16_BYTE( "6", 0x40001, 0x20000, CRC(a054a5b2) SHA1(d6ed5d5a20acb7cdbaee8e3f520873650529c0ae) ) /* 1 */ + ROM_LOAD16_BYTE( "7", 0x00000, 0x20000, CRC(101f0136) SHA1(2ccd641e49cdd3f5243ebe8c52c492842d62f5b8) ) /* 2 */ + ROM_LOAD16_BYTE( "8", 0x00001, 0x20000, CRC(7b2ecba7) SHA1(1ed2451132448930ac4afcdc67ca14e3e922863e) ) /* 3 */ +ROM_END + +ROM_START( wwfwfestj ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ + ROM_LOAD16_BYTE( "31j13-0.ic19", 0x00001, 0x40000, CRC(2147780d) SHA1(9a7a5db06117f3780e084d3f0c7b642ff8a9db55) ) + ROM_LOAD16_BYTE( "31j14-0.ic18", 0x00000, 0x40000, CRC(d76fc747) SHA1(5f6819bc61756d1df4ac0776ac420a59c438cf8a) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ + ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ + ROM_LOAD( "31j12-0.ic33", 0x00000, 0x20000, CRC(f4821fe0) SHA1(e5faa9860e9d4e75393b64ca85a8bfc4852fd4fd) ) + + ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ + ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ + ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ + ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ + ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ + ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ + ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ + ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ + ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ + + ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ + ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ + ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ +ROM_END + +ROM_START( wwfwfestk ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ + ROM_LOAD16_BYTE( "31e13-0.ic19", 0x00001, 0x40000, CRC(774a26a7) SHA1(30e00bff9027a0ae971f8820ca6c3e4cdea82994) ) + ROM_LOAD16_BYTE( "31e14-0.ic18", 0x00000, 0x40000, CRC(05bbb807) SHA1(1dc2ddd9ae498468a97e002f78e7f3a331d802d1) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ + ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ + ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) ) + + ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ + ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ + ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ + ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ + ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ + ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ + ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ + ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ + ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ + + ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ + ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ + ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ +ROM_END + + /************************************* * * Game driver(s) @@ -983,8 +1441,15 @@ GAME( 1990, ddragon3, 0, ddragon3, ddragon3, driver_device, 0, ROT0, "Tec GAME( 1990, ddragon3j,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1990, ddragon3p,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE ) GAME( 1990, ddragon3b,ddragon3, ddragon3b,ddragon3b, driver_device,0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", GAME_SUPPORTS_SAVE ) + GAME( 1990, ctribe, 0, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE ) GAME( 1990, ctribe1, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE ) GAME( 1990, ctribej, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE ) GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE ) + +GAME( 1991, wwfwfest, 0, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan", "WWF WrestleFest (US set 1)", GAME_SUPPORTS_SAVE ) +GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)", GAME_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest, driver_device, 0, ROT0, "bootleg", "WWF WrestleFest (US bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c deleted file mode 100644 index 5b6288ceb59..00000000000 --- a/src/mame/drivers/wwfwfest.c +++ /dev/null @@ -1,616 +0,0 @@ -/******************************************************************************* - WWF Wrestlefest (C) 1991 Technos Japan (drivers/wwfwfest.c) -******************************************************************************** - driver by David Haywood - - Special Thanks to: - - Richard Bush & the Rest of the Raine Team - Raine's WWF Wrestlefest driver on - which some of this driver has been based. - -******************************************************************************** - - Hardware: - - Primary CPU : 68000 - 12MHz - - Sound CPUs : Z80 - 3.579MHz - - Sound Chips : YM2151, M6295 - - 4 Layers from now on if mentioned will be referred to as - - BG0 - Background Layer 0 - BG1 - Background Layer 1 - SPR - Sprites - FG0 - Foreground / Text Layer - - Priorities of BG0, BG1 and SPR can be changed - -******************************************************************************** - - Change Log: - 20 Jun 2001 | Did Pretty Much everything else, the game is now playable. - 19 Jun 2001 | Started the driver, based on Raine, the WWF Superstars driver, - | and the Double Dragon 3 Driver, got most of the basics done, - | the game will boot showing some graphics. - -*******************************************************************************/ - -#include "emu.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "includes/wwfwfest.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -#define MASTER_CLOCK XTAL_24MHz -#define CPU_CLOCK MASTER_CLOCK / 2 -#define PIXEL_CLOCK MASTER_CLOCK / 4 - -/*- in this file -*/ - - - - - - - -/******************************************************************************* - Memory Maps -******************************************************************************** - Pretty Straightforward - - still some unknown writes however, sound cpu memory map is the same as dd3 -*******************************************************************************/ - -static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram - 4 bytes per tile */ - AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */ - AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfwfest_bg0_videoram_w) AM_SHARE("bg0_videoram") /* BG0 Ram - 4 bytes per tile */ - AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(wwfwfest_bg1_videoram_w) AM_SHARE("bg1_videoram") /* BG1 Ram - 2 bytes per tile */ - AM_RANGE(0x100000, 0x100007) AM_WRITE(wwfwfest_scroll_write) - AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w) - AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w) - AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite) - AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write) - AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1") - AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2") - AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3") - AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4") - AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") - AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wwfwfest_state ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) - AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write) - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w) -ADDRESS_MAP_END - -/******************************************************************************* - Read / Write Handlers -******************************************************************************** - as used by the above memory map -*******************************************************************************/ - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_irq_ack_w) -{ - if (offset == 0) - m_maincpu->set_input_line(3, CLEAR_LINE); - - else - m_maincpu->set_input_line(2, CLEAR_LINE); -} - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w) -{ - flip_screen_set(data&1); -} - -/*- Palette Reads/Writes -*/ - -READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r) -{ - offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; - return m_generic_paletteram_16[offset]; -} - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) -{ - offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; - paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask); -} - -/*- Priority Control -*/ - - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write) -{ - m_pri = data; -} - -/*- Scroll Control -*/ - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_scroll_write) -{ - switch (offset) { - case 0x00: - m_bg0_scrollx = data; - break; - case 0x01: - m_bg0_scrolly = data; - break; - case 0x02: - m_bg1_scrollx = data; - break; - case 0x03: - m_bg1_scrolly = data; - break; - } -} - -/*- Sound Related (from dd3) -*/ - -WRITE8_MEMBER(wwfwfest_state::oki_bankswitch_w) -{ - m_oki->set_bank_base((data & 1) * 0x40000); -} - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite) -{ - soundlatch_byte_w(space,1,data & 0xff); - m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE ); -} - -/******************************************************************************* - Input Ports -******************************************************************************** - There are 4 players, 2 sets of dipswitches and 2 misc -*******************************************************************************/ - -/* DIPs are spread across the other input ports */ -CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_3f_r) -{ - const char *tag = (const char *)param; - return ioport(tag)->read() & 0x3f; -} - -CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r) -{ - const char *tag = (const char *)param; - return (ioport(tag)->read() & 0xc0) >> 6; -} - - -static INPUT_PORTS_START( wwfwfest ) - PORT_START("P1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW2") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("P2") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW2") - - PORT_START("P3") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW1") - - PORT_START("P4") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW1") - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Nb: There are actually 3 dips on the board, 2 * 8, and 1 *4 */ - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x04, 0x04, "Buy In Price" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x04, "1 Coin" ) - PORT_DIPSETTING( 0x00, "As start price" ) - PORT_DIPNAME( 0x08, 0x08, "Regain Power Price" ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x08, "1 Coin" ) - PORT_DIPSETTING( 0x00, "As start price" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Continue_Price ) ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x10, "1 Coin" ) - PORT_DIPSETTING( 0x00, "As start price" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "FBI Logo" ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Players ) ) PORT_DIPLOCATION("SW2:3,4") /* Nothing listed for seting ON/ON IE:0x00 */ - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x0c, "4" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPNAME( 0x60, 0x60, "Clear Stage Power Up" ) PORT_DIPLOCATION("SW2:6,7") - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x20, "12" ) - PORT_DIPSETTING( 0x60, "24" ) - PORT_DIPSETTING( 0x40, "32" ) - PORT_DIPNAME( 0x80, 0x80, "Championship Game" ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x00, "4th" ) - PORT_DIPSETTING( 0x80, "5th" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( wwfwfesta ) - PORT_INCLUDE(wwfwfest) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x80, 0x00, "FBI Logo" ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -/******************************************************************************* - Graphic Decoding -*******************************************************************************/ -static const gfx_layout tiles8x8_layout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 2, 4, 6 }, - { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 32*8 -}; - -static const gfx_layout tile_layout = -{ - 16,16, /* 16*16 tiles */ - 4096, /* 8192 tiles */ - 4, /* 4 bits per pixel */ - { 8, 0, 0x40000*8+8 , 0x40000*8+0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 16*8, 16*9, 16*10, 16*11, 16*12, 16*13, 16*14, 16*15 }, - 64*8 /* every tile takes 64 consecutive bytes */ -}; - -static const gfx_layout sprite_layout = { - 16,16, /* 16*16 tiles */ - RGN_FRAC(1,4), - 4, /* 4 bits per pixel */ - { 0, 0x200000*8, 2*0x200000*8 , 3*0x200000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every tile takes 32 consecutive bytes */ -}; - -static GFXDECODE_START( wwfwfest ) - GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x0000, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, sprite_layout, 0x0400, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 0x1000, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 0x0c00, 16 ) -GFXDECODE_END - -/******************************************************************************* - Interrupt Function -*******************************************************************************/ - -TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_state::wwfwfest_scanline) -{ - int scanline = param; - - /* An interrupt is generated every 16 scanlines */ - if (scanline % 16 == 0) - { - if (scanline > 0) - m_screen->update_partial(scanline - 1); - m_maincpu->set_input_line(2, ASSERT_LINE); - } - - /* Vblank is raised on scanline 248 */ - if (scanline == 248) - { - m_screen->update_partial(scanline - 1); - m_maincpu->set_input_line(3, ASSERT_LINE); - } -} - -/******************************************************************************* - Machine Driver(s) -*******************************************************************************/ - -static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) - - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* 24 crystal, 12 rated chip */ - MCFG_CPU_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", wwfwfest_state, wwfwfest_scanline, "screen", 0, 1) - - MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) - MCFG_CPU_PROGRAM_MAP(sound_map) - - /* video hardware */ - MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest) - MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) - - MCFG_GFXDECODE(wwfwfest) - MCFG_PALETTE_LENGTH(8192) - - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("mono") - - MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) - MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.45) - MCFG_SOUND_ROUTE(1, "mono", 0.45) - - MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( wwfwfstb, wwfwfest ) - MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb) -MACHINE_CONFIG_END - -/******************************************************************************* - Rom Loaders / Game Drivers -******************************************************************************** - 5 sets supported, - wwfwfest - US Set (Technos only copyright for US distribution?) - wwfwfesta - World? Set (Tecmo License / Distribution for outside the US?) - wwfwfestj - Japan Set (Japanese text at "Game Select" screen) - wwfwfestk - Korean Set (Shows "KOREA ONLY" on manufacturer's screen) - - readme / info files below - --------------------------------------------------------------------------------- - wwfwfstj: README.TXT --------------------------------------------------------------------------------- - Wrestlefest - Technos 1991 - - TA-0031 - 68000-12 - 31J0_IC1 6264 6264 31A14-2 31A13-2 6264 6264 31A12-0 24MHz - 31J1_IC2 - TJ-002 TJ-004 - 6264 SW1 - 28MHz SW2 - SW3 - 61C16-35 - 61C16-35 61C16-35 - 31J2_IC8 - 31J3_IC9 - 31J4_IC10 - 31J5_IC11 - 31J6_IC12 - 31J7_IC13 - 31J8_IC14 TJ-003 31A11-2 M6295 31J10_IC73 - 31J9_IC15 61C16-35 61C16-35 Z80 YM2151 - - - Clock Crystals: - - X1 - 28.000 MHz - X2 - 3.579545 MHz (for Z80) - X3 - 24.000 MHz (for 68000) - X4 - 1.056 MHz (not used, initially intended for OKI6295?) - - - The mask roms at IC1 and IC2 have the same pinouts as a MX27C4100 or M27C400 - except pin 1 is not A17 but instead not used (not connected). - -*******************************************************************************/ - -ROM_START( wwfwfest ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ - ROM_LOAD16_BYTE( "31a13-2.ic19", 0x00001, 0x40000, CRC(7175bca7) SHA1(992b47a787b5bc2a5a381ec78b8dfaf7d42c614b) ) - ROM_LOAD16_BYTE( "31a14-2.ic18", 0x00000, 0x40000, CRC(5d06bfd1) SHA1(39a93da662158aa5a9953dcabfcb47c2fc196dc7) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ - ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) - - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ - ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) - - ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ - ROM_LOAD( "31a12-0.ic33", 0x00000, 0x20000, CRC(d0803e20) SHA1(b68758e9a5522396f831a3972571f8aed54c64de) ) - - ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ - ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ - ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ - ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ - ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ - ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ - ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ - ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ - ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ - - ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ - ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ - ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ -ROM_END - -ROM_START( wwfwfesta ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ - ROM_LOAD16_BYTE( "wf_18.rom", 0x00000, 0x40000, CRC(933ea1a0) SHA1(61da142cfa7abd3b77ab21979c061a078c0d0c63) ) - ROM_LOAD16_BYTE( "wf_19.rom", 0x00001, 0x40000, CRC(bd02e3c4) SHA1(7ae63e48caf9919ce7b63b4c5aa9474ba8c336da) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ - ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) - - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ - ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) - - ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ - ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) ) - - ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ - ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ - ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ - ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ - ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ - ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ - ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ - ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ - ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ - - ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ - ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ - ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ -ROM_END - -ROM_START( wwfwfestb ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ - ROM_LOAD16_BYTE( "3", 0x00000, 0x40000, CRC(ea73369c) SHA1(be614a342f9014251810fa30ec56fec03f7c8ef3) ) - ROM_LOAD16_BYTE( "2", 0x00001, 0x40000, CRC(632bb3a4) SHA1(9c04fed5aeefc683810cfbd9b3318e155ed9813f) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ - ROM_LOAD( "1", 0x00000, 0x10000, CRC(d9e8cda2) SHA1(754c73cd341d51ffd35cdb62155a3f061416c9ba) ) - - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ - ROM_LOAD( "wf_73a.rom", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) - - ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ - ROM_LOAD( "4", 0x00000, 0x20000, CRC(520ef575) SHA1(99a5e9b94e9234851c6b504d58939ad84e0d6589) ) - - ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16) */ - ROM_LOAD( "wf_09.rom", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ - ROM_LOAD( "wf_08.rom", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ - ROM_LOAD( "wf_11.rom", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ - ROM_LOAD( "wf_10.rom", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ - ROM_LOAD( "wf_12.rom", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ - ROM_LOAD( "wf_13.rom", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ - ROM_LOAD( "wf_15.rom", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ - ROM_LOAD( "wf_14.rom", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ - - ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ - ROM_LOAD16_BYTE( "5", 0x40000, 0x20000, CRC(35e4d6eb) SHA1(d2a12bde268bc0734e6806ff5302b8c3dcc17280) ) /* 0 */ - ROM_LOAD16_BYTE( "6", 0x40001, 0x20000, CRC(a054a5b2) SHA1(d6ed5d5a20acb7cdbaee8e3f520873650529c0ae) ) /* 1 */ - ROM_LOAD16_BYTE( "7", 0x00000, 0x20000, CRC(101f0136) SHA1(2ccd641e49cdd3f5243ebe8c52c492842d62f5b8) ) /* 2 */ - ROM_LOAD16_BYTE( "8", 0x00001, 0x20000, CRC(7b2ecba7) SHA1(1ed2451132448930ac4afcdc67ca14e3e922863e) ) /* 3 */ -ROM_END - -ROM_START( wwfwfestj ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ - ROM_LOAD16_BYTE( "31j13-0.ic19", 0x00001, 0x40000, CRC(2147780d) SHA1(9a7a5db06117f3780e084d3f0c7b642ff8a9db55) ) - ROM_LOAD16_BYTE( "31j14-0.ic18", 0x00000, 0x40000, CRC(d76fc747) SHA1(5f6819bc61756d1df4ac0776ac420a59c438cf8a) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ - ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) - - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ - ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) - - ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ - ROM_LOAD( "31j12-0.ic33", 0x00000, 0x20000, CRC(f4821fe0) SHA1(e5faa9860e9d4e75393b64ca85a8bfc4852fd4fd) ) - - ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ - ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ - ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ - ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ - ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ - ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ - ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ - ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ - ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ - - ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ - ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ - ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ -ROM_END - -ROM_START( wwfwfestk ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU (68000) */ - ROM_LOAD16_BYTE( "31e13-0.ic19", 0x00001, 0x40000, CRC(774a26a7) SHA1(30e00bff9027a0ae971f8820ca6c3e4cdea82994) ) - ROM_LOAD16_BYTE( "31e14-0.ic18", 0x00000, 0x40000, CRC(05bbb807) SHA1(1dc2ddd9ae498468a97e002f78e7f3a331d802d1) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80) */ - ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) ) - - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */ - ROM_LOAD( "31j10.ic73", 0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) ) - - ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */ - ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) ) - - ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */ - ROM_LOAD( "31j3.ic9", 0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */ - ROM_LOAD( "31j2.ic8", 0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */ - ROM_LOAD( "31j5.ic11", 0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */ - ROM_LOAD( "31j4.ic10", 0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */ - ROM_LOAD( "31j6.ic12", 0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */ - ROM_LOAD( "31j7.ic13", 0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */ - ROM_LOAD( "31j9.ic15", 0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */ - ROM_LOAD( "31j8.ic14", 0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */ - - ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */ - ROM_LOAD( "31j0.ic1", 0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */ - ROM_LOAD( "31j1.ic2", 0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */ -ROM_END - -GAME( 1991, wwfwfest, 0, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan", "WWF WrestleFest (US set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)", GAME_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest, driver_device, 0, ROT0, "bootleg", "WWF WrestleFest (US bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h index 65454bfa417..bd112bca8ae 100644 --- a/src/mame/includes/ddragon3.h +++ b/src/mame/includes/ddragon3.h @@ -4,6 +4,8 @@ *************************************************************************/ #include "sound/okim6295.h" +#include "video/bufsprite.h" + class ddragon3_state : public driver_device { @@ -15,13 +17,19 @@ public: m_spriteram(*this, "spriteram"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), - m_oki(*this, "oki"){ } + m_oki(*this, "oki") + + { + vblank_level = 6; + raster_level = 5; + } /* memory pointers */ required_shared_ptr m_bg_videoram; required_shared_ptr m_fg_videoram; - required_shared_ptr m_spriteram; -// UINT16 * m_paletteram; // currently this uses generic palette handling +// required_shared_ptr m_spriteram; + required_device m_spriteram; + // UINT16 * m_paletteram; // currently this uses generic palette handling /* video-related */ tilemap_t *m_fg_tilemap; @@ -33,8 +41,13 @@ public: UINT16 m_fg_scrolly; UINT16 m_bg_tilebase; + UINT16 m_sprite_xoff; + UINT16 m_bg0_dx; + UINT16 m_bg1_dx[2]; + /* misc */ UINT16 m_io_reg[8]; + UINT16 m_pri; /* devices */ required_device m_maincpu; @@ -56,4 +69,44 @@ public: UINT32 screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_scanline); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + + int vblank_level; + int raster_level; +}; + + +class wwfwfest_state : public ddragon3_state +{ +public: + wwfwfest_state(const machine_config &mconfig, device_type type, const char *tag) + : ddragon3_state(mconfig, type, tag), + m_fg0_videoram(*this, "fg0_videoram") + { + vblank_level = 3; + raster_level = 2; + } + + /* wwfwfest has an extra layer */ + required_shared_ptr m_fg0_videoram; + tilemap_t *m_fg0_tilemap; + DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w); + + + //required_device m_spriteram; + DECLARE_WRITE16_MEMBER(wwfwfest_1410_write); + DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write); + DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w); + DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w); + DECLARE_READ16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r); + DECLARE_WRITE16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w); + DECLARE_WRITE16_MEMBER(wwfwfest_soundwrite); + + DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r); + DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r); + TILE_GET_INFO_MEMBER(get_fg0_tile_info); + + virtual void video_start(); + DECLARE_VIDEO_START(wwfwfstb); + UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + }; diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h deleted file mode 100644 index 854a3f9718c..00000000000 --- a/src/mame/includes/wwfwfest.h +++ /dev/null @@ -1,56 +0,0 @@ -#include "video/bufsprite.h" -#include "sound/okim6295.h" - -class wwfwfest_state : public driver_device -{ -public: - wwfwfest_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_fg0_videoram(*this, "fg0_videoram"), - m_bg0_videoram(*this, "bg0_videoram"), - m_bg1_videoram(*this, "bg1_videoram"), - m_spriteram(*this, "spriteram") , - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_oki(*this, "oki") { } - - required_shared_ptr m_fg0_videoram; - required_shared_ptr m_bg0_videoram; - required_shared_ptr m_bg1_videoram; - UINT16 m_pri; - UINT16 m_bg0_scrollx; - UINT16 m_bg0_scrolly; - UINT16 m_bg1_scrollx; - UINT16 m_bg1_scrolly; - tilemap_t *m_fg0_tilemap; - tilemap_t *m_bg0_tilemap; - tilemap_t *m_bg1_tilemap; - UINT16 m_sprite_xoff; - UINT16 m_bg0_dx; - UINT16 m_bg1_dx[2]; - required_device m_spriteram; - DECLARE_WRITE16_MEMBER(wwfwfest_1410_write); - DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write); - DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w); - DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w); - DECLARE_READ16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r); - DECLARE_WRITE16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w); - DECLARE_WRITE16_MEMBER(wwfwfest_soundwrite); - DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w); - DECLARE_WRITE16_MEMBER(wwfwfest_bg0_videoram_w); - DECLARE_WRITE16_MEMBER(wwfwfest_bg1_videoram_w); - DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r); - DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r); - DECLARE_WRITE8_MEMBER(oki_bankswitch_w); - TILE_GET_INFO_MEMBER(get_fg0_tile_info); - TILE_GET_INFO_MEMBER(get_bg0_tile_info); - TILE_GET_INFO_MEMBER(get_bg1_tile_info); - virtual void video_start(); - DECLARE_VIDEO_START(wwfwfstb); - UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_scanline); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); - required_device m_maincpu; - required_device m_audiocpu; - required_device m_oki; -}; diff --git a/src/mame/mame.mak b/src/mame/mame.mak index fbd72cb7f7f..dfad905345b 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1814,7 +1814,6 @@ $(MAMEOBJ)/technos.a: \ $(DRIVERS)/tagteam.o $(VIDEO)/tagteam.o \ $(DRIVERS)/vball.o $(VIDEO)/vball.o \ $(DRIVERS)/wwfsstar.o $(VIDEO)/wwfsstar.o \ - $(DRIVERS)/wwfwfest.o $(VIDEO)/wwfwfest.o \ $(DRIVERS)/xain.o $(VIDEO)/xain.o \ $(MAMEOBJ)/tehkan.a: \ diff --git a/src/mame/video/ddragon3.c b/src/mame/video/ddragon3.c index 9d013937542..a098ecd9be1 100644 --- a/src/mame/video/ddragon3.c +++ b/src/mame/video/ddragon3.c @@ -40,117 +40,209 @@ READ16_MEMBER(ddragon3_state::ddragon3_scroll_r) return 0; } +/*****************************************************************************************************************************************************/ + +TILE_GET_INFO_MEMBER(ddragon3_state::get_bg_tile_info) +{ + UINT16 attr = m_bg_videoram[tile_index]; + int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12); + int color = ((attr & 0xf000) >> 12); + + SET_TILE_INFO_MEMBER(0, code, color, 0); +} + + + WRITE16_MEMBER(ddragon3_state::ddragon3_bg_videoram_w) { COMBINE_DATA(&m_bg_videoram[offset]); m_bg_tilemap->mark_tile_dirty(offset); } + + + +/*****************************************************************************************************************************************************/ + + + +TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info) +{ + + + UINT16 *tilebase; + int tileno,colbank; + + tilebase = &m_fg_videoram[tile_index*2]; + tileno = (tilebase[1] & 0x1fff); + colbank = (tilebase[0] & 0x000f); + SET_TILE_INFO_MEMBER( + 1, + tileno, + colbank, + TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); +} + + + WRITE16_MEMBER(ddragon3_state::ddragon3_fg_videoram_w) { COMBINE_DATA(&m_fg_videoram[offset]); m_fg_tilemap->mark_tile_dirty(offset / 2); } -TILE_GET_INFO_MEMBER(ddragon3_state::get_bg_tile_info) -{ - UINT16 attr = m_bg_videoram[tile_index]; - int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12); - int color = ((attr & 0xf000) >> 12) + 16; - SET_TILE_INFO_MEMBER(0, code, color, 0); + + +/*****************************************************************************************************************************************************/ +/* 8x8 text layer - wwfwfest only */ + +TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info) +{ + UINT16 *tilebase; + int tileno; + int colbank; + tilebase = &m_fg0_videoram[tile_index*2]; + tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); + colbank = (tilebase[1] & 0x00f0) >> 4; + SET_TILE_INFO_MEMBER( + 3, + tileno, + colbank, + 0); } -TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info) +WRITE16_MEMBER(wwfwfest_state::wwfwfest_fg0_videoram_w) { - int offs = tile_index * 2; - UINT16 attr = m_fg_videoram[offs]; - int code = m_fg_videoram[offs + 1] & 0x1fff; - int color = attr & 0xf; - int flags = (attr & 0x40) ? TILE_FLIPX : 0; + /* Videoram is 8 bit, upper & lower byte writes end up in the same place */ + if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7) { + COMBINE_DATA(&m_fg0_videoram[offset]); + } else if (ACCESSING_BITS_8_15) { + m_fg0_videoram[offset]=(data>>8)&0xff; + } else { + m_fg0_videoram[offset]=data&0xff; + } - SET_TILE_INFO_MEMBER(0, code, color, flags); + m_fg0_tilemap->mark_tile_dirty(offset/2); } +/*****************************************************************************************************************************************************/ + void ddragon3_state::video_start() { + save_item(NAME(m_pri)); + m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_bg_tilemap->set_transparent_pen(0); m_fg_tilemap->set_transparent_pen(0); + + m_sprite_xoff = m_bg0_dx = m_bg1_dx[0] = m_bg1_dx[1] = 0; + m_bg_tilebase = 0; } -/* - * Sprite Format - * ---------------------------------- - * - * Word | Bit(s) | Use - * -----+-fedcba9876543210-+---------------- - * 0 | --------xxxxxxxx | ypos (signed) - * -----+------------------+ - * 1 | --------xxx----- | height - * 1 | -----------xx--- | yflip, xflip - * 1 | -------------x-- | msb x - * 1 | --------------x- | msb y? - * 1 | ---------------x | enable - * -----+------------------+ - * 2 | --------xxxxxxxx | tile number - * -----+------------------+ - * 3 | --------xxxxxxxx | bank - * -----+------------------+ - * 4 | ------------xxxx |color - * -----+------------------+ - * 5 | --------xxxxxxxx | xpos - * -----+------------------+ - * 6,7| unused - */ - -void ddragon3_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void wwfwfest_state::video_start() { - UINT16 *source = m_spriteram; - UINT16 *finish = source + 0x800; + ddragon3_state::video_start(); - while (source < finish) + + m_fg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32); + m_fg0_tilemap->set_transparent_pen(0); + +} + +VIDEO_START_MEMBER(wwfwfest_state,wwfwfstb) +{ + wwfwfest_state::video_start(); + + m_sprite_xoff = 2; + m_bg0_dx = m_bg1_dx[0] = -4; + m_bg1_dx[1] = -2; +} + +/*****************************************************************************************************************************************************/ + +void ddragon3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) +{ + /*- SPR RAM Format -** + + 16 bytes per sprite (8-bit RAM? only every other byte is used) + + ---- ---- yyyy yyyy ---- ---- lllF fXYE ---- ---- nnnn nnnn ---- ---- NNNN NNNN + ---- ---- ---- CCCC ---- ---- xxxx xxxx ---- ---- ---- ---- ---- ---- ---- ---- + + Yy = sprite Y Position + Xx = sprite X Position + C = colour bank + f = flip Y + F = flip X + l = chain sprite + E = sprite enable + Nn = Sprite Number + + other bits unused + */ + + UINT16 *buffered_spriteram16 = m_spriteram->buffer(); + int length = m_spriteram->bytes(); + gfx_element *gfx = machine().gfx[2]; + UINT16 *source = buffered_spriteram16; + UINT16 *finish = source + length/2; + + while( source> 5) & 0x07; + enable = (source[1] & 0x0001); - if (attr & 0x04) sx |= 0x100; - if (attr & 0x02) sy = 239 + (0x100 - sy); else sy = 240 - sy; - if (sx > 0x17f) sx = 0 - (0x200 - sx); + if (enable) { + xpos = +(source[5] & 0x00ff) | (source[1] & 0x0004) << 6; + if (xpos>512-16) xpos -=512; + xpos += m_sprite_xoff; + ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7; + ypos = (256 - ypos) & 0x1ff; + ypos -= 16 ; + flipx = (source[1] & 0x0010) >> 4; + flipy = (source[1] & 0x0008) >> 3; + chain = (source[1] & 0x00e0) >> 5; + chain += 1; + number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8; + colourbank = (source[4] & 0x000f); - if (flip_screen()) - { - sx = 304 - sx; - sy = 224 - sy; - flipx = !flipx; - flipy = !flipy; + if (flip_screen()) { + if (flipy) flipy=0; else flipy=1; + if (flipx) flipx=0; else flipx=1; + ypos=240-ypos-m_sprite_xoff; + xpos=304-xpos; } - for (i = 0; i <= height; i++) - { - drawgfx_transpen(bitmap, cliprect, - machine().gfx[1], code + i, color, flipx, flipy, - sx, sy + (flip_screen() ? (i * 16) : (-i * 16)), 0); + for (count=0;countset_scrollx(0, m_bg_scrollx); @@ -200,3 +292,44 @@ UINT32 ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind16 } return 0; } + + +UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + if (m_pri == 0x0078) { + m_fg_tilemap->set_scrolly(0, m_fg_scrolly ); + m_fg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg0_dx); + m_bg_tilemap->set_scrolly(0, m_bg_scrolly ); + m_bg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg1_dx[0]); + } else { + m_bg_tilemap->set_scrolly(0, m_fg_scrolly ); + m_bg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg1_dx[1]); + m_fg_tilemap->set_scrolly(0, m_bg_scrolly ); + m_fg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg0_dx); + } + + /* todo : which bits of pri are significant to the order */ + + if (m_pri == 0x007b) { + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + draw_sprites(bitmap,cliprect); + } + + if (m_pri == 0x007c) { + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + draw_sprites(bitmap,cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + } + + if (m_pri == 0x0078) { + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); + draw_sprites(bitmap,cliprect); + } + + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); + + return 0; +} + diff --git a/src/mame/video/wwfwfest.c b/src/mame/video/wwfwfest.c deleted file mode 100644 index d77d67e5d80..00000000000 --- a/src/mame/video/wwfwfest.c +++ /dev/null @@ -1,286 +0,0 @@ -/******************************************************************************* - WWF Wrestlefest (C) 1991 Technos Japan (video/wwfwfest.c) -******************************************************************************** - driver by David Haywood - - see (drivers/wwfwfest.c) for more notes -*******************************************************************************/ - -#include "emu.h" -#include "includes/wwfwfest.h" - - -/******************************************************************************* - Write Handlers -******************************************************************************** - for writes to Video Ram -*******************************************************************************/ - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_fg0_videoram_w) -{ - /* Videoram is 8 bit, upper & lower byte writes end up in the same place */ - if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7) { - COMBINE_DATA(&m_fg0_videoram[offset]); - } else if (ACCESSING_BITS_8_15) { - m_fg0_videoram[offset]=(data>>8)&0xff; - } else { - m_fg0_videoram[offset]=data&0xff; - } - - m_fg0_tilemap->mark_tile_dirty(offset/2); -} - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_bg0_videoram_w) -{ - COMBINE_DATA(&m_bg0_videoram[offset]); - m_bg0_tilemap->mark_tile_dirty(offset/2); -} - -WRITE16_MEMBER(wwfwfest_state::wwfwfest_bg1_videoram_w) -{ - COMBINE_DATA(&m_bg1_videoram[offset]); - m_bg1_tilemap->mark_tile_dirty(offset); -} - -/******************************************************************************* - Tilemap Related Functions -*******************************************************************************/ -TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info) -{ - /*- FG0 RAM Format -** - - 4 bytes per tile - - ---- ---- tttt tttt ---- ---- ???? TTTT - - C = Colour Bank (0-15) - T = Tile Number (0 - 4095) - - other bits unknown / unused - - basically the same as WWF Superstar's FG0 Ram but - more of it and the used bytes the other way around - - **- End of Comments -*/ - - UINT16 *tilebase; - int tileno; - int colbank; - tilebase = &m_fg0_videoram[tile_index*2]; - tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); - colbank = (tilebase[1] & 0x00f0) >> 4; - SET_TILE_INFO_MEMBER( - 0, - tileno, - colbank, - 0); -} - -TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg0_tile_info) -{ - /*- BG0 RAM Format -** - - 4 bytes per tile - - ---- ---- fF-- CCCC ---- TTTT tttt tttt - - C = Colour Bank (0-15) - T = Tile Number (0 - 4095) - f = Flip Y - F = Flip X - - other bits unknown / unused - - **- End of Comments -*/ - - UINT16 *tilebase; - int tileno,colbank; - - tilebase = &m_bg0_videoram[tile_index*2]; - tileno = (tilebase[1] & 0x0fff); - colbank = (tilebase[0] & 0x000f); - SET_TILE_INFO_MEMBER( - 2, - tileno, - colbank, - TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); -} - -TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg1_tile_info) -{ - /*- BG1 RAM Format -** - - 2 bytes per tile - - CCCC TTTT tttt tttt - - C = Colour Bank (0-15) - T = Tile Number (0 - 4095) - - **- End of Comments -*/ - - UINT16 *tilebase; - int tileno; - int colbank; - tilebase = &m_bg1_videoram[tile_index]; - tileno = (tilebase[0] & 0x0fff); - colbank = (tilebase[0] & 0xf000) >> 12; - SET_TILE_INFO_MEMBER( - 3, - tileno, - colbank, - 0); -} - -/******************************************************************************* - Sprite Related Functions -******************************************************************************** - sprite drawing could probably be improved a bit -*******************************************************************************/ - -void wwfwfest_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) -{ - /*- SPR RAM Format -** - - 16 bytes per sprite - - ---- ---- yyyy yyyy ---- ---- lllF fXYE ---- ---- nnnn nnnn ---- ---- NNNN NNNN - ---- ---- ---- CCCC ---- ---- xxxx xxxx ---- ---- ---- ---- ---- ---- ---- ---- - - Yy = sprite Y Position - Xx = sprite X Position - C = colour bank - f = flip Y - F = flip X - l = chain sprite - E = sprite enable - Nn = Sprite Number - - other bits unused - - **- End of Comments -*/ - - UINT16 *buffered_spriteram16 = m_spriteram->buffer(); - gfx_element *gfx = machine().gfx[1]; - UINT16 *source = buffered_spriteram16; - UINT16 *finish = source + 0x2000/2; - - while( source512-16) xpos -=512; - xpos += m_sprite_xoff; - ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7; - ypos = (256 - ypos) & 0x1ff; - ypos -= 16 ; - flipx = (source[1] & 0x0010) >> 4; - flipy = (source[1] & 0x0008) >> 3; - chain = (source[1] & 0x00e0) >> 5; - chain += 1; - number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8; - colourbank = (source[4] & 0x000f); - - if (flip_screen()) { - if (flipy) flipy=0; else flipy=1; - if (flipx) flipx=0; else flipx=1; - ypos=240-ypos-m_sprite_xoff; - xpos=304-xpos; - } - - for (count=0;countset_transparent_pen(0); - m_bg1_tilemap->set_transparent_pen(0); - m_bg0_tilemap->set_transparent_pen(0); - - m_sprite_xoff = m_bg0_dx = m_bg1_dx[0] = m_bg1_dx[1] = 0; -} - -VIDEO_START_MEMBER(wwfwfest_state,wwfwfstb) -{ - wwfwfest_state::video_start(); - - m_sprite_xoff = 2; - m_bg0_dx = m_bg1_dx[0] = -4; - m_bg1_dx[1] = -2; -} - -UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - if (m_pri == 0x0078) { - m_bg0_tilemap->set_scrolly(0, m_bg0_scrolly ); - m_bg0_tilemap->set_scrollx(0, m_bg0_scrollx + m_bg0_dx); - m_bg1_tilemap->set_scrolly(0, m_bg1_scrolly ); - m_bg1_tilemap->set_scrollx(0, m_bg1_scrollx + m_bg1_dx[0]); - } else { - m_bg1_tilemap->set_scrolly(0, m_bg0_scrolly ); - m_bg1_tilemap->set_scrollx(0, m_bg0_scrollx + m_bg1_dx[1]); - m_bg0_tilemap->set_scrolly(0, m_bg1_scrolly ); - m_bg0_tilemap->set_scrollx(0, m_bg1_scrollx + m_bg0_dx); - } - - /* todo : which bits of pri are significant to the order */ - - if (m_pri == 0x007b) { - m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); - draw_sprites(bitmap,cliprect); - m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); - } - - if (m_pri == 0x007c) { - m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - draw_sprites(bitmap,cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); - m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); - } - - if (m_pri == 0x0078) { - m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0); - draw_sprites(bitmap,cliprect); - m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); - } - return 0; -}