mirror of
https://github.com/holub/mame
synced 2025-04-29 11:30:28 +03:00
midway/balsente.cpp: Use palette format utilities, and reduced runtime tag lookups. (#11833)
This commit is contained in:
parent
21cf0bf138
commit
63931328a2
@ -235,7 +235,7 @@ void balsente_state::cpu1_base_map(address_map &map)
|
|||||||
{
|
{
|
||||||
map(0x0000, 0x07ff).ram().share("spriteram");
|
map(0x0000, 0x07ff).ram().share("spriteram");
|
||||||
map(0x0800, 0x7fff).ram().w(FUNC(balsente_state::videoram_w)).share("videoram");
|
map(0x0800, 0x7fff).ram().w(FUNC(balsente_state::videoram_w)).share("videoram");
|
||||||
map(0x8000, 0x8fff).ram().w(FUNC(balsente_state::paletteram_w)).share("paletteram");
|
map(0x8000, 0x8fff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
|
||||||
map(0x9000, 0x9007).w(FUNC(balsente_state::adc_select_w));
|
map(0x9000, 0x9007).w(FUNC(balsente_state::adc_select_w));
|
||||||
map(0x9400, 0x9401).r(FUNC(balsente_state::adc_data_r));
|
map(0x9400, 0x9401).r(FUNC(balsente_state::adc_data_r));
|
||||||
map(0x9800, 0x981f).mirror(0x0060).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); }));
|
map(0x9800, 0x981f).mirror(0x0060).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); }));
|
||||||
@ -1391,7 +1391,7 @@ void balsente_state::balsente(machine_config &config)
|
|||||||
m_screen->set_screen_update(FUNC(balsente_state::screen_update_balsente));
|
m_screen->set_screen_update(FUNC(balsente_state::screen_update_balsente));
|
||||||
m_screen->set_palette(m_palette);
|
m_screen->set_palette(m_palette);
|
||||||
|
|
||||||
PALETTE(config, m_palette).set_entries(1024);
|
PALETTE(config, m_palette).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<4,4,4, 24,16,8>, 1024);
|
||||||
|
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
@ -2879,8 +2879,8 @@ void balsente_state::expand_roms(uint8_t cd_rom_mask)
|
|||||||
/* load CD bank data from 0x10000-0x1e000 */
|
/* load CD bank data from 0x10000-0x1e000 */
|
||||||
/* load EF from 0x1e000-0x20000 */
|
/* load EF from 0x1e000-0x20000 */
|
||||||
|
|
||||||
uint8_t *rom = memregion("maincpu")->base();
|
uint8_t *rom = m_mainrom->base();
|
||||||
uint32_t len = memregion("maincpu")->bytes();
|
uint32_t len = m_mainrom->bytes();
|
||||||
|
|
||||||
int numbanks = (len > 0x20000) ? 16 : 8;
|
int numbanks = (len > 0x20000) ? 16 : 8;
|
||||||
uint32_t bxor = (cd_rom_mask & SWAP_HALVES) ? 0x02000 : 0;
|
uint32_t bxor = (cd_rom_mask & SWAP_HALVES) ? 0x02000 : 0;
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
, m_outlatch(*this, "outlatch")
|
, m_outlatch(*this, "outlatch")
|
||||||
, m_novram(*this, "nov%u", 0U)
|
, m_novram(*this, "nov%u", 0U)
|
||||||
, m_acia(*this, "acia")
|
, m_acia(*this, "acia")
|
||||||
, m_generic_paletteram_8(*this, "paletteram")
|
, m_mainrom(*this, "maincpu")
|
||||||
, m_bankab(*this, "bankab")
|
, m_bankab(*this, "bankab")
|
||||||
, m_bankcd(*this, "bankcd")
|
, m_bankcd(*this, "bankcd")
|
||||||
, m_bankef(*this, "bankef")
|
, m_bankef(*this, "bankef")
|
||||||
@ -128,7 +128,6 @@ private:
|
|||||||
|
|
||||||
void videoram_w(offs_t offset, uint8_t data);
|
void videoram_w(offs_t offset, uint8_t data);
|
||||||
void palette_select_w(uint8_t data);
|
void palette_select_w(uint8_t data);
|
||||||
void paletteram_w(offs_t offset, uint8_t data);
|
|
||||||
void shrike_sprite_select_w(uint8_t data);
|
void shrike_sprite_select_w(uint8_t data);
|
||||||
|
|
||||||
uint32_t screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
uint32_t screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
@ -202,7 +201,8 @@ private:
|
|||||||
optional_device<ls259_device> m_outlatch;
|
optional_device<ls259_device> m_outlatch;
|
||||||
optional_device_array<x2212_device, 2> m_novram;
|
optional_device_array<x2212_device, 2> m_novram;
|
||||||
optional_device<acia6850_device> m_acia;
|
optional_device<acia6850_device> m_acia;
|
||||||
optional_shared_ptr<uint8_t> m_generic_paletteram_8;
|
|
||||||
|
required_memory_region m_mainrom;
|
||||||
|
|
||||||
required_memory_bank m_bankab;
|
required_memory_bank m_bankab;
|
||||||
required_memory_bank m_bankcd;
|
required_memory_bank m_bankcd;
|
||||||
|
@ -177,7 +177,7 @@ void balsente_state::rombank2_select_w(uint8_t data)
|
|||||||
int bank = data & 7;
|
int bank = data & 7;
|
||||||
|
|
||||||
/* top bit controls which half of the ROMs to use (Name that Tune only) */
|
/* top bit controls which half of the ROMs to use (Name that Tune only) */
|
||||||
if (memregion("maincpu")->bytes() > 0x20000) bank |= (data >> 4) & 8;
|
if (m_mainrom->bytes() > 0x20000) bank |= (data >> 4) & 8;
|
||||||
|
|
||||||
/* when they set the AB bank, it appears as though the CD bank is reset */
|
/* when they set the AB bank, it appears as though the CD bank is reset */
|
||||||
if (data & 0x20)
|
if (data & 0x20)
|
||||||
|
@ -75,27 +75,6 @@ void balsente_state::palette_select_w(uint8_t data)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* Palette RAM write
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
void balsente_state::paletteram_w(offs_t offset, uint8_t data)
|
|
||||||
{
|
|
||||||
int r, g, b;
|
|
||||||
|
|
||||||
m_generic_paletteram_8[offset] = data & 0x0f;
|
|
||||||
|
|
||||||
r = m_generic_paletteram_8[(offset & ~3) + 0];
|
|
||||||
g = m_generic_paletteram_8[(offset & ~3) + 1];
|
|
||||||
b = m_generic_paletteram_8[(offset & ~3) + 2];
|
|
||||||
|
|
||||||
m_palette->set_pen_color(offset / 4, pal4bit(r), pal4bit(g), pal4bit(b));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Sprite banking
|
* Sprite banking
|
||||||
|
Loading…
Reference in New Issue
Block a user