- Centralized NDS keypad update.
This commit is contained in:
parent
4658a6cd2c
commit
94f6fe5a55
|
@ -65,24 +65,13 @@ void desmume_cycle()
|
||||||
u16 keypad;
|
u16 keypad;
|
||||||
/* Joystick events */
|
/* Joystick events */
|
||||||
/* Retrieve old value: can use joysticks w/ another device (from our side) */
|
/* Retrieve old value: can use joysticks w/ another device (from our side) */
|
||||||
keypad = ~((unsigned short *)MMU.ARM7_REG)[0x130>>1];
|
keypad = get_keypad();
|
||||||
keypad = (keypad & 0x3) << 10;
|
|
||||||
keypad |= ~((unsigned short *)ARM9Mem.ARM9_REG)[0x130>>1] & 0x3FF;
|
|
||||||
/* Look for queued events */
|
/* Look for queued events */
|
||||||
keypad = process_ctrls_events(keypad);
|
keypad = process_ctrls_events(keypad);
|
||||||
/* Update keypad value */
|
/* Update keypad value */
|
||||||
desmume_keypad(keypad);
|
update_keypad(keypad);
|
||||||
|
|
||||||
desmume_last_cycle = NDS_exec((560190 << 1) - desmume_last_cycle, FALSE);
|
desmume_last_cycle = NDS_exec((560190 << 1) - desmume_last_cycle, FALSE);
|
||||||
SPU_Emulate();
|
SPU_Emulate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void desmume_keypad(u16 k)
|
|
||||||
{
|
|
||||||
unsigned short k_ext = (~k >> 10) & 0x3;
|
|
||||||
unsigned short k_pad = ~k & 0x3FF;
|
|
||||||
((unsigned short *)ARM9Mem.ARM9_REG)[0x130>>1] = k_pad;
|
|
||||||
((unsigned short *)MMU.ARM7_REG)[0x130>>1] = k_pad;
|
|
||||||
MMU.ARM7_REG[0x136] = (k_ext & 0x3) | (MMU.ARM7_REG[0x136] & ~0x3);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,5 @@ extern BOOL desmume_running();
|
||||||
|
|
||||||
extern void desmume_cycle();
|
extern void desmume_cycle();
|
||||||
|
|
||||||
extern void desmume_keypad(u16 k);
|
|
||||||
|
|
||||||
#endif /*__DESMUME_H__*/
|
#endif /*__DESMUME_H__*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue