mirror of
https://github.com/libretro/Mu.git
synced 2026-09-24 15:46:20 +00:00
Add trap list from old palm emu, list current problem
This commit is contained in:
25
currentProblem.txt
Normal file
25
currentProblem.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
Endless waiting while trying to poll the usb chip
|
||||
|
||||
ROM:10003A14 move.b #$F4,d0
|
||||
ROM:10003A18 move.b d0,($10400002).l
|
||||
ROM:10003A1E nop
|
||||
ROM:10003A20 nop
|
||||
ROM:10003A22 nop
|
||||
ROM:10003A24 move.b ($10400000).l,d0
|
||||
ROM:10003A2A nop
|
||||
ROM:10003A2C nop
|
||||
ROM:10003A2E nop
|
||||
ROM:10003A30 moveq #0,d1
|
||||
ROM:10003A32 move.b d0,d1
|
||||
ROM:10003A34 cmp.w d1,d4
|
||||
ROM:10003A36 bne.s loc_10003A4E
|
||||
ROM:10003A38 pea (unk_64).w
|
||||
ROM:10003A3C trap #$F
|
||||
ROM:10003A3C dc.w $A249
|
||||
ROM:10003A40 moveq #$64,d0 ; 'd'
|
||||
ROM:10003A42 add.l d0,d3
|
||||
ROM:10003A44 addq.w #4,sp
|
||||
ROM:10003A46
|
||||
ROM:10003A46 loc_10003A46: ; CODE XREF: sub_100038C0+152↑j
|
||||
ROM:10003A46 cmpi.l #$3A98,d3
|
||||
ROM:10003A4C bcs.s loc_10003A14
|
||||
@@ -40,17 +40,16 @@ SOURCES += \
|
||||
src/m68k/m68kopdm.c \
|
||||
src/m68k/m68kopnz.c \
|
||||
src/m68k/m68kops.c \
|
||||
src/68328Functions.c \
|
||||
src/emulator.c \
|
||||
src/hardwareRegisters.c \
|
||||
src/memoryAccess.c \
|
||||
src/sdcard.c \
|
||||
src/sed1376.c \
|
||||
src/silkscreen.c \
|
||||
src/68328Functions.c
|
||||
src/trapNumToName.c
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
touchscreen.h \
|
||||
qt-common/include/boolean.h \
|
||||
qt-common/include/retro_endianness.h \
|
||||
qt-common/include/retro_inline.h \
|
||||
@@ -61,6 +60,7 @@ HEADERS += \
|
||||
src/m68k/m68kconf.h \
|
||||
src/m68k/m68kcpu.h \
|
||||
src/m68k/m68kops.h \
|
||||
src/68328Functions.h \
|
||||
src/emuFeatureRegistersSpec.h \
|
||||
src/emulator.h \
|
||||
src/hardwareRegisterNames.h \
|
||||
@@ -70,7 +70,8 @@ HEADERS += \
|
||||
src/sdcard.h \
|
||||
src/sed1376.h \
|
||||
src/silkscreen.h \
|
||||
src/68328Functions.h
|
||||
mainwindow.h \
|
||||
touchscreen.h
|
||||
|
||||
FORMS += \
|
||||
mainwindow.ui
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.6.0, 2018-04-17T17:57:15. -->
|
||||
<!-- Written by QtCreator 4.6.0, 2018-04-18T17:16:44. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
||||
@@ -58,6 +58,8 @@ static inline bool allSdCardCallbacksPresent(){
|
||||
static bool invalidBehaviorAbort;
|
||||
static char disassemblyBuffer[LOGGED_OPCODES][100];//store the opcode and program counter for the last 10 opcodes
|
||||
|
||||
const char* lookupTrap(uint16_t trap);
|
||||
|
||||
static char* takeStackDump(uint32_t bytes){
|
||||
char* textBytes = malloc(bytes * 2);
|
||||
uint32_t textBytesOffset = 0;
|
||||
@@ -84,12 +86,12 @@ static void invalidBehaviorCheck(){
|
||||
//get current opcode
|
||||
if(!invalidBank){
|
||||
//must dissasemble as 68020 to prevent address masking, is also more descriptive for invalid opcodes
|
||||
m68k_disassemble(opcodeName, programCounter, M68K_CPU_TYPE_68020);
|
||||
m68k_disassemble(opcodeName, lastProgramCounter, M68K_CPU_TYPE_68020);
|
||||
}
|
||||
else{
|
||||
strcpy(opcodeName, "Invalid bank, cant read");
|
||||
}
|
||||
sprintf(opcodeName + strlen(opcodeName), " at PC:0x%08X", programCounter);
|
||||
sprintf(opcodeName + strlen(opcodeName), " at PC:0x%08X", lastProgramCounter);
|
||||
|
||||
//shift opcode buffer
|
||||
for(uint32_t i = 0; i < LOGGED_OPCODES - 1; i++)
|
||||
@@ -107,7 +109,7 @@ static void invalidBehaviorCheck(){
|
||||
for(uint32_t i = 0; i < LOGGED_OPCODES; i++)
|
||||
debugLog("%s\n", disassemblyBuffer[i]);
|
||||
//currently CPU32 opcodes will be listed as "unknown", I cant change that properly unless I directly edit musashi source, something I want to avoid doing
|
||||
debugLog("Instruction:\"%s\", instruction value:0x%04X, bank type:%d\n", invalidInstruction ? "unknown" : opcodeName, instruction, bankType[START_BANK(programCounter)]);
|
||||
debugLog("Instruction:\"%s\", instruction value:0x%04X, bank type:%d\n", invalidInstruction ? "unknown" : opcodeName, instruction, bankType[START_BANK(lastProgramCounter)]);
|
||||
}
|
||||
|
||||
//custom debug operations
|
||||
@@ -127,6 +129,12 @@ static void invalidBehaviorCheck(){
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(instruction == 0x4E4F){
|
||||
//Trap F/api call
|
||||
uint16_t trap = m68k_read_memory_16(lastProgramCounter + 2);
|
||||
debugLog("Trap F API:%s, API number:0x%04X, PC:0x%08X\n", lookupTrap(trap), trap, lastProgramCounter);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@ EMU_SOURCES_C := $(EMU_PATH)/emulator.c \
|
||||
$(EMU_PATH)/sed1376.c \
|
||||
$(EMU_PATH)/sdcard.c \
|
||||
$(EMU_PATH)/silkscreen.c \
|
||||
$(EMU_PATH)/68328Functions.c \
|
||||
$(EMU_PATH)/68328Functions.c \
|
||||
$(EMU_PATH)/trapNumToName.c \
|
||||
$(EMU_PATH)/m68k/m68kops.c \
|
||||
$(EMU_PATH)/m68k/m68kopnz.c \
|
||||
$(EMU_PATH)/m68k/m68kopdm.c \
|
||||
|
||||
1165
src/trapNumToName.c
Normal file
1165
src/trapNumToName.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user