Run make clean prior to switching between ido and gcc.
make -j GCC=1 DEBUG=1
Adding debug is not necessary but recommended for enhanced crash screen and debug menus.
Add new files to test with gcc in safe_gcc.mk
or
run python3 mkgccgen.py which will overwrite safe_gcc.mk with every file it believes viable for gcc (It adds too many files).
Changes:
Moved random seed variables from buffers.c to memory.c to allow proper placement of trig tables during shifts.
AVOID_UB bug fix for flashy text.
Bug fix for itemboxes
Cleaned some headers up.
Cleaned up some defines
Renamed laikitu to lakitu
Placed trig tables bss variable into its own file to prevent gcc reordering.
Deleted linker_segments.h, hard-coded segments are now defined in the linker script.
Issues:
common_textures works using gcc if uncompressed otherwise the game will crash in a few courses.
Do not GCC compressed .data files. In testing they should GCC just fine. However, the build steps for compression override GCC. Plus, you need to GCC the .inc.mio0.s file not the .inc.c. In testing, removing compression and then doing GCC works just fine.
How to use the GCC test build:
make clean
prior to switching between ido and gcc.make -j GCC=1 DEBUG=1
Add new files to test with gcc in
safe_gcc.mk
or runpython3 mkgccgen.py
which will overwritesafe_gcc.mk
with every file it believes viable for gcc (It adds too many files).Changes:
Issues:
Do not GCC compressed .data files. In testing they should GCC just fine. However, the build steps for compression override GCC. Plus, you need to GCC the .inc.mio0.s file not the .inc.c. In testing, removing compression and then doing GCC works just fine.