diff --git a/src/emu/cpu/arcompact/arcompactdasm.c b/src/emu/cpu/arcompact/arcompactdasm.c index 96742326e68..cb3265837e7 100644 --- a/src/emu/cpu/arcompact/arcompactdasm.c +++ b/src/emu/cpu/arcompact/arcompactdasm.c @@ -682,7 +682,32 @@ int arcompact_handle04_1c_dasm(DASM_OPS_32) { print("MPYHU (%08x)", op); return int arcompact_handle04_1d_dasm(DASM_OPS_32) { print("MPYU (%08x)", op); return 4;} // * int arcompact_handle04_1e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} int arcompact_handle04_1f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} -int arcompact_handle04_20_dasm(DASM_OPS_32) { print("Jcc (%08x)", op); return 4;} + +#define GET_LIMM_32 \ + limm = oprom[6] | (oprom[7] << 8); \ + limm |= (oprom[4] << 16) | (oprom[5] << 24); \ + +int arcompact_handle04_20_dasm(DASM_OPS_32) +{ + int C = (op & 0x00000fc0) >> 6; + op &= ~0x00000fc0; + + if (C == LIMM_REG) + { + UINT32 limm; + GET_LIMM_32; + + + print("Jcc %08x (%08x)", limm, op); + } + else + { + print("Jcc (%04x) (%08x)", C, op); + } + + return 4; +} + int arcompact_handle04_21_dasm(DASM_OPS_32) { print("Jcc.D (%08x)", op); return 4;} int arcompact_handle04_22_dasm(DASM_OPS_32) { print("JLcc (%08x)", op); return 4;} int arcompact_handle04_23_dasm(DASM_OPS_32) { print("JLcc.D (%08x)", op); return 4;} diff --git a/src/mess/drivers/leapster.c b/src/mess/drivers/leapster.c index 58ad61a0886..25250055e57 100644 --- a/src/mess/drivers/leapster.c +++ b/src/mess/drivers/leapster.c @@ -307,20 +307,7 @@ ROM_END DRIVER_INIT_MEMBER(leapster_state,leapster) { - // the CPU is apparently Little Endian (or 'middle endian') but according to documentation definitely NOT 'Big Endian' - // a regular ROM order with sensible DASM function makes sense for the 16-bit code, but not for the 32-bit code?! (or initial PC isn't at 0 / there is missing code?) - // do PC = 460c0 to see some code - -#if 0 - UINT16 *ROM = (UINT16*)memregion("maincpu")->base(); - for (int i = 0; i < 0x200000 / 2; i += 2) - { - UINT16 temp = ROM[i]; - ROM[i] = ROM[i + 1];; - ROM[i + 1] = temp; - } -#endif } CONS(2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON )