diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2014-03-02 18:34:23 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2014-03-02 18:34:23 +0000 |
commit | 78854bc8244fb7e5c391ad075fbdfb2a21a14eaa (patch) | |
tree | 22e715fef4ee9dcc9d4728a36832334586125458 /src | |
parent | 70bffd0c8553155ec8f9cb77a6af10eed6894a42 (diff) |
few more (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/ddragon3.c | 5 | ||||
-rw-r--r-- | src/mame/drivers/halleys.c | 20 | ||||
-rw-r--r-- | src/mame/includes/ddragon3.h | 2 |
3 files changed, 17 insertions, 10 deletions
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index ff586357dc1..029270e6ab9 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -265,7 +265,7 @@ WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w) READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r) { offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; - return m_generic_paletteram_16[offset]; + return m_paletteram[offset]; } WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) @@ -800,6 +800,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_state::ddragon3_scanline) void ddragon3_state::machine_start() { + m_paletteram.resize(m_palette->entries()); + m_palette->basemem().set(m_paletteram, ENDIANNESS_BIG, 2); + save_item(NAME(m_vreg)); save_item(NAME(m_bg_scrollx)); save_item(NAME(m_bg_scrolly)); diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c index e0a430e863f..ad3ab610379 100644 --- a/src/mame/drivers/halleys.c +++ b/src/mame/drivers/halleys.c @@ -245,6 +245,8 @@ public: emu_timer *m_blitter_reset_timer; offs_t m_collision_detection; int m_latch_delay; + dynamic_array<UINT8> m_paletteram; + DECLARE_WRITE8_MEMBER(bgtile_w); DECLARE_READ8_MEMBER(blitter_status_r); DECLARE_READ8_MEMBER(blitter_r); @@ -1125,6 +1127,8 @@ READ8_MEMBER(halleys_state::collision_id_r) PALETTE_INIT_MEMBER(halleys_state, halleys) { UINT32 d, r, g, b, i, j, count; + // allocate memory for internal palette + m_internal_palette = auto_alloc_array(machine(), UINT32, PALETTE_SIZE); UINT32 *pal_ptr = m_internal_palette; for (count=0; count<1024; count++) @@ -1184,7 +1188,7 @@ void halleys_state::halleys_decode_rgb(UINT32 *r, UINT32 *g, UINT32 *b, int addr int bit0, bit1, bit2, bit3, bit4; // the four 16x4-bit SN74S189 SRAM chips are assumed be the game's 32-byte palette RAM - sram_189 = m_generic_paletteram_8; + sram_189 = m_paletteram; // each of the three 32-byte 6330 PROM is wired to an RGB component output prom_6330 = memregion("proms")->base(); @@ -1220,7 +1224,7 @@ WRITE8_MEMBER(halleys_state::halleys_paletteram_IIRRGGBB_w) UINT32 d, r, g, b, i, j; UINT32 *pal_ptr = m_internal_palette; - m_generic_paletteram_8[offset] = data; + m_paletteram[offset] = data; d = (UINT32)data; j = d | BG_RGB; pal_ptr[offset] = j; @@ -1270,6 +1274,11 @@ void halleys_state::video_start() m_alpha_table[(src<<8)+dst] = c | BG_RGB; } + + m_paletteram.resize(m_palette->entries()); + m_palette->basemem().set(m_paletteram, ENDIANNESS_LITTLE, 1); + + m_bgcolor = m_palette->black_pen(); } @@ -1680,7 +1689,7 @@ static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8, halleys_state ) AM_RANGE(0xff9c, 0xff9c) AM_WRITE(firq_ack_w) AM_RANGE(0xff00, 0xffbf) AM_RAM AM_SHARE("io_ram") // I/O write fall-through - AM_RANGE(0xffc0, 0xffdf) AM_RAM_WRITE(halleys_paletteram_IIRRGGBB_w) AM_SHARE("paletteram") + AM_RANGE(0xffc0, 0xffdf) AM_RAM_WRITE(halleys_paletteram_IIRRGGBB_w) AM_RANGE(0xffe0, 0xffff) AM_READ(vector_r) ADDRESS_MAP_END @@ -1943,7 +1952,6 @@ void halleys_state::machine_reset() m_blitter_busy = 0; m_collision_count = 0; m_stars_enabled = 0; - m_bgcolor = m_palette->black_pen(); m_fftail = m_ffhead = m_ffcount = 0; memset(m_io_ram, 0xff, m_io_ram.bytes()); @@ -2183,10 +2191,6 @@ void halleys_state::init_common() m_alpha_table = auto_alloc_array(machine(), UINT32, 0x10000); - // allocate memory for internal palette - m_internal_palette = auto_alloc_array(machine(), UINT32, PALETTE_SIZE); - - // allocate memory for hardware collision list m_collision_list = auto_alloc_array(machine(), UINT8, MAX_SPRITES); diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h index 05c8b9ee40b..71c69724f87 100644 --- a/src/mame/includes/ddragon3.h +++ b/src/mame/includes/ddragon3.h @@ -30,7 +30,7 @@ public: required_shared_ptr<UINT16> m_fg_videoram; // required_shared_ptr<UINT16> m_spriteram; required_device<buffered_spriteram16_device> m_spriteram; - // UINT16 * m_paletteram; // currently this uses generic palette handling + dynamic_array<UINT16> m_paletteram; /* video-related */ tilemap_t *m_fg_tilemap; |