Progress Report - Dec. 2022
Happy holidays.
As one would expect many of us took a bit of a break this month so it isn't as earth-shattering as last month's report, but there is still plenty to talk about.
Project Level News
This month's release is:
0.1.31
OpenGOAL Tooling (jak-project repo)- distributed via the
1.7.0
Launcher release
Jak 1
Fix a debug menu regression
Back in September, we made a small mistake related to the debug menu. For certain options, they would appear always enabled / non-responsive.
This change was finally released to the public last month and several people noticed it.
So this has now been fixed and is the reason why we are pushing out atleast one release every month to catch these problems. We don't want them to pile up and have to fix them all at once in a year from now -- so please don't hesitate to report them!
Jak 2 - Decompilation
Music!
Lots of sound work bled over from the end of last month / early december. In addition to sound effects working, so does the music now.
A bunch of files
This month we merged the decompilation of a bunch of files. A lot of these files were simple ones such as:
- particles
- cutscenes
- ocean data tables
- header files
But it's always nice to get the easy stuff out of the way and reduce the laundry list of remaining files. This is the explanation for the massive spike in line count recently.
Other notable files that were finished:
- lights
- target-death
- drawable
Sound fixes
It's amazing having sound so early on development, the silence of working on Jak 1 for so long was so much worse in hindsight.
Most sound issues that have been found so far have been very minor, the most interesting of which to talk about relates to how on the original hardware null pointer dereferences did not cause a crash. Well unfortunately on a modern PC it does, and this became obvious when playing a level with no music.
Miscellaneous game fixes
- Jetboard code was fixed to prevent some crashes
- Crash related to dark bomb and giant dark jak was fixed
- Dark jak works! (mostly, not texture morphing yet)
Guns!
Guns are mostly usable, while their effects are not yet perfect.
Decompilation Tooling
Nicer offline test output
With the recent changes making the offline tests run way faster by using many threads -- this made the output an absolute unorganized mess.
There is still some work to do:
- the code is not aware of your terminal size which leads to issues
- errors can be interwoven into the output instead of waiting until the end
But it's a good start, at the same time we also cleaned up the offline test code quite a bit.
Update goal_src files via glob patterns
If you need to update a bunch of gsrc files at once, consider using the following command:
task update-gsrc-glob GLOB="**/*-part*.gc"
This will update gsrc files with part
in their name -- if they are also in ref tests (so uncompleted ones aren't touched)
Partially compiling on Intel MacOS
Someone got a Mac, so there's an incentive for the project to compile on one now.
We added CI that compiles some of the major parts of the project -- you still can't actually run the game, but it's nice to finally have the project compiling on the platform so we can slowly work towards supporting it and catch small bugs along the way.
Better decompiled output related to Mips2C
There's a good amount of code we have to mips2c in jak2, it's a more complex game.
With that said, it's a fairly manual process. These changes try to make it a little bit less manual -- though there's definitely still room for improvement.