Commit graph

36 commits

Author SHA1 Message Date
KeybadeBlox
4048526736 Function name updates
In the decompilation proper, the SaveData "Vs" methods have been renamed
to "Unused" methods (they have nothing to do with multiplayer).  Other
symbols in the symbol table have also been updated, particularly
relating to CActSequence (previously known as Director).
2026-04-09 21:53:51 -04:00
KeybadeBlox
836b5eaa41 Incorporate known names from Smilebit code
The Yakuza 1 and 2 rereleases on the Wii U export function symbols,
preserving their names, and some debug data was also available in a PS2
release, providing some struct definitions.  These have been used to
rename analogous classes, functions, and member variables to the same
names used by Smilebit, plus a more general imitation of their naming
and typing conventions (i.e. Win32 style).
2026-03-31 20:24:13 -04:00
KeybadeBlox
57fc53ebfb Add IMAGE_TLS_DIRECTORY32 struct
With this, everything is delinking again.
2026-03-21 22:35:37 -04:00
KeybadeBlox
da6865e5f6 Fix typo in Core.hpp
Was making builds fail.
2026-03-21 20:56:49 -04:00
KeybadeBlox
b95a664688 Add ehdata.h
Bunch of spooky low-level exception handling stuff needed to delinking
working again.
2026-03-20 23:29:39 -04:00
KeybadeBlox
e58f774d82 Add various data structures
Stuff needed to get Core.obj delinking again.
2026-03-20 23:29:02 -04:00
KeybadeBlox
76e7714722 Typo 2026-03-20 10:09:33 -04:00
KeybadeBlox
4dded02b58 Minor revisions to xapi0.c comments 2026-02-23 08:23:02 -05:00
KeybadeBlox
823b19371c Fully decompile xapi0 2026-02-22 14:04:18 -05:00
KeybadeBlox
4e20347b7c Decompile mainCRTStartup()
Incidental changes include fixes for Xapi in the Makefille and
objdiff.json, as well as new compiler flags for Xapi.
2026-02-22 10:41:15 -05:00
KeybadeBlox
cbd63865e2 Rename Smilebit library to MUSASHI
Strings in the .rdata portion of the Smilebit in-house library code
suggest that this was its name, with its contents having names beginning
with an M (whence MMATRIX, for example).
2026-02-22 10:37:59 -05:00
KeybadeBlox
9cfd8b5bf3 Delink/begin decompiling entry point
That is, xapi0.obj, which has been renamed from crt0.obj because it
appears to be part of the Xbox libraries rather than the C runtime.
2026-02-20 21:50:00 -05:00
KeybadeBlox
aac010eb71 Add PlayerCharId type 2026-02-19 21:16:11 -05:00
KeybadeBlox
be4946eb98 Replace Matching: with Status:
We'd rather have three stages (unimplemented, nonmatching, matching)
than just matching or not.
2026-02-19 21:11:42 -05:00
KeybadeBlox
adc30bb531 Move Std.hpp into CRT directory
It's also been renamed to stddef.h since all it contained was the
definition of NULL, which lives in that header in a standard C library.
2026-02-18 19:22:13 -05:00
KeybadeBlox
d435282a8b Compile XDK code as C
It appears to be all C code (especially the non-C++ parts of the C
runtime, of course), so we'll compile it as such.
2026-02-17 10:27:50 -05:00
KeybadeBlox
149af27b9c Fix CRT calling conventions 2026-02-17 09:56:58 -05:00
KeybadeBlox
d81bd646fa Tiny source tweaks
Fixing some errors in the C runtime and making the main() formatting
more similar to everything else.
2026-02-14 23:12:06 -05:00
KeybadeBlox
c38d9b5628 Tiny steps towards implementing C runtime 2026-02-14 12:34:28 -05:00
KeybadeBlox
022582003d objdiff symbol matching refinements
With name mangling, objdiff.json no longer needs massive lists of which
names to match to what.  Some function signatures were also minorly
refined.
2026-02-12 21:19:46 -05:00
KeybadeBlox
e668b52cd0 Add to GameObj::removeChildrenFromObjList() 2026-02-05 21:11:11 -05:00
KeybadeBlox
63002e0f08 Add data type import for Ghidra 2026-02-04 19:52:12 -05:00
KeybadeBlox
44a8d704ef Populate JSRF/GameData.cpp 2026-01-12 22:59:47 -05:00
KeybadeBlox
fbc5619d6a Begin populating JSRF/GameData.hpp 2026-01-12 09:46:56 -05:00
KeybadeBlox
d11f2fd538 Delink JSRF/GameData 2026-01-11 20:46:54 -05:00
KeybadeBlox
683818b637 Separate compiler optimization flags
The /O2 used before was actually a preset for a bunch of more specific
flags, which are now written explicitly for clarity and easier
modification later.
2026-01-03 16:13:44 -05:00
KeybadeBlox
4dae5206c0 Minor decompiling in JSRF/Core 2026-01-02 23:14:59 -05:00
KeybadeBlox
08abfd3913 Finish populating JSRF/Core 2026-01-02 00:05:52 -05:00
KeybadeBlox
f8578b0871 Continue populating JSRF/Core 2025-12-31 23:03:36 -05:00
KeybadeBlox
71937e4a97 Begin populating JSRF/Core 2025-12-31 11:14:07 -05:00
KeybadeBlox
22a8c350eb Correct .data section ranges in delinked objects
The change in the previous commit was a silly case of not thinking
things through, not realizing that the .data range moved to Core.obj was
nowhere near the beginning of the section as it should be.  g_game has
been moved back into Jet2.obj (time will tell if this is correct) and a
missed data strucure at the beginning of .data (where it ought to be)
now makes up Core.obj's .data portion.
2025-12-30 00:39:14 -05:00
KeybadeBlox
a25790e8a6 Delink Core.obj 2025-12-29 00:44:27 -05:00
KeybadeBlox
5692ee9531 Minor code tidying
Mostly consistency with file headers and other such trifling things.
2025-12-18 22:09:47 -05:00
KeybadeBlox
b40e9a0c56 Rename Microsoft decompile directory to XDK
Felt more appropriate to name it after the library it's implementing
than the vendor.
2025-12-18 21:55:03 -05:00
KeybadeBlox
1c8eb137ee Arrange decompilation source/target in directories 2025-12-17 21:46:17 -05:00
KeybadeBlox
1a48d4323e 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.
2025-12-16 22:30:49 -05:00