mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
b2af252a36
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/*********************************************************************
|
||||
|
||||
|
@ -5,10 +5,10 @@
|
||||
EACA Colour Genie Floppy Disc Controller
|
||||
|
||||
TODO:
|
||||
- Only native MESS .mfi files load
|
||||
- Only native MESS .mfi files load (some sectors are marked DDM)
|
||||
- FM mode disks can be formatted but don't work correctly
|
||||
- What's the exact FD1793 model?
|
||||
- How does it turn off the motor?
|
||||
- How does it switch between FM/MFM?
|
||||
- What's the source of the timer and the exact timings?
|
||||
|
||||
***************************************************************************/
|
||||
@ -24,9 +24,6 @@
|
||||
|
||||
#define VERBOSE 0
|
||||
|
||||
// set to 1 to test fm disk formats
|
||||
#define FM_MODE 0
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
@ -34,6 +31,15 @@
|
||||
|
||||
const device_type CGENIE_FDC = &device_creator<cgenie_fdc_device>;
|
||||
|
||||
DEVICE_ADDRESS_MAP_START( mmio, 8, cgenie_fdc_device )
|
||||
AM_RANGE(0xe0, 0xe3) AM_MIRROR(0x10) AM_READWRITE(irq_r, select_w)
|
||||
AM_RANGE(0xec, 0xef) AM_MIRROR(0x10) AM_DEVREAD("fd1793", fd1793_t, read)
|
||||
AM_RANGE(0xec, 0xec) AM_MIRROR(0x10) AM_WRITE(command_w)
|
||||
AM_RANGE(0xed, 0xed) AM_MIRROR(0x10) AM_DEVWRITE("fd1793", fd1793_t, track_w)
|
||||
AM_RANGE(0xee, 0xee) AM_MIRROR(0x10) AM_DEVWRITE("fd1793", fd1793_t, sector_w)
|
||||
AM_RANGE(0xef, 0xef) AM_MIRROR(0x10) AM_DEVWRITE("fd1793", fd1793_t, data_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
FLOPPY_FORMATS_MEMBER( cgenie_fdc_device::floppy_formats )
|
||||
FLOPPY_CGENIE_FORMAT
|
||||
FLOPPY_FORMATS_END
|
||||
@ -132,10 +138,7 @@ void cgenie_fdc_device::device_reset()
|
||||
m_slot->m_program->install_rom(0xc000, 0xdfff, memregion("software")->base());
|
||||
|
||||
// memory mapped i/o
|
||||
m_slot->m_program->install_read_handler(0xffe0, 0xffe3, 0, 0x10, read8_delegate(FUNC(cgenie_fdc_device::irq_r), this));
|
||||
m_slot->m_program->install_write_handler(0xffe0, 0xffe3, 0, 0x10, write8_delegate(FUNC(cgenie_fdc_device::select_w), this));
|
||||
m_slot->m_program->install_read_handler(0xffec, 0xffef, 0, 0x10, read8_delegate(FUNC(fd1793_t::read), m_fdc.target()));
|
||||
m_slot->m_program->install_write_handler(0xffec, 0xffef, 0, 0x10, write8_delegate(FUNC(fd1793_t::write), m_fdc.target()));
|
||||
m_slot->m_program->install_device(0xff00, 0xffff, *this, &cgenie_fdc_device::mmio);
|
||||
|
||||
// map extra socket
|
||||
if (m_socket->exists())
|
||||
@ -199,9 +202,6 @@ WRITE8_MEMBER( cgenie_fdc_device::select_w )
|
||||
if (VERBOSE)
|
||||
logerror("cgenie_fdc_device::motor_w: 0x%02x\n", data);
|
||||
|
||||
if (FM_MODE)
|
||||
m_fdc->dden_w(1);
|
||||
|
||||
m_floppy = NULL;
|
||||
|
||||
if (BIT(data, 0)) m_floppy = m_floppy0->get_device();
|
||||
@ -217,3 +217,13 @@ WRITE8_MEMBER( cgenie_fdc_device::select_w )
|
||||
m_floppy->mon_w(0);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( cgenie_fdc_device::command_w )
|
||||
{
|
||||
// density select is encoded into this pseudo-command
|
||||
if ((data & 0xfe) == 0xfe)
|
||||
m_fdc->dden_w(!BIT(data, 0));
|
||||
|
||||
// forward to the controller
|
||||
m_fdc->cmd_w(data);
|
||||
}
|
||||
|
@ -29,6 +29,8 @@ public:
|
||||
// construction/destruction
|
||||
cgenie_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
DECLARE_ADDRESS_MAP(mmio, 8);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_callback);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(socket_load);
|
||||
@ -36,6 +38,7 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(intrq_w);
|
||||
DECLARE_READ8_MEMBER(irq_r);
|
||||
DECLARE_WRITE8_MEMBER(select_w);
|
||||
DECLARE_WRITE8_MEMBER(command_w);
|
||||
|
||||
DECLARE_FLOPPY_FORMATS(floppy_formats);
|
||||
|
||||
|
@ -6,9 +6,27 @@
|
||||
|
||||
**********************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
____ ____ ____ ____
|
||||
Vss 1 |* \_/ | 28 H2 Vss 1 |* \_/ | 40 H2
|
||||
H3 2 | | 27 H1 H3 2 | | 39 H1
|
||||
H4 3 | | 26 Vdd H4 3 | | 38 Vdd
|
||||
CE 4 | | 25 S2 CE 4 | | 37 S2
|
||||
MS 5 | | 24 S1 MS 5 | | 36 S1
|
||||
STD 6 | | 23 S0 STD 6 | | 35 S0
|
||||
A4 7 | TMS1024 | 22 D7 A1 7 | | 34 D3
|
||||
B4 8 | | 21 C7 B1 8 | | 33 C3
|
||||
C4 9 | | 20 B7 C1 9 | | 32 B3
|
||||
D4 10 | | 19 A7 D1 10 | TMS1025 | 31 A3
|
||||
A5 11 | | 18 D6 A4 11 | | 30 D7
|
||||
B5 12 | | 17 C6 B4 12 | | 29 C7
|
||||
C5 13 | | 16 B6 C4 13 | | 28 B7
|
||||
D5 14 |___________| 15 A6 D4 14 | | 27 A7
|
||||
A5 15 | | 26 D6
|
||||
B5 16 | | 25 C6
|
||||
C5 17 | | 24 B6
|
||||
D5 18 | | 23 A6
|
||||
A2 19 | | 22 D2
|
||||
B2 20 |___________| 21 C2
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
@ -188,7 +188,7 @@ ATTR_COLD void truthtable_desc_t::setup(const char **truthtable, UINT32 disabled
|
||||
tindex[j] = k;
|
||||
}
|
||||
|
||||
help(0, inout, 0 , val, tindex);
|
||||
help(0, inout, 0 , val, tindex.data());
|
||||
ttline = pstring(truthtable[0]);
|
||||
truthtable++;
|
||||
}
|
||||
|
@ -51,18 +51,15 @@ public:
|
||||
m_list = NULL;
|
||||
}
|
||||
|
||||
ATTR_HOT /* inline */ operator _ListClass * () { return m_list; }
|
||||
ATTR_HOT /* inline */ operator const _ListClass * () const { return m_list; }
|
||||
|
||||
/* using the [] operator will not allow gcc to vectorize code because
|
||||
* basically a pointer is returned.
|
||||
* array works around this.
|
||||
*/
|
||||
|
||||
ATTR_HOT /* inline */ _ListClass *array() { return m_list; }
|
||||
ATTR_HOT /* inline */ _ListClass *data() { return m_list; }
|
||||
|
||||
ATTR_HOT /* inline */ _ListClass& operator[](const std::size_t index) { return m_list[index]; }
|
||||
ATTR_HOT /* inline */ const _ListClass& operator[](const std::size_t index) const { return m_list[index]; }
|
||||
ATTR_HOT /* inline */ _ListClass& operator[](std::size_t index) { return m_list[index]; }
|
||||
ATTR_HOT /* inline */ const _ListClass& operator[](std::size_t index) const { return m_list[index]; }
|
||||
|
||||
ATTR_HOT /* inline */ std::size_t size() const { return m_capacity; }
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
class geebee_sound_device : public device_t,
|
||||
public device_sound_interface
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/* 8 voices max */
|
||||
#define MAX_VOICES 8
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -218,7 +218,7 @@ Notes:
|
||||
|
||||
TODO:
|
||||
- There is still a big mystery about the first location of tri port ram, which is
|
||||
shared among all four CPUs. See namcos1_mcu_patch_w() for the kludge: essentially,
|
||||
shared among all four CPUs. See mcu_patch_w() for the kludge: essentially,
|
||||
this location has to be 0xA6 for the games to work. However, the MCU first sets it
|
||||
to 0xA6, then zeroes it - and there doesn't seem to be any code anywhere for any CPU
|
||||
that would set it back to 0xA6. Se, we ignore the zeroing write.
|
||||
@ -358,19 +358,19 @@ READ8_MEMBER(namcos1_state::dsw_r)
|
||||
return 0xf0 | ret;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_coin_w)
|
||||
WRITE8_MEMBER(namcos1_state::coin_w)
|
||||
{
|
||||
coin_lockout_global_w(machine(), ~data & 1);
|
||||
coin_counter_w(machine(), 0, data & 2);
|
||||
coin_counter_w(machine(), 1, data & 4);
|
||||
}
|
||||
|
||||
void namcos1_state::namcos1_update_DACs()
|
||||
void namcos1_state::update_DACs()
|
||||
{
|
||||
m_dac->write_signed16(0x8000 + (m_dac0_value * m_dac0_gain) + (m_dac1_value * m_dac1_gain));
|
||||
}
|
||||
|
||||
void namcos1_state::namcos1_init_DACs()
|
||||
void namcos1_state::init_DACs()
|
||||
{
|
||||
m_dac0_value = 0;
|
||||
m_dac1_value = 0;
|
||||
@ -378,7 +378,7 @@ void namcos1_state::namcos1_init_DACs()
|
||||
m_dac1_gain = 0x80;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_dac_gain_w)
|
||||
WRITE8_MEMBER(namcos1_state::dac_gain_w)
|
||||
{
|
||||
int value;
|
||||
|
||||
@ -390,19 +390,19 @@ WRITE8_MEMBER(namcos1_state::namcos1_dac_gain_w)
|
||||
value = (data >> 3) & 3; /* GAIN2,GAIN3 */
|
||||
m_dac1_gain = 0x20 * (value+1);
|
||||
|
||||
namcos1_update_DACs();
|
||||
update_DACs();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_dac0_w)
|
||||
WRITE8_MEMBER(namcos1_state::dac0_w)
|
||||
{
|
||||
m_dac0_value = data - 0x80; /* shift zero point */
|
||||
namcos1_update_DACs();
|
||||
update_DACs();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_dac1_w)
|
||||
WRITE8_MEMBER(namcos1_state::dac1_w)
|
||||
{
|
||||
m_dac1_value = data - 0x80; /* shift zero point */
|
||||
namcos1_update_DACs();
|
||||
update_DACs();
|
||||
}
|
||||
|
||||
|
||||
@ -416,11 +416,11 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, namcos1_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( virtual_map, AS_PROGRAM, 8, namcos1_state )
|
||||
AM_RANGE(0x2c0000, 0x2c1fff) AM_WRITE(namcos1_3dcs_w)
|
||||
AM_RANGE(0x2c0000, 0x2c1fff) AM_WRITE(_3dcs_w)
|
||||
AM_RANGE(0x2e0000, 0x2e7fff) AM_DEVREADWRITE("c116", namco_c116_device, read, write)
|
||||
AM_RANGE(0x2f0000, 0x2f7fff) AM_RAM_WRITE(namcos1_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x2f0000, 0x2f7fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x2f8000, 0x2f9fff) AM_READWRITE(no_key_r, no_key_w)
|
||||
AM_RANGE(0x2fc000, 0x2fcfff) AM_RAM_WRITE(namcos1_spriteram_w) AM_SHARE("spriteram")
|
||||
AM_RANGE(0x2fc000, 0x2fcfff) AM_RAM_WRITE(spriteram_w) AM_SHARE("spriteram")
|
||||
AM_RANGE(0x2fd000, 0x2fd01f) AM_RAM AM_SHARE("pfcontrol") AM_MIRROR(0xfe0)
|
||||
AM_RANGE(0x2fe000, 0x2fe3ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0xc00) /* PSG ( Shared ) */
|
||||
AM_RANGE(0x2ff000, 0x2ff7ff) AM_RAM AM_SHARE("triram") AM_MIRROR(0x800)
|
||||
@ -436,7 +436,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, namcos1_state )
|
||||
AM_RANGE(0x5000, 0x53ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0x400) /* PSG ( Shared ) */
|
||||
AM_RANGE(0x7000, 0x77ff) AM_RAM AM_SHARE("triram")
|
||||
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Sound RAM 3 */
|
||||
AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos1_sound_bankswitch_w) /* ROM bank selector */
|
||||
AM_RANGE(0xc000, 0xc001) AM_WRITE(sound_bankswitch_w) /* ROM bank selector */
|
||||
AM_RANGE(0xd001, 0xd001) AM_DEVWRITE("c117", namco_c117_device, sound_watchdog_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(irq_ack_w)
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM
|
||||
@ -452,16 +452,16 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, namcos1_state )
|
||||
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("mcubank") /* banked ROM */
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("triram")
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("nvram") /* EEPROM */
|
||||
AM_RANGE(0xd000, 0xd000) AM_WRITE(namcos1_dac0_w)
|
||||
AM_RANGE(0xd400, 0xd400) AM_WRITE(namcos1_dac1_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_WRITE(namcos1_mcu_bankswitch_w) /* ROM bank selector */
|
||||
AM_RANGE(0xd000, 0xd000) AM_WRITE(dac0_w)
|
||||
AM_RANGE(0xd400, 0xd400) AM_WRITE(dac1_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_WRITE(mcu_bankswitch_w) /* ROM bank selector */
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(irq_ack_w)
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos1_state )
|
||||
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(namcos1_coin_w)
|
||||
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(namcos1_dac_gain_w)
|
||||
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(coin_w)
|
||||
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(dac_gain_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -1063,8 +1063,8 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 9+8*8, 9+44*8, 264, 2*8, 30*8)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
|
||||
MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", namcos1)
|
||||
|
@ -317,9 +317,7 @@ rumbling on a subwoofer in the cabinet.)
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "audio/taitosnd.h"
|
||||
#include "sound/2610intf.h"
|
||||
#include "sound/flt_vol.h"
|
||||
#include "includes/taitoipt.h"
|
||||
#include "includes/ninjaw.h"
|
||||
|
||||
@ -355,7 +353,7 @@ WRITE8_MEMBER(ninjaw_state::sound_bankswitch_w)
|
||||
membank("z80bank")->set_entry(data & 7);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ninjaw_state::ninjaw_sound_w)
|
||||
WRITE16_MEMBER(ninjaw_state::sound_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_tc0140syt->master_port_w(space, 0, data & 0xff);
|
||||
@ -364,11 +362,11 @@ WRITE16_MEMBER(ninjaw_state::ninjaw_sound_w)
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
if (data & 0xff00)
|
||||
popmessage("ninjaw_sound_w to high byte: %04x", data);
|
||||
popmessage("sound_w to high byte: %04x", data);
|
||||
#endif
|
||||
}
|
||||
|
||||
READ16_MEMBER(ninjaw_state::ninjaw_sound_r)
|
||||
READ16_MEMBER(ninjaw_state::sound_r)
|
||||
{
|
||||
if (offset == 1)
|
||||
return ((m_tc0140syt->master_comm_r(space, 0) & 0xff));
|
||||
@ -379,7 +377,7 @@ READ16_MEMBER(ninjaw_state::ninjaw_sound_r)
|
||||
|
||||
/**** sound pan control ****/
|
||||
|
||||
WRITE8_MEMBER(ninjaw_state::ninjaw_pancontrol)
|
||||
WRITE8_MEMBER(ninjaw_state::pancontrol_w)
|
||||
{
|
||||
filter_volume_device *flt = NULL;
|
||||
offset &= 3;
|
||||
@ -415,7 +413,7 @@ static ADDRESS_MAP_START( ninjaw_master_map, AS_PROGRAM, 16, ninjaw_state )
|
||||
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0x00ff)
|
||||
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0x00ff)
|
||||
AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w)
|
||||
AM_RANGE(0x220000, 0x220003) AM_READWRITE(ninjaw_sound_r,ninjaw_sound_w)
|
||||
AM_RANGE(0x220000, 0x220003) AM_READWRITE(sound_r,sound_w)
|
||||
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x280000, 0x293fff) AM_DEVREAD("tc0100scn_1", tc0100scn_device, word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
|
||||
@ -451,7 +449,7 @@ static ADDRESS_MAP_START( darius2_master_map, AS_PROGRAM, 16, ninjaw_state )
|
||||
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0x00ff)
|
||||
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0x00ff)
|
||||
AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w)
|
||||
AM_RANGE(0x220000, 0x220003) AM_READWRITE(ninjaw_sound_r,ninjaw_sound_w)
|
||||
AM_RANGE(0x220000, 0x220003) AM_READWRITE(sound_r,sound_w)
|
||||
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x280000, 0x293fff) AM_DEVREAD("tc0100scn_1", tc0100scn_device, word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
|
||||
@ -478,14 +476,14 @@ ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( ninjaw_sound_map, AS_PROGRAM, 8, ninjaw_state )
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ninjaw_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("z80bank")
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
|
||||
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
|
||||
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r,slave_comm_w)
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(pancontrol_w) /* pan */
|
||||
AM_RANGE(0xea00, 0xea00) AM_READNOP
|
||||
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
|
||||
@ -624,17 +622,6 @@ static GFXDECODE_START( ninjaw )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
/**************************************************************
|
||||
YM2610 (SOUND)
|
||||
**************************************************************/
|
||||
|
||||
/* handler called by the YM2610 emulator when the internal timers cause an IRQ */
|
||||
WRITE_LINE_MEMBER(ninjaw_state::irqhandler)
|
||||
{
|
||||
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************
|
||||
SUBWOOFER (SOUND)
|
||||
**************************************************************/
|
||||
@ -649,7 +636,6 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_config_complete();
|
||||
virtual void device_start();
|
||||
|
||||
// sound stream update overrides
|
||||
@ -670,16 +656,6 @@ subwoofer_device::subwoofer_device(const machine_config &mconfig, const char *ta
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_config_complete - perform any
|
||||
// operations now that the configuration is
|
||||
// complete
|
||||
//-------------------------------------------------
|
||||
|
||||
void subwoofer_device::device_config_complete()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -720,7 +696,7 @@ to the scrolling background.
|
||||
Darius2: arbitrary interleaving of 10 to keep cpus synced.
|
||||
*************************************************************/
|
||||
|
||||
void ninjaw_state::ninjaw_postload()
|
||||
void ninjaw_state::postload()
|
||||
{
|
||||
parse_control();
|
||||
}
|
||||
@ -731,7 +707,7 @@ void ninjaw_state::machine_start()
|
||||
|
||||
save_item(NAME(m_cpua_ctrl));
|
||||
save_item(NAME(m_pandata));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_state::ninjaw_postload), this));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_state::postload), this));
|
||||
}
|
||||
|
||||
void ninjaw_state::machine_reset()
|
||||
@ -751,7 +727,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,16000000/4) /* 16/4 MHz ? */
|
||||
MCFG_CPU_PROGRAM_MAP(ninjaw_sound_map)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
|
||||
MCFG_CPU_ADD("sub", M68000,16000000/2) /* 8 MHz ? */
|
||||
MCFG_CPU_PROGRAM_MAP(ninjaw_slave_map)
|
||||
@ -779,7 +755,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_left)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_SCREEN_ADD("mscreen", RASTER)
|
||||
@ -787,7 +763,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_middle)
|
||||
MCFG_SCREEN_PALETTE("palette2")
|
||||
|
||||
MCFG_SCREEN_ADD("rscreen", RASTER)
|
||||
@ -795,7 +771,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_right)
|
||||
MCFG_SCREEN_PALETTE("palette3")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_1", TC0100SCN, 0)
|
||||
@ -838,7 +814,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
|
||||
@ -871,7 +847,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */
|
||||
MCFG_CPU_PROGRAM_MAP(ninjaw_sound_map)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
|
||||
MCFG_CPU_ADD("sub", M68000,16000000/2) /* 8 MHz ? */
|
||||
MCFG_CPU_PROGRAM_MAP(darius2_slave_map)
|
||||
@ -899,7 +875,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_left)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_SCREEN_ADD("mscreen", RASTER)
|
||||
@ -907,7 +883,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_middle)
|
||||
MCFG_SCREEN_PALETTE("palette2")
|
||||
|
||||
MCFG_SCREEN_ADD("rscreen", RASTER)
|
||||
@ -915,7 +891,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(36*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_right)
|
||||
MCFG_SCREEN_PALETTE("palette3")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_1", TC0100SCN, 0)
|
||||
@ -958,7 +934,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
|
||||
@ -1198,7 +1174,7 @@ ROM_END
|
||||
/* Working Games */
|
||||
|
||||
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS
|
||||
GAME( 1987, ninjaw, 0, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World)", 0 )
|
||||
GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", 0 )
|
||||
GAME( 1987, ninjawu, ninjaw, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US)", 0 ) /* Uses same coinage as World, see notes */
|
||||
GAME( 1989, darius2, 0, darius2, darius2, driver_device, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", 0 )
|
||||
GAME( 1987, ninjaw, 0, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ninjawu, ninjaw, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US)", GAME_SUPPORTS_SAVE ) /* Uses same coinage as World, see notes */
|
||||
GAME( 1989, darius2, 0, darius2, darius2, driver_device, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:???
|
||||
// copyright-holders:Darren Olafson
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Darren Olafson, Zsolt Vasvari
|
||||
/***************************************************************************
|
||||
|
||||
New York! New York! hardware
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
Wiping
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/*************************************************************************
|
||||
|
||||
|
@ -67,21 +67,35 @@ public:
|
||||
UINT8 *m_tilemap_maskdata;
|
||||
int m_copy_sprites;
|
||||
UINT8 m_drawmode_table[16];
|
||||
|
||||
DECLARE_DIRECT_UPDATE_MEMBER(direct_handler_main);
|
||||
DECLARE_DIRECT_UPDATE_MEMBER(direct_handler_sub);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(subres_w);
|
||||
DECLARE_WRITE8_MEMBER(irq_ack_w);
|
||||
DECLARE_READ8_MEMBER(dsw_r);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_coin_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_dac_gain_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_dac0_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_dac1_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_sound_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_mcu_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(namcos1_mcu_patch_w);
|
||||
DECLARE_WRITE8_MEMBER(coin_w);
|
||||
DECLARE_WRITE8_MEMBER(dac_gain_w);
|
||||
DECLARE_WRITE8_MEMBER(dac0_w);
|
||||
DECLARE_WRITE8_MEMBER(dac1_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(mcu_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(mcu_patch_w);
|
||||
DECLARE_READ8_MEMBER(quester_paddle_r);
|
||||
DECLARE_READ8_MEMBER(berabohm_buttons_r);
|
||||
DECLARE_READ8_MEMBER(faceoff_inputs_r);
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(spriteram_w);
|
||||
DECLARE_WRITE8_MEMBER(_3dcs_w);
|
||||
DECLARE_READ8_MEMBER(no_key_r);
|
||||
DECLARE_WRITE8_MEMBER(no_key_w);
|
||||
DECLARE_READ8_MEMBER(key_type1_r);
|
||||
DECLARE_WRITE8_MEMBER(key_type1_w);
|
||||
DECLARE_READ8_MEMBER(key_type2_r);
|
||||
DECLARE_WRITE8_MEMBER(key_type2_w);
|
||||
DECLARE_READ8_MEMBER(key_type3_r);
|
||||
DECLARE_WRITE8_MEMBER(key_type3_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(pacmania);
|
||||
DECLARE_DRIVER_INIT(ws);
|
||||
DECLARE_DRIVER_INIT(wldcourt);
|
||||
@ -105,31 +119,24 @@ public:
|
||||
DECLARE_DRIVER_INIT(ws89);
|
||||
DECLARE_DRIVER_INIT(dspirit);
|
||||
DECLARE_DRIVER_INIT(pistoldm);
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
void driver_init();
|
||||
|
||||
TILE_GET_INFO_MEMBER(bg_get_info0);
|
||||
TILE_GET_INFO_MEMBER(bg_get_info1);
|
||||
TILE_GET_INFO_MEMBER(bg_get_info2);
|
||||
TILE_GET_INFO_MEMBER(bg_get_info3);
|
||||
TILE_GET_INFO_MEMBER(fg_get_info4);
|
||||
TILE_GET_INFO_MEMBER(fg_get_info5);
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void screen_eof_namcos1(screen_device &screen, bool state);
|
||||
void namcos1_update_DACs();
|
||||
void namcos1_init_DACs();
|
||||
DECLARE_WRITE8_MEMBER( namcos1_videoram_w );
|
||||
DECLARE_WRITE8_MEMBER( namcos1_spriteram_w );
|
||||
WRITE8_MEMBER( namcos1_3dcs_w );
|
||||
READ8_MEMBER( no_key_r );
|
||||
WRITE8_MEMBER( no_key_w );
|
||||
READ8_MEMBER( key_type1_r );
|
||||
WRITE8_MEMBER( key_type1_w );
|
||||
READ8_MEMBER( key_type2_r );
|
||||
WRITE8_MEMBER( key_type2_w );
|
||||
READ8_MEMBER( key_type3_r );
|
||||
WRITE8_MEMBER( key_type3_w );
|
||||
void namcos1_driver_init();
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void screen_eof(screen_device &screen, bool state);
|
||||
void update_DACs();
|
||||
void init_DACs();
|
||||
|
||||
private:
|
||||
inline offs_t direct_handler(int whichcpu, direct_read_data &direct, offs_t address);
|
||||
inline void get_tile_info(tile_data &tileinfo,int tile_index,UINT8 *info_vram);
|
||||
|
@ -18,7 +18,6 @@ class ninjaw_state : public driver_device
|
||||
public:
|
||||
ninjaw_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
@ -35,14 +34,8 @@ public:
|
||||
m_2610_2l(*this, "2610.2.l"),
|
||||
m_2610_2r(*this, "2610.2.r"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
|
||||
/* misc */
|
||||
UINT16 m_cpua_ctrl;
|
||||
int m_pandata[4];
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this, "spriteram") { }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -63,20 +56,28 @@ public:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
|
||||
/* misc */
|
||||
UINT16 m_cpua_ctrl;
|
||||
int m_pandata[4];
|
||||
|
||||
DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(ninjaw_sound_w);
|
||||
DECLARE_READ16_MEMBER(ninjaw_sound_r);
|
||||
DECLARE_WRITE8_MEMBER(ninjaw_pancontrol);
|
||||
DECLARE_WRITE16_MEMBER(sound_w);
|
||||
DECLARE_READ16_MEMBER(sound_r);
|
||||
DECLARE_WRITE8_MEMBER(pancontrol_w);
|
||||
DECLARE_WRITE16_MEMBER(tc0100scn_triple_screen_w);
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
UINT32 screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void ninjaw_postload();
|
||||
|
||||
UINT32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void postload();
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs );
|
||||
void parse_control( );
|
||||
UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
class pooyan_state : public driver_device
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
class shaolins_state : public driver_device
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
class vastar_state : public driver_device
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
class wiping_state : public driver_device
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
WRITE8_MEMBER( namcos1_state::namcos1_3dcs_w )
|
||||
WRITE8_MEMBER( namcos1_state::_3dcs_w )
|
||||
{
|
||||
if (offset & 1) popmessage("LEFT");
|
||||
else popmessage("RIGHT");
|
||||
@ -475,12 +475,9 @@ WRITE8_MEMBER( namcos1_state::key_type3_w )
|
||||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_sound_bankswitch_w)
|
||||
WRITE8_MEMBER(namcos1_state::sound_bankswitch_w)
|
||||
{
|
||||
UINT8 *rom = memregion("audiocpu")->base() + 0xc000;
|
||||
|
||||
int bank = (data & 0x70) >> 4;
|
||||
membank("soundbank")->set_base(rom + 0x4000 * bank);
|
||||
membank("soundbank")->set_entry((data & 0x70) >> 4);
|
||||
}
|
||||
|
||||
|
||||
@ -539,12 +536,25 @@ WRITE_LINE_MEMBER(namcos1_state::subres_w)
|
||||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
void namcos1_state::machine_start()
|
||||
{
|
||||
membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base() + 0xc000, 0x4000);
|
||||
|
||||
save_item(NAME(m_dac0_value));
|
||||
save_item(NAME(m_dac1_value));
|
||||
save_item(NAME(m_dac0_gain));
|
||||
save_item(NAME(m_dac1_gain));
|
||||
save_item(NAME(m_key));
|
||||
save_item(NAME(m_mcu_patch_data));
|
||||
save_item(NAME(m_reset));
|
||||
}
|
||||
|
||||
void namcos1_state::machine_reset()
|
||||
{
|
||||
/* mcu patch data clear */
|
||||
m_mcu_patch_data = 0;
|
||||
|
||||
namcos1_init_DACs();
|
||||
init_DACs();
|
||||
memset(m_key, 0, sizeof(m_key));
|
||||
m_key_quotient = 0;
|
||||
m_key_reminder = 0;
|
||||
@ -566,7 +576,7 @@ void namcos1_state::machine_reset()
|
||||
*******************************************************************************/
|
||||
|
||||
/* mcu banked rom area select */
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
|
||||
WRITE8_MEMBER(namcos1_state::mcu_bankswitch_w)
|
||||
{
|
||||
int addr;
|
||||
|
||||
@ -590,8 +600,8 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
|
||||
|
||||
|
||||
|
||||
/* This point is very obscure, but i havent found any better way yet. */
|
||||
/* Works with all games so far. */
|
||||
/* This point is very obscure, but I haven't found any better way yet. */
|
||||
/* Works with all games so far. */
|
||||
|
||||
/* patch points of memory address */
|
||||
/* CPU0/1 bank[17f][1000] */
|
||||
@ -602,7 +612,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
|
||||
/* I found set $A6 only initialize in MCU */
|
||||
/* This patch kill write this data by MCU case $A6 to xx(clear) */
|
||||
|
||||
WRITE8_MEMBER(namcos1_state::namcos1_mcu_patch_w)
|
||||
WRITE8_MEMBER(namcos1_state::mcu_patch_w)
|
||||
{
|
||||
//logerror("mcu C000 write pc=%04x data=%02x\n",space.device().safe_pc(),data);
|
||||
if (m_mcu_patch_data == 0xa6) return;
|
||||
@ -617,7 +627,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_patch_w)
|
||||
* driver specific initialize routine *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
void namcos1_state::namcos1_driver_init()
|
||||
void namcos1_state::driver_init()
|
||||
{
|
||||
// bit 16 of the address is inverted for PRG7 (and bits 17,18 just not connected)
|
||||
for (int i = 0x380000;i < 0x400000;i++)
|
||||
@ -634,7 +644,7 @@ void namcos1_state::namcos1_driver_init()
|
||||
m_subcpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(namcos1_state::direct_handler_sub), this));
|
||||
|
||||
// kludge! see notes
|
||||
m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(namcos1_state::namcos1_mcu_patch_w), this));
|
||||
m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(namcos1_state::mcu_patch_w), this));
|
||||
|
||||
// these are overridden as needed in the specific DRIVER_INIT_MEMBERs
|
||||
m_key_id = 0;
|
||||
@ -652,7 +662,7 @@ void namcos1_state::namcos1_driver_init()
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,shadowld)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -660,7 +670,7 @@ DRIVER_INIT_MEMBER(namcos1_state,shadowld)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,dspirit)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
|
||||
@ -672,7 +682,7 @@ DRIVER_INIT_MEMBER(namcos1_state,dspirit)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,wldcourt)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
|
||||
@ -684,7 +694,7 @@ DRIVER_INIT_MEMBER(namcos1_state,wldcourt)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,blazer)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
|
||||
@ -696,7 +706,7 @@ DRIVER_INIT_MEMBER(namcos1_state,blazer)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,puzlclub)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
|
||||
@ -708,11 +718,14 @@ DRIVER_INIT_MEMBER(namcos1_state,puzlclub)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,pacmania)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
|
||||
m_key_id = 0x12;
|
||||
save_item(NAME(m_key_quotient));
|
||||
save_item(NAME(m_key_reminder));
|
||||
save_item(NAME(m_key_numerator_high_word));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -720,11 +733,14 @@ DRIVER_INIT_MEMBER(namcos1_state,pacmania)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,alice)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
|
||||
m_key_id = 0x25;
|
||||
save_item(NAME(m_key_quotient));
|
||||
save_item(NAME(m_key_reminder));
|
||||
save_item(NAME(m_key_numerator_high_word));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -732,11 +748,14 @@ DRIVER_INIT_MEMBER(namcos1_state,alice)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,galaga88)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
|
||||
m_key_id = 0x31;
|
||||
save_item(NAME(m_key_quotient));
|
||||
save_item(NAME(m_key_reminder));
|
||||
save_item(NAME(m_key_numerator_high_word));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -744,11 +763,14 @@ DRIVER_INIT_MEMBER(namcos1_state,galaga88)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,ws)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
|
||||
m_key_id = 0x07;
|
||||
save_item(NAME(m_key_quotient));
|
||||
save_item(NAME(m_key_reminder));
|
||||
save_item(NAME(m_key_numerator_high_word));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -756,11 +778,14 @@ DRIVER_INIT_MEMBER(namcos1_state,ws)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,bakutotu)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
|
||||
m_key_id = 0x22;
|
||||
save_item(NAME(m_key_quotient));
|
||||
save_item(NAME(m_key_reminder));
|
||||
save_item(NAME(m_key_numerator_high_word));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -768,7 +793,7 @@ DRIVER_INIT_MEMBER(namcos1_state,bakutotu)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,splatter)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -786,7 +811,7 @@ DRIVER_INIT_MEMBER(namcos1_state,splatter)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,rompers)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -804,7 +829,7 @@ DRIVER_INIT_MEMBER(namcos1_state,rompers)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,blastoff)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -822,7 +847,7 @@ DRIVER_INIT_MEMBER(namcos1_state,blastoff)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,ws89)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -840,7 +865,7 @@ DRIVER_INIT_MEMBER(namcos1_state,ws89)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,tankfrce)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -863,6 +888,8 @@ DRIVER_INIT_MEMBER(namcos1_state,tankfrc4)
|
||||
m_stored_input[1] = 0;
|
||||
|
||||
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
|
||||
save_item(NAME(m_input_count));
|
||||
save_item(NAME(m_stored_input));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -870,7 +897,7 @@ DRIVER_INIT_MEMBER(namcos1_state,tankfrc4)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,dangseed)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -888,7 +915,7 @@ DRIVER_INIT_MEMBER(namcos1_state,dangseed)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,pistoldm)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -906,7 +933,7 @@ DRIVER_INIT_MEMBER(namcos1_state,pistoldm)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,ws90)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -924,7 +951,7 @@ DRIVER_INIT_MEMBER(namcos1_state,ws90)
|
||||
*******************************************************************************/
|
||||
DRIVER_INIT_MEMBER(namcos1_state,soukobdx)
|
||||
{
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
|
||||
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
|
||||
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
|
||||
@ -975,8 +1002,9 @@ READ8_MEMBER( namcos1_state::quester_paddle_r )
|
||||
DRIVER_INIT_MEMBER(namcos1_state,quester)
|
||||
{
|
||||
m_strobe = 0;
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::quester_paddle_r), this));
|
||||
save_item(NAME(m_strobe));
|
||||
}
|
||||
|
||||
|
||||
@ -1065,8 +1093,11 @@ DRIVER_INIT_MEMBER(namcos1_state,berabohm)
|
||||
m_input_count = 0;
|
||||
m_strobe = 0;
|
||||
m_strobe_count = 0;
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::berabohm_buttons_r), this));
|
||||
save_item(NAME(m_input_count));
|
||||
save_item(NAME(m_strobe));
|
||||
save_item(NAME(m_strobe_count));
|
||||
}
|
||||
|
||||
|
||||
@ -1141,6 +1172,8 @@ DRIVER_INIT_MEMBER(namcos1_state,faceoff)
|
||||
m_stored_input[0] = 0;
|
||||
m_stored_input[1] = 0;
|
||||
|
||||
namcos1_driver_init();
|
||||
driver_init();
|
||||
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
|
||||
save_item(NAME(m_input_count));
|
||||
save_item(NAME(m_stored_input));
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -141,6 +141,8 @@ void namcos1_state::video_start()
|
||||
|
||||
memset(m_playfield_control, 0, sizeof(m_playfield_control));
|
||||
m_copy_sprites = 0;
|
||||
|
||||
save_item(NAME(m_copy_sprites));
|
||||
}
|
||||
|
||||
|
||||
@ -151,7 +153,7 @@ void namcos1_state::video_start()
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER( namcos1_state::namcos1_videoram_w )
|
||||
WRITE8_MEMBER( namcos1_state::videoram_w )
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
if (offset < 0x7000)
|
||||
@ -170,7 +172,7 @@ WRITE8_MEMBER( namcos1_state::namcos1_videoram_w )
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER( namcos1_state::namcos1_spriteram_w )
|
||||
WRITE8_MEMBER( namcos1_state::spriteram_w )
|
||||
{
|
||||
/* 0000-07ff work ram */
|
||||
/* 0800-0fff sprite ram */
|
||||
@ -280,7 +282,7 @@ void namcos1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
|
||||
|
||||
|
||||
|
||||
UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 namcos1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i, j, scrollx, scrolly, priority;
|
||||
rectangle new_clip = cliprect;
|
||||
@ -344,7 +346,7 @@ UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16
|
||||
}
|
||||
|
||||
|
||||
void namcos1_state::screen_eof_namcos1(screen_device &screen, bool state)
|
||||
void namcos1_state::screen_eof(screen_device &screen, bool state)
|
||||
{
|
||||
// rising edge
|
||||
if (state)
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
void ninjaw_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs )
|
||||
{
|
||||
UINT16 *spriteram = m_spriteram;
|
||||
int offs, data, tilenum, color, flipx, flipy;
|
||||
int x, y, priority, curx, cury;
|
||||
int code;
|
||||
@ -20,16 +19,16 @@ void ninjaw_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
|
||||
|
||||
for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
data = spriteram[offs + 2];
|
||||
data = m_spriteram[offs + 2];
|
||||
tilenum = data & 0x7fff;
|
||||
|
||||
if (!tilenum)
|
||||
continue;
|
||||
|
||||
data = spriteram[offs + 0];
|
||||
data = m_spriteram[offs + 0];
|
||||
x = (data - 32) & 0x3ff; /* aligns sprites on rock outcrops and sewer hole */
|
||||
|
||||
data = spriteram[offs + 1];
|
||||
data = m_spriteram[offs + 1];
|
||||
y = (data - 0) & 0x1ff;
|
||||
|
||||
/*
|
||||
@ -45,7 +44,7 @@ void ninjaw_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
|
||||
Bit&0x8000 is set on some sprites in later levels of Darius
|
||||
but is again unknown, and there is no obvious visual problem.
|
||||
*/
|
||||
data = spriteram[offs + 3];
|
||||
data = m_spriteram[offs + 3];
|
||||
flipx = (data & 0x1);
|
||||
flipy = (data & 0x2) >> 1;
|
||||
priority = (data & 0x4) >> 2; // 1 = low
|
||||
@ -118,6 +117,6 @@ UINT32 ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 ninjaw_state::screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, m_tc0100scn_1); }
|
||||
UINT32 ninjaw_state::screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, m_tc0100scn_2); }
|
||||
UINT32 ninjaw_state::screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, m_tc0100scn_3); }
|
||||
UINT32 ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, m_tc0100scn_1); }
|
||||
UINT32 ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, m_tc0100scn_2); }
|
||||
UINT32 ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, m_tc0100scn_3); }
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -40,16 +40,6 @@ void tc0110pcr_device::static_set_palette_tag(device_t &device, const char *tag)
|
||||
downcast<tc0110pcr_device &>(device).m_palette.set_tag(tag);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_config_complete - perform any
|
||||
// operations now that the configuration is
|
||||
// complete
|
||||
//-------------------------------------------------
|
||||
|
||||
void tc0110pcr_device::device_config_complete()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -60,6 +50,7 @@ void tc0110pcr_device::device_start()
|
||||
|
||||
save_pointer(NAME(m_ram), TC0110PCR_RAM_SIZE);
|
||||
save_item(NAME(m_type));
|
||||
save_item(NAME(m_addr));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(tc0110pcr_device::restore_colors), this));
|
||||
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_config_complete();
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Allard van der Bas
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:BSD-3-Clause
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Angelo Salese, Jonathan Edwards, Christopher Edwards,Robbbert
|
||||
/**************************************************************************************
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// license:???
|
||||
// license:GPL-2.0+
|
||||
// copyright-holders:Jonathan Edwards
|
||||
/****************************************************************************
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user