Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jak3 Build Environment #3098

Merged
merged 27 commits into from
Jan 16, 2024
Merged

Jak3 Build Environment #3098

merged 27 commits into from
Jan 16, 2024

Conversation

jabermony
Copy link
Contributor

This sets out the bones of a Jak 3 build, many things are stubbed out, guessed, or copied from Jak 2 but it should at least be good enough to:
run task set-game-jak3
launch the repl
run builds from the repl

build outputs themselves are untested but the build itself runs without errors

These have been stubbed out as the previous entries had been taken from Jak2
and were more incorrect.
These have been removed as MUS is no longer part of the iso.
The previous version would generate files by directly copying sections
into files named after the headers in dgo.txt, this format didn't match
the expectation for use with the build system as each .o/.go filename was
output as a pair with it's basename where the build system expects just the
filename as a string.
These have been made with generate_dgo_files.py.
They may require further manual modification.
This duplcates the Jak2 entry for now, running on the assumption this
will still be correct for Jak3.
@OpenGOALBot
Copy link
Collaborator

Can one of the admins verify this patch?

This has been done to fix a decompilation bug caused by not using
new types for Jak 3, the condition for this is found in ObjectFileDB_IR2.cpp.
Additionally this extends the same update to other matching checks in the
decompiler code, running on the base assumption that the Jak 2 treatment
will likely be a better default that Jak 1.
@jabermony
Copy link
Contributor Author

I've pushed a change for most version == GameVersion::Jak2 checks to make them version >= GameVersion::Jak2 in decompiler
I've left any switch statements with a default case that asserts an error untouched as those are probably better done as/when they come up as they can be properly checked and handled when they come up.

@open-goal open-goal deleted a comment from iliasdevpas Nov 6, 2023
@jabermony jabermony marked this pull request as draft December 31, 2023 13:02
@@ -662,7 +662,7 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input,
}
}

if (env.version == GameVersion::Jak2 && tc(dts, TypeSpec("symbol"), arg1_type) &&
if (env.version >= GameVersion::Jak2 && tc(dts, TypeSpec("symbol"), arg1_type) &&
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this one should be reverted. String->symbol is different and shouldn't use the jak2's constant.

@xTVaser xTVaser marked this pull request as ready for review January 16, 2024 00:46
@xTVaser
Copy link
Member

xTVaser commented Jan 16, 2024

add to whitelist

@xTVaser xTVaser merged commit 0742779 into open-goal:master Jan 16, 2024
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants