mirror of
https://github.com/holub/mame
synced 2025-05-18 11:39:29 +03:00
Implemented bare bones timing for the blitter status and fixed vertical half line counter
This commit is contained in:
parent
ff57271d13
commit
021eef3ca4
@ -371,6 +371,9 @@ static MACHINE_RESET( cojag )
|
|||||||
/* halt the CPUs */
|
/* halt the CPUs */
|
||||||
jaguargpu_ctrl_w(devtag_get_device(machine, "gpu"), G_CTRL, 0, 0xffffffff);
|
jaguargpu_ctrl_w(devtag_get_device(machine, "gpu"), G_CTRL, 0, 0xffffffff);
|
||||||
jaguardsp_ctrl_w(devtag_get_device(machine, "audiocpu"), D_CTRL, 0, 0xffffffff);
|
jaguardsp_ctrl_w(devtag_get_device(machine, "audiocpu"), D_CTRL, 0, 0xffffffff);
|
||||||
|
|
||||||
|
/* set blitter idle flag */
|
||||||
|
blitter_status = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ extern UINT32 *jaguar_gpu_clut;
|
|||||||
extern UINT32 *jaguar_dsp_ram;
|
extern UINT32 *jaguar_dsp_ram;
|
||||||
extern UINT32 *jaguar_wave_rom;
|
extern UINT32 *jaguar_wave_rom;
|
||||||
|
|
||||||
|
extern UINT8 blitter_status;
|
||||||
|
|
||||||
/*----------- defined in audio/jaguar.c -----------*/
|
/*----------- defined in audio/jaguar.c -----------*/
|
||||||
|
|
||||||
|
@ -200,6 +200,7 @@ static bitmap_t *screen_bitmap;
|
|||||||
|
|
||||||
static pen_t *pen_table;
|
static pen_t *pen_table;
|
||||||
|
|
||||||
|
UINT8 blitter_status;
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -602,13 +603,17 @@ if (++reps % 100 == 99)
|
|||||||
profiler_mark_end();
|
profiler_mark_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static TIMER_CALLBACK( blitter_done )
|
||||||
|
{
|
||||||
|
blitter_status = 1;
|
||||||
|
}
|
||||||
|
|
||||||
READ32_HANDLER( jaguar_blitter_r )
|
READ32_HANDLER( jaguar_blitter_r )
|
||||||
{
|
{
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case B_CMD: /* B_CMD */
|
case B_CMD: /* B_CMD */
|
||||||
return 1;
|
return blitter_status & 3;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logerror("%08X:Blitter read register @ F022%02X\n", cpu_get_previouspc(space->cpu), offset * 4);
|
logerror("%08X:Blitter read register @ F022%02X\n", cpu_get_previouspc(space->cpu), offset * 4);
|
||||||
@ -621,7 +626,11 @@ WRITE32_HANDLER( jaguar_blitter_w )
|
|||||||
{
|
{
|
||||||
COMBINE_DATA(&blitter_regs[offset]);
|
COMBINE_DATA(&blitter_regs[offset]);
|
||||||
if (offset == B_CMD)
|
if (offset == B_CMD)
|
||||||
|
{
|
||||||
|
blitter_status = 0;
|
||||||
|
timer_set(space->machine, ATTOTIME_IN_USEC(100), NULL, 0, blitter_done);
|
||||||
blitter_run(space->machine);
|
blitter_run(space->machine);
|
||||||
|
}
|
||||||
|
|
||||||
if (LOG_BLITTER_WRITE)
|
if (LOG_BLITTER_WRITE)
|
||||||
logerror("%08X:Blitter write register @ F022%02X = %08X\n", cpu_get_previouspc(space->cpu), offset * 4, data);
|
logerror("%08X:Blitter write register @ F022%02X = %08X\n", cpu_get_previouspc(space->cpu), offset * 4, data);
|
||||||
@ -649,8 +658,16 @@ READ16_HANDLER( jaguar_tom_regs_r )
|
|||||||
return video_screen_get_hpos(space->machine->primary_screen) % (video_screen_get_width(space->machine->primary_screen) / 2);
|
return video_screen_get_hpos(space->machine->primary_screen) % (video_screen_get_width(space->machine->primary_screen) / 2);
|
||||||
|
|
||||||
case VC:
|
case VC:
|
||||||
return video_screen_get_vpos(space->machine->primary_screen) * 2 + gpu_regs[VBE];
|
{
|
||||||
|
UINT8 half_line;
|
||||||
|
|
||||||
|
if(video_screen_get_hpos(space->machine->primary_screen) >= (video_screen_get_width(space->machine->primary_screen) / 2))
|
||||||
|
half_line = 1;
|
||||||
|
else
|
||||||
|
half_line = 0;
|
||||||
|
|
||||||
|
return video_screen_get_vpos(space->machine->primary_screen) * 2 + half_line;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return gpu_regs[offset];
|
return gpu_regs[offset];
|
||||||
|
Loading…
Reference in New Issue
Block a user