mrgame.c : fixed colours.

This commit is contained in:
Robbbert 2014-07-19 12:44:44 +00:00
parent 51d0087695
commit fc8eb400c0

View File

@ -18,13 +18,12 @@ How to set up the machine (motrshow, motrshowa, dakar):
- Press Left shift and Right shift together (game stops responding) - Press Left shift and Right shift together (game stops responding)
- Turn the Ram Protect Switch back on - Turn the Ram Protect Switch back on
- Press F3 or reboot - Press F3 or reboot
- The default settings have been loaded and you can insert coins - The default settings have been saved to nvram and you can insert coins
- However, the game cannot be played due to missing balls. - However, the game cannot be played due to missing balls.
ToDo: ToDo:
- Support for electronic volume control - Support for electronic volume control
- Audio rom banking - Audio rom banking
- Wrong colours
- Most sounds missing due to unemulated M114 chip - Most sounds missing due to unemulated M114 chip
- wcup90 is different hardware and there's no schematic - wcup90 is different hardware and there's no schematic
@ -84,6 +83,7 @@ private:
bool m_ack1; bool m_ack1;
bool m_ack2; bool m_ack2;
bool m_ackv; bool m_ackv;
bool m_flip;
UINT8 m_irq_state; UINT8 m_irq_state;
UINT8 m_row_data; UINT8 m_row_data;
UINT8 m_sound_data; UINT8 m_sound_data;
@ -264,6 +264,9 @@ WRITE8_MEMBER( mrgame_state::video_ctrl_w )
else else
if (offset == 4) if (offset == 4)
m_gfx_bank = (m_gfx_bank & 3) | (BIT(data, 0) << 2); m_gfx_bank = (m_gfx_bank & 3) | (BIT(data, 0) << 2);
else
if (offset == 6)
m_flip = BIT(data, 0);
} }
WRITE8_MEMBER( mrgame_state::ack1_w ) WRITE8_MEMBER( mrgame_state::ack1_w )
@ -307,6 +310,7 @@ void mrgame_state::machine_reset()
m_ack1 = 0; m_ack1 = 0;
m_ack2 = 0; m_ack2 = 0;
m_ackv = 0; m_ackv = 0;
m_flip = 0;
m_row_data = 0; m_row_data = 0;
} }
@ -357,8 +361,8 @@ static const gfx_layout spritelayout =
}; };
static GFXDECODE_START( mrgame ) static GFXDECODE_START( mrgame )
GFXDECODE_ENTRY( "chargen", 0, charlayout, 3, 1 ) GFXDECODE_ENTRY( "chargen", 0, charlayout, 0, 16 )
GFXDECODE_ENTRY( "chargen", 0, spritelayout, 3, 1 ) GFXDECODE_ENTRY( "chargen", 0, spritelayout, 0, 16 )
GFXDECODE_END GFXDECODE_END
// this gives bad colours although it looks right // this gives bad colours although it looks right
@ -396,6 +400,7 @@ PALETTE_INIT_MEMBER( mrgame_state, mrgame)
b = combine_2_weights(bweights, bit0, bit1); b = combine_2_weights(bweights, bit0, bit1);
palette.set_pen_color(i, rgb_t(r, g, b)); palette.set_pen_color(i, rgb_t(r, g, b));
palette.set_pen_color(i+32, rgb_t(r, g, b));
} }
} }
@ -420,7 +425,7 @@ UINT32 mrgame_state::screen_update_mrgame(screen_device &screen, bitmap_ind16 &b
m_gfxdecode->gfx(0)->opaque(*m_tile_bitmap, m_tile_bitmap->cliprect(), m_gfxdecode->gfx(0)->opaque(*m_tile_bitmap, m_tile_bitmap->cliprect(),
chr, chr,
col, col,
0,0, m_flip,0,
x*8,y*8); x*8,y*8);
} }
} }
@ -475,7 +480,7 @@ static MACHINE_CONFIG_START( mrgame, mrgame_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) // If you align with X on test screen some info is chopped off MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) // If you align with X on test screen some info is chopped off
MCFG_SCREEN_UPDATE_DRIVER(mrgame_state, screen_update_mrgame) MCFG_SCREEN_UPDATE_DRIVER(mrgame_state, screen_update_mrgame)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD_INIT_BLACK("palette", 32) MCFG_PALETTE_ADD("palette", 64)
MCFG_PALETTE_INIT_OWNER(mrgame_state, mrgame) MCFG_PALETTE_INIT_OWNER(mrgame_state, mrgame)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", mrgame) MCFG_GFXDECODE_ADD("gfxdecode", "palette", mrgame)