mirror of
https://github.com/holub/mame
synced 2025-07-01 00:09:18 +03:00
reduce some code duplication, preparation for creating a new device (nw)
This commit is contained in:
parent
1d3020a18f
commit
2130adc105
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -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
|
||||
|
@ -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 )
|
||||
|
@ -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 )
|
@ -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<UINT16> m_bg_videoram;
|
||||
required_shared_ptr<UINT16> m_fg_videoram;
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
// UINT16 * m_paletteram; // currently this uses generic palette handling
|
||||
// required_shared_ptr<UINT16> m_spriteram;
|
||||
required_device<buffered_spriteram16_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<cpu_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<UINT16> m_fg0_videoram;
|
||||
tilemap_t *m_fg0_tilemap;
|
||||
DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w);
|
||||
|
||||
|
||||
//required_device<buffered_spriteram16_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);
|
||||
|
||||
};
|
||||
|
@ -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<UINT16> m_fg0_videoram;
|
||||
required_shared_ptr<UINT16> m_bg0_videoram;
|
||||
required_shared_ptr<UINT16> 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<buffered_spriteram16_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<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<okim6295_device> m_oki;
|
||||
};
|
@ -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: \
|
||||
|
@ -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<finish )
|
||||
{
|
||||
UINT16 attr = source[1];
|
||||
int xpos, ypos, colourbank, flipx, flipy, chain, enable, number, count;
|
||||
|
||||
if (attr & 0x01) /* enable */
|
||||
{
|
||||
int i;
|
||||
int bank = source[3] & 0xff;
|
||||
int code = (source[2] & 0xff) + (bank * 256);
|
||||
int color = source[4] & 0xf;
|
||||
int flipx = attr & 0x10;
|
||||
int flipy = attr & 0x08;
|
||||
int sx = source[5] & 0xff;
|
||||
int sy = source[0] & 0xff;
|
||||
int height = (attr >> 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;count<chain;count++) {
|
||||
if (flip_screen()) {
|
||||
if (!flipy) {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+(16*(chain-1))-(16*count),0);
|
||||
} else {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+16*count,0);
|
||||
}
|
||||
} else {
|
||||
if (flipy) {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-(16*(chain-1))+(16*count),0);
|
||||
} else {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-16*count,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
source += 8;
|
||||
source+=8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
UINT32 ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->set_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;
|
||||
}
|
||||
|
||||
|
@ -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( source<finish )
|
||||
{
|
||||
int xpos, ypos, colourbank, flipx, flipy, chain, enable, number, count;
|
||||
|
||||
enable = (source[1] & 0x0001);
|
||||
|
||||
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()) {
|
||||
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;count<chain;count++) {
|
||||
if (flip_screen()) {
|
||||
if (!flipy) {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+(16*(chain-1))-(16*count),0);
|
||||
} else {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+16*count,0);
|
||||
}
|
||||
} else {
|
||||
if (flipy) {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-(16*(chain-1))+(16*count),0);
|
||||
} else {
|
||||
drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-16*count,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
source+=8;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Video Start and Refresh Functions
|
||||
********************************************************************************
|
||||
Draw Order / Priority seems to affect where the scroll values are used also.
|
||||
*******************************************************************************/
|
||||
|
||||
void wwfwfest_state::video_start()
|
||||
{
|
||||
save_item(NAME(m_pri));
|
||||
save_item(NAME(m_bg0_scrollx));
|
||||
save_item(NAME(m_bg0_scrolly));
|
||||
save_item(NAME(m_bg1_scrollx));
|
||||
save_item(NAME(m_bg1_scrolly));
|
||||
|
||||
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_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
|
||||
m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
|
||||
|
||||
m_fg0_tilemap->set_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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user