mirror of
https://github.com/holub/mame
synced 2025-04-24 01:11:11 +03:00
RGB15 to INDEXED16 conversion
This commit is contained in:
parent
bbecd3b886
commit
102519de1f
@ -14,79 +14,50 @@
|
||||
|
||||
static UINT32 *vram;
|
||||
|
||||
static VIDEO_START( ultrsprt )
|
||||
{
|
||||
}
|
||||
|
||||
static VIDEO_UPDATE( ultrsprt )
|
||||
{
|
||||
int i, j;
|
||||
UINT8 *ram = (UINT8*)vram;
|
||||
|
||||
if (ram != NULL)
|
||||
UINT8 *ram = (UINT8 *)vram;
|
||||
|
||||
for (j=0; j < 400; j++)
|
||||
{
|
||||
for (j=0; j < 400; j++)
|
||||
{
|
||||
UINT16 *bmp = BITMAP_ADDR16(bitmap, j, 0);
|
||||
int fb_index = j * 1024;
|
||||
UINT16 *dest = BITMAP_ADDR16(bitmap, j, 0);
|
||||
int fb_index = j * 1024;
|
||||
|
||||
for (i=0; i < 512; i++)
|
||||
{
|
||||
UINT8 p1 = ram[BYTE4_XOR_BE(fb_index + i + 512)];
|
||||
if (p1 == 0)
|
||||
{
|
||||
UINT8 p2 = ram[BYTE4_XOR_BE(fb_index + i)];
|
||||
bmp[i] = screen->machine->pens[0x000 + p2];
|
||||
}
|
||||
else
|
||||
{
|
||||
bmp[i] = screen->machine->pens[0x100 + p1];
|
||||
}
|
||||
}
|
||||
for (i=0; i < 512; i++)
|
||||
{
|
||||
UINT8 p1 = ram[BYTE4_XOR_BE(fb_index + i + 512)];
|
||||
if (p1 == 0)
|
||||
dest[i] = ram[BYTE4_XOR_BE(fb_index + i)];
|
||||
else
|
||||
dest[i] = 0x100 + p1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER(palette_w)
|
||||
static WRITE32_HANDLER( palette_w )
|
||||
{
|
||||
int r1, g1, b1, r2, g2, b2;
|
||||
|
||||
COMBINE_DATA(&paletteram32[offset]);
|
||||
data = paletteram32[offset];
|
||||
|
||||
b1 = ((data >> 16) & 0x1f);
|
||||
g1 = ((data >> 21) & 0x1f);
|
||||
r1 = ((data >> 26) & 0x1f);
|
||||
r1 = (r1 << 3) | (r1 >> 2);
|
||||
g1 = (g1 << 3) | (g1 >> 2);
|
||||
b1 = (b1 << 3) | (b1 >> 2);
|
||||
|
||||
b2 = ((data >> 0) & 0x1f);
|
||||
g2 = ((data >> 5) & 0x1f);
|
||||
r2 = ((data >> 10) & 0x1f);
|
||||
r2 = (r2 << 3) | (r2 >> 2);
|
||||
g2 = (g2 << 3) | (g2 >> 2);
|
||||
b2 = (b2 << 3) | (b2 >> 2);
|
||||
|
||||
palette_set_color(Machine, (offset*2)+0, MAKE_RGB(r1, g1, b1));
|
||||
palette_set_color(Machine, (offset*2)+1, MAKE_RGB(r2, g2, b2));
|
||||
palette_set_color(machine, (offset*2)+0, MAKE_RGB(pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)));
|
||||
palette_set_color(machine, (offset*2)+1, MAKE_RGB(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)));
|
||||
}
|
||||
|
||||
static READ32_HANDLER(eeprom_r)
|
||||
static READ32_HANDLER( eeprom_r )
|
||||
{
|
||||
UINT32 r = 0;
|
||||
|
||||
if (!(mem_mask & 0xff000000))
|
||||
{
|
||||
r |= (((EEPROM_read_bit()) << 1) | (readinputport(6) << 3)) << 24;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER(eeprom_w)
|
||||
static WRITE32_HANDLER( eeprom_w )
|
||||
{
|
||||
if (!(mem_mask & 0xff000000))
|
||||
{
|
||||
@ -96,97 +67,86 @@ static WRITE32_HANDLER(eeprom_w)
|
||||
}
|
||||
}
|
||||
|
||||
static READ32_HANDLER(control1_r)
|
||||
static READ32_HANDLER( control1_r )
|
||||
{
|
||||
return (readinputport(0) << 28) | ((readinputport(1) & 0xfff) << 16) | (readinputport(2) & 0xfff);
|
||||
}
|
||||
|
||||
static READ32_HANDLER(control2_r)
|
||||
static READ32_HANDLER( control2_r )
|
||||
{
|
||||
return (readinputport(3) << 28) | ((readinputport(4) & 0xfff) << 16) | (readinputport(5) & 0xfff);
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER(int_ack_w)
|
||||
static WRITE32_HANDLER( int_ack_w )
|
||||
{
|
||||
cpunum_set_input_line(Machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE);
|
||||
cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( ultrsprt_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000000, 0x0007ffff) AM_MIRROR(0x80000000) AM_RAM AM_BASE(&vram)
|
||||
AM_RANGE(0x70000000, 0x70000003) AM_MIRROR(0x80000000) AM_READWRITE(eeprom_r, eeprom_w)
|
||||
AM_RANGE(0x70000020, 0x70000023) AM_MIRROR(0x80000000) AM_READ(control1_r)
|
||||
AM_RANGE(0x70000040, 0x70000043) AM_MIRROR(0x80000000) AM_READ(control2_r)
|
||||
AM_RANGE(0x70000080, 0x70000087) AM_MIRROR(0x80000000) AM_WRITE(K056800_host_w)
|
||||
AM_RANGE(0x70000088, 0x7000008f) AM_MIRROR(0x80000000) AM_READ(K056800_host_r)
|
||||
AM_RANGE(0x700000e0, 0x700000e3) AM_MIRROR(0x80000000) AM_WRITE(int_ack_w)
|
||||
AM_RANGE(0x7f000000, 0x7f01ffff) AM_MIRROR(0x80000000) AM_RAM
|
||||
AM_RANGE(0x7f700000, 0x7f703fff) AM_MIRROR(0x80000000) AM_READWRITE(SMH_RAM, palette_w) AM_BASE(&paletteram32)
|
||||
AM_RANGE(0x7fa00000, 0x7fbfffff) AM_MIRROR(0x80000000) AM_ROM AM_SHARE(1)
|
||||
AM_RANGE(0x7fc00000, 0x7fdfffff) AM_MIRROR(0x80000000) AM_ROM AM_SHARE(1)
|
||||
AM_RANGE(0x7fe00000, 0x7fffffff) AM_MIRROR(0x80000000) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(1)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fffffff)
|
||||
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_BASE(&vram)
|
||||
AM_RANGE(0x70000000, 0x70000003) AM_READWRITE(eeprom_r, eeprom_w)
|
||||
AM_RANGE(0x70000020, 0x70000023) AM_READ(control1_r)
|
||||
AM_RANGE(0x70000040, 0x70000043) AM_READ(control2_r)
|
||||
AM_RANGE(0x70000080, 0x70000087) AM_WRITE(K056800_host_w)
|
||||
AM_RANGE(0x70000088, 0x7000008f) AM_READ(K056800_host_r)
|
||||
AM_RANGE(0x700000e0, 0x700000e3) AM_WRITE(int_ack_w)
|
||||
AM_RANGE(0x7f000000, 0x7f01ffff) AM_RAM
|
||||
AM_RANGE(0x7f700000, 0x7f703fff) AM_READWRITE(SMH_RAM, palette_w) AM_BASE(&paletteram32)
|
||||
AM_RANGE(0x7fa00000, 0x7fbfffff) AM_ROM AM_SHARE(1)
|
||||
AM_RANGE(0x7fc00000, 0x7fdfffff) AM_ROM AM_SHARE(1)
|
||||
AM_RANGE(0x7fe00000, 0x7fffffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(1)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
||||
static READ16_HANDLER(sound_r)
|
||||
static READ16_HANDLER( sound_r )
|
||||
{
|
||||
UINT16 r = 0;
|
||||
int reg = offset * 2;
|
||||
|
||||
if (ACCESSING_MSB16)
|
||||
{
|
||||
r |= K054539_0_r(machine, reg+0) << 8;
|
||||
}
|
||||
|
||||
if (ACCESSING_LSB16)
|
||||
{
|
||||
r |= K054539_0_r(machine, reg+1) << 0;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER(sound_w)
|
||||
static WRITE16_HANDLER( sound_w )
|
||||
{
|
||||
int reg = offset * 2;
|
||||
|
||||
if (ACCESSING_MSB16)
|
||||
{
|
||||
K054539_0_w(machine, reg+0, (data >> 8) & 0xff);
|
||||
}
|
||||
|
||||
if (ACCESSING_LSB16)
|
||||
{
|
||||
K054539_0_w(machine, reg+1, (data >> 0) & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
static READ16_HANDLER(K056800_68k_r)
|
||||
static READ16_HANDLER( K056800_68k_r )
|
||||
{
|
||||
UINT16 r = 0;
|
||||
|
||||
if (!(mem_mask & 0xff00))
|
||||
{
|
||||
r |= K056800_sound_r(machine, (offset*2)+0, 0xffff) << 8;
|
||||
}
|
||||
|
||||
if (!(mem_mask & 0x00ff))
|
||||
{
|
||||
r |= K056800_sound_r(machine, (offset*2)+1, 0xffff) << 0;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER(K056800_68k_w)
|
||||
static WRITE16_HANDLER( K056800_68k_w )
|
||||
{
|
||||
if (!(mem_mask & 0xff00))
|
||||
{
|
||||
K056800_sound_w(machine, (offset*2)+0, (data >> 8) & 0xff, 0xffff);
|
||||
}
|
||||
|
||||
if (!(mem_mask & 0x00ff))
|
||||
{
|
||||
K056800_sound_w(machine, (offset*2)+1, (data >> 0) & 0xff, 0xffff);
|
||||
}
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
@ -263,10 +223,6 @@ static INTERRUPT_GEN( ultrsprt_vblank )
|
||||
cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( ultrsprt )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( ultrsprt )
|
||||
/* basic machine hardware */
|
||||
@ -282,19 +238,17 @@ static MACHINE_DRIVER_START( ultrsprt )
|
||||
MDRV_INTERLEAVE(200)
|
||||
|
||||
MDRV_NVRAM_HANDLER(ultrsprt)
|
||||
MDRV_MACHINE_RESET(ultrsprt)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 400)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
|
||||
|
||||
MDRV_PALETTE_LENGTH(8192)
|
||||
|
||||
MDRV_VIDEO_START(ultrsprt)
|
||||
MDRV_VIDEO_UPDATE(ultrsprt)
|
||||
|
||||
/* sound hardware */
|
||||
@ -309,13 +263,9 @@ MACHINE_DRIVER_END
|
||||
static void sound_irq_callback(int irq)
|
||||
{
|
||||
if (irq == 0)
|
||||
{
|
||||
//cpunum_set_input_line(Machine, 1, INPUT_LINE_IRQ5, PULSE_LINE);
|
||||
}
|
||||
/*cpunum_set_input_line(Machine, 1, INPUT_LINE_IRQ5, PULSE_LINE)*/;
|
||||
else
|
||||
{
|
||||
cpunum_set_input_line(Machine, 1, INPUT_LINE_IRQ6, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
static DRIVER_INIT( ultrsprt )
|
||||
@ -327,19 +277,19 @@ static DRIVER_INIT( ultrsprt )
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
ROM_START(fiveside)
|
||||
ROM_START( fiveside )
|
||||
ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */
|
||||
ROM_LOAD32_BYTE("479uaa01.bin", 0x000003, 0x80000, CRC(1bc4893d) SHA1(2c9df38ecb7efa7b686221ee98fa3aad9a63e152))
|
||||
ROM_LOAD32_BYTE("479uaa02.bin", 0x000002, 0x80000, CRC(ae74a6d0) SHA1(6113c2eea1628b22737c7b87af0e673d94984e88))
|
||||
ROM_LOAD32_BYTE("479uaa03.bin", 0x000001, 0x80000, CRC(5c0b176f) SHA1(9560259bc081d4cfd72eb485c3fdcecf484ba7a8))
|
||||
ROM_LOAD32_BYTE("479uaa04.bin", 0x000000, 0x80000, CRC(01a3e4cb) SHA1(819df79909d57fa12481698ffdb32b00586131d8))
|
||||
ROM_LOAD32_BYTE("479uaa01.bin", 0x000003, 0x80000, CRC(1bc4893d) SHA1(2c9df38ecb7efa7b686221ee98fa3aad9a63e152))
|
||||
ROM_LOAD32_BYTE("479uaa02.bin", 0x000002, 0x80000, CRC(ae74a6d0) SHA1(6113c2eea1628b22737c7b87af0e673d94984e88))
|
||||
ROM_LOAD32_BYTE("479uaa03.bin", 0x000001, 0x80000, CRC(5c0b176f) SHA1(9560259bc081d4cfd72eb485c3fdcecf484ba7a8))
|
||||
ROM_LOAD32_BYTE("479uaa04.bin", 0x000000, 0x80000, CRC(01a3e4cb) SHA1(819df79909d57fa12481698ffdb32b00586131d8))
|
||||
|
||||
ROM_REGION(0x20000, REGION_CPU2, 0) /* M68K program */
|
||||
ROM_LOAD("479_a05.bin", 0x000000, 0x20000, CRC(251ae299) SHA1(5ffd74357e3c6ddb3a208c39a3b32b53fea90282))
|
||||
ROM_LOAD("479_a05.bin", 0x000000, 0x20000, CRC(251ae299) SHA1(5ffd74357e3c6ddb3a208c39a3b32b53fea90282))
|
||||
|
||||
ROM_REGION(0x100000, REGION_SOUND1, 0) /* Sound roms */
|
||||
ROM_LOAD("479_a06.bin", 0x000000, 0x80000, CRC(8d6ac8a2) SHA1(7c4b8bd47cddc766cbdb6a486acc9221be55b579))
|
||||
ROM_LOAD("479_a07.bin", 0x080000, 0x80000, CRC(75835df8) SHA1(105b95c16f2ce6902c2e4c9c2fd9f2f7a848c546))
|
||||
ROM_LOAD("479_a06.bin", 0x000000, 0x80000, CRC(8d6ac8a2) SHA1(7c4b8bd47cddc766cbdb6a486acc9221be55b579))
|
||||
ROM_LOAD("479_a07.bin", 0x080000, 0x80000, CRC(75835df8) SHA1(105b95c16f2ce6902c2e4c9c2fd9f2f7a848c546))
|
||||
ROM_END
|
||||
|
||||
GAME(1995, fiveside, 0, ultrsprt, ultrsprt, ultrsprt, ROT90, "Konami", "Five a Side Soccer (ver UAA)", GAME_IMPERFECT_SOUND)
|
||||
GAME(1995, fiveside, 0, ultrsprt, ultrsprt, ultrsprt, ROT90, "Konami", "Five a Side Soccer (ver UAA)", GAME_IMPERFECT_SOUND)
|
||||
|
Loading…
Reference in New Issue
Block a user