Commit Graph

280 Commits

Author SHA1 Message Date
Aloqas fa2f652d2f jak3: Dev commentary subtitles (#4281)
Subtitles for ND dev commentary tracks
2026-06-03 00:24:44 -04:00
OpenGOAL Bot bbb9abdbf8 CI: Periodic Controller Database Update (#4273)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-06-03 00:13:46 -04:00
Luís Mota 18988ff9fe Update Jak 1 Portuguese (pt-pt) translations (#4263)
Hello guys, I'm new here.
To give my contribution I've fully translated the intro sequence for Jak
1, some lines were missing.
2026-05-05 00:23:22 -04:00
OpenGOAL Bot 87190890cf CI: Periodic Controller Database Update (#4262)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-05-04 17:36:21 -04:00
Aloqas 553edd3e68 jak2/jak3: Add subtitle speakers (#4230)
Adds subtitle speaker names to jak2/jak3 cutscenes, as well as the
progress menu option

<img width="962" height="752" alt="Näyttökuva 2026-04-18 005744"
src="https://github.com/user-attachments/assets/66b1cc46-9623-4e43-ad65-df7302a0156d"
/>
2026-05-04 18:49:08 +02:00
OpenGOAL Bot 36d8213dfb CI: Periodic Controller Database Update (#4251)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-27 19:38:14 -04:00
OpenGOAL Bot 67cd649cb9 CI: Periodic Controller Database Update (#4240)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-20 18:46:52 -04:00
Matt Dallmeyer 2f51e355dd [jak3] Implement trick display text secret (#4208)
ported the implementation from jak 2 into jak3 pretty much exactly.
added a new color for L2 tricks, and shrunk the text/width a bit so it
wouldn't end up covered by the minimap.

also fixed small bug in jak 2 (and 3) where dismounting jetboard
wouldn't reset the trick display, so displayed score wouldn't match the
granted score

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-04-14 01:40:27 -04:00
Aloqas 0e6c93efd8 jak2/jak3: Flags for custom languages (#4209)
<img width="224" height="39" alt="Näyttökuva 2026-04-12 013017"
src="https://github.com/user-attachments/assets/fbfc8e6d-83f7-496c-bbfd-d1d1df955359"
/>
<img width="185" height="39" alt="Näyttökuva 2026-04-12 013027"
src="https://github.com/user-attachments/assets/8ba826e3-8268-4e37-bef5-4404acef1f53"
/>
<img width="181" height="35" alt="Näyttökuva 2026-04-12 143327"
src="https://github.com/user-attachments/assets/bbd4da10-2ead-4f7f-a5ca-9bdf4f5f2c1a"
/>
<img width="286" height="35" alt="Näyttökuva 2026-04-12 143339"
src="https://github.com/user-attachments/assets/60fc2581-b92e-42a4-9a13-6f51587112a1"
/>
<img width="405" height="38" alt="Näyttökuva 2026-04-12 013059"
src="https://github.com/user-attachments/assets/a641f6c3-ba8f-473f-a680-0828a9fd1bcf"
/>
<img width="210" height="37" alt="Näyttökuva 2026-04-12 143351"
src="https://github.com/user-attachments/assets/d0ce1da8-2fe6-4fdb-b943-01b595606dbb"
/>
<img width="203" height="37" alt="Näyttökuva 2026-04-12 143400"
src="https://github.com/user-attachments/assets/a8f81b2d-2a96-46a5-bebb-6839ef8fc18e"
/>
<img width="220" height="37" alt="Näyttökuva 2026-04-12 143410"
src="https://github.com/user-attachments/assets/fe9a12b9-ea23-48bb-ba0a-e310eb5e13e2"
/>
<img width="179" height="38" alt="Näyttökuva 2026-04-12 143418"
src="https://github.com/user-attachments/assets/d10926e2-81f9-479f-8df5-078f823db8f0"
/>
<img width="338" height="38" alt="Näyttökuva 2026-04-12 143427"
src="https://github.com/user-attachments/assets/4bc9edc0-d914-4e2d-9b9d-c662e2a6bd80"
/>
<img width="220" height="39" alt="Näyttökuva 2026-04-12 143439"
src="https://github.com/user-attachments/assets/ca8134e2-aa37-4e51-b23e-87a816514b5f"
/>
<img width="231" height="37" alt="Näyttökuva 2026-04-12 013158"
src="https://github.com/user-attachments/assets/69af6c29-699c-41c8-a93d-033497c1ba18"
/>
<img width="210" height="37" alt="Näyttökuva 2026-04-12 013205"
src="https://github.com/user-attachments/assets/1cd8cf1c-2ff0-4b3a-becc-902302466180"
/>

Needs testing, I was having issues with Visual Studio so I couldn't
fully test

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-04-14 01:15:18 -04:00
OpenGOAL Bot 5acb70ab4d CI: Periodic Controller Database Update (#4218)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-13 13:28:14 -04:00
RoyalForgotten 89468c11de Jak 3 french subtitles (#4197)
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-04-09 20:28:39 -04:00
OpenGOAL Bot b5269a80ee CI: Periodic Controller Database Update (#4188)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-06 19:13:38 -04:00
Hat Kid dc203502fc jak3: fix potential wascity-defend softlock, stick sens setting, fix freeze-screen regression (#4182)
There was some bad manual decomp in `wasdef-manager` that caused the
mission to sometimes softlock, preventing Jak from exiting the turret
after destroying all Makers.

Also adds stick sensitivity setting from Jak 2 and fixes a regression
with the Light Jak freeze screen overlay on PC aspect ratios.

Closes #4179 
Closes #4154
2026-04-05 16:58:19 +02:00
Tyler Wilding 7a7edf64ee jak3: remove title casing mistakes (#4156)
Title casing was done in this script (which we used when going from jak1
to jak2) because we went from a game that had no lowercase letters, to
one with them.

Not the case for jak2 -> jak3, strings recopied correctly without
changing the casing.
2026-04-02 18:00:33 -04:00
Tyler Wilding c4d34e3d0e jak3: Finish font DB implementation (support Cyrillic) (#4147)
Also add in all the other language stubs / copy over the custom text to
the correct enum ids.

Closes #4001
2026-04-02 01:10:39 -04:00
Tyler Wilding d0042c33dd i18n: revert recent finnish changes from crowdin (#4143)
If these were not meant to be changed, they should be updated on crowdin
-- I did not check (maybe they were), but on the next translation update
I will assume whatever comes from crowdin is correct.
2026-03-30 19:03:57 -04:00
Tyler Wilding 5f300ce503 New Crowdin updates (#4142) 2026-03-30 18:59:35 -04:00
OpenGOAL Bot 452d873135 CI: Periodic Controller Database Update (#4141)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-03-30 18:33:57 -04:00
OpenGOAL Bot 8a0ffc2742 CI: Periodic Controller Database Update (#4138)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-03-26 00:12:45 -04:00
OpenGOAL Bot 4db30a5720 CI: Periodic Controller Database Update (#4135)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-03-17 01:17:57 -04:00
OpenGOAL Bot c9351fd6de CI: Periodic Controller Database Update (#4132)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-03-09 23:38:43 -04:00
OpenGOAL Bot 9dbadfdef9 CI: Periodic Controller Database Update (#4129)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-03-02 18:32:57 -05:00
OpenGOAL Bot 60cf8f7b46 CI: Periodic Controller Database Update (#4108)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-12-29 20:35:28 -05:00
Tyler Wilding c0b15878e1 New Crowdin updates (#4107) 2025-12-28 17:35:29 -05:00
Aloqas f4512a41dd Jak 3 Finnish translation + Update Jak 1 & 2 translations (#4028)
Massive overhaul of Finnish translations

I guess it's time to finally push this out

I'll go insane if I have to proofread one more time :P
Every time I just realize my translations sucked and I keep tweaking
everything

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2025-12-28 15:12:26 -05:00
OpenGOAL Bot f8d5aaffe9 CI: Periodic Controller Database Update (#4102)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-12-15 23:11:33 -05:00
OpenGOAL Bot f17cb85273 CI: Periodic Controller Database Update (#4084)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-12-08 17:54:15 -05:00
Matt Dallmeyer 512696b625 [jak3] Support dpad pacman controls (#4083)
Not sure if we really want this change in vanilla openGOAL, but I had it
working on a branch so figured I'd PR it.
2025-12-08 17:43:04 -05:00
Matt Dallmeyer 2e7bbf2110 [jak3] Implement city-peace and desert-peace cheats (#4079)
https://www.youtube.com/watch?v=VrEfiMFvUKU
2025-11-20 16:27:01 +01:00
OpenGOAL Bot 1f8362d991 CI: Periodic Controller Database Update (#4077)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-11-10 16:36:44 -05:00
Grateful Forest 0fa93ce7b8 jak1: subtitle fixes (#4063)
Listened with RIG 500 headphones:

The farmer:
<img width="1920" height="1080" alt="1"
src="https://github.com/user-attachments/assets/0f399461-653e-412a-8e33-6a33e7f59277"
/>

I really could not hear that "spitting", percussive sound of the "p" for
"pack". I think it's unlikely the line is "pack" or "packed into the
pen".
The strong, healthy bass of "b" is more likely. Furthermore, he points
visually over his shoulder in the same moment, physically referring to
his own "back" as if referencing the past or a previous state.

The geologist:
<img width="1920" height="1080" alt="2"
src="https://github.com/user-attachments/assets/7ff7f4c3-2ded-41c1-84c7-1f6b44c5b081"
/>
"Lighting" to "lightning" would match consistency to the other
references to lightning moles. Listening to the sound, you can hear the
distinctly "nasally" sound of the "n" connecting the "light" and "ing".
2025-11-04 16:40:22 -05:00
OpenGOAL Bot e0fd06977f CI: Periodic Controller Database Update (#4062)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-11-03 16:59:50 -05:00
Tyler Wilding 9e8470e398 New Crowdin updates (#4027) 2025-09-26 20:36:15 -04:00
OpenGOAL Bot 0cb22064d7 CI: Periodic Controller Database Update (#4019)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-09-26 19:11:19 -04:00
OpenGOAL Bot aad1b53ce3 CI: Periodic Controller Database Update (#4017)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-09-02 19:23:29 -04:00
gsanjin 6b2ded266b Add Bosnian language to Jak 1 (#4011)
Added Bosnian language - game and subtitles, complete translation of Jak
1.

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2025-08-29 21:14:27 -04:00
OpenGOAL Bot ccda20a5d4 CI: Periodic Controller Database Update (#4010)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-08-26 19:41:25 -04:00
OpenGOAL Bot d825d9dd25 CI: Periodic Controller Database Update (#4004)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-08-19 19:29:00 -04:00
Tyler Wilding 006d24b29a game: Support korean in Jak 2 and Jak 3 (#3988)
Resolves #3075 

TODO before merge:
- [x] Properly draw non-korean strings while in korean mode (language
selection)
- [x] Check jak 3
- [x] Translation scaffolding (allow korean characters, add to Crowdin,
fix japanese locale, etc)
- [x] Check translation of text lines
- [x] Check translation of subtitle lines
- [x] Cleanup PR / some performance optimization (it's take a bit too
long to build the text and it shouldn't since the information is in a
giant lookup table)
- [x] Wait until release is cut

I confirmed the font textures are identical between Jak 2 and Jak 3, so
thank god for that.

Some examples of converting the korean encoding to utf-8. These show off
all scenarios, pure korean / korean with ascii and japanese / korean
with replacements (flags):
<img width="316" height="611" alt="Screenshot 2025-07-26 191511"
src="https://github.com/user-attachments/assets/614383ba-8049-4bf4-937e-24ad3e605d41"
/>
<img width="254" height="220" alt="Screenshot 2025-07-26 191529"
src="https://github.com/user-attachments/assets/1f6e5a6c-8527-4f98-a988-925ec66e437d"
/>

And it working in game. `Input Options` is a custom not-yet-translated
string. It now shows up properly instead of a disgusting block of
glyphs, and all the original strings are hopefully the same
semantically!:
<img width="550" height="493" alt="Screenshot 2025-07-26 202838"
src="https://github.com/user-attachments/assets/9ebdf6c0-f5a3-4a30-84a1-e5840809a1a2"
/>

Quite the challenge. The crux of the problem is -- Naughty Dog came up
with their own encoding for representing korean syllable blocks, and
that source information is lost so it has to be reverse engineered.
Instead of trying to figure out their encoding from the text -- I went
at it from the angle of just "how do i draw every single korean
character using their glyph set".

One might think this is way too time consuming but it's important to
remember:
- Korean letters are designed to be composable from a relatively small
number of glyphs (more on this later)
- Someone at naughty dog did basically this exact process
- There is no other way! While there are loose patterns, there isn't an
overarching rhyme or reason, they just picked the right glyph for the
writing context (more on this later). And there are even situations
where there IS NO good looking glyph, or the one ND chose looks awful
and unreadable (we could technically fix this by adjusting the
positioning of the glyphs but....no more)!

Information on their encoding that gets passed to `convert-korean-text`:
- It's a raw stream of bytes
- It can contain normal font letters
- Every syllable block begins with: `0x04 <num_glyphs> <...the glyph
bytes...>`
- DO NOT confuse `num_glyphs` with num jamo, because some glyphs can
have multiple jamo!
- Every section of normal text starts with `0x03`. For example a space
would be `0x03 0x20`
- There are a very select few number of jamo glyphs on a secondary
texture page, these glyph bytes are preceeded with a `0x05`. These jamo
are a variant of some of the final vowels, moving them as low down as
possible.

Crash course on korean writing:
- Nice resource as this is basically what we are doing -
https://glyphsapp.com/learn/creating-a-hangeul-font
- Korean syllable blocks have either 2 or 3 jamo. Jamo are basically
letters and are the individual pieces that make up the syllable blocks.
- The jamo are split up into "initial", "medial" and "final" categories.
Within the "medial" category there are obvious visual variants:
  - Horizontal
  - Vertical
  - Combination (horizontal + a vertical)
- These jamo are laid out in 6 main pre-defined "orientations":
  - initial + vertical medial
  - initial + horizontal medial
  - initial + combination
  - initial + vertical medial + final
  - initial + horizontal medial + final
  - initial + combination + final
- Sometimes, for stylistic reasons, jamo will be written in different
ways (ie. if there is nothing below a vertical vowel will be extended).
  - Annoying, and ND's glyph set supports this stylistic choice!
- There are some combination of jamo that are never used, and some that
are only used for a single word in the entire language!

With all that in mind, my basic process was:
- Scan the game's entire corpus of korean text, that includes subtitles.
It's very easy to look at the font texture's glyphs and assign them to
their respective jamo
- This let me construct a mapping and see which glyphs were used under
which context
- I then shoved this information into a 2-D matrix in excel, and created
an in-game tool to check every single jamo permutation to fill in the
gaps / change them if naughty dogs was bad. Most of the time, ND's
encoding was fine.
-
https://docs.google.com/spreadsheets/d/e/2PACX-1vTtyMeb5-mL5rXseS9YllVj32BGCISOGZFic6nkRV5Er5aLZ9CLq1Hj_rTY7pRCn-wrQDH1rvTqUHwB/pubhtml?gid=886895534&single=true
anything in red is an addition / modification on my part.
- This was the most lengthy part but not as long as you may think, you
can do a lot of pruning. For example if you are checking a 3-jamo
variant (the ones with the most permutations) and you've verified that
the medial jamo is as far up vertically as it can be, and you are using
the lowest final jamo that are available -- there is nothing to check or
improve -- for better or worse! So those end up being the permutations
between the initial and medial instead of a three-way permutation
nightmare.
- Also, while it is a 2d matrix, there's a lot of pruning even within
that. For example, for the first 3 orientations, you dont have to care
about final vowels at all.
- At the end, I'm left with a lookup table that I can use the encode the
best looking korean syllable blocks possible given the context of the
jamo combination.
2025-08-16 19:35:47 -04:00
OpenGOAL Bot a470820b3e CI: Periodic Controller Database Update (#3995)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-08-16 12:32:22 -04:00
OpenGOAL Bot c4585ef6fb CI: Periodic Controller Database Update (#3989)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-07-30 19:22:58 -04:00
OpenGOAL Bot b93caabd1d CI: Periodic Controller Database Update (#3982)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-07-23 19:18:11 -04:00
OpenGOAL Bot d5eebdcdfe CI: Periodic Controller Database Update (#3977)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-07-11 20:39:30 -04:00
OpenGOAL Bot ce23af2cb2 CI: Periodic Controller Database Update (#3973)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-07-02 22:20:55 -04:00
OpenGOAL Bot 72c3bd3d30 CI: Periodic Controller Database Update (#3953)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-06-28 21:24:42 -04:00
MuchWhittering 1748086136 Updating UK English spelling - Cutscene (#3962)
Fixing some of the warrior's spelling for British English.
2025-06-28 21:24:36 -04:00
Aloqas 2002cd0188 Some jak 3 transcription fixes (#3893) 2025-06-28 21:23:32 -04:00
Matt Dallmeyer 5ad176507b [jak3] Subtitle typo (#3961) 2025-06-19 17:47:52 +02:00
Tyler Wilding cdbc241259 New Crowdin updates (#3942) 2025-06-04 00:31:08 -04:00
OpenGOAL Bot 0dfa6be94c CI: Periodic Controller Database Update (#3939)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2025-06-02 23:09:50 -04:00