mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Cleanups and version bump.
This commit is contained in:
parent
1c61e96910
commit
9c63c95043
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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];
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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) +
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -819,7 +819,7 @@ static NVRAM_HANDLER( naomi_eeproms )
|
||||
}
|
||||
else
|
||||
{
|
||||
// int a;
|
||||
// int a;
|
||||
|
||||
UINT32 length, size;
|
||||
UINT8 *dat;
|
||||
|
@ -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) )
|
||||
|
@ -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 )
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -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 )
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -9,4 +9,4 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
const char build_version[] = "0.130u1 ("__DATE__")";
|
||||
const char build_version[] = "0.130u2 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user