From 1a48d4323e6c2e7d0d0cd345ffde21f364a4bb21 Mon Sep 17 00:00:00 2001 From: KeybadeBlox Date: Tue, 16 Dec 2025 22:30:49 -0500 Subject: [PATCH] Complete delink workflow; separate from decomp We can now create a fresh Ghidra project, import the JSRF executable into it, import symbols into it, delink object files from it, and then decompile with objdiff. Just needs some documentation. --- .gitignore | 1 + Makefile => decompile/Makefile | 0 objdiff.json => decompile/objdiff.json | 4 +- {src => decompile/src}/Core.cpp | 0 {src => decompile/src}/Core.hpp | 0 {src => decompile/src}/D3D.hpp | 0 {src => decompile/src}/Jet2.cpp | 0 {src => decompile/src}/MMatrix.cpp | 0 {src => decompile/src}/MMatrix.hpp | 0 {src => decompile/src}/Std.hpp | 0 {src => decompile/src}/Win32.hpp | 0 {target => decompile/target}/.gitkeep | 0 delink.sh => delink/delink.sh | 6 +- delink/make_symboltable.sh | 42 + objects.csv => delink/objects.csv | 0 delink/symboltable.tsv | 1127 ++++++++++++++++++++++++ readme.md | 6 +- 17 files changed, 1178 insertions(+), 8 deletions(-) rename Makefile => decompile/Makefile (100%) rename objdiff.json => decompile/objdiff.json (81%) rename {src => decompile/src}/Core.cpp (100%) rename {src => decompile/src}/Core.hpp (100%) rename {src => decompile/src}/D3D.hpp (100%) rename {src => decompile/src}/Jet2.cpp (100%) rename {src => decompile/src}/MMatrix.cpp (100%) rename {src => decompile/src}/MMatrix.hpp (100%) rename {src => decompile/src}/Std.hpp (100%) rename {src => decompile/src}/Win32.hpp (100%) rename {target => decompile/target}/.gitkeep (100%) rename delink.sh => delink/delink.sh (90%) create mode 100755 delink/make_symboltable.sh rename objects.csv => delink/objects.csv (100%) create mode 100644 delink/symboltable.tsv diff --git a/.gitignore b/.gitignore index a8dca6f..a650b4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +# Can't distribute objects pulled from the JSRF executable *.obj diff --git a/Makefile b/decompile/Makefile similarity index 100% rename from Makefile rename to decompile/Makefile diff --git a/objdiff.json b/decompile/objdiff.json similarity index 81% rename from objdiff.json rename to decompile/objdiff.json index a0b3221..d175152 100644 --- a/objdiff.json +++ b/decompile/objdiff.json @@ -14,8 +14,8 @@ "source_path": "src/Jet2.cpp" }, "symbol_mappings": { - "FUN_00187710": "$L514", - "FUN_0018771b": "$L522" + "_main_handler": "$L522", + "_main_handler_unwind1": "$L514" } } ] diff --git a/src/Core.cpp b/decompile/src/Core.cpp similarity index 100% rename from src/Core.cpp rename to decompile/src/Core.cpp diff --git a/src/Core.hpp b/decompile/src/Core.hpp similarity index 100% rename from src/Core.hpp rename to decompile/src/Core.hpp diff --git a/src/D3D.hpp b/decompile/src/D3D.hpp similarity index 100% rename from src/D3D.hpp rename to decompile/src/D3D.hpp diff --git a/src/Jet2.cpp b/decompile/src/Jet2.cpp similarity index 100% rename from src/Jet2.cpp rename to decompile/src/Jet2.cpp diff --git a/src/MMatrix.cpp b/decompile/src/MMatrix.cpp similarity index 100% rename from src/MMatrix.cpp rename to decompile/src/MMatrix.cpp diff --git a/src/MMatrix.hpp b/decompile/src/MMatrix.hpp similarity index 100% rename from src/MMatrix.hpp rename to decompile/src/MMatrix.hpp diff --git a/src/Std.hpp b/decompile/src/Std.hpp similarity index 100% rename from src/Std.hpp rename to decompile/src/Std.hpp diff --git a/src/Win32.hpp b/decompile/src/Win32.hpp similarity index 100% rename from src/Win32.hpp rename to decompile/src/Win32.hpp diff --git a/target/.gitkeep b/decompile/target/.gitkeep similarity index 100% rename from target/.gitkeep rename to decompile/target/.gitkeep diff --git a/delink.sh b/delink/delink.sh similarity index 90% rename from delink.sh rename to delink/delink.sh index b992494..c15691a 100755 --- a/delink.sh +++ b/delink/delink.sh @@ -1,6 +1,6 @@ #!/bin/sh -eu -# Script to produce delinked object files in target/ directory from objects.csv -# and a Ghidra project via boricj's delinker extension +# Script to produce delinked object files in decompile/target/ directory from +# objects.csv and a Ghidra project via boricj's delinker extension main() { if [ $# -ne 3 ]; then usage; fi @@ -62,7 +62,7 @@ delink() { -postScript DelinkProgram.java\ /exporter 'COFF relocatable object'\ $(printf "/include-range %s " $4)\ - /export "target/$5" + /export "../decompile/target/$5" } diff --git a/delink/make_symboltable.sh b/delink/make_symboltable.sh new file mode 100755 index 0000000..dbb4cf5 --- /dev/null +++ b/delink/make_symboltable.sh @@ -0,0 +1,42 @@ +#!/bin/sh -eu +# Script to convert Ghidra symbol table CSV export data to the format used by +# the Ghidra script ImportSymbolsScript.py + +main() { + if [ $# -ne 1 ]; then usage; fi + + printf 'Writing symbol table to symboltable.tsv...' + + >symboltable.tsv # Create/truncate output file + + while IFS=, read -r name location type; do # Iterate over rows + # Determine symbol type (skip if unrecognized, e.g. header row) + if [ "$type" == '"Function"' ]; then type_out=f + elif [ "$type" == '"Data Label"' ]; then type_out=l + else continue + fi + + # Strip quotes from other columns + name_out=${name#'"'} ; name_out=${name_out%'"'} + location_out=${location#'"'}; location_out=${location_out%'"'} + + # Output row + printf '%s\t%s\t%s\n' "$name_out" "$location_out" "$type_out"\ + >> symboltable.tsv + done < $1 + + printf ' done.\n' +} + +usage() { + printf '%s\n'\ + 'Usage: make_symboltable.sh CSVFILE'\ + ' CSVFILE is the path of a symbol table CSV from Ghidra'\ + ''\ + 'The CSV file should have columns Name, Location, and Type. The output file'\ + 'will be named "symboltable.tsv".' >&2 + exit 2 +} + + +main "$@" diff --git a/objects.csv b/delink/objects.csv similarity index 100% rename from objects.csv rename to delink/objects.csv diff --git a/delink/symboltable.tsv b/delink/symboltable.tsv new file mode 100644 index 0000000..8d5961e --- /dev/null +++ b/delink/symboltable.tsv @@ -0,0 +1,1127 @@ +~GameObj 00011000 f +execDefault 00011070 f +someDrawFuncDefault 000110a0 f +drawDefaultRecursive 00011220 f +drawDefault 00011260 f +execEvent 000112a0 f +someDrawFuncEvent 000112d0 f +drawEventRecursive 00011450 f +drawEvent 00011490 f +execCoveredPause 000114d0 f +someDrawFuncCoveredPause 00011500 f +drawCoveredPauseRecursive 00011680 f +drawCoveredPause 000116c0 f +execFreezeCam 00011700 f +someDrawFuncFreezeCam 00011730 f +drawFreezeCamRecursive 000118b0 f +drawFreezeCam 000118f0 f +execUncoveredPause 00011930 f +someDrawFuncUncoveredPause 00011960 f +drawUncoveredPauseRecursive 00011ae0 f +drawUncoveredPause 00011b20 f +addToSiblings 00011b60 f +destructRecursive 00011b90 f +getParent 00011bd0 f +removeFromAllocList 00011be0 f +removeFromAllocListRecursive 00011c20 f +drawNop 00011c80 f +execNop 00011c90 f +_~GameObj 00011ce0 f +postExecDefault 00011d00 f +postExecEvent 00011da0 f +postExecCoveredPause 00011e40 f +postExecFreezeCam 00011ee0 f +postExecUncoveredPause 00011f80 f +setParent 00012020 f +GameObj 00012100 f +DrawObj 00012170 f +~DrawObj 000121b0 f +AllocatedChild2 000121e0 f +Game 00012210 f +~Game 00012390 f +exec 000123e0 f +drawObjNonrecursive 00012580 f +drawObj 00012680 f +setCoveredPauseNextFrame 000126d0 f +setEventNextFrame 000126f0 f +setFreezeCamNextFrame 00012710 f +setUncoveredPauseNextFrame 00012730 f +set0x70to1 00012750 f +setSkipDraw 00012760 f +cacheFatal 00012770 f +setDrawMode 000127b0 f +setGlobal 000127c0 f +getGlobal 000127e0 f +addToSomethingLinked 000127f0 f +removeFromSomethingLinked_MAYBE 00012840 f +setAllocated 00012870 f +unsetAllocated 00012890 f +getAllocated 000128c0 f +findAvailableAllocatedIndex 000128e0 f +allocatedIndexAvailable 00012910 f +swapAllocated 00012930 f +clearScreen 00012980 f +setZeroedByExecTo1 000129b0 f +setLogosStarted 000129c0 f +clearSortedLinkedList 000129d0 f +getSortedLinkedListHead 000129f0 f +addToSortedLinkedList 00012a00 f +sortSomeLinkedListSingleLevel 00012a20 f +setFallbackBgColour 00012ac0 f +RootExecObj 00012ae0 f +~RootExecObj 00012be0 f +_~Game 00012bf0 f +initExecRootObj 00012c10 f +sortSomeLinkedList 000131a0 f +_~RootExecObj 000131d0 f +drawObjects 000131f0 f +draw 00013930 f +frame 00013a80 f +mainLoop 00013f80 f +removeAllocated 00013fc0 f +getChapter 000149d0 f +getMissionDigits34 000149e0 f +~UnknownStatic02 00015110 f +CollisionManager 00016040 f +~CollisionManager 00016160 f +setSomeFields 000161b0 f +UnknownAllocated_0x1289 0001daf0 f +~UnknownStatic04 0001dde0 f +~UnknownStatic05 0001e0b0 f +~CopSpawnView 0001e140 f +CopSpawnView 0001e280 f +_~CopSpawnView 0001e3a0 f +EventChild2 0001e540 f +endEvent_MAYBE 0001e8c0 f +~EventChild2 00022990 f +draw 000232a0 f +_~EventChild2 00023380 f +exec 00023790 f +~EventChild1 000239d0 f +draw 00023f20 f +EventChild1 00024150 f +_~EventChild1 00024220 f +Event 00024240 f +~Event 00024330 f +virtualFree 000243b0 f +_~Event 000243d0 f +~UnknownAllocated_0x6 000243f0 f +draw 00024400 f +setSomething 00024480 f +setUnknownAllocated_0x6Something 00024600 f +setUnknownAllocated_0x6SomethingElse 00024620 f +getSomeUnknownAllocated_0x6Field 00024650 f +UnknownObj_0x6 00024670 f +_~UnknownAllocated_0x6 000246e0 f +exec 00024700 f +_~UnknownStatic06 00024c70 f +CacheBuilder_MAYBE 00024c90 f +~CacheBuilder_MAYBE 00024cf0 f +heldPathExists 00024e10 f +writeCacheCheckpoint 00024e70 f +checkCacheCheckpoint 00024ef0 f +initCache 00024f50 f +setCacheCounter 00024fd0 f +zeroCacheBuilderField 00025000 f +_~CacheBuilder_MAYBE 00025020 f +buildCache 00025040 f +readCurrentFile 00025310 f +initFile 00025390 f +someCreatingAndWritingFile_MAYBE 00025400 f +createDirectoryInCache 00025640 f +readPending_MAYBE 00025680 f +initFile 000256a0 f +checkFile 000256c0 f +getFile 00025700 f +freeFile 00025740 f +fileExists 00025770 f +getSomeFileManagerField 000257b0 f +FileManager 000257d0 f +readFromPath 00025dd0 f +initFileManager 00026010 f +freeCurrentFile 00026080 f +~FileManager 000260d0 f +_~FileManager 00026150 f +readUnknown 00026170 f +readCache 000262b0 f +readDmCache 000263c0 f +freeDmCacheTable_MAYBE 000265a0 f +readCarObj 00026780 f +initEnding 00027860 f +getEnding 000278b0 f +readEnding 00027b00 f +initEnemy 00027d40 f +readEnemy 00028500 f +initEvent 00028b80 f +checkEvent 00028c10 f +parseEventDatScene 00028c60 f +parseEventDatDialogue 00029f50 f +parseEventDatModels 0002a2b0 f +parseEventDatSection09 0002a500 f +parseEventDatSection050607 0002a640 f +parseEventDatSection08 0002a7d0 f +parseEventDatTextures 0002a940 f +findInEventMappingArray 0002abc0 f +parseEventDatEffects 0002abf0 f +readEvent 0002ad60 f +readMarkFontOrDefault 0002c040 f +readGarage 0002c360 f +readMarkDefault 0002d080 f +readMarkPressOrTex 0002dbe0 f +readMark 0002ed30 f +readMisc 00030120 f +initMissionBin 00030490 f +readMissionBin 000304f0 f +checkMissionBin 00030630 f +getMissionBin 00030660 f +freeMissionBin 000307a0 f +readMissionDat 00030850 f +readPeople 00031160 f +readCurrentPlayer 000320a0 f +readPlayer 00032c70 f +return1 00033800 f +initProgress 00033870 f +getProgress 000338a0 f +readProgress 00033a80 f +readCharIcon 00033c50 f +readCurrentCharIcon_MAYBE 00034200 f +readSprNorm 000348a0 f +readMap 00035640 f +makeStagePath 00036210 f +readStage_MAYBE1 00036280 f +deleteLinkedListNode_MAYBE 000365c0 f +readStage_MAYBE2 00036640 f +readEffect 000370a0 f +readStageObj 00037550 f +initTalkEvent 00038460 f +parseTalkEvent 00038530 f +readTalkEvent 00038890 f +readMarkTex 00038df0 f +initTitle 00038eb0 f +getTitle 00038ee0 f +readTitle 00039410 f +initLogo 00039740 f +checkLogo 00039760 f +getLogo 00039770 f +readLogo 00039850 f +~UnknownStatic07 00039b30 f +checkFlagCondition 00039b50 f +writeStateFlag 00039be0 f +incrementChapter 00039c70 f +setMissionDigits34 00039c80 f +setSpawnPosIndex 00039c90 f +getSpawnPosIndex 00039ca0 f +unlockCharacter 00039cb0 f +lockCharacter 00039cf0 f +characterUnlocked 00039d10 f +checkFlagConditions 00039d40 f +writeStateFlags 00039d80 f +checkFlagConditionUnpacked 00039db0 f +writeStateFlagUnpacked 00039de0 f +setGraffitiSoulSpawned 00039e10 f +getGraffitiSoulSpawned 00039e40 f +giveSoul 00039e80 f +clearCollectedSouls 00039f40 f +restoreCollectedSouls 00039f60 f +getSoulCount 00039fd0 f +setSomeSoulCollected 0003a2f0 f +getSomeCollectedSouls 0003a340 f +setSomeCollectedSouls 0003a3a0 f +setSomeCollectedSoulsRepeating 0003a400 f +getVolumeSettings 0003a4c0 f +setGarageMusic 0003a500 f +getGarageMusic 0003a510 f +incrementSomeFrameCount 0003a750 f +getSomeFrameCount_MAYBE 0003a780 f +setSomeFrameCountToSeconds 0003a7b0 f +setEventSeen 0003a890 f +eventSeen 0003a8c0 f +incrementPlaytime 0003a900 f +getSomeConstant 0003a910 f +clearStateFlags 0003ae20 f +setFrameCountToZero 0003aea0 f +SaveData 0003aed0 f +setSomeArrayValues 0003b3c0 f +~SaveData 0003b7c0 f +UnknownAllocated_0x1166 0003c150 f +~TextRenderer_MAYBE 0003c2b0 f +draw 0003c310 f +_~TextRenderer_MAYBE 0003ca00 f +drawText 0003d170 f +drawTextEx 0003d210 f +drawText 0003d5d0 f +drawTextEx 0003d610 f +~MissionManagerChild_0xE7 0003e420 f +setColour 0003e430 f +setAmbientColour 0003e440 f +MissionManagerChild_0xE7 0003e5f0 f +_~MissionManagerChild_0xE7 0003e640 f +draw 0003e660 f +UnknownStatic09 0003e690 f +getNTagsFinished 0003e7a0 f +tagsCleared 0003e8b0 f +setTwoFields 0003e9a0 f +~UnknownStatic09 0003ee70 f +~GraffitiSoulSpawnView_MAYBE 00042820 f +GraffitiSoulSpawnView_MAYBE 00042b00 f +_~GraffitiSoulSpawnView_MAYBE 00042c20 f +~PickupList 000432e0 f +get 00043700 f +PickupList 00043c00 f +_~PickupList 00043ea0 f +spawnPickupList 00044740 f +EventChild1Child 000461b0 f +~EventChild1Child 00046310 f +_~EventChild1Child 00046650 f +getBlocksNeeded 00046b60 f +saveGame 00046e20 f +_~Progress 00047550 f +Progress 00048100 f +~Progress 0004a6c0 f +xyToAngle 0004a7a0 f +Mission 0004a910 f +FUN_00052088 0004ac50 f +playVictoryDance 0004b010 f +waitForSomething 0004c070 f +showTextForFrame 0004c400 f +setPauseOptions 0004ca20 f +populateSomeCharIdArray 0004d5f0 f +setManyPlayerStateFieldsToOne 0004d880 f +resolveMissionBinPtrs 0004db30 f +newMission 0004e930 f +getProfKModeSetting 0004eb80 f +getSomeController_MAYBE 0004ec30 f +MissionManager 0004ecd0 f +~MissionManager 0004ef00 f +exec 0004ef90 f +draw 0004f9a0 f +~CharacterSelect 0004fbc0 f +~Mission 00051630 f +setupFromBin 00051780 f +exec_1 00051fc0 f +exec_2 00052010 f +exec_3 00052050 f +exec_5 00052090 f +caseD_1 000520d0 f +readResources 000521b0 f +playEvent 000524e0 f +advanceChapter 00053b40 f +handleMssnExit 00053fb0 f +setupInactiveMission_MAYBE 00055530 f +_~MissionManager 00055570 f +_~CharacterSelect 00055800 f +_~Mission 000564a0 f +runListenerCalls 00056990 f +startBlockingCall 00057de0 f +setNextSwitchFuncFromOpcode 00057f90 f +CharacterSelect 00058240 f +runNonblockingCall 000585e0 f +runImmediateCalls 0005b3f0 f +runNonblockingCalls 0005b570 f +runImmediateCallsWrapper 0005ba00 f +runNonblockingCallsWithWait 0005ba60 f +addModOrClamp 0005e030 f +COMManager_MAYBE 0005f180 f +~COMManager_MAYBE 0005f1d0 f +createControllerCOM_MAYBE 0005f250 f +createGraphics 0005f2c0 f +_~COMManager_MAYBE 0005f330 f +initCOMObjects_MAYBE 0005f350 f +MissionManagerChild_0xE8 000605b0 f +~MissionManagerChild_0xE8 00060650 f +exec 00060ac0 f +_~MissionManagerChild_0xE8 00062010 f +~UnknownStatic16 00065910 f +initInputs_MAYBE 00065940 f +readInput 000659c0 f +setStartButtonStatesToZero 00065c80 f +~UnknownStatic17 000663c0 f +~LoadingScreen 000663e0 f +exec 00066440 f +draw_1 00066550 f +draw_5 00066660 f +show 000666f0 f +LoadingScreen 00066870 f +_~LoadingScreen 00066900 f +get 00066950 f +seed 00066980 f +~UnknownStatic18 00066b80 f +~UnknownStatic19 00067010 f +draw 00067310 f +save 000678b0 f +~TextBox_MAYBE 00067980 f +TextBox_MAYBE 00067b60 f +_~TextBox_MAYBE 00067e70 f +exec 00067e90 f +getGraphicsSetting 000694a0 f +GraphicsSettings 000694c0 f +StageBin 0006af00 f +~StageBin 0006b270 f +~UnknownStatic22 0006bb80 f +_~StageBin 0006c340 f +TalkCharLive 0006c840 f +newTalkCharLive 0006cd00 f +~TalkCharLive 0006ce00 f +_~TalkCharLive 0006cec0 f +UnknownAllocated_0x1DDE 0006d9a0 f +UnknownStatic24 0006da80 f +UnknownStatic25 0006e000 f +getTexIndex 0006e130 f +_~UnknownStatic25 0006e190 f +calculateElapsedTime 0006e910 f +~PerformanceCounter 0006e950 f +~UnknownAllocated_0x12B0 0006ec00 f +draw 0006ec80 f +setMessage 0006f100 f +allocated0x12b0 0006f190 f +UnknownAllocated_0x12B0 0006f200 f +_~UnknownAllocated_0x12B0 0006f380 f +exec 0006f3a0 f +showMessage 0006f450 f +showInsufficientMemory 0006f520 f +showUnableToLoadGraffiti 0006f580 f +showReconnectNMessage 0006f5b0 f +showReconnectNAndStartMessage1 0006f600 f +showReconnectNAndStartMessage2 0006f650 f +showReconnectControllerMessage 0006f6a0 f +showCharacterJoinMessage 0006f6d0 f +showProblemWithDisc 0006f730 f +showSaveLoadErr 0006f760 f +~UnknownStatic27 0006f9c0 f +_main 0006f9e0 f +~UnknownAllocated_0x1167_2 000780f0 f +UnknownAllocated_0x1167_2 00078520 f +_~UnknownAllocated_0x1167_2 000789d0 f +~UnknownAllocated_0x1167_1 00079b50 f +UnknownAllocated_0x1167_1 0007a8b0 f +_~UnknownAllocated_0x1167_1 0007ab20 f +DemoInitializer 0007ae10 f +~DemoInitializer 0007af70 f +_~DemoInitializer 0007b830 f +Director 0007bc10 f +~Director 0007bc90 f +callNextSwitcherFunc 0007bdd0 f +setupCache 0007c050 f +initLogoFile 0007c090 f +startLogos 0007c0d0 f +finishLogos 0007c110 f +freeLogoFile 0007c140 f +startMissionManager 0007c160 f +finishMissionManager 0007c250 f +switchOnMisc 0007c270 f +newGame_MAYBE 0007c290 f +_~Director 0007d5b0 f +0x1DF3NotAllocated 0007e100 f +allocate0x1DF3 0007e260 f +~Logos 0007e2f0 f +exec 0007e360 f +draw 0007e550 f +Logos 0007e6a0 f +_~Logos 0007e7b0 f +startLogos 0007e7d0 f +~SomePlayerStateChild 0007e830 f +cansGreaterOrEqual 0007fc90 f +zeroCounters_MAYBE 0007fda0 f +setQuantities 0007fe70 f +_~SomePlayerStateChild 00080320 f +SomePlayerStateChild 00084200 f +~UnknownObj_0x50 00085410 f +_~UnknownObj_0x50 00086180 f +dealDamage_MAYBE 00092ff0 f +return0 00093ce0 f +setTired_MAYBE 0009bd90 f +~PlayerCamera 000a2820 f +draw 000a2960 f +packVec4 000a4cf0 f +PlayerCamera 000a4d80 f +_~PlayerCamera 000a5050 f +~SomePlayerState 000a6110 f +setSomeFieldToOne 000a63f0 f +SomePlayerState 000a6980 f +_~SomePlayerState 000a6af0 f +MissionManagerChild_0xB 000a82d0 f +~MissionManagerChild_0xB 000a8360 f +exec 000a8370 f +_~MissionManagerChild_0xB 000a8720 f +execDefault 000aecc0 f +drawDefault 000b3de0 f +MissionManagerChild_0x12B1 000c0a90 f +printableStrLen 000fe690 f +MissionManagerChild_0x1165 000fe740 f +setShowText 000fea80 f +MissionManagerChild_0x1163 000ff230 f +showOverlay1 00107260 f +showOverlay2 00107320 f +AdxManager 00115fc0 f +getAdxIndex 001160d0 f +setPause 00116240 f +setWaitPlayStart 00116290 f +setVolumes 001162e0 f +getVoiceLinePath 001164f0 f +setSomeAdxManagerFields 001165d0 f +setFirstTwoStreamsPause 00116670 f +getSomeUnknownAllocated_0x5Field 001167f0 f +pauseSomeAudio 00116950 f +~AdxManager 00116a10 f +play 00116ab0 f +exec 00116e30 f +playVoiceLine 00117140 f +_~AdxManager 00117330 f +setMusic 00117350 f +MissionManagerChild_0xEA 001174d0 f +MissionManagerChild_0xE9 001179f0 f +WavInfo 00117ba0 f +execNormal 00118610 f +execEvent 00118630 f +makeSoundEffectFilepath 00118650 f +somethingOnAllWavInfos 00118800 f +setSomeUnknownAllocated_0x4Field 00118870 f +SoundManager 00118c00 f +~SoundManager 00118cb0 f +_~SoundManager 00119570 f +parseNormWavs 00119670 f +~UnknownAllocated_0x1DE2 00126ac0 f +UnknownAllocated_0x1DE2 00127590 f +_~UnknownAllocated_0x1DE2 001277f0 f +~UnknownAllocated_0x1DE4 00127e60 f +UnknownAllocated_0x1DE4 00128fd0 f +_~UnknownAllocated_0x1DE4 00129160 f +ADXT_Stop 0013a6b0 f +ADXT_SetOutVol 0013a980 f +ADXT_GetNumSmplObuf 0013a9a0 f +ADXT_SetAutoRcvr 0013a9d0 f +ADXT_GetErrCode 0013aa50 f +ADXT_SetLpFlg 0013aa60 f +ADXT_SetWaitPlayStart 0013aa70 f +ADXT_Pause 0013aa80 f +ADXT_Destroy 0013ab80 f +ADXT_Create 0013ac80 f +ADXT_StartFname 0013aeb0 f +cvfs_errfunc 0013af10 f +initAdxDevices 0013af20 f +adxm_goto_mwidle_border 0013b110 f +ADXT_GetStat 0013bf30 f +ADXSTM_OpenFnameRangeExRt 0013c320 f +ADXSTM_OpenFnameEx 0013c390 f +LSC_Create 0013c600 f +adxt_trap_entry 0013ca20 f +adxt_stat_decinfo 0013ce30 f +adxt_stat_prep 0013d080 f +adxt_stat_playing 0013d1a0 f +adxt_stat_decend 0013d210 f +ADXF_Stop 0013d5a0 f +cvFsClose 0013dc30 f +cvFsTell 0013dca0 f +cvFsSeek 0013dd00 f +cvFsReqRd 0013dd70 f +cvFsStopTr 0013dde0 f +cvFsGetStat 0013de70 f +cvFsEntryErrFunc 0013dee0 f +addDevice 0013df70 f +cvFsSetDefDev 0013e050 f +cvFsOpen 0013e1a0 f +cvFsGetFileSize 0013e2b0 f +cvFsAddDev 0013e390 f +getMwRnaInstance 0013e550 f +mwlRnaAddWrPos 0013e630 f +mwlRnaStartTrans 0013e790 f +mwRnaSetNumChan 0013f200 f +mwRnaCreate 0013f290 f +cvfssetbuf 00140110 f +wxCiEntryErrFunc 00140230 f +wxCiReqRd 001403b0 f +wxCiOpen_child 001406d0 f +wxci_filesize_lower 00140760 f +wxci_getfilesize32 001408c0 f +wxCiGetFileSize 00140920 f +wxCiOpen 00140990 f +mfci_get_adr_size 00140cd0 f +mfCiOpen 00140e60 f +mfCiReqRd 00140fc0 f +mwSndOpenPort_child 00141380 f +mwSndOpenPort 00141470 f +mwSndPlay 00141560 f +mwSndStop 00141640 f +mwSndSetVol 001418d0 f +SVM_SetCbSvr 00141c30 f +SVM_DelCbSvr 00141cd0 f +ADXB_DecodeHeaderAdx 00142600 f +ADXT_EntryErrFunc 00142f20 f +LSC_CallErrFunc 00142f50 f +QueryPerformanceFrequency 00145571 f +CloseHandle 00145585 f +CreateFile 001455a3 f +CopyFileEx 0014572e f +CopyFile 00145a10 f +VirtualAlloc 00145a2f f +VirtualFree 00145a5d f +VirtualProtect 00145a99 f +WaitForSingleObjectEx 00145b64 f +WaitForMultipleObjectsEx 00145ba8 f +SleepEx 00145c28 f +WaitForSingleObject 00145c7a f +WaitForMultipleObjects 00145c8c f +Sleep 00145ca6 f +_sprintf1 00145cb4 f +sprintf 00145ccb f +SetFileAttributes 00145cde f +DeleteFile 00145d84 f +FindFirstFile 00145e7e f +ReadFile 00145f8b f +WriteFile 00146078 f +SetFilePointer 0014614e f +SetFilePointerEx 00146248 f +FlushFileBuffers 00146310 f +GetFileSizeEx 00146337 f +ReadFileEx 00146375 f +GetFileSize 001463c6 f +GetDiskFreeSpaceEx 0014646e f +XGetDiskSectorSize 001468ae f +CreateDirectory 00146949 f +RemoveDirectory 001469b5 f +XCalculateSignatureBeginEx 00146b52 f +XCalculateSignatureUpdate 00146bcd f +XCalculateSignatureEnd 00146be7 f +checkFirstTwoBytes 00146cfe f +getKeyValue_MAYBE 00146d42 f +checkSaveGameName_MAYBE 00146ecd f +XCreateSaveGame 00146fa7 f +XDeleteSaveGame 0014720a f +getSomethingInAVRegion 00147303 f +getSomethingInVideoFlags 0014732c f +GetTickCount 00147748 f +GetSystemTime 00147bec f +SuspendThread 00147dac f +ResumeThread 00147dd2 f +getSomethingSetByXapiInitProcess 0014a838 f +someAllocater_MAYBE 0014a83e f +someDeallocator_MAYBE 0014a85b f +makeTimeout 0014a8a1 f +InternalRemoveDirectoryRecursive_MAYBE 0014b3b1 f +XGetSectionHandle 0014b6c4 f +iRngSeed 0014c2a0 f +iRng 0014c2b0 f +iRngF 0014c2d0 f +vSum 0014c300 f +vAdd 0014c340 f +vProd 0014c370 f +vVecProd 0014c3b0 f +vNormalized 0014c410 f +vNormalizedEx 0014c460 f +vDiff 0014c4c0 f +vSub 0014c500 f +vDist 0014c530 f +vDistSquared 0014c580 f +vMultNorm 0014c5c0 f +sin 0014c620 f +cos 0014c640 f +tan 0014c660 f +rint 0014c690 f +tint 0014c6a0 f +vNorm 0014c6b0 f +vNormSquared 0014c6f0 f +vAddProd 0014c730 f +acos 0014c770 f +asin 0014c7a0 f +patan 0014c7d0 f +abs 0014c7f0 f +vDot 0014c800 f +sqrt 0014c820 f +max 0014c840 f +fmax 0014c850 f +fmin 0014c870 f +sub_scale_add 0014c890 f +vSubScaleAdd 0014c8b0 f +initSinCosTable 0014c910 f +initFloatMath 0014caa0 f +freeSinCosTable 0014cad0 f +clamp 0014cc60 f +clamp 0014cca0 f +vInverse 0014cd50 f +GraphicsCOM 0014cdb0 f +AddRef 0014cf00 f +QueryInterface 0014cf20 f +Release 0014cf80 f +setClearColour 0014d020 f +clear 0014d030 f +return0 0014d080 f +swapDefault 0014d090 f +swapFinish 0014d0d0 f +getTextureArrayIndex 0014d0f0 f +setRenderTargetFromArray 0014d340 f +AddRef 0014d4a0 f +setShaderConstantMode 0014d9d0 f +freeFromSomeTextureArray 0014f640 f +freeOneOrAllOfSomeTextureArray 0014f6d0 f +setLightDirection 0014fb20 f +setLightColour 0014fbb0 f +setTextureByIndex 0014fde0 f +setTexCoordIndex 0014fe30 f +setTextureOps 0014fef0 f +setMipMapLODBias 001502c0 f +setRenderState 001504d0 f +getRenderState 001507c0 f +setSpecularEnable 00150830 f +setAlphaBlendEnabled 00150890 f +setMaterial 00150c70 f +setSomeThings 00151820 f +draw 00151840 f +drawDecimal 001519d0 f +drawPaddedHex 00151a00 f +drawUnknown 00151a30 f +drawFormat 00151a90 f +QueryInterface 00151ac0 f +Release 00151c40 f +createFont 00151ca0 f +QueryInterface 00151d70 f +setFirstToSecond 00151db0 f +setGammaRampChannel 00151dd0 f +allocateSomeMember 00152060 f +freeSomeMember 00152110 f +AddRef 00152150 f +setGammaRamp 001521b0 f +commitGammaRamp 00152210 f +Release 00152230 f +createChild 00152270 f +AddRef 001532f0 f +setSomeGlobals 00153a90 f +setViewport 00153e30 f +projectHomogeneous 00154130 f +transpose 00154250 f +getTransform 001542a0 f +setTransform 00154420 f +setWorldTransform 00154520 f +setTextureTransform 00154540 f +getSomeBoolFromArray 001548e0 f +unsetTexture 00154ae0 f +someTextureArrayItemIsVolumeTexture 00154b00 f +freeSomeTextureArray 00154b20 f +ROUND 00154c10 f +resetPerfCounters 00154c20 f +calculatePerformance 00154c30 f +getPerfCounters 00154cf0 f +getManyThings 00155150 f +releaseSomething 00155540 f +getCapabilities 00155a60 f +scalePack 001560c0 f +unpack3Scaled 00156120 f +nop 001564a0 f +QueryInterface 00156d60 f +Release 00156dc0 f +createUnknownCOM 00156df0 f +AddRef 001576f0 f +QueryInterface 001577c0 f +Release 001579a0 f +UnknownCOMChild 001579d0 f +AddRef 00157ca0 f +createChild 00157cb0 f +QueryInterface 00157d70 f +Release 00157db0 f +QueryInterface 00157de0 f +unexpected 00157f00 f +QueryInterface 00159180 f +QueryInterface 00159b70 f +~UnknownCOM 0015a110 f +QueryInterface 0015b010 f +QueryInterface 0015b5c0 f +QueryInterface 0015b9a0 f +QueryInterface 0015bdf0 f +QueryInterface 0015c120 f +QueryInterface 0015c240 f +QueryInterface 0015f580 f +QueryInterface 0015f800 f +incrementFrameCount 0015f9d0 f +setVBlankCallback 0015f9e0 f +getVblankCount 0015fa10 f +__rdtsc 0015fa20 f +Release 0015fd40 f +QueryInterface 00160080 f +_Xlen 00160f00 f +ControllerCOM_MAYBE 001616f0 f +Release 001664d0 f +Release 00166ca0 f +QueryInterface 00167cd0 f +Controller 00167d60 f +~Controller 00167e20 f +setupDirectSound_MAYBE 00168130 f +AddRef 00177fe0 f +QueryInterface 00179350 f +attachNewEvent 001797e0 f +compare 00179ae0 f +nop 0017bf40 f +_JumpToContinuation 0017bf86 f +_CallMemberFunction0 0017bfb6 f +_UnwindNestedFrames 0017bfbd f +_GetRangeOfTrysToCheck 0017c0da f +roundTowardsZero 0017c3e8 f +atexit 0017c53d f +operator_new 0017c953 f +operator_delete 0017c965 f +leaveCriticalSection4 0017c9b4 f +unknown_Xprintf_MAYBE1 0017cac9 f +_sprintf2 0017ce68 f +unknown_Xprintf_MAYBE3 0017d242 f +_wcslen 0017d3d0 f +raise 0017d5f9 f +exception 0017d643 f +~exception 0017d692 f +_~exception 0017d6b5 f +setFloatControl 0017db1e f +_inconsistency 0017e3cb f +LeaveCriticalSection 0017f215 f +EnterCriticalSection 0017f2a3 f +_sprintf_impl 0017f494 f +TryEnterCriticalSection 00182161 f +_Xran 00182ae9 f +_Xlen 00182b41 f +packRect 00182b81 f +copyRect 00182ba5 f +elementMul 00186950 f +unpack3 001869e0 f +unpack4 00186a30 f +_main_handler_unwind1 00187710 f +_main_handler 0018771b f +initUnknownStatic01 0018acc0 f +initUnknownStatic02 0018acf0 f +initCollisionManager 0018ad00 f +initUnknownStatic04 0018ad20 f +initUnknownStatic05 0018ad30 f +initUnknownStatic06 0018ad40 f +initUnknownStatic07 0018ad50 f +initSaveData 0018ad60 f +initUnknownStatic09 0018ad80 f +initUnknownStatic10 0018ada0 f +initUnknownStatic11 0018adb0 f +initUnknownStatic12 0018adc0 f +initUnknownStatic13 0018add0 f +initUnknownStatic14 0018ae00 f +initUnknownStatic15 0018ae10 f +initUnknownStatic16 0018ae20 f +initUnknownStatic17 0018ae50 f +initUnknownStatic18 0018ae70 f +initUnknownStatic19 0018aea0 f +initUnknownStatic20 0018aeb0 f +initGraphicsSettings 0018aef0 f +initUnknownStatic22 0018af10 f +initUnknownStatic23 0018af20 f +initUnknownStatic24 0018af30 f +initUnknownStatic25 0018af50 f +initPerformanceCounter 0018af70 f +initUnknownStatic27 0018af90 f +initUnknownStatic28 0018afa0 f +initUnknownStatic29 0018afb0 f +initUnknownStatic30 0018b1a0 f +initUnknownStatic31 0018b390 f +initUnknownStatic32 0018b580 f +initUnknownStatic33 0018b770 f +initUnknownStatic34 0018b960 f +initUnknownStatic35 0018bb50 f +initUnknownStatic36 0018bd40 f +initUnknownStatic37 0018bf30 f +initUnknownStatic38 0018bfa0 f +initUnknownStatic39 0018c000 f +initUnknownStatic40 0018c0c0 f +initUnknownStatic41 0018c150 f +initUnknownStatic42 0018c1d0 f +initUnknownStatic43 0018c3c0 f +initUnknownStatic44 0018c5b0 f +initUnknownStatic45 0018c6f0 f +initUnknownStatic46 0018c810 f +~UnknownStatic06 0018c980 f +~SaveData 0018c9a0 f +~GraphicsSettings 0018caa0 f +~UnknownStatic25 0018caf0 f +setPerformanceCounterDestructor 0018cb10 f +SetVerticalBlankCallback 0018ce30 f +initUnknownStatic48 0018e410 f +D3D__DirtyFlags 0019ded8 l +D3D__TextureState 0019dee0 l +D3D__RenderState 0019e0e0 l +initUnknownStatic49 001a5299 f +initUnknownStatic50 001a52a4 f +setIdentity 001ba8a0 f +load 001ba8f0 f +store 001ba950 f +getHead 001ba9b0 f +dup 001ba9c0 f +pushIdentity 001baa00 f +pop 001baa50 f +applyIntoTranslation 001baa60 f +applyIntoTranslation 001baaa0 f +applyOrTranslation 001bab20 f +apply 001bac00 f +rotate3D 001bac50 f +applyTo 001badb0 f +apply 001bae90 f +scaleCols 001bb230 f +scaleCols 001bb270 f +scale 001bb2b0 f +rotateYZ 001bb2e0 f +rotateXZ 001bb330 f +rotateXY 001bb380 f +setIdentitySansTranslation 001bb3d0 f +getTranslation 001bb410 f +setTranslation 001bb430 f +transpose 001bb5e0 f +initMatrices 001bb690 f +freeMatrices 001bb720 f +scaleCol1 001bb960 f +scaleCol2 001bb980 f +scaleCol3 001bb9a0 f +isDxt 001bbac0 f +vector_constructor_iterator 001bd03b f +initUnknownStaticXPP 001bdaa9 f +D3DDIRTYFROMTEXTURESTATE 001c4160 l +vtable 001c4390 l +vtable 001c43d8 l +vtable 001c4418 l +vtable 001c4458 l +vtable 001c4480 l +vtable 001c4544 l +2^32 001c4558 l +vtable 001c45c0 l +vtable 001c45c4 l +vtable 001c45c8 l +vtable 001c4ba8 l +vtable 001c4c88 l +float(1/255) 001c4cc8 l +vtable 001c4cd0 l +vtable 001c4d10 l +vtable 001c4d50 l +vtable 001c4d58 l +vtable 001c4f68 l +vtable 001ca168 l +vtable 001ca3d8 l +vtable 001ca440 l +vtable 001ca4c8 l +vtable 001ca508 l +vtable 001ca5f0 l +vtable 001ca678 l +vtable 001ca7d8 l +vtable 001caa8c l +vtable 001caab0 l +vtable 001caaf8 l +vtable 001cab98 l +vtable 001caf70 l +vtable 001cb000 l +vtable 001cb094 l +vtable 001cb0a0 l +vtable 001cb0a8 l +g_cameraSpeed 001cb0e8 l +1/2^15 001cb0ec l +vtable 001cb0f0 l +vtable 001cb0f4 l +vtable 001cb0f8 l +vtable 001cc150 l +vtable 001cc154 l +vtable 001cc158 l +vtable 001cc5d0 l +vtable 001cc618 l +vtable 001cc61c l +vtable 001cc620 l +vtable 001cc660 l +vtable 001cc6a0 l +vtable 001ccd18 l +vtable 001ccde8 l +vtable 001cce30 l +vtable 001cceb8 l +vtable 001ccf78 l +vtable 001ccfb8 l +vtable 001ccff8 l +vtable_MAYBE 001cd0c0 l +vtable 001cd518 l +g_cameraMinDist 001cd560 l +g_cameraMaxDist 001cd564 l +vtable 001cd570 l +vtable 001cd5c8 l +musicMapping 001d3878 l +voiceLineMapping 001d3a38 l +soundEffectMapping 001d4db0 l +vtable 001d76c8 l +vtable 001d7b20 l +vtable 001da300 l +vtable 001da350 l +g_radToU16Angle1 001e0ea0 l +g_radToU16Angle2 001e0ea4 l +g_radToU16Angle3 001e0ea8 l +epsilon_neg 001e0ebc l +epsilon_pos 001e0ec0 l +vtable 001e0f00 l +vtable 001e1248 l +vtable 001e1270 l +iid 001e1340 l +iid 001e1350 l +iid 001e13e0 l +vtable 001e13f0 l +vtable 001e144c l +iid 001e16b8 l +iid 001e1758 l +vtable 001e1900 l +vtable 001e3828 l +g_directSound8 001e38fc l +vtable 001e4284 l +_main_unwindmap 001e620c l +_main_funcinfo 001e6214 l +staticInitializers 001eb770 l +g_unknownStatic02 001eb994 l +g_unknownStatic04 001ebaa8 l +g_unknownStatic05 001ebabc l +g_unknownStatic06 001ec050 l +fileInitializers 001ec068 l +fileReaders 001ec0f0 l +fileCheckers 001ec178 l +fileGetters 001ec200 l +fileFreers 001ec288 l +enemyFilenames 001ec310 l +enemyInitializers 001ec370 l +enemySoundEffectMapping 001ec3d0 l +playerFilenames 001ee5f8 l +animationsMap 001ee658 l +playerSoundFilenameIdMap 001ee6b8 l +animationsNames 001ee718 l +talkEventMapping 001eeb6c l +logoFilenames 001efc5c l +g_unknownStatic07 001efc74 l +someStageSoulMapping 001efc88 l +g_saveData 001effb0 l +someJaTextParameter 001f8b30 l +someSpaceTextParameter 001f8b58 l +fullscreenViewport 001f90b0 l +charIds 001f9808 l +exec_1Funcs 001f9888 l +exec_5Funcs 001f9a68 l +exec_3Funcs 001f9c48 l +exec_2Funcs 001f9e28 l +g_profKModeSettings 001fa0e0 l +g_alphaBlendEnabled 001fa1d0 l +g_unknownStatic16 001fb804 l +g_unknownStatic17 001fb820 l +g_unknownStatic18 001fb8cc l +g_unknownStatic19 001fb8e8 l +saveScreenMessagesJa 001fba8c l +saveScreenMessagesEn 001fbab8 l +saveScreenMessages 001fbb68 l +ioMessagesJa 001fbb7c l +ioMessagesEn 001fbbb8 l +ioMessages 001fbca8 l +g_graphicsSettingsSource 001fbcc0 l +g_language 001fc724 l +g_unknownStatic22 0020c6c0 l +g_performanceCounter 0020cc48 l +g_unknownStatic27 0020cc58 l +keyStrings 0020cf40 l +switcherFuncs 0020d2b8 l +g_logoBgColours 0020d498 l +segaLogoBuf_ja 0020d4b0 l +segaLogoBuf_en 0020d510 l +smilebitLogoBuf 0020d570 l +dolbyLogoBuf 0020d6f0 l +adxLogoBufs 0020d810 l +legalLogoBufs 0020d81c l +g_movementStateFuncs 0020d838 l +cameraModeFunctions 002155ac l +stageNamesJa 0021b950 l +stageNamesEn 0021b988 l +stageNames 0021ba68 l +charNamesJa 0021ba80 l +charNamesEn 0021bae0 l +charNames 0021bc60 l +stageToCharIdArrayIndex_MAYBE 0021c1fc l +tagIdsPoisonJam 0021c234 l +tagIdsImmortals 0021c248 l +tagIdsZeroBeat 0021c25c l +someCharIdArray 0021c450 l +someCharIdMapping 0021c510 l +hasJoinedYou 0021c570 l +testRunRankNamesJa 0021c584 l +testRunRankNamesEn 0021c5a4 l +testRunRankNames 0021c624 l +airTrickNamesJa 0021c9e0 l +airTrickNamesEn 0021cb10 l +airTrickNames 0021cfcc l +grindTrickNamesJa 0021cfe0 l +grindTrickNamesEn 0021d0f8 l +grindTrickNames 0021d554 l +invertTrickNamesJa 0021d568 l +invertTrickNamesEn 0021d574 l +invertTrickNames 0021d5a4 l +whichIsChosen 0021d5b8 l +voiceLineDirectories 0022269c l +soundEffectFilenames 002227d0 l +statNamesJa 00225410 l +statNamesEn 0022542c l +statNames 0022549c l +tutorialNames_ja 002257f8 l +tutorialNames_en 0022582c l +tutorialNames 002258fc l +tagNames_ja 00226f40 l +tagNames_en 00227170 l +tagSaveImagePaths 00228598 l +wxci_vtable 0022db98 l +mfci_vtable 0022dc00 l +g_iRng 0022e58c l +g_someMin 0022e6ac l +g_someMax 0022e6b0 l +g_identityMatrix 0022e700 l +g_criticalSections 0022eeb8 l +g_game 0022fce0 l +g_collisionManager 0022fce8 l +g_unknownStatic09 002314b0 l +g_objectCount 00251d40 l +g_texIndexPerStage 00251d54 l +g_controllerCOM_MAYBE 00251d64 l +g_timesNewRoman 00251d68 l +g_graphics 00251d6c l +g_graphicsCOMChild 00251d70 l +g_unknownCOM 00251d74 l +g_unknownCOMChild 00251d78 l +g_comManager_MAYBE 00251d7c l +g_inputs 00251de0 l +g_activeControllerInput_MAYBE 00251ee0 l +g_activeController_MAYBE 00251f20 l +g_loadingScreen 00251f24 l +g_fRng 00251f28 l +g_graphicsSettings 00251f5c l +g_unknownStatic24 00251f78 l +g_unknownStatic25 00252790 l +g_voiceLinePathBuf 002588f0 l +g_soundCOM_MAYBE 002589f4 l +g_soundEffectFilepathBuf 002589f8 l +cvfs_errfn 00261588 l +cvfs_errobj 0026158c l +wxg_ci_err_func 002615c4 l +wxg_ci_err_obj 002615c8 l +lsc_err_func 0026174c l +lsc_err_obj 00261750 l +g_sinCosTable 00264ba4 l +g_ptrToSinCosTable 00264bac l +g_floatResults 00264bb4 l +g_matricesHead 00264c04 l +g_matrices 00264c08 l +g_clearColour 00264c14 l +g_lighting 00264ca0 l +g_diffuseLightRGB 00264d28 l +g_material 00264d48 l +g_buf 00264d68 l +g_gammaRamp 00264e68 l +g_viewport 00264ed0 l +g_someHomogeneousScalingFactorX 00264ee8 l +g_viewportCentreX 00264eec l +g_someHomogeneousScalingFactorY 00264ef0 l +g_viewportCentreY 00264ef4 l +g_projectionMatrix 00264ef8 l +g_someTextureArray 00264f68 l +g_someStencilArray 00264f6c l +g_lenOfSomeTextureArray 00264f70 l +g_prevPerfCount 00264ff8 l +g_twoSecondFrameTimer 00264ffc l +g_vblankCount 00265174 l +g_ControllerCount_MAYBE 00265188 l +g_initDevicesDone 00265190 l +g_newHandler 00265200 l +lsc_err_msg 0026a380 l +wxg_ci_err_str 00273640 l +null_ARRAY_ARRAY_00273780 00273780 l +wxci_buf 00276c00 l +mwRnaInstances 0027b1c0 l +g_somethingSetByXapiInitProcess 0027dcd4 l diff --git a/readme.md b/readme.md index 9b596ba..38fae01 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,7 @@ This is just a public holding space for anything I put together as a part of the JSRF decompilation effort. +## `delink/` `objects.csv` is a table of suspected object file boundaries for delinking. The addresses given in each section are runtime memory addresses (as one would see in e.g. Ghidra). @@ -9,8 +10,7 @@ see in e.g. Ghidra). `delink.sh` is a script that produces delinked object files in `target/` from a Ghidra project. +## `decompile/` The `src/` directory contains decompiled code and data. Each symbol is annotated with its corresponding memory address in the original binary, and -functions are marked as perfectly or imperfectly matching. It's not -necessarily intended to be compilable, but more scratch space for noting down -what I've worked out. +functions are marked as perfectly or imperfectly matching.