1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-27 03:24:45 +00:00

Set up build system for ique-cn (#2382)

* Set up build system for ique-cn

* Fix size of fbdemo_circle assets

* Treat iQue as NTSC and Use "NES" for Chinese text

* Revert z_kanfont
This commit is contained in:
cadmic 2024-12-21 11:13:56 -08:00 committed by GitHub
parent 81df2d4ba3
commit 471fe51c82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 3037 additions and 72 deletions

View file

@ -66,6 +66,7 @@ ifeq ($(VERSION),ntsc-1.0)
REGION ?= JP
PLATFORM := N64
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd44
BUILD_DATE := 98-10-21
BUILD_TIME := 04:56:31
REVISION := 0
@ -74,6 +75,7 @@ else ifeq ($(VERSION),ntsc-1.1)
REGION ?= JP
PLATFORM := N64
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd44
BUILD_DATE := 98-10-26
BUILD_TIME := 10:58:45
REVISION := 1
@ -81,6 +83,7 @@ else ifeq ($(VERSION),pal-1.0)
REGION ?= EU
PLATFORM := N64
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd44
BUILD_DATE := 98-11-10
BUILD_TIME := 14:34:22
REVISION := 0
@ -89,6 +92,7 @@ else ifeq ($(VERSION),ntsc-1.2)
REGION ?= JP
PLATFORM := N64
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd44
BUILD_DATE := 98-11-12
BUILD_TIME := 18:17:03
REVISION := 2
@ -96,6 +100,7 @@ else ifeq ($(VERSION),pal-1.1)
REGION ?= EU
PLATFORM := N64
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd44
BUILD_DATE := 98-11-18
BUILD_TIME := 17:36:49
REVISION := 1
@ -103,6 +108,7 @@ else ifeq ($(VERSION),gc-jp)
REGION ?= JP
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 02-10-29
BUILD_TIME := 23:49:53
REVISION := 15
@ -110,6 +116,7 @@ else ifeq ($(VERSION),gc-jp-mq)
REGION ?= JP
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 02-10-30
BUILD_TIME := 00:15:15
REVISION := 15
@ -117,6 +124,7 @@ else ifeq ($(VERSION),gc-us)
REGION ?= US
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 02-12-19
BUILD_TIME := 13:28:09
REVISION := 15
@ -124,6 +132,7 @@ else ifeq ($(VERSION),gc-us-mq)
REGION ?= US
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 02-12-19
BUILD_TIME := 14:05:42
REVISION := 15
@ -131,6 +140,7 @@ else ifeq ($(VERSION),gc-eu-mq-dbg)
REGION ?= EU
PLATFORM := GC
DEBUG_FEATURES ?= 1
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 03-02-21
BUILD_TIME := 00:16:31
REVISION := 15
@ -138,6 +148,7 @@ else ifeq ($(VERSION),gc-eu)
REGION ?= EU
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 03-02-21
BUILD_TIME := 20:12:23
REVISION := 15
@ -145,6 +156,7 @@ else ifeq ($(VERSION),gc-eu-mq)
REGION ?= EU
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 03-02-21
BUILD_TIME := 20:37:19
REVISION := 15
@ -152,23 +164,23 @@ else ifeq ($(VERSION),gc-jp-ce)
REGION ?= JP
PLATFORM := GC
DEBUG_FEATURES ?= 0
BUILD_CREATOR := zelda@srd022j
BUILD_DATE := 03-10-08
BUILD_TIME := 21:53:00
REVISION := 15
else ifeq ($(VERSION),ique-cn)
COMPARE := 0
REGION ?= US
PLATFORM := IQUE
DEBUG_FEATURES ?= 0
BUILD_CREATOR := build@toad.routefree.com
BUILD_DATE := 03-10-22
BUILD_TIME := 16:23:19
REVISION := 0
else
$(error Unsupported version $(VERSION))
endif
ifeq ($(PLATFORM),N64)
BUILD_CREATOR := zelda@srd44
LIBULTRA_VERSION := I
LIBULTRA_PATCH := 1
else
BUILD_CREATOR := zelda@srd022j
LIBULTRA_VERSION := L
LIBULTRA_PATCH := 0
endif
# ORIG_COMPILER cannot be combined with a non-IDO compiler. Check for this case and error out if found.
ifneq ($(COMPILER),ido)
ifeq ($(ORIG_COMPILER),1)
@ -196,6 +208,22 @@ VENV := .venv
MAKE = make
CPPFLAGS += -P -xc -fno-dollars-in-identifiers
ifeq ($(PLATFORM),N64)
CPP_DEFINES += -DPLATFORM_N64=1 -DPLATFORM_GC=0 -DPLATFORM_IQUE=0
LIBULTRA_VERSION := I
LIBULTRA_PATCH := 1
else ifeq ($(PLATFORM),GC)
CPP_DEFINES += -DPLATFORM_N64=0 -DPLATFORM_GC=1 -DPLATFORM_IQUE=0
LIBULTRA_VERSION := L
LIBULTRA_PATCH := 0
else ifeq ($(PLATFORM),IQUE)
CPP_DEFINES += -DPLATFORM_N64=0 -DPLATFORM_GC=0 -DPLATFORM_IQUE=1
LIBULTRA_VERSION := L
LIBULTRA_PATCH := 0
else
$(error Unsupported platform $(PLATFORM))
endif
# Converts e.g. ntsc-1.0 to NTSC_1_0
VERSION_MACRO := $(shell echo $(VERSION) | tr a-z-. A-Z__)
CPP_DEFINES += -DOOT_VERSION=$(VERSION_MACRO) -DOOT_REVISION=$(REVISION)
@ -204,14 +232,6 @@ CPP_DEFINES += -DBUILD_CREATOR="\"$(BUILD_CREATOR)\"" -DBUILD_DATE="\"$(BUILD_DA
CPP_DEFINES += -DLIBULTRA_VERSION=LIBULTRA_VERSION_$(LIBULTRA_VERSION)
CPP_DEFINES += -DLIBULTRA_PATCH=$(LIBULTRA_PATCH)
ifeq ($(PLATFORM),N64)
CPP_DEFINES += -DPLATFORM_N64=1 -DPLATFORM_GC=0
else ifeq ($(PLATFORM),GC)
CPP_DEFINES += -DPLATFORM_N64=0 -DPLATFORM_GC=1
else
$(error Unsupported platform $(PLATFORM))
endif
ifeq ($(DEBUG_FEATURES),1)
CPP_DEFINES += -DDEBUG_FEATURES=1
OPTFLAGS := -O2

View file

@ -0,0 +1,21 @@
<Root>
<File Name="object_mag" Segment="6">
<Texture Name="gTitleZeldaShieldLogoTex" OutName="title_zelda_shield_logo" Format="rgba32" Width="160" Height="160" Offset="0x0"/>
<Texture Name="gTitleCopyright19982003Tex" OutName="title_copyright_19982003" Format="ia8" Width="128" Height="16" Offset="0x19000"/>
<Texture Name="gTitleCopyright2003iQueTex" OutName="title_copyright_2003_ique" Format="ia8" Width="128" Height="16" Offset="0x19800"/>
<Texture Name="gTitleDiskTex" OutName="title_disk" Format="ia8" Width="48" Height="16" Offset="0x1A000"/>
<Texture Name="gTitleEffectMask00Tex" OutName="title_effect_mask_0_0" Format="i4" Width="64" Height="64" Offset="0x1A300"/>
<Texture Name="gTitleEffectMask01Tex" OutName="title_effect_mask_0_1" Format="i4" Width="64" Height="64" Offset="0x1AB00"/>
<Texture Name="gTitleEffectMask02Tex" OutName="title_effect_mask_0_2" Format="i4" Width="64" Height="64" Offset="0x1B300"/>
<Texture Name="gTitleEffectMask10Tex" OutName="title_effect_mask_1_0" Format="i4" Width="64" Height="64" Offset="0x1BB00"/>
<Texture Name="gTitleEffectMask11Tex" OutName="title_effect_mask_1_1" Format="i4" Width="64" Height="64" Offset="0x1C300"/>
<Texture Name="gTitleEffectMask12Tex" OutName="title_effect_mask_1_2" Format="i4" Width="64" Height="64" Offset="0x1CB00"/>
<Texture Name="gTitleEffectMask20Tex" OutName="title_effect_mask_2_0" Format="i4" Width="64" Height="64" Offset="0x1D300"/>
<Texture Name="gTitleEffectMask21Tex" OutName="title_effect_mask_2_1" Format="i4" Width="64" Height="64" Offset="0x1DB00"/>
<Texture Name="gTitleEffectMask22Tex" OutName="title_effect_mask_2_2" Format="i4" Width="64" Height="64" Offset="0x1E300"/>
<Texture Name="gTitleFlameEffectTex" OutName="title_flame_effect" Format="i8" Width="32" Height="32" Offset="0x1EB00"/>
<Texture Name="gTitleTheLegendOfTextTex" OutName="title_the_legend_of_text" Format="i8" Width="72" Height="8" Offset="0x1EF00"/>
<Texture Name="gTitleOcarinaOfTimeTMTextTex" OutName="title_ocarina_of_time_tm_text" Format="i8" Width="96" Height="8" Offset="0x1F140"/>
<Texture Name="gTitleTitleCNTex" OutName="title_title_cn" Format="i8" Width="128" Height="16" Offset="0x1F440"/>
</File>
</Root>

View file

@ -0,0 +1,26 @@
<Root>
<File Name="ovl_End_Title">
<DList Name="sEmptyDL1" Offset="0x0"/>
<Texture Name="sIQueTop" OutName="ique_top" Format="ia8" Width="128" Height="24" Offset="0x8"/>
<Texture Name="sIQueBottom" OutName="ique_bottom" Format="ia8" Width="128" Height="24" Offset="0xC08"/>
<DList Name="sEmptyDL2" Offset="0x1808"/>
<Texture Name="sNintendoLeftTex" OutName="nintendo_left" Format="ia8" Width="64" Height="48" Offset="0x1810"/>
<DList Name="sEmptyDL3" Offset="0x2410"/>
<Texture Name="sNintendoRightTex" OutName="nintendo_right" Format="ia8" Width="64" Height="48" Offset="0x2418"/>
<DList Name="sEmptyDL4" Offset="0x3018"/>
<Texture Name="sPresentedByTex" OutName="presented_by" Format="ia8" Width="96" Height="16" Offset="0x3020"/>
<DList Name="sEmptyDL5" Offset="0x3620"/>
<Texture Name="sTheEndTex" OutName="the_end" Format="ia8" Width="80" Height="24" Offset="0x3628"/>
<DList Name="sEmptyDL6" Offset="0x3DA8"/>
<Texture Name="sTheLegendOfZeldaTex" OutName="the_legend_of_zelda" Format="ia8" Width="120" Height="24" Offset="0x3DB0"/>
<DList Name="sEmptyDL7" Offset="0x48F0"/>
<Texture Name="sOcarinaOfTimeTex" OutName="ocarina_of_time" Format="ia8" Width="112" Height="16" Offset="0x48F8"/>
<Array Name="sTriforceVtx" Count="6" Offset="0x4FF8">
<Vtx/>
</Array>
<DList Name="sTriforceDL" Offset="0x5058"/>
<DList Name="sPresentedByNintendoDL" Offset="0x50B8"/>
</File>
</Root>

View file

@ -0,0 +1,145 @@
<Root>
<File Name="nes_font_static" Segment="10">
<!-- The two-digit number after the prefix is the character's codepoint: the hexadecimal byte it corresponds to in the text data -->
<Texture Name="gMsgChar20SpaceTex" OutName="msg_char_20_space" Format="i4" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gMsgChar21ExclamationMarkTex" OutName="msg_char_21_exclamation_mark" Format="i4" Width="16" Height="16" Offset="0x80"/>
<Texture Name="gMsgChar22QuotationMarkTex" OutName="msg_char_22_quotation_mark" Format="i4" Width="16" Height="16" Offset="0x100"/>
<Texture Name="gMsgChar23NumberSignTex" OutName="msg_char_23_number_sign" Format="i4" Width="16" Height="16" Offset="0x180"/>
<Texture Name="gMsgChar24DollarSignTex" OutName="msg_char_24_dollar_sign" Format="i4" Width="16" Height="16" Offset="0x200"/>
<Texture Name="gMsgChar25PercentSignTex" OutName="msg_char_25_percent_sign" Format="i4" Width="16" Height="16" Offset="0x280"/>
<Texture Name="gMsgChar26AmpersandTex" OutName="msg_char_26_ampersand" Format="i4" Width="16" Height="16" Offset="0x300"/>
<Texture Name="gMsgChar27ApostropheTex" OutName="msg_char_27_apostrophe" Format="i4" Width="16" Height="16" Offset="0x380"/>
<Texture Name="gMsgChar28LeftParenthesesTex" OutName="msg_char_28_left_parentheses" Format="i4" Width="16" Height="16" Offset="0x400"/>
<Texture Name="gMsgChar29RightParenthesesTex" OutName="msg_char_29_right_parentheses" Format="i4" Width="16" Height="16" Offset="0x480"/>
<Texture Name="gMsgChar2AAsteriskTex" OutName="msg_char_2a_asterisk" Format="i4" Width="16" Height="16" Offset="0x500"/>
<Texture Name="gMsgChar2BPlusSignTex" OutName="msg_char_2b_plus_sign" Format="i4" Width="16" Height="16" Offset="0x580"/>
<Texture Name="gMsgChar2CCommaTex" OutName="msg_char_2c_comma" Format="i4" Width="16" Height="16" Offset="0x600"/>
<Texture Name="gMsgChar2DHyphenMinusTex" OutName="msg_char_2d_hyphen_minus" Format="i4" Width="16" Height="16" Offset="0x680"/>
<Texture Name="gMsgChar2EFullStopTex" OutName="msg_char_2e_full_stop" Format="i4" Width="16" Height="16" Offset="0x700"/>
<Texture Name="gMsgChar2FSolidusTex" OutName="msg_char_2f_solidus" Format="i4" Width="16" Height="16" Offset="0x780"/>
<Texture Name="gMsgChar30Digit0Tex" OutName="msg_char_30_digit_0" Format="i4" Width="16" Height="16" Offset="0x800"/>
<Texture Name="gMsgChar31Digit1Tex" OutName="msg_char_31_digit_1" Format="i4" Width="16" Height="16" Offset="0x880"/>
<Texture Name="gMsgChar32Digit2Tex" OutName="msg_char_32_digit_2" Format="i4" Width="16" Height="16" Offset="0x900"/>
<Texture Name="gMsgChar33Digit3Tex" OutName="msg_char_33_digit_3" Format="i4" Width="16" Height="16" Offset="0x980"/>
<Texture Name="gMsgChar34Digit4Tex" OutName="msg_char_34_digit_4" Format="i4" Width="16" Height="16" Offset="0xA00"/>
<Texture Name="gMsgChar35Digit5Tex" OutName="msg_char_35_digit_5" Format="i4" Width="16" Height="16" Offset="0xA80"/>
<Texture Name="gMsgChar36Digit6Tex" OutName="msg_char_36_digit_6" Format="i4" Width="16" Height="16" Offset="0xB00"/>
<Texture Name="gMsgChar37Digit7Tex" OutName="msg_char_37_digit_7" Format="i4" Width="16" Height="16" Offset="0xB80"/>
<Texture Name="gMsgChar38Digit8Tex" OutName="msg_char_38_digit_8" Format="i4" Width="16" Height="16" Offset="0xC00"/>
<Texture Name="gMsgChar39Digit9Tex" OutName="msg_char_39_digit_9" Format="i4" Width="16" Height="16" Offset="0xC80"/>
<Texture Name="gMsgChar3AColonTex" OutName="msg_char_3a_colon" Format="i4" Width="16" Height="16" Offset="0xD00"/>
<Texture Name="gMsgChar3BSemicolonTex" OutName="msg_char_3b_semicolon" Format="i4" Width="16" Height="16" Offset="0xD80"/>
<Texture Name="gMsgChar3CLessThanSignTex" OutName="msg_char_3c_less_than_sign" Format="i4" Width="16" Height="16" Offset="0xE00"/>
<Texture Name="gMsgChar3DEqualsSignTex" OutName="msg_char_3d_equals_sign" Format="i4" Width="16" Height="16" Offset="0xE80"/>
<Texture Name="gMsgChar3EGreaterThanSignTex" OutName="msg_char_3e_greater_than_sign" Format="i4" Width="16" Height="16" Offset="0xF00"/>
<Texture Name="gMsgChar3FQuestionMarkTex" OutName="msg_char_3f_question_mark" Format="i4" Width="16" Height="16" Offset="0xF80"/>
<Texture Name="gMsgChar40CommercialAtTex" OutName="msg_char_40_commercial_at" Format="i4" Width="16" Height="16" Offset="0x1000"/>
<Texture Name="gMsgChar41LatinCapitalLetterATex" OutName="msg_char_41_latin_capital_letter_a" Format="i4" Width="16" Height="16" Offset="0x1080"/>
<Texture Name="gMsgChar42LatinCapitalLetterBTex" OutName="msg_char_42_latin_capital_letter_b" Format="i4" Width="16" Height="16" Offset="0x1100"/>
<Texture Name="gMsgChar43LatinCapitalLetterCTex" OutName="msg_char_43_latin_capital_letter_c" Format="i4" Width="16" Height="16" Offset="0x1180"/>
<Texture Name="gMsgChar44LatinCapitalLetterDTex" OutName="msg_char_44_latin_capital_letter_d" Format="i4" Width="16" Height="16" Offset="0x1200"/>
<Texture Name="gMsgChar45LatinCapitalLetterETex" OutName="msg_char_45_latin_capital_letter_e" Format="i4" Width="16" Height="16" Offset="0x1280"/>
<Texture Name="gMsgChar46LatinCapitalLetterFTex" OutName="msg_char_46_latin_capital_letter_f" Format="i4" Width="16" Height="16" Offset="0x1300"/>
<Texture Name="gMsgChar47LatinCapitalLetterGTex" OutName="msg_char_47_latin_capital_letter_g" Format="i4" Width="16" Height="16" Offset="0x1380"/>
<Texture Name="gMsgChar48LatinCapitalLetterHTex" OutName="msg_char_48_latin_capital_letter_h" Format="i4" Width="16" Height="16" Offset="0x1400"/>
<Texture Name="gMsgChar49LatinCapitalLetterITex" OutName="msg_char_49_latin_capital_letter_i" Format="i4" Width="16" Height="16" Offset="0x1480"/>
<Texture Name="gMsgChar4ALatinCapitalLetterJTex" OutName="msg_char_4a_latin_capital_letter_j" Format="i4" Width="16" Height="16" Offset="0x1500"/>
<Texture Name="gMsgChar4BLatinCapitalLetterKTex" OutName="msg_char_4b_latin_capital_letter_k" Format="i4" Width="16" Height="16" Offset="0x1580"/>
<Texture Name="gMsgChar4CLatinCapitalLetterLTex" OutName="msg_char_4c_latin_capital_letter_l" Format="i4" Width="16" Height="16" Offset="0x1600"/>
<Texture Name="gMsgChar4DLatinCapitalLetterMTex" OutName="msg_char_4d_latin_capital_letter_m" Format="i4" Width="16" Height="16" Offset="0x1680"/>
<Texture Name="gMsgChar4ELatinCapitalLetterNTex" OutName="msg_char_4e_latin_capital_letter_n" Format="i4" Width="16" Height="16" Offset="0x1700"/>
<Texture Name="gMsgChar4FLatinCapitalLetterOTex" OutName="msg_char_4f_latin_capital_letter_o" Format="i4" Width="16" Height="16" Offset="0x1780"/>
<Texture Name="gMsgChar50LatinCapitalLetterPTex" OutName="msg_char_50_latin_capital_letter_p" Format="i4" Width="16" Height="16" Offset="0x1800"/>
<Texture Name="gMsgChar51LatinCapitalLetterQTex" OutName="msg_char_51_latin_capital_letter_q" Format="i4" Width="16" Height="16" Offset="0x1880"/>
<Texture Name="gMsgChar52LatinCapitalLetterRTex" OutName="msg_char_52_latin_capital_letter_r" Format="i4" Width="16" Height="16" Offset="0x1900"/>
<Texture Name="gMsgChar53LatinCapitalLetterSTex" OutName="msg_char_53_latin_capital_letter_s" Format="i4" Width="16" Height="16" Offset="0x1980"/>
<Texture Name="gMsgChar54LatinCapitalLetterTTex" OutName="msg_char_54_latin_capital_letter_t" Format="i4" Width="16" Height="16" Offset="0x1A00"/>
<Texture Name="gMsgChar55LatinCapitalLetterUTex" OutName="msg_char_55_latin_capital_letter_u" Format="i4" Width="16" Height="16" Offset="0x1A80"/>
<Texture Name="gMsgChar56LatinCapitalLetterVTex" OutName="msg_char_56_latin_capital_letter_v" Format="i4" Width="16" Height="16" Offset="0x1B00"/>
<Texture Name="gMsgChar57LatinCapitalLetterWTex" OutName="msg_char_57_latin_capital_letter_w" Format="i4" Width="16" Height="16" Offset="0x1B80"/>
<Texture Name="gMsgChar58LatinCapitalLetterXTex" OutName="msg_char_58_latin_capital_letter_x" Format="i4" Width="16" Height="16" Offset="0x1C00"/>
<Texture Name="gMsgChar59LatinCapitalLetterYTex" OutName="msg_char_59_latin_capital_letter_y" Format="i4" Width="16" Height="16" Offset="0x1C80"/>
<Texture Name="gMsgChar5ALatinCapitalLetterZTex" OutName="msg_char_5a_latin_capital_letter_z" Format="i4" Width="16" Height="16" Offset="0x1D00"/>
<Texture Name="gMsgChar5BLeftSquareBracketTex" OutName="msg_char_5b_left_square_bracket" Format="i4" Width="16" Height="16" Offset="0x1D80"/>
<Texture Name="gMsgChar5CYenSignTex" OutName="msg_char_5c_yen_sign" Format="i4" Width="16" Height="16" Offset="0x1E00"/>
<Texture Name="gMsgChar5DRightSquareBracketTex" OutName="msg_char_5d_right_square_bracket" Format="i4" Width="16" Height="16" Offset="0x1E80"/>
<Texture Name="gMsgChar5ECircumflexAccentTex" OutName="msg_char_5e_circumflex_accent" Format="i4" Width="16" Height="16" Offset="0x1F00"/>
<Texture Name="gMsgChar5FLowLineTex" OutName="msg_char_5f_low_line" Format="i4" Width="16" Height="16" Offset="0x1F80"/>
<Texture Name="gMsgChar60GraveAccentTex" OutName="msg_char_60_grave_accent" Format="i4" Width="16" Height="16" Offset="0x2000"/>
<Texture Name="gMsgChar61LatinSmallLetterATex" OutName="msg_char_61_latin_small_letter_a" Format="i4" Width="16" Height="16" Offset="0x2080"/>
<Texture Name="gMsgChar62LatinSmallLetterBTex" OutName="msg_char_62_latin_small_letter_b" Format="i4" Width="16" Height="16" Offset="0x2100"/>
<Texture Name="gMsgChar63LatinSmallLetterCTex" OutName="msg_char_63_latin_small_letter_c" Format="i4" Width="16" Height="16" Offset="0x2180"/>
<Texture Name="gMsgChar64LatinSmallLetterDTex" OutName="msg_char_64_latin_small_letter_d" Format="i4" Width="16" Height="16" Offset="0x2200"/>
<Texture Name="gMsgChar65LatinSmallLetterETex" OutName="msg_char_65_latin_small_letter_e" Format="i4" Width="16" Height="16" Offset="0x2280"/>
<Texture Name="gMsgChar66LatinSmallLetterFTex" OutName="msg_char_66_latin_small_letter_f" Format="i4" Width="16" Height="16" Offset="0x2300"/>
<Texture Name="gMsgChar67LatinSmallLetterGTex" OutName="msg_char_67_latin_small_letter_g" Format="i4" Width="16" Height="16" Offset="0x2380"/>
<Texture Name="gMsgChar68LatinSmallLetterHTex" OutName="msg_char_68_latin_small_letter_h" Format="i4" Width="16" Height="16" Offset="0x2400"/>
<Texture Name="gMsgChar69LatinSmallLetterITex" OutName="msg_char_69_latin_small_letter_i" Format="i4" Width="16" Height="16" Offset="0x2480"/>
<Texture Name="gMsgChar6ALatinSmallLetterJTex" OutName="msg_char_6a_latin_small_letter_j" Format="i4" Width="16" Height="16" Offset="0x2500"/>
<Texture Name="gMsgChar6BLatinSmallLetterKTex" OutName="msg_char_6b_latin_small_letter_k" Format="i4" Width="16" Height="16" Offset="0x2580"/>
<Texture Name="gMsgChar6CLatinSmallLetterLTex" OutName="msg_char_6c_latin_small_letter_l" Format="i4" Width="16" Height="16" Offset="0x2600"/>
<Texture Name="gMsgChar6DLatinSmallLetterMTex" OutName="msg_char_6d_latin_small_letter_m" Format="i4" Width="16" Height="16" Offset="0x2680"/>
<Texture Name="gMsgChar6ELatinSmallLetterNTex" OutName="msg_char_6e_latin_small_letter_n" Format="i4" Width="16" Height="16" Offset="0x2700"/>
<Texture Name="gMsgChar6FLatinSmallLetterOTex" OutName="msg_char_6f_latin_small_letter_o" Format="i4" Width="16" Height="16" Offset="0x2780"/>
<Texture Name="gMsgChar70LatinSmallLetterPTex" OutName="msg_char_70_latin_small_letter_p" Format="i4" Width="16" Height="16" Offset="0x2800"/>
<Texture Name="gMsgChar71LatinSmallLetterQTex" OutName="msg_char_71_latin_small_letter_q" Format="i4" Width="16" Height="16" Offset="0x2880"/>
<Texture Name="gMsgChar72LatinSmallLetterRTex" OutName="msg_char_72_latin_small_letter_r" Format="i4" Width="16" Height="16" Offset="0x2900"/>
<Texture Name="gMsgChar73LatinSmallLetterSTex" OutName="msg_char_73_latin_small_letter_s" Format="i4" Width="16" Height="16" Offset="0x2980"/>
<Texture Name="gMsgChar74LatinSmallLetterTTex" OutName="msg_char_74_latin_small_letter_t" Format="i4" Width="16" Height="16" Offset="0x2A00"/>
<Texture Name="gMsgChar75LatinSmallLetterUTex" OutName="msg_char_75_latin_small_letter_u" Format="i4" Width="16" Height="16" Offset="0x2A80"/>
<Texture Name="gMsgChar76LatinSmallLetterVTex" OutName="msg_char_76_latin_small_letter_v" Format="i4" Width="16" Height="16" Offset="0x2B00"/>
<Texture Name="gMsgChar77LatinSmallLetterWTex" OutName="msg_char_77_latin_small_letter_w" Format="i4" Width="16" Height="16" Offset="0x2B80"/>
<Texture Name="gMsgChar78LatinSmallLetterXTex" OutName="msg_char_78_latin_small_letter_x" Format="i4" Width="16" Height="16" Offset="0x2C00"/>
<Texture Name="gMsgChar79LatinSmallLetterYTex" OutName="msg_char_79_latin_small_letter_y" Format="i4" Width="16" Height="16" Offset="0x2C80"/>
<Texture Name="gMsgChar7ALatinSmallLetterZTex" OutName="msg_char_7a_latin_small_letter_z" Format="i4" Width="16" Height="16" Offset="0x2D00"/>
<Texture Name="gMsgChar7BLeftCurlyBracketTex" OutName="msg_char_7b_left_curly_bracket" Format="i4" Width="16" Height="16" Offset="0x2D80"/>
<Texture Name="gMsgChar7CVerticalLineTex" OutName="msg_char_7c_vertical_line" Format="i4" Width="16" Height="16" Offset="0x2E00"/>
<Texture Name="gMsgChar7DRightCurlyBracketTex" OutName="msg_char_7d_right_curly_bracket" Format="i4" Width="16" Height="16" Offset="0x2E80"/>
<Texture Name="gMsgChar7ETildeTex" OutName="msg_char_7e_tilde" Format="i4" Width="16" Height="16" Offset="0x2F00"/>
<Texture Name="gMsgChar7FBlankTex" OutName="msg_char_7f_blank" Format="i4" Width="16" Height="16" Offset="0x2F80"/>
<Texture Name="gMsgChar80LatinCapitalLetterAWithGraveTex" OutName="msg_char_80_latin_capital_letter_a_with_grave" Format="i4" Width="16" Height="16" Offset="0x3000"/>
<Texture Name="gMsgChar81LatinCapitalLetterIWithCircumflexTex" OutName="msg_char_81_latin_capital_letter_i_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3080"/>
<Texture Name="gMsgChar82LatinCapitalLetterAWithCircumflexTex" OutName="msg_char_82_latin_capital_letter_a_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3100"/>
<Texture Name="gMsgChar83LatinCapitalLetterAWithDiaeresisTex" OutName="msg_char_83_latin_capital_letter_a_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3180"/>
<Texture Name="gMsgChar84LatinCapitalLetterCWithCedillaTex" OutName="msg_char_84_latin_capital_letter_c_with_cedilla" Format="i4" Width="16" Height="16" Offset="0x3200"/>
<Texture Name="gMsgChar85LatinCapitalLetterEWithGraveTex" OutName="msg_char_85_latin_capital_letter_e_with_grave" Format="i4" Width="16" Height="16" Offset="0x3280"/>
<Texture Name="gMsgChar86LatinCapitalLetterEWithAcuteTex" OutName="msg_char_86_latin_capital_letter_e_with_acute" Format="i4" Width="16" Height="16" Offset="0x3300"/>
<Texture Name="gMsgChar87LatinCapitalLetterEWithCircumflexTex" OutName="msg_char_87_latin_capital_letter_e_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3380"/>
<Texture Name="gMsgChar88LatinCapitalLetterEWithDiaeresisTex" OutName="msg_char_88_latin_capital_letter_e_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3400"/>
<Texture Name="gMsgChar89LatinCapitalLetterIWithDiaeresisTex" OutName="msg_char_89_latin_capital_letter_i_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3480"/>
<Texture Name="gMsgChar8ALatinCapitalLetterOWithCircumflexTex" OutName="msg_char_8a_latin_capital_letter_o_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3500"/>
<Texture Name="gMsgChar8BLatinCapitalLetterOWithDiaeresisTex" OutName="msg_char_8b_latin_capital_letter_o_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3580"/>
<Texture Name="gMsgChar8CLatinCapitalLetterUWithGraveTex" OutName="msg_char_8c_latin_capital_letter_u_with_grave" Format="i4" Width="16" Height="16" Offset="0x3600"/>
<Texture Name="gMsgChar8DLatinCapitalLetterUWithCircumflexTex" OutName="msg_char_8d_latin_capital_letter_u_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3680"/>
<Texture Name="gMsgChar8ELatinCapitalLetterUWithDiaeresisTex" OutName="msg_char_8e_latin_capital_letter_u_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3700"/>
<Texture Name="gMsgChar8FLatinSmallLetterSharpSTex" OutName="msg_char_8f_latin_small_letter_sharp_s" Format="i4" Width="16" Height="16" Offset="0x3780"/>
<Texture Name="gMsgChar90LatinSmallLetterAWithGraveTex" OutName="msg_char_90_latin_small_letter_a_with_grave" Format="i4" Width="16" Height="16" Offset="0x3800"/>
<Texture Name="gMsgChar91LatinSmallLetterAWithAcuteTex" OutName="msg_char_91_latin_small_letter_a_with_acute" Format="i4" Width="16" Height="16" Offset="0x3880"/>
<Texture Name="gMsgChar92LatinSmallLetterAWithCircumflexTex" OutName="msg_char_92_latin_small_letter_a_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3900"/>
<Texture Name="gMsgChar93LatinSmallLetterAWithDiaeresisTex" OutName="msg_char_93_latin_small_letter_a_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3980"/>
<Texture Name="gMsgChar94LatinSmallLetterCWithCedillaTex" OutName="msg_char_94_latin_small_letter_c_with_cedilla" Format="i4" Width="16" Height="16" Offset="0x3A00"/>
<Texture Name="gMsgChar95LatinSmallLetterEWithGraveTex" OutName="msg_char_95_latin_small_letter_e_with_grave" Format="i4" Width="16" Height="16" Offset="0x3A80"/>
<Texture Name="gMsgChar96LatinSmallLetterEWithAcuteTex" OutName="msg_char_96_latin_small_letter_e_with_acute" Format="i4" Width="16" Height="16" Offset="0x3B00"/>
<Texture Name="gMsgChar97LatinSmallLetterEWithCircumflexTex" OutName="msg_char_97_latin_small_letter_e_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3B80"/>
<Texture Name="gMsgChar98LatinSmallLetterEWithDiaeresisTex" OutName="msg_char_98_latin_small_letter_e_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3C00"/>
<Texture Name="gMsgChar99LatinSmallLetterIWithDiaeresisTex" OutName="msg_char_99_latin_small_letter_i_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3C80"/>
<Texture Name="gMsgChar9ALatinSmallLetterOWithCircumflexTex" OutName="msg_char_9a_latin_small_letter_o_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3D00"/>
<Texture Name="gMsgChar9BLatinSmallLetterOWithDiaeresisTex" OutName="msg_char_9b_latin_small_letter_o_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3D80"/>
<Texture Name="gMsgChar9CLatinSmallLetterUWithGraveTex" OutName="msg_char_9c_latin_small_letter_u_with_grave" Format="i4" Width="16" Height="16" Offset="0x3E00"/>
<Texture Name="gMsgChar9DLatinSmallLetterUWithCircumflexTex" OutName="msg_char_9d_latin_small_letter_u_with_circumflex" Format="i4" Width="16" Height="16" Offset="0x3E80"/>
<Texture Name="gMsgChar9ELatinSmallLetterUWithDiaeresisTex" OutName="msg_char_9e_latin_small_letter_u_with_diaeresis" Format="i4" Width="16" Height="16" Offset="0x3F00"/>
<Texture Name="gMsgChar9FButtonATex" OutName="msg_char_9f_button_a" Format="i4" Width="16" Height="16" Offset="0x3F80"/>
<Texture Name="gMsgCharA0ButtonBTex" OutName="msg_char_a0_button_b" Format="i4" Width="16" Height="16" Offset="0x4000"/>
<Texture Name="gMsgCharA1ButtonCTex" OutName="msg_char_a1_button_c" Format="i4" Width="16" Height="16" Offset="0x4080"/>
<Texture Name="gMsgCharA2ButtonLTex" OutName="msg_char_a2_button_l" Format="i4" Width="16" Height="16" Offset="0x4100"/>
<Texture Name="gMsgCharA3ButtonRTex" OutName="msg_char_a3_button_r" Format="i4" Width="16" Height="16" Offset="0x4180"/>
<Texture Name="gMsgCharA4ButtonZTex" OutName="msg_char_a4_button_z" Format="i4" Width="16" Height="16" Offset="0x4200"/>
<Texture Name="gMsgCharA5ButtonCUpTex" OutName="msg_char_a5_button_c_up" Format="i4" Width="16" Height="16" Offset="0x4280"/>
<Texture Name="gMsgCharA6ButtonCDownTex" OutName="msg_char_a6_button_c_down" Format="i4" Width="16" Height="16" Offset="0x4300"/>
<Texture Name="gMsgCharA7ButtonCLeftTex" OutName="msg_char_a7_button_c_left" Format="i4" Width="16" Height="16" Offset="0x4380"/>
<Texture Name="gMsgCharA8ButtonCRightTex" OutName="msg_char_a8_button_c_right" Format="i4" Width="16" Height="16" Offset="0x4400"/>
<Texture Name="gMsgCharA9ZTargetSignTex" OutName="msg_char_a9_z_target_sign" Format="i4" Width="16" Height="16" Offset="0x4480"/>
<Texture Name="gMsgCharAAControlStickTex" OutName="msg_char_aa_control_stick" Format="i4" Width="16" Height="16" Offset="0x4500"/>
<!-- TODO: Chinese characters -->
</File>
</Root>

View file

@ -1,5 +1,5 @@
dmadata_start: 0x12F70
text_lang_pal: true
text_lang: PAL
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: true
text_lang: PAL
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: true
text_lang: PAL
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7170
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -0,0 +1 @@
0ab48b2d44a74b3bb2d384f6170c2742 build/ique-cn/oot-ique-cn-compressed.z64

View file

@ -0,0 +1 @@
17a9f30d722c29e6912bd4b66713d2b0 build/ique-cn/oot-ique-cn.z64

1212
baseroms/ique-cn/config.yml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@ checksums:
- checksum-JP
- checksum-US
dmadata_start: 0x7430
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -2,7 +2,7 @@ checksums:
- checksum-JP
- checksum-US
dmadata_start: 0x7430
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -2,7 +2,7 @@ checksums:
- checksum-JP
- checksum-US
dmadata_start: 0x7960
text_lang_pal: false
text_lang: NTSC
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7950
text_lang_pal: true
text_lang: PAL
incbins:
- name: ipl3
segment: makerom

View file

@ -1,5 +1,5 @@
dmadata_start: 0x7950
text_lang_pal: true
text_lang: PAL
incbins:
- name: ipl3
segment: makerom

View file

@ -5,7 +5,7 @@
#include "attributes.h"
#include "padmgr.h"
#if PLATFORM_GC
#if !PLATFORM_N64
// These are the same as the 3-bit ansi color codes
#define FAULT_COLOR_BLACK 0
#define FAULT_COLOR_RED 1
@ -33,7 +33,7 @@ typedef struct FaultClient {
/* 0x0C */ void* arg1;
} FaultClient; // size = 0x10
#if PLATFORM_GC
#if !PLATFORM_N64
typedef struct FaultAddrConvClient {
/* 0x00 */ struct FaultAddrConvClient* next;
/* 0x04 */ void* callback;
@ -78,7 +78,7 @@ void func_800AE1F8(void);
#define Fault_SetFontColor(color) (void)0
#define Fault_SetCharPad(padW, padH) (void)0
#elif PLATFORM_GC
#else
void Fault_InitDrawer(void);
void Fault_SetForeColor(u16 color);
@ -98,7 +98,7 @@ extern volatile OSThread* gFaultFaultedThread;
#define FAULT_MSG_ID gFaultMsgId
#elif PLATFORM_GC
#else
typedef struct FaultMgr {
/* 0x000 */ OSThread thread;

View file

@ -11,7 +11,7 @@ typedef struct Arena {
#if PLATFORM_N64
/* 0x08 */ u32 size;
/* 0x0C */ u8 allocFailures;
#elif PLATFORM_GC
#else
/* 0x08 */ OSMesgQueue lockQueue;
/* 0x20 */ u8 allocFailures; // only used in non-debug builds
/* 0x21 */ u8 isInit;

View file

@ -5,31 +5,35 @@
// The "LN" macros defined here are not meant to be used directly. See the wrapper macros below.
#if OOT_VERSION == NTSC_1_0
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (ntsc_1_0)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_0)
#elif OOT_VERSION == NTSC_1_1
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (ntsc_1_1)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_1)
#elif OOT_VERSION == PAL_1_0
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (pal_1_0)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_0)
#elif OOT_VERSION == NTSC_1_2
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (ntsc_1_2)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ntsc_1_2)
#elif OOT_VERSION == PAL_1_1
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (pal_1_1)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (pal_1_1)
#elif OOT_VERSION == GC_JP
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_jp)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp)
#elif OOT_VERSION == GC_JP_MQ
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_jp_mq)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_mq)
#elif OOT_VERSION == GC_US
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_us)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us)
#elif OOT_VERSION == GC_US_MQ
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_us_mq)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_us_mq)
#elif OOT_VERSION == GC_EU_MQ_DBG
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_eu_mq_dbg)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq_dbg)
#elif OOT_VERSION == GC_EU
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_eu)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu)
#elif OOT_VERSION == GC_EU_MQ
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_eu_mq)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_eu_mq)
#elif OOT_VERSION == GC_JP_CE
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce) (gc_jp_ce)
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (gc_jp_ce)
#elif OOT_VERSION == IQUE_CN
#define LN(ntsc_1_0, ntsc_1_1, pal_1_0, ntsc_1_2, pal_1_1, gc_jp, gc_jp_mq, gc_us, gc_us_mq, gc_eu_mq_dbg, gc_eu, gc_eu_mq, gc_jp_ce, ique_cn) (ique_cn)
#else
#error "Unsupported OOT version"
#endif
/**
@ -42,22 +46,22 @@
// NTSC 1.0 and all the other versions
#define LN1(ntsc_1_0, other) \
LN(ntsc_1_0, other, other, other, other, other, other, other, other, other, other, other, other)
LN(ntsc_1_0, other, other, other, other, other, other, other, other, other, other, other, other, other)
// NTSC 1.0, NTSC 1.1, and all the other versions
#define LN2(ntsc_1_0, ntsc_1_1, other) \
LN(ntsc_1_0, ntsc_1_1, other, other, other, other, other, other, other, other, other, other, other)
LN(ntsc_1_0, ntsc_1_1, other, other, other, other, other, other, other, other, other, other, other, other)
// NTSC 1.0, Gamecube, and all the other versions
#define LN3(ntsc_1_0, other, gc) \
LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc)
LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, gc)
// NTSC 1.0, NTSC 1.1, Gamecube, and all the other versions
#define LN4(ntsc_1_0, ntsc_1_1, other, gc) \
LN(ntsc_1_0, ntsc_1_1, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc)
LN(ntsc_1_0, ntsc_1_1, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, gc)
// NTSC 1.0, NTSC 1.1, NTSC 1.2/PAL 1.0, Gamecube US/JP, Gamecube EU, and Gamecube CE
#define LN5(ntsc_1_0, ntsc_1_1, other, pal_1_1, gc_ntsc, gc_eu, gc_jp_ce) \
LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_jp_ce)
LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_jp_ce, gc_jp_ce)
#endif

View file

@ -15,6 +15,7 @@
#define GC_EU 11
#define GC_EU_MQ 12
#define GC_JP_CE 13
#define IQUE_CN 14
// NTSC/PAL
#if OOT_VERSION == PAL_1_0 || OOT_VERSION == PAL_1_1 || OOT_VERSION == GC_EU || OOT_VERSION == GC_EU_MQ || OOT_VERSION == GC_EU_MQ_DBG

2
spec
View file

@ -890,7 +890,7 @@ beginseg
include "$(BUILD_DIR)/src/libultra/mgu/translate.o"
#endif
include "$(BUILD_DIR)/src/libultra/io/contramwrite.o"
#if OOT_VERSION == NTSC_1_2 || (PLATFORM_GC && !DEBUG_FEATURES)
#if OOT_VERSION >= PAL_1_0 && !(OOT_PAL_N64 || DEBUG_FEATURES)
include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o"
#endif
#if !DEBUG_FEATURES

View file

@ -40,7 +40,7 @@
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
* DPad-Down disables sending fault pages over osSyncPrintf.
*/
#if PLATFORM_GC
#if !PLATFORM_N64
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-eu-mq-dbg:160 gc-jp:176 gc-jp-ce:176 gc-jp-mq:176 gc-us:176" \
"gc-us-mq:176"

