summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
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
commit78854bc8244fb7e5c391ad075fbdfb2a21a14eaa (patch)
tree22e715fef4ee9dcc9d4728a36832334586125458 /src
parent70bffd0c8553155ec8f9cb77a6af10eed6894a42 (diff)
few more (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/ddragon3.c5
-rw-r--r--src/mame/drivers/halleys.c20
-rw-r--r--src/mame/includes/ddragon3.h2
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;