Previous 199869 Revisions Next

r33540 Wednesday 26th November, 2014 at 01:20:32 UTC by David Haywood
palette format seems non-standard (nw)
[src/mame/drivers]supduck.c

trunk/src/mame/drivers/supduck.c
r242051r242052
2626         m_text_videoram(*this, "textvideoram"),
2727         m_fore_videoram(*this, "forevideoram"),
2828         m_back_videoram(*this, "backvideoram"),
29         m_paletteram(*this, "paletteram"),
2930         m_gfxdecode(*this, "gfxdecode"),
3031         m_palette(*this, "palette")
3132   { }
r242051r242052
3940   required_shared_ptr<UINT16> m_text_videoram;
4041   required_shared_ptr<UINT16> m_fore_videoram;
4142   required_shared_ptr<UINT16> m_back_videoram;
43   required_shared_ptr<UINT16> m_paletteram;
4244
4345   required_device<gfxdecode_device> m_gfxdecode;
4446   required_device<palette_device> m_palette;
r242051r242052
5658
5759   DECLARE_WRITE16_MEMBER(supduck_4000_w);
5860   DECLARE_WRITE16_MEMBER(supduck_4002_w);
61   DECLARE_WRITE16_MEMBER(supduck_paletteram_w);
5962
6063   TILEMAP_MAPPER_MEMBER(supduk_tilemap_scan);
6164
r242051r242052
161164   if (data & 0x4000) code |= 0x100;
162165   if (data & 0x8000) code |= 0x200;
163166
164   int color = 0;
167   int color = (data & 0x0f00)>>8;
165168   int flags = 0;
166169
167170   SET_TILE_INFO_MEMBER(1, code, color, flags);
r242051r242052
177180   if (data & 0x4000) code |= 0x100;
178181   if (data & 0x8000) code |= 0x200;
179182
180   int color = 0;
183   int color = (data & 0x0f00)>>8;
181184   int flags = 0;
182185
183186   SET_TILE_INFO_MEMBER(2, code, color, flags);
r242051r242052
230233
231234}
232235
236WRITE16_MEMBER(supduck_state::supduck_paletteram_w)  // wrong
237{
238   int r, g, b;
239   data = COMBINE_DATA(&m_paletteram[offset]);
240
241   r = ((data >> 8) & 0x0f);
242   g = ((data >> 4 ) & 0x0f);
243   b = ((data >> 0 ) & 0x0f);
244
245   int bright = (data & 0x7000) >> 12;
246
247   bright += 1;
248
249   r = r * bright * 2;
250   g = g * bright * 2;
251   b = b * bright * 2;
252
253
254   m_palette->set_pen_color (offset, rgb_t(r, g, b));
255}
256
233257WRITE16_MEMBER(supduck_state::supduck_4002_w)
234258{
235259   data &= mem_mask;
r242051r242052
282306   AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(text_videoram_w) AM_SHARE("textvideoram")
283307   AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(back_videoram_w) AM_SHARE("backvideoram")
284308   AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(fore_videoram_w) AM_SHARE("forevideoram")
285   AM_RANGE(0xff8000, 0xff87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
309   AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(supduck_paletteram_w) AM_SHARE("paletteram")
286310   AM_RANGE(0xffc000, 0xffffff) AM_RAM /* working RAM */
287311ADDRESS_MAP_END
288312
r242051r242052
410434   32, 32,
411435   RGN_FRAC(1, 2),
412436   4,
413   { RGN_FRAC(1, 2) + 4, RGN_FRAC(1, 2) + 0, 4, 0 },
437   { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 },
414438   {
415439      0, 1, 2, 3, 8 + 0, 8 + 1, 8 + 2, 8 + 3,
416440      64 * 8 + 0, 64 * 8 + 1, 64 * 8 + 2, 64 * 8 + 3, 64 * 8 + 8 + 0, 64 * 8 + 8 + 1, 64 * 8 + 8 + 2, 64 * 8 + 8 + 3,
r242051r242052
430454
431455static GFXDECODE_START( supduck )
432456   GFXDECODE_ENTRY( "gfx1", 0, vramlayout_bionicc,    768, 64 )    /* colors 768-1023 */
433   GFXDECODE_ENTRY( "gfx2", 0, tile_layout,   0,  4 )    /* colors   0-  63 */
434   GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 256,  4 )    /* colors 256- 319 */
457   GFXDECODE_ENTRY( "gfx2", 0, tile_layout,   0,  16 )    /* colors   0-  63 */
458   GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 256,  16 )    /* colors 256- 319 */
435459   GFXDECODE_ENTRY( "gfx4", 0, spritelayout_bionicc,  512, 16 )    /* colors 512- 767 */
436460GFXDECODE_END
437461
r242051r242052
482506   MCFG_GFXDECODE_ADD("gfxdecode", "palette", supduck)
483507
484508   MCFG_PALETTE_ADD("palette", 0x800/2)
485   MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
509//   MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB)
486510
487511   /* sound hardware */
488512   MCFG_SPEAKER_STANDARD_MONO("mono")
r242051r242052
523547   ROM_LOAD( "14.ul32",   0x60000, 0x20000, CRC(97a7310b) SHA1(76b82bfea64b59890c0ba2e1688b7321507a4da7) )
524548
525549   ROM_REGION( 0x80000, "gfx4", 0 )
526   ROM_LOAD( "15.u1d",   0x00000, 0x20000, CRC(81bf1f27) SHA1(7a66630a2da85387904917d3c136880dffcb9649) )
527   ROM_LOAD( "16.u2d",   0x20000, 0x20000, CRC(9573d6ec) SHA1(9923be782bae47c49913d01554bcf3e5efb5395b) )
528   ROM_LOAD( "17.u1c",   0x60000, 0x20000, CRC(21ef14d4) SHA1(66e389aaa1186921a07da9a9a9eda88a1083ad42) )
529   ROM_LOAD( "18.u2c",   0x40000, 0x20000, CRC(33dd0674) SHA1(b95dfcc16d939bac77f338b8a8cada19328a1993) )
550   ROM_LOAD( "15.u1d",   0x60000, 0x20000, CRC(81bf1f27) SHA1(7a66630a2da85387904917d3c136880dffcb9649) )
551   ROM_LOAD( "16.u2d",   0x40000, 0x20000, CRC(9573d6ec) SHA1(9923be782bae47c49913d01554bcf3e5efb5395b) )
552   ROM_LOAD( "17.u1c",   0x20000, 0x20000, CRC(21ef14d4) SHA1(66e389aaa1186921a07da9a9a9eda88a1083ad42) )
553   ROM_LOAD( "18.u2c",   0x00000, 0x20000, CRC(33dd0674) SHA1(b95dfcc16d939bac77f338b8a8cada19328a1993) )
530554
531555   ROM_REGION( 0x80000, "oki", 0 )
532556   ROM_LOAD( "2.su12",   0x00000, 0x20000, CRC(745d42fb) SHA1(f9aee3ddbad3cc2f3a7002ee0d762eb041967e1e) ) // static sample data


Previous 199869 Revisions Next


© 1997-2024 The MAME Team