Cleanups and version bump.

This commit is contained in:
Aaron Giles 2009-03-28 22:10:55 +00:00
parent 1c61e96910
commit 9c63c95043
18 changed files with 156 additions and 156 deletions

View File

@ -2086,16 +2086,16 @@ UINT32 sh4_getsqremap(SH4 *sh4, UINT32 address)
{
int i;
UINT32 topaddr = address&0xfff00000;
for (i=0;i<64;i++)
{
UINT32 topcmp = sh4->sh4_tlb_address[i]&0xfff00000;
if (topcmp==topaddr)
return (address&0x000fffff) | ((sh4->sh4_tlb_data[i])&0xfff00000);
}
}
return address;
}
@ -2112,10 +2112,10 @@ INLINE void PREFM(SH4 *sh4, UINT32 n)
{
addr = addr & 0xFFFFFFE0;
dest = sh4_getsqremap(sh4, addr); // good enough for naomi-gd rom, probably not much else
}
else
{
{
sq = (addr & 0x20) >> 5;
dest = addr & 0x03FFFFE0;
if (sq == 0)
@ -2124,7 +2124,7 @@ INLINE void PREFM(SH4 *sh4, UINT32 n)
dest |= (sh4->m[QACR1] & 0x1C) << 24;
addr = addr & 0xFFFFFFE0;
}
for (a = 0;a < 4;a++)
{
// shouldn't be causing a memory read, should store sq writes in registers.
@ -3358,7 +3358,7 @@ static CPU_RESET( sh4 )
sh4->internal_irq_level = -1;
sh4->irln = 15;
sh4->sleep_mode = 0;
sh4->sh4_mmu_enabled = 0;
}
@ -3680,7 +3680,7 @@ READ64_HANDLER( sh4_tlb_r )
else
{
UINT8 i = (offs>>8)&63;
return sh4->sh4_tlb_address[i];
return sh4->sh4_tlb_address[i];
}
}
@ -3698,7 +3698,7 @@ WRITE64_HANDLER( sh4_tlb_w )
else
{
UINT8 i = (offs>>8)&63;
sh4->sh4_tlb_address[i] = data&0xffffffff;
sh4->sh4_tlb_address[i] = data&0xffffffff;
}
}

View File

@ -650,7 +650,7 @@ WRITE32_HANDLER( sh4_internal_w )
printf("If you're seeing this, but running something other than a Naomi GD-ROM game then chances are it won't work\n");
printf("The MMU emulation is a hack specific to that system\n");
sh4->sh4_mmu_enabled = 1;
// should be a different bit!
{
int i;
@ -659,7 +659,7 @@ WRITE32_HANDLER( sh4_internal_w )
sh4->sh4_tlb_address[i] = 0;
sh4->sh4_tlb_data[i] = 0;
}
}
}
else

View File

@ -91,7 +91,7 @@ typedef struct
int ioport4_pullup, ioport4_direction;
void (*ftcsr_read_callback)(UINT32 data);
/* This MMU simulation is good for the simple remap used on Naomi GD-ROM SQ access *ONLY* */
UINT32 sh4_tlb_address[64];

View File

@ -10,9 +10,9 @@
Mostly rewritten by couriersud in 2008
Games using ADSR: gyruss
A list with more games using ADSR can be found here:
http://mametesters.org/mantis/view.php?id=3043
http://mametesters.org/mantis/view.php?id=3043
TODO:
* The AY8930 has an extended mode which is currently

View File

