jak-project/goalc/emitter
water111 4f537d4a71
[jak3] Set up ckernel (#3308)
This sets up the C Kernel for Jak 3, and makes it possible to build and
load code built with `goalc --jak3`.

There's not too much interesting here, other than they switched to a
system where symbol IDs (unique numbers less than 2^14) are generated at
compile time, and those get included in the object file itself.

This is kind of annoying, since it means all tools that produce a GOAL
object file need to work together to assign unique symbol IDs. And since
the symbol IDs can't conflict, and are only a number between 0 and 2^14,
you can't just hash and hope for no collisions.

We work around this by ignoring the IDs and re-assigning our own. I
think this is very similar to what the C Kernel did on early builds of
Jak 3 which supported loading old format level files, which didn't have
the IDs included.

As far as I can tell, this shouldn't cause any problems. It defeats all
of their fancy tricks to save memory by not storing the symbol string,
but we don't care.
2024-01-16 19:24:02 -05:00
..
CallingConvention.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
CallingConvention.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
CodeTester.cpp support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
CodeTester.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
IGen.h [jak2] GOAL side texture animation stuff (#2766) 2023-06-24 10:11:47 -04:00
Instruction.h [goalc] reduce compiler memory usage (#2247) 2023-02-24 18:32:30 -05:00
ObjectFileData.cpp Add basic features for types and objects (#52) 2020-09-19 13:22:14 -04:00
ObjectFileData.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
ObjectGenerator.cpp [jak3] Set up ckernel (#3308) 2024-01-16 19:24:02 -05:00
ObjectGenerator.h game: Remove temporary CLI arg shim in gk (#2532) 2023-04-22 14:13:57 -04:00
Register.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
Register.h Get the project compiling on Apple Silicon macOS natively (arm64) (#2827) 2023-07-16 11:13:48 -04:00