mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
Fix nycaptor.c crash, fix m92.c properly [Alex Jackson]
This commit is contained in:
parent
3a7c823c08
commit
3c4cb26006
@ -343,7 +343,7 @@ static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16, m92_state )
|
||||
AM_RANGE(0x80000, 0x8ffff) AM_RAM_WRITE(m92_vram_w) AM_SHARE("vram_data")
|
||||
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
|
||||
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_SHARE("palette")
|
||||
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w)
|
||||
AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_SHARE("spritecontrol")
|
||||
AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w)
|
||||
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
|
||||
@ -356,7 +356,7 @@ static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16, m92_state )
|
||||
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m92_vram_w) AM_SHARE("vram_data")
|
||||
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
|
||||
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_SHARE("palette")
|
||||
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w)
|
||||
AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_SHARE("spritecontrol")
|
||||
AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w)
|
||||
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
|
||||
@ -997,39 +997,19 @@ static MACHINE_CONFIG_DERIVED( hook, m92 )
|
||||
MCFG_V25_CONFIG(hook_decryption_table)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( ppan, m92_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",V33,XTAL_18MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(m92_map)
|
||||
static MACHINE_CONFIG_DERIVED( ppan, m92 )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_IO_MAP(ppan_portmap)
|
||||
|
||||
/* no Sound CPU */
|
||||
MCFG_DEVICE_REMOVE("soundcpu")
|
||||
MCFG_DEVICE_REMOVE("ymsnd")
|
||||
MCFG_DEVICE_REMOVE("irem")
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(m92_state,m92)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m92_state, m92_scanline_interrupt, "screen", 0, 1)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") // not really...
|
||||
|
||||
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(80, 511-112, 8, 247) /* 320 x 240 */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan)
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", m92)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(m92_state,ppan)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -214,17 +214,6 @@ WRITE8_MEMBER(nycaptor_state::to_main_w)
|
||||
m_snd_data = data;
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_sharedram_r)
|
||||
{
|
||||
return m_sharedram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_sharedram_w)
|
||||
{
|
||||
m_sharedram[offset] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_b_r)
|
||||
{
|
||||
return 1;
|
||||
@ -334,7 +323,7 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_generic_control_w)
|
||||
static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd000, 0xd000) AM_READWRITE(nycaptor_mcu_r, nycaptor_mcu_w)
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
|
||||
AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, nycaptor_generic_control_w) /* bit 3 - memory bank at 0x8000-0xbfff */
|
||||
@ -349,23 +338,23 @@ static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xd805, 0xd805) AM_READ(nycaptor_mcu_status_r1)
|
||||
AM_RANGE(0xd806, 0xd806) AM_READNOP /* unknown ?sound? */
|
||||
AM_RANGE(0xd807, 0xd807) AM_READ(nycaptor_mcu_status_r2)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram")
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
|
||||
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
@ -373,7 +362,7 @@ static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r)
|
||||
AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) AM_WRITENOP/* ? gfx control ? */
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
@ -439,7 +428,7 @@ WRITE8_MEMBER(nycaptor_state::cyclshtg_generic_control_w)
|
||||
static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd000, 0xd000) AM_READWRITE(cyclshtg_mcu_r, cyclshtg_mcu_w)
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
|
||||
AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w)
|
||||
@ -453,23 +442,23 @@ static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
|
||||
AM_RANGE(0xd806, 0xd806) AM_READNOP
|
||||
AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram")
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
|
||||
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r)
|
||||
@ -477,7 +466,7 @@ static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_WRITENOP
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
READ8_MEMBER(nycaptor_state::unk_r)
|
||||
@ -488,7 +477,7 @@ READ8_MEMBER(nycaptor_state::unk_r)
|
||||
static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(cyclshtg_mcu_r) AM_WRITENOP
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
|
||||
AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w)
|
||||
@ -503,16 +492,16 @@ static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
|
||||
AM_RANGE(0xd806, 0xd806) AM_READNOP
|
||||
AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram")
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
|
||||
@ -520,14 +509,14 @@ static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state )
|
||||
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r1)
|
||||
AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w)
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram")
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w)
|
||||
AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r)
|
||||
AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r)
|
||||
AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
|
||||
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bronx_slave_io_map, AS_IO, 8, nycaptor_state )
|
||||
|
@ -39,6 +39,8 @@ public:
|
||||
required_shared_ptr<UINT16> m_spritecontrol;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_soundcpu;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
||||
UINT16 m_sound_status;
|
||||
UINT8 m_irq_vectorbase;
|
||||
@ -50,6 +52,7 @@ public:
|
||||
UINT16 m_pf_master_control[4];
|
||||
INT32 m_sprite_list;
|
||||
UINT8 m_palette_bank;
|
||||
dynamic_array<UINT16> m_paletteram;
|
||||
|
||||
DECLARE_READ16_MEMBER(m92_eeprom_r);
|
||||
DECLARE_WRITE16_MEMBER(m92_eeprom_w);
|
||||
@ -91,8 +94,7 @@ public:
|
||||
void m92_update_scroll_positions();
|
||||
void m92_draw_tiles(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect);
|
||||
void m92_sprite_interrupt();
|
||||
optional_device<okim6295_device> m_oki;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
};
|
||||
|
@ -8,6 +8,7 @@ public:
|
||||
m_videoram(*this, "videoram"),
|
||||
m_scrlram(*this, "scrlram"),
|
||||
m_sharedram(*this, "sharedram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
@ -19,14 +20,15 @@ public:
|
||||
required_shared_ptr<UINT8> m_videoram;
|
||||
required_shared_ptr<UINT8> m_scrlram;
|
||||
required_shared_ptr<UINT8> m_sharedram;
|
||||
|
||||
UINT8 * m_spriteram;
|
||||
required_shared_ptr<UINT8> m_spriteram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg_tilemap;
|
||||
int m_char_bank;
|
||||
int m_palette_bank;
|
||||
int m_gfxctrl;
|
||||
dynamic_array<UINT8> m_paletteram;
|
||||
dynamic_array<UINT8> m_paletteram_ext;
|
||||
UINT8 m_gfxctrl;
|
||||
UINT8 m_char_bank;
|
||||
UINT8 m_palette_bank;
|
||||
|
||||
/* mcu */
|
||||
UINT8 m_from_main;
|
||||
@ -63,8 +65,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(sub_cpu_halt_w);
|
||||
DECLARE_READ8_MEMBER(from_snd_r);
|
||||
DECLARE_WRITE8_MEMBER(to_main_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_sharedram_r);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_sharedram_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_b_r);
|
||||
DECLARE_READ8_MEMBER(nycaptor_by_r);
|
||||
DECLARE_READ8_MEMBER(nycaptor_bx_r);
|
||||
@ -93,15 +93,11 @@ public:
|
||||
DECLARE_READ8_MEMBER(nycaptor_mcu_r);
|
||||
DECLARE_READ8_MEMBER(nycaptor_mcu_status_r1);
|
||||
DECLARE_READ8_MEMBER(nycaptor_mcu_status_r2);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_spriteram_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_spriteram_r);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_videoram_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_videoram_r);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_palette_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_palette_r);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_gfxctrl_w);
|
||||
DECLARE_READ8_MEMBER(nycaptor_gfxctrl_r);
|
||||
DECLARE_READ8_MEMBER(nycaptor_scrlram_r);
|
||||
DECLARE_WRITE8_MEMBER(nycaptor_scrlram_w);
|
||||
DECLARE_WRITE8_MEMBER(unk_w);
|
||||
DECLARE_DRIVER_INIT(cyclshtg);
|
||||
|
@ -133,7 +133,7 @@ WRITE16_MEMBER(m92_state::m92_videocontrol_w)
|
||||
|
||||
READ16_MEMBER(m92_state::m92_paletteram_r)
|
||||
{
|
||||
return m_palette->basemem().read16(offset + 0x400 * m_palette_bank);
|
||||
return m_paletteram[offset + 0x400 * m_palette_bank];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(m92_state::m92_paletteram_w)
|
||||
@ -283,7 +283,8 @@ VIDEO_START_MEMBER(m92_state,m92)
|
||||
state_save_register_item_array(machine(), "layer", NULL, laynum, layer->control);
|
||||
}
|
||||
|
||||
m_generic_paletteram_16.allocate(0x1000/2);
|
||||
m_paletteram.resize(m_palette->entries());
|
||||
m_palette->basemem().set(m_paletteram, ENDIANNESS_LITTLE, 2);
|
||||
|
||||
memset(m_spriteram->live(),0,0x800);
|
||||
memset(m_spriteram->buffer(),0,0x800);
|
||||
@ -294,6 +295,7 @@ VIDEO_START_MEMBER(m92_state,m92)
|
||||
save_item(NAME(m_raster_irq_position));
|
||||
save_item(NAME(m_sprite_buffer_busy));
|
||||
save_item(NAME(m_palette_bank));
|
||||
save_item(NAME(m_paletteram));
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(m92_state,ppan)
|
||||
|
@ -245,7 +245,7 @@ WRITE8_MEMBER(mitchell_state::pang_paletteram_w)
|
||||
|
||||
READ8_MEMBER(mitchell_state::pang_paletteram_r)
|
||||
{
|
||||
return m_palette->basemem().read8(offset + (m_paletteram_bank ? 0x800 : 0x000));
|
||||
return m_paletteram[offset + (m_paletteram_bank ? 0x800 : 0x000)];
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,16 +25,6 @@ int nycaptor_state::nycaptor_spot( )
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_spriteram_w)
|
||||
{
|
||||
m_spriteram[offset] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_spriteram_r)
|
||||
{
|
||||
return m_spriteram[offset];
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info)
|
||||
{
|
||||
int pal = m_videoram[tile_index * 2 + 1] & 0x0f;
|
||||
@ -71,7 +61,6 @@ TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info)
|
||||
|
||||
void nycaptor_state::video_start()
|
||||
{
|
||||
m_spriteram = auto_alloc_array(machine(), UINT8, 160);
|
||||
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(nycaptor_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
|
||||
|
||||
m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0
|
||||
@ -79,11 +68,15 @@ void nycaptor_state::video_start()
|
||||
m_bg_tilemap->set_transmask(2, 0xfffc, 0x0003);//split 2
|
||||
m_bg_tilemap->set_transmask(3, 0xfff0, 0x000f);//split 3
|
||||
|
||||
m_generic_paletteram_8.allocate(0x200);
|
||||
m_generic_paletteram2_8.allocate(0x200);
|
||||
m_paletteram.resize(m_palette->entries());
|
||||
m_paletteram_ext.resize(m_palette->entries());
|
||||
m_palette->basemem().set(m_paletteram, ENDIANNESS_LITTLE, 1);
|
||||
m_palette->extmem().set(m_paletteram_ext, ENDIANNESS_LITTLE, 1);
|
||||
|
||||
m_bg_tilemap->set_scroll_cols(32);
|
||||
|
||||
save_pointer(NAME(m_spriteram), 160);
|
||||
save_item(NAME(m_paletteram));
|
||||
save_item(NAME(m_paletteram_ext));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_videoram_w)
|
||||
@ -92,18 +85,13 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_videoram_w)
|
||||
m_bg_tilemap->mark_tile_dirty(offset >> 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_videoram_r)
|
||||
{
|
||||
return m_videoram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_palette_w)
|
||||
{
|
||||
if (m_gametype == 2) //colt
|
||||
return;
|
||||
|
||||
if (offset & 0x100)
|
||||
m_palette->write(space, (offset & 0xff) + (m_palette_bank << 8), data);
|
||||
m_palette->write_ext(space, (offset & 0xff) + (m_palette_bank << 8), data);
|
||||
else
|
||||
m_palette->write(space, (offset & 0xff) + (m_palette_bank << 8), data);
|
||||
}
|
||||
@ -111,9 +99,9 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_palette_w)
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_palette_r)
|
||||
{
|
||||
if (offset & 0x100)
|
||||
return m_generic_paletteram2_8[(offset & 0xff) + (m_palette_bank << 8)];
|
||||
return m_paletteram_ext[(offset & 0xff) + (m_palette_bank << 8)];
|
||||
else
|
||||
return m_generic_paletteram_8 [(offset & 0xff) + (m_palette_bank << 8)];
|
||||
return m_paletteram[(offset & 0xff) + (m_palette_bank << 8)];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_gfxctrl_w)
|
||||
@ -138,11 +126,6 @@ READ8_MEMBER(nycaptor_state::nycaptor_gfxctrl_r)
|
||||
return m_gfxctrl;
|
||||
}
|
||||
|
||||
READ8_MEMBER(nycaptor_state::nycaptor_scrlram_r)
|
||||
{
|
||||
return m_scrlram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nycaptor_state::nycaptor_scrlram_w)
|
||||
{
|
||||
m_scrlram[offset] = data;
|
||||
|
Loading…
Reference in New Issue
Block a user