From b46ed73b2f01273964a01d3e7ce0bf50a7bd2c46 Mon Sep 17 00:00:00 2001 From: angelosa Date: Sun, 16 Jul 2017 19:09:50 +0200 Subject: Redumped color proms in Time Limit [ShouTime, TServo2049, pablopelos, The Dumping Union] --- src/mame/drivers/timelimt.cpp | 9 +++++---- src/mame/video/timelimt.cpp | 23 +++++++++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/mame/drivers/timelimt.cpp b/src/mame/drivers/timelimt.cpp index 782f4daba1f..75113dfa8ee 100644 --- a/src/mame/drivers/timelimt.cpp +++ b/src/mame/drivers/timelimt.cpp @@ -10,6 +10,7 @@ driver by Ernesto Corvi Notes: - Sprite colors are wrong (missing colortable?) - driver should probably be merged with suprridr.cpp and thepit.cpp +- unused color bank for tilemaps? (colors 0x10-0x1f & 0x30-0x3f) ***************************************************************************/ @@ -290,14 +291,14 @@ ROM_START( timelimt ) ROM_LOAD( "tl12", 0x1000, 0x1000, CRC(ce960389) SHA1(57ee52cfa1b5a3832b362b38c8b7aa411dfc782b) ) ROM_REGION( 0x6000, "sprites", 0 ) /* sprites */ - ROM_LOAD( "tl3", 0x0000, 0x2000, CRC(01a9fd95) SHA1(cd1078700c97a3539c9d9447c55efbd27540a1b3) ) + ROM_LOAD( "tl3", 0x4000, 0x2000, CRC(01a9fd95) SHA1(cd1078700c97a3539c9d9447c55efbd27540a1b3) ) ROM_LOAD( "tl2", 0x2000, 0x2000, CRC(4693b849) SHA1(fbebedde53599fb1eaedc648bd704b321ab096b5) ) - ROM_LOAD( "tl1", 0x4000, 0x2000, CRC(c4007caf) SHA1(ae05af3319545d5ca98a046bfc100138a5a3ed96) ) + ROM_LOAD( "tl1", 0x0000, 0x2000, CRC(c4007caf) SHA1(ae05af3319545d5ca98a046bfc100138a5a3ed96) ) ROM_REGION( 0x0060, "proms", 0 ) ROM_LOAD( "clr.35", 0x0000, 0x0020, CRC(9c9e6073) SHA1(98496175bf19a8cdb0018705bc1a2193b8a782e1) ) - ROM_LOAD( "clr.48", 0x0020, 0x0020, BAD_DUMP CRC(a0bcac59) SHA1(e5832831b21981363509b79d89766757bd9273b0) ) /* FIXED BITS (xxxxxx1x) */ - ROM_LOAD( "clr.57", 0x0040, 0x0020, NO_DUMP ) /* missing sprite color prom? */ + ROM_LOAD( "clr.48", 0x0020, 0x0020, CRC(a0bcac59) SHA1(e5832831b21981363509b79d89766757bd9273b0) ) /* FIXED BITS (xxxxxx1x) */ + ROM_LOAD( "clr.57", 0x0040, 0x0020, CRC(3a9f5394) SHA1(0b501f81ce1df722cf7ef982c03e0be337bfe9ee) ) ROM_END ROM_START( progress ) diff --git a/src/mame/video/timelimt.cpp b/src/mame/video/timelimt.cpp index 205a2362096..1c18a1f00ff 100644 --- a/src/mame/video/timelimt.cpp +++ b/src/mame/video/timelimt.cpp @@ -2,13 +2,14 @@ // copyright-holders:Ernesto Corvi #include "emu.h" #include "includes/timelimt.h" +#include "video/resnet.h" /*************************************************************************** Convert the color PROMs into a more useable format. - Time Limit has two 32 bytes palette PROM, connected to the RGB output this + Time Limit has three 32 bytes palette PROM, connected to the RGB output this way: bit 7 -- 220 ohm resistor -- BLUE @@ -22,10 +23,20 @@ ***************************************************************************/ -PALETTE_INIT_MEMBER(timelimt_state, timelimt){ +PALETTE_INIT_MEMBER(timelimt_state, timelimt) +{ const uint8_t *color_prom = memregion("proms")->base(); int i; + static const int resistances_rg[3] = { 1000, 470, 220 }; + static const int resistances_b [2] = { 470, 220 }; + double weights_r[3], weights_g[3], weights_b[2]; + + compute_resistor_weights(0, 255, -1.0, + 3, resistances_rg, weights_r, 0, 0, + 3, resistances_rg, weights_g, 0, 0, + 2, resistances_b, weights_b, 0, 0); + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -34,16 +45,16 @@ PALETTE_INIT_MEMBER(timelimt_state, timelimt){ bit0 = (*color_prom >> 0) & 0x01; bit1 = (*color_prom >> 1) & 0x01; bit2 = (*color_prom >> 2) & 0x01; - r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; + r = combine_3_weights(weights_r, bit0, bit1, bit2); /* green component */ bit0 = (*color_prom >> 3) & 0x01; bit1 = (*color_prom >> 4) & 0x01; bit2 = (*color_prom >> 5) & 0x01; - g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; + g = combine_3_weights(weights_g, bit0, bit1, bit2); /* blue component */ bit0 = (*color_prom >> 6) & 0x01; bit1 = (*color_prom >> 7) & 0x01; - b = 0x4f * bit0 + 0xa8 * bit1; + b = combine_2_weights(weights_b, bit0, bit1); palette.set_pen_color(i,rgb_t(r,g,b)); color_prom++; @@ -128,7 +139,7 @@ void timelimt_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, code, - attr & 7, + attr & 3, // was & 7, wrong for 3bpp and 32 colors flipx,flipy, sx,sy,0); } -- cgit v1.2.3