View file

@ -9,7 +9,7 @@
#include "terminal.h"
#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
#if PLATFORM_GC
#if !PLATFORM_N64
typedef struct FaultDrawer {
/* 0x00 */ u16* fb;

View file

@ -3,7 +3,7 @@
#include "libc64/os_malloc.h"
#include "terminal.h"
#if PLATFORM_GC
#if !PLATFORM_N64
#define FILL_ALLOC_BLOCK_FLAG (1 << 0)
#define FILL_FREE_BLOCK_FLAG (1 << 1)

View file

@ -639,7 +639,8 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) {
#endif
}
#if OOT_NTSC
// TODO: implement for iQue
#if OOT_NTSC && !PLATFORM_IQUE
if (gSaveContext.language == LANGUAGE_JPN) {
this->unk_E30C++;
gDPPipeSync(gfx++);
@ -687,11 +688,11 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) {
gDPLoadTextureBlock(gfx++, gTitleCopyright1998Tex, G_IM_FMT_IA, G_IM_SIZ_8b, 128, 16, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
#elif OOT_VERSION < GC_US
#elif PLATFORM_GC && OOT_VERSION < GC_US
gDPLoadTextureBlock(gfx++, gTitleCopyright19982002Tex, G_IM_FMT_IA, G_IM_SIZ_8b, 160, 16, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
#elif OOT_NTSC
#elif PLATFORM_GC && OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
gDPLoadTextureBlock(gfx++, gTitleCopyright19982002Tex, G_IM_FMT_IA, G_IM_SIZ_8b, 160, 16, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
@ -701,10 +702,12 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) {
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
}
#else
#elif PLATFORM_GC && OOT_PAL
gDPLoadTextureBlock(gfx++, gTitleCopyright19982003Tex, G_IM_FMT_IA, G_IM_SIZ_8b, 160, 16, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
#elif PLATFORM_IQUE
// TODO: implement for iQue
#endif
#if PLATFORM_N64

View file

@ -0,0 +1,10 @@
<Root>
<SymbolMap File="SymbolMap.txt"/>
<ActorList File="../ActorList.txt"/>
<ObjectList File="../ObjectList.txt"/>
<EntranceList File="../EntranceList.txt"/>
<SpecialEntranceList File="../SpecialEntranceList.txt"/>
<EnumData File="../EnumData.xml"/>
<ExternalXMLFolder Path="assets/xml/"/>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
</Root>

View file

@ -0,0 +1,2 @@
80106980 gMtxClear
80AE0B10 sShadowTex

View file

@ -2074,18 +2074,27 @@ def main():
message_tables : List[Optional[MessageTableDesc]] = [None for _ in range(4)] # JP, EN, FR, DE
message_table_staff : MessageTableDesc = None
if config.text_lang_pal:
message_tables[0] = None
message_tables[1] = MessageTableDesc("sNesMessageEntryTable", "nes_message_data_static", nes_decoder, None)
message_tables[2] = MessageTableDesc("sGerMessageEntryTable", "ger_message_data_static", nes_decoder, 1)
message_tables[3] = MessageTableDesc("sFraMessageEntryTable", "fra_message_data_static", nes_decoder, 1)
message_table_staff = MessageTableDesc("sStaffMessageEntryTable", "staff_message_data_static", nes_decoder, None)
else:
if config.text_lang == "NTSC":
message_tables[0] = MessageTableDesc("sJpnMessageEntryTable", "jpn_message_data_static", jpn_decoder, None)
message_tables[1] = MessageTableDesc("sNesMessageEntryTable", "nes_message_data_static", nes_decoder, None)
message_tables[2] = None
message_tables[3] = None
message_table_staff = MessageTableDesc("sStaffMessageEntryTable", "staff_message_data_static", nes_decoder, None)
elif config.text_lang == "PAL":
message_tables[0] = None
message_tables[1] = MessageTableDesc("sNesMessageEntryTable", "nes_message_data_static", nes_decoder, None)
message_tables[2] = MessageTableDesc("sGerMessageEntryTable", "ger_message_data_static", nes_decoder, 1)
message_tables[3] = MessageTableDesc("sFraMessageEntryTable", "fra_message_data_static", nes_decoder, 1)
message_table_staff = MessageTableDesc("sStaffMessageEntryTable", "staff_message_data_static", nes_decoder, None)
elif config.text_lang == "CN":
# TODO: extract CN text
message_tables[0] = MessageTableDesc("sJpnMessageEntryTable", "jpn_message_data_static", jpn_decoder, None)
message_tables[1] = None
message_tables[2] = None
message_tables[3] = None
message_table_staff = MessageTableDesc("sStaffMessageEntryTable", "staff_message_data_static", nes_decoder, None)
else:
raise Exception(f"Unsupported text language: {config.text_lang}")
messages = collect_messages(message_tables, baserom_segments_dir, config, code_vram, code_bin)
staff_messages = collect_messages([message_table_staff], baserom_segments_dir, config, code_vram, code_bin)

View file

@ -23,8 +23,8 @@ class VersionConfig:
checksums: list[str]
# ROM offset to start of DMA table
dmadata_start: int
# Whether the languages are PAL (EN/DE/FR) or not (JP/EN)
text_lang_pal: bool
# "NTSC" (JP/EN), "PAL" (EN/DE/FR), or "CN" (JP/CN)
text_lang: str
# DMA segment information, in ROM order
dmadata_segments: OrderedDict[str, SegmentInfo]
# ROM pieces that are copied directly into the build with .incbin
@ -92,7 +92,7 @@ def load_version_config(version: str) -> VersionConfig:
version=version,
checksums=config.get("checksums", ["checksum"]),
dmadata_start=config["dmadata_start"],
text_lang_pal=config["text_lang_pal"],
text_lang=config["text_lang"],
dmadata_segments=load_dmadata_segments(version),
incbins=incbins,
variables=config["variables"],