make both halves of the banked palette available for use, doesn't help with what i was looking at tho (nw)

This commit is contained in:
David Haywood 2015-12-12 23:34:57 +00:00
parent f3c419cf7b
commit eb7b99a72e
3 changed files with 21 additions and 13 deletions

View File

@ -149,7 +149,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xf018, 0xf01f) AM_WRITE(bgscroll_w)
AM_RANGE(0xf020, 0xf027) AM_WRITE(fgscroll_w)
AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_flytiger_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
@ -206,7 +206,7 @@ static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_z80_state )
AM_RANGE(0xe020, 0xe020) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xe030, 0xe037) AM_WRITE(bgscroll_w)
AM_RANGE(0xe040, 0xe047) AM_WRITE(fgscroll_w)
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_flytiger_w) AM_SHARE("flytiger_palram")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_flytiger_w)
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
ADDRESS_MAP_END
@ -944,7 +944,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_z80_ym2203_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", lastday)
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_ADD("palette", 1024*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_ym2203_state, pollux)
@ -1012,7 +1012,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_z80_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", flytiger)
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_ADD("palette", 1024*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, flytiger)

View File

@ -54,7 +54,6 @@ public:
dooyong_z80_state(const machine_config &mconfig, device_type type, const char *tag)
: dooyong_state(mconfig, type, tag),
m_txvideoram(*this, "txvideoram"),
m_paletteram_flytiger(*this, "flytiger_palram"),
m_spriteram(*this, "spriteram")
{ }
@ -83,7 +82,7 @@ public:
DECLARE_VIDEO_START(primella);
required_shared_ptr<UINT8> m_txvideoram;
optional_shared_ptr<UINT8> m_paletteram_flytiger;
UINT8* m_paletteram_flytiger;
UINT8 m_sprites_disabled;
UINT8 m_flytiger_palette_bank;
UINT8 m_flytiger_pri;

View File

@ -108,11 +108,14 @@ WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w)
coin_counter_w(machine(), 0, data & 0x80);
coin_counter_w(machine(), 1, data & 0x40);
/* bit 1 is used but unknown */
/* bit 1 is used but unknown - possibly palette banking */
m_flytiger_palette_bank = (data & 0x02)^2;
/* bit 2 is continuously toggled (unknown) */
/* bit 4 is used but unknown */
}
WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w)
{
@ -132,12 +135,12 @@ WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w)
WRITE8_MEMBER(dooyong_z80_state::paletteram_flytiger_w)
{
if (m_flytiger_palette_bank)
{
m_paletteram_flytiger[offset] = data;
UINT16 const value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8);
m_palette->set_pen_color(offset/2, pal5bit(value >> 10), pal5bit(value >> 5), pal5bit(value >> 0));
}
if (!m_flytiger_palette_bank) offset+= 0x800;
m_paletteram_flytiger[offset] = data;
UINT16 const value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8);
m_palette->set_pen_color(offset/2, pal5bit(value >> 10), pal5bit(value >> 5), pal5bit(value >> 0));
}
WRITE8_MEMBER(dooyong_z80_state::flytiger_ctrl_w)
@ -522,6 +525,9 @@ VIDEO_START_MEMBER(dooyong_z80_ym2203_state, pollux)
m_fg_gfx = 3;
m_tx_tilemap_mode = 0;
m_paletteram_flytiger = auto_alloc_array_clear(machine(), UINT8, 0x1000);
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
/* Create tilemaps */
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS,
32, 32, 32, 8);
@ -592,6 +598,9 @@ VIDEO_START_MEMBER(dooyong_z80_state, flytiger)
m_fg_gfx = 3;
m_tx_tilemap_mode = 0;
m_paletteram_flytiger = auto_alloc_array_clear(machine(), UINT8, 0x1000);
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
/* Create tilemaps */
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS,
32, 32, 32, 8);