Previous 199869 Revisions Next

r40083 Thursday 30th July, 2015 at 12:18:46 UTC by Dirk Best
sstrangr: use standard 3-bit rbg palette
[src/mame/drivers]sstrangr.c

trunk/src/mame/drivers/sstrangr.c
r248594r248595
1313#include "sstrangr.lh"
1414
1515
16#define NUM_PENS    (8)
17
1816class sstrangr_state : public driver_device
1917{
2018public:
2119   sstrangr_state(const machine_config &mconfig, device_type type, const char *tag)
2220      : driver_device(mconfig, type, tag),
2321      m_maincpu(*this, "maincpu"),
22      m_palette(*this, "palette"),
2423      m_ram(*this, "ram") { }
2524
2625   required_device<cpu_device> m_maincpu;
27
26   optional_device<palette_device> m_palette;
2827   required_shared_ptr<UINT8> m_ram;
2928
3029   UINT8 m_flip_screen;
r248594r248595
8685   return 0;
8786}
8887
89
90static void get_pens(pen_t *pens)
91{
92   offs_t i;
93
94   for (i = 0; i < NUM_PENS; i++)
95   {
96      pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
97   }
98}
99
100
10188UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10289{
103   pen_t pens[NUM_PENS];
104   offs_t offs;
105   UINT8 *color_map_base;
90   UINT8 *color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
10691
107   get_pens(pens);
108
109   color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
110
111   for (offs = 0; offs < 0x2000; offs++)
92   for (offs_t offs = 0; offs < 0x2000; offs++)
11293   {
113      int i;
114
11594      UINT8 y = offs >> 5;
11695      UINT8 x = offs << 3;
11796
r248594r248595
12099      UINT8 data = m_ram[offs];
121100      UINT8 fore_color = color_map_base[color_address] & 0x07;
122101
123      for (i = 0; i < 8; i++)
102      for (int i = 0; i < 8; i++)
124103      {
125104         UINT8 color;
126105
r248594r248595
135114            data = data >> 1;
136115         }
137116
138         bitmap.pix32(y, x) = pens[color];
117         bitmap.pix32(y, x) = m_palette->pen_color(color);
139118
140119         x = x + 1;
141120      }
r248594r248595
282261   MCFG_SCREEN_MODIFY("screen")
283262   MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrngr2)
284263
264   MCFG_PALETTE_ADD_3BIT_RBG("palette")
285265MACHINE_CONFIG_END
286266
287267


Previous 199869 Revisions Next


© 1997-2024 The MAME Team