mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-02-20 02:07:02 +03:00
We now have generation of an import library for linking against the Xbox kernel, linking together an .exe, and converting it to an .xbe via cxbe. Some further development of tooling aside (including filling in some features in cxbe to better match the original JSRF executable), all that remains now is to write decompiled code.
47 lines
1.4 KiB
Makefile
47 lines
1.4 KiB
Makefile
# JSRF Decompilation Makefile
|
|
# An NMAKE Makefile to compile the game with the Visual C++ 7.0 toolchain
|
|
|
|
# All object files to link together
|
|
OBJ = src/JSRF/Jet2.obj src/JSRF/Core.obj src/JSRF/GameData.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
|
|
# until we've made at least stubs for everything in the game
|
|
src/JSRF/Jet2.exe: $(OBJ) $(LIB)
|
|
LINK.EXE /NOLOGO /NODEFAULTLIB /MERGE:.CRT=.data /OUT:$@ $**
|
|
|
|
# Create import library for Xbox kernel
|
|
.def.lib:
|
|
LIB.EXE /NOLOGO /MACHINE:X86 /DEF:$< /OUT:$@
|
|
|
|
# Compile object files from source
|
|
.cpp.obj:
|
|
CL.EXE /nologo /Wall /W4 /Ogityb0 /GfX /Fo$@ /c $<
|
|
|
|
|
|
# Header files used for each object
|
|
src/JSRF/Jet2.obj: src/JSRF/Core.hpp src/Std.hpp src/XDK/D3D.hpp\
|
|
src/XDK/Win32.hpp
|
|
|
|
src/JSRF/Core.obj: src/JSRF/Core.hpp src/Smilebit/MMatrix.hpp src/Std.hpp\
|
|
src/XDK/D3D.hpp src/XDK/Win32.hpp
|
|
|
|
src/JSRF/GameData.obj: src/JSRF/GameData.hpp
|
|
|
|
src/XDK/CRT/CRT0.obj: src/XDK/Win32.hpp
|