mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
Minor changes
This commit is contained in:
parent
ea03fab2bd
commit
1fca6b29a8
@ -18,9 +18,9 @@ Notes:
|
|||||||
TODO:
|
TODO:
|
||||||
(Main issues)
|
(Main issues)
|
||||||
- decap the SH-1, used for CD block (needed especially for Sega Saturn)
|
- decap the SH-1, used for CD block (needed especially for Sega Saturn)
|
||||||
- IRQs: some games have some issues with timing accurate IRQs,check/fix all of them.
|
- IRQs: some games have some issues with timing accurate IRQs, check/fix all of them.
|
||||||
- The Cart-Dev mode hangs even with the -dev bios,I would like to see what it does on the real HW.
|
- The Cart-Dev mode hangs even with the -dev bios,I would like to see what it does on the real HW.
|
||||||
- IC13 games on the bios dev doesn't even load the cartridge / crashes the emulation at start-up,
|
- IC13 games on the dev bios doesn't even load the cartridge / crashes the emulation at start-up,
|
||||||
rom rearrange needed?
|
rom rearrange needed?
|
||||||
- SCU DSP still has its fair share of issues, it also needs to be converted to CPU structure;
|
- SCU DSP still has its fair share of issues, it also needs to be converted to CPU structure;
|
||||||
- Add the RS232c interface (serial port),needed by fhboxers.
|
- Add the RS232c interface (serial port),needed by fhboxers.
|
||||||
@ -28,15 +28,14 @@ TODO:
|
|||||||
- Reimplement the idle skip if possible.
|
- Reimplement the idle skip if possible.
|
||||||
- clean up the I/Os, by using per-game specific mapped ports and rewrite it by using 16-bit trampolines
|
- clean up the I/Os, by using per-game specific mapped ports and rewrite it by using 16-bit trampolines
|
||||||
- Properly emulate the protection chips, used by several games (check stvprot.c for more info)
|
- Properly emulate the protection chips, used by several games (check stvprot.c for more info)
|
||||||
- Move SCU device into its respective files;
|
- Move SCU device into its respective file;
|
||||||
- Split ST-V and Saturn files properly;
|
- Split ST-V and Saturn files properly;
|
||||||
- completely rewrite IOGA for ST-V;
|
|
||||||
|
|
||||||
(per-game issues)
|
(per-game issues)
|
||||||
- stress: accesses the Sound Memory Expansion Area (0x05a80000-0x05afffff), unknown purpose;
|
- stress: accesses the Sound Memory Expansion Area (0x05a80000-0x05afffff), unknown purpose;
|
||||||
- smleague / finlarch: it randomly hangs / crashes,it works if you use a ridiculous MCFG_INTERLEAVE number,might need strict
|
- smleague / finlarch: it randomly hangs / crashes,it works if you use a ridiculous MCFG_INTERLEAVE number,might need strict
|
||||||
SH-2 synching.
|
SH-2 synching.
|
||||||
- suikoenb/shanhigw + others: why do we get 2 credits on startup? Cause might be by a communication with the M68k
|
- groovef / myfairld: why do we get 2 credits on startup? Cause might be by a communication with the M68k
|
||||||
- myfairld: Apparently this game gives a black screen (either test mode and in-game mode),but let it wait for about
|
- myfairld: Apparently this game gives a black screen (either test mode and in-game mode),but let it wait for about
|
||||||
10 seconds and the game will load everything. This is because of a hellishly slow m68k sub-routine located at 54c2.
|
10 seconds and the game will load everything. This is because of a hellishly slow m68k sub-routine located at 54c2.
|
||||||
Likely to not be a bug but an in-game design issue.
|
Likely to not be a bug but an in-game design issue.
|
||||||
@ -500,7 +499,7 @@ static READ32_HANDLER( saturn_scu_r )
|
|||||||
saturn_state *state = space->machine().driver_data<saturn_state>();
|
saturn_state *state = space->machine().driver_data<saturn_state>();
|
||||||
UINT32 res;
|
UINT32 res;
|
||||||
|
|
||||||
/*TODO: write only registers must return 0...*/
|
/*TODO: write only registers must return 0 or open bus */
|
||||||
switch(offset)
|
switch(offset)
|
||||||
{
|
{
|
||||||
case 0x5c/4:
|
case 0x5c/4:
|
||||||
@ -2038,9 +2037,6 @@ static TIMER_DEVICE_CALLBACK( saturn_scanline )
|
|||||||
{
|
{
|
||||||
video_update_vdp1(timer.machine());
|
video_update_vdp1(timer.machine());
|
||||||
|
|
||||||
if(STV_VDP1_VBE)
|
|
||||||
state->m_vdp1.framebuffer_clear_on_next_frame = 1;
|
|
||||||
|
|
||||||
if(!(state->m_scu.ism & IRQ_VDP1_END))
|
if(!(state->m_scu.ism & IRQ_VDP1_END))
|
||||||
{
|
{
|
||||||
device_set_input_line_and_vector(state->m_maincpu, 0x2, HOLD_LINE, 0x4d);
|
device_set_input_line_and_vector(state->m_maincpu, 0x2, HOLD_LINE, 0x4d);
|
||||||
@ -2070,6 +2066,9 @@ static TIMER_DEVICE_CALLBACK( saturn_scanline )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
state->m_scu.ist |= (IRQ_VBLANK_IN);
|
state->m_scu.ist |= (IRQ_VBLANK_IN);
|
||||||
|
|
||||||
|
if(STV_VDP1_VBE)
|
||||||
|
state->m_vdp1.framebuffer_clear_on_next_frame = 1;
|
||||||
}
|
}
|
||||||
else if((scanline % y_step) == 0 && scanline < vblank_line*y_step)
|
else if((scanline % y_step) == 0 && scanline < vblank_line*y_step)
|
||||||
{
|
{
|
||||||
|
@ -1959,19 +1959,25 @@ static void stv_vdp1_process_list(running_machine &machine)
|
|||||||
switch (stv2_current_sprite.CMDCTRL & 0x000f)
|
switch (stv2_current_sprite.CMDCTRL & 0x000f)
|
||||||
{
|
{
|
||||||
case 0x0000:
|
case 0x0000:
|
||||||
if (VDP1_LOG) logerror ("Sprite List Normal Sprite\n");
|
if (VDP1_LOG) logerror ("Sprite List Normal Sprite (%d %d)\n",stv2_current_sprite.CMDXA,stv2_current_sprite.CMDYA);
|
||||||
stv2_current_sprite.ispoly = 0;
|
stv2_current_sprite.ispoly = 0;
|
||||||
stv_vpd1_draw_normal_sprite(machine, cliprect, 0);
|
stv_vpd1_draw_normal_sprite(machine, cliprect, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0001:
|
case 0x0001:
|
||||||
if (VDP1_LOG) logerror ("Sprite List Scaled Sprite\n");
|
if (VDP1_LOG) logerror ("Sprite List Scaled Sprite (%d %d)\n",stv2_current_sprite.CMDXA,stv2_current_sprite.CMDYA);
|
||||||
stv2_current_sprite.ispoly = 0;
|
stv2_current_sprite.ispoly = 0;
|
||||||
stv_vpd1_draw_scaled_sprite(machine, cliprect);
|
stv_vpd1_draw_scaled_sprite(machine, cliprect);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0002:
|
case 0x0002:
|
||||||
if (VDP1_LOG) logerror ("Sprite List Distorted Sprite\n");
|
if (VDP1_LOG) logerror ("Sprite List Distorted Sprite\n");
|
||||||
|
if (VDP1_LOG) logerror ("(A: %d %d)\n",stv2_current_sprite.CMDXA,stv2_current_sprite.CMDYA);
|
||||||
|
if (VDP1_LOG) logerror ("(B: %d %d)\n",stv2_current_sprite.CMDXB,stv2_current_sprite.CMDYB);
|
||||||
|
if (VDP1_LOG) logerror ("(C: %d %d)\n",stv2_current_sprite.CMDXC,stv2_current_sprite.CMDYC);
|
||||||
|
if (VDP1_LOG) logerror ("(D: %d %d)\n",stv2_current_sprite.CMDXD,stv2_current_sprite.CMDYD);
|
||||||
|
if (VDP1_LOG) logerror ("CMDPMOD = %04x\n",stv2_current_sprite.CMDPMOD);
|
||||||
|
|
||||||
stv2_current_sprite.ispoly = 0;
|
stv2_current_sprite.ispoly = 0;
|
||||||
stv_vpd1_draw_distorted_sprite(machine, cliprect);
|
stv_vpd1_draw_distorted_sprite(machine, cliprect);
|
||||||
break;
|
break;
|
||||||
@ -2011,7 +2017,7 @@ static void stv_vdp1_process_list(running_machine &machine)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x000a:
|
case 0x000a:
|
||||||
if (VDP1_LOG) logerror ("Sprite List Local Co-Ordinate Set\n");
|
if (VDP1_LOG) logerror ("Sprite List Local Co-Ordinate Set (%d %d)\n",(INT16)stv2_current_sprite.CMDXA,(INT16)stv2_current_sprite.CMDYA);
|
||||||
state->m_vdp1.local_x = (INT16)stv2_current_sprite.CMDXA;
|
state->m_vdp1.local_x = (INT16)stv2_current_sprite.CMDXA;
|
||||||
state->m_vdp1.local_y = (INT16)stv2_current_sprite.CMDYA;
|
state->m_vdp1.local_y = (INT16)stv2_current_sprite.CMDYA;
|
||||||
break;
|
break;
|
||||||
@ -2112,7 +2118,7 @@ void video_update_vdp1(running_machine &machine)
|
|||||||
case 1:/*Draw by request*/
|
case 1:/*Draw by request*/
|
||||||
break;
|
break;
|
||||||
case 2:/*Automatic Draw*/
|
case 2:/*Automatic Draw*/
|
||||||
if ( framebuffer_changed )
|
if ( framebuffer_changed || VDP1_LOG )
|
||||||
{
|
{
|
||||||
/*set CEF to 1*/
|
/*set CEF to 1*/
|
||||||
stv_vdp1_process_list(machine);
|
stv_vdp1_process_list(machine);
|
||||||
|
Loading…
Reference in New Issue
Block a user