Redumped color proms in Time Limit [ShouTime, TServo2049, pablopelos, The Dumping Union]

This commit is contained in:
angelosa 2017-07-16 19:09:50 +02:00
parent 0b1375f218
commit b46ed73b2f
2 changed files with 22 additions and 10 deletions

View File

@ -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 )

View File

@ -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);
}