trunk/src/mame/includes/cbuster.h
| r30738 | r30739 | |
| 23 | 23 | m_audiocpu(*this, "audiocpu"), |
| 24 | 24 | m_deco_tilegen1(*this, "tilegen1"), |
| 25 | 25 | m_deco_tilegen2(*this, "tilegen2"), |
| 26 | | m_palette(*this, "palette"), |
| 27 | | m_generic_paletteram_16(*this, "paletteram"), |
| 28 | | m_generic_paletteram2_16(*this, "paletteram2") |
| 26 | m_palette(*this, "palette") |
| 29 | 27 | { } |
| 30 | 28 | |
| 31 | 29 | /* memory pointers */ |
| r30738 | r30739 | |
| 49 | 47 | required_device<deco16ic_device> m_deco_tilegen1; |
| 50 | 48 | required_device<deco16ic_device> m_deco_tilegen2; |
| 51 | 49 | required_device<palette_device> m_palette; |
| 52 | | required_shared_ptr<UINT16> m_generic_paletteram_16; |
| 53 | | required_shared_ptr<UINT16> m_generic_paletteram2_16; |
| 54 | 50 | DECLARE_WRITE16_MEMBER(twocrude_control_w); |
| 55 | 51 | DECLARE_READ16_MEMBER(twocrude_control_r); |
| 56 | | DECLARE_WRITE16_MEMBER(twocrude_palette_24bit_rg_w); |
| 57 | | DECLARE_WRITE16_MEMBER(twocrude_palette_24bit_b_w); |
| 58 | 52 | DECLARE_DRIVER_INIT(twocrude); |
| 59 | 53 | virtual void machine_start(); |
| 60 | 54 | virtual void machine_reset(); |
| 61 | 55 | virtual void video_start(); |
| 62 | 56 | UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 63 | | void update_24bitcol( int offset ); |
| 64 | 57 | DECO16IC_BANK_CB_MEMBER(bank_callback); |
| 65 | 58 | }; |
trunk/src/mame/video/cbuster.c
| r30738 | r30739 | |
| 9 | 9 | |
| 10 | 10 | /******************************************************************************/ |
| 11 | 11 | |
| 12 | | /* maybe the game should just use generic palette handling, and have a darker palette by design... */ |
| 13 | 12 | |
| 14 | | void cbuster_state::update_24bitcol( int offset ) |
| 15 | | { |
| 16 | | UINT8 r, g, b; /* The highest palette value seems to be 0x8e */ |
| 17 | | |
| 18 | | r = (UINT8)((float)((m_generic_paletteram_16[offset] >> 0) & 0xff) * 1.75); |
| 19 | | g = (UINT8)((float)((m_generic_paletteram_16[offset] >> 8) & 0xff) * 1.75); |
| 20 | | b = (UINT8)((float)((m_generic_paletteram2_16[offset] >> 0) & 0xff) * 1.75); |
| 21 | | |
| 22 | | m_palette->set_pen_color(offset, rgb_t(r, g, b)); |
| 23 | | } |
| 24 | | |
| 25 | | WRITE16_MEMBER(cbuster_state::twocrude_palette_24bit_rg_w) |
| 26 | | { |
| 27 | | COMBINE_DATA(&m_generic_paletteram_16[offset]); |
| 28 | | update_24bitcol(offset); |
| 29 | | } |
| 30 | | |
| 31 | | WRITE16_MEMBER(cbuster_state::twocrude_palette_24bit_b_w) |
| 32 | | { |
| 33 | | COMBINE_DATA(&m_generic_paletteram2_16[offset]); |
| 34 | | update_24bitcol(offset); |
| 35 | | } |
| 36 | | |
| 37 | | |
| 38 | 13 | /******************************************************************************/ |
| 39 | 14 | |
| 40 | 15 | |
trunk/src/mame/drivers/cbuster.c
| r30738 | r30739 | |
| 126 | 126 | AM_RANGE(0x0b4000, 0x0b4001) AM_WRITENOP |
| 127 | 127 | AM_RANGE(0x0b5000, 0x0b500f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w) |
| 128 | 128 | AM_RANGE(0x0b6000, 0x0b600f) AM_DEVWRITE("tilegen2", deco16ic_device, pf_control_w) |
| 129 | | AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM_WRITE(twocrude_palette_24bit_rg_w) AM_SHARE("paletteram") |
| 130 | | AM_RANGE(0x0b9000, 0x0b9fff) AM_RAM_WRITE(twocrude_palette_24bit_b_w) AM_SHARE("paletteram2") |
| 129 | AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 130 | AM_RANGE(0x0b9000, 0x0b9fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") |
| 131 | 131 | AM_RANGE(0x0bc000, 0x0bc00f) AM_READWRITE(twocrude_control_r, twocrude_control_w) |
| 132 | 132 | ADDRESS_MAP_END |
| 133 | 133 | |
| 134 | |
| 135 | |
| 134 | 136 | /******************************************************************************/ |
| 135 | 137 | |
| 136 | 138 | static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cbuster_state ) |
| r30738 | r30739 | |
| 306 | 308 | |
| 307 | 309 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", cbuster) |
| 308 | 310 | MCFG_PALETTE_ADD("palette", 2048) |
| 311 | MCFG_PALETTE_FORMAT(XBGR) |
| 309 | 312 | |
| 313 | |
| 310 | 314 | MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0) |
| 311 | 315 | MCFG_DECO16IC_SPLIT(0) |
| 312 | 316 | MCFG_DECO16IC_WIDTH12(1) |