mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +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_DSTMEM,
|
||||
EA_MVIDSTMEM,
|
||||
EA_FLAGS,
|
||||
EA_DMASRCMEM
|
||||
|
||||
};
|
||||
|
||||
struct SCUDSP_OPCODE {
|
||||
char mnemonic[32];
|
||||
int address_mode_1;
|
||||
int address_mode_2;
|
||||
int address_mode_3,
|
||||
int address_mode_3;
|
||||
};
|
||||
|
||||
static const SCUDSP_OPCODE alu_table[16] =
|
||||
@ -95,7 +98,7 @@ static const SCUDSP_OPCODE dma_table[] =
|
||||
{
|
||||
{ "DMA", EA_D0, EA_DMADSTMEM, EA_IMM8, }, /* 000 */ // "DMA%H%A D0,%M,%I",
|
||||
{ "DMA", EA_DMASRCMEM, EA_D0, EA_IMM8, }, /* 001 */ // "DMA%H%A %s,D0,%I",
|
||||
{ "DMA", 0, 0, 0, }, /* 010 */ // "DMA%H%A D0,%M,%s",
|
||||
{ "DMA", 0, 0, 0, }, /* 010 */ // "DMA%H%A D0,%M,%s",
|
||||
{ "DMA", 0, 0, 0, }, /* 011 */ // "DMA%H%A %s,D0,%s",
|
||||
{ "DMAH", EA_D0, EA_DMADSTMEM, EA_IMM8, }, /* 100 */ // "DMA%H%A D0,%M,%I",
|
||||
{ "DMAH", EA_DMASRCMEM, EA_D0, EA_IMM8, }, /* 101 */ // "DMA%H%A %s,D0,%I",
|
||||
@ -206,7 +209,7 @@ static const char *const cond_flags[] =
|
||||
/*****************************************************************************/
|
||||
|
||||
static char *output;
|
||||
static const UINT32 *rombase;
|
||||
static const UINT8 *rombase;
|
||||
|
||||
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)
|
||||
{
|
||||
INT8 rel8;
|
||||
UINT32 imm32;
|
||||
UINT8 op2;
|
||||
// INT8 rel8;
|
||||
// UINT32 imm32;
|
||||
// UINT8 op2;
|
||||
UINT32 flags = 0;
|
||||
|
||||
//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_) \
|
||||
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_) \
|
||||
@ -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( 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( 0x0004, 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_)
|
||||
|
||||
PORT_BIT( 0x0007, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _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_) \
|
||||
@ -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( 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( 0x0004, 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_)
|
||||
PORT_BIT( 0x0007, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("INPUT_TYPE", _mask_, EQUALS, _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_) \
|
||||
|
@ -194,6 +194,7 @@ READ16_HANDLER( saturn_vdp1_regs_r )
|
||||
|
||||
return modr;
|
||||
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);
|
||||
break;
|
||||
}
|
||||
@ -1985,7 +1986,7 @@ static void stv_vdp1_process_list(running_machine &machine)
|
||||
break;
|
||||
|
||||
case 0x0005:
|
||||
// case 0x0007: // mirror?
|
||||
// case 0x0007: // mirror? Baroque uses it, crashes for whatever reason
|
||||
if (VDP1_LOG) logerror ("Sprite List Polyline\n");
|
||||
stv2_current_sprite.ispoly = 1;
|
||||
stv_vdp1_draw_poly_line(machine, *cliprect);
|
||||
@ -1998,7 +1999,7 @@ static void stv_vdp1_process_list(running_machine &machine)
|
||||
break;
|
||||
|
||||
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);
|
||||
state->m_vdp1.user_cliprect.set(stv2_current_sprite.CMDXA, stv2_current_sprite.CMDXC, stv2_current_sprite.CMDYA, stv2_current_sprite.CMDYC);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user