1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-25 10:24:26 +00:00

Set up build system and disassembly for gc-us (#1982)

* Build gc-us

* Set up gc-us disassembly

* Don't disasm unchanged overlays

* Fix gc-eu-mq BSS

* romalign link_animetion for NTSC

* Explicitly set CPP defines to 0/1

* Add #ifs to segment_symbols.h

* Add sButtonTextures now

* Fix message _SHIFTL usage

* Don't ifdef LANGUAGE_MAX
This commit is contained in:
cadmic 2024-07-06 12:38:31 -07:00 committed by GitHub
parent baf1e8c174
commit bf3339a16d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 14124 additions and 205 deletions

View file

@ -54,16 +54,17 @@ endif
# Version-specific settings # Version-specific settings
ifeq ($(VERSION),gc-us) ifeq ($(VERSION),gc-us)
DEBUG := 0 DEBUG := 0
CPP_DEFINES += -DTEXT_LANGUAGE=TEXT_LANG_US_JP COMPARE := 0
CPP_DEFINES += -DOOT_NTSC=1 -DOOT_PAL=0 -DOOT_MQ=0
else ifeq ($(VERSION),gc-eu) else ifeq ($(VERSION),gc-eu)
DEBUG := 0 DEBUG := 0
CPP_DEFINES += -DTEXT_LANGUAGE=TEXT_LANG_EU CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=0
else ifeq ($(VERSION),gc-eu-mq) else ifeq ($(VERSION),gc-eu-mq)
DEBUG := 0 DEBUG := 0
CPP_DEFINES += -DTEXT_LANGUAGE=TEXT_LANG_EU -DOOT_MQ CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=1
else ifeq ($(VERSION),gc-eu-mq-dbg) else ifeq ($(VERSION),gc-eu-mq-dbg)
DEBUG := 1 DEBUG := 1
CPP_DEFINES += -DTEXT_LANGUAGE=TEXT_LANG_EU -DOOT_MQ CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=1
else else
$(error Unsupported version $(VERSION)) $(error Unsupported version $(VERSION))
endif endif
@ -451,7 +452,7 @@ $(BUILD_DIR)/assets/text/nes_message_data_static.o: $(BUILD_DIR)/assets/text/mes
$(BUILD_DIR)/assets/text/ger_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h $(BUILD_DIR)/assets/text/ger_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h
$(BUILD_DIR)/assets/text/fra_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h $(BUILD_DIR)/assets/text/fra_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h
$(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/message_data_staff.enc.nes.h $(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/message_data_staff.enc.nes.h
$(BUILD_DIR)/src/code/z_message_PAL.o: assets/text/message_data.h assets/text/message_data_staff.h $(BUILD_DIR)/src/code/z_message.o: assets/text/message_data.h assets/text/message_data_staff.h
$(BUILD_DIR)/assets/text/%.o: assets/text/%.c $(BUILD_DIR)/assets/text/%.o: assets/text/%.c
ifneq ($(COMPILER),gcc) ifneq ($(COMPILER),gcc)

View file

@ -10,12 +10,12 @@
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */ /* Not Present */
#if (TEXT_LANGUAGE == TEXT_LANG_US_JP) #if OOT_NTSC
// On US/JP versions, the font message is with JPN // On NTSC versions, the font message is with JPN
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */ /* Not Present */
#else #else
// On EU versions, the font message is with NES // On PAL versions, the font message is with NES
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_nes[] = nesMessage; /* Present */ const char _message_##textId##_nes[] = nesMessage;
#endif #endif

View file

@ -103,69 +103,69 @@
<Texture Name="gPauseEquipment20Tex" OutName="pause_equipment_2_0" Format="ia8" Width="80" Height="32" Offset="0x5CDC0"/> <Texture Name="gPauseEquipment20Tex" OutName="pause_equipment_2_0" Format="ia8" Width="80" Height="32" Offset="0x5CDC0"/>
<Texture Name="gPauseMap00Tex" OutName="pause_map_0_0" Format="ia8" Width="80" Height="32" Offset="0x5D7C0"/> <Texture Name="gPauseMap00Tex" OutName="pause_map_0_0" Format="ia8" Width="80" Height="32" Offset="0x5D7C0"/>
<Texture Name="gPauseMap20Tex" OutName="pause_map_2_0" Format="ia8" Width="80" Height="32" Offset="0x5E1C0"/> <Texture Name="gPauseMap20Tex" OutName="pause_map_2_0" Format="ia8" Width="80" Height="32" Offset="0x5E1C0"/>
<Texture Name="gPauseQuestStatus00Tex" OutName="pause_quest_status_0_0" Format="ia8" Width="80" Height="32" Offset="0x5EBC0"/> <Texture Name="gPauseSave00Tex" OutName="pause_save_0_0" Format="ia8" Width="80" Height="32" Offset="0x5EBC0"/>
<Texture Name="gPauseQuestStatus20Tex" OutName="pause_quest_status_2_0" Format="ia8" Width="80" Height="32" Offset="0x5F5C0"/> <Texture Name="gPauseSave20Tex" OutName="pause_save_2_0" Format="ia8" Width="80" Height="32" Offset="0x5F5C0"/>
<Texture Name="gPauseSave00Tex" OutName="pause_save_0_0" Format="ia8" Width="80" Height="32" Offset="0x5FFC0"/> <Texture Name="gPauseEquipment01Tex" OutName="pause_equipment_0_1" Format="ia8" Width="80" Height="32" Offset="0x5FFC0"/>
<Texture Name="gPauseSave20Tex" OutName="pause_save_2_0" Format="ia8" Width="80" Height="32" Offset="0x609C0"/> <Texture Name="gPauseEquipment11Tex" OutName="pause_equipment_1_1" Format="ia8" Width="80" Height="32" Offset="0x609C0"/>
<Texture Name="gPauseEquipment01Tex" OutName="pause_equipment_0_1" Format="ia8" Width="80" Height="32" Offset="0x613C0"/> <Texture Name="gPauseEquipment21Tex" OutName="pause_equipment_2_1" Format="ia8" Width="80" Height="32" Offset="0x613C0"/>
<Texture Name="gPauseEquipment11Tex" OutName="pause_equipment_1_1" Format="ia8" Width="80" Height="32" Offset="0x61DC0"/> <Texture Name="gPauseSelectItem01Tex" OutName="pause_select_item_0_1" Format="ia8" Width="80" Height="32" Offset="0x61DC0"/>
<Texture Name="gPauseEquipment21Tex" OutName="pause_equipment_2_1" Format="ia8" Width="80" Height="32" Offset="0x627C0"/> <Texture Name="gPauseSelectItem11Tex" OutName="pause_select_item_1_1" Format="ia8" Width="80" Height="32" Offset="0x627C0"/>
<Texture Name="gPauseSelectItem01Tex" OutName="pause_select_item_0_1" Format="ia8" Width="80" Height="32" Offset="0x631C0"/> <Texture Name="gPauseSelectItem21Tex" OutName="pause_select_item_2_1" Format="ia8" Width="80" Height="32" Offset="0x631C0"/>
<Texture Name="gPauseSelectItem11Tex" OutName="pause_select_item_1_1" Format="ia8" Width="80" Height="32" Offset="0x63BC0"/> <Texture Name="gPauseMap01Tex" OutName="pause_map_0_1" Format="ia8" Width="80" Height="32" Offset="0x63BC0"/>
<Texture Name="gPauseSelectItem21Tex" OutName="pause_select_item_2_1" Format="ia8" Width="80" Height="32" Offset="0x645C0"/> <Texture Name="gPauseMap11Tex" OutName="pause_map_1_1" Format="ia8" Width="80" Height="32" Offset="0x645C0"/>
<Texture Name="gPauseMap01Tex" OutName="pause_map_0_1" Format="ia8" Width="80" Height="32" Offset="0x64FC0"/> <Texture Name="gPauseMap21Tex" OutName="pause_map_2_1" Format="ia8" Width="80" Height="32" Offset="0x64FC0"/>
<Texture Name="gPauseMap11Tex" OutName="pause_map_1_1" Format="ia8" Width="80" Height="32" Offset="0x659C0"/> <Texture Name="gPauseQuestStatus01Tex" OutName="pause_quest_status_0_1" Format="ia8" Width="80" Height="32" Offset="0x659C0"/>
<Texture Name="gPauseMap21Tex" OutName="pause_map_2_1" Format="ia8" Width="80" Height="32" Offset="0x663C0"/> <Texture Name="gPauseQuestStatus11Tex" OutName="pause_quest_status_1_1" Format="ia8" Width="80" Height="32" Offset="0x663C0"/>
<Texture Name="gPauseQuestStatus01Tex" OutName="pause_quest_status_0_1" Format="ia8" Width="80" Height="32" Offset="0x66DC0"/> <Texture Name="gPauseQuestStatus21Tex" OutName="pause_quest_status_2_1" Format="ia8" Width="80" Height="32" Offset="0x66DC0"/>
<Texture Name="gPauseQuestStatus11Tex" OutName="pause_quest_status_1_1" Format="ia8" Width="80" Height="32" Offset="0x677C0"/> <Texture Name="gPauseSave01Tex" OutName="pause_save_0_1" Format="ia8" Width="80" Height="32" Offset="0x677C0"/>
<Texture Name="gPauseQuestStatus21Tex" OutName="pause_quest_status_2_1" Format="ia8" Width="80" Height="32" Offset="0x681C0"/> <Texture Name="gPauseSave11Tex" OutName="pause_save_1_1" Format="ia8" Width="80" Height="32" Offset="0x681C0"/>
<Texture Name="gPauseSave01Tex" OutName="pause_save_0_1" Format="ia8" Width="80" Height="32" Offset="0x68BC0"/> <Texture Name="gPauseSave21Tex" OutName="pause_save_2_1" Format="ia8" Width="80" Height="32" Offset="0x68BC0"/>
<Texture Name="gPauseSave11Tex" OutName="pause_save_1_1" Format="ia8" Width="80" Height="32" Offset="0x695C0"/> <Texture Name="gPauseEquipment02Tex" OutName="pause_equipment_0_2" Format="ia8" Width="80" Height="32" Offset="0x695C0"/>
<Texture Name="gPauseSave21Tex" OutName="pause_save_2_1" Format="ia8" Width="80" Height="32" Offset="0x69FC0"/> <Texture Name="gPauseEquipment12Tex" OutName="pause_equipment_1_2" Format="ia8" Width="80" Height="32" Offset="0x69FC0"/>
<Texture Name="gPauseEquipment02Tex" OutName="pause_equipment_0_2" Format="ia8" Width="80" Height="32" Offset="0x6A9C0"/> <Texture Name="gPauseEquipment22Tex" OutName="pause_equipment_2_2" Format="ia8" Width="80" Height="32" Offset="0x6A9C0"/>
<Texture Name="gPauseEquipment12Tex" OutName="pause_equipment_1_2" Format="ia8" Width="80" Height="32" Offset="0x6B3C0"/> <Texture Name="gPauseSelectItem02Tex" OutName="pause_select_item_0_2" Format="ia8" Width="80" Height="32" Offset="0x6B3C0"/>
<Texture Name="gPauseEquipment22Tex" OutName="pause_equipment_2_2" Format="ia8" Width="80" Height="32" Offset="0x6BDC0"/> <Texture Name="gPauseSelectItem12Tex" OutName="pause_select_item_1_2" Format="ia8" Width="80" Height="32" Offset="0x6BDC0"/>
<Texture Name="gPauseSelectItem02Tex" OutName="pause_select_item_0_2" Format="ia8" Width="80" Height="32" Offset="0x6C7C0"/> <Texture Name="gPauseSelectItem22Tex" OutName="pause_select_item_2_2" Format="ia8" Width="80" Height="32" Offset="0x6C7C0"/>
<Texture Name="gPauseSelectItem12Tex" OutName="pause_select_item_1_2" Format="ia8" Width="80" Height="32" Offset="0x6D1C0"/> <Texture Name="gPauseMap02Tex" OutName="pause_map_0_2" Format="ia8" Width="80" Height="32" Offset="0x6D1C0"/>
<Texture Name="gPauseSelectItem22Tex" OutName="pause_select_item_2_2" Format="ia8" Width="80" Height="32" Offset="0x6DBC0"/> <Texture Name="gPauseMap12Tex" OutName="pause_map_1_2" Format="ia8" Width="80" Height="32" Offset="0x6DBC0"/>
<Texture Name="gPauseMap02Tex" OutName="pause_map_0_2" Format="ia8" Width="80" Height="32" Offset="0x6E5C0"/> <Texture Name="gPauseMap22Tex" OutName="pause_map_2_2" Format="ia8" Width="80" Height="32" Offset="0x6E5C0"/>
<Texture Name="gPauseMap12Tex" OutName="pause_map_1_2" Format="ia8" Width="80" Height="32" Offset="0x6EFC0"/> <Texture Name="gPauseQuestStatus02Tex" OutName="pause_quest_status_0_2" Format="ia8" Width="80" Height="32" Offset="0x6EFC0"/>
<Texture Name="gPauseMap22Tex" OutName="pause_map_2_2" Format="ia8" Width="80" Height="32" Offset="0x6F9C0"/> <Texture Name="gPauseQuestStatus12Tex" OutName="pause_quest_status_1_2" Format="ia8" Width="80" Height="32" Offset="0x6F9C0"/>
<Texture Name="gPauseQuestStatus02Tex" OutName="pause_quest_status_0_2" Format="ia8" Width="80" Height="32" Offset="0x703C0"/> <Texture Name="gPauseQuestStatus22Tex" OutName="pause_quest_status_2_2" Format="ia8" Width="80" Height="32" Offset="0x703C0"/>
<Texture Name="gPauseQuestStatus12Tex" OutName="pause_quest_status_1_2" Format="ia8" Width="80" Height="32" Offset="0x70DC0"/> <Texture Name="gPauseSave02Tex" OutName="pause_save_0_2" Format="ia8" Width="80" Height="32" Offset="0x70DC0"/>
<Texture Name="gPauseQuestStatus22Tex" OutName="pause_quest_status_2_2" Format="ia8" Width="80" Height="32" Offset="0x717C0"/> <Texture Name="gPauseSave12Tex" OutName="pause_save_1_2" Format="ia8" Width="80" Height="32" Offset="0x717C0"/>
<Texture Name="gPauseSave02Tex" OutName="pause_save_0_2" Format="ia8" Width="80" Height="32" Offset="0x721C0"/> <Texture Name="gPauseSave22Tex" OutName="pause_save_2_2" Format="ia8" Width="80" Height="32" Offset="0x721C0"/>
<Texture Name="gPauseSave12Tex" OutName="pause_save_1_2" Format="ia8" Width="80" Height="32" Offset="0x72BC0"/> <Texture Name="gPauseEquipment03Tex" OutName="pause_equipment_0_3" Format="ia8" Width="80" Height="32" Offset="0x72BC0"/>
<Texture Name="gPauseSave22Tex" OutName="pause_save_2_2" Format="ia8" Width="80" Height="32" Offset="0x735C0"/> <Texture Name="gPauseEquipment13Tex" OutName="pause_equipment_1_3" Format="ia8" Width="80" Height="32" Offset="0x735C0"/>
<Texture Name="gPauseEquipment03Tex" OutName="pause_equipment_0_3" Format="ia8" Width="80" Height="32" Offset="0x73FC0"/> <Texture Name="gPauseEquipment23Tex" OutName="pause_equipment_2_3" Format="ia8" Width="80" Height="32" Offset="0x73FC0"/>
<Texture Name="gPauseEquipment13Tex" OutName="pause_equipment_1_3" Format="ia8" Width="80" Height="32" Offset="0x749C0"/> <Texture Name="gPauseSelectItem03Tex" OutName="pause_select_item_0_3" Format="ia8" Width="80" Height="32" Offset="0x749C0"/>
<Texture Name="gPauseEquipment23Tex" OutName="pause_equipment_2_3" Format="ia8" Width="80" Height="32" Offset="0x753C0"/> <Texture Name="gPauseSelectItem13Tex" OutName="pause_select_item_1_3" Format="ia8" Width="80" Height="32" Offset="0x753C0"/>
<Texture Name="gPauseSelectItem03Tex" OutName="pause_select_item_0_3" Format="ia8" Width="80" Height="32" Offset="0x75DC0"/> <Texture Name="gPauseSelectItem23Tex" OutName="pause_select_item_2_3" Format="ia8" Width="80" Height="32" Offset="0x75DC0"/>
<Texture Name="gPauseSelectItem13Tex" OutName="pause_select_item_1_3" Format="ia8" Width="80" Height="32" Offset="0x767C0"/> <Texture Name="gPauseMap03Tex" OutName="pause_map_0_3" Format="ia8" Width="80" Height="32" Offset="0x767C0"/>
<Texture Name="gPauseSelectItem23Tex" OutName="pause_select_item_2_3" Format="ia8" Width="80" Height="32" Offset="0x771C0"/> <Texture Name="gPauseMap13Tex" OutName="pause_map_1_3" Format="ia8" Width="80" Height="32" Offset="0x771C0"/>
<Texture Name="gPauseMap03Tex" OutName="pause_map_0_3" Format="ia8" Width="80" Height="32" Offset="0x77BC0"/> <Texture Name="gPauseMap23Tex" OutName="pause_map_2_3" Format="ia8" Width="80" Height="32" Offset="0x77BC0"/>
<Texture Name="gPauseMap13Tex" OutName="pause_map_1_3" Format="ia8" Width="80" Height="32" Offset="0x785C0"/> <Texture Name="gPauseQuestStatus03Tex" OutName="pause_quest_status_0_3" Format="ia8" Width="80" Height="32" Offset="0x785C0"/>
<Texture Name="gPauseMap23Tex" OutName="pause_map_2_3" Format="ia8" Width="80" Height="32" Offset="0x78FC0"/> <Texture Name="gPauseQuestStatus13Tex" OutName="pause_quest_status_1_3" Format="ia8" Width="80" Height="32" Offset="0x78FC0"/>
<Texture Name="gPauseQuestStatus03Tex" OutName="pause_quest_status_0_3" Format="ia8" Width="80" Height="32" Offset="0x799C0"/> <Texture Name="gPauseQuestStatus23Tex" OutName="pause_quest_status_2_3" Format="ia8" Width="80" Height="32" Offset="0x799C0"/>
<Texture Name="gPauseQuestStatus13Tex" OutName="pause_quest_status_1_3" Format="ia8" Width="80" Height="32" Offset="0x7A3C0"/> <Texture Name="gPauseSave03Tex" OutName="pause_save_0_3" Format="ia8" Width="80" Height="32" Offset="0x7A3C0"/>
<Texture Name="gPauseQuestStatus23Tex" OutName="pause_quest_status_2_3" Format="ia8" Width="80" Height="32" Offset="0x7ADC0"/> <Texture Name="gPauseSave13Tex" OutName="pause_save_1_3" Format="ia8" Width="80" Height="32" Offset="0x7ADC0"/>
<Texture Name="gPauseSave03Tex" OutName="pause_save_0_3" Format="ia8" Width="80" Height="32" Offset="0x7B7C0"/> <Texture Name="gPauseSave23Tex" OutName="pause_save_2_3" Format="ia8" Width="80" Height="32" Offset="0x7B7C0"/>
<Texture Name="gPauseSave13Tex" OutName="pause_save_1_3" Format="ia8" Width="80" Height="32" Offset="0x7C1C0"/> <Texture Name="gPauseEquipment04Tex" OutName="pause_equipment_0_4" Format="ia8" Width="80" Height="32" Offset="0x7C1C0"/>
<Texture Name="gPauseSave23Tex" OutName="pause_save_2_3" Format="ia8" Width="80" Height="32" Offset="0x7CBC0"/> <Texture Name="gPauseEquipment14Tex" OutName="pause_equipment_1_4" Format="ia8" Width="80" Height="32" Offset="0x7CBC0"/>
<Texture Name="gPauseEquipment04Tex" OutName="pause_equipment_0_4" Format="ia8" Width="80" Height="32" Offset="0x7D5C0"/> <Texture Name="gPauseEquipment24Tex" OutName="pause_equipment_2_4" Format="ia8" Width="80" Height="32" Offset="0x7D5C0"/>
<Texture Name="gPauseEquipment14Tex" OutName="pause_equipment_1_4" Format="ia8" Width="80" Height="32" Offset="0x7DFC0"/> <Texture Name="gPauseSelectItem04Tex" OutName="pause_select_item_0_4" Format="ia8" Width="80" Height="32" Offset="0x7DFC0"/>
<Texture Name="gPauseEquipment24Tex" OutName="pause_equipment_2_4" Format="ia8" Width="80" Height="32" Offset="0x7E9C0"/> <Texture Name="gPauseSelectItem14Tex" OutName="pause_select_item_1_4" Format="ia8" Width="80" Height="32" Offset="0x7E9C0"/>
<Texture Name="gPauseSelectItem04Tex" OutName="pause_select_item_0_4" Format="ia8" Width="80" Height="32" Offset="0x7F3C0"/> <Texture Name="gPauseSelectItem24Tex" OutName="pause_select_item_2_4" Format="ia8" Width="80" Height="32" Offset="0x7F3C0"/>
<Texture Name="gPauseSelectItem14Tex" OutName="pause_select_item_1_4" Format="ia8" Width="80" Height="32" Offset="0x7FDC0"/> <Texture Name="gPauseMap04Tex" OutName="pause_map_0_4" Format="ia8" Width="80" Height="32" Offset="0x7FDC0"/>
<Texture Name="gPauseSelectItem24Tex" OutName="pause_select_item_2_4" Format="ia8" Width="80" Height="32" Offset="0x807C0"/> <Texture Name="gPauseMap14Tex" OutName="pause_map_1_4" Format="ia8" Width="80" Height="32" Offset="0x807C0"/>
<Texture Name="gPauseMap04Tex" OutName="pause_map_0_4" Format="ia8" Width="80" Height="32" Offset="0x811C0"/> <Texture Name="gPauseMap24Tex" OutName="pause_map_2_4" Format="ia8" Width="80" Height="32" Offset="0x811C0"/>
<Texture Name="gPauseMap14Tex" OutName="pause_map_1_4" Format="ia8" Width="80" Height="32" Offset="0x81BC0"/> <Texture Name="gPauseQuestStatus04Tex" OutName="pause_quest_status_0_4" Format="ia8" Width="80" Height="32" Offset="0x81BC0"/>
<Texture Name="gPauseMap24Tex" OutName="pause_map_2_4" Format="ia8" Width="80" Height="32" Offset="0x825C0"/> <Texture Name="gPauseQuestStatus14Tex" OutName="pause_quest_status_1_4" Format="ia8" Width="80" Height="32" Offset="0x825C0"/>
<Texture Name="gPauseQuestStatus04Tex" OutName="pause_quest_status_0_4" Format="ia8" Width="80" Height="32" Offset="0x82FC0"/> <Texture Name="gPauseQuestStatus24Tex" OutName="pause_quest_status_2_4" Format="ia8" Width="80" Height="32" Offset="0x82FC0"/>
<Texture Name="gPauseQuestStatus14Tex" OutName="pause_quest_status_1_4" Format="ia8" Width="80" Height="32" Offset="0x839C0"/> <Texture Name="gPauseSave04Tex" OutName="pause_save_0_4" Format="ia8" Width="80" Height="32" Offset="0x839C0"/>
<Texture Name="gPauseQuestStatus24Tex" OutName="pause_quest_status_2_4" Format="ia8" Width="80" Height="32" Offset="0x843C0"/> <Texture Name="gPauseSave14Tex" OutName="pause_save_1_4" Format="ia8" Width="80" Height="32" Offset="0x843C0"/>
<Texture Name="gPauseSave04Tex" OutName="pause_save_0_4" Format="ia8" Width="80" Height="32" Offset="0x84DC0"/> <Texture Name="gPauseSave24Tex" OutName="pause_save_2_4" Format="ia8" Width="80" Height="32" Offset="0x84DC0"/>
<Texture Name="gPauseSave14Tex" OutName="pause_save_1_4" Format="ia8" Width="80" Height="32" Offset="0x857C0"/> <Texture Name="gPauseGameOver10Tex" OutName="pause_game_over_1_0" Format="ia8" Width="80" Height="32" Offset="0x857C0"/>
<Texture Name="gABtnSymbolTex" OutName="a_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x861C0"/> <Texture Name="gABtnSymbolTex" OutName="a_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x861C0"/>
<Texture Name="gBBtnSymbolTex" OutName="b_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x86340"/> <Texture Name="gBBtnSymbolTex" OutName="b_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x86340"/>
<Texture Name="gCBtnSymbolsTex" OutName="c_button_symbols" Format="ia8" Width="48" Height="16" Offset="0x864C0"/> <Texture Name="gCBtnSymbolsTex" OutName="c_button_symbols" Format="ia8" Width="48" Height="16" Offset="0x864C0"/>
@ -178,7 +178,7 @@
<Texture Name="gMagicArrowEquipEffectTex" OutName="magic_arrow_equip_effect" Format="ia8" Width="32" Height="32" Offset="0x881C0"/> <Texture Name="gMagicArrowEquipEffectTex" OutName="magic_arrow_equip_effect" Format="ia8" Width="32" Height="32" Offset="0x881C0"/>
<DList Name="gItemNamePanelDL" Offset="0x885C0"/> <DList Name="gItemNamePanelDL" Offset="0x885C0"/>
<DList Name="gLButtonIconDL" Offset="0x88650"/> <DList Name="gLButtonIconDL" Offset="0x88650"/>
<DList Name="gRButtonIconDL" Offset="0x886A0"/>/ <DList Name="gRButtonIconDL" Offset="0x886A0"/>
<DList Name="gCButtonIconsDL" Offset="0x886F0"/> <DList Name="gCButtonIconsDL" Offset="0x886F0"/>
<DList Name="gAButtonIconDL" Offset="0x88748"/> <DList Name="gAButtonIconDL" Offset="0x88748"/>
<DList Name="gBButtonIconDL" Offset="0x887A0"/> <DList Name="gBButtonIconDL" Offset="0x887A0"/>

View file

@ -15,7 +15,7 @@
<Texture Name="gFileSelShadowMedallionTex" OutName="shadow_medallion" Format="ia8" Width="16" Height="16" Offset="0x2D80"/> <Texture Name="gFileSelShadowMedallionTex" OutName="shadow_medallion" Format="ia8" Width="16" Height="16" Offset="0x2D80"/>
<Texture Name="gFileSelLightMedallionTex" OutName="light_medallion" Format="ia8" Width="16" Height="16" Offset="0x2E80"/> <Texture Name="gFileSelLightMedallionTex" OutName="light_medallion" Format="ia8" Width="16" Height="16" Offset="0x2E80"/>
<Texture Name="gFileSelWhichFile1JPNTex" OutName="which_file_1_jpn" Format="ia8" Width="128" Height="16" Offset="0x2F80"/> <Texture Name="gFileSelCopyWhichFileJPNTex" OutName="copy_which_file_jpn" Format="ia8" Width="128" Height="16" Offset="0x2F80"/>
<Texture Name="gFileSelCopyToWhichFileJPNTex" OutName="copy_to_which_file_jpn" Format="ia8" Width="128" Height="16" Offset="0x3780"/> <Texture Name="gFileSelCopyToWhichFileJPNTex" OutName="copy_to_which_file_jpn" Format="ia8" Width="128" Height="16" Offset="0x3780"/>
<Texture Name="gFileSelAreYouSureJPNTex" OutName="are_you_sure_jpn" Format="ia8" Width="128" Height="16" Offset="0x3F80"/> <Texture Name="gFileSelAreYouSureJPNTex" OutName="are_you_sure_jpn" Format="ia8" Width="128" Height="16" Offset="0x3F80"/>
<Texture Name="gFileSelFileCopiedJPNTex" OutName="file_copied_jpn" Format="ia8" Width="128" Height="16" Offset="0x4780"/> <Texture Name="gFileSelFileCopiedJPNTex" OutName="file_copied_jpn" Format="ia8" Width="128" Height="16" Offset="0x4780"/>

View file

@ -238,6 +238,12 @@ extern struct GraphicsContext* __gfxCtx;
#endif /* OOT_DEBUG */ #endif /* OOT_DEBUG */
#if OOT_NTSC
#define LANGUAGE_ARRAY(jpn, nes, ger, fra) { jpn, nes }
#else
#define LANGUAGE_ARRAY(jpn, nes, ger, fra) { nes, ger, fra }
#endif
/** /**
* `x` vertex x * `x` vertex x
* `y` vertex y * `y` vertex y

View file

@ -5,9 +5,6 @@
#include "z64item.h" // For item ids #include "z64item.h" // For item ids
#include "sfx.h" // For sfx ids #include "sfx.h" // For sfx ids
#define TEXT_LANG_US_JP 0
#define TEXT_LANG_EU 1
/* /*
* Text control characters * Text control characters
*/ */

View file

@ -37,7 +37,7 @@ typedef struct {
/* Non-Credits Messages */ /* Non-Credits Messages */
#if (TEXT_LANGUAGE == TEXT_LANG_US_JP) #if OOT_NTSC
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
extern const char _message_##textId##_nes[]; extern const char _message_##textId##_nes[];

View file

@ -29,6 +29,11 @@ DECLARE_ROM_SEGMENT(Audiobank)
DECLARE_ROM_SEGMENT(Audioseq) DECLARE_ROM_SEGMENT(Audioseq)
DECLARE_ROM_SEGMENT(Audiotable) DECLARE_ROM_SEGMENT(Audiotable)
#if OOT_NTSC
DECLARE_SEGMENT(kanji)
DECLARE_ROM_SEGMENT(kanji)
#endif
DECLARE_SEGMENT(link_animetion) DECLARE_SEGMENT(link_animetion)
DECLARE_ROM_SEGMENT(link_animetion) DECLARE_ROM_SEGMENT(link_animetion)
@ -37,9 +42,16 @@ DECLARE_ROM_SEGMENT(icon_item_24_static)
DECLARE_ROM_SEGMENT(icon_item_field_static) DECLARE_ROM_SEGMENT(icon_item_field_static)
DECLARE_ROM_SEGMENT(icon_item_dungeon_static) DECLARE_ROM_SEGMENT(icon_item_dungeon_static)
DECLARE_ROM_SEGMENT(icon_item_gameover_static) DECLARE_ROM_SEGMENT(icon_item_gameover_static)
#if OOT_NTSC
DECLARE_ROM_SEGMENT(icon_item_jpn_static)
DECLARE_ROM_SEGMENT(icon_item_nes_static)
#else
DECLARE_ROM_SEGMENT(icon_item_nes_static) DECLARE_ROM_SEGMENT(icon_item_nes_static)
DECLARE_ROM_SEGMENT(icon_item_ger_static) DECLARE_ROM_SEGMENT(icon_item_ger_static)
DECLARE_ROM_SEGMENT(icon_item_fra_static) DECLARE_ROM_SEGMENT(icon_item_fra_static)
#endif
DECLARE_ROM_SEGMENT(item_name_static) DECLARE_ROM_SEGMENT(item_name_static)
DECLARE_ROM_SEGMENT(map_name_static) DECLARE_ROM_SEGMENT(map_name_static)
DECLARE_ROM_SEGMENT(do_action_static) DECLARE_ROM_SEGMENT(do_action_static)
@ -47,12 +59,20 @@ DECLARE_ROM_SEGMENT(message_static)
DECLARE_ROM_SEGMENT(message_texture_static) DECLARE_ROM_SEGMENT(message_texture_static)
DECLARE_ROM_SEGMENT(nes_font_static) DECLARE_ROM_SEGMENT(nes_font_static)
#if OOT_NTSC
DECLARE_SEGMENT(jpn_message_data_static)
DECLARE_ROM_SEGMENT(jpn_message_data_static)
DECLARE_SEGMENT(nes_message_data_static)
DECLARE_ROM_SEGMENT(nes_message_data_static)
#else
DECLARE_SEGMENT(nes_message_data_static) DECLARE_SEGMENT(nes_message_data_static)
DECLARE_ROM_SEGMENT(nes_message_data_static) DECLARE_ROM_SEGMENT(nes_message_data_static)
DECLARE_SEGMENT(ger_message_data_static) DECLARE_SEGMENT(ger_message_data_static)
DECLARE_ROM_SEGMENT(ger_message_data_static) DECLARE_ROM_SEGMENT(ger_message_data_static)
DECLARE_SEGMENT(fra_message_data_static) DECLARE_SEGMENT(fra_message_data_static)
DECLARE_ROM_SEGMENT(fra_message_data_static) DECLARE_ROM_SEGMENT(fra_message_data_static)
#endif
DECLARE_SEGMENT(staff_message_data_static) DECLARE_SEGMENT(staff_message_data_static)
DECLARE_ROM_SEGMENT(staff_message_data_static) DECLARE_ROM_SEGMENT(staff_message_data_static)
@ -628,6 +648,7 @@ DECLARE_ROM_SEGMENT(spot20_room_0)
DECLARE_ROM_SEGMENT(ganon_tou_room_0) DECLARE_ROM_SEGMENT(ganon_tou_room_0)
#if OOT_DEBUG
DECLARE_ROM_SEGMENT(test01_room_0) DECLARE_ROM_SEGMENT(test01_room_0)
DECLARE_ROM_SEGMENT(besitu_room_0) DECLARE_ROM_SEGMENT(besitu_room_0)
@ -649,5 +670,6 @@ DECLARE_ROM_SEGMENT(testroom_room_1)
DECLARE_ROM_SEGMENT(testroom_room_2) DECLARE_ROM_SEGMENT(testroom_room_2)
DECLARE_ROM_SEGMENT(testroom_room_3) DECLARE_ROM_SEGMENT(testroom_room_3)
DECLARE_ROM_SEGMENT(testroom_room_4) DECLARE_ROM_SEGMENT(testroom_room_4)
#endif
#endif #endif

View file

@ -1,7 +1,7 @@
#ifndef Z64ITEM_H #ifndef Z64ITEM_H
#define Z64ITEM_H #define Z64ITEM_H
// Note that z_kaleido_scope_PAL.c assumes that the dimensions and texture format here also matches the dimensions and // Note that z_kaleido_scope.c assumes that the dimensions and texture format here also matches the dimensions and
// texture format for MAP_NAME_TEX1_* // texture format for MAP_NAME_TEX1_*
#define ITEM_NAME_TEX_WIDTH 128 #define ITEM_NAME_TEX_WIDTH 128
#define ITEM_NAME_TEX_HEIGHT 16 #define ITEM_NAME_TEX_HEIGHT 16

View file

@ -166,7 +166,7 @@ typedef struct {
/* 0x027C */ SkelAnime playerSkelAnime; /* 0x027C */ SkelAnime playerSkelAnime;
} PauseContext; // size = 0x2C0 } PauseContext; // size = 0x2C0
// Note that z_kaleido_scope_PAL.c assumes that the dimensions and texture format here also matches the dimensions and // Note that z_kaleido_scope.c assumes that the dimensions and texture format here also matches the dimensions and
// texture format for ITEM_NAME_TEX_* // texture format for ITEM_NAME_TEX_*
#define MAP_NAME_TEX1_WIDTH 128 #define MAP_NAME_TEX1_WIDTH 128
#define MAP_NAME_TEX1_HEIGHT 16 #define MAP_NAME_TEX1_HEIGHT 16

View file

@ -5,10 +5,15 @@
#include "z64math.h" #include "z64math.h"
typedef enum { typedef enum {
#if OOT_NTSC
/* 0 */ LANGUAGE_JPN,
/* 1 */ LANGUAGE_ENG,
#else
/* 0 */ LANGUAGE_ENG, /* 0 */ LANGUAGE_ENG,
/* 1 */ LANGUAGE_GER, /* 1 */ LANGUAGE_GER,
/* 2 */ LANGUAGE_FRA, /* 2 */ LANGUAGE_FRA,
/* 3 */ LANGUAGE_MAX #endif
/* */ LANGUAGE_MAX
} Language; } Language;
// `_FORCE` means that this request will respond to `forceRisingButtonAlphas`. // `_FORCE` means that this request will respond to `forceRisingButtonAlphas`.

43
spec
View file

@ -150,8 +150,18 @@ beginseg
include "$(BUILD_DIR)/baserom/Audiotable.o" include "$(BUILD_DIR)/baserom/Audiotable.o"
endseg endseg
#if OOT_NTSC
beginseg
name "kanji"
include "$(BUILD_DIR)/assets/textures/kanji/kanji.o"
endseg
#endif
beginseg beginseg
name "link_animetion" name "link_animetion"
#if OOT_NTSC
romalign 0x1000
#endif
include "$(BUILD_DIR)/assets/misc/link_animetion/link_animetion.o" include "$(BUILD_DIR)/assets/misc/link_animetion/link_animetion.o"
number 7 number 7
endseg endseg
@ -194,6 +204,16 @@ beginseg
number 12 number 12
endseg endseg
#if OOT_NTSC
beginseg
name "icon_item_jpn_static"
compress
romalign 0x1000
include "$(BUILD_DIR)/assets/textures/icon_item_jpn_static/icon_item_jpn_static.o"
number 13
endseg
#endif
beginseg beginseg
name "icon_item_nes_static" name "icon_item_nes_static"
compress compress
@ -202,6 +222,7 @@ beginseg
number 13 number 13
endseg endseg
#if OOT_PAL
beginseg beginseg
name "icon_item_ger_static" name "icon_item_ger_static"
compress compress
@ -217,6 +238,7 @@ beginseg
include "$(BUILD_DIR)/assets/textures/icon_item_fra_static/icon_item_fra_static.o" include "$(BUILD_DIR)/assets/textures/icon_item_fra_static/icon_item_fra_static.o"
number 13 number 13
endseg endseg
#endif
beginseg beginseg
name "item_name_static" name "item_name_static"
@ -260,6 +282,15 @@ beginseg
number 10 number 10
endseg endseg
#if OOT_NTSC
beginseg
name "jpn_message_data_static"
romalign 0x1000
include "$(BUILD_DIR)/assets/text/jpn_message_data_static.o"
number 8
endseg
#endif
beginseg beginseg
name "nes_message_data_static" name "nes_message_data_static"
romalign 0x1000 romalign 0x1000
@ -267,6 +298,7 @@ beginseg
number 7 number 7
endseg endseg
#if OOT_PAL
beginseg beginseg
name "ger_message_data_static" name "ger_message_data_static"
romalign 0x1000 romalign 0x1000
@ -280,6 +312,7 @@ beginseg
include "$(BUILD_DIR)/assets/text/fra_message_data_static.o" include "$(BUILD_DIR)/assets/text/fra_message_data_static.o"
number 7 number 7
endseg endseg
#endif
beginseg beginseg
name "staff_message_data_static" name "staff_message_data_static"
@ -597,9 +630,9 @@ beginseg
include "$(BUILD_DIR)/src/code/__osMemmove.o" include "$(BUILD_DIR)/src/code/__osMemmove.o"
// For some reason, the data sections of these files are placed here near the // For some reason, the data sections of these files are placed here near the
// rodata sections of the other files // rodata sections of the other files
include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_message_PAL.o" include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_message.o"
include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_game_over.o" include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_game_over.o"
include_no_data "$(BUILD_DIR)/src/code/z_message_PAL.o" include_no_data "$(BUILD_DIR)/src/code/z_message.o"
include_no_data "$(BUILD_DIR)/src/code/z_game_over.o" include_no_data "$(BUILD_DIR)/src/code/z_game_over.o"
include "$(BUILD_DIR)/src/code/z_construct.o" include "$(BUILD_DIR)/src/code/z_construct.o"
include "$(BUILD_DIR)/data/audio_tables.rodata.o" include "$(BUILD_DIR)/data/audio_tables.rodata.o"
@ -643,7 +676,7 @@ beginseg
compress compress
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.o" include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o" include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.o" include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_choose.o" include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_choose.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.o" include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.o"
endseg endseg
@ -655,9 +688,9 @@ beginseg
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.o"
#if !OOT_MQ #if !OOT_MQ
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.o"

View file

@ -7,6 +7,10 @@ s32 gScreenWidth = SCREEN_WIDTH;
s32 gScreenHeight = SCREEN_HEIGHT; s32 gScreenHeight = SCREEN_HEIGHT;
u32 gSystemHeapSize = 0; u32 gSystemHeapSize = 0;
// For retail BSS ordering, the block number of gIrqMgr must be greater than the
// the block numbers assigned to extern variables above (declared in variables.h).
#pragma increment_block_number 220
PreNmiBuff* gAppNmiBufferPtr; PreNmiBuff* gAppNmiBufferPtr;
Scheduler gScheduler; Scheduler gScheduler;
PadMgr gPadMgr; PadMgr gPadMgr;

View file

@ -6,7 +6,7 @@
// For retail BSS ordering, the block number of D_8015BD7C // For retail BSS ordering, the block number of D_8015BD7C
// must be between 88 and 123 inclusive. // must be between 88 and 123 inclusive.
#pragma increment_block_number 26 #pragma increment_block_number 30
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);

View file

@ -50,6 +50,13 @@ void Interface_Init(PlayState* play) {
ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169); ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
doActionOffset = LANGUAGE_JPN * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} else {
doActionOffset = LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
}
#else
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
doActionOffset = LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE; doActionOffset = LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} else if (gSaveContext.language == LANGUAGE_GER) { } else if (gSaveContext.language == LANGUAGE_GER) {
@ -57,10 +64,18 @@ void Interface_Init(PlayState* play) {
} else { } else {
doActionOffset = LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE; doActionOffset = LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} }
#endif
DMA_REQUEST_SYNC(interfaceCtx->doActionSegment, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, DMA_REQUEST_SYNC(interfaceCtx->doActionSegment, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset,
2 * DO_ACTION_TEX_SIZE, "../z_construct.c", 174); 2 * DO_ACTION_TEX_SIZE, "../z_construct.c", 174);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_JPN * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} else {
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
}
#else
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE; doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_ENG * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} else if (gSaveContext.language == LANGUAGE_GER) { } else if (gSaveContext.language == LANGUAGE_GER) {
@ -68,6 +83,7 @@ void Interface_Init(PlayState* play) {
} else { } else {
doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE; doActionOffset = 3 * DO_ACTION_TEX_SIZE + LANGUAGE_FRA * DO_ACTION_MAX * DO_ACTION_TEX_SIZE;
} }
#endif
DMA_REQUEST_SYNC(interfaceCtx->doActionSegment + 2 * DO_ACTION_TEX_SIZE, DMA_REQUEST_SYNC(interfaceCtx->doActionSegment + 2 * DO_ACTION_TEX_SIZE,
(uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, DO_ACTION_TEX_SIZE, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, DO_ACTION_TEX_SIZE,

View file

@ -115,13 +115,15 @@ void* sUnusedEntranceCsList[] = {
gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs, gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs,
}; };
#pragma increment_block_number 248
// Stores the frame the relevant cam data was last applied on // Stores the frame the relevant cam data was last applied on
u16 gCamAtSplinePointsAppliedFrame; u16 gCamAtSplinePointsAppliedFrame;
u16 gCamEyePointAppliedFrame; u16 gCamEyePointAppliedFrame;
u16 gCamAtPointAppliedFrame; u16 gCamAtPointAppliedFrame;
// For retail BSS ordering, the block number of sReturnToCamId must be greater
// than that of gCamAtPointAppliedFrame (declared in variables.h).
#pragma increment_block_number 180
// Cam ID to return to when a scripted cutscene is finished // Cam ID to return to when a scripted cutscene is finished
s16 sReturnToCamId; s16 sReturnToCamId;

View file

@ -10,7 +10,7 @@
// For retail BSS ordering, the block number of sLensFlareUnused must be lower // For retail BSS ordering, the block number of sLensFlareUnused must be lower
// than the extern variables declared in the header (e.g. gLightningStrike) // than the extern variables declared in the header (e.g. gLightningStrike)
// while the block number of sNGameOverLightNode must be higher. // while the block number of sNGameOverLightNode must be higher.
#pragma increment_block_number 70 #pragma increment_block_number 80
typedef enum { typedef enum {
/* 0x00 */ LIGHTNING_BOLT_START, /* 0x00 */ LIGHTNING_BOLT_START,
@ -218,7 +218,7 @@ s16 sSunDepthTestY;
// These variables could be moved farther down in the file to reduce the amount // These variables could be moved farther down in the file to reduce the amount
// of block number padding here, but currently this causes BSS ordering issues // of block number padding here, but currently this causes BSS ordering issues
// for debug. // for debug.
#pragma increment_block_number 227 #pragma increment_block_number 217
LightNode* sNGameOverLightNode; LightNode* sNGameOverLightNode;
LightInfo sNGameOverLightInfo; LightInfo sNGameOverLightInfo;

View file

@ -27,9 +27,46 @@ s16 sMessageHasSetSfx = false;
u16 sOcarinaSongBitFlags = 0; // ocarina bit flags u16 sOcarinaSongBitFlags = 0; // ocarina bit flags
#if OOT_NTSC
MessageTableEntry sJpnMessageEntryTable[] = {
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
{ textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_jpn },
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
#include "assets/text/message_data.h"
#undef DEFINE_MESSAGE
#undef DEFINE_MESSAGE_NES
#undef DEFINE_MESSAGE_JPN
#undef DEFINE_MESSAGE_FFFC
{ 0xFFFF, 0, NULL },
};
MessageTableEntry sNesMessageEntryTable[] = { MessageTableEntry sNesMessageEntryTable[] = {
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
{ textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_nes }, { textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_nes },
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
#include "assets/text/message_data.h"
#undef DEFINE_MESSAGE
#undef DEFINE_MESSAGE_NES
#undef DEFINE_MESSAGE_JPN
#undef DEFINE_MESSAGE_FFFC
{ 0xFFFF, 0, NULL },
};
#else
MessageTableEntry sNesMessageEntryTable[] = {
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
{ textId, (_SHIFTL(type, 4, 4) | _SHIFTL(yPos, 0, 4)), _message_##textId##_nes },
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */ #define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ #define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
@ -74,6 +111,8 @@ const char* sFraMessageEntryTable[] = {
NULL, NULL,
}; };
#endif
MessageTableEntry sStaffMessageEntryTable[] = { MessageTableEntry sStaffMessageEntryTable[] = {
#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \ #define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \
{ textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_staff }, { textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_staff },
@ -82,9 +121,15 @@ MessageTableEntry sStaffMessageEntryTable[] = {
{ 0xFFFF, 0, NULL }, { 0xFFFF, 0, NULL },
}; };
#if OOT_NTSC
MessageTableEntry* sJpnMessageEntryTablePtr = sJpnMessageEntryTable;
MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable;
#else
MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable; MessageTableEntry* sNesMessageEntryTablePtr = sNesMessageEntryTable;
const char** sGerMessageEntryTablePtr = sGerMessageEntryTable; const char** sGerMessageEntryTablePtr = sGerMessageEntryTable;
const char** sFraMessageEntryTablePtr = sFraMessageEntryTable; const char** sFraMessageEntryTablePtr = sFraMessageEntryTable;
#endif
MessageTableEntry* sStaffMessageEntryTablePtr = sStaffMessageEntryTable; MessageTableEntry* sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
s16 sTextboxBackgroundForePrimColors[][3] = { s16 sTextboxBackgroundForePrimColors[][3] = {
@ -311,6 +356,8 @@ void Message_GrowTextbox(MessageContext* msgCtx) {
R_TEXTBOX_X = (R_TEXTBOX_X_TARGET + R_TEXTBOX_WIDTH_TARGET) - (R_TEXTBOX_WIDTH / 2); R_TEXTBOX_X = (R_TEXTBOX_X_TARGET + R_TEXTBOX_WIDTH_TARGET) - (R_TEXTBOX_WIDTH / 2);
} }
#if OOT_PAL // TODO: implement NTSC version
void Message_FindMessage(PlayState* play, u16 textId) { void Message_FindMessage(PlayState* play, u16 textId) {
const char* foundSeg; const char* foundSeg;
const char* nextSeg; const char* nextSeg;
@ -382,6 +429,8 @@ void Message_FindMessage(PlayState* play, u16 textId) {
font->msgLength = nextSeg - foundSeg; font->msgLength = nextSeg - foundSeg;
} }
#endif
void Message_FindCreditsMessage(PlayState* play, u16 textId) { void Message_FindCreditsMessage(PlayState* play, u16 textId) {
const char* foundSeg; const char* foundSeg;
const char* nextSeg; const char* nextSeg;
@ -1649,6 +1698,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset,
font->msgLength, "../z_message_PAL.c", 1954); font->msgLength, "../z_message_PAL.c", 1954);
} else { } else {
#if OOT_PAL // TODO: implement NTSC version
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
Message_FindMessage(play, textId); Message_FindMessage(play, textId);
msgCtx->msgLength = font->msgLength; msgCtx->msgLength = font->msgLength;
@ -1665,6 +1715,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset, DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset,
font->msgLength, "../z_message_PAL.c", 1990); font->msgLength, "../z_message_PAL.c", 1990);
} }
#endif
} }
msgCtx->textBoxProperties = font->charTexBuf[0]; msgCtx->textBoxProperties = font->charTexBuf[0];
msgCtx->textBoxType = msgCtx->textBoxProperties >> 4; msgCtx->textBoxType = msgCtx->textBoxProperties >> 4;
@ -3372,8 +3423,14 @@ void Message_Update(PlayState* play) {
} }
void Message_SetTables(void) { void Message_SetTables(void) {
#if OOT_NTSC
sJpnMessageEntryTablePtr = sJpnMessageEntryTable;
sNesMessageEntryTablePtr = sNesMessageEntryTable;
#else
sNesMessageEntryTablePtr = sNesMessageEntryTable; sNesMessageEntryTablePtr = sNesMessageEntryTable;
sGerMessageEntryTablePtr = sGerMessageEntryTable; sGerMessageEntryTablePtr = sGerMessageEntryTable;
sFraMessageEntryTablePtr = sFraMessageEntryTable; sFraMessageEntryTablePtr = sFraMessageEntryTable;
#endif
sStaffMessageEntryTablePtr = sStaffMessageEntryTable; sStaffMessageEntryTablePtr = sStaffMessageEntryTable;
} }

View file

@ -2103,11 +2103,11 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
action = DO_ACTION_NONE; action = DO_ACTION_NONE;
} }
if (gSaveContext.language != LANGUAGE_ENG) { if (gSaveContext.language != 0) { // LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
action += DO_ACTION_MAX; action += DO_ACTION_MAX;
} }
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
action += DO_ACTION_MAX; action += DO_ACTION_MAX;
} }
@ -2167,11 +2167,11 @@ void Interface_SetNaviCall(PlayState* play, u16 naviCallState) {
void Interface_LoadActionLabelB(PlayState* play, u16 action) { void Interface_LoadActionLabelB(PlayState* play, u16 action) {
InterfaceContext* interfaceCtx = &play->interfaceCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx;
if (gSaveContext.language != LANGUAGE_ENG) { if (gSaveContext.language != 0) { // LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
action += DO_ACTION_MAX; action += DO_ACTION_MAX;
} }
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
action += DO_ACTION_MAX; action += DO_ACTION_MAX;
} }

View file

@ -4,13 +4,6 @@
#include "z64frame_advance.h" #include "z64frame_advance.h"
#if OOT_DEBUG
void* gDebugCutsceneScript = NULL;
UNK_TYPE D_8012D1F4 = 0; // unused
#endif
Input* D_8012D1F8 = NULL;
TransitionTile gTransitionTile; TransitionTile gTransitionTile;
s32 gTransitionTileState; s32 gTransitionTileState;
VisMono gPlayVisMono; VisMono gPlayVisMono;
@ -22,6 +15,13 @@ FaultClient D_801614B8;
s16 sTransitionFillTimer; s16 sTransitionFillTimer;
#if OOT_DEBUG
void* gDebugCutsceneScript = NULL;
UNK_TYPE D_8012D1F4 = 0; // unused
#endif
Input* D_8012D1F8 = NULL;
void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn); void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn);
// This macro prints the number "1" with a file and line number if R_ENABLE_PLAY_LOGS is enabled. // This macro prints the number "1" with a file and line number if R_ENABLE_PLAY_LOGS is enabled.

