macrossp: use standard palette device ram and screen brightness instead

of changing the palette
This commit is contained in:
Dirk Best 2015-08-05 14:38:35 +02:00
parent cdeb045fbd
commit 70572b304e
2 changed files with 13 additions and 56 deletions

View File

@ -290,19 +290,6 @@ Notes:
/*** VARIOUS READ / WRITE HANDLERS *******************************************/
WRITE32_MEMBER(macrossp_state::paletteram32_macrossp_w)
{
int r,g,b;
COMBINE_DATA(&m_paletteram[offset]);
b = ((m_paletteram[offset] & 0x0000ff00) >>8);
g = ((m_paletteram[offset] & 0x00ff0000) >>16);
r = ((m_paletteram[offset] & 0xff000000) >>24);
m_palette->set_pen_color(offset, rgb_t(r,g,b));
}
READ32_MEMBER(macrossp_state::macrossp_soundstatus_r)
{
// logerror("%08x read soundstatus\n", space.device().safe_pc());
@ -335,44 +322,14 @@ READ16_MEMBER(macrossp_state::macrossp_soundcmd_r)
return soundlatch_word_r(space, offset, mem_mask);
}
void macrossp_state::update_colors( )
WRITE16_MEMBER(macrossp_state::palette_fade_w)
{
int i, r, g, b;
for (i = 0; i < 0x1000; i++)
// 0xff is written a few times on startup
if (data >> 8 != 0xff)
{
b = ((m_paletteram[i] & 0x0000ff00) >> 8);
g = ((m_paletteram[i] & 0x00ff0000) >> 16);
r = ((m_paletteram[i] & 0xff000000) >> 24);
if (m_fade_effect > b)
b = 0;
else
b -= m_fade_effect;
if (m_fade_effect > g)
g = 0;
else
g -= m_fade_effect;
if (m_fade_effect > r)
r = 0;
else
r -= m_fade_effect;
m_palette->set_pen_color(i, rgb_t(r, g, b));
}
}
WRITE32_MEMBER(macrossp_state::macrossp_palette_fade_w)
{
m_fade_effect = ((data & 0xff00) >> 8) - 0x28; //it writes two times, first with a -0x28 then with the proper data
// popmessage("%02x",fade_effect);
if (m_old_fade != m_fade_effect)
{
m_old_fade = m_fade_effect;
update_colors();
// range seems to be 40 (brightest) to 252 (darkest)
UINT8 fade = ((data >> 8) - 40) / 212.0 * 255.0;
m_screen->set_brightness(0xff - fade);
}
}
@ -398,13 +355,13 @@ static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32, macrossp_state )
AM_RANGE(0x91c200, 0x91c3ff) AM_RAM AM_SHARE("text_linezoom") /* W/O? */
AM_RANGE(0x91d000, 0x91d00b) AM_RAM AM_SHARE("text_videoregs") /* W/O? */
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(paletteram32_macrossp_w) AM_SHARE("paletteram")
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb00003) AM_READ_PORT("INPUTS")
AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r) AM_WRITENOP // irq related?
AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP // irq related?
AM_RANGE(0xb0000c, 0xb0000f) AM_READ_PORT("DSW") AM_WRITENOP
AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w) // macrossp palette fade
AM_RANGE(0xb00010, 0xb00013) AM_WRITE16(palette_fade_w, 0x0000ffff)
AM_RANGE(0xb00020, 0xb00023) AM_WRITENOP
AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w)
@ -604,8 +561,9 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", macrossp)
MCFG_PALETTE_ADD("palette", 0x1000)
MCFG_PALETTE_ADD("palette", 4096)
MCFG_PALETTE_FORMAT(RGBX)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

View File

@ -28,10 +28,10 @@ public:
m_text_linezoom(*this, "text_linezoom"),
m_text_videoregs(*this, "text_videoregs"),
m_paletteram(*this, "paletteram"),
m_mainram(*this, "mainram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_screen(*this, "screen"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette")
{
@ -51,7 +51,6 @@ public:
required_shared_ptr<UINT32> m_text_videoram;
required_shared_ptr<UINT32> m_text_linezoom;
required_shared_ptr<UINT32> m_text_videoregs;
required_shared_ptr<UINT32> m_paletteram;
required_shared_ptr<UINT32> m_mainram;
UINT32 * m_spriteram_old;
UINT32 * m_spriteram_old2;
@ -71,14 +70,14 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
DECLARE_WRITE32_MEMBER(paletteram32_macrossp_w);
DECLARE_READ32_MEMBER(macrossp_soundstatus_r);
DECLARE_WRITE32_MEMBER(macrossp_soundcmd_w);
DECLARE_READ16_MEMBER(macrossp_soundcmd_r);
DECLARE_WRITE32_MEMBER(macrossp_palette_fade_w);
DECLARE_WRITE16_MEMBER(palette_fade_w);
DECLARE_WRITE32_MEMBER(macrossp_speedup_w);
DECLARE_WRITE32_MEMBER(quizmoon_speedup_w);
DECLARE_WRITE32_MEMBER(macrossp_scra_videoram_w);