mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
Fixed input regression with Bug 2
This commit is contained in:
parent
2a092372c9
commit
456343030d
@ -24,13 +24,16 @@ enum
|
|||||||
EA_DMADSTMEM,
|
EA_DMADSTMEM,
|
||||||
EA_DSTMEM,
|
EA_DSTMEM,
|
||||||
EA_MVIDSTMEM,
|
EA_MVIDSTMEM,
|
||||||
|
EA_FLAGS,
|
||||||
|
EA_DMASRCMEM
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SCUDSP_OPCODE {
|
struct SCUDSP_OPCODE {
|
||||||
char mnemonic[32];
|
char mnemonic[32];
|
||||||
int address_mode_1;
|
int address_mode_1;
|
||||||
int address_mode_2;
|
int address_mode_2;
|
||||||
int address_mode_3,
|
int address_mode_3;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SCUDSP_OPCODE alu_table[16] =
|
static const SCUDSP_OPCODE alu_table[16] =
|
||||||
@ -206,7 +209,7 @@ static const char *const cond_flags[] =
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static char *output;
|
static char *output;
|
||||||
static const UINT32 *rombase;
|
static const UINT8 *rombase;
|
||||||
|
|
||||||
static void ATTR_PRINTF(1,2) print(const char *fmt, ...)
|
static void ATTR_PRINTF(1,2) print(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
@ -236,9 +239,9 @@ static UINT8 add_table(UINT32 cur_opcode)
|
|||||||
|
|
||||||
static UINT32 decode_opcode(UINT32 pc, const SCUDSP_OPCODE *op_table,UINT32 cur_opcode)
|
static UINT32 decode_opcode(UINT32 pc, const SCUDSP_OPCODE *op_table,UINT32 cur_opcode)
|
||||||
{
|
{
|
||||||
INT8 rel8;
|
// INT8 rel8;
|
||||||
UINT32 imm32;
|
// UINT32 imm32;
|
||||||
UINT8 op2;
|
// UINT8 op2;
|
||||||
UINT32 flags = 0;
|
UINT32 flags = 0;
|
||||||
|
|
||||||
//if (!strcmp(op_table->mnemonic, "jsr") || !strcmp(op_table->mnemonic, "bsr"))
|
//if (!strcmp(op_table->mnemonic, "jsr") || !strcmp(op_table->mnemonic, "bsr"))
|
||||||
|
@ -850,6 +850,7 @@ INPUT_CHANGED_MEMBER(saturn_state::key_stroke)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Note: unused bits must stay high, Bug 2 relies on this. */
|
||||||
#define SATURN_PAD_P1(_mask_, _val_) \
|
#define SATURN_PAD_P1(_mask_, _val_) \
|
||||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
@ -864,9 +865,7 @@ INPUT_CHANGED_MEMBER(saturn_state::key_stroke)
|
|||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Y") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Y") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Z") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Z") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("P1 L") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("P1 L") PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0007, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_)
|
||||||
PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_)
|
|
||||||
|
|
||||||
|
|
||||||
#define SATURN_PAD_P2(_mask_, _val_) \
|
#define SATURN_PAD_P2(_mask_, _val_) \
|
||||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
@ -882,8 +881,7 @@ INPUT_CHANGED_MEMBER(saturn_state::key_stroke)
|
|||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Y") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Y") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Z") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Z") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("P2 L") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("P2 L") PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x0007, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_)
|
||||||
PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_)
|
|
||||||
|
|
||||||
#define MD_PAD_P1(_mask_, _val_) \
|
#define MD_PAD_P1(_mask_, _val_) \
|
||||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _val_) \
|
||||||
|
@ -194,6 +194,7 @@ READ16_HANDLER( saturn_vdp1_regs_r )
|
|||||||
|
|
||||||
return modr;
|
return modr;
|
||||||
default:
|
default:
|
||||||
|
if(!space.debugger_access())
|
||||||
printf ("cpu %s (PC=%08X) VDP1: Read from Registers, Offset %04x\n", space.device().tag(), space.device().safe_pc(), offset*2);
|
printf ("cpu %s (PC=%08X) VDP1: Read from Registers, Offset %04x\n", space.device().tag(), space.device().safe_pc(), offset*2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1985,7 +1986,7 @@ static void stv_vdp1_process_list(running_machine &machine)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0005:
|
case 0x0005:
|
||||||
// case 0x0007: // mirror?
|
// case 0x0007: // mirror? Baroque uses it, crashes for whatever reason
|
||||||
if (VDP1_LOG) logerror ("Sprite List Polyline\n");
|
if (VDP1_LOG) logerror ("Sprite List Polyline\n");
|
||||||
stv2_current_sprite.ispoly = 1;
|
stv2_current_sprite.ispoly = 1;
|
||||||
stv_vdp1_draw_poly_line(machine, *cliprect);
|
stv_vdp1_draw_poly_line(machine, *cliprect);
|
||||||
@ -1998,7 +1999,7 @@ static void stv_vdp1_process_list(running_machine &machine)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0008:
|
case 0x0008:
|
||||||
// case 0x000b: // mirror?
|
// case 0x000b: // mirror? Bug 2
|
||||||
if (VDP1_LOG) logerror ("Sprite List Set Command for User Clipping (%d,%d),(%d,%d)\n", stv2_current_sprite.CMDXA, stv2_current_sprite.CMDYA, stv2_current_sprite.CMDXC, stv2_current_sprite.CMDYC);
|
if (VDP1_LOG) logerror ("Sprite List Set Command for User Clipping (%d,%d),(%d,%d)\n", stv2_current_sprite.CMDXA, stv2_current_sprite.CMDYA, stv2_current_sprite.CMDXC, stv2_current_sprite.CMDYC);
|
||||||
state->m_vdp1.user_cliprect.set(stv2_current_sprite.CMDXA, stv2_current_sprite.CMDXC, stv2_current_sprite.CMDYA, stv2_current_sprite.CMDYC);
|
state->m_vdp1.user_cliprect.set(stv2_current_sprite.CMDXA, stv2_current_sprite.CMDXC, stv2_current_sprite.CMDYA, stv2_current_sprite.CMDYC);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user