View file

@ -12,7 +12,7 @@
#include "terminal.h" #include "terminal.h"
// For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. // For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0.
#pragma increment_block_number 182 #pragma increment_block_number 208
#define FLAGS ACTOR_FLAG_4 #define FLAGS ACTOR_FLAG_4

View file

@ -897,7 +897,15 @@ static void* sFileInfoBoxTextures[] = {
gFileSelFileInfoBox4Tex, gFileSelFileInfoBox5Tex, gFileSelFileInfoBox4Tex, gFileSelFileInfoBox5Tex,
}; };
static void* sTitleLabels[3][9] = { static void* sTitleLabels[][9] = {
#if OOT_NTSC
{ gFileSelPleaseSelectAFileJPNTex, gFileSelOpenThisFileJPNTex, gFileSelCopyWhichFileJPNTex,
gFileSelCopyToWhichFileJPNTex, gFileSelAreYouSureJPNTex, gFileSelFileCopiedJPNTex, gFileSelEraseWhichFileJPNTex,
gFileSelAreYouSure2JPNTex, gFileSelFileErasedJPNTex },
{ gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex,
gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex,
gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex },
#else
{ gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex, { gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex,
gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex, gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex,
gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex }, gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex },
@ -907,34 +915,49 @@ static void* sTitleLabels[3][9] = {
{ gFileSelPleaseSelectAFileFRATex, gFileSelOpenThisFileFRATex, gFileSelCopyWhichFileFRATex, { gFileSelPleaseSelectAFileFRATex, gFileSelOpenThisFileFRATex, gFileSelCopyWhichFileFRATex,
gFileSelCopyToWhichFileFRATex, gFileSelAreYouSureFRATex, gFileSelFileCopiedFRATex, gFileSelEraseWhichFileFRATex, gFileSelCopyToWhichFileFRATex, gFileSelAreYouSureFRATex, gFileSelFileCopiedFRATex, gFileSelEraseWhichFileFRATex,
gFileSelAreYouSure2FRATex, gFileSelFileErasedFRATex } gFileSelAreYouSure2FRATex, gFileSelFileErasedFRATex }
#endif
}; };
static void* sWarningLabels[3][5] = { static void* sWarningLabels[][5] = {
#if OOT_NTSC
{ gFileSelNoFileToCopyJPNTex, gFileSelNoFileToEraseJPNTex, gFileSelNoEmptyFileJPNTex, gFileSelFileEmptyJPNTex,
gFileSelFileInUseJPNTex },
{ gFileSelNoFileToCopyENGTex, gFileSelNoFileToEraseENGTex, gFileSelNoEmptyFileENGTex, gFileSelFileEmptyENGTex,
gFileSelFileInUseENGTex },
#else
{ gFileSelNoFileToCopyENGTex, gFileSelNoFileToEraseENGTex, gFileSelNoEmptyFileENGTex, gFileSelFileEmptyENGTex, { gFileSelNoFileToCopyENGTex, gFileSelNoFileToEraseENGTex, gFileSelNoEmptyFileENGTex, gFileSelFileEmptyENGTex,
gFileSelFileInUseENGTex }, gFileSelFileInUseENGTex },
{ gFileSelNoFileToCopyGERTex, gFileSelNoFileToEraseGERTex, gFileSelNoEmptyFileGERTex, gFileSelFileEmptyGERTex, { gFileSelNoFileToCopyGERTex, gFileSelNoFileToEraseGERTex, gFileSelNoEmptyFileGERTex, gFileSelFileEmptyGERTex,
gFileSelFileInUseGERTex }, gFileSelFileInUseGERTex },
{ gFileSelNoFileToCopyFRATex, gFileSelNoFileToEraseFRATex, gFileSelNoEmptyFileFRATex, gFileSelFileEmptyFRATex, { gFileSelNoFileToCopyFRATex, gFileSelNoFileToEraseFRATex, gFileSelNoEmptyFileFRATex, gFileSelFileEmptyFRATex,
gFileSelFileInUseFRATex }, gFileSelFileInUseFRATex },
#endif
}; };
static void* sFileButtonTextures[3][3] = { static void* sFileButtonTextures[][3] = {
#if OOT_NTSC
{ gFileSelFile1ButtonJPNTex, gFileSelFile2ButtonJPNTex, gFileSelFile3ButtonJPNTex },
{ gFileSelFile1ButtonENGTex, gFileSelFile2ButtonENGTex, gFileSelFile3ButtonENGTex },
#else
{ gFileSelFile1ButtonENGTex, gFileSelFile2ButtonENGTex, gFileSelFile3ButtonENGTex }, { gFileSelFile1ButtonENGTex, gFileSelFile2ButtonENGTex, gFileSelFile3ButtonENGTex },
{ gFileSelFile1ButtonGERTex, gFileSelFile2ButtonGERTex, gFileSelFile3ButtonGERTex }, { gFileSelFile1ButtonGERTex, gFileSelFile2ButtonGERTex, gFileSelFile3ButtonGERTex },
{ gFileSelFile1ButtonFRATex, gFileSelFile2ButtonFRATex, gFileSelFile3ButtonFRATex }, { gFileSelFile1ButtonFRATex, gFileSelFile2ButtonFRATex, gFileSelFile3ButtonFRATex },
#endif
}; };
static void* sActionButtonTextures[3][4] = { static void* sActionButtonTextures[][4] = {
#if OOT_NTSC
{ gFileSelCopyButtonJPNTex, gFileSelEraseButtonJPNTex, gFileSelYesButtonJPNTex, gFileSelQuitButtonJPNTex },
{ gFileSelCopyButtonENGTex, gFileSelEraseButtonENGTex, gFileSelYesButtonENGTex, gFileSelQuitButtonENGTex },
#else
{ gFileSelCopyButtonENGTex, gFileSelEraseButtonENGTex, gFileSelYesButtonENGTex, gFileSelQuitButtonENGTex }, { gFileSelCopyButtonENGTex, gFileSelEraseButtonENGTex, gFileSelYesButtonENGTex, gFileSelQuitButtonENGTex },
{ gFileSelCopyButtonGERTex, gFileSelEraseButtonGERTex, gFileSelYesButtonGERTex, gFileSelQuitButtonGERTex }, { gFileSelCopyButtonGERTex, gFileSelEraseButtonGERTex, gFileSelYesButtonGERTex, gFileSelQuitButtonGERTex },
{ gFileSelCopyButtonFRATex, gFileSelEraseButtonFRATex, gFileSelYesButtonFRATex, gFileSelQuitButtonFRATex }, { gFileSelCopyButtonFRATex, gFileSelEraseButtonFRATex, gFileSelYesButtonFRATex, gFileSelQuitButtonFRATex },
#endif
}; };
static void* sOptionsButtonTextures[] = { static void* sOptionsButtonTextures[] = LANGUAGE_ARRAY(gFileSelOptionsButtonJPNTex, gFileSelOptionsButtonENGTex,
gFileSelOptionsButtonENGTex, gFileSelOptionsButtonGERTex, gFileSelOptionsButtonENGTex);
gFileSelOptionsButtonGERTex,
gFileSelOptionsButtonENGTex,
};
/** /**
* Draw most window contents including buttons, labels, and icons. * Draw most window contents including buttons, labels, and icons.
@ -1597,11 +1620,8 @@ static void (*sFileSelectUpdateFuncs[])(GameState*) = {
}; };
void FileSelect_Main(GameState* thisx) { void FileSelect_Main(GameState* thisx) {
static void* controlsTextures[] = { static void* controlsTextures[] =
gFileSelControlsENGTex, LANGUAGE_ARRAY(gFileSelControlsJPNTex, gFileSelControlsENGTex, gFileSelControlsGERTex, gFileSelControlsFRATex);
gFileSelControlsGERTex,
gFileSelControlsFRATex,
};
FileSelectState* this = (FileSelectState*)thisx; FileSelectState* this = (FileSelectState*)thisx;
Input* input = &this->state.input[0]; Input* input = &this->state.input[0];

View file

@ -87,15 +87,25 @@ void FileSelect_SetKeyboardVtx(GameState* thisx) {
} }
} }
static void* sNameLabelTextures[] = { gFileSelNameENGTex, gFileSelNameENGTex, gFileSelNameFRATex }; static void* sNameLabelTextures[] =
LANGUAGE_ARRAY(gFileSelNameJPNTex, gFileSelNameENGTex, gFileSelNameENGTex, gFileSelNameFRATex);
static void* sBackspaceEndTextures[][2] = { #if OOT_NTSC
static void* sButtonTextures[] = {
gFileSelHiraganaButtonTex, gFileSelKatakanaButtonTex, gFileSelKanjiButtonTex,
gFileSelBackspaceButtonTex, gFileSelENDButtonENGTex,
};
static u16 sButtonWidths[] = { 44, 44, 28, 28, 44 };
#else
static void* sButtonTextures[][2] = {
{ gFileSelBackspaceButtonTex, gFileSelENDButtonENGTex }, { gFileSelBackspaceButtonTex, gFileSelENDButtonENGTex },
{ gFileSelBackspaceButtonTex, gFileSelENDButtonGERTex }, { gFileSelBackspaceButtonTex, gFileSelENDButtonGERTex },
{ gFileSelBackspaceButtonTex, gFileSelENDButtonFRATex }, { gFileSelBackspaceButtonTex, gFileSelENDButtonFRATex },
}; };
static u16 sBackspaceEndWidths[] = { 28, 44 }; static u16 sButtonWidths[] = { 28, 44 };
#endif
static s16 D_808125EC[] = { static s16 D_808125EC[] = {
0xFFE2, 0xFFF0, 0xFFFA, 0x0004, 0x000E, 0x0018, 0x0022, 0x002C, 0x0036, 0xFFF0, 0xFFF0, 0xFFE2, 0xFFF0, 0xFFFA, 0x0004, 0x000E, 0x0018, 0x0022, 0x002C, 0x0036, 0xFFF0, 0xFFF0,
@ -137,9 +147,16 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) {
for (phi_t1 = 0; phi_t1 < 2; phi_t1++, phi_s0 += 4) { for (phi_t1 = 0; phi_t1 < 2; phi_t1++, phi_s0 += 4) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], 255); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], 255);
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0);
gDPLoadTextureBlock(POLY_OPA_DISP++, sBackspaceEndTextures[gSaveContext.language][phi_t1], G_IM_FMT_IA, #if OOT_NTSC
G_IM_SIZ_16b, sBackspaceEndWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, // TODO: implement NTSC version
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, sButtonWidths[phi_t1],
16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
#else
gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[gSaveContext.language][phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b,
sButtonWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
#endif
gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0);
} }
@ -738,22 +755,24 @@ typedef struct {
static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { static OptionsMenuTextureInfo sOptionsMenuHeaders[] = {
{ {
{ gFileSelOptionsENGTex, gFileSelOptionsGERTex, gFileSelOptionsENGTex }, LANGUAGE_ARRAY(gFileSelOptionsJPNTex, gFileSelOptionsENGTex, gFileSelOptionsGERTex, gFileSelOptionsENGTex),
{ 128, 128, 128 }, { 128, 128, 128 },
16, 16,
}, },
{ {
{ gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex }, LANGUAGE_ARRAY(gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex),
{ 64, 64, 64 }, { 64, 64, 64 },
16, 16,
}, },
{ {
{ gFileSelLTargetingENGTex, gFileSelLTargetingGERTex, gFileSelLTargetingFRATex }, LANGUAGE_ARRAY(gFileSelLTargetingJPNTex, gFileSelLTargetingENGTex, gFileSelLTargetingGERTex,
gFileSelLTargetingFRATex),
{ 64, 144, 64 }, { 64, 144, 64 },
16, 16,
}, },
{ {
{ gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex, gFileSelCheckBrightnessFRATex }, LANGUAGE_ARRAY(gFileSelCheckBrightnessJPNTex, gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex,
gFileSelCheckBrightnessFRATex),
{ 128, 128, 128 }, { 128, 128, 128 },
16, 16,
}, },
@ -761,32 +780,32 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = {
static OptionsMenuTextureInfo sOptionsMenuSettings[] = { static OptionsMenuTextureInfo sOptionsMenuSettings[] = {
{ {
{ gFileSelStereoENGTex, gFileSelStereoENGTex, gFileSelStereoFRATex }, LANGUAGE_ARRAY(gFileSelStereoJPNTex, gFileSelStereoENGTex, gFileSelStereoENGTex, gFileSelStereoFRATex),
{ 48, 48, 48 }, { 48, 48, 48 },
16, 16,
}, },
{ {
{ gFileSelMonoENGTex, gFileSelMonoENGTex, gFileSelMonoENGTex }, LANGUAGE_ARRAY(gFileSelMonoJPNTex, gFileSelMonoENGTex, gFileSelMonoENGTex, gFileSelMonoENGTex),
{ 48, 48, 48 }, { 48, 48, 48 },
16, 16,
}, },
{ {
{ gFileSelHeadsetENGTex, gFileSelHeadsetGERTex, gFileSelHeadsetFRATex }, LANGUAGE_ARRAY(gFileSelHeadsetJPNTex, gFileSelHeadsetENGTex, gFileSelHeadsetGERTex, gFileSelHeadsetFRATex),
{ 48, 48, 48 }, { 48, 48, 48 },
16, 16,
}, },
{ {
{ gFileSelSurroundENGTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex }, LANGUAGE_ARRAY(gFileSelSurroundJPNTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex),
{ 48, 48, 48 }, { 48, 48, 48 },
16, 16,
}, },
{ {
{ gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex }, LANGUAGE_ARRAY(gFileSelSwitchJPNTex, gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex),
{ 48, 80, 48 }, { 48, 80, 48 },
16, 16,
}, },
{ {
{ gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex }, LANGUAGE_ARRAY(gFileSelHoldJPNTex, gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex),
{ 48, 80, 48 }, { 48, 80, 48 },
16, 16,
}, },
@ -879,11 +898,15 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) {
} }
} }
#if OOT_NTSC
gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0);
#else
if (gSaveContext.language == LANGUAGE_GER) { if (gSaveContext.language == LANGUAGE_GER) {
gSPVertex(POLY_OPA_DISP++, D_80811E30, 32, 0); gSPVertex(POLY_OPA_DISP++, D_80811E30, 32, 0);
} else { } else {
gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0); gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0);
} }
#endif
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE,
@ -899,11 +922,15 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) {
gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0);
} }
#if OOT_NTSC
gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0);
#else
if (gSaveContext.language == LANGUAGE_GER) { if (gSaveContext.language == LANGUAGE_GER) {
gSPVertex(POLY_OPA_DISP++, D_80812130, 32, 0); gSPVertex(POLY_OPA_DISP++, D_80812130, 32, 0);
} else { } else {
gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0); gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0);
} }
#endif
for (i = 0, vtx = 0; i < 4; i++, vtx += 4) { for (i = 0, vtx = 0; i < 4; i++, vtx += 4) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);

View file

@ -1,8 +1,13 @@
#include "z_kaleido_scope.h" #include "z_kaleido_scope.h"
#include "assets/textures/icon_item_24_static/icon_item_24_static.h" #include "assets/textures/icon_item_24_static/icon_item_24_static.h"
#if OOT_NTSC
#include "assets/textures/icon_item_jpn_static/icon_item_jpn_static.h"
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
#else
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h" #include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
#include "assets/textures/icon_item_ger_static/icon_item_ger_static.h" #include "assets/textures/icon_item_ger_static/icon_item_ger_static.h"
#include "assets/textures/icon_item_fra_static/icon_item_fra_static.h" #include "assets/textures/icon_item_fra_static/icon_item_fra_static.h"
#endif
#include "assets/textures/icon_item_field_static/icon_item_field_static.h" #include "assets/textures/icon_item_field_static/icon_item_field_static.h"
#include "assets/textures/icon_item_dungeon_static/icon_item_dungeon_static.h" #include "assets/textures/icon_item_dungeon_static/icon_item_dungeon_static.h"
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h" #include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
@ -393,11 +398,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
gWorldMapAreaBox3Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex,
gWorldMapAreaBox8Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox8Tex, gWorldMapAreaBox3Tex,
}; };
static void* currentPosTitleTexs[] = { static void* currentPosTitleTexs[] = LANGUAGE_ARRAY(gPauseCurrentPositionJPNTex, gPauseCurrentPositionENGTex,
gPauseCurrentPositionENGTex, gPauseCurrentPositionGERTex, gPauseCurrentPositionFRATex);
gPauseCurrentPositionGERTex,
gPauseCurrentPositionFRATex,
};
static u16 D_8082A6D4 = 0; static u16 D_8082A6D4 = 0;
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
s16 i; s16 i;

View file

@ -1,12 +1,46 @@
#include "z_kaleido_scope.h" #include "z_kaleido_scope.h"
#include "assets/textures/icon_item_static/icon_item_static.h" #include "assets/textures/icon_item_static/icon_item_static.h"
#include "assets/textures/icon_item_24_static/icon_item_24_static.h" #include "assets/textures/icon_item_24_static/icon_item_24_static.h"
#if OOT_NTSC
#include "assets/textures/icon_item_jpn_static/icon_item_jpn_static.h"
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
#else
#include "assets/textures/icon_item_nes_static/icon_item_nes_static.h" #include "assets/textures/icon_item_nes_static/icon_item_nes_static.h"
#include "assets/textures/icon_item_ger_static/icon_item_ger_static.h" #include "assets/textures/icon_item_ger_static/icon_item_ger_static.h"
#include "assets/textures/icon_item_fra_static/icon_item_fra_static.h" #include "assets/textures/icon_item_fra_static/icon_item_fra_static.h"
#endif
#include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h" #include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h"
#include "terminal.h" #include "terminal.h"
#if OOT_NTSC
static void* sEquipmentJPNTexs[] = {
gPauseEquipment00Tex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
gPauseEquipment10JPNTex, gPauseEquipment11Tex, gPauseEquipment12Tex, gPauseEquipment13Tex, gPauseEquipment14Tex,
gPauseEquipment20Tex, gPauseEquipment21Tex, gPauseEquipment22Tex, gPauseEquipment23Tex, gPauseEquipment24Tex,
};
static void* sSelectItemJPNTexs[] = {
gPauseSelectItem00JPNTex, gPauseSelectItem01Tex, gPauseSelectItem02Tex, gPauseSelectItem03Tex,
gPauseSelectItem04Tex, gPauseSelectItem10JPNTex, gPauseSelectItem11Tex, gPauseSelectItem12Tex,
gPauseSelectItem13Tex, gPauseSelectItem14Tex, gPauseSelectItem20JPNTex, gPauseSelectItem21Tex,
gPauseSelectItem22Tex, gPauseSelectItem23Tex, gPauseSelectItem24Tex,
};
static void* sMapJPNTexs[] = {
gPauseMap00Tex, gPauseMap01Tex, gPauseMap02Tex, gPauseMap03Tex, gPauseMap04Tex,
gPauseMap10JPNTex, gPauseMap11Tex, gPauseMap12Tex, gPauseMap13Tex, gPauseMap14Tex,
gPauseMap20Tex, gPauseMap21Tex, gPauseMap22Tex, gPauseMap23Tex, gPauseMap24Tex,
};
static void* sQuestStatusJPNTexs[] = {
gPauseQuestStatus00JPNTex, gPauseQuestStatus01Tex, gPauseQuestStatus02Tex, gPauseQuestStatus03Tex,
gPauseQuestStatus04Tex, gPauseQuestStatus10JPNTex, gPauseQuestStatus11Tex, gPauseQuestStatus12Tex,
gPauseQuestStatus13Tex, gPauseQuestStatus14Tex, gPauseQuestStatus20JPNTex, gPauseQuestStatus21Tex,
gPauseQuestStatus22Tex, gPauseQuestStatus23Tex, gPauseQuestStatus24Tex,
};
static void* sSaveJPNTexs[] = {
gPauseSave00Tex, gPauseSave01Tex, gPauseSave02Tex, gPauseSave03Tex, gPauseSave04Tex,
gPauseSave10JPNTex, gPauseSave11Tex, gPauseSave12Tex, gPauseSave13Tex, gPauseSave14Tex,
gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
};
#else
static void* sEquipmentFRATexs[] = { static void* sEquipmentFRATexs[] = {
gPauseEquipment00FRATex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex, gPauseEquipment00FRATex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
gPauseEquipment10FRATex, gPauseEquipment11Tex, gPauseEquipment12Tex, gPauseEquipment13Tex, gPauseEquipment14Tex, gPauseEquipment10FRATex, gPauseEquipment11Tex, gPauseEquipment12Tex, gPauseEquipment13Tex, gPauseEquipment14Tex,
@ -62,6 +96,7 @@ static void* sSaveGERTexs[] = {
gPauseSave10GERTex, gPauseSave11Tex, gPauseSave12Tex, gPauseSave13Tex, gPauseSave14Tex, gPauseSave10GERTex, gPauseSave11Tex, gPauseSave12Tex, gPauseSave13Tex, gPauseSave14Tex,
gPauseSave20GERTex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex, gPauseSave20GERTex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
}; };
#endif
static void* sEquipmentENGTexs[] = { static void* sEquipmentENGTexs[] = {
gPauseEquipment00Tex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex, gPauseEquipment00Tex, gPauseEquipment01Tex, gPauseEquipment02Tex, gPauseEquipment03Tex, gPauseEquipment04Tex,
@ -97,35 +132,18 @@ static void* sGameOverTexs[] = {
gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex, gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex,
}; };
static void* sEquipmentTexs[] = { static void* sEquipmentTexs[] =
sEquipmentENGTexs, LANGUAGE_ARRAY(sEquipmentJPNTexs, sEquipmentENGTexs, sEquipmentGERTexs, sEquipmentFRATexs);
sEquipmentGERTexs,
sEquipmentFRATexs,
};
static void* sSelectItemTexs[] = { static void* sSelectItemTexs[] =
sSelectItemENGTexs, LANGUAGE_ARRAY(sSelectItemJPNTexs, sSelectItemENGTexs, sSelectItemGERTexs, sSelectItemFRATexs);
sSelectItemGERTexs,
sSelectItemFRATexs,
};
static void* sMapTexs[] = { static void* sMapTexs[] = LANGUAGE_ARRAY(sMapJPNTexs, sMapENGTexs, sMapGERTexs, sMapFRATexs);
sMapENGTexs,
sMapGERTexs,
sMapFRATexs,
};
static void* sQuestStatusTexs[] = { static void* sQuestStatusTexs[] =
sQuestStatusENGTexs, LANGUAGE_ARRAY(sQuestStatusJPNTexs, sQuestStatusENGTexs, sQuestStatusGERTexs, sQuestStatusFRATexs);
sQuestStatusGERTexs,
sQuestStatusFRATexs,
};
static void* sSaveTexs[] = { static void* sSaveTexs[] = LANGUAGE_ARRAY(sSaveJPNTexs, sSaveENGTexs, sSaveGERTexs, sSaveFRATexs);
sSaveENGTexs,
sSaveGERTexs,
sSaveFRATexs,
};
s16 D_8082AAEC[] = { s16 D_8082AAEC[] = {
32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64, 32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64,
@ -394,28 +412,24 @@ static s16 sCursorColors[][3] = {
{ 0, 255, 50 }, { 0, 255, 50 },
}; };
static void* sSavePromptTexs[] = { static void* sSavePromptTexs[] =
gPauseSavePromptENGTex, LANGUAGE_ARRAY(gPauseSavePromptJPNTex, gPauseSavePromptENGTex, gPauseSavePromptGERTex, gPauseSavePromptFRATex);
gPauseSavePromptGERTex,
gPauseSavePromptFRATex,
};
static void* sSaveConfirmationTexs[] = { static void* sSaveConfirmationTexs[] = LANGUAGE_ARRAY(gPauseSaveConfirmationJPNTex, gPauseSaveConfirmationENGTex,
gPauseSaveConfirmationENGTex, gPauseSaveConfirmationGERTex, gPauseSaveConfirmationFRATex);
gPauseSaveConfirmationGERTex,
gPauseSaveConfirmationFRATex,
};
static void* sContinuePromptTexs[] = { static void* sContinuePromptTexs[] =
gContinuePlayingENGTex, LANGUAGE_ARRAY(gContinuePlayingJPNTex, gContinuePlayingENGTex, gContinuePlayingGERTex, gContinuePlayingFRATex);
gContinuePlayingGERTex,
gContinuePlayingFRATex,
};
static void* sPromptChoiceTexs[][2] = { static void* sPromptChoiceTexs[][2] = {
#if OOT_NTSC
{ gPauseYesJPNTex, gPauseNoJPNTex },
{ gPauseYesENGTex, gPauseNoENGTex },
#else
{ gPauseYesENGTex, gPauseNoENGTex }, { gPauseYesENGTex, gPauseNoENGTex },
{ gPauseYesGERTex, gPauseNoGERTex }, { gPauseYesGERTex, gPauseNoGERTex },
{ gPauseYesFRATex, gPauseNoFRATex }, { gPauseYesFRATex, gPauseNoFRATex },
#endif
}; };
static u8 D_808321A8[5]; static u8 D_808321A8[5];
@ -1094,32 +1108,29 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
} }
void KaleidoScope_DrawInfoPanel(PlayState* play) { void KaleidoScope_DrawInfoPanel(PlayState* play) {
static void* D_8082AD54[3] = { static void* D_8082AD54[] =
gPauseToEquipENGTex, LANGUAGE_ARRAY(gPauseToEquipJPNTex, gPauseToEquipENGTex, gPauseToEquipGERTex, gPauseToEquipFRATex);
gPauseToEquipGERTex, static void* D_8082AD60[] =
gPauseToEquipFRATex, LANGUAGE_ARRAY(gPauseToDecideJPNTex, gPauseToDecideENGTex, gPauseToDecideGERTex, gPauseToDecideFRATex);
static void* D_8082AD6C[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex,
gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex);
static void* D_8082AD78[][LANGUAGE_MAX] = {
LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex,
gPauseToEquipmentFRATex),
LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
gPauseToSelectItemFRATex),
LANGUAGE_ARRAY(gPauseToMapJPNTex, gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex),
LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
gPauseToQuestStatusFRATex),
}; };
static void* D_8082AD60[3] = { static void* D_8082ADA8[][LANGUAGE_MAX] = {
gPauseToDecideENGTex, LANGUAGE_ARRAY(gPauseToMapJPNTex, gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex),
gPauseToDecideGERTex, LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
gPauseToDecideFRATex, gPauseToQuestStatusFRATex),
}; LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex,
static void* D_8082AD6C[3] = { gPauseToEquipmentFRATex),
gPauseToPlayMelodyENGTex, LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
gPauseToPlayMelodyGERTex, gPauseToSelectItemFRATex),
gPauseToPlayMelodyFRATex,
};
static void* D_8082AD78[][3] = {
{ gPauseToEquipmentENGTex, gPauseToEquipmentGERTex, gPauseToEquipmentFRATex },
{ gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex },
{ gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex },
{ gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex, gPauseToQuestStatusFRATex },
};
static void* D_8082ADA8[][3] = {
{ gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex },
{ gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex, gPauseToQuestStatusFRATex },
{ gPauseToEquipmentENGTex, gPauseToEquipmentGERTex, gPauseToEquipmentFRATex },
{ gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex },
}; };
static u16 D_8082ADD8[3] = { 56, 88, 80 }; static u16 D_8082ADD8[3] = { 56, 88, 80 };
static u16 D_8082ADE0[3] = { 64, 88, 72 }; static u16 D_8082ADE0[3] = { 64, 88, 72 };
@ -1487,10 +1498,12 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language); pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language);
#if OOT_PAL
if (gSaveContext.language == LANGUAGE_GER) { if (gSaveContext.language == LANGUAGE_GER) {
pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
pauseCtx->infoPanelVtx[16].v.ob[0] - 99; pauseCtx->infoPanelVtx[16].v.ob[0] - 99;
} }
#endif
pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE8[gSaveContext.language]; pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE8[gSaveContext.language];
@ -1554,12 +1567,15 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { if (pauseCtx->namedItem != PAUSE_ITEM_NONE) {
if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) { if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) {
if (gSaveContext.language) { if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
sp2A += 12; sp2A += 12;
} }
#if OOT_PAL
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == LANGUAGE_FRA) {
sp2A += 12; sp2A += 12;
} }
#endif
DMA_REQUEST_SYNC(pauseCtx->nameSegment, DMA_REQUEST_SYNC(pauseCtx->nameSegment,
(uintptr_t)_map_name_staticSegmentRomStart + (sp2A * MAP_NAME_TEX1_SIZE), (uintptr_t)_map_name_staticSegmentRomStart + (sp2A * MAP_NAME_TEX1_SIZE),
@ -1567,12 +1583,15 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
} else { } else {
PRINTF("zoom_name=%d\n", pauseCtx->namedItem); PRINTF("zoom_name=%d\n", pauseCtx->namedItem);
if (gSaveContext.language) { // != LANGUAGE_ENG if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
sp2A += 123; sp2A += 123;
} }
#if OOT_PAL
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == LANGUAGE_FRA) {
sp2A += 123; sp2A += 123;
} }
#endif
PRINTF("J_N=%d point=%d\n", gSaveContext.language, sp2A); PRINTF("J_N=%d point=%d\n", gSaveContext.language, sp2A);
@ -2821,6 +2840,17 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2); pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart;
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart,
size);
} else {
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart,
size);
}
#else
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart; size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
PRINTF("icon_item_dungeon dungeon-size=%x\n", size); PRINTF("icon_item_dungeon dungeon-size=%x\n", size);
@ -2837,6 +2867,7 @@ void KaleidoScope_Update(PlayState* play) {
DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size, DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size,
"../z_kaleido_scope_PAL.c", 3753); "../z_kaleido_scope_PAL.c", 3753);
} }
#endif
pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size); pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size);
@ -2846,6 +2877,21 @@ void KaleidoScope_Update(PlayState* play) {
PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800);
if (((void)0, gSaveContext.worldMapArea) < 22) { if (((void)0, gSaveContext.worldMapArea) < 22) {
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
(uintptr_t)_map_name_staticSegmentRomStart +
(((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) +
24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_JPN * MAP_NAME_TEX2_SIZE,
MAP_NAME_TEX2_SIZE);
} else {
DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
(uintptr_t)_map_name_staticSegmentRomStart +
(((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) +
24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_ENG * MAP_NAME_TEX2_SIZE,
MAP_NAME_TEX2_SIZE);
}
#else
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE),
(uintptr_t)_map_name_staticSegmentRomStart + (uintptr_t)_map_name_staticSegmentRomStart +
@ -2865,6 +2911,7 @@ void KaleidoScope_Update(PlayState* play) {
36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_FRA * MAP_NAME_TEX2_SIZE, 36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_FRA * MAP_NAME_TEX2_SIZE,
MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3784); MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3784);
} }
#endif
} }
sPreRenderCvg = (void*)ALIGN16((uintptr_t)pauseCtx->nameSegment + sPreRenderCvg = (void*)ALIGN16((uintptr_t)pauseCtx->nameSegment +
@ -3399,6 +3446,17 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2); pauseCtx->iconItemLangSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemAltSegment + size2);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN) {
size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart;
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart,
size);
} else {
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
DmaMgr_RequestSync(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart,
size);
}
#else
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart; size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart;
PRINTF("icon_item_dungeon dungeon-size=%x\n", size); PRINTF("icon_item_dungeon dungeon-size=%x\n", size);
@ -3415,6 +3473,7 @@ void KaleidoScope_Update(PlayState* play) {
DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size, DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_fra_staticSegmentRomStart, size,
"../z_kaleido_scope_PAL.c", 4393); "../z_kaleido_scope_PAL.c", 4393);
} }
#endif
D_8082AB8C = 255; D_8082AB8C = 255;
D_8082AB90 = 130; D_8082AB90 = 130;

View file

@ -91,6 +91,8 @@ def main():
context.addBannedSymbolRange(0x0000F000, 0x00010100) context.addBannedSymbolRange(0x0000F000, 0x00010100)
context.addBannedSymbolRange(0x10000000, 0x80000300) context.addBannedSymbolRange(0x10000000, 0x80000300)
context.addBannedSymbolRange(0xA0000000, 0xFFFFFFFF) context.addBannedSymbolRange(0xA0000000, 0xFFFFFFFF)
context.addBannedSymbol(0x80100000) # z_kaleido_equipment.c
context.addBannedSymbol(0x80112200) # z_message.c
spimdisasm.mips.InstructionConfig.parseArgs(args) spimdisasm.mips.InstructionConfig.parseArgs(args)
spimdisasm.common.GlobalConfig.parseArgs(args) spimdisasm.common.GlobalConfig.parseArgs(args)

View file

@ -0,0 +1,7 @@
name,vrom_start,vrom_end,rom_start,rom_end,vram_start,overlay_dir
code,A86000,B8AA60,A62500,AFDAA0,80010EE0,
ovl_file_choose,B8E090,B9DFF0,AFFCF0,B08BF0,80803630,gamestates
ovl_kaleido_scope,B9DFF0,BBA770,B08BF0,B17940,808135B0,misc
ovl_player_actor,BBA770,BE0E80,B17940,B30C90,8082FDA0,actors
ovl_En_Mag,DFA080,DFC9B0,C8E1E0,C8FEA0,80A884E0,actors
ovl_Fishing,EB6810,ECA2E0,D061D0,D13750,80B44FE0,actors
1 name vrom_start vrom_end rom_start rom_end vram_start overlay_dir
2 code A86000 B8AA60 A62500 AFDAA0 80010EE0
3 ovl_file_choose B8E090 B9DFF0 AFFCF0 B08BF0 80803630 gamestates
4 ovl_kaleido_scope B9DFF0 BBA770 B08BF0 B17940 808135B0 misc
5 ovl_player_actor BBA770 BE0E80 B17940 B30C90 8082FDA0 actors
6 ovl_En_Mag DFA080 DFC9B0 C8E1E0 C8FEA0 80A884E0 actors
7 ovl_Fishing EB6810 ECA2E0 D061D0 D13750 80B44FE0 actors

View file

@ -0,0 +1,467 @@
offset,vram,.text
0,80010EE0,src/code/z_en_a_keep
AA0,80011980,src/code/z_en_item00
2EA0,80013D80,src/code/z_eff_blure
62D0,800171B0,src/code/z_eff_shield_particle
7930,80018810,src/code/z_eff_spark
8FE0,80019EC0,src/code/z_eff_ss_dead
9790,8001A670,src/code/z_effect
9F10,8001ADF0,src/code/z_effect_soft_sprite
A9B0,8001B890,src/code/z_effect_soft_sprite_old_init
D4D0,8001E3B0,src/code/flg_set
D8F0,8001E7D0,src/code/z_DLF
DB40,8001EA20,src/code/z_actor
1A0E0,8002AFC0,src/code/z_actor_dlftbls
1A230,8002B110,src/code/z_bgcheck
23E10,80034CF0,src/code/code_800430A0
24130,80035010,src/code/code_80043480
244C0,800353A0,src/code/z_camera
38AF0,800499D0,src/code/z_collision_btltbls
38B50,80049A30,src/code/z_collision_check
407D0,800516B0,src/code/z_common_data
40860,80051740,src/code/z_debug
40B70,80051A50,src/code/z_debug_display
41030,80051F10,src/code/z_demo
45D10,80056BF0,src/code/code_80069420
45DA0,80056C80,src/code/z_draw
47CA0,80058B80,src/code/z_sfx_source
47E60,80058D40,src/code/z_elf_message
48540,80059420,src/code/z_face_reaction
48590,80059470,src/code/code_8006C3A0
48710,800595F0,src/code/z_fcurve_data
48950,80059830,src/code/z_fcurve_data_skelanime
49160,8005A040,src/code/z_horse
49E40,8005AD20,src/code/z_jpeg
4A600,8005B4E0,src/code/z_kaleido_setup
4A9D0,8005B8B0,src/code/z_kanfont
4ABE0,8005BAC0,src/code/z_kankyo
523F0,800632D0,src/code/z_lib
53590,80064470,src/code/z_lifemeter
54930,80065810,src/code/z_lights
559D0,800668B0,src/code/z_malloc
55BB0,80066A90,src/code/z_map_mark
561B0,80067090,src/code/z_prenmi_buff
56270,80067150,src/code/z_nulltask
562F0,800671D0,src/code/z_olib
569E0,800678C0,src/code/z_onepointdemo
5A980,8006B860,src/code/z_map_exp
5C520,8006D400,src/code/z_parameter
67BF0,80078AD0,src/code/z_path
67DC0,80078CA0,src/code/z_frame_advance
67E70,80078D50,src/code/z_player_lib
6B8E0,8007C7C0,src/code/z_prenmi
6BA80,8007C960,src/code/z_quake
6C8F0,8007D7D0,src/code/z_rcp
6E1B0,8007F090,src/code/z_room
6F9A0,80080880,src/code/z_sample
6FDA0,80080C80,src/code/code_80097A00
6FF60,80080E40,src/code/z_scene
71410,800822F0,src/code/z_scene_table
77C10,80088AF0,src/code/z_skelanime
7C600,8008D4E0,src/code/z_skin
7D1A0,8008E080,src/code/z_skin_awb
7DAB0,8008E990,src/code/z_skin_matrix
7EE50,8008FD30,src/code/z_sram
80190,80091070,src/code/z_ss_sram
80360,80091240,src/code/z_rumble
805E0,800914C0,src/code/z_view
81CE0,80092BC0,src/code/z_vimode
82850,80093730,src/code/z_viscvg
829F0,800938D0,src/code/z_vismono
83210,800940F0,src/code/z_viszbuf
834A0,80094380,src/code/z_vr_box
85D70,80096C50,src/code/z_vr_box_draw
86450,80097330,src/code/z_player_call
865C0,800974A0,src/code/z_fbdemo
86FE0,80097EC0,src/code/z_fbdemo_triforce
875A0,80098480,src/code/z_fbdemo_wipe1
87A10,800988F0,src/code/z_fbdemo_circle
880D0,80098FB0,src/code/z_fbdemo_fade
88430,80099310,src/code/shrink_window
885A0,80099480,src/code/code_800BB0A0
88A70,80099950,src/code/z_kaleido_manager
88CA0,80099B80,src/code/z_kaleido_scope_call
88F80,80099E60,src/code/z_play
8C9E0,8009D8C0,src/code/PreRender
8EAD0,8009F9B0,src/code/TwoHeadGfxArena
8ECE0,8009FBC0,src/code/TwoHeadArena
8EEA0,8009FD80,src/code/audio_stop_all_sfx
8EEF0,8009FDD0,src/code/audio_thread_manager
8F300,800A01E0,src/code/title_setup
8F370,800A0250,src/code/game
8FAF0,800A09D0,src/code/gamealloc
8FC30,800A0B10,src/code/graph
905D0,800A14B0,src/code/gfxalloc
90630,800A1510,src/code/listalloc
90780,800A1660,src/code/main
90AE0,800A19C0,src/code/padmgr
915E0,800A24C0,src/code/sched
92260,800A3140,src/code/speed_meter
92CA0,800A3B80,src/code/sys_cfb
92DC0,800A3CA0,src/code/sys_math
93060,800A3F40,src/code/sys_math3d
98E30,800A9D10,src/code/sys_math_atan
99060,800A9F40,src/code/sys_matrix
9B460,800AC340,src/code/sys_ucode
9B4B0,800AC390,src/code/sys_rumble
9B810,800AC6F0,src/code/code_800D31A0
9B840,800AC720,src/code/irqmgr
9BE60,800ACD40,src/code/fault
9E6B0,800AF590,src/code/fault_drawer
9F130,800B0010,src/code/kanread
9FC20,800B0B00,src/audio/lib/synthesis
A2D80,800B3C60,src/audio/lib/heap
A6150,800B7030,src/audio/lib/load
A9F40,800BAE20,src/audio/lib/thread
AB7A0,800BC680,src/audio/lib/dcache
AB820,800BC700,src/audio/lib/aisetnextbuf
AB8A0,800BC780,src/audio/lib/playback
AD820,800BE700,src/audio/lib/effects
AE2A0,800BF180,src/audio/lib/seqplayer
B18C0,800C27A0,src/audio/general
B7A50,800C8930,src/audio/sfx
B98B0,800CA790,src/audio/sequence
BB4D0,800CC3B0,src/code/gfxprint
BC240,800CD120,src/code/rcp_utils
BC2A0,800CD180,src/code/loadfragment2
BC300,800CD1E0,src/code/relocation
BC540,800CD420,src/code/load
BC610,800CD4F0,src/code/code_800FC620
BC950,800CD830,src/code/padutils
BCB40,800CDA20,src/code/padsetup
BCC80,800CDB60,src/code/fp_math
BD190,800CE070,src/code/fp
BD2F0,800CE1D0,src/code/system_malloc
BD4C0,800CE3A0,src/code/rand
BD680,800CE560,src/code/__osMalloc
BE430,800CF310,src/libultra/libc/sprintf
BE500,800CF3E0,src/code/printutils
BE560,800CF440,src/code/sleep
BE700,800CF5E0,src/code/jpegutils
BEC10,800CFAF0,src/code/jpegdecoder
BF200,800D00E0,src/libultra/mgu/scale
BF2B0,800D0190,src/libultra/gu/sinf
BF470,800D0350,src/libultra/gu/sins
BF4E0,800D03C0,src/libultra/io/sptask
BF7A0,800D0680,src/libultra/io/motor
BFB70,800D0A50,src/libultra/io/siacs
BFC30,800D0B10,src/libultra/io/controller
BFF10,800D0DF0,src/libultra/io/contreaddata
C00F0,800D0FD0,src/libultra/gu/perspective
C0380,800D1260,src/libultra/io/sprawdma
C0410,800D12F0,src/libultra/io/sirawdma
C04C0,800D13A0,src/libultra/io/sptaskyield
C04E0,800D13C0,src/libultra/mgu/mtxidentf
C0530,800D1410,src/libultra/gu/lookat
C0850,800D1730,src/libultra/os/stoptimer
C0940,800D1820,src/libultra/gu/sqrtf
C0950,800D1830,src/libultra/os/afterprenmi
C0970,800D1850,src/libultra/io/contquery
C0A10,800D18F0,src/libultra/gu/lookathil
C1290,800D2170,src/libultra/libc/xprintf
C1F70,800D2E50,src/libultra/libc/string
C2010,800D2EF0,src/libultra/io/sp
C2040,800D2F20,src/libultra/mgu/mtxident
C2090,800D2F70,src/libultra/gu/position
C22A0,800D3180,src/libultra/io/sptaskyielded
C2300,800D31E0,src/libultra/gu/rotate
C24D0,800D33B0,src/libultra/io/aisetfreq
C2620,800D3500,src/libultra/os/getactivequeue
C2640,800D3520,src/libultra/mgu/normalize
C26A0,800D3580,src/libultra/io/dpgetstat
C26B0,800D3590,src/libultra/io/dpsetstat
C26C0,800D35A0,src/libultra/gu/ortho
C2880,800D3760,src/libultra/gu/cosf
C29F0,800D38D0,src/libultra/gu/coss
C2A20,800D3900,src/libultra/io/visetevent
C2A80,800D3960,src/libultra/gu/us2dex
C2C00,800D3AE0,src/libultra/io/pfsselectbank
C2C80,800D3B60,src/libultra/io/contsetch
C2CE0,800D3BC0,src/libultra/io/aigetlen
C2D00,800D3BE0,src/libultra/mgu/translate
C2DD0,800D3CB0,src/libultra/io/contramwrite
C3020,800D3F00,src/libultra/io/pfsgetstatus
C3250,800D4130,src/libultra/io/contpfs
C3DD0,800D4CB0,src/libultra/io/contramread
C4000,800D4EE0,src/libultra/io/crc
C4170,800D5050,src/libultra/io/pfsisplug
C4460,800D5340,src/libultra/os/settimer
C45F0,800D54D0,src/libultra/libc/xldtob
C5100,800D5FE0,src/libultra/libc/ldiv
C5290,800D6170,src/libultra/libc/xlitob
C5530,800D6410,src/libultra/io/spgetstat
C5540,800D6420,src/libultra/io/spsetstat
C5550,800D6430,src/libultra/os/writebackdcacheall
C5580,800D6460,src/libultra/os/getcurrfaultedthread
C55A0,800D6480,src/libultra/mgu/mtxf2l
C5610,800D64F0,src/libultra/libc/llcvt
C5820,800D6700,src/libultra/io/vigetcurrframebuf
C5860,800D6740,src/libultra/io/spsetpc
C5890,800D6770,src/libultra/libc/sqrt
C58A0,800D6780,src/libultra/libc/absf
C58B0,800D6790,src/code/fmodf
C5900,800D67E0,src/code/__osMemset
C5930,800D6810,src/code/__osMemmove
C59C0,800D68A0,src/code/z_message
D1060,800E1F40,src/code/z_game_over
D15A0,800E2480,src/code/z_construct
D2960,800E3840,data/rsp.text
offset,vram,.data
D5CC0,800E6BA0,src/code/z_en_a_keep
D5D60,800E6C40,src/code/z_en_item00
D6000,800E6EE0,src/code/z_eff_blure
D60B0,800E6F90,src/code/z_eff_shield_particle
D6100,800E6FE0,src/code/z_effect
D6150,800E7030,src/code/z_effect_soft_sprite
D6160,800E7040,src/code/z_effect_soft_sprite_old_init
D6250,800E7130,src/code/z_effect_soft_sprite_dlftbls
D6660,800E7540,src/code/flg_set
D6820,800E7700,src/code/z_actor
D6B40,800E7A20,src/code/z_actor_dlftbls
DA630,800EB510,src/code/z_bgcheck
DA780,800EB660,src/code/z_camera
DDCD0,800EEBB0,src/code/z_collision_btltbls
DDFB0,800EEE90,src/code/z_collision_check
DE260,800EF140,src/code/z_debug
DE290,800EF170,src/code/z_debug_display
DE2E0,800EF1C0,src/code/z_demo
DE440,800EF320,src/code/z_draw
DF4C0,800F03A0,src/code/z_elf_message
DF510,800F03F0,src/code/z_face_reaction
DF950,800F0830,src/code/z_game_dlftbls
DFA70,800F0950,src/code/z_horse
DFB80,800F0A60,src/code/z_jpeg
DFBC0,800F0AA0,src/code/z_kaleido_setup
DFC10,800F0AF0,src/code/z_kankyo
E0000,800F0EE0,src/code/z_lib
E0030,800F0F10,src/code/z_lifemeter
E0150,800F1030,src/code/z_lights
E0160,800F1040,src/code/z_map_mark
E0220,800F1100,src/code/z_onepointdemo
E3B40,800F4A20,src/code/z_map_exp
E3B60,800F4A40,src/code/z_map_data
E5960,800F6840,src/code/z_parameter
E5C60,800F6B40,src/code/z_player_lib
E6340,800F7220,src/code/z_quake
E6370,800F7250,src/code/z_rcp
E7190,800F8070,src/code/z_room
E7210,800F80F0,src/code/code_80097A00
E7590,800F8470,src/code/z_scene
E7610,800F84F0,src/code/object_table
E82B0,800F9190,src/code/z_scene_table
EA4C0,800FB3A0,src/code/z_skelanime
EA4E0,800FB3C0,src/code/z_skin_matrix
EA520,800FB400,src/code/z_sram
EA6D0,800FB5B0,src/code/z_ss_sram
EA780,800FB660,data/unk_8012ABC0.data
EA7B0,800FB690,src/code/z_view
EA7C0,800FB6A0,src/code/z_viscvg
EA850,800FB730,src/code/z_vr_box
EAB50,800FBA30,src/code/z_player_call
EAB70,800FBA50,src/code/z_fbdemo
EABF0,800FBAD0,src/code/z_fbdemo_triforce
EACC0,800FBBA0,src/code/z_fbdemo_wipe1
EB760,800FC640,src/code/z_fbdemo_circle
ECA60,800FD940,src/code/z_fbdemo_fade
ECA90,800FD970,src/code/shrink_window
ECAA0,800FD980,src/code/z_kaleido_manager
ECAF0,800FD9D0,src/code/z_play
ECB00,800FD9E0,src/code/audio_stop_all_sfx
ECB10,800FD9F0,src/code/graph
ECB20,800FDA00,src/code/main
ECB30,800FDA10,src/code/padmgr
ECB40,800FDA20,src/code/speed_meter
ECB70,800FDA50,src/code/sys_math
ECBB0,800FDA90,src/code/sys_math_atan
ED3C0,800FE2A0,src/code/sys_matrix
ED440,800FE320,src/code/sys_ucode
ED450,800FE330,src/code/sys_rumble
ED460,800FE340,src/code/irqmgr
ED480,800FE360,src/code/fault
ED4E0,800FE3C0,src/code/fault_drawer
ED520,800FE400,src/audio/lib/data
EF930,80100810,src/audio/lib/synthesis
EF960,80100840,src/audio/lib/load
EF970,80100850,src/audio/lib/thread
EF990,80100870,src/audio/lib/aisetnextbuf
EF9A0,80100880,src/audio/lib/effects
EF9B0,80100890,src/audio/lib/seqplayer
EFA00,801008E0,src/audio/general
F1120,80102000,src/audio/sfx_params
F24F0,801033D0,src/audio/data
F2560,80103440,src/audio/session_config
F2D00,80103BE0,src/code/logseverity
F2D10,80103BF0,src/code/gfxprint
F35C0,801044A0,src/code/code_800FC620
F35E0,801044C0,src/code/fp
F35F0,801044D0,src/code/rand
F3600,801044E0,src/code/__osMalloc
F3610,801044F0,src/libultra/gu/sins
F3E10,80104CF0,src/libultra/io/siacs
F3E20,80104D00,src/libultra/io/controller
F3E30,80104D10,src/libultra/libc/xprintf
F3E80,80104D60,src/libultra/gu/position
F3E90,80104D70,src/libultra/gu/rotate
F3EA0,80104D80,src/libultra/io/vimodefpallan1
F3EF0,80104DD0,src/libultra/io/contpfs
F3F00,80104DE0,src/libultra/io/contramread
F3F10,80104DF0,src/libultra/libc/xlitob
offset,vram,.rodata
F3F40,80104E20,src/code/z_en_a_keep
F3F90,80104E70,src/code/z_en_item00
F4200,801050E0,src/code/z_eff_blure
F4230,80105110,src/code/z_eff_shield_particle
F4240,80105120,src/code/z_eff_spark
F4250,80105130,src/code/z_eff_ss_dead
F4260,80105140,src/code/z_effect_soft_sprite_old_init
F4280,80105160,src/code/flg_set
F4610,801054F0,src/code/z_actor
F4BC0,80105AA0,src/code/z_actor_dlftbls
F4C10,80105AF0,src/code/z_bgcheck
F4CB0,80105B90,src/code/code_80043480
F4CC0,80105BA0,src/code/z_camera
F5440,80106320,src/code/z_collision_check
F5490,80106370,src/code/z_debug
F54A0,80106380,src/code/z_demo
F5980,80106860,src/code/z_draw
F5990,80106870,src/code/z_elf_message
F5AB0,80106990,src/code/z_fcurve_data
F5AC0,801069A0,src/code/z_fcurve_data_skelanime
F5AD0,801069B0,src/code/z_horse
F5AE0,801069C0,src/code/z_jpeg
F5B70,80106A50,src/code/z_kankyo
F5C20,80106B00,src/code/z_lib
F5C30,80106B10,src/code/z_lifemeter
F5C50,80106B30,src/code/z_lights
F5C60,80106B40,src/code/z_map_mark
F5CC0,80106BA0,src/code/z_olib
F5CE0,80106BC0,src/code/z_onepointdemo
F65A0,80107480,src/code/z_map_exp
F68C0,801077A0,src/code/z_parameter
F6AD0,801079B0,src/code/z_path
F6AE0,801079C0,src/code/z_player_lib
F6B40,80107A20,src/code/z_quake
F6BD0,80107AB0,src/code/z_room
F6C10,80107AF0,src/code/z_sample
F6C20,80107B00,src/code/z_scene_table
F6C60,80107B40,src/code/z_skelanime
F6C80,80107B60,src/code/z_skin
F6C90,80107B70,src/code/z_skin_matrix
F6CA0,80107B80,src/code/z_sram
F6D10,80107BF0,src/code/z_rumble
F6D20,80107C00,src/code/z_view
F6D30,80107C10,src/code/z_vr_box
F6E20,80107D00,src/code/z_fbdemo_triforce
F6E30,80107D10,src/code/z_fbdemo_wipe1
F6E40,80107D20,src/code/z_fbdemo_circle
F6E50,80107D30,src/code/code_800BB0A0
F6E60,80107D40,src/code/z_kaleido_manager
F6E80,80107D60,src/code/z_play
F6F40,80107E20,src/code/game
F6F60,80107E40,src/code/graph
F6FB0,80107E90,src/code/main
F6FE0,80107EC0,src/code/padmgr
F6FF0,80107ED0,src/code/sys_cfb
F7000,80107EE0,src/code/sys_math
F7010,80107EF0,src/code/sys_math3d
F70A0,80107F80,src/code/sys_math_atan
F70B0,80107F90,src/code/sys_matrix
F70E0,80107FC0,src/code/irqmgr
F7100,80107FE0,src/code/fault
F7B10,801089F0,src/code/fault_drawer
F7F40,80108E20,src/audio/lib/synthesis
F7F60,80108E40,src/audio/lib/heap
F7F90,80108E70,src/audio/lib/load
F8000,80108EE0,src/audio/lib/thread
F8130,80109010,src/audio/lib/playback
F8160,80109040,src/audio/lib/effects
F8190,80109070,src/audio/lib/seqplayer
F87D0,801096B0,src/audio/general
F8960,80109840,src/audio/sfx
F8980,80109860,src/audio/sequence
F8A00,801098E0,src/audio/session_config
F8A10,801098F0,src/code/gfxprint
F8A30,80109910,src/code/fp_math
F8A80,80109960,src/code/__osMalloc
F8D40,80109C20,src/libultra/gu/sinf
F8D90,80109C70,src/libultra/gu/perspective
F8DA0,80109C80,src/libultra/gu/lookathil
F8DB0,80109C90,src/libultra/libc/xprintf
F8EB0,80109D90,src/libultra/gu/cosf
F8F00,80109DE0,src/libultra/gu/libm_vals
F8F10,80109DF0,src/libultra/libc/xldtob
F8F70,80109E50,src/libultra/libc/llcvt
offset,vram,.data
F8F80,80109E60,src/code/z_message
101910,801127F0,src/code/z_game_over
offset,vram,.rodata
101920,80112800,src/code/z_message
101D40,80112C20,src/code/z_game_over
101DA0,80112C80,data/audio_tables.rodata
102940,80113820,data/rsp.rodata
offset,vram,.bss
104A60,80115940,src/code/z_en_item00
104A70,80115950,src/code/z_effect
108860,80119740,src/code/flg_set
108870,80119750,src/code/z_actor
1088F0,801197D0,src/code/z_actor_dlftbls
108900,801197E0,src/code/z_bgcheck
108A20,80119900,src/code/z_camera
108B00,801199E0,src/code/z_collision_check
10A260,8011B140,src/code/z_common_data
10B690,8011C570,src/code/z_debug
10B8B0,8011C790,src/code/z_debug_display
10B8C0,8011C7A0,src/code/z_demo
10B8F0,8011C7D0,src/code/z_kankyo
10B9C0,8011C8A0,src/code/z_lifemeter
10B9F0,8011C8D0,src/code/z_lights
10BB80,8011CA60,src/code/z_malloc
10BBB0,8011CA90,src/code/z_map_mark
10BBC0,8011CAA0,src/code/z_map_exp
10BBD0,8011CAB0,src/code/z_parameter
10BBF0,8011CAD0,src/code/z_player_lib
10BC10,8011CAF0,src/code/z_quake
10BCA0,8011CB80,src/code/z_skelanime
10BCB0,8011CB90,src/code/z_skin
10CBC0,8011DAA0,src/code/z_rumble
10CCD0,8011DBB0,src/code/z_vr_box_draw
10CCE0,8011DBC0,src/code/z_player_call
10CCF0,8011DBD0,src/code/db_camera
10CCF0,8011DBD0,src/code/mempak
10CCF0,8011DBD0,src/code/z_kaleido_scope_call
10CD10,8011DBF0,src/code/z_play
10CE20,8011DD00,src/code/game
10CF00,8011DDE0,src/code/graph
10CF70,8011DE50,src/code/main
110E00,80121CE0,src/code/padmgr
110E10,80121CF0,src/code/sched
110E30,80121D10,src/code/speed_meter
110EA0,80121D80,src/code/sys_cfb
110EB0,80121D90,src/code/sys_math3d
1110D0,80121FB0,src/code/sys_matrix
1110E0,80121FC0,src/code/fault
111F60,80122E40,src/code/fault_drawer
111FC0,80122EA0,src/audio/lib/load
112080,80122F60,src/audio/general
112280,80123160,src/audio/sfx
114A90,80125970,src/audio/sequence
115850,80126730,src/audio/session_config
11BD60,8012CC40,src/code/gfxprint
11BD70,8012CC50,src/code/fp_math
11BD80,8012CC60,src/code/system_malloc
11BDB0,8012CC90,src/code/rand
11BDC0,8012CCA0,src/code/__osMalloc
11BDD0,8012CCB0,src/code/jpegdecoder
11BDE0,8012CCC0,src/libultra/io/sptask
11BE20,8012CD00,src/libultra/io/motor
11BF20,8012CE00,src/libultra/io/siacs
11BF40,8012CE20,src/libultra/io/controller
11BFD0,8012CEB0,src/libultra/io/contpfs
11C0D0,8012CFB0,src/libultra/io/pfsisplug
11C110,8012CFF0,src/code/z_message
11C130,8012D010,.end
1 offset vram .text
2 0 80010EE0 src/code/z_en_a_keep
3 AA0 80011980 src/code/z_en_item00
4 2EA0 80013D80 src/code/z_eff_blure
5 62D0 800171B0 src/code/z_eff_shield_particle
6 7930 80018810 src/code/z_eff_spark
7 8FE0 80019EC0 src/code/z_eff_ss_dead
8 9790 8001A670 src/code/z_effect
9 9F10 8001ADF0 src/code/z_effect_soft_sprite
10 A9B0 8001B890 src/code/z_effect_soft_sprite_old_init
11 D4D0 8001E3B0 src/code/flg_set
12 D8F0 8001E7D0 src/code/z_DLF
13 DB40 8001EA20 src/code/z_actor
14 1A0E0 8002AFC0 src/code/z_actor_dlftbls
15 1A230 8002B110 src/code/z_bgcheck
16 23E10 80034CF0 src/code/code_800430A0
17 24130 80035010 src/code/code_80043480
18 244C0 800353A0 src/code/z_camera
19 38AF0 800499D0 src/code/z_collision_btltbls
20 38B50 80049A30 src/code/z_collision_check
21 407D0 800516B0 src/code/z_common_data
22 40860 80051740 src/code/z_debug
23 40B70 80051A50 src/code/z_debug_display
24 41030 80051F10 src/code/z_demo
25 45D10 80056BF0 src/code/code_80069420
26 45DA0 80056C80 src/code/z_draw
27 47CA0 80058B80 src/code/z_sfx_source
28 47E60 80058D40 src/code/z_elf_message
29 48540 80059420 src/code/z_face_reaction
30 48590 80059470 src/code/code_8006C3A0
31 48710 800595F0 src/code/z_fcurve_data
32 48950 80059830 src/code/z_fcurve_data_skelanime
33 49160 8005A040 src/code/z_horse
34 49E40 8005AD20 src/code/z_jpeg
35 4A600 8005B4E0 src/code/z_kaleido_setup
36 4A9D0 8005B8B0 src/code/z_kanfont
37 4ABE0 8005BAC0 src/code/z_kankyo
38 523F0 800632D0 src/code/z_lib
39 53590 80064470 src/code/z_lifemeter
40 54930 80065810 src/code/z_lights
41 559D0 800668B0 src/code/z_malloc
42 55BB0 80066A90 src/code/z_map_mark
43 561B0 80067090 src/code/z_prenmi_buff
44 56270 80067150 src/code/z_nulltask
45 562F0 800671D0 src/code/z_olib
46 569E0 800678C0 src/code/z_onepointdemo
47 5A980 8006B860 src/code/z_map_exp
48 5C520 8006D400 src/code/z_parameter
49 67BF0 80078AD0 src/code/z_path
50 67DC0 80078CA0 src/code/z_frame_advance
51 67E70 80078D50 src/code/z_player_lib
52 6B8E0 8007C7C0 src/code/z_prenmi
53 6BA80 8007C960 src/code/z_quake
54 6C8F0 8007D7D0 src/code/z_rcp
55 6E1B0 8007F090 src/code/z_room
56 6F9A0 80080880 src/code/z_sample
57 6FDA0 80080C80 src/code/code_80097A00
58 6FF60 80080E40 src/code/z_scene
59 71410 800822F0 src/code/z_scene_table
60 77C10 80088AF0 src/code/z_skelanime
61 7C600 8008D4E0 src/code/z_skin
62 7D1A0 8008E080 src/code/z_skin_awb
63 7DAB0 8008E990 src/code/z_skin_matrix
64 7EE50 8008FD30 src/code/z_sram
65 80190 80091070 src/code/z_ss_sram
66 80360 80091240 src/code/z_rumble
67 805E0 800914C0 src/code/z_view
68 81CE0 80092BC0 src/code/z_vimode
69 82850 80093730 src/code/z_viscvg
70 829F0 800938D0 src/code/z_vismono
71 83210 800940F0 src/code/z_viszbuf
72 834A0 80094380 src/code/z_vr_box
73 85D70 80096C50 src/code/z_vr_box_draw
74 86450 80097330 src/code/z_player_call
75 865C0 800974A0 src/code/z_fbdemo
76 86FE0 80097EC0 src/code/z_fbdemo_triforce
77 875A0 80098480 src/code/z_fbdemo_wipe1
78 87A10 800988F0 src/code/z_fbdemo_circle
79 880D0 80098FB0 src/code/z_fbdemo_fade
80 88430 80099310 src/code/shrink_window
81 885A0 80099480 src/code/code_800BB0A0
82 88A70 80099950 src/code/z_kaleido_manager
83 88CA0 80099B80 src/code/z_kaleido_scope_call
84 88F80 80099E60 src/code/z_play
85 8C9E0 8009D8C0 src/code/PreRender
86 8EAD0 8009F9B0 src/code/TwoHeadGfxArena
87 8ECE0 8009FBC0 src/code/TwoHeadArena
88 8EEA0 8009FD80 src/code/audio_stop_all_sfx
89 8EEF0 8009FDD0 src/code/audio_thread_manager
90 8F300 800A01E0 src/code/title_setup
91 8F370 800A0250 src/code/game
92 8FAF0 800A09D0 src/code/gamealloc
93 8FC30 800A0B10 src/code/graph
94 905D0 800A14B0 src/code/gfxalloc
95 90630 800A1510 src/code/listalloc
96 90780 800A1660 src/code/main
97 90AE0 800A19C0 src/code/padmgr
98 915E0 800A24C0 src/code/sched
99 92260 800A3140 src/code/speed_meter
100 92CA0 800A3B80 src/code/sys_cfb
101 92DC0 800A3CA0 src/code/sys_math
102 93060 800A3F40 src/code/sys_math3d
103 98E30 800A9D10 src/code/sys_math_atan
104 99060 800A9F40 src/code/sys_matrix
105 9B460 800AC340 src/code/sys_ucode
106 9B4B0 800AC390 src/code/sys_rumble
107 9B810 800AC6F0 src/code/code_800D31A0
108 9B840 800AC720 src/code/irqmgr
109 9BE60 800ACD40 src/code/fault
110 9E6B0 800AF590 src/code/fault_drawer
111 9F130 800B0010 src/code/kanread
112 9FC20 800B0B00 src/audio/lib/synthesis
113 A2D80 800B3C60 src/audio/lib/heap
114 A6150 800B7030 src/audio/lib/load
115 A9F40 800BAE20 src/audio/lib/thread
116 AB7A0 800BC680 src/audio/lib/dcache
117 AB820 800BC700 src/audio/lib/aisetnextbuf
118 AB8A0 800BC780 src/audio/lib/playback
119 AD820 800BE700 src/audio/lib/effects
120 AE2A0 800BF180 src/audio/lib/seqplayer
121 B18C0 800C27A0 src/audio/general
122 B7A50 800C8930 src/audio/sfx
123 B98B0 800CA790 src/audio/sequence
124 BB4D0 800CC3B0 src/code/gfxprint
125 BC240 800CD120 src/code/rcp_utils
126 BC2A0 800CD180 src/code/loadfragment2
127 BC300 800CD1E0 src/code/relocation
128 BC540 800CD420 src/code/load
129 BC610 800CD4F0 src/code/code_800FC620
130 BC950 800CD830 src/code/padutils
131 BCB40 800CDA20 src/code/padsetup
132 BCC80 800CDB60 src/code/fp_math
133 BD190 800CE070 src/code/fp
134 BD2F0 800CE1D0 src/code/system_malloc
135 BD4C0 800CE3A0 src/code/rand
136 BD680 800CE560 src/code/__osMalloc
137 BE430 800CF310 src/libultra/libc/sprintf
138 BE500 800CF3E0 src/code/printutils
139 BE560 800CF440 src/code/sleep
140 BE700 800CF5E0 src/code/jpegutils
141 BEC10 800CFAF0 src/code/jpegdecoder
142 BF200 800D00E0 src/libultra/mgu/scale
143 BF2B0 800D0190 src/libultra/gu/sinf
144 BF470 800D0350 src/libultra/gu/sins
145 BF4E0 800D03C0 src/libultra/io/sptask
146 BF7A0 800D0680 src/libultra/io/motor
147 BFB70 800D0A50 src/libultra/io/siacs
148 BFC30 800D0B10 src/libultra/io/controller
149 BFF10 800D0DF0 src/libultra/io/contreaddata
150 C00F0 800D0FD0 src/libultra/gu/perspective
151 C0380 800D1260 src/libultra/io/sprawdma
152 C0410 800D12F0 src/libultra/io/sirawdma
153 C04C0 800D13A0 src/libultra/io/sptaskyield
154 C04E0 800D13C0 src/libultra/mgu/mtxidentf
155 C0530 800D1410 src/libultra/gu/lookat
156 C0850 800D1730 src/libultra/os/stoptimer
157 C0940 800D1820 src/libultra/gu/sqrtf
158 C0950 800D1830 src/libultra/os/afterprenmi
159 C0970 800D1850 src/libultra/io/contquery
160 C0A10 800D18F0 src/libultra/gu/lookathil
161 C1290 800D2170 src/libultra/libc/xprintf
162 C1F70 800D2E50 src/libultra/libc/string
163 C2010 800D2EF0 src/libultra/io/sp
164 C2040 800D2F20 src/libultra/mgu/mtxident
165 C2090 800D2F70 src/libultra/gu/position
166 C22A0 800D3180 src/libultra/io/sptaskyielded
167 C2300 800D31E0 src/libultra/gu/rotate
168 C24D0 800D33B0 src/libultra/io/aisetfreq
169 C2620 800D3500 src/libultra/os/getactivequeue
170 C2640 800D3520 src/libultra/mgu/normalize
171 C26A0 800D3580 src/libultra/io/dpgetstat
172 C26B0 800D3590 src/libultra/io/dpsetstat
173 C26C0 800D35A0 src/libultra/gu/ortho
174 C2880 800D3760 src/libultra/gu/cosf
175 C29F0 800D38D0 src/libultra/gu/coss
176 C2A20 800D3900 src/libultra/io/visetevent
177 C2A80 800D3960 src/libultra/gu/us2dex
178 C2C00 800D3AE0 src/libultra/io/pfsselectbank
179 C2C80 800D3B60 src/libultra/io/contsetch
180 C2CE0 800D3BC0 src/libultra/io/aigetlen
181 C2D00 800D3BE0 src/libultra/mgu/translate
182 C2DD0 800D3CB0 src/libultra/io/contramwrite
183 C3020 800D3F00 src/libultra/io/pfsgetstatus
184 C3250 800D4130 src/libultra/io/contpfs
185 C3DD0 800D4CB0 src/libultra/io/contramread
186 C4000 800D4EE0 src/libultra/io/crc
187 C4170 800D5050 src/libultra/io/pfsisplug
188 C4460 800D5340 src/libultra/os/settimer
189 C45F0 800D54D0 src/libultra/libc/xldtob
190 C5100 800D5FE0 src/libultra/libc/ldiv
191 C5290 800D6170 src/libultra/libc/xlitob
192 C5530 800D6410 src/libultra/io/spgetstat
193 C5540 800D6420 src/libultra/io/spsetstat
194 C5550 800D6430 src/libultra/os/writebackdcacheall
195 C5580 800D6460 src/libultra/os/getcurrfaultedthread
196 C55A0 800D6480 src/libultra/mgu/mtxf2l
197 C5610 800D64F0 src/libultra/libc/llcvt
198 C5820 800D6700 src/libultra/io/vigetcurrframebuf
199 C5860 800D6740 src/libultra/io/spsetpc
200 C5890 800D6770 src/libultra/libc/sqrt
201 C58A0 800D6780 src/libultra/libc/absf
202 C58B0 800D6790 src/code/fmodf
203 C5900 800D67E0 src/code/__osMemset
204 C5930 800D6810 src/code/__osMemmove
205 C59C0 800D68A0 src/code/z_message
206 D1060 800E1F40 src/code/z_game_over
207 D15A0 800E2480 src/code/z_construct
208 D2960 800E3840 data/rsp.text
209 offset vram .data
210 D5CC0 800E6BA0 src/code/z_en_a_keep
211 D5D60 800E6C40 src/code/z_en_item00
212 D6000 800E6EE0 src/code/z_eff_blure
213 D60B0 800E6F90 src/code/z_eff_shield_particle
214 D6100 800E6FE0 src/code/z_effect
215 D6150 800E7030 src/code/z_effect_soft_sprite
216 D6160 800E7040 src/code/z_effect_soft_sprite_old_init
217 D6250 800E7130 src/code/z_effect_soft_sprite_dlftbls
218 D6660 800E7540 src/code/flg_set
219 D6820 800E7700 src/code/z_actor
220 D6B40 800E7A20 src/code/z_actor_dlftbls
221 DA630 800EB510 src/code/z_bgcheck
222 DA780 800EB660 src/code/z_camera
223 DDCD0 800EEBB0 src/code/z_collision_btltbls
224 DDFB0 800EEE90 src/code/z_collision_check
225 DE260 800EF140 src/code/z_debug
226 DE290 800EF170 src/code/z_debug_display
227 DE2E0 800EF1C0 src/code/z_demo
228 DE440 800EF320 src/code/z_draw
229 DF4C0 800F03A0 src/code/z_elf_message
230 DF510 800F03F0 src/code/z_face_reaction
231 DF950 800F0830 src/code/z_game_dlftbls
232 DFA70 800F0950 src/code/z_horse
233 DFB80 800F0A60 src/code/z_jpeg
234 DFBC0 800F0AA0 src/code/z_kaleido_setup
235 DFC10 800F0AF0 src/code/z_kankyo
236 E0000 800F0EE0 src/code/z_lib
237 E0030 800F0F10 src/code/z_lifemeter
238 E0150 800F1030 src/code/z_lights
239 E0160 800F1040 src/code/z_map_mark
240 E0220 800F1100 src/code/z_onepointdemo
241 E3B40 800F4A20 src/code/z_map_exp
242 E3B60 800F4A40 src/code/z_map_data
243 E5960 800F6840 src/code/z_parameter
244 E5C60 800F6B40 src/code/z_player_lib
245 E6340 800F7220 src/code/z_quake
246 E6370 800F7250 src/code/z_rcp
247 E7190 800F8070 src/code/z_room
248 E7210 800F80F0 src/code/code_80097A00
249 E7590 800F8470 src/code/z_scene
250 E7610 800F84F0 src/code/object_table
251 E82B0 800F9190 src/code/z_scene_table
252 EA4C0 800FB3A0 src/code/z_skelanime
253 EA4E0 800FB3C0 src/code/z_skin_matrix
254 EA520 800FB400 src/code/z_sram
255 EA6D0 800FB5B0 src/code/z_ss_sram
256 EA780 800FB660 data/unk_8012ABC0.data
257 EA7B0 800FB690 src/code/z_view
258 EA7C0 800FB6A0 src/code/z_viscvg
259 EA850 800FB730 src/code/z_vr_box
260 EAB50 800FBA30 src/code/z_player_call
261 EAB70 800FBA50 src/code/z_fbdemo
262 EABF0 800FBAD0 src/code/z_fbdemo_triforce
263 EACC0 800FBBA0 src/code/z_fbdemo_wipe1
264 EB760 800FC640 src/code/z_fbdemo_circle
265 ECA60 800FD940 src/code/z_fbdemo_fade
266 ECA90 800FD970 src/code/shrink_window
267 ECAA0 800FD980 src/code/z_kaleido_manager
268 ECAF0 800FD9D0 src/code/z_play
269 ECB00 800FD9E0 src/code/audio_stop_all_sfx
270 ECB10 800FD9F0 src/code/graph
271 ECB20 800FDA00 src/code/main
272 ECB30 800FDA10 src/code/padmgr
273 ECB40 800FDA20 src/code/speed_meter
274 ECB70 800FDA50 src/code/sys_math
275 ECBB0 800FDA90 src/code/sys_math_atan
276 ED3C0 800FE2A0 src/code/sys_matrix
277 ED440 800FE320 src/code/sys_ucode
278 ED450 800FE330 src/code/sys_rumble
279 ED460 800FE340 src/code/irqmgr
280 ED480 800FE360 src/code/fault
281 ED4E0 800FE3C0 src/code/fault_drawer
282 ED520 800FE400 src/audio/lib/data
283 EF930 80100810 src/audio/lib/synthesis
284 EF960 80100840 src/audio/lib/load
285 EF970 80100850 src/audio/lib/thread
286 EF990 80100870 src/audio/lib/aisetnextbuf
287 EF9A0 80100880 src/audio/lib/effects
288 EF9B0 80100890 src/audio/lib/seqplayer
289 EFA00 801008E0 src/audio/general
290 F1120 80102000 src/audio/sfx_params
291 F24F0 801033D0 src/audio/data
292 F2560 80103440 src/audio/session_config
293 F2D00 80103BE0 src/code/logseverity
294 F2D10 80103BF0 src/code/gfxprint
295 F35C0 801044A0 src/code/code_800FC620
296 F35E0 801044C0 src/code/fp
297 F35F0 801044D0 src/code/rand
298 F3600 801044E0 src/code/__osMalloc
299 F3610 801044F0 src/libultra/gu/sins
300 F3E10 80104CF0 src/libultra/io/siacs
301 F3E20 80104D00 src/libultra/io/controller
302 F3E30 80104D10 src/libultra/libc/xprintf
303 F3E80 80104D60 src/libultra/gu/position
304 F3E90 80104D70 src/libultra/gu/rotate
305 F3EA0 80104D80 src/libultra/io/vimodefpallan1
306 F3EF0 80104DD0 src/libultra/io/contpfs
307 F3F00 80104DE0 src/libultra/io/contramread
308 F3F10 80104DF0 src/libultra/libc/xlitob
309 offset vram .rodata
310 F3F40 80104E20 src/code/z_en_a_keep
311 F3F90 80104E70 src/code/z_en_item00
312 F4200 801050E0 src/code/z_eff_blure
313 F4230 80105110 src/code/z_eff_shield_particle
314 F4240 80105120 src/code/z_eff_spark
315 F4250 80105130 src/code/z_eff_ss_dead
316 F4260 80105140 src/code/z_effect_soft_sprite_old_init
317 F4280 80105160 src/code/flg_set
318 F4610 801054F0 src/code/z_actor
319 F4BC0 80105AA0 src/code/z_actor_dlftbls
320 F4C10 80105AF0 src/code/z_bgcheck
321 F4CB0 80105B90 src/code/code_80043480
322 F4CC0 80105BA0 src/code/z_camera
323 F5440 80106320 src/code/z_collision_check
324 F5490 80106370 src/code/z_debug
325 F54A0 80106380 src/code/z_demo
326 F5980 80106860 src/code/z_draw
327 F5990 80106870 src/code/z_elf_message
328 F5AB0 80106990 src/code/z_fcurve_data
329 F5AC0 801069A0 src/code/z_fcurve_data_skelanime
330 F5AD0 801069B0 src/code/z_horse
331 F5AE0 801069C0 src/code/z_jpeg
332 F5B70 80106A50 src/code/z_kankyo
333 F5C20 80106B00 src/code/z_lib
334 F5C30 80106B10 src/code/z_lifemeter
335 F5C50 80106B30 src/code/z_lights
336 F5C60 80106B40 src/code/z_map_mark
337 F5CC0 80106BA0 src/code/z_olib
338 F5CE0 80106BC0 src/code/z_onepointdemo
339 F65A0 80107480 src/code/z_map_exp
340 F68C0 801077A0 src/code/z_parameter
341 F6AD0 801079B0 src/code/z_path
342 F6AE0 801079C0 src/code/z_player_lib
343 F6B40 80107A20 src/code/z_quake
344 F6BD0 80107AB0 src/code/z_room
345 F6C10 80107AF0 src/code/z_sample
346 F6C20 80107B00 src/code/z_scene_table
347 F6C60 80107B40 src/code/z_skelanime
348 F6C80 80107B60 src/code/z_skin
349 F6C90 80107B70 src/code/z_skin_matrix
350 F6CA0 80107B80 src/code/z_sram
351 F6D10 80107BF0 src/code/z_rumble
352 F6D20 80107C00 src/code/z_view
353 F6D30 80107C10 src/code/z_vr_box
354 F6E20 80107D00 src/code/z_fbdemo_triforce
355 F6E30 80107D10 src/code/z_fbdemo_wipe1
356 F6E40 80107D20 src/code/z_fbdemo_circle
357 F6E50 80107D30 src/code/code_800BB0A0
358 F6E60 80107D40 src/code/z_kaleido_manager
359 F6E80 80107D60 src/code/z_play
360 F6F40 80107E20 src/code/game
361 F6F60 80107E40 src/code/graph
362 F6FB0 80107E90 src/code/main
363 F6FE0 80107EC0 src/code/padmgr
364 F6FF0 80107ED0 src/code/sys_cfb
365 F7000 80107EE0 src/code/sys_math
366 F7010 80107EF0 src/code/sys_math3d
367 F70A0 80107F80 src/code/sys_math_atan
368 F70B0 80107F90 src/code/sys_matrix
369 F70E0 80107FC0 src/code/irqmgr
370 F7100 80107FE0 src/code/fault
371 F7B10 801089F0 src/code/fault_drawer
372 F7F40 80108E20 src/audio/lib/synthesis
373 F7F60 80108E40 src/audio/lib/heap
374 F7F90 80108E70 src/audio/lib/load
375 F8000 80108EE0 src/audio/lib/thread
376 F8130 80109010 src/audio/lib/playback
377 F8160 80109040 src/audio/lib/effects
378 F8190 80109070 src/audio/lib/seqplayer
379 F87D0 801096B0 src/audio/general
380 F8960 80109840 src/audio/sfx
381 F8980 80109860 src/audio/sequence
382 F8A00 801098E0 src/audio/session_config
383 F8A10 801098F0 src/code/gfxprint
384 F8A30 80109910 src/code/fp_math
385 F8A80 80109960 src/code/__osMalloc
386 F8D40 80109C20 src/libultra/gu/sinf
387 F8D90 80109C70 src/libultra/gu/perspective
388 F8DA0 80109C80 src/libultra/gu/lookathil
389 F8DB0 80109C90 src/libultra/libc/xprintf
390 F8EB0 80109D90 src/libultra/gu/cosf
391 F8F00 80109DE0 src/libultra/gu/libm_vals
392 F8F10 80109DF0 src/libultra/libc/xldtob
393 F8F70 80109E50 src/libultra/libc/llcvt
394 offset vram .data
395 F8F80 80109E60 src/code/z_message
396 101910 801127F0 src/code/z_game_over
397 offset vram .rodata
398 101920 80112800 src/code/z_message
399 101D40 80112C20 src/code/z_game_over
400 101DA0 80112C80 data/audio_tables.rodata
401 102940 80113820 data/rsp.rodata
402 offset vram .bss
403 104A60 80115940 src/code/z_en_item00
404 104A70 80115950 src/code/z_effect
405 108860 80119740 src/code/flg_set
406 108870 80119750 src/code/z_actor
407 1088F0 801197D0 src/code/z_actor_dlftbls
408 108900 801197E0 src/code/z_bgcheck
409 108A20 80119900 src/code/z_camera
410 108B00 801199E0 src/code/z_collision_check
411 10A260 8011B140 src/code/z_common_data
412 10B690 8011C570 src/code/z_debug
413 10B8B0 8011C790 src/code/z_debug_display
414 10B8C0 8011C7A0 src/code/z_demo
415 10B8F0 8011C7D0 src/code/z_kankyo
416 10B9C0 8011C8A0 src/code/z_lifemeter
417 10B9F0 8011C8D0 src/code/z_lights
418 10BB80 8011CA60 src/code/z_malloc
419 10BBB0 8011CA90 src/code/z_map_mark
420 10BBC0 8011CAA0 src/code/z_map_exp
421 10BBD0 8011CAB0 src/code/z_parameter
422 10BBF0 8011CAD0 src/code/z_player_lib
423 10BC10 8011CAF0 src/code/z_quake
424 10BCA0 8011CB80 src/code/z_skelanime
425 10BCB0 8011CB90 src/code/z_skin
426 10CBC0 8011DAA0 src/code/z_rumble
427 10CCD0 8011DBB0 src/code/z_vr_box_draw
428 10CCE0 8011DBC0 src/code/z_player_call
429 10CCF0 8011DBD0 src/code/db_camera
430 10CCF0 8011DBD0 src/code/mempak
431 10CCF0 8011DBD0 src/code/z_kaleido_scope_call
432 10CD10 8011DBF0 src/code/z_play
433 10CE20 8011DD00 src/code/game
434 10CF00 8011DDE0 src/code/graph
435 10CF70 8011DE50 src/code/main
436 110E00 80121CE0 src/code/padmgr
437 110E10 80121CF0 src/code/sched
438 110E30 80121D10 src/code/speed_meter
439 110EA0 80121D80 src/code/sys_cfb
440 110EB0 80121D90 src/code/sys_math3d
441 1110D0 80121FB0 src/code/sys_matrix
442 1110E0 80121FC0 src/code/fault
443 111F60 80122E40 src/code/fault_drawer
444 111FC0 80122EA0 src/audio/lib/load
445 112080 80122F60 src/audio/general
446 112280 80123160 src/audio/sfx
447 114A90 80125970 src/audio/sequence
448 115850 80126730 src/audio/session_config
449 11BD60 8012CC40 src/code/gfxprint
450 11BD70 8012CC50 src/code/fp_math
451 11BD80 8012CC60 src/code/system_malloc
452 11BDB0 8012CC90 src/code/rand
453 11BDC0 8012CCA0 src/code/__osMalloc
454 11BDD0 8012CCB0 src/code/jpegdecoder
455 11BDE0 8012CCC0 src/libultra/io/sptask
456 11BE20 8012CD00 src/libultra/io/motor
457 11BF20 8012CE00 src/libultra/io/siacs
458 11BF40 8012CE20 src/libultra/io/controller
459 11BFD0 8012CEB0 src/libultra/io/contpfs
460 11C0D0 8012CFB0 src/libultra/io/pfsisplug
461 11C110 8012CFF0 src/code/z_message
462 11C130 8012D010 .end

View file

@ -0,0 +1,22 @@
offset,vram,.text
0,80803630,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
3040,80806670,src/overlays/gamestates/ovl_file_choose/z_file_nameset
8490,8080BAC0,src/overlays/gamestates/ovl_file_choose/z_file_choose
offset,vram,.data
EC40,80812270,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data
F320,80812950,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
F360,80812990,src/overlays/gamestates/ovl_file_choose/z_file_nameset
F500,80812B30,src/overlays/gamestates/ovl_file_choose/z_file_choose
offset,vram,.rodata
F7F0,80812E20,src/overlays/gamestates/ovl_file_choose/z_file_nameset
F800,80812E30,src/overlays/gamestates/ovl_file_choose/z_file_choose
offset,vram,.ovl
F820,80812E50,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc
offset,vram,.bss
FF60,80813590,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
FF70,808135A0,src/overlays/gamestates/ovl_file_choose/z_file_nameset
FF80,808135B0,.end
1 offset vram .text
2 0 80803630 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
3 3040 80806670 src/overlays/gamestates/ovl_file_choose/z_file_nameset
4 8490 8080BAC0 src/overlays/gamestates/ovl_file_choose/z_file_choose
5 offset vram .data
6 EC40 80812270 src/overlays/gamestates/ovl_file_choose/z_file_nameset_data
7 F320 80812950 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
8 F360 80812990 src/overlays/gamestates/ovl_file_choose/z_file_nameset
9 F500 80812B30 src/overlays/gamestates/ovl_file_choose/z_file_choose
10 offset vram .rodata
11 F7F0 80812E20 src/overlays/gamestates/ovl_file_choose/z_file_nameset
12 F800 80812E30 src/overlays/gamestates/ovl_file_choose/z_file_choose
13 offset vram .ovl
14 F820 80812E50 src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc
15 offset vram .bss
16 FF60 80813590 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
17 FF70 808135A0 src/overlays/gamestates/ovl_file_choose/z_file_nameset
18 FF80 808135B0 .end

View file

@ -0,0 +1,34 @@
offset,vram,.text
0,808135B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
2400,808159B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
43B0,80817960,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
5E30,808193E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
7E20,8081B3D0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map
B100,8081E6B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
B300,8081E8B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
152C0,80828870,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
offset,vram,.data
15980,80828F30,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
15B30,808290E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
15D00,808292B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
15D30,808292E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
15DA0,80829350,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map
15FF0,808295A0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
16000,808295B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
169C0,80829F70,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
16A10,80829FC0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
offset,vram,.rodata
1AB70,8082E120,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
1AC50,8082E200,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
1AC60,8082E210,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
1AF40,8082E4F0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
1AFF0,8082E5A0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
offset,vram,.ovl
1B070,8082E620,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc
offset,vram,.bss
1C780,8082FD30,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
1C7F0,8082FDA0,.end
1 offset vram .text
2 0 808135B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
3 2400 808159B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
4 43B0 80817960 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
5 5E30 808193E0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
6 7E20 8081B3D0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_map
7 B100 8081E6B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
8 B300 8081E8B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
9 152C0 80828870 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
10 offset vram .data
11 15980 80828F30 src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
12 15B30 808290E0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
13 15D00 808292B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
14 15D30 808292E0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
15 15DA0 80829350 src/overlays/misc/ovl_kaleido_scope/z_kaleido_map
16 15FF0 808295A0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
17 16000 808295B0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
18 169C0 80829F70 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
19 16A10 80829FC0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
20 offset vram .rodata
21 1AB70 8082E120 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
22 1AC50 8082E200 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
23 1AC60 8082E210 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
24 1AF40 8082E4F0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
25 1AFF0 8082E5A0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
26 offset vram .ovl
27 1B070 8082E620 src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc
28 offset vram .bss
29 1C780 8082FD30 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope
30 1C7F0 8082FDA0 .end

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
gSaveContext = 0x8011B148; // size:0x1428 type:SaveContext