make EXTKEYIN register emulation more sensible, and possibly fix "0x04000134 activator" AR codes (due to the register formerly being readable only from 0x04000136 as a halfword)
This commit is contained in:
parent
bdf580036c
commit
bcc7421be4
|
@ -5643,16 +5643,6 @@ u16 FASTCALL _MMU_ARM7_read16(u32 adr)
|
|||
//since the arm7 polls this (and EXTKEYIN) every frame, we shouldnt count this as an input check
|
||||
//LagFrameFlag=0;
|
||||
break;
|
||||
|
||||
case REG_EXTKEYIN:
|
||||
{
|
||||
//this is gross. we should generate this whole reg instead of poking it in ndssystem
|
||||
u16 ret = MMU.ARM7_REG[0x136];
|
||||
if(nds.isTouch)
|
||||
ret &= ~64;
|
||||
else ret |= 64;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return T1ReadWord_guaranteedAligned(MMU.MMU_MEM[ARMCPU_ARM7][adr>>20], adr & MMU.MMU_MASK[ARMCPU_ARM7][adr>>20]);
|
||||
}
|
||||
|
|
|
@ -2881,16 +2881,14 @@ static void NDS_applyFinalInput()
|
|||
countLid--;
|
||||
}
|
||||
|
||||
u16 padExt = ((input.buttons.X ? 0 : 0x80) >> 7) |
|
||||
((input.buttons.Y ? 0 : 0x80) >> 6) |
|
||||
((input.buttons.G ? 0 : 0x80) >> 4) |
|
||||
((LidClosed) << 7) |
|
||||
0x0034;
|
||||
|
||||
padExt = LOCAL_TO_LE_16(padExt);
|
||||
padExt |= (((u16 *)MMU.ARM7_REG)[0x136>>1] & 0x0070);
|
||||
u16 padExt = (1<<2)|(1<<4)|(1<<5);
|
||||
if(input.buttons.X) padExt |= 1<<0;
|
||||
if(input.buttons.Y) padExt |= 1<<1;
|
||||
if(input.buttons.G) padExt |= 1<<3; //debug button
|
||||
if(!nds.isTouch) padExt |= 1<<6; //~touch
|
||||
if(LidClosed) padExt |= 1<<7;
|
||||
|
||||
((u16 *)MMU.ARM7_REG)[0x136>>1] = (u16)padExt;
|
||||
((u16 *)MMU.ARM7_REG)[0x136>>1] = padExt;
|
||||
|
||||
InputDisplayString=MakeInputDisplayString(padExt, pad);
|
||||
|
||||
|
|
Loading…
Reference in New Issue