mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-02-20 10:17:03 +03:00
Compare commits
3 commits
c38d9b5628
...
d81bd646fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d81bd646fa | ||
|
|
84c165a0af | ||
|
|
43f4d10461 |
7 changed files with 489 additions and 17 deletions
8
.gitignore
vendored
8
.gitignore
vendored
|
|
@ -1,2 +1,10 @@
|
||||||
|
# The actual built game, optimistically
|
||||||
|
*.exe
|
||||||
|
*.xbe
|
||||||
|
|
||||||
# Can't distribute objects pulled from the JSRF executable
|
# Can't distribute objects pulled from the JSRF executable
|
||||||
*.obj
|
*.obj
|
||||||
|
|
||||||
|
# Other build artifacts
|
||||||
|
*.lib
|
||||||
|
*.exp
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,32 @@
|
||||||
OBJ = src/JSRF/Jet2.obj src/JSRF/Core.obj src/JSRF/GameData.obj\
|
OBJ = src/JSRF/Jet2.obj src/JSRF/Core.obj src/JSRF/GameData.obj\
|
||||||
src/XDK/CRT/CRT0.obj
|
src/XDK/CRT/CRT0.obj
|
||||||
|
|
||||||
|
# Import library for the only thing we don't compile ourselves, the Xbox kernel
|
||||||
|
LIB = lib/xboxkrnl.lib
|
||||||
|
|
||||||
|
|
||||||
|
#all: src/JSRF/Jet2.xbe
|
||||||
|
all: $(OBJ) # For now, just compile all the object files
|
||||||
|
|
||||||
|
|
||||||
|
## Build commands
|
||||||
|
.SUFFIXES: .cpp .obj .def .lib .exe.xbe
|
||||||
|
|
||||||
|
# Convert compiled executable into a working Xbox executable
|
||||||
|
# (TODO: we may want to fork cxbe to add section checksums and the game ID)
|
||||||
|
.exe.xbe:
|
||||||
|
cxbe.exe -OUT:$@ -TITLE:'Jet Set Radio Future' -MODE:retail $<
|
||||||
|
|
||||||
# Linking into an executable; expect this to fail with undefined references
|
# Linking into an executable; expect this to fail with undefined references
|
||||||
# until we've made at least stubs for everything in the game
|
# until we've made at least stubs for everything in the game
|
||||||
#all: src/JSRF/Jet2.exe
|
src/JSRF/Jet2.exe: $(OBJ) $(LIB)
|
||||||
#src/JSRF/Jet2.exe: $(OBJ)
|
LINK.EXE /NOLOGO /NODEFAULTLIB /MERGE:.CRT=.data /OUT:$@ $**
|
||||||
# LINK.EXE /NOLOGO /NODEFAULTLIB /MERGE:.CRT=.data /OUT:$@ $**
|
|
||||||
|
|
||||||
# For now, just compile all the object files
|
# Create import library for Xbox kernel
|
||||||
all: $(OBJ)
|
.def.lib:
|
||||||
|
LIB.EXE /NOLOGO /MACHINE:X86 /DEF:$< /OUT:$@
|
||||||
|
|
||||||
|
# Compile object files from source
|
||||||
# Simple inference rule for producing object files
|
|
||||||
.SUFFIXES: .cpp .obj
|
|
||||||
.cpp.obj:
|
.cpp.obj:
|
||||||
CL.EXE /nologo /Wall /W4 /Ogityb0 /GfX /Fo$@ /c $<
|
CL.EXE /nologo /Wall /W4 /Ogityb0 /GfX /Fo$@ /c $<
|
||||||
|
|
||||||
|
|
|
||||||
386
decompile/lib/xboxkrnl.def
Normal file
386
decompile/lib/xboxkrnl.def
Normal file
|
|
@ -0,0 +1,386 @@
|
||||||
|
; JSRF Decompilation: xboxkrnl.exe.def
|
||||||
|
; The import library for the Xbox kernel, which allows dynamic linking against
|
||||||
|
; its provided functions, is produced from this file.
|
||||||
|
;
|
||||||
|
; This file was included in the nxdk project and graciously dedicated to the
|
||||||
|
; public domain under the CC0 licence. The remainder of this file is its
|
||||||
|
; original form in the nxdk repository in early 2026.
|
||||||
|
|
||||||
|
; SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
; SPDX-FileCopyrightText: 2017 Stefan Schmidt
|
||||||
|
|
||||||
|
LIBRARY xboxkrnl.exe
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
AvGetSavedDataAddress@0 @ 1 NONAME
|
||||||
|
AvSendTVEncoderOption@16 @ 2 NONAME
|
||||||
|
AvSetDisplayMode@24 @ 3 NONAME
|
||||||
|
AvSetSavedDataAddress@4 @ 4 NONAME
|
||||||
|
DbgBreakPoint@0 @ 5 NONAME
|
||||||
|
DbgBreakPointWithStatus@4 @ 6 NONAME
|
||||||
|
DbgLoadImageSymbols@12 @ 7 NONAME
|
||||||
|
DbgPrint @ 8 NONAME
|
||||||
|
HalReadSMCTrayState@8 @ 9 NONAME
|
||||||
|
DbgPrompt@12 @ 10 NONAME
|
||||||
|
DbgUnLoadImageSymbols@12 @ 11 NONAME
|
||||||
|
ExAcquireReadWriteLockExclusive@4 @ 12 NONAME
|
||||||
|
ExAcquireReadWriteLockShared@4 @ 13 NONAME
|
||||||
|
ExAllocatePool@4 @ 14 NONAME
|
||||||
|
ExAllocatePoolWithTag@8 @ 15 NONAME
|
||||||
|
ExEventObjectType @ 16 NONAME DATA
|
||||||
|
ExFreePool@4 @ 17 NONAME
|
||||||
|
ExInitializeReadWriteLock@4 @ 18 NONAME
|
||||||
|
ExInterlockedAddLargeInteger@16 @ 19 NONAME
|
||||||
|
@ExInterlockedAddLargeStatistic@8 @ 20 NONAME
|
||||||
|
@ExInterlockedCompareExchange64@12 @ 21 NONAME
|
||||||
|
ExMutantObjectType @ 22 NONAME DATA
|
||||||
|
ExQueryPoolBlockSize@4 @ 23 NONAME
|
||||||
|
ExQueryNonVolatileSetting@20 @ 24 NONAME
|
||||||
|
ExReadWriteRefurbInfo@12 @ 25 NONAME
|
||||||
|
ExRaiseException@4 @ 26 NONAME
|
||||||
|
ExRaiseStatus@4 @ 27 NONAME
|
||||||
|
ExReleaseReadWriteLock@4 @ 28 NONAME
|
||||||
|
ExSaveNonVolatileSetting@16 @ 29 NONAME
|
||||||
|
ExSemaphoreObjectType @ 30 NONAME DATA
|
||||||
|
ExTimerObjectType @ 31 NONAME DATA
|
||||||
|
@ExfInterlockedInsertHeadList@8 @ 32 NONAME
|
||||||
|
@ExfInterlockedInsertTailList@8 @ 33 NONAME
|
||||||
|
@ExfInterlockedRemoveHeadList@4 @ 34 NONAME
|
||||||
|
FscGetCacheSize@0 @ 35 NONAME
|
||||||
|
FscInvalidateIdleBlocks@0 @ 36 NONAME
|
||||||
|
FscSetCacheSize@4 @ 37 NONAME
|
||||||
|
@HalClearSoftwareInterrupt@4 @ 38 NONAME
|
||||||
|
HalDisableSystemInterrupt@4 @ 39 NONAME
|
||||||
|
HalDiskCachePartitionCount @ 40 NONAME DATA
|
||||||
|
HalDiskModelNumber @ 41 NONAME DATA
|
||||||
|
HalDiskSerialNumber @ 42 NONAME DATA
|
||||||
|
HalEnableSystemInterrupt@8 @ 43 NONAME
|
||||||
|
HalGetInterruptVector@8 @ 44 NONAME
|
||||||
|
HalReadSMBusValue@16 @ 45 NONAME
|
||||||
|
HalReadWritePCISpace@24 @ 46 NONAME
|
||||||
|
HalRegisterShutdownNotification@8 @ 47 NONAME
|
||||||
|
@HalRequestSoftwareInterrupt@4 @ 48 NONAME
|
||||||
|
HalReturnToFirmware@4 @ 49 NONAME
|
||||||
|
HalWriteSMBusValue@16 @ 50 NONAME
|
||||||
|
@InterlockedCompareExchange@12 @ 51 NONAME
|
||||||
|
@InterlockedDecrement@4 @ 52 NONAME
|
||||||
|
@InterlockedIncrement@4 @ 53 NONAME
|
||||||
|
@InterlockedExchange@8 @ 54 NONAME
|
||||||
|
@InterlockedExchangeAdd@8 @ 55 NONAME
|
||||||
|
@InterlockedFlushSList@4 @ 56 NONAME
|
||||||
|
@InterlockedPopEntrySList@4 @ 57 NONAME
|
||||||
|
@InterlockedPushEntrySList@8 @ 58 NONAME
|
||||||
|
IoAllocateIrp@4 @ 59 NONAME
|
||||||
|
IoBuildAsynchronousFsdRequest@24 @ 60 NONAME
|
||||||
|
IoBuildDeviceIoControlRequest@36 @ 61 NONAME
|
||||||
|
IoBuildSynchronousFsdRequest@28 @ 62 NONAME
|
||||||
|
IoCheckShareAccess@20 @ 63 NONAME
|
||||||
|
IoCompletionObjectType @ 64 NONAME DATA
|
||||||
|
IoCreateDevice@24 @ 65 NONAME
|
||||||
|
IoCreateFile@40 @ 66 NONAME
|
||||||
|
IoCreateSymbolicLink@8 @ 67 NONAME
|
||||||
|
IoDeleteDevice@4 @ 68 NONAME
|
||||||
|
IoDeleteSymbolicLink@4 @ 69 NONAME
|
||||||
|
IoDeviceObjectType @ 70 NONAME DATA
|
||||||
|
IoFileObjectType @ 71 NONAME DATA
|
||||||
|
IoFreeIrp@4 @ 72 NONAME
|
||||||
|
IoInitializeIrp@12 @ 73 NONAME
|
||||||
|
IoInvalidDeviceRequest@8 @ 74 NONAME
|
||||||
|
IoQueryFileInformation@20 @ 75 NONAME
|
||||||
|
IoQueryVolumeInformation@20 @ 76 NONAME
|
||||||
|
IoQueueThreadIrp@4 @ 77 NONAME
|
||||||
|
IoRemoveShareAccess@8 @ 78 NONAME
|
||||||
|
IoSetIoCompletion@20 @ 79 NONAME
|
||||||
|
IoSetShareAccess@16 @ 80 NONAME
|
||||||
|
IoStartNextPacket@4 @ 81 NONAME
|
||||||
|
IoStartNextPacketByKey@8 @ 82 NONAME
|
||||||
|
IoStartPacket@12 @ 83 NONAME
|
||||||
|
IoSynchronousDeviceIoControlRequest@32 @ 84 NONAME
|
||||||
|
IoSynchronousFsdRequest@20 @ 85 NONAME
|
||||||
|
@IofCallDriver@8 @ 86 NONAME
|
||||||
|
@IofCompleteRequest@8 @ 87 NONAME
|
||||||
|
KdDebuggerEnabled @ 88 NONAME DATA
|
||||||
|
KdDebuggerNotPresent @ 89 NONAME DATA
|
||||||
|
IoDismountVolume@4 @ 90 NONAME
|
||||||
|
IoDismountVolumeByName@4 @ 91 NONAME
|
||||||
|
KeAlertResumeThread@4 @ 92 NONAME
|
||||||
|
KeAlertThread@8 @ 93 NONAME
|
||||||
|
KeBoostPriorityThread@8 @ 94 NONAME
|
||||||
|
KeBugCheck@4 @ 95 NONAME
|
||||||
|
KeBugCheckEx@20 @ 96 NONAME
|
||||||
|
KeCancelTimer@4 @ 97 NONAME
|
||||||
|
KeConnectInterrupt@4 @ 98 NONAME
|
||||||
|
KeDelayExecutionThread@12 @ 99 NONAME
|
||||||
|
KeDisconnectInterrupt@4 @ 100 NONAME
|
||||||
|
KeEnterCriticalRegion@0 @ 101 NONAME
|
||||||
|
MmGlobalData @ 102 NONAME DATA
|
||||||
|
KeGetCurrentIrql@0 @ 103 NONAME
|
||||||
|
KeGetCurrentThread@0 @ 104 NONAME
|
||||||
|
KeInitializeApc@28 @ 105 NONAME
|
||||||
|
KeInitializeDeviceQueue@4 @ 106 NONAME
|
||||||
|
KeInitializeDpc@12 @ 107 NONAME
|
||||||
|
KeInitializeEvent@12 @ 108 NONAME
|
||||||
|
KeInitializeInterrupt@28 @ 109 NONAME
|
||||||
|
KeInitializeMutant@8 @ 110 NONAME
|
||||||
|
KeInitializeQueue@8 @ 111 NONAME
|
||||||
|
KeInitializeSemaphore@12 @ 112 NONAME
|
||||||
|
KeInitializeTimerEx@8 @ 113 NONAME
|
||||||
|
KeInsertByKeyDeviceQueue@12 @ 114 NONAME
|
||||||
|
KeInsertDeviceQueue@8 @ 115 NONAME
|
||||||
|
KeInsertHeadQueue@8 @ 116 NONAME
|
||||||
|
KeInsertQueue@8 @ 117 NONAME
|
||||||
|
KeInsertQueueApc@16 @ 118 NONAME
|
||||||
|
KeInsertQueueDpc@12 @ 119 NONAME
|
||||||
|
KeInterruptTime @ 120 NONAME DATA
|
||||||
|
KeIsExecutingDpc@0 @ 121 NONAME
|
||||||
|
KeLeaveCriticalRegion@0 @ 122 NONAME
|
||||||
|
KePulseEvent@12 @ 123 NONAME
|
||||||
|
KeQueryBasePriorityThread@4 @ 124 NONAME
|
||||||
|
KeQueryInterruptTime@0 @ 125 NONAME
|
||||||
|
KeQueryPerformanceCounter@0 @ 126 NONAME
|
||||||
|
KeQueryPerformanceFrequency@0 @ 127 NONAME
|
||||||
|
KeQuerySystemTime@4 @ 128 NONAME
|
||||||
|
KeRaiseIrqlToDpcLevel@0 @ 129 NONAME
|
||||||
|
KeRaiseIrqlToSynchLevel@0 @ 130 NONAME
|
||||||
|
KeReleaseMutant@16 @ 131 NONAME
|
||||||
|
KeReleaseSemaphore@16 @ 132 NONAME
|
||||||
|
KeRemoveByKeyDeviceQueue@8 @ 133 NONAME
|
||||||
|
KeRemoveDeviceQueue@4 @ 134 NONAME
|
||||||
|
KeRemoveEntryDeviceQueue@8 @ 135 NONAME
|
||||||
|
KeRemoveQueue@12 @ 136 NONAME
|
||||||
|
KeRemoveQueueDpc@4 @ 137 NONAME
|
||||||
|
KeResetEvent@4 @ 138 NONAME
|
||||||
|
KeRestoreFloatingPointState@4 @ 139 NONAME
|
||||||
|
KeResumeThread@4 @ 140 NONAME
|
||||||
|
KeRundownQueue@4 @ 141 NONAME
|
||||||
|
KeSaveFloatingPointState@4 @ 142 NONAME
|
||||||
|
KeSetBasePriorityThread@8 @ 143 NONAME
|
||||||
|
KeSetDisableBoostThread@8 @ 144 NONAME
|
||||||
|
KeSetEvent@12 @ 145 NONAME
|
||||||
|
KeSetEventBoostPriority@8 @ 146 NONAME
|
||||||
|
KeSetPriorityProcess@8 @ 147 NONAME
|
||||||
|
KeSetPriorityThread@8 @ 148 NONAME
|
||||||
|
KeSetTimer@16 @ 149 NONAME
|
||||||
|
KeSetTimerEx@20 @ 150 NONAME
|
||||||
|
KeStallExecutionProcessor@4 @ 151 NONAME
|
||||||
|
KeSuspendThread@4 @ 152 NONAME
|
||||||
|
KeSynchronizeExecution@12 @ 153 NONAME
|
||||||
|
KeSystemTime @ 154 NONAME DATA
|
||||||
|
KeTestAlertThread@4 @ 155 NONAME
|
||||||
|
KeTickCount @ 156 NONAME DATA
|
||||||
|
KeTimeIncrement @ 157 NONAME DATA
|
||||||
|
KeWaitForMultipleObjects@32 @ 158 NONAME
|
||||||
|
KeWaitForSingleObject@20 @ 159 NONAME
|
||||||
|
@KfRaiseIrql@4 @ 160 NONAME
|
||||||
|
@KfLowerIrql@4 @ 161 NONAME
|
||||||
|
KiBugCheckData @ 162 NONAME DATA
|
||||||
|
@KiUnlockDispatcherDatabase@4 @ 163 NONAME
|
||||||
|
LaunchDataPage @ 164 NONAME DATA
|
||||||
|
MmAllocateContiguousMemory@4 @ 165 NONAME
|
||||||
|
MmAllocateContiguousMemoryEx@20 @ 166 NONAME
|
||||||
|
MmAllocateSystemMemory@8 @ 167 NONAME
|
||||||
|
MmClaimGpuInstanceMemory@8 @ 168 NONAME
|
||||||
|
MmCreateKernelStack@8 @ 169 NONAME
|
||||||
|
MmDeleteKernelStack@8 @ 170 NONAME
|
||||||
|
MmFreeContiguousMemory@4 @ 171 NONAME
|
||||||
|
MmFreeSystemMemory@8 @ 172 NONAME
|
||||||
|
MmGetPhysicalAddress@4 @ 173 NONAME
|
||||||
|
MmIsAddressValid@4 @ 174 NONAME
|
||||||
|
MmLockUnlockBufferPages@12 @ 175 NONAME
|
||||||
|
MmLockUnlockPhysicalPage@8 @ 176 NONAME
|
||||||
|
MmMapIoSpace@12 @ 177 NONAME
|
||||||
|
MmPersistContiguousMemory@12 @ 178 NONAME
|
||||||
|
MmQueryAddressProtect@4 @ 179 NONAME
|
||||||
|
MmQueryAllocationSize@4 @ 180 NONAME
|
||||||
|
MmQueryStatistics@4 @ 181 NONAME
|
||||||
|
MmSetAddressProtect@12 @ 182 NONAME
|
||||||
|
MmUnmapIoSpace@8 @ 183 NONAME
|
||||||
|
NtAllocateVirtualMemory@20 @ 184 NONAME
|
||||||
|
NtCancelTimer@8 @ 185 NONAME
|
||||||
|
NtClearEvent@4 @ 186 NONAME
|
||||||
|
NtClose@4 @ 187 NONAME
|
||||||
|
NtCreateDirectoryObject@8 @ 188 NONAME
|
||||||
|
NtCreateEvent@16 @ 189 NONAME
|
||||||
|
NtCreateFile@36 @ 190 NONAME
|
||||||
|
NtCreateIoCompletion@16 @ 191 NONAME
|
||||||
|
NtCreateMutant@12 @ 192 NONAME
|
||||||
|
NtCreateSemaphore@16 @ 193 NONAME
|
||||||
|
NtCreateTimer@12 @ 194 NONAME
|
||||||
|
NtDeleteFile@4 @ 195 NONAME
|
||||||
|
NtDeviceIoControlFile@40 @ 196 NONAME
|
||||||
|
NtDuplicateObject@12 @ 197 NONAME
|
||||||
|
NtFlushBuffersFile@8 @ 198 NONAME
|
||||||
|
NtFreeVirtualMemory@12 @ 199 NONAME
|
||||||
|
NtFsControlFile@40 @ 200 NONAME
|
||||||
|
NtOpenDirectoryObject@8 @ 201 NONAME
|
||||||
|
NtOpenFile@24 @ 202 NONAME
|
||||||
|
NtOpenSymbolicLinkObject@8 @ 203 NONAME
|
||||||
|
NtProtectVirtualMemory@16 @ 204 NONAME
|
||||||
|
NtPulseEvent@8 @ 205 NONAME
|
||||||
|
NtQueueApcThread@20 @ 206 NONAME
|
||||||
|
NtQueryDirectoryFile@40 @ 207 NONAME
|
||||||
|
NtQueryDirectoryObject@24 @ 208 NONAME
|
||||||
|
NtQueryEvent@8 @ 209 NONAME
|
||||||
|
NtQueryFullAttributesFile@8 @ 210 NONAME
|
||||||
|
NtQueryInformationFile@20 @ 211 NONAME
|
||||||
|
NtQueryIoCompletion@8 @ 212 NONAME
|
||||||
|
NtQueryMutant@8 @ 213 NONAME
|
||||||
|
NtQuerySemaphore@8 @ 214 NONAME
|
||||||
|
NtQuerySymbolicLinkObject@12 @ 215 NONAME
|
||||||
|
NtQueryTimer@8 @ 216 NONAME
|
||||||
|
NtQueryVirtualMemory@8 @ 217 NONAME
|
||||||
|
NtQueryVolumeInformationFile@20 @ 218 NONAME
|
||||||
|
NtReadFile@32 @ 219 NONAME
|
||||||
|
NtReadFileScatter@32 @ 220 NONAME
|
||||||
|
NtReleaseMutant@8 @ 221 NONAME
|
||||||
|
NtReleaseSemaphore@12 @ 222 NONAME
|
||||||
|
NtRemoveIoCompletion@20 @ 223 NONAME
|
||||||
|
NtResumeThread@8 @ 224 NONAME
|
||||||
|
NtSetEvent@8 @ 225 NONAME
|
||||||
|
NtSetInformationFile@20 @ 226 NONAME
|
||||||
|
NtSetIoCompletion@20 @ 227 NONAME
|
||||||
|
NtSetSystemTime@8 @ 228 NONAME
|
||||||
|
NtSetTimerEx@32 @ 229 NONAME
|
||||||
|
NtSignalAndWaitForSingleObjectEx@20 @ 230 NONAME
|
||||||
|
NtSuspendThread@8 @ 231 NONAME
|
||||||
|
NtUserIoApcDispatcher@12 @ 232 NONAME
|
||||||
|
NtWaitForSingleObject@12 @ 233 NONAME
|
||||||
|
NtWaitForSingleObjectEx@16 @ 234 NONAME
|
||||||
|
NtWaitForMultipleObjectsEx@24 @ 235 NONAME
|
||||||
|
NtWriteFile@32 @ 236 NONAME
|
||||||
|
NtWriteFileGather@32 @ 237 NONAME
|
||||||
|
NtYieldExecution@0 @ 238 NONAME
|
||||||
|
ObCreateObject@16 @ 239 NONAME
|
||||||
|
ObDirectoryObjectType @ 240 NONAME DATA
|
||||||
|
ObInsertObject@16 @ 241 NONAME
|
||||||
|
ObMakeTemporaryObject@4 @ 242 NONAME
|
||||||
|
ObOpenObjectByName@16 @ 243 NONAME
|
||||||
|
ObOpenObjectByPointer@12 @ 244 NONAME
|
||||||
|
ObpObjectHandleTable @ 245 NONAME DATA
|
||||||
|
ObReferenceObjectByHandle@12 @ 246 NONAME
|
||||||
|
ObReferenceObjectByName@20 @ 247 NONAME
|
||||||
|
ObReferenceObjectByPointer@8 @ 248 NONAME
|
||||||
|
ObSymbolicLinkObjectType @ 249 NONAME DATA
|
||||||
|
@ObfDereferenceObject@4 @ 250 NONAME
|
||||||
|
@ObfReferenceObject@4 @ 251 NONAME
|
||||||
|
PhyGetLinkState@4 @ 252 NONAME
|
||||||
|
PhyInitialize@8 @ 253 NONAME
|
||||||
|
PsCreateSystemThread@20 @ 254 NONAME
|
||||||
|
PsCreateSystemThreadEx@40 @ 255 NONAME
|
||||||
|
PsQueryStatistics@4 @ 256 NONAME
|
||||||
|
PsSetCreateThreadNotifyRoutine@4 @ 257 NONAME
|
||||||
|
PsTerminateSystemThread@4 @ 258 NONAME
|
||||||
|
PsThreadObjectType @ 259 NONAME DATA
|
||||||
|
RtlAnsiStringToUnicodeString@12 @ 260 NONAME
|
||||||
|
RtlAppendStringToString@8 @ 261 NONAME
|
||||||
|
RtlAppendUnicodeStringToString@8 @ 262 NONAME
|
||||||
|
RtlAppendUnicodeToString@8 @ 263 NONAME
|
||||||
|
RtlAssert@16 @ 264 NONAME
|
||||||
|
RtlCaptureContext@4 @ 265 NONAME
|
||||||
|
RtlCaptureStackBackTrace@16 @ 266 NONAME
|
||||||
|
RtlCharToInteger@12 @ 267 NONAME
|
||||||
|
RtlCompareMemory@12 @ 268 NONAME
|
||||||
|
RtlCompareMemoryUlong@12 @ 269 NONAME
|
||||||
|
RtlCompareString@12 @ 270 NONAME
|
||||||
|
RtlCompareUnicodeString@12 @ 271 NONAME
|
||||||
|
RtlCopyString@8 @ 272 NONAME
|
||||||
|
RtlCopyUnicodeString@8 @ 273 NONAME
|
||||||
|
RtlCreateUnicodeString@8 @ 274 NONAME
|
||||||
|
RtlDowncaseUnicodeChar@4 @ 275 NONAME
|
||||||
|
RtlDowncaseUnicodeString@12 @ 276 NONAME
|
||||||
|
RtlEnterCriticalSection@4 @ 277 NONAME
|
||||||
|
RtlEnterCriticalSectionAndRegion@4 @ 278 NONAME
|
||||||
|
RtlEqualString@12 @ 279 NONAME
|
||||||
|
RtlEqualUnicodeString@12 @ 280 NONAME
|
||||||
|
RtlExtendedIntegerMultiply@12 @ 281 NONAME
|
||||||
|
RtlExtendedLargeIntegerDivide@16 @ 282 NONAME
|
||||||
|
RtlExtendedMagicDivide@20 @ 283 NONAME
|
||||||
|
RtlFillMemory@12 @ 284 NONAME
|
||||||
|
RtlFillMemoryUlong@12 @ 285 NONAME
|
||||||
|
RtlFreeAnsiString@4 @ 286 NONAME
|
||||||
|
RtlFreeUnicodeString@4 @ 287 NONAME
|
||||||
|
RtlGetCallersAddress@8 @ 288 NONAME
|
||||||
|
RtlInitAnsiString@8 @ 289 NONAME
|
||||||
|
RtlInitUnicodeString@8 @ 290 NONAME
|
||||||
|
RtlInitializeCriticalSection@4 @ 291 NONAME
|
||||||
|
RtlIntegerToChar@16 @ 292 NONAME
|
||||||
|
RtlIntegerToUnicodeString@12 @ 293 NONAME
|
||||||
|
RtlLeaveCriticalSection@4 @ 294 NONAME
|
||||||
|
RtlLeaveCriticalSectionAndRegion@4 @ 295 NONAME
|
||||||
|
RtlLowerChar@4 @ 296 NONAME
|
||||||
|
RtlMapGenericMask@8 @ 297 NONAME
|
||||||
|
RtlMoveMemory@12 @ 298 NONAME
|
||||||
|
RtlMultiByteToUnicodeN@20 @ 299 NONAME
|
||||||
|
RtlMultiByteToUnicodeSize@12 @ 300 NONAME
|
||||||
|
RtlNtStatusToDosError@4 @ 301 NONAME
|
||||||
|
RtlRaiseException@4 @ 302 NONAME
|
||||||
|
RtlRaiseStatus@4 @ 303 NONAME
|
||||||
|
RtlTimeFieldsToTime@8 @ 304 NONAME
|
||||||
|
RtlTimeToTimeFields@8 @ 305 NONAME
|
||||||
|
RtlTryEnterCriticalSection@4 @ 306 NONAME
|
||||||
|
@RtlUlongByteSwap@4 @ 307 NONAME
|
||||||
|
RtlUnicodeStringToAnsiString@12 @ 308 NONAME
|
||||||
|
RtlUnicodeStringToInteger@12 @ 309 NONAME
|
||||||
|
RtlUnicodeToMultiByteN@20 @ 310 NONAME
|
||||||
|
RtlUnicodeToMultiByteSize@12 @ 311 NONAME
|
||||||
|
RtlUnwind@16 @ 312 NONAME
|
||||||
|
RtlUpcaseUnicodeChar@4 @ 313 NONAME
|
||||||
|
RtlUpcaseUnicodeString@12 @ 314 NONAME
|
||||||
|
RtlUpcaseUnicodeToMultiByteN@20 @ 315 NONAME
|
||||||
|
RtlUpperChar@4 @ 316 NONAME
|
||||||
|
RtlUpperString@8 @ 317 NONAME
|
||||||
|
@RtlUshortByteSwap@4 @ 318 NONAME
|
||||||
|
RtlWalkFrameChain@12 @ 319 NONAME
|
||||||
|
RtlZeroMemory@8 @ 320 NONAME
|
||||||
|
XboxEEPROMKey @ 321 NONAME DATA
|
||||||
|
XboxHardwareInfo @ 322 NONAME DATA
|
||||||
|
XboxHDKey @ 323 NONAME DATA
|
||||||
|
XboxKrnlVersion @ 324 NONAME DATA
|
||||||
|
XboxSignatureKey @ 325 NONAME DATA
|
||||||
|
XeImageFileName @ 326 NONAME DATA
|
||||||
|
XeLoadSection@4 @ 327 NONAME
|
||||||
|
XeUnloadSection@4 @ 328 NONAME
|
||||||
|
READ_PORT_BUFFER_UCHAR@12 @ 329 NONAME
|
||||||
|
READ_PORT_BUFFER_USHORT@12 @ 330 NONAME
|
||||||
|
READ_PORT_BUFFER_ULONG@12 @ 331 NONAME
|
||||||
|
WRITE_PORT_BUFFER_UCHAR@12 @ 332 NONAME
|
||||||
|
WRITE_PORT_BUFFER_USHORT@12 @ 333 NONAME
|
||||||
|
WRITE_PORT_BUFFER_ULONG@12 @ 334 NONAME
|
||||||
|
XcSHAInit@4 @ 335 NONAME
|
||||||
|
XcSHAUpdate@12 @ 336 NONAME
|
||||||
|
XcSHAFinal@8 @ 337 NONAME
|
||||||
|
XcRC4Key@12 @ 338 NONAME
|
||||||
|
XcRC4Crypt@12 @ 339 NONAME
|
||||||
|
XcHMAC@28 @ 340 NONAME
|
||||||
|
XcPKEncPublic@12 @ 341 NONAME
|
||||||
|
XcPKDecPrivate@12 @ 342 NONAME
|
||||||
|
XcPKGetKeyLen@4 @ 343 NONAME
|
||||||
|
XcVerifyPKCS1Signature@12 @ 344 NONAME
|
||||||
|
XcModExp@20 @ 345 NONAME
|
||||||
|
XcDESKeyParity@8 @ 346 NONAME
|
||||||
|
XcKeyTable@12 @ 347 NONAME
|
||||||
|
XcBlockCrypt@20 @ 348 NONAME
|
||||||
|
XcBlockCryptCBC@28 @ 349 NONAME
|
||||||
|
XcCryptService@8 @ 350 NONAME
|
||||||
|
XcUpdateCrypto@8 @ 351 NONAME
|
||||||
|
RtlRip@12 @ 352 NONAME
|
||||||
|
XboxLANKey @ 353 NONAME DATA
|
||||||
|
XboxAlternateSignatureKeys @ 354 NONAME DATA
|
||||||
|
XePublicKeyData @ 355 NONAME DATA
|
||||||
|
HalBootSMCVideoMode @ 356 NONAME DATA
|
||||||
|
IdexChannelObject @ 357 NONAME DATA
|
||||||
|
HalIsResetOrShutdownPending@0 @ 358 NONAME
|
||||||
|
IoMarkIrpMustComplete@4 @ 359 NONAME
|
||||||
|
HalInitiateShutdown@0 @ 360 NONAME
|
||||||
|
RtlSnprintf @ 361 NONAME
|
||||||
|
RtlSprintf @ 362 NONAME
|
||||||
|
RtlVsnprintf @ 363 NONAME
|
||||||
|
RtlVsprintf @ 364 NONAME
|
||||||
|
HalEnableSecureTrayEject@0 @ 365 NONAME
|
||||||
|
HalWriteSMCScratchRegister@4 @ 366 NONAME
|
||||||
|
MmDbgAllocateMemory@8 @ 374 NONAME
|
||||||
|
MmDbgFreeMemory@8 @ 375 NONAME
|
||||||
|
MmDbgQueryAvailablePages@0 @ 376 NONAME
|
||||||
|
MmDbgReleaseAddress@8 @ 377 NONAME
|
||||||
|
MmDbgWriteCheck@8 @ 378 NONAME
|
||||||
|
|
@ -14,8 +14,8 @@ Game * g_game;
|
||||||
// Address: 0x0006F9E0
|
// Address: 0x0006F9E0
|
||||||
// Matching: yes
|
// Matching: yes
|
||||||
void main(void) {
|
void main(void) {
|
||||||
g_game = new Game(NULL, 0);
|
g_game = new Game(NULL, 0);
|
||||||
g_game->initRootExecObj();
|
g_game->initRootExecObj();
|
||||||
g_game->mainLoop();
|
g_game->mainLoop();
|
||||||
delete g_game;
|
delete g_game;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Like other CRT code, there's some magic here with symbols that get special
|
||||||
treatment from the compiler and linker.
|
treatment from the compiler and linker.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Win32.hpp"
|
#include "../Win32.hpp"
|
||||||
|
|
||||||
|
|
||||||
// Every program is supposed to have a main(), so we can just assume its
|
// Every program is supposed to have a main(), so we can just assume its
|
||||||
|
|
@ -29,4 +29,5 @@ The linker automatically sets this function to the entrypoint.
|
||||||
DWORD _mainXapiStartup(LPVOID const lpThreadParameter) {
|
DWORD _mainXapiStartup(LPVOID const lpThreadParameter) {
|
||||||
/* Runs some initialization and then calls main() */
|
/* Runs some initialization and then calls main() */
|
||||||
main();
|
main();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
65
ghidra/ghidra_scripts/EnhancedExport.java
Normal file
65
ghidra/ghidra_scripts/EnhancedExport.java
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
// TODO
|
||||||
|
//
|
||||||
|
// @category Export
|
||||||
|
|
||||||
|
import ghidra.app.script.GhidraScript;
|
||||||
|
import ghidra.program.flatapi.FlatProgramAPI;
|
||||||
|
import ghidra.program.model.listing.Data;
|
||||||
|
import ghidra.program.model.listing.Function;
|
||||||
|
import ghidra.program.model.symbol.SourceType;
|
||||||
|
import ghidra.program.model.symbol.Symbol;
|
||||||
|
import ghidra.program.model.symbol.SymbolIterator;
|
||||||
|
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
|
||||||
|
public class EnhancedExport extends GhidraScript{
|
||||||
|
@Override
|
||||||
|
public void run() throws Exception {
|
||||||
|
final FileWriter out = new FileWriter(askFile("Specify output file", "OK"));
|
||||||
|
|
||||||
|
final SymbolIterator iter = currentProgram.getSymbolTable()
|
||||||
|
.getPrimarySymbolIterator(true);
|
||||||
|
while (iter.hasNext() && !monitor.isCancelled()) {
|
||||||
|
final Symbol s = iter.next();
|
||||||
|
if (s.getSource() != SourceType.USER_DEFINED) continue;
|
||||||
|
|
||||||
|
final Object obj = s.getObject();
|
||||||
|
if (obj != null) switch (obj) {
|
||||||
|
case Data d:
|
||||||
|
out.write(
|
||||||
|
"0x" + s.getAddress().toString() + "\t" +
|
||||||
|
"d" + "\t" +
|
||||||
|
d.getDataType().getDisplayName() + "\t" +
|
||||||
|
s.getName(true) + "\n"
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Function f:
|
||||||
|
out.write(
|
||||||
|
"0x" + s.getAddress().toString() + "\t" +
|
||||||
|
"f" + "\t" +
|
||||||
|
f.getSignature(true).getReturnType()
|
||||||
|
.getDisplayName() + "\t" +
|
||||||
|
f.getCallingConventionName() + "\t" +
|
||||||
|
f.getName(true) +
|
||||||
|
String.join(
|
||||||
|
"\t",
|
||||||
|
Arrays.stream(f.getSignature(true).getArguments())
|
||||||
|
.map(arg -> "\t" +
|
||||||
|
arg.getDataType().getDisplayName() + "\t" +
|
||||||
|
arg.getName()
|
||||||
|
).toArray(String[]::new)
|
||||||
|
) +
|
||||||
|
(f.hasVarArgs() ? "\t..." : "") + "\n"
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
out.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,10 +17,9 @@ The approach of this decompilation is to:
|
||||||
|
|
||||||
We are currently engaging in the first two steps simultaneously, decompiling
|
We are currently engaging in the first two steps simultaneously, decompiling
|
||||||
code as it's delinked. Further details on these steps can be found in the
|
code as it's delinked. Further details on these steps can be found in the
|
||||||
[contribution guide](documentation/gettingstarted.md). Step 3 will use the
|
[contribution guide](documentation/gettingstarted.md). Step 3 uses the linker
|
||||||
linker from the same Visual C++ 7.0 already used to compile object files. Step
|
from the same Visual C++ 7.0 already used to compile object files. Step 4 uses
|
||||||
4 is expected to use the `cxbe` tool found in e.g.
|
the `cxbe` tool found in e.g. [nxdk](https://github.com/XboxDev/nxdk).
|
||||||
[nxdk](https://github.com/XboxDev/nxdk).
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Anybody interested in joining the effort is welcome to read the
|
Anybody interested in joining the effort is welcome to read the
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue