Compare commits

..
Author SHA1 Message Date
Tyler Wilding f5d60dc72a another log 2024-08-04 23:20:17 -04:00
Tyler Wilding 52be78c088 temp 2024-08-04 21:52:10 -04:00
Tyler Wilding 8b7e0bde53 game: ensure the default game-size is also valid when initializing the pc-settings.gc file (#3624)
Also saves out the default `pc-settings.gc` file so it's less confusing
_and_ so we can request it from users to actually see what it's doing.

The fix in the last release was only to fix bad `game-size` values when
_loading_ the file. But if you don't have a file, it picks a default.

Right now it picks that default by:
1. Your largest reported resolution
2. If that fails, the one that is currently set

In reality this scenario can never really happen (if you have a set
resolution, it will be one of the reported ones). However what can
happen is for SDL to be misinformed by bad display/monitor drivers/the
OS and be given "supported" resolutions that aren't actually supported.
For example some users have a 4K resolution as their highest, despite
them using a 1080p monitor.

The solution is to not blindly assume the largest resolution is valid,
instead use the one the user already has set.

I'm also now filtering out resolutions by refresh rate, as perhaps this
also caused a problem. ie. the monitor supports a resolution if the
refresh rate is lowered, but it's currently set high (at 144hz for
example).
2024-08-03 14:57:07 -04:00
Tyler Wilding a13b0dce45 ci: Add workflow that compares the compiled output between the PR and master (#3626)
Fixes #3063
2024-08-03 02:42:34 -04:00
Aloqas 2e9b099d58 [jak1] update finnish translations (#3619)
A long overdue Finnish translation update with better subtitle timings
and wording.
2024-08-01 17:21:40 -04:00
Tyler Wilding 276169f525 New Crowdin updates (#3621) 2024-07-31 16:32:22 -04:00
51 changed files with 9430 additions and 26746 deletions

No files matched your search

@@ -0,0 +1,96 @@
name: Compilation Check
on:
pull_request:
branches:
- master
jobs:
build:
name: Compare
runs-on: ubuntu-20.04
timeout-minutes: 60
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: master
- name: Install Package Dependencies
run: |
sudo apt update
sudo apt install build-essential cmake \
clang gcc g++ lcov make nasm libxrandr-dev \
libxinerama-dev libxcursor-dev libpulse-dev \
libxi-dev zip ninja-build libgl1-mesa-dev libssl-dev
- name: Setup sccache
uses: hendrikmuhs/[email protected]
with:
variant: sccache
key: linux-ubuntu-20.04--Release-linux-clang-asan-${{ github.sha }}
restore-keys: linux-ubuntu-20.04--Release-linux-clang-asan
max-size: 1000M
- name: CMake Generation (master)
env:
CC: clang
CXX: clang++
run: |
cmake -B build --preset=Release-linux-clang-asan \
-DCMAKE_C_COMPILER_LAUNCHER=sccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
- name: Build goalc (master)
run: cmake --build build --parallel $((`nproc`)) --target goalc
- name: Compile and preserve (master)
run: |
./build/goalc/goalc --game jak1 --cmd "(make-group \"all-code\")"
./build/goalc/goalc --game jak2 --cmd "(make-group \"all-code\")"
./build/goalc/goalc --game jak3 --cmd "(make-group \"all-code\")"
mv ./out/jak1/obj ./out/jak1/obj.master
mv ./out/jak2/obj ./out/jak2/obj.master
mv ./out/jak3/obj ./out/jak3/obj.master
- name: Checkout PR
uses: actions/checkout@v4
with:
clean: "false"
- name: CMake Generation (PR)
env:
CC: clang
CXX: clang++
run: |
cmake -B build --preset=Release-linux-clang-asan \
-DCMAKE_C_COMPILER_LAUNCHER=sccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
- name: Build goalc (PR)
run: cmake --build build --parallel $((`nproc`)) --target goalc
- name: Compile and preserve (PR)
run: |
./build/goalc/goalc --game jak1 --cmd "(make-group \"all-code\")"
./build/goalc/goalc --game jak2 --cmd "(make-group \"all-code\")"
./build/goalc/goalc --game jak3 --cmd "(make-group \"all-code\")"
mv ./out/jak1/obj ./out/jak1/obj.pr
mv ./out/jak2/obj ./out/jak2/obj.pr
mv ./out/jak3/obj ./out/jak3/obj.pr
- name: Compare Results and Produce Report
run: |
ls -l ./out/jak1
ls -l ./out/jak2
ls -l ./out/jak3
set +e
python ./scripts/gsrc/compare-compilation-outputs.py --base "./out/jak1/obj.master,./out/jak2/obj.master,./out/jak3/obj.master" --compare "./out/jak1/obj.pr,./out/jak2/obj.pr,./out/jak3/obj.pr" --markdown
SCRIPT_EXIT_CODE=$?
cat ./comp-diff-report.md >> $GITHUB_STEP_SUMMARY
if [ "$SCRIPT_EXIT_CODE" -ne 0 ]; then
exit 1
fi
+2 -1
View File
@@ -32,6 +32,7 @@ linux-default/
*.bin
*.log
*.p2s
out/
savestate-out/
savestate_out/
failures/
@@ -39,6 +40,7 @@ ee-results*.json
search-results.json
.env
/search-results.json
comp-diff-report.md
# graphics debug
debug_out/
@@ -67,7 +69,6 @@ custom_assets/jak3/merc_replacements/*
svnrev.h
common/versions/revision.h
ci-artifacts/
out/build/
__pycache__/
# sqlite stuff
+15 -4
View File
@@ -8,6 +8,8 @@
#include "BinaryWriter.h"
#include "FileUtil.h"
#include "common/log/log.h"
void build_dgo(const DgoDescription& description, const std::string& output_prefix) {
BinaryWriter writer;
// dgo header
@@ -15,8 +17,14 @@ void build_dgo(const DgoDescription& description, const std::string& output_pref
writer.add_cstr_len(description.dgo_name.c_str(), 60);
for (auto& obj : description.entries) {
auto obj_data = file_util::read_binary_file(file_util::get_jak_project_dir() / "out" /
output_prefix / "obj" / obj.file_name);
// Ensure the directory exists
const auto file_path =
file_util::get_jak_project_dir() / "out" / output_prefix / "obj" / obj.file_name;
if (!file_util::file_exists(file_path.string())) {
lg::warn("tried to build a DGO with a file that doesn't exist: {}", file_path.string());
continue;
}
auto obj_data = file_util::read_binary_file(file_path);
// size
writer.add<uint32_t>(obj_data.size());
// name
@@ -29,6 +37,9 @@ void build_dgo(const DgoDescription& description, const std::string& output_pref
}
}
writer.write_to_file(file_util::get_jak_project_dir() / "out" / output_prefix / "iso" /
description.dgo_name);
// Ensure the output directory exists
const auto dgo_path =
file_util::get_jak_project_dir() / "out" / output_prefix / "iso" / description.dgo_name;
file_util::create_dir_if_needed_for_file(dgo_path);
writer.write_to_file(dgo_path);
}
-1
View File
@@ -8787,7 +8787,6 @@ Unlike [[engine]], users can use [[engine-pers]] as a parent class."
(progress-graphics-ps2-lod-dist #x1337)
(progress-graphics-msaa-off #x1338)
(progress-graphics-display #x1339)
(language-name-finnish #x133a)
)
;; ---text-id-h:text-id
+3
View File
@@ -322,3 +322,6 @@ endif()
add_executable(gk main.cpp)
target_link_libraries(gk runtime)
if(WIN32)
set_target_properties(gk PROPERTIES VS_DPI_AWARE "PerMonitor")
endif()
File diff suppressed because it is too large. Load diff
@@ -46,7 +46,7 @@
"VISMÄNNEN HAR BLIVIT KIDNAPPADE,",
"GOL OCH MAIA HAR SAMLAT IHOP TILLRÄCKLIGT MED ECO",
"FÖR ATT KUNNA GENOMFÖRA SIN HEMSKA PLAN,",
"OCH FÖR ATT KUNNA STOPPA DEM, SÅ MÅSTE NI",
"OCH FÖR ATT KUNNA STOPPA DOM, SÅ MÅSTE NI",
"SLÅ ER FRAM HELA VÄGEN GENOM DERAS CITADELL!",
"EH... JA. SÅ KAN MAN, EH... NOG SAMMANFATTA DET HELA.",
"NI MÅSTE RÄDDA MIN FAR INNAN DET ÄR FÖR SENT!",
@@ -323,7 +323,7 @@
],
"explorer-resolution": [
"JAG SER ATT NI TVÅ ÄR TILLBAKA FÖR ATT GENOMFÖRA BYTET. BRA, BRA, MYCKET BRA!",
"ÄH, DU HAR MED DIG ÖH, DOM PRECURSOR-KULOR VI KOM ÖVERENS OM?",
"ÄH, NI HAR MED ER ÖH, DOM PRECURSOR-KULOR VI KOM ÖVERENS OM?",
"JAG HOPPAS ATT DU FÅR ANVÄNDNING AV DEN HÄR SURT FÖRVÄRVADE KRAFTCELLEN.",
"TACK SÅ MYCKET, GODDAG, ADJÖ!"
],
@@ -2242,7 +2242,7 @@
],
"sksp0079": [
"AH! JAG KOMMER ATT DÖ! JAG KOMMER, FARFAR!",
"DU MÅSTE FÅ DEN HÄR SAKEN ÖVER TILL ANDRA SIDAN INNAN DEN BLIR ÖVERHETTAD!"
"NI MÅSTE FÅ DEN HÄR SAKEN ÖVER TILL ANDRA SIDAN INNAN DEN BLIR ÖVERHETTAD!"
],
"sksp0080": [
"ANVÄND KURVAN FÖR ATT KUNNA STYRA BÄTTRE!"
File diff suppressed because it is too large. Load diff
+38 -38
View File
@@ -6,16 +6,16 @@
"0107": "HALUATKO PELATA UUDELLEEN?",
"0108": "LOPETA",
"0109": "TAUKO",
"010a": "EFEKTIEN VOIMAKKUUS",
"010b": "MUSIIKIN VOIMAKKUUS",
"010c": "PUHEEN VOIMAKKUUS",
"010a": "ÄÄNITEHOSTEET",
"010b": "MUSIIKKI",
"010c": "PUHE",
"010d": "KIELI",
"010e": "VÄRÄHTELYT",
"010e": "VÄRINÄTOIMINTO",
"010f": "VINKIT",
"0110": "KESKITÄ RUUTU",
"0111": "PÄÄLLÄ",
"0112": "POIS",
"0113": "KÄYTÄ D-PAD:IA",
"0113": "KÄYTÄ SUUNTANÄPPÄIMIÄ",
"0114": "ENGLISH",
"0115": "FRANÇAIS",
"0116": "DEUTSCH",
@@ -24,36 +24,36 @@
"0119": "にほんご",
"011a": "PAINA <PAD_CIRCLE> VAIHTAAKSESI 90 HELMEÄ VOIMAKENNOON.",
"011b": "PAINA <PAD_CIRCLE> VAIHTAAKSESI 120 HELMEÄ VOIMAKENNOON.",
"011c": "PAINA <PAD_CIRCLE> MENNÄKSESI.",
"011d": "PAINA <PAD_TRIANGLE> PERUAKSESI.",
"011c": "MATKUSTA PAINAMALLA <PAD_CIRCLE>.",
"011d": "PERU PAINAMALLA <PAD_TRIANGLE>.",
"011e": "GEYSIRSAARI",
"011f": "VIHREÄN TIETÄJÄN MÖKKI",
"0120": "SINISEN TIETÄJÄN MÖKKI",
"0121": "PUNAISEN TIETÄJÄN MÖKKI",
"0122": "GOLIN AND MAIAN LINNOITUS",
"0123": "PAINA <PAD_CIRCLE> PUHUAKSESI SAMOSILLE",
"0124": "PAINA <PAD_CIRCLE> PUHUAKSESI KEIRALLE",
"0123": "PAINA <PAD_CIRCLE> PUHUAKSESI SAMOSILLE.",
"0124": "PAINA <PAD_CIRCLE> PUHUAKSESI KEIRALLE.",
"0125": "KUVASUHDE",
"0126": "VIDEON TILA",
"0126": "VIDEOTILA",
"0127": "PELIASETUKSET",
"0128": "GRAFIIKKA-ASETUKSET",
"0129": "ÄÄNIASETUKSET",
"012a": "4X3",
"012b": "16X9",
"012c": "60HZ",
"012d": "50HZ",
"012c": "60 HZ",
"012d": "50 HZ",
"012e": "JAK AND DAXTER",
"012f": "LÖYDÄ KÄTKETTY VOIMAKENNO",
"0130": "LIIAN VÄHÄN TILAA MUISTIKORTILLA MEMORY_CARD_(PS2, INSERTED IN MEMORY_CARD_SLOT_~D",
"0131": "EI MEMORY_CARD_(PS2, LIITETTYNÄ IN MEMORY_CARD_SLOT_~D",
"0132": "MEMORY_CARD_(PS2, PAIKASSA MEMORY_CARD_SLOT_~D ON ALUSTAMATON",
"0133": "JAK AND DAXTER VAATII ~DKB VAPAATA TILAA",
"0134": "KIINNITÄ MEMORY_CARD_(PS2, JOSSA ON TARPEEKSI TILAA, MUUTEN PELITIETOJA EI VOIDA TALLENTAA",
"0130": "EI TARPEEKSI TILAA MUISTIKORTILLA MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D",
"0131": "EI MEMORY_CARD_(PS2) LIITETTYNÄ PAIKASSA MEMORY_CARD_SLOT_~D",
"0132": "MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D ON ALUSTAMATON",
"0133": "JAK AND DAXTER VAATII ~D KT VAPAATA TILAA",
"0134": "SYÖTÄ MEMORY_CARD_(PS2), JOSSA ON TARPEEKSI TILAA, MUUTEN PELITIETOJASI EI VOIDA TALLENTAA",
"0135": "ILMAN ALUSTAMISTA PELITIETOJA EI VOIDA TALLENTAA",
"0136": "TALLENNETAAN TIETOJA",
"0137": "LADATAAN TIETOJA",
"0138": "ÄLÄ POISTA MEMORY_CARD_(PS2, IN MEMORY_CARD_SLOT_~D TAI SAMMUTA LAITETTASI",
"0139": "HALUATKO PÄÄLLEKIRJOITTAA TÄMÄN?",
"0138": "ÄLÄ POISTA MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D TAI SAMMUTA LAITETTASI",
"0139": "HALUATKO KORVATA SEN?",
"013a": "ALUSTA?",
"013c": "KYLLÄ",
"013d": "EI",
@@ -62,7 +62,7 @@
"0140": "VALITSE TALLENNUSPAIKKA",
"0141": "VALITSE LADATTAVA TALLENNUS",
"0142": "JAK AND DAXTER -TALLENNUS ON JO OLEMASSA VALITSEMASSASI TIEDOSTOSSA",
"0143": "SYÖTÄ MEMORY_CARD_(PS2, JOKA SISÄLTÄÄ JAK AND DAXTER -TALLENNUSTIETOJA PAIKKAAN MEMORY_CARD_SLOT_~D",
"0143": "SYÖTÄ JAK AND DAXTER -PELITIETOJA SISÄLTÄVÄ MEMORY_CARD_(PS2) PAIKKAAN MEMORY_CARD_SLOT_~D",
"0144": "JATKA?",
"014b": "LATAA PELI",
"014c": "TALLENNA PELI",
@@ -72,29 +72,29 @@
"0150": "ASETUKSET",
"0151": "VIRHE LADATTAESSA",
"0152": "VIRHE TALLENTAESSA",
"0153": "VIRHE ALUSTAMISESSA",
"0153": "VIRHE ALUSTAESSA",
"0154": "VIRHE LUODESSA TALLENNUSTIEDOSTOA",
"0156": "MEMORY_CARD_(PS2, PAIKASTA MEMORY_CARD_SLOT_~D POISTETTIIN",
"0157": "AUTOMAATTITALLENNUS ON POISTETTU KÄYTÖSTÄ",
"0158": "KÄYTÄ TALLENNA PELI -ASETUSTA TALLENTAAKSESI PELIN MANUAALISESTI JA UUDELLEENKÄYNNISTÄÄKSESI AUTOMAATTITALLENNUKSEN",
"0159": "JAK AND DAXTER -TALLENNUSTIETOJA EI LÖYTYNYT MEMORY_CARD_(PS2, PAIKASSA MEMORY_CARD_SLOT_~D",
"0156": "MEMORY_CARD_(PS2) PAIKASTA MEMORY_CARD_SLOT_~D POISTETTIIN",
"0157": "AUTOMAATTINEN TALLENNUS ON POISTETTU KÄYTÖSTÄ",
"0158": "TALLENNA PELISI MANUAALISESTI, NIIN AUTOMAATTINEN TALLENNUS PALAUTETAAN KÄYTTÖÖN",
"0159": "JAK AND DAXTER -TALLENNUSTIETOJA EI LÖYTYNYT KORITLTA MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D",
"015a": "HALUATKO LUODA UUDEN JAK AND DAXTER -TALLENNUKSEN?",
"015b": "TARKISTA MEMORY_CARD_(PS2, PAIKASSA MEMORY_CARD_SLOT_~D",
"015b": "TARKISTA MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D",
"015c": "UUSI PELI",
"015d": "TAKAISIN?",
"015e": "OK",
"015f": "POISTU DEMOSTA",
"0160": "KUN OHEINEN KUVAKE ILMESTYY, EDISTYKSESI TALLENNETAAN",
"0161": "KUN TÄMÄ KUVAKE ON RUUDULLA, ÄLÄ POISTA THE MEMORY_CARD_(PS2, TAI SAMMUTA LAITETTASI",
"0161": "KUN TÄMÄ KUVAKE ON RUUDULLA, ÄLÄ IRROTA MEMORY_CARD_(PS2) TAI SAMMUTA LAITETTASI",
"0162": "TEHTÄVÄ SUORITETTU",
"0163": "TARKISTA MEMORY_CARD_(PS2, IN MEMORY_CARD_SLOT_~D JA YRITÄ UUDELLEEN",
"0163": "TARKISTA MEMORY_CARD_(PS2) PAIKASSA MEMORY_CARD_SLOT_~D JA YRITÄ UUDELLEEN",
"0164": "RUUTU OTTAA NYT KÄYTTÖÖN 60HZ-TILAN",
"0165": "JOS KUVA NÄKYY VIRHEELLISENÄ, TELEVISIOSI EI TUE TÄTÄ TILAA",
"0166": "JOS NÄIN KÄY, ODOTA 10 SEKUNTIA NIIN RUUTU PALAUTETAAN TAKAISIN",
"0166": "JOS NIIN KÄY, ODOTA 10 SEKUNTIA, NIIN RUUTU PALAUTUU TAKAISIN",
"0167": "RUUTU ON NYT 60HZ-TILASSA",
"0168": "HALUATKO PITÄÄ TÄMÄN TILAN KÄYTÖSSÄ?",
"0169": "KÄYTÄ D-PAD:IA VALITAKSESI TASON",
"016a": "LEVY ON POISTETTU",
"0169": "VALITSE TASO SUUNTANÄPPÄIMILLÄ",
"016a": "LEVY POISTETTIIN",
"016b": "SYÖTÄ JAK AND DAXTER -LEVY SISÄÄN, JOTTA VOIT JATKAA PELAAMISTA",
"016c": "VIRHE TIETOJEN LUKEMISESSA",
"016d": "TARKISTA JAK AND DAXTER -LEVYSI JA YRITÄ UUDELLEEN",
@@ -104,7 +104,7 @@
"0171": "YHTEENSÄ KERÄTTY:",
"0200": "TUO 90 HELMEÄ PORMESTARILLE",
"0201": "TUO 90 HELMEÄ ENOLLESI",
"0202": "PAIMENNA NAUKIT TAKAISIN AITAUKSEENSA",
"0202": "PAIMENNA NAUKIT TAKAISIN AITAUKSEEN",
"0203": "PALAA VILJELIJÄN LUO",
"0204": "TUO 120 HELMEÄ ORAAKKELILLE",
"0205": "AVAA ECO-KERÄIMIEN TUKOKSET",
@@ -117,9 +117,9 @@
"020c": "YHDISTÄ ECO-SÄTEET",
"020d": "KIIPEÄ TEMPPELIN HUIPULLE",
"020e": "ETSI SINISEN ECON KATKAISIN",
"020f": "PÄIHITÄ PIMEÄN ECON KASVI",
"020f": "PÄIHITÄ PIMEÄ ECO-KASVI",
"0210": "NAPPAA 200 KILOA KALAA",
"0211": "OTA KIINNI VEISTÄJÄN MUUSA",
"0211": "NAPPAA KIINNI VEISTÄJÄN MUUSA",
"0212": "VIE MUUSA TAKAISIN VEISTÄJÄLLE",
"0213": "KIIPEÄ VAANIJAPAATTIIN",
"0214": "PYSÄYTÄ KANUUNA",
@@ -135,7 +135,7 @@
"021e": "VIHREÄN TIETÄJÄN MÖKKI",
"021f": "KEIRAN TALLI",
"0220": "SANDOVERIN KYLÄ",
"0221": "VARTIJARANTA",
"0221": "VAHTIRANTA",
"0222": "KIELLETTY VIIDAKKO",
"0223": "USVASAARI",
"0224": "TULIKANJONI",
@@ -145,14 +145,14 @@
"0228": "FLUT FLUT",
"0229": "HELMIORAAKKELI",
"022a": "TRANS-ALUSTA",
"022b": "VIHREÄN ECON KERÄIMET",
"022b": "VIHREÄT ECO-KERÄIMET",
"022c": "EDELTÄJÄHELMI",
"022d": "VOIMAKENNO",
"022e": "NAPPAA PUDONNUT VOIMAKENNO",
"022f": "KORJAA ECO-SÄDE",
"0230": "PALAA PORMESTARIN LUO",
"0262": "TUTKI RANNIKKOA",
"0263": "KIIPEÄ VARTIJAN PÄÄLLE",
"0263": "KIIPEÄ VAHDIN PÄÄLLE",
"0264": "SEURAA ROTKOA MERENRANNALLE",
"0265": "AVAA LUKITTU TEMPPELIN OVI",
"0266": "YLLÄ VOIMAKENNOLLE ZOOMERILLA",
@@ -223,7 +223,7 @@
"040e": "KIIPEÄ VALTAVAA ROBOTTIA",
"040f": "TUTKI PIMEÄÄ LUOLAA",
"0410": "AMMU JAUHAVAT VAANIJAT KIIKARIESI AVULLA",
"0411": "TUHOA PIMEÄN ECON KRISTALLIT",
"0411": "TUHOA PIMEÄT ECO-KRISTALLIT",
"0412": "PÄIHITÄ LUOLAN LEPAKOT",
"0413": "VAPAUTA 7 PARTIOKÄRPÄSTÄ",
"0414": "PUNAISEN TIETÄJÄN LABRA",
@@ -204,7 +204,7 @@
"1601": "CONTROLLER AUSWÄHLEN",
"1602": "STICK DEADZONE",
"1603": "IGNORIERE WENN UNFOKUSIERT",
"1604": "CONTROLLER LED FÜR LEBEN",
"1604": "CONTROLLER LED FÜR HP",
"1605": "CONTROLLER LED FÜR ECO",
"1606": "KAMERA VERFOLGEN",
"1607": "HORIZONTALE SENSITIVITÄT",
@@ -2,15 +2,15 @@
"1000": "KUVAKULMA-ASETUKSET",
"1001": "NORMAALI",
"1002": "KÄÄNTEINEN",
"1003": "ENSIMMÄISEN PERSOONAN VAAKAKAMERA",
"1004": "ENSIMMÄISEN PERSOONAN PYSTYKAMERA",
"1005": "KOLMANNEN PERSOONAN VAAKAKAMERA",
"1006": "KOLMANNEN PERSOONAN PYSTYKAMERA",
"1003": "VAAKAOHJAUS (1. PERSOONA)",
"1004": "PYSTYOHJAUS (1. PERSOONA)",
"1005": "VAAKAOHJAUS (3. PERSOONA)",
"1006": "PYSTYOHJAUS (3. PERSOONA)",
"1007": "PALAUTA OLETUKSET",
"1010": "HELPPOKÄYTTÖISYYS",
"1011": "EDELTÄJÄHELMIEN HEHKU",
"1020": "PS2-ASETUKSET",
"1021": "PS2 LATAUSNOPEUS",
"1021": "PS2-LATAUSNOPEUS",
"1022": "PARTIKKELEIDEN VÄHENNYS",
"1023": "MUSIIKIN ULOS HÄIVYTYS",
"1024": "MUSIIKIN SISÄÄN HÄIVYTYS",
@@ -24,11 +24,11 @@
"1034": "KOKORUUTU",
"1035": "RESOLUUTIO",
"1036": "~D X ~D",
"1037": "PS2 KUVASUHDE",
"1038": "KUN PS2 KUVASUHDE ON KÄYTÖSSÄ, VAIN KUVASUHTEET 4X3 JA 16X9 OVAT VALITTAVISSA. JATKA?",
"1037": "PS2-KUVASUHDE",
"1038": "KUN PS2-KUVASUHDE ON KÄYTÖSSÄ, VAIN KUVASUHTEET 4X3 JA 16X9 OVAT VALITTAVISSA. JATKA?",
"1039": "KUVASUHDE (PS2)",
"1040": "TEKSTITYKSET KÄYTÖSSÄ",
"1041": "TEKSTITYKSET EI KÄYTÖSSÄ",
"1040": "TEKSTITYS KÄYTÖSSÄ",
"1041": "TEKSTITYS EI KÄYTÖSSÄ",
"1042": "TEKSTIN KIELI",
"1043": "NÄYTTÖ",
"1044": "NÄYTTÖ ~D",
@@ -50,8 +50,8 @@
"1075": "ALHAINEN",
"1076": "MINIMI",
"1077": "PS2",
"1078": "TEKSTITYKSET",
"1079": "VINKKITEKSTITYKSET",
"1078": "TEKSTITYS",
"1079": "VINKKIEN TEKSTITYS",
"1080": "HUIJAUKSET",
"1081": "SALAISUUDET",
"1082": "VALITSE KAPPALE",
@@ -68,8 +68,8 @@
"1093": "LOPUTON KELTAINEN ECO",
"1094": "VAIHTOEHTOINEN DAXTER",
"1095": "HAAVOITTUMATTOMUUS",
"1096": "KAIKKI MUSIIKKIKAPPALEET",
"1097": "TODELLINEN VUOROKAUDEN AIKA",
"1096": "KAIKKI MUSIIKKITYYLIT",
"1097": "TODELLINEN VUOROKAUDENAIKA",
"1098": "LÄPÄISE PELI 100%",
"1099": "LÄPÄISE PELI",
"1100": "KELTAINEN TIETÄJÄ",
@@ -96,17 +96,17 @@
"1500": "SPEEDRUN-TILA",
"138": "ÄLÄ LISÄÄ TAI POISTA MITÄÄN OHEISLAITTEITA, SAMMUTA LAITETTASI TAI SAMMUTA PELIÄ",
"161": "KUN TÄMÄ KUVAKE ON RUUDULLA, ÄLÄ LISÄÄ TAI POISTA MITÄÄN OHEISLAITTEITA, SAMMUTA LAITETTASI TAI SAMMUTA PELIÄ",
"100c": "AUTO-TALLENNUS POIS PÄÄLTÄ",
"100d": "HALUATKO VARMASTI LOPETTAA AUTO-TALLENTAMISEN?",
"100e": "LOPETA AUTO-TALLENNUS",
"100c": "AUTOM. TALLENNUS POIS",
"100d": "HALUATKO VARMASTI LOPETTAA AUTOMAATTISEN TALLENNUKSEN?",
"100e": "LOPETA AUTOM. TALLENNUS",
"100f": "SEKALAISET",
"103a": "SOVITA RUUTUUN",
"103b": "PYSTYTAHDISTUS",
"103c": "4X3 (PS2)",
"103d": "16X9 (PS2)",
"103e": "~DX~D",
"103f": "OTA TEKSTITYKSET KÄYTTÖÖN PAINAMALLA <PAD_SQUARE>",
"107a": "TEKSTITYSTEN KIELI",
"103f": "OTA TEKSTITYS KÄYTTÖÖN PAINAMALLA <PAD_SQUARE>",
"107a": "TEKSTITYKSEN KIELI",
"107b": "NÄYTÄ PUHUJA TEKSTITYKSISSÄ",
"107c": "AINA",
"107d": "EI KOSKAAN",
@@ -120,7 +120,7 @@
"109f": "KÄÄNTEINEN MAAILMA",
"10a0": "SUURIPÄINEN JAK",
"10c0": "MUSIIKKISOITIN",
"10c1": "VÄLIANIMAATIO-SOITIN",
"10c1": "VÄLINÄYTÖSSSOITIN",
"10c2": "TOISTA LOPPUTEKSTIT",
"10c3": "LEIKEKIRJA",
"10d0": "OLETUS",
@@ -160,7 +160,7 @@
"10f2": "SOLAN LOPPUOSA",
"10f3": "HÄMÄHÄKKILUOLAAN",
"10f4": "LUMIVUORILLE",
"10f5": "KAIVOSMIEHET",
"10f5": "MAINARIT",
"10f6": "ROBOTTILUOLAN TELINEET",
"10f7": "EDELTÄJÄROBOTIN HUIPPU",
"10f8": "PÄÄLUOLA",
@@ -171,10 +171,10 @@
"10fd": "LUMIPALLOT",
"10fe": "TUNNELIN KESKIOSA",
"10ff": "TUNNELIN LOPPU",
"1501": "OHITA VÄLIANIMAATIOT",
"1501": "VÄLINÄYTÖSTEN OHITUKSET",
"1502": "VALITSE TARKISTUSPISTE",
"1503": "SPEEDRUN-ASETUKSET",
"1504": "VAROITUS: NÄMÄ ASETUKSET AUTOMAATTITALLENTAVAT ENSIMMÄISEEN TALLENNUSPAIKKAAN!",
"1504": "VAROITUS: NÄMÄ ASETUKSET TALLENTAVAT AUTOMAATTISESTI ENSIMMÄISEEN TALLENNUSPAIKKAAN!",
"1505": "ALOITA SPEEDRUN UUDELLEEN",
"1506": "UUSI TÄYDEN PELIN SPEEDRUN",
"150e": "UUSI YKSITTÄISEN TASON SPEEDRUN",
@@ -199,16 +199,16 @@
"1521": "HUBI 1 100%",
"1522": "HUBI 2 100%",
"1523": "HUBI 3 100%",
"1524": "KAIKKI VÄLIANIMAATIOT",
"1524": "KAIKKI VÄLINÄYTÖKSET",
"1600": "OHJAUSSYÖTTEEN ASETUKSET",
"1601": "VALITSE OHJAIN",
"1602": "ANALOGISAUVAN KATVEALUE",
"1603": "ÄLÄ HUOMIOI, JOS IKKUNA EI AKTIIVINEN",
"1603": "ÄLÄ HUOMIOI TYÖPÖYDÄLLÄ",
"1604": "OHJAIMEN LED TERVEYDELLE",
"1605": "OHJAIMEN LED ECO-VOIMILLE",
"1606": "KAMERAN OHJAUS HIIRELLÄ",
"1607": "VAAKASUUNTAINEN HERKKYYS",
"1608": "PYSTYSUUNTAINEN HERKKYYS",
"1607": "HERKKYYS (VAAKASUUNTA)",
"1608": "HERKKYYS (PYSTYSUUNTA)",
"1609": "PELAAJAN OHJAUS HIIRELLÄ",
"160a": "PELIOHJAIMEN KYTKENNÄT",
"160b": "NÄPPÄIMISTÖN KYTKENNÄT",
@@ -220,8 +220,8 @@
"1611": "MUUTA KYTKENTÖJÄ",
"1612": "OHJAIN ~D",
"1613": "PIILOTA OSOITIN AUTOMAATTISESTI",
"1614": "MÄÄRITTÄMÄTÖN",
"1614": "TYHJÄ",
"1615": "TUNTEMATON",
"1616": "MUITA ASETUKSIA RUUDUN KOOLLE EI SAATAVISSA",
"1616": "MUITA KUVASUHTEITA EI OLE SAATAVILLA",
"1617": "OHJAIMEN LED LÄMPÖMITTARILLE"
}
@@ -16,59 +16,59 @@
"1024": "ミュージック ゲイン",
"1025": "アクター カリング",
"1026": "バックグラウンド カリング",
"1027": "かんきょう マッピングを きょうせいする",
"1027": "??マッピングを???に?行",
"1030": "DISCORDリッチプレゼンス",
"1031": "スクリーンモード",
"1032": "ウィンドウ",
"1033": "ボーダレス",
"1034": "フルスクリーン",
"1035": "かいぞうど",
"1035": "?像?",
"1036": "~D X ~D",
"1037": "PS2 アスペクト ひ",
"1038": "PS2アスペクトひが ゆうこうになると、4X3と16X9しか せんたくできません ぞっこうしますか?",
"1039": "アスペクト ひ (PS2)",
"1040": "じまくあり",
"1041": "じまくなし",
"1042": "テキストのことば",
"1043": "ディスプレー",
"1044": "ディスプレー ~D",
"1037": "PS2 アスペクト?",
"1038": "PS2アスペクト?が??になると、4?3と16?9しかのアスペクト?が??できません.?行しますか?",
"1039": "アスペクト? (PS2)",
"1040": "??あり",
"1041": "??なし",
"1042": "テキスト??",
"1043": "ディスプレイ",
"1044": "ディスプレイ ~D",
"1050": "MSAA",
"1051": "~DX",
"1052": "2X",
"1053": "4X",
"1054": "8X",
"1055": "16X",
"1060": "フレームレート (じっけんてき)",
"1060": "フレームレート (???)",
"1061": "60",
"1062": "100",
"1063": "150",
"1070": "LEVEL OF DETAIL (はいけい)",
"1071": "LEVEL OF DETAIL (ぜんけい)",
"1072": "さいこう",
"1073": "たかい",
"1074": "ふつう",
"1075": "ひくい",
"1076": "さいてい",
"1072": "??",
"1073": "?",
"1074": "中",
"1075": "?",
"1076": "??",
"1077": "PS2",
"1078": "じまく",
"1079": "ヒントじまく",
"1078": "??",
"1079": "ヒント??",
"1080": "チート",
"1081": "シークレット",
"1082": "きょくをせんたくする",
"1083": "スタイルをせんたくする",
"1082": "?を??する",
"1083": "スタイルを??する",
"1084": "チューンドプリカーソルロボット",
"1085": "スタッフロール",
"1086": "?????",
"1087": "ハイブリッドラーカー クロウ",
"1088": "サカナとりゲームのテーマ",
"1089": "チャレンジーのテーマ",
"1090": "むげんの青のエコ",
"1091": "むげんの赤のエコ",
"1092": "むげんの緑のエコ",
"1093": "むげんの黄のエコ",
"1094": "へんかのダクスター",
"1095": "むてき",
"1096": "すべてBGMのへんか",
"1090": "??の青のエコ",
"1091": "??の赤のエコ",
"1092": "??の緑のエコ",
"1093": "??の黄のエコ",
"1094": "?わりのダクスター",
"1095": "??",
"1096": "???トラック",
"1097": "リアルタイムオブデイ",
"1098": "100%クリア",
"1099": "ゲームクリア",
@@ -76,8 +76,8 @@
"1101": "赤の賢者",
"1102": "青の賢者",
"1103": "城のハブ",
"1104": "プリカーソルロボットの中かん",
"1105": "プリカーソルロボットのけつまつ",
"1104": "プリカーソルロボットの中?",
"1105": "プリカーソルロボットの?わり",
"1106": "スタイル 1",
"1107": "スタイル 2",
"1110": "ENGLISH (UK)",
@@ -94,37 +94,37 @@
"111b": "POLSKI",
"111c": "LIETUVIŲ KALBA",
"1500": "スピードラン モード",
"138": "しゅうへんききをぬいたり, さしたり, でんげんを きったりは しないでください",
"161": "このアイコンが あらわれているあいだ、しゅうへんききをぬいたり, さしたり, でんげんを きったりは しないでください",
"138": "????をぬいたり, さしたり, ??を?ったりは しないでください",
"161": "このアイコンが あらわれている?、????をぬいたり, さしたり, ??を?ったりは しないでください",
"100c": "オートセーブ オフ",
"100d": "オートセーブをきっても よろしいでしょうか?",
"100e": "DISABLE AUTO-SAVE",
"100f": "そのほか",
"103a": "FIT TO SCREEN",
"103b": "すいちょくどうき",
"100d": "オートセーブを?っても よろしいでしょうか?",
"100e": "オートセーブを??にする",
"100f": "その?",
"103a": "スクリーンに合わせる",
"103b": "????",
"103c": "4X3 (PS2)",
"103d": "16X9 (PS2)",
"103e": "~DX~D",
"103f": "<PAD_SQUARE> で じまくのきりかえ",
"107a": "じまくのことば",
"107b": "じまくではなしてをひょうじする",
"107c": "イツモ",
"103f": "<PAD_SQUARE> で ??の?り?え",
"107a": "??の??",
"107b": "??にスピーカーを??",
"107c": "いつも",
"107d": "いつもしなく",
"107e": "OFF-SCREEN",
"107f": "ヒントロッグ",
"107e": "オフ スクリーン",
"107f": "ヒントログ",
"109a": "ビッグヘッド ジャック",
"109b": "スモールヘッド ジャック",
"109c": "ビッグハンドジャック",
"109d": "あたまがおおきいキャラクター",
"109d": "ビッグヘッドキャラクター",
"109e": "テクスチャなしモード",
"109f": "かがみ世界",
"10a0": "でかいヘッド ジャック",
"10c0": "BGM プレイヤー",
"10c1": "SCENE PLAYER",
"109f": "??世界",
"10a0": "ビッグヘッド ジャック",
"10c0": "ミュージックプレイヤー",
"10c1": "プレイヤーを??",
"10c2": "スタッフロール",
"10c3": "スクラップブック",
"10d0": "デフォルト",
"10d1": "みしよう",
"10d1": "???",
"10d2": "セイジィ",
"10d3": "セイジィの家",
"10d4": "小鳥のオバチャマ",
-7
View File
@@ -54,11 +54,4 @@
:lines "game/assets/jak2/subtitle/subtitle_lines_en-GB.json"
:meta "game/assets/jak2/subtitle/subtitle_meta_en-GB.json"
:lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json"
:meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json")
(file-json
:language-id 9
:text-version "jak2"
:lines "game/assets/jak2/subtitle/subtitle_lines_fi-FI.json"
:meta "game/assets/jak2/subtitle/subtitle_meta_fi-FI.json"
:lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json"
:meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json"))
+1 -2
View File
@@ -21,8 +21,7 @@
(file-json 7 jak2 "common" '("game/assets/jak2/text/game_custom_text_en-GB.json"))
;; custom languages
(file-json 8 jak2 "common" '("game/assets/jak2/text/game_custom_text_pt-PT.json"))
(file-json 9 jak2 "common" '("game/assets/jak2/text/game_custom_text_fi-FI.json"
"game/assets/jak2/text/game_base_text_fi-FI.json"))
(file-json 9 jak2 "common" '("game/assets/jak2/text/game_custom_text_fi-FI.json"))
(file-json 10 jak2 "common" '("game/assets/jak2/text/game_custom_text_sv-SE.json"))
(file-json 11 jak2 "common" '("game/assets/jak2/text/game_custom_text_da-DK.json"))
(file-json 12 jak2 "common" '("game/assets/jak2/text/game_custom_text_no-NO.json"))
File diff suppressed because it is too large. Load diff
@@ -1,6 +1,9 @@
{
"cutscenes": {},
"other": {
"DSbop001": [
"Tu as l'air vraiment en colère, Jak."
],
"agnt001": [
"Hé, conduisez prudemment !"
],
@@ -2016,22 +2019,22 @@
"Les scanners indiquent des oeufs de Metal Heads toujours actifs."
],
"daxm001": [
"Shoot the platform, Jak."
"Vise la plateforme, Jak."
],
"daxm002": [
"We need something to get through that gate!"
"Il nous faut quelque chose pour passer ce portail !"
],
"daxm003": [
"Shoot the Metal Head when he moves his shield!"
"Tire sur le Metal Head dès qu'il bouge son bouclier !"
],
"daxm004": [
"Hit him in his stomach!"
"Vise l'estomac !"
],
"daxm005": [
"Whoa! That path dropped like uh... a rock!"
"Waouh, ce sentier plonge... à pic !"
],
"daxm006": [
"Smack the box, baby!"
"Trop de la balle, mon chou !"
],
"daxm007": [
"That's what I call a rocky road!"
@@ -2040,10 +2043,10 @@
"We gotta get to the top!"
],
"daxm009": [
"We made it!!"
"On l'a fait !!"
],
"daxm010": [
"Rock 'n roll!"
"Le délire !"
],
"ds001": [
"On doit trouver le Baron, Jak."
@@ -6553,18 +6556,6 @@
"kwbf042": [
"Arghh ! Espèce de... !"
],
"mtn-plat-buried-rocks-a": [
"*Tremblement de terre*"
],
"mtn-step-plat-rocks-a": [
"*Une plateforme apparait dans le mur*"
],
"mtn-step-plat-rocks-b": [
"*Des plateformes apparaissent dans le mur*"
],
"mtn-step-plat-rocks-c": [
"*Des plateformes apparaissent dans le mur et le rocher*"
],
"ora006": [
"Rapportez-moi encore 200 Gemmes Crâniennes de Metal Heads",
"et je vous montrerai une autre énergie noire."
@@ -7559,12 +7550,6 @@
"c'est sûrement quelque chose de précieux.",
"Vous devriez jeter un oeil."
],
"tombplta": [
"*Les pilliers prennent de la hauteur*"
],
"tombpltb": [
"*Un escalier apparait et s'assemble*"
],
"tor001": [
"L'opération est un véritable succès. Tous les membres des Souterrains sont sains et saufs.",
"Rentrez à la cachette, j'ai une nouvelle mission à vous confier en attendant que ça se calme."
@@ -7806,12 +7791,6 @@
"Ils entrent de force !!",
"Ils sont trop nombreux !! Jak !!! AHHHH !!!"
],
"wtrdrain": [
"*L'eau se vide du SAS*"
],
"wtrfill": [
"*Le SAS se remplit d'eau*"
],
"ys001": [
"Excellent les gars ! Revenez à la cachette,",
"j'ai une autre mission pour vous."
@@ -7850,7 +7829,7 @@
"mog": "Mog",
"onin": "Onin",
"oracle": "Oracle",
"pecker": "Pecker",
"pecker": "Mog",
"precursor": "Precurseur",
"samos": "Samos",
"sig": "Sig",
File diff suppressed because it is too large. Load diff
@@ -5,14 +5,14 @@
"You sure seem angry, Jak."
],
"DSbop002": [
"Do you remember how to jump?"
"ジャンプできる?"
],
"DSbop003": [
"Jump onto that crate to get over the barricade."
],
"DSbop004": [
"Ooh, that's a high ledge!",
"Try jumping once, then jump again while in the air",
"デカイ段差!ジャンプして空中でもう一度ジャンプだよ!!",
"to reach that one."
],
"DSbop005": [
@@ -1705,7 +1705,7 @@
"This sector is closed."
],
"cityv039": [
"Alert: Prison escape in progress."
"警告:脱獄者が発生"
],
"cityv040": [
"Alert: City under attack."
@@ -2128,7 +2128,7 @@
"Break those tubes in the center."
],
"ds020": [
"Please tell me you remember how to roll..."
"なあ転がり方、覚えてる?"
],
"ds023": [
"Let's rock!"
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -65,50 +65,6 @@
}
]
},
"mtn-plat-buried-rocks-a": {
"lines": [
{
"frame_end": 168,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"mtn-step-plat-rocks-a": {
"lines": [
{
"frame_end": 88,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"mtn-step-plat-rocks-b": {
"lines": [
{
"frame_end": 92,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"mtn-step-plat-rocks-c": {
"lines": [
{
"frame_end": 80,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"sam001": {
"lines": [
{
@@ -170,50 +126,6 @@
}
]
},
"tombplta": {
"lines": [
{
"frame_end": 129,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"tombpltb": {
"lines": [
{
"frame_end": 350,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"wtrdrain": {
"lines": [
{
"frame_end": 163,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"wtrfill": {
"lines": [
{
"frame_end": 165,
"frame_start": 0,
"merge": false,
"offscreen": true,
"speaker": "none"
}
]
},
"ys002": {
"lines": [
{
@@ -1,7 +1,6 @@
{
"1a3": "138",
"1b5": "161",
"133a": "1113",
"1200": "1031",
"1201": "1032",
"1202": "1034",
@@ -1,531 +0,0 @@
{
"0100": "Lopeta",
"0101": "Tauko~",
"0102": "Tekstityksen kieli",
"0103": "Ääniformaatti",
"0104": "Mono",
"0105": "Stereo",
"0106": "Surround",
"0107": "Äänitehosteet",
"0108": "Musiikki",
"0109": "Puhe",
"010a": "Kieli",
"010b": "Värinätoiminto",
"010c": "Vinkit",
"010d": "Keskitä ruutu",
"010e": "Päällä",
"010f": "Pois",
"0110": "Käytä suuntanäppäimiä",
"0111": "<FLAG_USA> English",
"0112": "<FLAG_FRANCE> Fran,cais",
"0113": "<FLAG_GERMAN> Deutsch",
"0114": "<FLAG_SPAIN> Español",
"0115": "<FLAG_ITALIAN> Italiano",
"0116": "<FLAG_KOREA> ~Y~Z<K32e>~Z<K31a>~Z<K3c8>~Y~Z<K35e>~Z<K36b>~Z<K3de>~Y~Z<K30f>~Z<K31d>",
"0117": "<FLAG_JAPAN> にほんご",
"0118": "Kuvasuhde",
"0119": "Progressiivinen skannaus",
"011a": "Videotila",
"011b": "Peliasetukset",
"011c": "Grafiikan asetukset",
"011d": "Ääniasetukset",
"011e": "4x3",
"011f": "16x9",
"0120": "60Hz",
"0121": "50Hz",
"0122": "Jak II",
"0123": "Poistu demosta",
"0124": "Kyllä",
"0125": "Ei",
"0126": "Takaisin",
"0127": "OK",
"0128": "Seuraava",
"0129": "Edellinen",
"012a": "Jatka tallentamatta",
"012b": "Valitse tallennuspaikka",
"012c": "Valitse ladattava tallennus",
"012d": "Lataa peli",
"012e": "Tallenna peli",
"012f": "Tyhjä",
"0130": "Asetukset",
"0131": "Uusi peli",
"0132": "Paina START-näppäintä",
"0133": "Lopeta peli",
"0134": "Kartta",
"0135": "Valitse aloitus",
"0136": "Ennätykset",
"0137": "1. sija",
"0138": "2. sija",
"0139": "3. sija",
"013a": "4. sija",
"013b": "5. sija",
"013c": "6. sija",
"013d": "7. sija",
"013e": "8. sija",
"013f": "NYFE-leijuri",
"0140": "Luokka 1",
"0141": "Luokka 2",
"0142": "Luokka 3",
"0143": "Harjoitusrata",
"0144": "Haulikko",
"0145": "Läjäytin",
"0146": "Vulkanus-piippu",
"0147": "Rauhantekijä",
"0148": "Oninin haaste",
"0149": "Metallipää-mäiskintä",
"014a": "JET-lauta-haaste",
"014b": "Oninin teltta",
"014c": "Sikahevon saluuna",
"014d": "Stadion",
"014e": "Luokka 1 - käänteinen",
"014f": "Luokka 2 - käänteinen",
"0150": "Luokka 3 - käänteinen",
"0151": "Sataman kisa",
"0152": "Kaupungin kisa",
"0153": "Salaisuudet",
"0154": "Avattu",
"0155": "Poista Jakin pukinparta",
"0156": "Käänteinen maailma",
"0157": "Loputtomat ammukset",
"0158": "Haavoittumattomuus",
"0159": "Sankaritila",
"015a": "Välinäytösten 1. näytös",
"015b": "Välinäytösten 2. näytös",
"015c": "Välinäytösten 3. näytös",
"015d": "Leikekirja",
"015e": "Mega-leikekirja",
"015f": "Leikekirja 3",
"0160": "Tehtävän valinta",
"0161": "Loputon Raivo-Jak",
"0162": "Vulkanus-tykin harjoitusrata",
"0163": "Rauhantekijän harjoitusrata",
"0164": "Käänteiset kisat",
"0165": "Isopäinen Jak",
"0166": "Pienipäinen Jak",
"0167": "Saatavilla",
"0168": "Kerätty",
"0169": "Tehtävät",
"016a": "Valitse esialoitus",
"016b": "Valitse kioski-aloitus",
"016c": "Valitse kohtaus",
"016d": "Tekstitys",
"016e": "Aloita uudelleen",
"016f": "<ICON_MISSION_TODO>",
"0170": "<ICON_MISSION_COMPLETE>",
"0171": "Ei mitään",
"0172": "Peli",
"0173": "Aloita/lopeta",
"0174": "Osta",
"0175": "Voitto",
"0176": "Häviö",
"0177": "Kokonaisaika",
"0178": "Kierros ",
"0179": "Palauta painamalla <PAD_SQUARE>",
"017a": "Kiireinen",
"017b": "Jatka painamalla <PAD_X>",
"017c": "____~%Suoritetut tehtävät",
"017d": "Suorittamattomat tehtävät",
"017e": "Yritä uudelleen?",
"017f": "Salaisuus saatavilla päävalikosta",
"0180": "<PAD_X> = Kyllä, <PAD_TRIANGLE> = Ei",
"0181": "Paina <PAD_TRIANGLE> puhuaksesi.",
"0182": "Paina <PAD_TRIANGLE> käyttääksesi.",
"0183": "Paina <PAD_TRIANGLE> matkustaaksesi.",
"0184": "Valitse taso suuntanäppäimellä",
"0185": "Paina <PAD_TRIANGLE> poistuaksesi.",
"0186": "Paina <PAD_TRIANGLE> pelataksesi.",
"0187": "Halutako pelata uudelleen?",
"0188": "Tehtävä suoritettu",
"0189": "Tehtävä epäonnistui",
"018a": "Yritä uudelleen?",
"018b": "Ruutu ottaa nyt käyttöön 60Hz-tilan",
"018c": "Ruutu ottaa nyt käyttöön progressiivisen skannauksen",
"018d": "Jos kuva näkyy virheellisenä, televisiosi ei tue tätä tilaa",
"018e": "Jos niin käy, odota 10 sekuntia, niin ruutu palautuu takaisin",
"018f": "Ruutu on nyt 60Hz-tilassa",
"0190": "Ruutu on nyt Progresiivinen skannaus -tilassa",
"0191": "Haluatko pitää tämän tilan käytössä?",
"0192": "Levy poistettiin",
"0193": "Syötä Jak II -levy sisään, jotta voit jatkaa pelaamista",
"0194": "Virhe tietojen lukemisessa",
"0195": "Tarkista Jak II -levysi ja yritä uudelleen",
"0196": "Haluatko varmasti lopettaa?",
"0197": "Haluatko aloittaa pelin?",
"0198": "Ei tarpeeksi tilaa muistikortilla Memory__Card__(PS2) paikassa Memory__Card__Slot__~D",
"0199": "Ei Memory__Card__(PS2) liitettynä paikassa Memory__Card__slot__~D",
"019a": "Memory__Card__(PS2) paikassa Memory__Card__slot__~D on alustamaton",
"019b": "Jak II vaatii ~D Kt vapaata tilaa",
"019c": "Syötä Jak II -pelitietoja sisältävä Memory__Card__(PS2) paikkaan Memory__Card__slot__~D",
"019d": "Syötä Memory__Card__(PS2) jossa on tarpeeksi tilaa, muuten pelitietojasi ei voida tallentaa",
"019e": "Ilman alustamista pelitietoja ei voida tallentaa",
"019f": "Tallennetaan tietoja",
"01a0": "Ladataan tietoja",
"01a1": "Alustetaan",
"01a2": "Luodaan tallennustiedostoa",
"01a3": "Älä poista Memory__Card__(PS2) paikassa Memory__Card__slot__~D tai sammuta laitettasi",
"01a4": "Jak II -tallennus on jo olemassa valitsemassasi tiedostossa",
"01a5": "Haluatko korvata tämän?",
"01a6": "Alusta?",
"01a7": "Jatka?",
"01a8": "Takaisin?",
"01a9": "Virhe ladattaessa",
"01aa": "virhe tallentaessa",
"01ab": "Virhe alustaessa",
"01ac": "Virhe luodessa tallennustiedostoa",
"01ad": "Tarkista Memory__Card__(PS2) paikassa Memory__Card__slot__~D",
"01ae": "Tarkista Memory__Card__(PS2) paikassa Memory__Card__slot__~D ja yritä uudelleen",
"01af": "Memory__Card__(PS2) paikasta Memory__Card__slot__~D poistettiin",
"01b0": "Automaattinen tallennus on poistettu käytöstä",
"01b1": "Tallenna pelisi manuaalisesti, niin automaattinen tallennus palautetaan käyttöön",
"01b2": "Jak II -tallennustietoja ei löytynyt kortilta Memory__Card__(PS2) paikassa Memory__Card__slot__~D",
"01b3": "Haluatko luoda uuden Jak II -tallennuksen?",
"01b4": "Kun oheinen kuvake ilmestyy, edistykesi tallennetaan",
"01b5": "Kun tämä kuvake on ruudulla, älä irrota Memory__Card__(PS2) tai sammuta laitettasi",
"01b6": "Pakene <COLOR_WHITE>linnoituksesta",
"01b7": "Suojele Koria ja lasta",
"01b8": "Nouda lippu <COLOR_WHITE>aavekaupungista",
"01b9": "Etsi <COLOR_WHITE>pumppaamon<COLOR_PROGRESS> venttiili",
"01ba": "Räjäytä ammukset <COLOR_WHITE>linnoituksessa",
"01bb": "Kuljeta toimitus <COLOR_WHITE>Sikahevon saluunaan",
"01bc": "Läpäise haulikon <COLOR_WHITE>harjoitusrata",
"01bd": "Suojele Sigiä <COLOR_WHITE>pumppaamolla",
"01be": "Tuhoa tykit <COLOR_WHITE>viemärissä",
"01bf": "Etsi <COLOR_WHITE>läjäytin<COLOR_PROGRESS>-modi",
"01c0": "Pelasta Vin <COLOR_WHITE>avolouhoksella",
"01c1": "Voita aika <COLOR_WHITE>kisatalliin",
"01c2": "Läpäise läjäyttimen <COLOR_WHITE>harjoitusrata",
"01c3": "Tuhoa munat <COLOR_WHITE>poralautalla",
"01c4": "Etsi <COLOR_WHITE>pumppaamon<COLOR_PROGRESS> partio",
"01c5": "Nouda rahat Krewille",
"01c6": "Voita JET-lauta-haaste <COLOR_WHITE>stadionilla",
"01c7": "Etsi Linssi <COLOR_WHITE>vuoristotemppelissä",
"01c8": "Etsi Siru <COLOR_WHITE>vuoristotemppelissä",
"01c9": "Etsi Ratas <COLOR_WHITE>vuoristotemppelissä",
"01ca": "Käynnistä 5 virtakytkintä",
"01cb": "Nouse hissillä <COLOR_WHITE>palatsiin",
"01cc": "Päihitä paroni <COLOR_WHITE>palatsissa",
"01cd": "Kuljeta Vastarinnan jäsenet",
"01ce": "Suojele paikkaa <COLOR_WHITE>aavekaupungissa",
"01cf": "Nappaa tarkkailijat <COLOR_WHITE>Havenin metsässä",
"01d0": "Saata lapsi <COLOR_WHITE>voimalaan",
"01d1": "Pelasta vaanijoita Brutterille",
"01d2": "Tuhoa lasti <COLOR_WHITE>satamalla",
"01d3": "Pysäytä tankkeri",
"01d4": "Tuhoa välineistö <COLOR_WHITE>kaivannolla",
"01d5": "Räjäytä ecokaivot <COLOR_WHITE>avolouhoksella",
"01d6": "Tyhjennä <COLOR_WHITE>viemäri<COLOR_PROGRESS> löytääksesi patsaan",
"01d7": "Tuhoa alus <COLOR_WHITE>poralautalla",
"01d8": "Pelasta vaanijat <COLOR_WHITE>kaivannolla",
"01d9": "Tapa Metallipäät <COLOR_WHITE>Havenin metsässä",
"01da": "Voita luokan 3 kisa <COLOR_WHITE>stadionilla",
"01db": "Nouda sinetin pala <COLOR_WHITE>kaivannolla",
"01dc": "Nouda sinetin pala <COLOR_WHITE>vesislummeilla",
"01dd": "Tuhoa 5 Villikissa-leijuria",
"01de": "Voita Oninin haaste",
"01df": "Käytä esineitä <COLOR_WHITE>Ei-kenenkään-kanjonissa",
"01e0": "Kohtaa testit <COLOR_WHITE>Marin haudassa",
"01e1": "Avaa holvin ovi <COLOR_WHITE>Marin haudassa",
"01e2": "Läpäise ensimmäinen <COLOR_WHITE>miehuuden testi",
"01e3": "Läpäise toinen <COLOR_WHITE>miehuuden testi",
"01e4": "Päihitä paroni <COLOR_WHITE>Marin haudassa",
"01e5": "Pelasta ystävät <COLOR_WHITE>linnoituksesta",
"01e6": "Saata miehet <COLOR_WHITE>viemärien<COLOR_PROGRESS> läpi",
"01e7": "Etsi <COLOR_WHITE>Rauhantekijä",
"01e8": "Voita luokan 2 kisa <COLOR_WHITE>stadionilla",
"01e9": "Suojele piilopaikkaa pommiboteilta",
"01ea": "Tutki <COLOR_WHITE>rakennustyömaa",
"01eb": "Kiipeä <COLOR_WHITE>rakennustyömaata",
"01ec": "Voita Erol kisahaasteessa",
"01ed": "Tuhoa munat <COLOR_WHITE>avolouhoksella",
"01ee": "Nouda Elämän siemen <COLOR_WHITE>aavekaupungissa",
"01ef": "Vie Elämän siemen <COLOR_WHITE>Havenin metsään",
"01f0": "Suojele Samosia <COLOR_WHITE>Havenin metsässä",
"01f1": "Tuhoa <COLOR_WHITE>poralautan<COLOR_PROGRESS> torni",
"01f2": "Voita luokan 1 kisa <COLOR_WHITE>stadionilla",
"01f3": "Tutki <COLOR_WHITE>palatsia",
"01f4": "Hanki Marin sydän <COLOR_WHITE>asetehtaalla",
"01f5": "Päihitä Krew <COLOR_WHITE>asetehtaalla",
"01f6": "Voita peli <COLOR_WHITE>Sikahevon saluunassa",
"01f7": "Etsi Sig <COLOR_WHITE>satamanpohjalla",
"01f8": "Saata Sig <COLOR_WHITE>satamanpohjan<COLOR_PROGRESS> läpi",
"01f9": "Puolusta <COLOR_WHITE>stadionia",
"01fa": "Puolusta vaanijapalloa",
"01fb": "Tuhoa tunnelit <COLOR_WHITE>satamanpohjalla",
"01fc": "Taistele tiesi <COLOR_WHITE>pesän muurille",
"01fd": "Löydä Paroni <COLOR_WHITE>rakennustyömaalla",
"01fe": "Tuhoa <COLOR_WHITE>pesän muuri",
"01ff": "Tuhoa Metalli-Kor <COLOR_WHITE>pesällä",
"0200": "Puhu <COLOR_WHITE>Korille",
"0201": "Puhu <COLOR_WHITE>Tornille",
"0202": "Puhu <COLOR_WHITE>Krewille",
"0203": "Puhu <COLOR_WHITE>Oninille",
"0204": "Puhu <COLOR_WHITE>Vinille",
"0205": "Puhu <COLOR_WHITE>Varjolle",
"0206": "Puhu <COLOR_WHITE>Sigille",
"0207": "Puhu <COLOR_WHITE>Mekaanikolle",
"0208": "Puhu <COLOR_WHITE>Keiralle",
"0209": "Puhu <COLOR_WHITE>Brutterille",
"020a": "Tarkista <COLOR_WHITE>basaari",
"020b": "Tarkista <COLOR_WHITE>vesislummit",
"020c": "Mene <COLOR_WHITE>Ei-kenenkään-kanjonille",
"020d": "Mene <COLOR_WHITE>Marin hautaan",
"020e": "Voita <COLOR_WHITE>Metallipää-mäiskintä",
"020f": "Puolusta <COLOR_WHITE>sataman muuria",
"0210": "Tarkista <COLOR_WHITE>rakennustyömaa",
"0211": "Hyökkää <COLOR_WHITE>Metallipäiden pesään",
"0212": "Käy <COLOR_WHITE>Oraakkelin<COLOR_PROGRESS> luona",
"0213": "Haven City",
"0214": "Linnoitus",
"0215": "Laskeutumisalusta",
"0216": "Palatsin katto",
"0217": "Palatsi",
"0218": "Asetehdas",
"0219": "Aavekaupunki",
"021a": "Pumppaamo",
"021b": "Viemäri",
"021c": "Avolouhos",
"021d": "Vuoristotemppeli",
"021e": "Havenin metsä",
"021f": "Poralautta",
"0220": "Marin hauta",
"0221": "Kaivanto",
"0222": "Satamanpohja",
"0223": "Pesä",
"0224": "Hyppää painamalla <PAD_X>",
"0225": "Kieri painamalla <PAD_L1> liikkeessä",
"0226": "Paina <PAD_X> ja sitten <PAD_X> uudelleen ilmassa",
"0227": "Hyökkää painamalla <PAD_SQUARE> tai <PAD_CIRCLE>",
"0228": "Kieri ja paina sitten <PAD_X> syöksyhyppyyn",
"0229": "Hyppää ja paina <PAD_SQUARE> ilmassa",
"022a": "Paina <PAD_L1> ja sitten <PAD_X> korkeaan hyppyyn",
"022b": "Ammu painamalla <PAD_R1>",
"022c": "<PAD_DPAD_UP> laittaa aseen pois",
"022d": "<PAD_DPAD_UP> tai <PAD_R1> tuo aseen esiin",
"022e": "Pelaa haulikon harjoitusrata painamalla <PAD_X>",
"022f": "<PAD_X> = Haulikon harjoitus~%<PAD_SQUARE> = Vulkanus-tykin harjoitus",
"0230": "Vaihda asetta painamalla <PAD_DPAD_DOWN>",
"0231": "Pelaa läjäyttimen harjoitusrata painamalla <PAD_X>",
"0232": "<PAD_X> = Läjäyttimen harjoitus~%<PAD_SQUARE> = Rauhantekijän harjoitus",
"0233": "Potkaise kohdetta ja paina <PAD_R1> tehdäksesi pikatulisarjan",
"0234": "Ammu laatikoita",
"0235": "Tavoite",
"0236": "Kulta",
"0237": "Hopea",
"0238": "Pronssi",
"0239": "Käytä lautaa painamalla <PAD_R2>",
"023a": "Hyppy: Paina <PAD_X>",
"023b": "Kyykkyhyppy: Paina <PAD_L1> ja sitten <PAD_X>",
"023c": "Voimahyppy: Paina <PAD_X> hieman laskeuduttuasi hypystä",
"023d": "Kaideliuku: Paina <PAD_SQUARE> ja <PAD_ANALOG_ANY>",
"023e": "Pyörähdys: Paina <PAD_X> ja sitten <PAD_R1> ja <PAD_ANALOG_LEFT_RIGHT>",
"023f": "Voltti: Paina <PAD_X> ja sitten <PAD_R1> ja <PAD_ANALOG_UP_DOWN>",
"0240": "Temppu: Paina <PAD_X> ja sitten <PAD_L1> ja <PAD_ANALOG_ANY>",
"0241": "Saat paljon pisteitä, jos liu'ut ja teet tempun liukuaksesi uudestaan",
"0242": "Aloita haaste aktivoimalla tuomari",
"0243": "Yritä uudelleen!",
"0244": "Palaa talliin",
"0245": "Tehtävä suoritettu: Palaa Krewin luo",
"0246": "Vaihda leijuvyöhykettä painamalla <PAD_R2>",
"0247": "Sukella painamalla <PAD_CIRCLE> pohjassa uidessasi",
"0248": "<PAD_CIRCLE> = Turbo~%<PAD_R1> tai <PAD_L1> = Hyppy",
"0249": "Iske Titaaniasulla painamalla <PAD_SQUARE>",
"024a": "Tartu Titaaniasulla lohkareisiin painamalla <PAD_R1>",
"024b": "Heitä nostetut esineet painamalla <PAD_SQUARE>",
"024c": "Paina <PAD_X> rampin yläpäässä",
"024d": "Liu'u kaidetta JET-laudalla painamalla <PAD_SQUARE> tai <PAD_CIRCLE>",
"024e": "Käytä <PAD_DPAD_ANY> ja <PAD_X> <PAD_CIRCLE> <PAD_SQUARE> <PAD_TRIANGLE>",
"024f": "Pumppaamo",
"0250": "Avolouhos",
"0251": "Katso traileri",
"0252": "<PAD_R2> mennäksesi laudan päälle tai pois",
"0253": "Käytä pimeää voimaa painamalla <PAD_L2>",
"0254": "Sony Computer Entertainment America~%presents",
"0255": "Sony Computer Entertainment Europe~%presents",
"0256": "Sony Computer Entertainment Korea~%presents",
"0257": "Sony Computer Entertainment Inc.~%presents",
"0258": "A game by",
"0259": "Jak II",
"025a": "Kaksi vuotta myöhemmin...",
"025b": "Viikko myöhemmin...",
"025c": "Asepäivitys hankittu",
"025d": "Haulikko hankittu",
"025e": "Läjäytin-modi mankittu",
"025f": "Vulkanus-piippu hankittu",
"0260": "Rauhantekijä hankittu",
"0261": "Haulikon tulinopeus päivitetty",
"0262": "Aseiden ammuskapasiteetti päivitetty",
"0263": "Aseiden vahinkoa päivitetty",
"0264": "Tehtävä suoritettu",
"0265": "Punainen turvapassi hankittu",
"0266": "Vihreä turvapassi hankittu",
"0267": "Keltainen turvapassi hankittu",
"0268": "Palatsin turvapassi hankittu",
"0269": "Musta turvapassi hankittu",
"026a": "Linssi hankittu",
"026b": "Ratas hankittu",
"026c": "Siru hankittu",
"026d": "Tuo 25 metallipäiden kallohelmeä",
"026e": "Tuo 200 metallipäiden kallohelmeä",
"026f": "Tuo 25 metallipäiden kallohelmeä",
"0270": "Tuo 200 metallipäiden kallohelmeä",
"0271": "Tuo 200 metallipäiden kallohelmeä",
"0272": "Tuo 100 metallipäiden kallohelmeä",
"0273": "Raivopommi: Paina <PAD_X> ja sitten <PAD_SQUARE>",
"0274": "Raivopurkaus: Paina <PAD_SQUARE> ja sitten <PAD_X>",
"0275": "Raivo-Jak on nyt haavoittumaton!",
"0276": "Raivojätti: Paina <PAD_L2> raivotilassa",
"0277": "Ohi",
"0278": "Valitse tapahtuma",
"0279": "Skeittipuisto",
"027a": "Luokan 3 kisa",
"027b": "Luokan 2 kisa",
"027c": "Luokan 1 kisa",
"027d": "Käänteinen luokan 3 kisa",
"027e": "Käänteinen luokan 2 kisa",
"027f": "Käänteinen luokan 1 kisa",
"0280": "Daxter saa suupalan",
"0281": "Tavataan Torn",
"0282": "Noutamassa lippua",
"0283": "Suojele pyhää paikkaa",
"0284": "Meidän maailmamme!",
"0285": "Vanhoja muistoja",
"0286": "Vin tarvitsee apua",
"0287": "Tavataan Vin",
"0288": "Hyviä ja huonoja uutisia",
"0289": "Suuri murskaus",
"028a": "Meillä on yhä ongelmia",
"028b": "Kaivot posahtavat!",
"028c": "Tavataan Kor ja lapsi",
"028d": "Vastarinta",
"028e": "Villikissa-tehtävä",
"028f": "Tornin toimitus",
"0290": "Tavataan Krew ja Sig",
"0291": "Yllätyshyökkäys!",
"0292": "Ashelin on huolissaan",
"0293": "Vin, kamu. Tarvitsemme palveluksen.",
"0294": "Kuka on verhojen takana?",
"0295": "Tiedonjyvä",
"0296": "Iloinen jälleennäkeminen",
"0297": "Kissatappelu",
"0298": "Jak poistuu paikalta",
"0299": "Daxterin suuri voitto",
"029a": "Keira paljastaa suunnitelmansa",
"029b": "Suuri kilpailu",
"029c": "Voittajan piiri",
"029d": "Tavataan Oraakkeli",
"029e": "Jak saa pimeän voiman",
"029f": "Jak saa toisen pimeän voiman",
"02a0": "Jak saa kolmannen pimeän voiman",
"02a1": "Jak saa neljännen pimeän voiman",
"02a2": "Valitus, naiset, ja laulu",
"02a3": "Rahankerääjät",
"02a4": "Mikä tämän lapsen tarina on?",
"02a5": "Krewilla on uusi keikka",
"02a6": "Tavataan Brutter",
"02a7": "Krewin kilpailusopimus",
"02a8": "Mitä te kaksi oikein teitte?",
"02a9": "Oninin haaste",
"02aa": "Marin sinetti on valmis",
"02ab": "Pelasta lisää vaanijoita",
"02ac": "Suojele piilopaikkaa",
"02ad": "Krew uhkailee",
"02ae": "Pelaaja astelee esiin",
"02af": "Saadaan aikakartta",
"02b0": "Brutter pelastaa päivän",
"02b1": "Leijutaan pois",
"02b2": "Saadaan keltainen ase",
"02b3": "Saadaan JET-lauta",
"02b4": "Jak laittaa JET-laudan pois",
"02b5": "Ihka oma Rauhantekijämme!",
"02b6": "Ulosmeno",
"02b7": "Jak matkaa pesään",
"02b8": "Paluu",
"02b9": "Ashelin kuljettaa Jakin",
"02ba": "Pala sinettiä",
"02bb": "Erol inhoaa häviötä",
"02bc": "Torn ja ammusvarasto",
"02bd": "Metallipäitä kaupungissa?",
"02be": "Nyt räjähtää!",
"02bf": "Torn myöntää petoksensa",
"02c0": "Aikakaksoset",
"02c1": "Krewin viemärikeikka",
"02c2": "Mikä on tuo löyhkä?",
"02c3": "Taiteenkeräilijä",
"02c4": "Että kaipaankin housuja!",
"02c5": "Sig paljastaa sielunsa",
"02c6": "Patsaanposauttelua",
"02c7": "Se on ansa!",
"02c8": "Daxter saa suupalan",
"02c9": "Daxter matkustaa putkea",
"02ca": "Työtarjous",
"02cb": "Torn tarjoaa tehtävän",
"02cc": "Tavataan Ashelin",
"02cd": "Daxter tekee siirtonsa",
"02ce": "Tästä tulee hauskaa!",
"02cf": "Boom, beibi!",
"02d0": "Peukut alas",
"02d1": "Heihei",
"02d2": "Temppu",
"02d3": "Hyvää yötä",
"02d4": "Toimit hienosti, tulokas",
"02d5": "Vin tahtoo munakokkelia",
"02d6": "Kor on huolissaan",
"02d7": "Poika on kadoksissa",
"02d8": "Ohjaustorni räjähtää",
"02d9": "Tavataan Onin ja Pecker",
"02da": "Vekotin romahtaa",
"02db": "Hyvät fiilikset",
"02dc": "Daxter kärventyy",
"02dd": "Salatapaaminen",
"02de": "Paroni kohtaa Jakin",
"02df": "Minä tuhoan sinut!",
"02e0": "Takaisin mistä aloitimme",
"02e1": "Salaisuus pommin rakentamiseen",
"02e2": "Krewin kaunotar",
"02e3": "Oi voi...",
"02e4": "Lentoon",
"02e5": "Laskeutumisalusta",
"02e6": "Jak löytää Marin haudan!",
"02e7": "tomb-open-door-res",
"02e8": "tomb-open-door-2-res",
"02e9": "Haudan ovet",
"02ea": "Ensimmäinen säde",
"02eb": "Toinen säde",
"02ec": "Ovet avautuvat",
"02ed": "Edeltäjäkivi!",
"02ee": "Paroni varastaa show'n",
"02ef": "Daxter ojentaa auttavan kätensä",
"02f0": "Daxterin karvainen takaa-ajo",
"02f1": "Tavataan Varjo",
"02f2": "Daxterin pöhkötarina",
"02f3": "Pecker haastaa riitaa",
"02f4": "Samos ja siemen",
"02f5": "Näky",
"02f6": "Kor ja lapsi",
"02f7": "Pelasta lisää vaanijoita",
"02f8": "Marin haudan legenda",
"02f9": "Se on kirous, eikö vain?",
"02fa": "Pora romahtaa",
"02fb": "Valotorni nousee",
"02fc": "Sinetti avaa portin",
"02fd": "Sig on ongelmissa",
"02fe": "Juokse!",
"02ff": "Sigin vahva käsi",
"0300": "Sieltä se taas tulee!",
"0301": "Sigin viimeinen hetki",
"0302": "Kivi... ase... pesä!",
"0303": "Jak matkaa pesään",
"0304": "Poistutaan pesästä",
"0305": "Kor hyppää esiin",
"0306": "Etkö tunnista häntä?",
"0307": "Outo uusi maailma",
"0308": "Juhlinta",
"0309": "<ICON_MISSION_COMPLETE>",
"030a": "<ICON_MISSION_TODO>",
"030b": "<FLAG_UK> English",
"030c": "Ota tekstitys käyttöön painamalla <PAD_SQUARE>",
"030d": "Tekstitys käytössä",
"030e": "Tekstitys ei käytössä",
"030f": "JET-lauta",
"0310": "Jatka"
}
@@ -1,16 +1,16 @@
{
"1a3": "Bitte entferne oder verbinde kein Zubehör und schalte nicht das System oder Spiel aus",
"1a3": "Bitte entferne oder verbinde kein Zubehör und schalte weder das System noch das Spiel aus",
"1b5": "Während dieses Symbol angezeigt wird, entferne oder verbinde kein Zubehör und schalte nicht das System oder das Spiel aus",
"1100": "Nicht in einer Mission",
"1100": "Keine Mission",
"1101": "Spielt eine Bonusmission",
"1102": "Blaster-Trainingskurs",
"1102": "Scatter Waffen-Training",
"1103": "Blaster-Trainingskurs",
"1104": "Vulcan-Fury-Trainingskurs",
"1105": "Friedensstifter-Trainingskurs",
"1106": "Onins Spiel",
"1107": "Metal Head Matsch",
"1200": "Anzeigemodus",
"1201": "Fenster",
"1201": "Fenstermodus",
"1202": "Vollbild",
"1203": "Randlos",
"1204": "Automatisch",
@@ -28,7 +28,7 @@
"1210": "Breite",
"1211": "Höhe",
"1212": "??????????",
"1213": "Jetzt spielt...",
"1213": "Wird gerade gespielt...",
"1214": "Kein Titel",
"1215": "Standard",
"1216": "Morph-Waffe",
@@ -232,6 +232,5 @@
"1336": "Fast Progress Menu",
"1337": "PS2 LOD Distance",
"1338": "Off",
"1339": "Display",
"133a": "Suomi"
"1339": "Display"
}
@@ -5,7 +5,7 @@
"1101": "Pelataan bonustehtävää",
"1102": "Haulikon harjoitusrata",
"1103": "Läjäyttimen harjoitusrata",
"1104": "Vulkanus-tykin harjoitusrata",
"1104": "Vulkanusraivon harjoitusrata",
"1105": "Rauhantekijän harjoitusrata",
"1106": "Oninin haaste",
"1107": "Metallipää-mäiskintä",
@@ -18,8 +18,8 @@
"1206": "4x3 (PS2)",
"1207": "16x9 (PS2)",
"1208": "Valitse leveys- ja korkeussuhde",
"1209": "Vahvista ja poistu painamalla <PAD_X>.",
"120a": "Vahvista ja poistu painamalla <PAD_CIRCLE>.",
"1209": "Paina <PAD_X> vahvistaaksesi ja poistuaksesi.",
"120a": "Paina <PAD_CIRCLE> vahvistaaksesi ja poistuaksesi.",
"120b": "Kuvasuhde ei saa olla pienempi kuin 4x3!",
"120c": "Musiikkisoitin",
"120d": "Pystytahdistus",
@@ -34,7 +34,7 @@
"1216": "Muuntoase",
"1217": "JET-lauta",
"1218": "Titaaniasu",
"1219": "Raivo-Jak",
"1219": "Pimeä Jak",
"121a": "Ajoneuvo",
"121b": "Vaara",
"121c": "Ei mikään",
@@ -85,10 +85,10 @@
"124a": "Ohjaimen LED-asetukset",
"124b": "Näytä pelaajan tila",
"124c": "Näytä terveyden määrä",
"124d": "Lopeta autom. tallennus",
"124e": "Autom. tallennus pois",
"124d": "Lopeta auto-tallennus",
"124e": "Auto-tallennus pois päältä",
"124f": "Haluatko varmasti lopettaa automaattisen tallentamisen?",
"1250": "Turbo-JET-lauta Haven Cityssä",
"1250": "Turbo JET-lauta Haven Cityssä",
"1251": "Vihollisten terveyspalkit",
"1252": "Ajoneuvojen terveyspalkit",
"1253": "Ajoneuvojen haavoittumattomuus",
@@ -96,13 +96,13 @@
"1255": "Kerää kerättävät automaattisesti",
"1256": "Musiikkisoitin",
"1257": "Tekstuuriton tila",
"1258": "Nopeat välinäytökset",
"1259": "Hitaat välinäytökset",
"1258": "Nopeat välianimaatiot",
"1259": "Hitaat välianimaatiot",
"125a": "Nopea pelattavuus",
"125b": "Hidas pelattavuus",
"125c": "Pikamatkustus Haven Cityssä",
"125d": "Edeltäjähelmien seuranta",
"125e": "Todellinen vuorokaudenaika",
"125e": "Todellinen vuorokauden aika",
"125f": "Tyyni Haven City",
"1260": "Näytä JET-laudan temput",
"1261": "Huono sää",
@@ -112,14 +112,14 @@
"1265": "Käännä kaikki 3 venttiiliä ja löydä Marin patsas tehtävässä \"~S\" alle ~D sekunnissa",
"1266": "Vähennä Haven Cityn asukaslukua ~D kappaleella",
"1267": "Vähennä Haven Cityn ajoneuvojen määrää ~D kappaleella",
"1268": "Metsästä jokaista metallipää-lajia",
"1268": "Metsästä jokaista Metallipäälajia",
"1269": "Käytä JET-lautaa rikkoaksesi säiliöt auki",
"126a": "Siirrä repeämäkuljetin jättäen Samos ja nuori Samos vaurioitta",
"1280": "Kuvakulma-asetukset",
"1281": "Vasen/oikea (1. persoona)",
"1282": "Ylös/alas (1. persoona)",
"1283": "Vasen/oikea (3. persoona)",
"1284": "Ylös/alas (3. persoona)",
"1281": "Vasen/oikea (ensimmäinen persoona)",
"1282": "Ylös/alas (ensimmäinen persoona)",
"1283": "Vasen/oikea (kolmas persoona)",
"1284": "Ylös/alas (kolmas persoona)",
"1285": "Palauta oletukset",
"1286": "Normaali",
"1287": "Käänteinen",
@@ -137,15 +137,15 @@
"1293": "Ohjainasetukset",
"1294": "Valitse ohjain",
"1295": "Analogisauvan katvealue",
"1296": "Älä huomioi työpöydällä",
"1296": "Älä huomioi, kun ikkuna ei aktiivinen",
"1297": "Ohjaimen LED terveydelle",
"1298": "Ohjaimen LED muihin tiloihin",
"1299": "Salli näppäimistö",
"129a": "Salli hiiri",
"129b": "Hiiriasetukset",
"129c": "Kameran ohjaus hiirellä",
"129d": "Herkkyys (vaakasuunta)",
"129e": "Herkkyys (pystysuunta)",
"129d": "Vaakasuuntainen herkkyys",
"129e": "Pystysuuntainen herkkyys",
"129f": "Pelaajan ohjaus hiirellä",
"12a0": "Objektien varjot",
"12a1": "Normaali",
@@ -156,25 +156,25 @@
"12a6": "Muut tilastot",
"12a7": "Tappoja yhteensä",
"12a8": "Jakin tappamia",
"12a9": "Raivo-Jakin tappamia",
"12a9": "Pimeän Jakin tappamia",
"12aa": "Daxterin tappamia",
"12ab": "Muiden tappamia",
"12ac": "Läjäytin",
"12ad": "Haulikko",
"12ae": "Vulkanus-tykki",
"12ae": "Vulkanusraivo",
"12af": "Rauhantekijä",
"12b0": "JET-lauta",
"12b1": "JET-lauta-temppu",
"12b1": "JET-lautatemppu",
"12b2": "Titaaniasun isku",
"12b3": "Titaaniasun runko",
"12b4": "Tykki",
"12b5": "Isku",
"12b6": "Maaisku",
"12b6": "Lyyhistyi",
"12b7": "Kohokoukku",
"12b8": "Pyörähdys",
"12b9": "Kierintä",
"12bf": "Raivopommi",
"12c0": "Raivopurkaus",
"12bf": "Pimeä pommi",
"12c0": "Pimeä purkaus",
"12c3": "Karmiinivartija",
"12c4": "Sig",
"12c5": "Ashelin",
@@ -208,24 +208,24 @@
"1315": "Tämä asetus on erittäin kokeellinen. Kun peliä ei pelata 60 Hz:n kuvataajuudella, visuaalisia sekä pelattavuuden ongelmia voi ilmaantua sen seurauksena.",
"1316": "Paikallinen tulos",
"1320": "Ei mitään",
"1321": "Pyörähdys",
"1322": "Nopeuslisä",
"1321": "Spin",
"1322": "Buusti",
"1323": "Voltti",
"1324": "Kaideliuku",
"1325": "Kaidehyppy",
"1326": "Nosegrab",
"1327": "Method",
"1328": "Lautapyörähdys",
"1329": "Lautavoltti",
"1328": "Board Spin",
"1329": "Board Flip",
"132a": "Noseflip",
"132b": "Kickflip",
"132c": "Hyppy",
"132d": "Kyykkyhyppy",
"132e": "Pikahyppy",
"132f": "Raivo-Jak",
"1330": "Raivopommi",
"1331": "Raivopurkaus",
"1332": "Raivojätti",
"132f": "Pimeä Jak",
"1330": "Pimeä pommi",
"1331": "Pimeä purkaus",
"1332": "Pimeä jätti",
"1333": "PS2-asetukset",
"1334": "Objektien vähennys",
"1335": "Pakota ympäristökartoitus",
@@ -1,12 +1,12 @@
{
"1a3": "Sauvegarde en cours. Veuillez à ne retirer ou n'insérer aucun périphérique, ni éteindre votre système ou arrêter le jeu.",
"1b5": "Lorsque cette icône est à l'écran, ne retirez ou n'insérez aucun périphérique, ni éteindre votre système ou arrêter le jeu.",
"1100": "Pas dans une mission",
"1a3": "Sauvegarde en cours. Veillez à ne retirer ou n'insérer aucun périphérique, ni éteindre votre système ou arrêter le jeu.",
"1b5": "Lorsque cette icône apparait, ne retirez ou n'insérez aucun périphérique, ni éteindre votre système ou arrêter le jeu.",
"1100": "Pas en mission",
"1101": "Jouer une mission bonus",
"1102": "Pulvérisator (Entrainement)",
"1103": "Blaster (Entrainement)",
"1104": "Vulcanobarillet (Entrainement)",
"1105": "Pacificateur (Entrainement)",
"1102": "Pulvérisator (Entraînement)",
"1103": "Blaster (Entraînement)",
"1104": "Vulcanobarillet (Entraînement)",
"1105": "Pacificateur (Entraînement)",
"1106": "Le jeu d'Onin",
"1107": "Chasse-taupe",
"1200": "Mode d'affichage",
@@ -113,7 +113,7 @@
"1266": "Réduire la population d'Abriville de ~D",
"1267": "Réduire le nombre de véhicules d'Abriville de ~D",
"1268": "Chassez toutes les espèces de Metal Head",
"1269": "Use the JET-Board to break open containers",
"1269": "Utilisez le JET-Board pour casser les caisses",
"126a": "Transport the Rift Rider while leaving Samos and Young Samos unscathed",
"1280": "Options de caméra",
"1281": "Horizontal (1ère Personne)",
@@ -155,24 +155,24 @@
"12a5": "Bestiaire",
"12a6": "Autres statistiques",
"12a7": "Total Tué",
"12a8": "Killed by Jak",
"12a9": "Killed by Dark Jak",
"12aa": "Killed by Daxter",
"12ab": "Killed by Others",
"12a8": "Tué par Jak",
"12a9": "Tué par Dark Jak",
"12aa": "Tué par Daxter",
"12ab": "Tué par d'autres",
"12ac": "Blaster",
"12ad": "Scatter Gun",
"12ae": "Vulcan Fury",
"12af": "Peacemaker",
"12ad": "Pulvérisator",
"12ae": "Vulcanobarillet",
"12af": "Pacificateur",
"12b0": "JET-Board",
"12b1": "JET-Board Trick",
"12b2": "Titan Suit Punch",
"12b3": "Titan Suit Body",
"12b1": "Figure de JET-Board",
"12b2": "Coup de poing de la Combinaison Titan",
"12b3": "Combinaison Titan",
"12b4": "Gunpod",
"12b5": "Punch",
"12b5": "Coup de poing",
"12b6": "Flop",
"12b7": "Uppercut",
"12b8": "Spin",
"12b9": "Roll",
"12b9": "Rouler",
"12bf": "Dark Bomb",
"12c0": "Dark Blast",
"12c3": "Grenagarde",
@@ -230,7 +230,7 @@
"1334": "Actor Culling",
"1335": "Force Environment Mapping",
"1336": "Menu de pause rapide",
"1337": "PS2 LOD Distance",
"1338": "Off",
"1337": "Distance du niveau de détail PS2",
"1338": "Non",
"1339": "Écran"
}
+156 -156
View File
@@ -1,46 +1,46 @@
{
"1a3": "しゅうへんききをぬいたり, さしたり, でんげんを きったりは しないでください",
"1b5": "このアイコンが あらわれているあいだ、しゅうへんききをぬいたり, さしたり, でんげんを きったりは しないでください",
"1100": "Not in a mission",
"1101": "Playing a bonus mission",
"1102": "Scatter Gun Training Course",
"1103": "Blaster Training Course",
"1104": "Vulcan Fury Training Course",
"1105": "Peace Maker Training Course",
"1106": "Onin Game",
"1107": "Metal Head Mash",
"1200": "スクリーンモード",
"1a3": "??機器をぬいたり, さしたり, 電源を切ったりは しないでください",
"1b5": "このアイコンが あらわれている間、??機器をぬいたり, さしたり, 電源を切ったりは しないでください",
"1100": "ミッションがありません",
"1101": "ボーナスミッションをプレイする",
"1102": "レッドバースト・ガン トレーニングコース",
"1103": "イエローブラスター・ガン トレーニングコース",
"1104": "ブルーバルカン・ガン トレーニングコース",
"1105": "ピースメーカー トレーニングコース",
"1106": "オニンゲーム",
"1107": "メタルたたき",
"1200": "ディスプレイモード",
"1201": "ウィンドウ",
"1202": "フルスクリーン",
"1203": "ボーダレス",
"1204": "Automatic",
"1205": "Custom",
"1204": "自動",
"1205": "カスタム",
"1206": "4x3 (PS2)",
"1207": "16x9 (PS2)",
"1208": "Choose width and height ratio",
"1209": "Press <PAD_X> to confirm and exit.",
"120a": "Press <PAD_CIRCLE> to confirm and exit.",
"120b": "Ratio must not be lower than 4x3!",
"120c": "BGMプレイヤー",
"120d": "すいちょくどうき",
"1208": "?と高さの??を選?",
"1209": "<PAD_X> を押して??して終了します",
"120a": "<PAD_CIRCLE> を押して??して終了します",
"120b": "??は4x3より低くてはなりません!",
"120c": "ミュージックプレイヤー",
"120d": "????",
"120e": "テキストの言語",
"120f": "OpenGOAL Secrets",
"1210": "Width",
"1211": "Height",
"120f": "OpenGOALシークレット",
"1210": "??",
"1211": "高さ",
"1212": "??????????",
"1213": "Now playing...",
"1214": "No Track",
"1214": "トラックなし",
"1215": "デフォルト",
"1216": "モーフィング・ガン",
"1217": "ジェットボード",
"1218": "タイタンスーツ",
"1219": "ダークジャック",
"121a": "乗り物",
"121b": "Danger",
"121b": "??",
"121c": "None",
"121d": "Low",
"121e": "Medium",
"121f": "High",
"121d": "低",
"121e": "中",
"121f": "高",
"1220": "Haven Exploration",
"1221": "Guard Pursuit",
"1222": "Ram Head Battle (Alt)",
@@ -65,172 +65,172 @@
"1235": "Weapons Factory",
"1236": "Arena Race",
"1237": "Dead Town",
"1238": "Window Size",
"1239": "Select Window Size",
"123a": "かいぞうど",
"123b": "Select Game Resolution",
"123c": "Level Of Detail (はいけい)",
"123d": "Level Of Detail (ぜんけい)",
"123f": "じまくではなしてをひょうじする",
"1238": "ウィンドウサイズ",
"1239": "ウィンドウサイズを選?",
"123a": "解像?",
"123b": "ゲーム解像?を選?",
"123c": "???(バックグラウンド)",
"123d": "???(フォアグラウンド)",
"123f": "字幕にスピーカーを表示",
"1240": "いつもしなく",
"1241": "Off-Screen",
"1242": "イツモ",
"1243": "ゲームのこくど",
"1241": "オフスクリーン",
"1242": "?時",
"1243": "ゲーム地?",
"1244": "アメリカ(SCEA)",
"1245": "ヨーロッパ(SCEE)",
"1246": "にほん(SCEI)",
"1247": "かんこく(SCEK)",
"1248": "MSAA",
"1249": "~DX",
"124a": "Controller LED Options",
"124b": "Show Player State",
"124c": "Show Amount of Health",
"124a": "コントローラーLEDオプション",
"124b": "プレイヤーステータスを表示",
"124c": "?力を表示",
"124d": "オートセーブを無?にする",
"124e": "オートセーブ オフ",
"124f": "オートセーブをきっても よろしいでしょうか?",
"1250": "Turbo JET-Board in Haven City",
"1251": "Enemy Health Bars",
"1252": "Vehicle Health Bars",
"1253": "Vehicle Invulnerability",
"1254": "Statistics",
"1255": "Automatically Grab Collectables",
"1256": "Music Player",
"1257": "No Textures Mode",
"1258": "Fast Movies",
"1259": "Slow Movies",
"125a": "Fast Gameplay",
"125b": "Slow Gameplay",
"125c": "Instant Travel in Haven City",
"125d": "Precursor Orb Tracker",
"1250": "ヘイブンシティのターボジェットボード",
"1251": "敵の?力バー",
"1252": "??の?力バー",
"1253": "??の無敵",
"1254": "????",
"1255": "コレクションを自動?に??する",
"1256": "ミュージックプレイヤー",
"1257": "テクスチャなしモード",
"1258": "?いムービー",
"1259": "?いムービー",
"125a": "高?ゲームプレイ",
"125b": "低?ゲームプレイ",
"125c": "ヘイブンシティの???行",
"125d": "プリカーソルオーブトラッカー",
"125e": "リアルタイムオブデイ",
"125f": "Pacified Haven City",
"1260": "JET-Board Trick Display",
"1261": "Bad Weather",
"1262": "Nice Weather",
"1263": "Vehicle Hijack Voice Lines",
"1264": "Locked",
"1265": "Hit all 3 valves and find Mar's Statue in \"~S\" in under ~D seconds",
"1266": "Reduce Haven City's population count by ~D",
"1267": "Reduce Haven City's vehicle count by ~D",
"1268": "Hunt every species of Metal Head",
"1269": "Use the JET-Board to break open containers",
"126a": "Transport the Rift Rider while leaving Samos and Young Samos unscathed",
"125f": "??なヘブンシティ",
"1260": "ジェットボードトリックディスプレイ",
"1261": "?い天?",
"1262": "?い天?",
"1263": "??ハイジャック??ライン",
"1264": "ロック中",
"1265": "3つのバルブをすべてヒットさせ、~D秒以内に?~S?のマールの像を見つける",
"1266": "ヘブンシティの??を~D人?らす",
"1267": "ヘブンシティの??を~D台?らす",
"1268": "??な種?のメタルヘッドを?る",
"1269": "ジェットボードを使って開いているコンテナを破壊する",
"126a": "セイジィと?いセイジィを無?のままリフト・ライダーまで輸送する",
"1280": "カメラ オプション",
"1281": "Left/Right (1st Person)",
"1282": "Up/Down (1st Person)",
"1283": "Left/Right (3rd Person)",
"1284": "Up/Down (3rd Person)",
"1285": "Reset to Default",
"1281": "左/右 (1人?)",
"1282": "上/下(1人?)",
"1283": "左/右 (3人?)",
"1284": "上/下(3人?)",
"1285": "デフォルトに戻す",
"1286": "ノーマル",
"1287": "リバース",
"1288": "パーティクル カリング",
"1289": "Discordリッチプレゼンス",
"128a": "Default",
"128b": "Low",
"128c": "High",
"128d": "Credits",
"128a": "デフォルト",
"128b": "低",
"128c": "高",
"128d": "クレジット",
"128e": "フレームレート",
"128f": "そのほか",
"128f": "その?",
"1290": "スピードラン モード",
"1291": "Input Options",
"1292": "リセット デフォルト",
"1293": "コントローラオプション",
"1294": "コントローラをせんたくする",
"1295": "Analog Deadzone",
"1296": "Ignore If Window Unfocused",
"1297": "コントローラのLedでたい力をひょうじする",
"1298": "Use LED for Other States",
"1299": "Enable Keyboard",
"129a": "Enable Mouse",
"1291": "入力??",
"1292": "????に戻す",
"1293": "コントローラーオプション",
"1294": "コントローラーを選?する",
"1295": "アナログデッドゾーン",
"1296": "ウィンドウのフォーカスが外れているときは無?する",
"1297": "コントローラーのLEDで?力を表示する",
"1298": "LEDを?の??で使用",
"1299": "キーボードを??にする",
"129a": "マウスを??にする",
"129b": "マウスオプション",
"129c": "Track Camera",
"129d": "Horizontal Sensitivity",
"129e": "Vertical Sensitivity",
"129f": "Player Movement",
"12a0": "Object Shadows",
"12a1": "Normal",
"12a2": "Extended",
"12a3": "No valid resolutions found.",
"12a4": "Automatic",
"12a5": "Bestiary",
"12a6": "Other Statistics",
"12a7": "Total Killed",
"12a8": "Killed by Jak",
"12a9": "Killed by Dark Jak",
"12aa": "Killed by Daxter",
"12ab": "Killed by Others",
"12ac": "Blaster",
"12ad": "Scatter Gun",
"12ae": "Vulcan Fury",
"12af": "Peacemaker",
"12b0": "JET-Board",
"12b1": "JET-Board Trick",
"12b2": "Titan Suit Punch",
"12b3": "Titan Suit Body",
"12b4": "Gunpod",
"12b5": "Punch",
"12b6": "Flop",
"12b7": "Uppercut",
"12b8": "Spin",
"12b9": "Roll",
"12bf": "Dark Bomb",
"12c0": "Dark Blast",
"12c3": "Krimzon Guard",
"12c4": "Sig",
"12c5": "Ashelin",
"12c6": "Jinx",
"12c7": "Grim",
"12c8": "Mog",
"12c9": "Metal Heads",
"12ca": "Other Friends",
"12cb": "Other Enemies",
"1300": "Auto Hide Cursor",
"1301": "Reassign Binds",
"129c": "?跡カメラ",
"129d": "水?感?",
"129e": "??感?",
"129f": "プレイヤーの?動",
"12a0": "オブジェクトの?",
"12a1": "ノーマル",
"12a2": "??",
"12a3": "??な解像?が見つかりませんでした",
"12a4": "自動",
"12a5": "ベスティアリー",
"12a6": "その?の????",
"12a7": "?キル数",
"12a8": "ジャックに倒された",
"12a9": "ダークジャックに倒された",
"12aa": "ダクスターに倒された",
"12ab": "?者に倒された",
"12ac": "イエローブラスター",
"12ad": "レッドバースト",
"12ae": "ブルーバルカン",
"12af": "ピースメーカー",
"12b0": "ジェットボード",
"12b1": "ジェットボードトリック",
"12b2": "タイタンスーツのパンチ",
"12b3": "タイタンスーツのボディ",
"12b4": "砲撃台",
"12b5": "パンチ",
"12b6": "フロップ",
"12b7": "アッパーカット",
"12b8": "スピン",
"12b9": "ロール",
"12bf": "ダークボム",
"12c0": "ダークブラスト",
"12c3": "クリムゾンガード",
"12c4": "ジーグ",
"12c5": "アシュリン",
"12c6": "ジンクス",
"12c7": "グリム",
"12c8": "モグ",
"12c9": "メタルヘッド",
"12ca": "?の友?",
"12cb": "?の敵",
"1300": "自動でカーソルを?す",
"1301": "バインドの??り?て",
"1302": "コントローラのバインド",
"1303": "キーボードのバインド",
"1304": "マウスのバインド",
"1305": "No Options",
"1306": "Waiting",
"1307": "みけってい",
"1308": "?られていない",
"1309": "High-Resolution Sky",
"130a": "Fast Airlocks and Doors",
"130b": "Fast Elevators",
"130c": "Speedrun",
"1305": "オプションなし",
"1306": "?機中",
"1307": "???",
"1308": "??",
"1309": "高解像?の空",
"130a": "高?エアロックとドア",
"130b": "高?エレベーター",
"130c": "スピードラン",
"130d": "Any%",
"130e": "Any% - Hoverless",
"130f": "All Missions",
"1310": "100%",
"1311": "Any% - All Orbs",
"1312": "Any% - Hero Mode",
"1313": "Local Time",
"1314": "Warning!",
"1315": "This setting is highly experimental. When not played at 60 frames per second, visual and gameplay issues may arise as a result.",
"1316": "Local Score",
"1313": "ローカルタイム",
"1314": "警告!",
"1315": "この??は??に???なものです.?秒60フレームで??されていない場合、???な??やゲームプレイの??が発?する?能性があります.",
"1316": "ローカルスコア",
"1320": "なし",
"1321": "スピン",
"1322": "ブースト",
"1323": "フリップ",
"1324": "レールグラインド",
"1325": "レールジャンプ",
"1326": "Nosegrab",
"1327": "Method",
"1326": "ノーズグラブ",
"1327": "メソッド",
"1328": "ボードスピン",
"1329": "ボードフリップ",
"132a": "Noseflip",
"132a": "ノーズフリップ",
"132b": "キックフリップ",
"132c": "ジャンプ",
"132d": "Duck Jump",
"132e": "Quick Jump",
"132d": "ダックジャンプ",
"132e": "クイックジャンプ",
"132f": "ダークジャック",
"1330": "Dark Bomb",
"1331": "Dark Blast",
"1332": "Dark Giant",
"1333": "PS2 Options",
"1334": "Actor Culling",
"1335": "Force Environment Mapping",
"1336": "Fast Progress Menu",
"1337": "PS2 LOD Distance",
"1338": "Off",
"1339": "Display"
"1330": "ダークボム",
"1331": "ダークブラスト",
"1332": "ダークジャイアント",
"1333": "PS2オプション",
"1334": "アクターカリング",
"1335": "?制?に??マッピング",
"1336": "高?進行??メニュー",
"1337": "PS2 LOD ??",
"1338": "オフ",
"1339": "ディスプレイ"
}
+3 -3
View File
@@ -53,7 +53,7 @@ void DebugSettings::load_settings() {
}
void DebugSettings::save_settings() {
// Update the version string as we are now saving it back ground
// Update the version string as we are now saving it back
version = current_version;
json data = *this;
auto debug_settings_filename =
@@ -99,7 +99,7 @@ void DisplaySettings::load_settings() {
}
void DisplaySettings::save_settings() {
// Update the version string as we are now saving it back ground
// Update the version string as we are now saving it back
version = current_version;
json data = *this;
auto file_path = file_util::get_user_settings_dir(g_game_version) / "display-settings.json";
@@ -148,7 +148,7 @@ void InputSettings::load_settings() {
}
void InputSettings::save_settings() {
// Update the version string as we are now saving it back ground
// Update the version string as we are now saving it back
version = current_version;
json data = *this;
auto file_path = file_util::get_user_settings_dir(g_game_version) / "input-settings.json";
+37 -13
View File
@@ -18,12 +18,14 @@ DisplayManager::DisplayManager(SDL_Window* window) : m_window(window) {
// scales
SetProcessDPIAware();
#endif
// First, load the settings
m_display_settings.load_settings();
// then potentially move the window to a different display
initialize_window_position_from_settings();
// now that we are on that monitor, get the info and video modes for it
update_curr_display_info();
update_video_modes();
// Load from file now (after initializing current window settings)
m_display_settings.load_settings();
// Adjust window / monitor position
initialize_window_position_from_settings();
// finally, potentially change the display mode
set_display_mode(m_display_settings.display_mode);
}
}
@@ -42,9 +44,12 @@ DisplayManager::~DisplayManager() {
void DisplayManager::initialize_window_position_from_settings() {
// Check that the display id is still valid
if (m_current_display_modes.find(m_display_settings.display_id) ==
m_current_display_modes.end()) {
lg::warn("[DISPLAY] Saved display ID is no longer valid, resetting to display 0");
const auto num_displays = SDL_GetNumVideoDisplays();
if (m_display_settings.display_id >= num_displays) {
lg::warn(
"[DISPLAY] Saved display ID: {} is no longer valid as only {} displays were detected, "
"resetting to display 0",
num_displays);
m_display_settings.display_id = 0;
m_display_settings.window_xpos = 50;
m_display_settings.window_ypos = 50;
@@ -57,6 +62,8 @@ void DisplayManager::initialize_window_position_from_settings() {
sdl_util::log_error(fmt::format("unable to get display bounds for display id {}",
m_display_settings.display_id));
} else {
lg::debug("[DISPLAY]: display bounds for {} is ({}, {}) | {}x{}", m_display_settings.display_id,
rect.x, rect.y, rect.w, rect.h);
// Adjust the settings if they are out of bounds
if (m_display_settings.window_xpos <= rect.x ||
m_display_settings.window_xpos + 50 >= rect.x + rect.w) {
@@ -187,7 +194,7 @@ Resolution DisplayManager::get_resolution(int id) {
}
bool DisplayManager::is_supported_resolution(int width, int height) {
for (const auto resolution : m_available_resolutions) {
for (const auto& resolution : m_available_resolutions) {
if (resolution.width == width && resolution.height == height) {
return true;
}
@@ -300,7 +307,7 @@ void DisplayManager::update_curr_display_info() {
if (get_active_display_id() < 0) {
sdl_util::log_error("could not retrieve current window's display index");
}
lg::info("[DISPLAY] current display id is {}", m_display_settings.display_id);
lg::info("[DISPLAY] current display id is {}", get_active_display_id());
SDL_GL_GetDrawableSize(m_window, &m_window_width, &m_window_height);
SDL_GetWindowPosition(m_window, &m_window_xpos, &m_window_ypos);
// Update the scale of the display as well
@@ -358,6 +365,10 @@ void DisplayManager::update_video_modes() {
DisplayMode new_mode = {display_name_str, curr_mode.format, curr_mode.w,
curr_mode.h, curr_mode.refresh_rate, orient};
m_current_display_modes[display_id] = new_mode;
lg::info(
"[DISPLAY]: Found monitor {}, currently set to {}x{}@{}hz. Format: {}, Orientation: {}",
new_mode.display_name, new_mode.screen_width, new_mode.screen_height, new_mode.refresh_rate,
new_mode.sdl_pixel_format, static_cast<int>(new_mode.orientation));
}
update_resolutions();
}
@@ -365,17 +376,30 @@ void DisplayManager::update_video_modes() {
void DisplayManager::update_resolutions() {
lg::info("[DISPLAY] Enumerating resolutions");
// Enumerate display's display modes to get the resolutions
auto num_display_modes = SDL_GetNumDisplayModes(get_active_display_id());
const auto active_display_id = get_active_display_id();
const auto active_refresh_rate = m_current_display_modes[active_display_id].refresh_rate;
auto num_display_modes = SDL_GetNumDisplayModes(active_display_id);
SDL_DisplayMode curr_mode;
for (int i = 0; i < num_display_modes; i++) {
auto ok = SDL_GetDisplayMode(get_active_display_id(), i, &curr_mode);
auto ok = SDL_GetDisplayMode(active_display_id, i, &curr_mode);
if (ok != 0) {
sdl_util::log_error(fmt::format("unable to get display mode for display {}, index {}",
get_active_display_id(), i));
sdl_util::log_error(
fmt::format("unable to get display mode for display {}, index {}", active_display_id, i));
continue;
}
// Skip resolutions that aren't using the current refresh rate, they won't work.
// For example if your monitor is currently set to `60hz` and the monitor _could_ support
// resolution X but only at `30hz`...then there's no reason for us to consider it as an option.
if (curr_mode.refresh_rate != active_refresh_rate) {
lg::debug(
"[DISPLAY]: Skipping {}x{} as it requires {}hz but the monitor is currently set to {}hz",
curr_mode.w, curr_mode.h, curr_mode.refresh_rate, active_refresh_rate);
continue;
}
Resolution new_res = {curr_mode.w, curr_mode.h,
static_cast<float>(curr_mode.w) / static_cast<float>(curr_mode.h)};
lg::info("[DISPLAY]: {}x{}@{}hz is supported", new_res.width, new_res.height,
curr_mode.refresh_rate);
m_available_resolutions.push_back(new_res);
}
+3 -1
View File
@@ -80,7 +80,9 @@ class DisplayManager {
game_settings::DisplaySettings::DisplayMode get_display_mode() {
return m_display_settings.display_mode;
}
int get_num_resolutions() { return m_available_resolutions.size(); }
int get_num_resolutions() {
return m_available_resolutions.size();
}
Resolution get_resolution(int id);
bool is_supported_resolution(int width, int height);
+7 -2
View File
@@ -34,13 +34,14 @@
(defmethod set-window-size! ((obj pc-settings) (width int) (height int))
"sets the size of the display window"
(let ((display-mode (pc-get-display-mode)))
(format 0 "Setting ~A size to ~D x ~D~%" display-mode width height)
(cond
((= display-mode 'windowed)
(set! (-> obj window-width) width)
(set! (-> obj window-height) height)
(format 0 "Setting window size to ~D x ~D~%" (max PC_MIN_WIDTH (-> obj window-width)) (max PC_MIN_HEIGHT (-> obj window-height)))
(pc-set-window-size! (max PC_MIN_WIDTH (-> obj window-width)) (max PC_MIN_HEIGHT (-> obj window-height))))
(else
(format 0 "Setting borderless/fullscreen size to ~D x ~D~%" width height)
(set! (-> obj width) width)
(set! (-> obj height) height))))
(none))
@@ -642,7 +643,11 @@
(unless (read-from-file obj *pc-temp-string-1*)
(format 0 "[PC] PC Settings found at '~S' but could not be loaded, using defaults!~%" *pc-temp-string-1*)
(reset obj #t)))
(else (format 0 "[PC] PC Settings not found at '~S'...initializing with defaults!~%" *pc-temp-string-1*) (reset obj #t)))
(else
(format 0 "[PC] PC Settings not found at '~S'...initializing with defaults!~%" *pc-temp-string-1*)
(reset obj #t)
;; save the file so users aren't confused, and so we can debug what the game is producing for them
(commit-to-file obj)))
0)
(defmethod initialize ((obj pc-settings))
+15 -12
View File
@@ -318,18 +318,21 @@
(set! (-> obj aspect-ratio-auto?) #t)
(set! (-> obj vsync?) #t)
(set! (-> obj letterbox?) #t)
;; get screen size and set to borderless at screen res (if retail)
(cond
((> (pc-get-num-resolutions) 0)
;; pick first available resolution by default
(pc-get-resolution 0 (&-> obj width) (&-> obj height)))
(else
;; somehow didn't get a single resolution. this is pretty bad.
(pc-get-active-display-size (&-> obj width) (&-> obj height))
(max! (-> obj width) PC_MIN_WIDTH)
(max! (-> obj height) PC_MIN_HEIGHT)
(format 0 "!!!! failed to get any screen resolutions !!!!")))
(format 0 "fullscreen resolution defaulted to ~D x ~D~%" (-> obj width) (-> obj height))
;; default to the displays currently chosen resolution
(pc-get-active-display-size (&-> obj width) (&-> obj height))
(max! (-> obj width) PC_MIN_WIDTH)
(max! (-> obj height) PC_MIN_HEIGHT)
;; ensure the default resolution was a valid choice
(let* ((saved-width (-> obj width))
(saved-height (-> obj height))
(supported-resolution? (pc-is-supported-resolution? saved-width saved-height)))
(cond
(supported-resolution?
(format 0 "[PC Settings]: Valid default game-size resolution set ~D x ~D~%" saved-width saved-height))
(else
(pc-get-active-display-size (&-> obj width) (&-> obj height))
(format 0 "[PC Settings]: Invalid game-size resolution ~D x ~D, defaulting to ~D x ~D~%" saved-width saved-height (-> obj width) (-> obj height)))))
(format 0 "[PC Settings]: fullscreen resolution defaulted to ~D x ~D~%" (-> obj width) (-> obj height))
(set! (-> obj gfx-msaa) PC_DEFAULT_MSAA) ;; default msaa
0)
@@ -3416,7 +3416,6 @@
(flag "japanese" 5 dm-setting-subtitle-language)
(flag "korean" 6 dm-setting-subtitle-language)
(flag "uk-english" 7 dm-setting-subtitle-language)
(flag "finnish" 9 dm-setting-subtitle-language)
)
(flag
"play-hints "
-1
View File
@@ -828,7 +828,6 @@
(progress-graphics-ps2-lod-dist #x1337)
(progress-graphics-msaa-off #x1338)
(progress-graphics-display #x1339)
(language-name-finnish #x133a)
)
;; ---text-id
+8 -22
View File
@@ -28,28 +28,14 @@
(defenum language-enum
:type int64
(english 0)
(french 1)
(german 2)
(spanish 3)
(italian 4)
(japanese 5)
(korean 6)
(uk-english 7)
;; custom
(portuguese 8)
(finnish 9)
(swedish 10)
(danish 11)
(norwegian 12)
(dutch 13)
(br-portuguese 14)
(hungarian 15)
(catalan 16)
(icelandic 17)
(russian 18)
(polish 19)
(lithuanian 20)
(english)
(french)
(german)
(spanish)
(italian)
(japanese)
(korean)
(uk-english)
)
(defenum runtime-exit-status
@@ -896,7 +896,6 @@
(flag "japanese" (the binteger (pc-language japanese)) dm-text-language)
(flag "korean" (the binteger (pc-language korean)) dm-text-language)
(flag "uk-english" (the binteger (pc-language uk-english)) dm-text-language)
(flag "finnish" (the binteger (pc-language finnish)) dm-text-language)
)
(flag "Discord RPC" #t ,(dm-lambda-boolean-flag (-> *pc-settings* discord-rpc?)))
(flag "Speedrunner Mode" #t ,(dm-lambda-boolean-flag (-> *pc-settings* speedrunner-mode?)))
@@ -347,27 +347,10 @@ This gives us more freedom to write code how we want.
(text-id language-name-italian)
(text-id language-name-japanese)
(text-id language-name-korean)
(text-id language-name-english-uk)
(text-id language-name-finnish))
:get-item-index-fn (lambda ()
;; workaround until all languages are added
(if (<= (-> *setting-control* user-default subtitle-language) (language-enum uk-english))
(-> *setting-control* user-default subtitle-language)
(case (-> *setting-control* user-default subtitle-language)
(((language-enum finnish)) 8)
(else
(format 0 "PROGRESS: Forgot to add subtitle language to workaround switch case, defaulting to english")
0))))
(text-id language-name-english-uk))
:get-item-index-fn (lambda () (-> *setting-control* user-default subtitle-language))
:on-confirm (lambda ((index int) (the-progress progress))
;; workaround until all languages are added
(if (<= index (language-enum uk-english))
(set! (-> *setting-control* user-default subtitle-language) (the-as language-enum index))
(set! (-> *setting-control* user-default subtitle-language)
(case index
((8) (language-enum finnish))
(else
(format 0 "PROGRESS: Forgot to add subtitle language to workaround switch case, defaulting to english")
(language-enum english))))))))
(set! (-> *setting-control* user-default subtitle-language) (the-as language-enum index)))))
(defmacro game-options-pc-sound-language ()
`(new 'static 'menu-generic-carousel-option
@@ -395,30 +378,13 @@ This gives us more freedom to write code how we want.
(text-id language-name-italian)
(text-id language-name-japanese)
(text-id language-name-korean)
(text-id language-name-english-uk)
(text-id language-name-finnish))
:get-item-index-fn (lambda ()
;; workaround until all languages are added
(if (<= (-> *pc-settings* text-language) (pc-language uk-english))
(-> *pc-settings* text-language)
(case (-> *pc-settings* text-language)
(((pc-language finnish)) 8)
(else
(format 0 "PROGRESS: Forgot to add text language to workaround switch case, defaulting to english")
(pc-language english)))))
(text-id language-name-english-uk))
:get-item-index-fn (lambda () (-> *pc-settings* text-language))
:on-confirm (lambda ((index int) (the-progress progress))
;; workaround until all languages are added
(if (<= index (pc-language uk-english))
(set! (-> *pc-settings* text-language) (the-as pc-language index))
(set! (-> *pc-settings* text-language)
(case index
((8) (pc-language finnish))
(else
(format 0 "PROGRESS: Forgot to add text language to workaround switch case, defaulting to english")
(pc-language english)))))
;; NOTE - this doesn't actually work (naughty dog tried it too in their progress code)
(load-level-text-files (the-as int (-> *pc-settings* text-language)))
(pc-settings-save))))
;; NOTE - this doesn't actually work (naughty dog tried it too in their progress code)
(load-level-text-files (the-as int (-> *pc-settings* text-language)))
(pc-settings-save))))
(defmacro misc-options-pc-discord-rpc ()
`(new 'static 'menu-generic-boolean-option
+1 -1
View File
@@ -29,7 +29,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconstant PC_SUBTITLE_FILE_SIZE (* 600 1024)) ;; 600K heap for subtitles. adjust later if necessary.
(defconstant PC_SUBTITLE_FILE_SIZE (* 384 1024)) ;; 384K heap for subtitles. adjust later if necessary.
(defconstant PC_SUBTITLE_FILE_NAME "subti2")
(defconstant PC_SUBTITLE_QUEUE_SIZE 5) ;; up to 8 things that display subtitles can be detected at once
(defconstant PC_SUBTITLE_QUEUE_MAX_LINES 2) ;; up to 2 lines can be queued per queueable thing
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!hash.md5
+15 -2
View File
@@ -42,7 +42,12 @@ JAK1_AUTO_REPLACEMENTS = {
"–": "-",
"​": "",
"„": ",,",
"”": "\""
"”": "\"",
" ": " ",
"!": "!",
"(": "(",
")": ")",
"。": "."
}
# TODO - check for korean text
@@ -83,7 +88,13 @@ JAK2_AUTO_REPLACEMENTS = {
"–": "-",
"​": "",
"„": ",,",
"”": "\""
"”": "\"",
" ": " ",
"!": "!",
"(": "(",
")": ")",
"〜": "~",
"。": "."
}
# fmt: on
@@ -145,6 +156,7 @@ def lint_jak1_characters(text):
character, text
)
)
# text = jak1_replace_character(text, pos, "?")
invalid_characters_found = True
pos = pos + 1
else:
@@ -258,6 +270,7 @@ def lint_jak2_characters(text):
character, text
)
)
# text = jak2_replace_character(text, pos, "?")
invalid_characters_found = True
pos = pos + 1
else:
+57 -5
View File
@@ -4,6 +4,19 @@
import os
import hashlib
import argparse
parser = argparse.ArgumentParser("compare-compilation-outputs")
parser.add_argument("--base", help="The base branch directories", type=str)
parser.add_argument("--compare", help="The potentially modified directories to compare", type=str)
parser.add_argument("--markdown", help="The format to output results as a markdown file './comp-diff-report.md'", action="store_true")
args = parser.parse_args()
to_markdown_file = False
if args.markdown:
to_markdown_file = True
markdown_lines = []
def hash_file(filepath):
"""Returns the MD5 hash of the file."""
@@ -19,8 +32,13 @@ def compare_directories(base_dir, compare_dir):
missing_files = []
# Iterate through files in the base directory
total_files = 0
for root, _, files in os.walk(base_dir):
for file in files:
if file == ".gitignore":
continue
total_files = total_files + 1
base_file_path = os.path.join(root, file)
relative_path = os.path.relpath(base_file_path, base_dir)
compare_file_path = os.path.join(compare_dir, relative_path)
@@ -34,20 +52,54 @@ def compare_directories(base_dir, compare_dir):
missing_files.append(relative_path)
# Report results
print(f'Comparing {base_dir} with {compare_dir}')
markdown_lines.append(f'### Comparing `{base_dir}` with `{compare_dir}`\n\n')
if not mismatched_files and not missing_files:
print("All files matched successfully.")
markdown_lines.append(f'All `{total_files}` files matched successfully ✅\n\n')
return 0
else:
markdown_lines.append(f'Found potential problems ❌\n')
markdown_lines.append(f'- {len(mismatched_files)} different file(s)\n')
markdown_lines.append(f'- {len(missing_files)} missing file(s)\n\n')
markdown_lines.append("| file | result |\n")
markdown_lines.append("|------|--------|\n")
if mismatched_files:
print("Mismatched files:")
markdown_printed_already = 0
for file in mismatched_files:
print(f" - {file}")
if markdown_printed_already < 25:
markdown_lines.append(f"| `{file}` | different |\n")
markdown_printed_already = markdown_printed_already + 1
if len(mismatched_files) > 25:
markdown_lines.append(f"| ...and {len(mismatched_files) - 25} other files | different |\n")
if missing_files:
print("Missing files:")
markdown_printed_already = 0
for file in missing_files:
print(f" - {file}")
if markdown_printed_already < 25:
markdown_lines.append(f"| `{file}` | missing |\n")
markdown_printed_already = markdown_printed_already + 1
if len(missing_files) > 25:
markdown_lines.append(f"| ...and {len(missing_files) - 25} other files | missing |\n")
markdown_lines.append("\n")
return 1
# Usage example
base_directory = './out/jak1/obj'
compare_directory = './out/jak1/obj_master'
print(f'Comparing {base_directory} with {compare_directory}')
compare_directories(base_directory, compare_directory)
print(f"base: {args.base}")
print(f"compare: {args.compare}")
base_directory_list = args.base.split(",")
compare_directory_list = args.compare.split(",")
result = 0
for base_dir, comp_dir in zip(base_directory_list, compare_directory_list):
latest_result = compare_directories(base_dir, comp_dir)
if latest_result != 0:
result = latest_result
if to_markdown_file:
with open('./comp-diff-report.md', 'w', encoding='utf-8') as md_file:
md_file.writelines(markdown_lines)
print("Wrote results to ./comp-diff-report.md")
exit(result)
-1
View File
@@ -276,4 +276,3 @@ for adjust in adjustments:
function_string += f" ((fequal-epsilon? aspect-ratio {aspect_ratio} 0.01) {value:.1f})\n"
function_string += f" (else\n (+ {coefficients[0]}\n (* {coefficients[1]} aspect-ratio)\n (* {coefficients[2]} aspect-ratio aspect-ratio)\n (* {coefficients[3]} aspect-ratio aspect-ratio aspect-ratio)))))\n"
print(function_string)