@ -150,24 +150,24 @@ static void cubocd32_potgo_w(running_machine *machine, UINT16 data)
potgo_value = potgo_value & 0x5500;
potgo_value |= data & 0xaa00;
for (i = 0; i < 8; i += 2)
for (i = 0; i < 8; i += 2)
{
UINT16 dir = 0x0200 << i;
if (data & dir)
if (data & dir)
{
UINT16 d = 0x0100 << i;
potgo_value &= ~d;
potgo_value |= data & d;
}
}
for (i = 0; i < 2; i++)
for (i = 0; i < 2; i++)
{
UINT16 p5dir = 0x0200 << (i * 4); /* output enable P5 */
UINT16 p5dat = 0x0100 << (i * 4); /* data P5 */
if ((potgo_value & p5dir) && (potgo_value & p5dat))
cd32_shifter[i] = 8;
}
}
static void handle_cd32_joystick_cia(UINT8 pra, UINT8 dra)
@ -175,16 +175,16 @@ static void handle_cd32_joystick_cia(UINT8 pra, UINT8 dra)
static int oldstate[2];
int i;
for (i = 0; i < 2; i++)
for (i = 0; i < 2; i++)
{
UINT8 but = 0x40 << i;
UINT16 p5dir = 0x0200 << (i * 4); /* output enable P5 */
UINT16 p5dat = 0x0100 << (i * 4); /* data P5 */
if (!(potgo_value & p5dir) || !(potgo_value & p5dat))
if (!(potgo_value & p5dir) || !(potgo_value & p5dat))
{
if ((dra & but) && (pra & but) != oldstate[i])
if ((dra & but) && (pra & but) != oldstate[i])
{
if (!(pra & but))
if (!(pra & but))
{
cd32_shifter[i]--;
if (cd32_shifter[i] < 0)
@ -200,7 +200,7 @@ static UINT16 handle_joystick_potgor (running_machine *machine, UINT16 potgor)
{
int i;
for (i = 0; i < 2; i++)
for (i = 0; i < 2; i++)
{
UINT16 p9dir = 0x0800 << (i * 4); /* output enable P9 */
UINT16 p9dat = 0x0400 << (i * 4); /* data P9 */

View File

@ -122,20 +122,20 @@ static WRITE32_HANDLER( systemcontrol_w )
}
static READ32_HANDLER( hidctch3_pen1_r )
{
{
//320 x 240
int xpos = input_port_read(space->machine, "PEN_X_P1");
int ypos = input_port_read(space->machine, "PEN_Y_P1");
return xpos + (ypos*168*2);
}
static READ32_HANDLER( hidctch3_pen2_r )
{
{
//320 x 240
int xpos = input_port_read(space->machine, "PEN_X_P2");
int ypos = input_port_read(space->machine, "PEN_Y_P2");
return xpos + (ypos*168*2);
}
@ -273,7 +273,7 @@ static INPUT_PORTS_START( hidctch3 )
PORT_START("PEN_Y_P1")
PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,119) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(1)
PORT_START("PEN_X_P2")
PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,159) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(2)
@ -365,9 +365,9 @@ MACHINE_DRIVER_END
/*
/*
Iron Fortress
Iron Fortress
Eolith, 1998
This game runs on hardware that looks exactly like the Gradation 2D PCB
@ -1032,17 +1032,17 @@ static DRIVER_INIT( hidctch2 )
}
static DRIVER_INIT( hidctch3 )
{
{
memory_install_write32_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfc200000, 0xfc200003, 0, 0, SMH_NOP); // this generates pens vibration
// It is not clear why the first reads are needed too
memory_install_read32_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfce00000, 0xfce00003, 0, 0, hidctch3_pen1_r);
memory_install_read32_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfce80000, 0xfce80003, 0, 0, hidctch3_pen1_r);
memory_install_read32_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfcf00000, 0xfcf00003, 0, 0, hidctch3_pen2_r);
memory_install_read32_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfcf80000, 0xfcf80003, 0, 0, hidctch3_pen2_r);
init_eolith_speedup(machine);
}

View File

@ -134,7 +134,7 @@ static void galpani2_mcu_nmi(running_machine *machine)
break;
//case 0x02: //?, gp2se is the only one to use it, often!
// break;
// break;
case 0x0a: // Copy N bytes from RAM1 to RAM2
mcu_src = (memory_read_byte(srcspace, mcu_address + 2)<<8) +

View File

@ -406,7 +406,7 @@ static WRITE32_HANDLER( pal32_w )
static WRITE32_HANDLER( ctrl0_w )
{
if(ACCESSING_BITS_0_7)
if(ACCESSING_BITS_0_7)
{
model2_ctrlmode = data & 0x01;
eeprom_write_bit(data & 0x20);

View File

@ -297,7 +297,7 @@ static MACHINE_DRIVER_START( mnchmobl )
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
/* AY clock speeds confirmed to match known recording */
MDRV_SOUND_ADD("ay1", AY8910, XTAL_15MHz/4/2)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)

View File

@ -819,7 +819,7 @@ static NVRAM_HANDLER( naomi_eeproms )
}
else
{
// int a;
// int a;
UINT32 length, size;
UINT8 *dat;

View File

@ -166,8 +166,8 @@ ASIC 25 + ASIC 28
ASIC 27 (5585E):
performs a variety of calculations, quite complex, different per region, supplies region code
used by:
Knights of Valour 1 / Plus
Photo Y2k / Real and Fake
Knights of Valour 1 / Plus
Photo Y2k / Real and Fake
ASIC 27A(5585F/5585G):
arm7 cpu with 16kb internal rom (different per game / region) + optional external data rom
@ -899,8 +899,8 @@ static ADDRESS_MAP_START( svg_68k_mem, ADDRESS_SPACE_PROGRAM, 16)
AM_RANGE(0xc10000, 0xc1ffff) AM_READWRITE(z80_ram_r, z80_ram_w) /* Z80 Program */
AM_RANGE(0x500000, 0x51ffff) AM_READWRITE(svg_m68k_ram_r, svg_m68k_ram_w) /* ARM7 Shared RAM */
AM_RANGE(0x5c0000, 0x5c0001) AM_READWRITE(svg_68k_nmi_r, svg_68k_nmi_w) /* ARM7 FIQ */
AM_RANGE(0x5c0300, 0x5c0301) AM_READWRITE(arm7_latch_68k_r, svg_latch_68k_w) /* ARM7 Latch */
AM_RANGE(0x5c0000, 0x5c0001) AM_READWRITE(svg_68k_nmi_r, svg_68k_nmi_w) /* ARM7 FIQ */
AM_RANGE(0x5c0300, 0x5c0301) AM_READWRITE(arm7_latch_68k_r, svg_latch_68k_w) /* ARM7 Latch */
ADDRESS_MAP_END
static ADDRESS_MAP_START( svg_arm7_map, ADDRESS_SPACE_PROGRAM, 32 )
@ -2035,7 +2035,7 @@ static READ16_HANDLER( olds_prot_swap_r16 )
return pgm_mainram[0x178F4/2];
else //game
return pgm_mainram[0x178D8/2];
}
static DRIVER_INIT( olds )
@ -3626,7 +3626,7 @@ ROM_START( puzzli2 )
ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF )
/* not on this PCB */
ROM_REGION( 0x600000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
ROM_LOAD( "t0900.u9", 0x400000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) )
@ -4007,7 +4007,7 @@ ROM_START( killbldp )
/* CPU2 = Z80, romless, code uploaded by 68k */
ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
ROM_LOAD( "kbex_027a.rom", 0x000000, 0x04000, NO_DUMP )
ROM_LOAD( "kbex_027a.rom", 0x000000, 0x04000, NO_DUMP )
ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
ROM_LOAD( "kbex_v300x.u26", 0x000000, 0x200000, CRC(144388c8) )

View File

@ -84,7 +84,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
hidden options. (thanks bnathan)
2009-03-25 FP: fixed verified DSW and default settings for mjclub (thanks to
translation from manual by Yasu)
translation from manual by Yasu)
****************************************************************************/
@ -1161,7 +1161,7 @@ static WRITE8_HANDLER( mjvegasa_coin_counter_w )
static WRITE8_HANDLER( mjvegasa_12400_w )
{
// bits 0 & 1
// popmessage("UNK: %02x",data);
// popmessage("UNK: %02x",data);
}
static READ8_HANDLER( mjvegasa_12500_r )
{

View File

@ -2205,12 +2205,12 @@ static DRIVER_INIT( sys386f2 )
int i, j;
UINT16 *src = (UINT16 *)memory_region(machine, "gfx3");
UINT16 tmp[0x40 / 2], Offset;
// sprite_reorder() only
for(i = 0; i < memory_region_length(machine, "gfx3") / 0x40; i++)
{
memcpy(tmp, src, 0x40);
for(j = 0; j < 0x40 / 2; j++)
{
Offset = (j >> 1) | (j << 4 & 0x10);

View File

@ -669,7 +669,7 @@ void pgm_puzzli2_decrypt(running_machine *machine)
static const UINT8 theglad_tab[256] = {
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x35, 0x52, 0x44, 0x31, 0x30, 0x32, 0x31, 0x32, 0x30, 0x33,
0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x35, 0x52, 0x44, 0x31, 0x30, 0x32, 0x31, 0x32, 0x30, 0x33,
0xC4, 0xA3, 0x46, 0x78, 0x30, 0xB3, 0x8B, 0xD5, 0x2F, 0xC4, 0x44, 0xBF, 0xDB, 0x76, 0xDB, 0xEA,
0xB4, 0xEB, 0x95, 0x4D, 0x15, 0x21, 0x99, 0xA1, 0xD7, 0x8C, 0x40, 0x1D, 0x43, 0xF3, 0x9F, 0x71,
0x3D, 0x8C, 0x52, 0x01, 0xAF, 0x5B, 0x8B, 0x63, 0x34, 0xC8, 0x5C, 0x1B, 0x06, 0x7F, 0x41, 0x96,
@ -916,7 +916,7 @@ void pgm_oldss_decrypt(running_machine *machine)
for(i=0; i<rom_size/2; i++) {
unsigned short x = src[i];
if((i & 0x040480) != 0x000080 )
if((i & 0x040480) != 0x000080 )
x ^= 0x0001;
if((i & 0x004008) == 0x004008 )

View File

@ -4393,7 +4393,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
DRIVER( meltyb ) /* 2006.12 Melty Blood Act Cadenza ver.B */
DRIVER( takoron ) /* 2006.12.16 Noukone Puzzle Takoron */
DRIVER( meltyba ) /* 2007.03 Melty Blood Act Cadenza ver.B Syuuseiban(ver.B2) */
/* Releases below use flash/mask ROMs like older NAOMI titles, not GD-ROM as GD-ROM Hardware (Drives and Discs) were no longer being produced */
/* 2007.07 Shooting Love */

View File

@ -5,14 +5,14 @@
Driver by: Ernesto Corvi, Mariusz Wojcieszek, Aaron Giles
Done:
- palette
- bitplane data fetching
- support for up to 8 standard bitplanes
- HAM8 mode
- palette
- bitplane data fetching
- support for up to 8 standard bitplanes
- HAM8 mode
To do:
- sprites (current implementation is incomplete - see CD32 logo)
- incorrect hstart/hstop values in CD32 logo, lsrquiz & lsrquiz2
- sprites (current implementation is incomplete - see CD32 logo)
- incorrect hstart/hstop values in CD32 logo, lsrquiz & lsrquiz2
***************************************************************************/

View File

@ -54,18 +54,18 @@ typedef struct
float u, v, du, dv;
int texturemode;
int texturesizex, texturesizey, texturesizes, texturepf, texturepalette;
vert a,b,c,d;
} testsprites;
#if DEBUG_VERTICES
typedef struct
typedef struct
{
int x;
int y;
int endofstrip;
} testvertices;
} testvertices;
#endif
typedef struct {
@ -74,7 +74,7 @@ typedef struct {
#if DEBUG_VERTICES
testvertices showvertices[65536];
#endif
int testsprites_size, testsprites_toerase, testvertices_size;
UINT32 ispbase;
UINT32 fbwsof1;
@ -207,11 +207,11 @@ WRITE64_HANDLER( pvr_ta_w )
#if DEBUG_PVRTA
mame_printf_verbose("pvr_ta_w: TA soft reset\n");
#endif
state_ta.listtype_used=0;
state_ta.listtype_used=0;
}
if (dat & 2)
{
#if DEBUG_PVRTA
mame_printf_verbose("pvr_ta_w: Core Pipeline soft reset\n");
#endif
@ -278,7 +278,7 @@ WRITE64_HANDLER( pvr_ta_w )
if ((state_ta.grab[a].ispbase == pvrta_regs[PARAM_BASE]) && (state_ta.grab[a].valid == 1) && (state_ta.grab[a].busy == 0))
{
rectangle clip;
state_ta.grab[a].busy = 1;
state_ta.renderselect = a;
state_ta.start_render_received=1;
@ -286,17 +286,17 @@ WRITE64_HANDLER( pvr_ta_w )
state_ta.grab[a].fbwsof1=pvrta_regs[FB_W_SOF1];
state_ta.grab[a].fbwsof2=pvrta_regs[FB_W_SOF2];
clip.min_x = 0;
clip.max_x = 1023;
clip.min_y = 0;
clip.max_y = 1023;
clip.max_y = 1023;
// we've got a request to draw, so, draw to the fake fraembuffer!
testdrawscreen(space->machine,fakeframebuffer_bitmap,&clip);
testdrawscreen(space->machine,fakeframebuffer_bitmap,&clip);
timer_adjust_oneshot(endofrender_timer, ATTOTIME_IN_USEC(1000) , 0); // hack, make sure render takes some amount of time
break;
}
}
@ -387,15 +387,15 @@ void process_ta_fifo(running_machine* machine)
UINT32 a;
/* first byte in the buffer is the Parameter Control Word
pppp pppp gggg gggg oooo oooo oooo oooo
p = para control
g = group control
o = object control
*/
pppp pppp gggg gggg oooo oooo oooo oooo
p = para control
g = group control
o = object control
*/
// Para Control
state_ta.paracontrol=(tafifo_buff[0] >> 24) & 0xff;
// 0 end of list
@ -483,7 +483,7 @@ void process_ta_fifo(running_machine* machine)
a = 1 << 21;
break;
}
dc_sysctrl_regs[SB_ISTNRM] |= a;
dc_update_interrupt_status(machine);
state_ta.tafifo_listtype= -1; // no list being received
@ -622,28 +622,28 @@ void process_ta_fifo(running_machine* machine)
/* sprites are used for the Naomi Bios logo + text for example */
/* -- this is wildly inaccurate! */
testsprites* testsprite = &state_ta.grab[state_ta.grabsel].showsprites[state_ta.grab[state_ta.grabsel].testsprites_size];
/* Sprite Type 1 (for Sprite)
0x00 Parameter Control Word (see above)
0x04 A.X
0x08 A.Y
0x0C A.Z
0x10 B.X
0x14 B.Y
0x18 B.Z
0x1C C.X
0x20 C.Y
0x24 C.Z
0x28 D.X
0x2C D.Y
0x30 (ignored) D.Z is calculated from the Plane Equation
0x34 AU/AV (16-bits each)
0x38 BU/BV (16-bits each)
0x3C CU/CV (16-bits each)
note: DU/DV is calculated, not specified
*/
0x00 Parameter Control Word (see above)
0x04 A.X
0x08 A.Y
0x0C A.Z
0x10 B.X
0x14 B.Y
0x18 B.Z
0x1C C.X
0x20 C.Y
0x24 C.Z
0x28 D.X
0x2C D.Y
0x30 (ignored) D.Z is calculated from the Plane Equation
0x34 AU/AV (16-bits each)
0x38 BU/BV (16-bits each)
0x3C CU/CV (16-bits each)
note: DU/DV is calculated, not specified
*/
testsprite->a.x = u2f(tafifo_buff[0x04/4]);
testsprite->a.y = u2f(tafifo_buff[0x08/4]);
testsprite->a.z = u2f(tafifo_buff[0x0c/4]);
@ -653,7 +653,7 @@ void process_ta_fifo(running_machine* machine)
testsprite->c.x = u2f(tafifo_buff[0x1c/4]);
testsprite->c.y = u2f(tafifo_buff[0x20/4]);
testsprite->c.z = u2f(tafifo_buff[0x24/4]);
testsprite->d.x = u2f(tafifo_buff[0x28/4]);
testsprite->d.y = u2f(tafifo_buff[0x2c/4]);
testsprite->d.z = 0.0f;// calculated
@ -666,32 +666,32 @@ void process_ta_fifo(running_machine* machine)
testsprite->c.v = u2f( (tafifo_buff[0x3c/4]&0x0000ffff)<<16);
testsprite->d.u = 0.0f;// calculated
testsprite->d.v = 0.0f;// calculated
/*
printf("Sending a sprite with\n%f %f %f - %f %f\n %f %f %f - %f %f\n%f %f %f - %f %f\n%f %f %f - %f %f\n",
testsprite->a.x, testsprite->a.y, testsprite->a.z, testsprite->a.u, testsprite->a.v,
testsprite->b.x, testsprite->b.y, testsprite->b.z, testsprite->b.u, testsprite->b.v,
testsprite->c.x, testsprite->c.y, testsprite->c.z, testsprite->c.u, testsprite->c.v,
testsprite->d.x, testsprite->d.y, testsprite->d.z, testsprite->d.u, testsprite->d.v);
*/
printf("Sending a sprite with\n%f %f %f - %f %f\n %f %f %f - %f %f\n%f %f %f - %f %f\n%f %f %f - %f %f\n",
testsprite->a.x, testsprite->a.y, testsprite->a.z, testsprite->a.u, testsprite->a.v,
testsprite->b.x, testsprite->b.y, testsprite->b.z, testsprite->b.u, testsprite->b.v,
testsprite->c.x, testsprite->c.y, testsprite->c.z, testsprite->c.u, testsprite->c.v,
testsprite->d.x, testsprite->d.y, testsprite->d.z, testsprite->d.u, testsprite->d.v);
*/
/*
horizontal test mode
224.000000 224.000000 999.999939 - 0.000000 0.609375
232.000000 224.000000 999.999939 - 1.000000 0.609375
232.000000 232.000000 999.999939 - 1.000000 0.617188
224.000000 232.000000
should calculate 999.999939 - 0.000000 0.617188
horizontal test mode
224.000000 224.000000 999.999939 - 0.000000 0.609375
232.000000 224.000000 999.999939 - 1.000000 0.609375
232.000000 232.000000 999.999939 - 1.000000 0.617188
224.000000 232.000000
should calculate 999.999939 - 0.000000 0.617188
vertical test mode
8.000000 184.000000 999.999939 - 0.000000 0.617188
16.000000 184.000000 999.999939 - 0.000000 0.609375
16.000000 192.000000 999.999939 - 1.000000 0.609375
8.000000 192.000000
should calculate 999.999939 - 1.000000 0.617188
*/
vertical test mode
8.000000 184.000000 999.999939 - 0.000000 0.617188
16.000000 184.000000 999.999939 - 0.000000 0.609375
16.000000 192.000000 999.999939 - 1.000000 0.609375
8.000000 192.000000
should calculate 999.999939 - 1.000000 0.617188
*/
// old code, used for the test drawing
testsprite->positionx=testsprite->a.x;
testsprite->positiony=testsprite->a.y;
@ -708,7 +708,7 @@ void process_ta_fifo(running_machine* machine)
testsprite->texturesizes=state_ta.texturesizes;
testsprite->texturepf=state_ta.pixelformat;
testsprite->texturepalette=state_ta.paletteselector;
state_ta.grab[state_ta.grabsel].testsprites_size++;
}
}
@ -724,7 +724,7 @@ void process_ta_fifo(running_machine* machine)
{
/* add a vertex to our 'testverticies' list */
/* this is used for 3d stuff, ie most of the graphics (see guilty gear, confidential mission, maze of the kings etc.) */
/* -- this is also wildly inaccurate! */
/* -- this is also wildly inaccurate! */
testvertices* testvertex = &state_ta.grab[state_ta.grabsel].showvertices[state_ta.grab[state_ta.grabsel].testvertices_size];
testvertex->x=u2f(tafifo_buff[1]);
@ -883,11 +883,11 @@ INLINE UINT32 alpha_blend_r16_565(UINT32 d, UINT32 s, UINT8 level)
}
#endif
/// !!
/// !!
static void testdrawscreen(const running_machine *machine,bitmap_t *bitmap,const rectangle *cliprect)
{
{
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
int cs,x,y,dx,dy,xi,yi,a,rs,ns;
float iu,iv,u,v;
@ -906,7 +906,7 @@ static void testdrawscreen(const running_machine *machine,bitmap_t *bitmap,const
return;
//printf("drawtest!\n");
rs=state_ta.renderselect;
c=pvrta_regs[ISP_BACKGND_T];
c=memory_read_dword(space,0x05000000+((c&0xfffff8)>>1)+(3+3)*4);
@ -1244,7 +1244,7 @@ static TIMER_CALLBACK(vbout)
static TIMER_CALLBACK(endofrender)
{
UINT32 a;
//printf("endofrender\n");
// don't know if this is right.. but we get asserts otherwise, timing error?
@ -1254,15 +1254,15 @@ static TIMER_CALLBACK(endofrender)
if (state_ta.grab[a].busy == 1)
state_ta.grab[a].busy = 0;
state_ta.start_render_received = 0;
}
}
state_ta.start_render_received=0;
state_ta.renderselect= -1;
dc_sysctrl_regs[SB_ISTNRM] |= IST_EOR_TSP; // TSP end of render
dc_update_interrupt_status(machine);
timer_adjust_oneshot(endofrender_timer, attotime_never, 0);
}
@ -1291,10 +1291,10 @@ VIDEO_START(dc)
vbout_timer = timer_alloc(machine, vbout, 0);
timer_adjust_oneshot(vbout_timer, attotime_never, 0);
endofrender_timer = timer_alloc(machine, endofrender, 0);
timer_adjust_oneshot(endofrender_timer, attotime_never, 0);
fakeframebuffer_bitmap = auto_bitmap_alloc(1024,1024,BITMAP_FORMAT_RGB32);
@ -1303,27 +1303,27 @@ VIDEO_START(dc)
VIDEO_UPDATE(dc)
{
/******************
MAME note
*******************
The video update function should NOT be generating interrupts, setting timers or doing _anything_ the game might be able to detect
as it will be called at different times depending on frameskip etc.
Rendering should happen when the hardware requests it, to the framebuffer(s)
Everything else should depend on timers.
******************/
MAME note
*******************
// static int useframebuffer=1;
The video update function should NOT be generating interrupts, setting timers or doing _anything_ the game might be able to detect
as it will be called at different times depending on frameskip etc.
Rendering should happen when the hardware requests it, to the framebuffer(s)
Everything else should depend on timers.
******************/
// static int useframebuffer=1;
const rectangle *visarea = video_screen_get_visible_area(screen);
int y,x;
int y,x;
//printf("videoupdate\n");
#if DEBUG_PALRAM
debug_paletteram(screen->machine);
#endif
// copy our fake framebuffer bitmap (where things have been rendered) to the screen
for (y = visarea->min_y ; y < visarea->max_y ; y++)
{
@ -1334,7 +1334,7 @@ VIDEO_UPDATE(dc)
dst[0] = src[0];
}
}
return 0;
}

View File

@ -9,4 +9,4 @@
***************************************************************************/
const char build_version[] = "0.130u1 ("__DATE__")";
const char build_version[] = "0.130u2 ("__DATE__")";