mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
New games added or promoted from NOT_WORKING status
--------------------------------------------------- Castle Of Dracula [Caius, The Dumping Union, Luca Elia]
This commit is contained in:
parent
033c15f969
commit
202cc2f7ec
@ -5,7 +5,7 @@ Some Dynax games using the second version of their blitter
|
||||
driver by Luca Elia and Nicola Salmoria
|
||||
|
||||
CPU: Z80 or TLCS90
|
||||
Sound: [AY] + [YM] + [YM] + [M5205]
|
||||
Sound: [AY] + [YM] + [YM] + [M5205] / M6295
|
||||
VDP: HD46505SP (6845) (CRT controller)
|
||||
Custom: TC17G032AP-0246 (blitter)
|
||||
|
||||
@ -37,8 +37,9 @@ Year + Game Main Board Sub Board CPU Sound
|
||||
91 Mj Ougon No Pai D6209038L1-0 TLCS AY8910 YM2413 RAM Undumped TMP91P640 Code, Battery
|
||||
92 Quiz TV Gassyuukoku D5512068L1-2 D6410288L-1 Z80 AY8912 YM2413 M5205 RAM
|
||||
92 Hanafuda Hana Tengoku D6502208L1 D6107068L-1 Z80 AY8910 YM2413 M6242 RAM
|
||||
94 Castle Of Dracula Z80 M6295 PROM Blitter is an FPGA
|
||||
94 Mj Reach (bootleg) bootleg TLCS AY8910 YM2413 M6242 PROM Battery
|
||||
94 Maya Z80 YM2203 PROM
|
||||
94 Maya Z80 YM2203 PROM Blitter is an FPGA
|
||||
96 Mj Raijinhai DX D10010318L1 D10502168 TLCS AY8910 M6242 PROM Undumped TMP91P640 Code, Battery
|
||||
9? Inca Z80 YM2203 PROM
|
||||
---------------------------------------------------------------------------------------------------------------------
|
||||
@ -440,6 +441,11 @@ WRITE8_MEMBER(dynax_state::yarunara_layer_half2_w)
|
||||
hnoridur_layer_half2_w(space, 0, data >> 1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( cdracula_mem_map, AS_PROGRAM, 8, dynax_state )
|
||||
AM_RANGE( 0x0000, 0xbfff ) AM_ROM
|
||||
AM_RANGE( 0xc000, 0xffff ) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sprtmtch_mem_map, AS_PROGRAM, 8, dynax_state )
|
||||
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
|
||||
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
|
||||
@ -1539,6 +1545,48 @@ static ADDRESS_MAP_START( gekisha_io_map, AS_IO, 8, dynax_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Castle Of Dracula
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(dynax_state::cdracula_sound_rombank_w)
|
||||
{
|
||||
// logerror("%s: sound bank = %02x\n", machine().describe_context(), data);
|
||||
|
||||
int num_banks = memregion("oki")->bytes() / 0x40000;
|
||||
if (data < num_banks)
|
||||
m_oki->set_bank_base(data * 0x40000);
|
||||
else
|
||||
logerror("%s: warning, invalid sound bank = %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( cdracula_io_map, AS_IO, 8, dynax_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE( 0x01, 0x07 ) AM_WRITE(cdracula_blitter_rev2_w) // Blitter + Destination Layers
|
||||
AM_RANGE( 0x10, 0x10 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE( 0x11, 0x11 ) AM_NOP // unpopulated oki
|
||||
// AM_RANGE( 0x12, 0x12 ) AM_WRITENOP // CRT Controller
|
||||
// AM_RANGE( 0x13, 0x13 ) AM_WRITENOP // CRT Controller
|
||||
AM_RANGE( 0x20, 0x20 ) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE( 0x22, 0x22 ) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE( 0x30, 0x30 ) AM_WRITE(dynax_layer_enable_w) // Layers Enable
|
||||
// AM_RANGE( 0x31, 0x31 ) AM_WRITE(dynax_rombank_w) // BANK ROM Select
|
||||
AM_RANGE( 0x32, 0x32 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
|
||||
AM_RANGE( 0x33, 0x33 ) AM_WRITE(dynax_blit_flags_w) // Flags + Do Blit
|
||||
AM_RANGE( 0x34, 0x34 ) AM_WRITE(dynax_blit_palette01_w) // Layers Palettes (Low Bits)
|
||||
AM_RANGE( 0x35, 0x35 ) AM_WRITE(dynax_blit_palette23_w) //
|
||||
AM_RANGE( 0x36, 0x36 ) AM_WRITE(dynax_blit_backpen_w) // Background Color
|
||||
AM_RANGE( 0x37, 0x37 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
|
||||
AM_RANGE( 0x41, 0x41 ) AM_WRITE(dynax_flipscreen_w) // Flip Screen
|
||||
AM_RANGE( 0x44, 0x44 ) AM_WRITE(jantouki_blitter_ack_w) // Blitter IRQ Ack
|
||||
AM_RANGE( 0x45, 0x45 ) AM_WRITE(dynax_blit_palbank_w) // Layers Palettes (High Bit)
|
||||
AM_RANGE( 0x60, 0x60 ) AM_READ_PORT("DSW2")
|
||||
AM_RANGE( 0x61, 0x61 ) AM_READ_PORT("DSW1")
|
||||
AM_RANGE( 0x6b, 0x6b ) AM_WRITE(cdracula_sound_rombank_w) // OKI Bank
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
@ -1963,6 +2011,85 @@ static INPUT_PORTS_START( HANAFUDA_KEYS_BET_ALT )
|
||||
INPUT_PORTS_END
|
||||
#endif
|
||||
|
||||
static INPUT_PORTS_START( cdracula )
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // same as button1
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // same as button1
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
|
||||
|
||||
PORT_START("COINS")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW1") // port $61 -> c217
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION( "SW1:1,2" )
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) // 44
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) // 47
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) // 4a
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // 4d
|
||||
PORT_DIPNAME( 0x0c, 0x08, "Time" ) PORT_DIPLOCATION( "SW1:3,4" )
|
||||
PORT_DIPSETTING( 0x0c, "120 sec" )
|
||||
PORT_DIPSETTING( 0x08, "90 sec" )
|
||||
PORT_DIPSETTING( 0x04, "60 sec" )
|
||||
PORT_DIPSETTING( 0x00, "60 sec (duplicate)" )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:5" )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Max Lives" ) PORT_DIPLOCATION( "SW1:6" )
|
||||
PORT_DIPSETTING( 0x20, "5" )
|
||||
PORT_DIPSETTING( 0x00, "8" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Unknown 1-7" ) PORT_DIPLOCATION( "SW1:7" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) PORT_DIPLOCATION( "SW1:8" )
|
||||
|
||||
PORT_START("DSW2") // port $60 -> c216
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW2: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, "Unknown 2-3" ) PORT_DIPLOCATION( "SW2:3" )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "Reset Tiles After Miss" ) PORT_DIPLOCATION( "SW2:4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Unknown 2-5" ) PORT_DIPLOCATION( "SW2:5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION( "SW2:6" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Sound Test" ) PORT_DIPLOCATION( "SW2:7" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Graphics Test" ) PORT_DIPLOCATION( "SW2:8" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( hanamai )
|
||||
PORT_START("DSW0")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||
@ -4212,6 +4339,45 @@ MACHINE_START_MEMBER(dynax_state,hnoridur)
|
||||
MACHINE_START_CALL_MEMBER(dynax);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
Castle Of Dracula
|
||||
***************************************************************************/
|
||||
|
||||
static MACHINE_CONFIG_START( cdracula, dynax_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(cdracula_mem_map)
|
||||
MCFG_CPU_IO_MAP(cdracula_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", dynax_state, sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dynax_state,dynax)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
|
||||
|
||||
// MCFG_NVRAM_ADD_0FILL("nvram") // no battery
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(16, 512-16-1, 16, 256-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_cdracula)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 512)
|
||||
|
||||
MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette
|
||||
MCFG_VIDEO_START_OVERRIDE(dynax_state,hanamai)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL_4MHz / 4, OKIM6295_PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Hana no Mai
|
||||
***************************************************************************/
|
||||
@ -4862,6 +5028,46 @@ MACHINE_CONFIG_END
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Castle Of Dracula
|
||||
1994 Y.S.E.
|
||||
|
||||
Not a Dynax board:
|
||||
|
||||
GoldStar Z8400A PS (4 MHz 40-pin plastic DIP)
|
||||
GoldStar GM68B45S
|
||||
TI TPC1020AFN-084C
|
||||
OKI M6295 (second OKI spot is unpopulated)
|
||||
2 x DSW8, 28-way connector
|
||||
PAL16L8ACN
|
||||
4 MHz & 21.47727 MHz XTALs
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( cdracula )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // Z80 Code
|
||||
ROM_LOAD( "escape.u202", 0x000000, 0x10000, CRC(92ceb689) SHA1(1b5d6cd51fc961f1b9a7b99d9ba48da8ea2e503b) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) // blitter data
|
||||
ROM_LOAD( "escape.u214", 0x00000, 0x40000, CRC(52c2f3bc) SHA1(764fb447d749c1b83d2bb6bcd517949a1cd76593) )
|
||||
ROM_LOAD( "escape.u212", 0x40000, 0x40000, CRC(df536e91) SHA1(2c988e7793b2665d8ebb12a8f80a9aefdd3ed1dd) )
|
||||
ROM_LOAD( "escape.u210", 0x80000, 0x40000, CRC(d3f5bac2) SHA1(d81ac3ca159985b0a79d02ebe707b46fdeaefe64) )
|
||||
|
||||
ROM_REGION( 0xc0000, "oki", 0 )
|
||||
ROM_LOAD( "escape.ua", 0x00000, 0x20000, CRC(2f25be27) SHA1(9b7653ae9ebfd4a301d786c5c731478774e5171d) )
|
||||
ROM_LOAD( "escape.ub", 0x20000, 0x20000, CRC(536a8dd0) SHA1(1ec226b0cd4d1320cdfce0a447ea0e481b85a802) )
|
||||
ROM_LOAD( "escape.uc", 0x40000, 0x20000, CRC(393fa285) SHA1(654ab2fb92efa28f65bcc7c70a9fae2e43657309) )
|
||||
ROM_LOAD( "escape.ud", 0x60000, 0x20000, CRC(eff474af) SHA1(7ab1f0079d051c9b0c4aa566a4d92032c7060d8e) )
|
||||
ROM_LOAD( "escape.ue", 0x80000, 0x20000, CRC(0f9dc93b) SHA1(a3b33795cf07882ecc80d9afa5174e771ee0df08) )
|
||||
ROM_FILL( 0xa0000, 0x20000, 0 )
|
||||
|
||||
ROM_REGION( 0x400, "proms", 0 ) // Color PROMs
|
||||
ROM_LOAD( "82s147an.u26", 0x000, 0x200, CRC(1a3fe146) SHA1(7d1b4dd66fc95ea5ed584f0bb571cca09fe519b0) ) // FIXED BITS (00xxxxxx)
|
||||
ROM_LOAD( "82s147an.u25", 0x200, 0x200, CRC(31791990) SHA1(526c0d516f290dc6cc2ec76d9bcec8c900e2ae10) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Hana no Mai
|
||||
@ -7118,5 +7324,6 @@ GAME( 1991, tenkaie, tenkai, tenkai, tenkai, driver_device, 0, ROT
|
||||
GAME( 1991, ougonpai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Ougon No Pai", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, ougonpaib,ougonpai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Ougon No Pai (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, mjreach, 0, tenkai, mjreach, dynax_state, mjreach, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, cdracula, 0, cdracula, cdracula, driver_device, 0, ROT0, "Yun Sung (Escape license)","Castle Of Dracula", GAME_SUPPORTS_SAVE ) // not a dynax board
|
||||
GAME( 1995, shpeng, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "WSAC Systems?", "Sea Hunter Penguin", GAME_NO_COCKTAIL | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) // not a dynax board. proms?
|
||||
GAME( 1996, majrjhdx, 0, majrjhdx, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
|
@ -125,6 +125,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(hanamai_keyboard_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_rombank_w);
|
||||
DECLARE_WRITE8_MEMBER(jantouki_sound_rombank_w);
|
||||
DECLARE_WRITE8_MEMBER(cdracula_sound_rombank_w);
|
||||
DECLARE_WRITE8_MEMBER(hnoridur_rombank_w);
|
||||
DECLARE_WRITE8_MEMBER(hnoridur_palbank_w);
|
||||
DECLARE_WRITE8_MEMBER(hnoridur_palette_w);
|
||||
@ -188,6 +189,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(tenkai_blit_dest_w);
|
||||
DECLARE_WRITE8_MEMBER(mjembase_blit_dest_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_blit_backpen_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_blit_flags_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_blit_palette01_w);
|
||||
DECLARE_WRITE8_MEMBER(tenkai_blit_palette01_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_blit_palette45_w);
|
||||
@ -211,6 +213,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(dynax_blit2_scroll_w);
|
||||
DECLARE_WRITE8_MEMBER(dynax_blitter_rev2_w);
|
||||
DECLARE_WRITE8_MEMBER(tenkai_blitter_rev2_w);
|
||||
DECLARE_WRITE8_MEMBER(cdracula_blitter_rev2_w);
|
||||
DECLARE_WRITE8_MEMBER(jantouki_blitter_rev2_w);
|
||||
DECLARE_WRITE8_MEMBER(jantouki_blitter2_rev2_w);
|
||||
DECLARE_WRITE8_MEMBER(hanamai_priority_w);
|
||||
@ -229,6 +232,7 @@ public:
|
||||
UINT32 screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_cdracula(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(sprtmtch_vblank_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(jantouki_vblank_interrupt);
|
||||
|
@ -9618,6 +9618,7 @@ tenkaie // 1991 Dynax
|
||||
ougonpai // 1991 Dynax
|
||||
ougonpaib // bootleg
|
||||
htengoku // 1992 Dynax
|
||||
cdracula // 1994 Y.S.E.
|
||||
mjreach // 1994 Dynax
|
||||
mjdialq2 // "52" (c) 1991 Dynax
|
||||
yarunara // "55" Mahjong Yarunara 1991 Dynax
|
||||
|
@ -214,7 +214,7 @@ WRITE8_MEMBER(dynax_state::dynax_blit2_palbank_w)
|
||||
}
|
||||
|
||||
|
||||
/* Which half of the layers to write two (interleaved games only) */
|
||||
/* Which half of the layers to write to (interleaved games only) */
|
||||
WRITE8_MEMBER(dynax_state::hanamai_layer_half_w)
|
||||
{
|
||||
m_hanamai_layer_half = (~data) & 1;
|
||||
@ -380,7 +380,15 @@ void dynax_state::blitter_plot_pixel( int layer, int mask, int x, int y, int pen
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Flags:
|
||||
|
||||
7654 ---- -
|
||||
---- 3--- Rotation = SWAPXY + FLIPY
|
||||
---- -2-- -
|
||||
---- --1- 0 = Ignore the pens specified in ROM, draw everything with the pen supplied as parameter
|
||||
---- ---0 Clear
|
||||
*/
|
||||
int dynax_state::blitter_drawgfx( int layer, int mask, const char *gfx, int src, int pen, int x, int y, int wrap, int flags )
|
||||
{
|
||||
UINT8 cmd;
|
||||
@ -702,6 +710,7 @@ WRITE8_MEMBER(dynax_state::tenkai_blitter_rev2_w)
|
||||
}
|
||||
|
||||
|
||||
// two blitters/screens
|
||||
WRITE8_MEMBER(dynax_state::jantouki_blitter_rev2_w)
|
||||
{
|
||||
switch (offset)
|
||||
@ -730,6 +739,44 @@ WRITE8_MEMBER(dynax_state::jantouki_blitter2_rev2_w)
|
||||
}
|
||||
}
|
||||
|
||||
// first register does not trigger a blit, it sets the destination
|
||||
WRITE8_MEMBER(dynax_state::cdracula_blitter_rev2_w)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
LOG(("DD=%02X ", data));
|
||||
|
||||
if (data & 0xf0)
|
||||
{
|
||||
hanamai_layer_half_w(space, offset, 0, mem_mask);
|
||||
dynax_blit_dest_w(space, offset, data >> 4, mem_mask);
|
||||
}
|
||||
if (data & 0x0f)
|
||||
{
|
||||
hanamai_layer_half_w(space, offset, 1, mem_mask);
|
||||
dynax_blit_dest_w(space, offset, data & 0x0f, mem_mask);
|
||||
}
|
||||
break;
|
||||
case 1: m_blit_x = data; break;
|
||||
case 2: m_blit_y = data; break;
|
||||
case 3: m_blit_src = (m_blit_src & 0xffff00) | (data << 0); break;
|
||||
case 4: m_blit_src = (m_blit_src & 0xff00ff) | (data << 8); break;
|
||||
case 5: m_blit_src = (m_blit_src & 0x00ffff) | (data << 16); break;
|
||||
case 6: dynax_blit_scroll_w(space, 0, data); break;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(dynax_state::dynax_blit_flags_w)
|
||||
{
|
||||
LOG(("FLG=%02X ", data));
|
||||
|
||||
int flags = (data & 0x08) ? 0x08 : 0x00;
|
||||
flags |= (data & 0x10) ? 0x02 : 0x00;
|
||||
flags |= (data & 0x80) ? 0x01 : 0x00;
|
||||
|
||||
dynax_blitter_start(flags);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@ -1402,3 +1449,24 @@ UINT32 dynax_state::screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &
|
||||
if (BIT(layers_ctrl, 1)) mjdialq2_copylayer(bitmap, cliprect, 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
UINT32 dynax_state::screen_update_cdracula(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layers_ctrl = ~m_layer_enable;
|
||||
|
||||
if (debug_viewer(bitmap,cliprect))
|
||||
return 0;
|
||||
|
||||
layers_ctrl &= debug_mask();
|
||||
|
||||
bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
|
||||
|
||||
m_extra_scroll_y = -8;
|
||||
|
||||
if (BIT(layers_ctrl, 3)) hanamai_copylayer(bitmap, cliprect, 3);
|
||||
if (BIT(layers_ctrl, 1)) hanamai_copylayer(bitmap, cliprect, 1);
|
||||
if (BIT(layers_ctrl, 2)) hanamai_copylayer(bitmap, cliprect, 2);
|
||||
if (BIT(layers_ctrl, 0)) hanamai_copylayer(bitmap, cliprect, 0);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user