diff --git a/asm/memcard.s b/asm/memcard.s index ceadfe1..aefb1c3 100644 --- a/asm/memcard.s +++ b/asm/memcard.s @@ -6847,527 +6847,6 @@ lbl_802F5B58: .section .data -.global lbl_801D4288 -lbl_801D4288: - # ROM: 0x1D1288 -glabel string_A_Memory_Card_error_has_occurred_ - .asciz "A Memory Card error has occurred." - .balign 4 - .4byte lbl_802C4840 ;# ptr - .4byte 0 - .4byte lbl_802C4880 ;# ptr - .4byte 0 - .4byte lbl_802C48C0 ;# ptr - .4byte 0 -glabel string_Could_not_read_Memory_Card_ - .asciz "Could not read Memory Card." -glabel string_Please_see_the_Instruction_Booklet_for_details__2 - .asciz "Please see the Instruction Booklet for details." - .4byte string_Could_not_read_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_Please_see_the_Instruction_Booklet_for_details__2 ;# ptr - .4byte 0 -glabel string_This_Memory_Card_cannot_be_used_ - .asciz "This Memory Card cannot be used." - .balign 4 -glabel string_Memory_Card_is_not_inserted_ - .asciz "Memory Card is not inserted." - .balign 4 -glabel string_Please_insert_a_Memory_Card_ - .asciz "Please insert a Memory Card." - .balign 4 - .4byte string_Memory_Card_is_not_inserted_ ;# ptr - .4byte 0 - .4byte string_Please_insert_a_Memory_Card_ ;# ptr - .4byte 0 -glabel string_There_is_no_Memory_Card_in_Slot_A_ - .asciz "There is no Memory Card in Slot A." - .balign 4 -glabel string_The_Autosave_function_will_be_set_to_Off_ - .asciz "The Autosave function will be set to Off." - .balign 4 - .4byte string_There_is_no_Memory_Card_in_Slot_A_ ;# ptr - .4byte 0 - .4byte string_The_Autosave_function_will_be_set_to_Off_ ;# ptr - .4byte 0 -glabel string_Please_insert_a_Memory_Card_into_Slot_A_ - .asciz "Please insert a Memory Card into Slot A." - .balign 4 - .4byte string_Memory_Card_is_not_inserted_ ;# ptr - .4byte 0 - .4byte string_Please_insert_a_Memory_Card_into_Slot_A_ ;# ptr - .4byte 0 -glabel string_The_Memory_Card_was_removed_ - .asciz "The Memory Card was removed." - .balign 4 -glabel string_The_operation_has_been_stopped_ - .asciz "The operation has been stopped." - .4byte string_The_Memory_Card_was_removed_ ;# ptr - .4byte 0 - .4byte string_The_operation_has_been_stopped_ ;# ptr - .4byte 0 -glabel string_This_Memory_Card_is_not_supported_recognized_ - .asciz "This Memory Card is not supported/recognized." - .balign 4 -glabel string_Please_insert_a_different_Memory_Card_ - .asciz "Please insert a different Memory Card." - .balign 4 - .4byte string_This_Memory_Card_is_not_supported_recognized_ ;# ptr - .4byte 0 - .4byte string_Please_insert_a_different_Memory_Card_ ;# ptr - .4byte 0 -glabel string_The_file_on_the_Memory_Card_has_been_damaged_ - .asciz "The file on the Memory Card has been damaged." - .balign 4 -glabel string_Please_use_the_GameCube_tm_Memory_Card_Menu - .asciz "Please use the GameCube tm Memory Card Menu" -glabel string_or_the_Save_Function_of_the_Game_Data_Option_in_this_game - .asciz "or the Save Function of the Game Data Option in this game" - .balign 4 -glabel string_to_format_your_Memory_Card_ - .asciz "to format your Memory Card." - .4byte string_The_file_on_the_Memory_Card_has_been_damaged_ ;# ptr - .4byte 0 - .4byte string_Please_use_the_GameCube_tm_Memory_Card_Menu ;# ptr - .4byte 0 - .4byte string_or_the_Save_Function_of_the_Game_Data_Option_in_this_game ;# ptr - .4byte 0 - .4byte string_to_format_your_Memory_Card_ ;# ptr - .4byte 0 -glabel string_No_Super_Monkey_Ball_Game_Data_found_on_Memory_Card_ - .asciz "No Super Monkey Ball Game Data found on Memory Card." - .balign 4 -glabel string_Cannot_save_data_to_the_file_ - .asciz "Cannot save data to the file." - .balign 4 -glabel string_Cannot_load_file_ - .asciz "Cannot load file." - .balign 4 -glabel string_Cannot_read_file_ - .asciz "Cannot read file." - .balign 4 -glabel string_Not_enough_free_blocks_in_Memory_Card_ - .asciz "Not enough free blocks in Memory Card." - .balign 4 -glabel string_There_are__d_free_blocks_ - .asciz "There are %d free blocks," - .balign 4 -glabel string_but__d_blocks_are_required_to_save_the_data_ - .asciz "but %d blocks are required to save the data." - .balign 4 - .4byte string_Not_enough_free_blocks_in_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_are__d_free_blocks_ ;# ptr - .4byte 0 - .4byte string_but__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 -glabel string_There_is__d_free_block_ - .asciz "There is %d free block," - .4byte string_Not_enough_free_blocks_in_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_is__d_free_block_ ;# ptr - .4byte 0 - .4byte string_but__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_There_are__d_free_blocks_ ;# ptr - .4byte 0 - .4byte string_but__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_The_Autosave_function_will_be_set_to_Off_ ;# ptr - .4byte 0 - .4byte string_There_is__d_free_block_ ;# ptr - .4byte 0 - .4byte string_but__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_The_Autosave_function_will_be_set_to_Off_ ;# ptr - .4byte 0 -glabel string_No_free_blocks_in_Memory_Card_ - .asciz "No free blocks in Memory Card." - .balign 4 -glabel string__d_blocks_are_required_to_save_the_data_ - .asciz "%d blocks are required to save the data." - .balign 4 - .4byte string_No_free_blocks_in_Memory_Card_ ;# ptr - .4byte 0 - .4byte string__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_No_free_blocks_in_Memory_Card_ ;# ptr - .4byte 0 - .4byte string__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_The_Autosave_function_will_be_set_to_Off_ ;# ptr - .4byte 0 - .4byte string_Not_enough_free_blocks_in_Memory_Card_ ;# ptr - .4byte 0 - .4byte string__d_blocks_are_required_to_save_the_data_ ;# ptr - .4byte 0 -glabel string_The_data_has_been_successfully_saved_ - .asciz "The data has been successfully saved," - .balign 4 -glabel string_but_there_are_not_enough_free_blocks_to_save_the_data_ - .asciz "but there are not enough free blocks to save the data." - .balign 4 -glabel string_To_save_Replay_Data__at_least_2_free_blocks_are_required_ - .asciz "To save Replay Data, at least 2 free blocks are required." - .balign 4 -glabel string_Also__to_save_Game_Data__or_to_save_over_old_data_ - .asciz "Also, to save Game Data, or to save over old data," - .balign 4 -glabel string_at_least_3_free_blocks_are_required_ - .asciz "at least 3 free blocks are required." - .balign 4 - .4byte string_The_data_has_been_successfully_saved_ ;# ptr - .4byte 0 - .4byte string_but_there_are_not_enough_free_blocks_to_save_the_data_ ;# ptr - .4byte 0 - .4byte string_To_save_Replay_Data__at_least_2_free_blocks_are_required_ ;# ptr - .4byte 0 - .4byte string_Also__to_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 -glabel string_but_there_are_not_enough_free_blocks_to_save_Game_Data_ - .asciz "but there are not enough free blocks to save Game Data." -glabel string_To_save_Game_Data__or_to_save_over_old_data_ - .asciz "To save Game Data, or to save over old data," - .balign 4 - .4byte string_The_data_has_been_successfully_saved_ ;# ptr - .4byte 0 - .4byte string_but_there_are_not_enough_free_blocks_to_save_Game_Data_ ;# ptr - .4byte 0 - .4byte string_To_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 -glabel string_but_there_may_not_be_enough_free_blocks_to_save_Replay_Data_ - .asciz "but there may not be enough free blocks to save Replay Data." - .balign 4 -glabel string_Replay_Data_requires_a_maximum_of_13_free_blocks_to_save_ - .asciz "Replay Data requires a maximum of 13 free blocks to save." - .balign 4 - .4byte string_The_data_has_been_successfully_saved_ ;# ptr - .4byte 0 - .4byte string_but_there_may_not_be_enough_free_blocks_to_save_Replay_Data_ ;# ptr - .4byte 0 - .4byte string_Replay_Data_requires_a_maximum_of_13_free_blocks_to_save_ ;# ptr - .4byte 0 -glabel string_There_are_not_enough_free_blocks - .asciz "There are not enough free blocks" - .balign 4 -glabel string_to_save_a_file_in_this_Memory_Card_ - .asciz "to save a file in this Memory Card." - .4byte string_There_are_not_enough_free_blocks ;# ptr - .4byte 0 - .4byte string_to_save_a_file_in_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_To_save_Replay_Data__at_least_2_free_blocks_are_required_ ;# ptr - .4byte 0 - .4byte string_Also__to_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 -glabel string_to_save_Game_Data_in_this_Memory_Card_ - .asciz "to save Game Data in this Memory Card." - .balign 4 - .4byte string_There_are_not_enough_free_blocks ;# ptr - .4byte 0 - .4byte string_to_save_Game_Data_in_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_To_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 -glabel string_There_may_not_be_enough_free_blocks_to_save_Replay_Data_ - .asciz "There may not be enough free blocks to save Replay Data." - .balign 4 -glabel string_Replay_Data_requires_a_maximum_of_13_free_blocks_ - .asciz "Replay Data requires a maximum of 13 free blocks." - .balign 4 - .4byte string_There_may_not_be_enough_free_blocks_to_save_Replay_Data_ ;# ptr - .4byte 0 - .4byte string_Replay_Data_requires_a_maximum_of_13_free_blocks_ ;# ptr - .4byte 0 -glabel string_There_are_not_enough_free_blocks_in_this_Memory_Card_ - .asciz "There are not enough free blocks in this Memory Card." - .balign 4 - .4byte string_No_Super_Monkey_Ball_Game_Data_found_on_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_are_not_enough_free_blocks_in_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_To_save_Replay_Data__at_least_2_free_blocks_are_required_ ;# ptr - .4byte 0 - .4byte string_Also__to_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 - .4byte string_No_Super_Monkey_Ball_Game_Data_found_on_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_are_not_enough_free_blocks ;# ptr - .4byte 0 - .4byte string_to_save_Game_Data_in_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_To_save_Game_Data__or_to_save_over_old_data_ ;# ptr - .4byte 0 - .4byte string_at_least_3_free_blocks_are_required_ ;# ptr - .4byte 0 -glabel string_There_may_not_be_enough_free_blocks - .asciz "There may not be enough free blocks" -glabel string_to_save_Replay_Data_in_this_Memory_Card_ - .asciz "to save Replay Data in this Memory Card." - .balign 4 -glabel string_To_save_Replay_Data__a_maximum_of_13_free_blocks_is_required_ - .asciz "To save Replay Data, a maximum of 13 free blocks is required." - .balign 4 - .4byte string_No_Super_Monkey_Ball_Game_Data_found_on_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_may_not_be_enough_free_blocks ;# ptr - .4byte 0 - .4byte string_to_save_Replay_Data_in_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_To_save_Replay_Data__a_maximum_of_13_free_blocks_is_required_ ;# ptr - .4byte 0 -glabel string_Cannot_make_any_more_files_ - .asciz "Cannot make any more files." -glabel string_The_data_has_been_succesfully_saved_ - .asciz "The data has been succesfully saved." - .balign 4 -glabel string_However__no_more_files_can_be_made__ - .asciz "However, no more files can be made. " - .balign 4 -glabel string_You_will_not_be_able_to_save_the_data_next_time_ - .asciz "You will not be able to save the data next time." - .balign 4 - .4byte string_The_data_has_been_succesfully_saved_ ;# ptr - .4byte 0 - .4byte string_However__no_more_files_can_be_made__ ;# ptr - .4byte 0 - .4byte string_You_will_not_be_able_to_save_the_data_next_time_ ;# ptr - .4byte 0 -glabel string_Saving_finished_ - .asciz "Saving finished." - .balign 4 -glabel string_Loading_finished_ - .asciz "Loading finished." - .balign 4 -glabel string_A_file_has_been_deleted_ - .asciz "A file has been deleted." - .balign 4 -glabel string_The_Game_Data_version_is_incorrect_ - .asciz "The Game Data version is incorrect." -glabel string_Please_try_saving_your_game_again_ - .asciz "Please try saving your game again." - .balign 4 - .4byte string_The_Game_Data_version_is_incorrect_ ;# ptr - .4byte 0 - .4byte string_Please_try_saving_your_game_again_ ;# ptr - .4byte 0 -glabel string_The_Game_Data_has_been_damaged_ - .asciz "The Game Data has been damaged." - .4byte string_The_Game_Data_has_been_damaged_ ;# ptr - .4byte 0 - .4byte string_Please_try_saving_your_game_again_ ;# ptr - .4byte 0 -glabel string_The_Replay_Data_has_been_damaged_ - .asciz "The Replay Data has been damaged." - .balign 4 -glabel string_Please_delete_the_file_ - .asciz "Please delete the file." - .4byte string_The_Replay_Data_has_been_damaged_ ;# ptr - .4byte 0 - .4byte string_Please_delete_the_file_ ;# ptr - .4byte 0 -glabel string_Formatting_has_been_interrupted_ - .asciz "Formatting has been interrupted." - .balign 4 -glabel string_Saving_has_been_interrupted_ - .asciz "Saving has been interrupted." - .balign 4 -glabel string_Loading_has_been_interrupted_ - .asciz "Loading has been interrupted." - .balign 4 -glabel string_The_file_size_has_been_changed_ - .asciz "The file size has been changed." -glabel string_Please_delete_the_file_from_the_menu__and_try_again_ - .asciz "Please delete the file from the menu, and try again." - .balign 4 - .4byte string_The_file_size_has_been_changed_ ;# ptr - .4byte 0 - .4byte string_Please_delete_the_file_from_the_menu__and_try_again_ ;# ptr - .4byte 0 -glabel string_No_Replay_Data_found_ - .asciz "No Replay Data found." - .balign 4 -glabel string_In_Normal_mode_and_Practice_Mode__during_the_Replay_playback_ - .asciz "In Normal mode and Practice Mode, during the Replay playback," - .balign 4 -glabel string_if_you_access_the_Pause_Menu_and_select_Save_Replay_ - .asciz "if you access the Pause Menu and select Save Replay," - .balign 4 -glabel string_you_can_save_the_Replay_that_you_are_viewing_ - .asciz "you can save the Replay that you are viewing." - .balign 4 - .4byte string_No_Replay_Data_found_ ;# ptr - .4byte 0 - .4byte string_In_Normal_mode_and_Practice_Mode__during_the_Replay_playback_ ;# ptr - .4byte 0 - .4byte string_if_you_access_the_Pause_Menu_and_select_Save_Replay_ ;# ptr - .4byte 0 - .4byte string_you_can_save_the_Replay_that_you_are_viewing_ ;# ptr - .4byte 0 -glabel string_Please_press_the_p_BUTTON_B__a_Button_ - .asciz "Please press the p/BUTTON_B/ a/Button." - .balign 4 -glabel string_Please_press_the_p_BUTTON_B__a_Button_to_Continue_without_saving_ - .asciz "Please press the p/BUTTON_B/ a/Button to Continue without saving." - .balign 4 -glabel string_There_are__d_free_blocks_on_this_Memory_Card_ - .asciz "There are %d free blocks on this Memory Card." - .balign 4 -glabel string_There_is__d_free_block_on_this_Memory_Card_ - .asciz "There is %d free block on this Memory Card." -glabel string_No_free_blocks_found_on_this_Memory_Card_ - .asciz "No free blocks found on this Memory Card." - .balign 4 -glabel string_Accessing_Memory_Card_ - .asciz "Accessing Memory Card." - .balign 4 -glabel string_Now_saving_Replay_Data_ - .asciz "Now saving Replay Data." -glabel string_Do_not_touch_the_Memory_Card_or_the_POWER_Button_ - .asciz "Do not touch the Memory Card or the POWER Button." - .balign 4 - .4byte string_Now_saving_Replay_Data_ ;# ptr - .4byte 0 - .4byte string_Do_not_touch_the_Memory_Card_or_the_POWER_Button_ ;# ptr - .4byte 0 -glabel string_Now_saving_Game_Data_ - .asciz "Now saving Game Data." - .balign 4 - .4byte string_Now_saving_Game_Data_ ;# ptr - .4byte 0 - .4byte string_Do_not_touch_the_Memory_Card_or_the_POWER_Button_ ;# ptr - .4byte 0 -glabel string_Now_loading_Game_Data_ - .asciz "Now loading Game Data." - .balign 4 - .4byte string_Now_loading_Game_Data_ ;# ptr - .4byte 0 - .4byte string_Do_not_touch_the_Memory_Card_or_the_POWER_Button_ ;# ptr - .4byte 0 -glabel string_Please_use_the_p_LEVER__a_or_the_p_BUTTON____a_to_highlight_a_selection_ - .asciz "Please use the p/LEVER/ a/or the p/BUTTON_+/ a/to highlight a selection," - .balign 4 -glabel string_and_press_the_p_BUTTON_A__a_Button_to_select_ - .asciz "and press the p/BUTTON_A/ a/Button to select." - .balign 4 - .4byte string_Please_use_the_p_LEVER__a_or_the_p_BUTTON____a_to_highlight_a_selection_ ;# ptr - .4byte 0 - .4byte string_and_press_the_p_BUTTON_A__a_Button_to_select_ ;# ptr - .4byte 0 -glabel string_Please_insert_a_Memory_Card_into_Slot_A__2 - .asciz "Please insert a Memory Card into Slot A," - .balign 4 -glabel string_then_press_the_p_BUTTON_A__a_Button_ - .asciz "then press the p/BUTTON_A/ a/Button." - .balign 4 -glabel string_You_may_cancel_by_pressing_the_p_BUTTON_B__a_Button_ - .asciz "You may cancel by pressing the p/BUTTON_B/ a/Button." - .balign 4 - .4byte string_Please_insert_a_Memory_Card_into_Slot_A__2 ;# ptr - .4byte 0 - .4byte string_then_press_the_p_BUTTON_A__a_Button_ ;# ptr - .4byte 0 - .4byte string_You_may_cancel_by_pressing_the_p_BUTTON_B__a_Button_ ;# ptr - .4byte 0 -glabel string_This_will_format_your_Memory_Card_ - .asciz "This will format your Memory Card." - .balign 4 -glabel string_All_data_will_be_lost__Is_it_OK_to_format_ - .asciz "All data will be lost. Is it OK to format?" - .balign 4 - .4byte string_This_will_format_your_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_All_data_will_be_lost__Is_it_OK_to_format_ ;# ptr - .4byte 0 - .4byte 0x802F15D8 ;# ptr - .4byte 0 - .4byte 0x802F15D8 ;# ptr - .4byte 0 -glabel string_Memory_Card_being_formatted_ - .asciz "Memory Card being formatted." - .balign 4 - .4byte string_Memory_Card_being_formatted_ ;# ptr - .4byte 0 - .4byte string_Do_not_touch_the_Memory_Card_or_the_POWER_Button_ ;# ptr - .4byte 0 -glabel string_A_Super_Monkey_Ball_Game_Data_file_already_exists_ - .asciz "A Super Monkey Ball Game Data file already exists." - .balign 4 -glabel string_Would_you_like_to_save_over_it_ - .asciz "Would you like to save over it?" - .4byte string_A_Super_Monkey_Ball_Game_Data_file_already_exists_ ;# ptr - .4byte 0 - .4byte string_Would_you_like_to_save_over_it_ ;# ptr - .4byte 0 - .4byte 0x802F15D8 ;# ptr - .4byte 0 - .4byte 0x802F15D8 ;# ptr - .4byte 0 - .4byte lbl_802F1450 ;# ptr - .4byte lbl_802F1458 ;# ptr - .4byte lbl_802F1460 ;# ptr - .4byte lbl_802F1468 ;# ptr - .4byte lbl_802F1470 ;# ptr - .4byte lbl_802F1478 ;# ptr - .4byte lbl_802F1480 ;# ptr - .4byte lbl_802F1488 ;# ptr - .4byte lbl_802F1490 ;# ptr - .4byte lbl_802F1498 ;# ptr - .4byte lbl_802F14A0 ;# ptr - .4byte lbl_802F14A8 ;# ptr - .4byte lbl_802F14B0 ;# ptr - .4byte lbl_802F14B8 ;# ptr - .4byte lbl_802F14C0 ;# ptr - .4byte lbl_802F14D0 ;# ptr - .4byte lbl_802F14E0 ;# ptr - .4byte lbl_802F14E8 ;# ptr - .4byte lbl_802F14F0 ;# ptr - .4byte lbl_802F14F8 ;# ptr - .4byte lbl_802F1500 ;# ptr - .4byte lbl_802F1508 ;# ptr - .4byte lbl_802F1510 ;# ptr - .4byte lbl_802F1518 ;# ptr - .4byte lbl_802F1520 ;# ptr - .4byte lbl_802F1528 ;# ptr - .4byte lbl_802F1530 ;# ptr - .4byte lbl_802F1538 ;# ptr - .4byte lbl_802F1540 ;# ptr - .4byte lbl_802F1548 ;# ptr - .4byte lbl_802F1550 ;# ptr - .4byte lbl_802F1558 ;# ptr - .4byte lbl_802F1560 ;# ptr - .4byte lbl_802F1568 ;# ptr - .4byte lbl_802F1570 ;# ptr - .4byte lbl_802F1578 ;# ptr - .4byte lbl_802F1580 ;# ptr - .4byte lbl_802F1588 ;# ptr - .4byte lbl_802F1590 ;# ptr - .4byte lbl_802F1598 ;# ptr - .4byte lbl_802F15A0 ;# ptr - .4byte lbl_802F15DC ;# ptr - .4byte lbl_802F15E4 ;# ptr - .4byte lbl_802F15EC ;# ptr - .4byte lbl_802F15FC ;# ptr - .4byte lbl_802F1604 ;# ptr - .4byte lbl_802F160C ;# ptr - .4byte lbl_802F1614 ;# ptr - .4byte lbl_802F161C ;# ptr - .4byte lbl_802F1624 ;# ptr - .4byte lbl_802F162C ;# ptr - .4byte lbl_802F1634 ;# ptr - .4byte lbl_802F163C ;# ptr - .4byte lbl_802F1644 ;# ptr - .global lbl_801D54A8 lbl_801D54A8: # ROM: 0x1D24A8 @@ -7547,405 +7026,6 @@ lbl_802C6BD8: .section .sdata -glabel lbl_802F13C8 - .4byte string_A_Memory_Card_error_has_occurred_ ;# ptr - .4byte 0 - -.global lbl_802F13D0 -lbl_802F13D0: - # ROM: 0x1EBB10 - .4byte 0x802F13C8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F13D8 -lbl_802F13D8: - # ROM: 0x1EBB18 - .4byte 0x801D42AC ;# ptr - .4byte 0 - .4byte string_This_Memory_Card_cannot_be_used_ ;# ptr - .4byte 0 - .4byte string_The_file_on_the_Memory_Card_has_been_damaged_ ;# ptr - .4byte 0 - .4byte string_This_Memory_Card_cannot_be_used_ ;# ptr - .4byte 0 - .4byte string_No_Super_Monkey_Ball_Game_Data_found_on_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_Cannot_save_data_to_the_file_ ;# ptr - .4byte 0 - .4byte string_Cannot_load_file_ ;# ptr - .4byte 0 - .4byte string_Cannot_read_file_ ;# ptr - .4byte 0 - .4byte string_Cannot_make_any_more_files_ ;# ptr - .4byte 0 - .4byte string_Saving_finished_ ;# ptr - .4byte 0 - .4byte string_Loading_finished_ ;# ptr - .4byte 0 - .4byte string_A_file_has_been_deleted_ ;# ptr - .4byte 0 - .4byte string_Formatting_has_been_interrupted_ ;# ptr - .4byte 0 - .4byte string_Saving_has_been_interrupted_ ;# ptr - .4byte 0 - .4byte string_Loading_has_been_interrupted_ ;# ptr - .4byte 0 - -.global lbl_802F1450 -lbl_802F1450: - # ROM: 0x1EBB90 - .4byte 0x801D4310 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1458 -lbl_802F1458: - # ROM: 0x1EBB98 - .4byte 0x802F13E0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1460 -lbl_802F1460: - # ROM: 0x1EBBA0 - .4byte 0x801D4384 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1468 -lbl_802F1468: - # ROM: 0x1EBBA8 - .4byte 0x801D43E4 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1470 -lbl_802F1470: - # ROM: 0x1EBBB0 - .4byte 0x801D4420 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1478 -lbl_802F1478: - # ROM: 0x1EBBB8 - .4byte 0x801D4470 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1480 -lbl_802F1480: - # ROM: 0x1EBBC0 - .4byte 0x801D44D8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1488 -lbl_802F1488: - # ROM: 0x1EBBC8 - .4byte 0x802F13E8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1490 -lbl_802F1490: - # ROM: 0x1EBBD0 - .4byte 0x801D459C ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - -.global lbl_802F1498 -lbl_802F1498: - # ROM: 0x1EBBD8 - .4byte 0x802F13F0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F14A0 -lbl_802F14A0: - # ROM: 0x1EBBE0 - .4byte 0x802F13F8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F14A8 -lbl_802F14A8: - # ROM: 0x1EBBE8 - .4byte 0x802F1400 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F14B0 -lbl_802F14B0: - # ROM: 0x1EBBF0 - .4byte 0x802F1408 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F14B8 -lbl_802F14B8: - # ROM: 0x1EBBF8 - .4byte 0x802F1410 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F14C0 -lbl_802F14C0: - # ROM: 0x1EBC00 - .4byte 0x801D46B0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F14C8 -lbl_802F14C8: - # ROM: 0x1EBC08 - .4byte 0x801D46E0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F14D0 -lbl_802F14D0: - # ROM: 0x1EBC10 - .4byte 0x801D46F8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F14D8 -lbl_802F14D8: - # ROM: 0x1EBC18 - .4byte 0x801D4710 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F14E0 -lbl_802F14E0: - # ROM: 0x1EBC20 - .4byte 0x801D4774 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F14E8 -lbl_802F14E8: - # ROM: 0x1EBC28 - .4byte 0x801D4784 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F14F0 -lbl_802F14F0: - # ROM: 0x1EBC30 - .4byte 0x801D479C ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F14F8 -lbl_802F14F8: - # ROM: 0x1EBC38 - .4byte 0x801D48A4 ;# ptr - .byte 0x00, 0x00, 0x00, 0x05 - -.global lbl_802F1500 -lbl_802F1500: - # ROM: 0x1EBC40 - .4byte 0x801D4934 ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - -.global lbl_802F1508 -lbl_802F1508: - # ROM: 0x1EBC48 - .4byte 0x801D49D0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F1510 -lbl_802F1510: - # ROM: 0x1EBC50 - .4byte 0x801D4A30 ;# ptr - .byte 0x00, 0x00, 0x00, 0x05 - -.global lbl_802F1518 -lbl_802F1518: - # ROM: 0x1EBC58 - .4byte 0x801D4A80 ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - -.global lbl_802F1520 -lbl_802F1520: - # ROM: 0x1EBC60 - .4byte 0x801D4B10 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1528 -lbl_802F1528: - # ROM: 0x1EBC68 - .4byte 0x801D4B58 ;# ptr - .byte 0x00, 0x00, 0x00, 0x05 - -.global lbl_802F1530 -lbl_802F1530: - # ROM: 0x1EBC70 - .4byte 0x801D4B80 ;# ptr - .byte 0x00, 0x00, 0x00, 0x05 - -.global lbl_802F1538 -lbl_802F1538: - # ROM: 0x1EBC78 - .4byte 0x801D4C38 ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - -.global lbl_802F1540 -lbl_802F1540: - # ROM: 0x1EBC80 - .4byte 0x802F1418 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1548 -lbl_802F1548: - # ROM: 0x1EBC88 - .4byte 0x801D4CF8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F1550 -lbl_802F1550: - # ROM: 0x1EBC90 - .4byte 0x802F1420 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1558 -lbl_802F1558: - # ROM: 0x1EBC98 - .4byte 0x802F1428 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1560 -lbl_802F1560: - # ROM: 0x1EBCA0 - .4byte 0x802F1430 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1568 -lbl_802F1568: - # ROM: 0x1EBCA8 - .4byte 0x801D4D9C ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1570 -lbl_802F1570: - # ROM: 0x1EBCB0 - .4byte 0x801D4DCC ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1578 -lbl_802F1578: - # ROM: 0x1EBCB8 - .4byte 0x801D4E18 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1580 -lbl_802F1580: - # ROM: 0x1EBCC0 - .4byte 0x802F1438 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1588 -lbl_802F1588: - # ROM: 0x1EBCC8 - .4byte 0x802F1440 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1590 -lbl_802F1590: - # ROM: 0x1EBCD0 - .4byte 0x802F1448 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1598 -lbl_802F1598: - # ROM: 0x1EBCD8 - .4byte 0x801D4EE4 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F15A0 -lbl_802F15A0: - # ROM: 0x1EBCE0 - .4byte 0x801D4FB4 ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - .4byte string_Please_press_the_p_BUTTON_B__a_Button_ ;# ptr - .4byte 0 - .4byte string_Please_press_the_p_BUTTON_B__a_Button_to_Continue_without_saving_ ;# ptr - .4byte 0 - .4byte string_There_are__d_free_blocks_on_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_There_is__d_free_block_on_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_No_free_blocks_found_on_this_Memory_Card_ ;# ptr - .4byte 0 - .4byte string_Accessing_Memory_Card_ ;# ptr - .4byte 0 - .4byte 0 - -.global lbl_802F15DC -lbl_802F15DC: - # ROM: 0x1EBD1C - .4byte 0x802F15A8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F15E4 -lbl_802F15E4: - # ROM: 0x1EBD24 - .4byte 0x802F15B0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F15EC -lbl_802F15EC: - # ROM: 0x1EBD2C - .4byte 0x802F15B8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F15F4 -lbl_802F15F4: - # ROM: 0x1EBD34 - .4byte 0x802F15C0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F15FC -lbl_802F15FC: - # ROM: 0x1EBD3C - .4byte 0x802F15C8 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F1604 -lbl_802F1604: - # ROM: 0x1EBD44 - .4byte 0x802F15D0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x01 - -.global lbl_802F160C -lbl_802F160C: - # ROM: 0x1EBD4C - .4byte 0x801D512C ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1614 -lbl_802F1614: - # ROM: 0x1EBD54 - .4byte 0x801D5154 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F161C -lbl_802F161C: - # ROM: 0x1EBD5C - .4byte 0x801D517C ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1624 -lbl_802F1624: - # ROM: 0x1EBD64 - .4byte 0x801D5208 ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F162C -lbl_802F162C: - # ROM: 0x1EBD6C - .4byte 0x801D52A4 ;# ptr - .byte 0x00, 0x00, 0x00, 0x03 - -.global lbl_802F1634 -lbl_802F1634: - # ROM: 0x1EBD74 - .4byte 0x801D530C ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - -.global lbl_802F163C -lbl_802F163C: - # ROM: 0x1EBD7C - .4byte 0x801D534C ;# ptr - .byte 0x00, 0x00, 0x00, 0x02 - -.global lbl_802F1644 -lbl_802F1644: - # ROM: 0x1EBD84 - .4byte 0x801D53B0 ;# ptr - .byte 0x00, 0x00, 0x00, 0x04 - .global lbl_802F164C lbl_802F164C: # ROM: 0x1EBD8C diff --git a/disasm-tools/kill_pointers.py b/disasm-tools/kill_pointers.py index 3b3c4c9..c58432c 100755 --- a/disasm-tools/kill_pointers.py +++ b/disasm-tools/kill_pointers.py @@ -17,6 +17,13 @@ with open('supermonkeyball.map', 'rt') as f: label = g[3] labels[addr] = label #print('label: %s, addr: %s' % (label, addr)) + else: + m = re.match(r'\s+(\w+)\s+(\w+)\s+(\w+)\s+4\s+(\w+)', line) + if m: + g = m.groups() + addr = int(g[2], 16) + label = g[3] + labels[addr] = label # replace pointers for fname in sys.argv[1:]: diff --git a/ldscript.lcf b/ldscript.lcf index 48b805d..9f6d9b1 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -24,7 +24,6 @@ FORCEACTIVE { func_8008E5F8 func_8008E64C func_8008E698 mathutil_alignment - lbl_8028FE58 lbl_802BA360 fontStrArray alignStrArray lbl_801C0B94 lbl_801C0D24 @@ -41,3 +40,6 @@ lbl_801C1264 = 0x801C1264; lbl_802F4A90 = 0x802F4A90; lbl_802F4A98 = 0x802F4A98; lbl_802F4AA4 = 0x802F4AA4; + +/* memcard.s */ +lbl_801D4288 = 0x801D4288; diff --git a/src/memcard.c b/src/memcard.c index 6330d8a..26174a8 100644 --- a/src/memcard.c +++ b/src/memcard.c @@ -100,17 +100,513 @@ int sub_8009F554(void) return !(1 - lbl_802F21B9); } -/* -extern char string_A_Memory_Card_error_has_occurred_[]; +//lbl_801D4288 = start of .data section -char *asdfasdf[] = +struct StringEntry { - string_A_Memory_Card_error_has_occurred_, - NULL, + char *str; + u32 unk4; }; -*/ -//char lbl_802F13C4[] = ".."; +struct StringTable +{ + struct StringEntry *entries; + u32 numEntries; +}; + +struct StringEntry lbl_802F13C8 = +{ + "A Memory Card error has occurred.", 0, +}; + +struct StringTable lbl_802F13D0 = {&lbl_802F13C8, 1}; + +// guessing here +extern char lbl_802C4840[]; // in bss +extern char lbl_802C4880[]; +extern char lbl_802C48C0[]; +struct StringEntry lbl_801D42AC[] = +{ + {lbl_802C4840, 0}, + {lbl_802C4880, 0}, + {lbl_802C48C0, 0}, +}; + +struct StringTable lbl_802F13D8 = {lbl_801D42AC, 0 /*why 0?*/}; + +struct StringEntry lbl_801D4310[] = +{ + {"Could not read Memory Card.", 0}, + {"Please see the Instruction Booklet for details.", 0}, +}; + +struct StringEntry stringEntry1 = +{ + "This Memory Card cannot be used.", 0, +}; + +struct StringEntry lbl_801D4384[] = +{ + {"Memory Card is not inserted.", 0}, + {"Please insert a Memory Card.", 0}, +}; + +struct StringEntry lbl_801D43E4[] = +{ + {"There is no Memory Card in Slot A.", 0}, + {"The Autosave function will be set to Off.", 0}, +}; + +struct StringEntry lbl_801D4420[] = +{ + {"Memory Card is not inserted.", 0}, + {"Please insert a Memory Card into Slot A.", 0}, +}; + +struct StringEntry lbl_801D4470[] = +{ + {"The Memory Card was removed.", 0}, + {"The operation has been stopped.", 0}, +}; + +struct StringEntry lbl_801D44D8[] = +{ + {"This Memory Card is not supported/recognized.", 0}, + {"Please insert a different Memory Card.", 0}, +}; + +struct StringEntry lbl_801D459C[] = +{ + {"The file on the Memory Card has been damaged.", 0}, + {"Please use the GameCube tm Memory Card Menu", 0}, + {"or the Save Function of the Game Data Option in this game", 0}, + {"to format your Memory Card.", 0}, +}; + +struct StringEntry stringEntry2 = +{ + "The file on the Memory Card has been damaged.", 0, +}; + +struct StringEntry stringEntry3 = +{ + "This Memory Card cannot be used.", 0, +}; + +struct StringEntry stringEntry4 = +{ + "No Super Monkey Ball Game Data found on Memory Card.", 0, +}; + +struct StringEntry stringEntry5 = +{ + "Cannot save data to the file.", 0, +}; + +struct StringEntry stringEntry6 = +{ + "Cannot load file.", 0, +}; + +struct StringEntry stringEntry7 = +{ + "Cannot read file.", 0, +}; + +struct StringEntry lbl_801D46B0[] = +{ + {"Not enough free blocks in Memory Card.", 0}, + {"There are %d free blocks,", 0}, + {"but %d blocks are required to save the data.", 0}, +}; + +struct StringEntry lbl_801D46E0[] = +{ + {"Not enough free blocks in Memory Card.", 0}, + {"There is %d free block,", 0}, + {"but %d blocks are required to save the data.", 0}, +}; + +struct StringEntry lbl_801D46F8[] = +{ + {"There are %d free blocks,", 0}, + {"but %d blocks are required to save the data.", 0}, + {"The Autosave function will be set to Off.", 0}, +}; + +struct StringEntry lbl_801D46F8_blah[] = +{ + {"There is %d free block,", 0}, + {"but %d blocks are required to save the data.", 0}, + {"The Autosave function will be set to Off.", 0}, +}; + +struct StringEntry lbl_801D4774[] = +{ + {"No free blocks in Memory Card.", 0}, + {"%d blocks are required to save the data.", 0}, +}; + +struct StringEntry lbl_801D4774_blah[] = +{ + {"No free blocks in Memory Card.", 0}, + {"%d blocks are required to save the data.", 0}, + {"The Autosave function will be set to Off.", 0}, +}; + +struct StringEntry lbl_801D4774_blah2[] = +{ + {"Not enough free blocks in Memory Card.", 0}, + {"%d blocks are required to save the data.", 0}, +}; + +struct StringEntry lbl_801D48A4[] = +{ + {"The data has been successfully saved,", 0}, + {"but there are not enough free blocks to save the data.", 0}, + {"To save Replay Data, at least 2 free blocks are required.", 0}, + {"Also, to save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D4934[] = +{ + {"The data has been successfully saved,", 0}, + {"but there are not enough free blocks to save Game Data.", 0}, + {"To save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D49D0[] = +{ + {"The data has been successfully saved,", 0}, + {"but there may not be enough free blocks to save Replay Data.", 0}, + {"Replay Data requires a maximum of 13 free blocks to save.", 0}, +}; + +struct StringEntry lbl_801D4A30[] = +{ + {"There are not enough free blocks", 0}, + {"to save a file in this Memory Card.", 0}, + {"To save Replay Data, at least 2 free blocks are required.", 0}, + {"Also, to save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D4A80[] = +{ + {"There are not enough free blocks", 0}, + {"to save Game Data in this Memory Card.", 0}, + {"To save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D4B10[] = +{ + {"There may not be enough free blocks to save Replay Data.", 0}, + {"Replay Data requires a maximum of 13 free blocks.", 0}, +}; + +struct StringEntry lbl_801D4B58[] = +{ + {"No Super Monkey Ball Game Data found on Memory Card.", 0}, + {"There are not enough free blocks in this Memory Card.", 0}, + {"To save Replay Data, at least 2 free blocks are required.", 0}, + {"Also, to save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D4B58_blah[] = +{ + {"No Super Monkey Ball Game Data found on Memory Card.", 0}, + {"There are not enough free blocks", 0}, + {"to save Game Data in this Memory Card.", 0}, + {"To save Game Data, or to save over old data,", 0}, + {"at least 3 free blocks are required.", 0}, +}; + +struct StringEntry lbl_801D4C38[] = +{ + {"No Super Monkey Ball Game Data found on Memory Card.", 0}, + {"There may not be enough free blocks", 0}, + {"to save Replay Data in this Memory Card.", 0}, + {"To save Replay Data, a maximum of 13 free blocks is required.", 0}, +}; + +struct StringEntry stringEntry8 = +{ + "Cannot make any more files.", 0, +}; + +struct StringEntry lbl_801D4CF8[] = +{ + {"The data has been succesfully saved.", 0}, + {"However, no more files can be made. ", 0}, + {"You will not be able to save the data next time.", 0}, +}; + +struct StringEntry stringEntry9 = +{ + "Saving finished.", 0, +}; + +struct StringEntry stringEntry10 = +{ + "Loading finished.", 0, +}; + +struct StringEntry stringEntry11 = +{ + "A file has been deleted.", 0, +}; + +struct StringEntry lbl_801D4D9C[] = +{ + {"The Game Data version is incorrect.", 0}, + {"Please try saving your game again.", 0}, +}; + +struct StringEntry lbl_801D4DCC[] = +{ + {"The Game Data has been damaged.", 0}, + {"Please try saving your game again.", 0}, +}; + +struct StringEntry lbl_801D4E18[] = +{ + {"The Replay Data has been damaged.", 0}, + {"Please delete the file.", 0}, +}; + +struct StringEntry stringEntry12 = +{ + "Formatting has been interrupted.", 0, +}; + +struct StringEntry stringEntry13 = +{ + "Saving has been interrupted.", 0, +}; + +struct StringEntry stringEntry14 = +{ + "Loading has been interrupted.", 0, +}; + +struct StringEntry lbl_801D4EE4[] = +{ + {"The file size has been changed.", 0}, + {"Please delete the file from the menu, and try again.", 0}, +}; + +struct StringEntry lbl_801D4FB4[] = +{ + {"No Replay Data found.", 0}, + {"In Normal mode and Practice Mode, during the Replay playback,", 0}, + {"if you access the Pause Menu and select Save Replay,", 0}, + {"you can save the Replay that you are viewing.", 0}, +}; + +struct StringTable lbl_802F1450 = {lbl_801D4310, ARRAY_COUNT(lbl_801D4310)}; +struct StringTable lbl_802F1458 = {&stringEntry1, 1}; +struct StringTable lbl_802F1460 = {lbl_801D4384, ARRAY_COUNT(lbl_801D4384)}; +struct StringTable lbl_802F1468 = {lbl_801D43E4, ARRAY_COUNT(lbl_801D43E4)}; +struct StringTable lbl_802F1470 = {lbl_801D4420, ARRAY_COUNT(lbl_801D4420)}; +struct StringTable lbl_802F1478 = {lbl_801D4470, ARRAY_COUNT(lbl_801D4470)}; +struct StringTable lbl_802F1480 = {lbl_801D44D8, ARRAY_COUNT(lbl_801D44D8)}; +struct StringTable lbl_802F1488 = {&stringEntry2, 1}; +struct StringTable lbl_802F1490 = {lbl_801D459C, ARRAY_COUNT(lbl_801D459C)}; +struct StringTable lbl_802F1498 = {&stringEntry3, 1}; +struct StringTable lbl_802F14A0 = {&stringEntry4, 1}; +struct StringTable lbl_802F14A8 = {&stringEntry5, 1}; +struct StringTable lbl_802F14B0 = {&stringEntry6, 1}; +struct StringTable lbl_802F14B8 = {&stringEntry7, 1}; +struct StringTable lbl_802F14C0 = {lbl_801D46B0, ARRAY_COUNT(lbl_801D46B0)}; +struct StringTable lbl_802F14C8 = {lbl_801D46E0, ARRAY_COUNT(lbl_801D46E0)}; +struct StringTable lbl_802F14D0 = {lbl_801D46F8, ARRAY_COUNT(lbl_801D46F8)}; +struct StringTable lbl_802F14D8 = {lbl_801D46F8_blah, ARRAY_COUNT(lbl_801D46F8_blah)}; +struct StringTable lbl_802F14E0 = {lbl_801D4774, ARRAY_COUNT(lbl_801D4774)}; +struct StringTable lbl_802F14E8 = {lbl_801D4774_blah, ARRAY_COUNT(lbl_801D4774_blah)}; +struct StringTable lbl_802F14F0 = {lbl_801D4774_blah2, ARRAY_COUNT(lbl_801D4774_blah2)}; +struct StringTable lbl_802F14F8 = {lbl_801D48A4, ARRAY_COUNT(lbl_801D48A4)}; +struct StringTable lbl_802F1500 = {lbl_801D4934, ARRAY_COUNT(lbl_801D4934)}; +struct StringTable lbl_802F1508 = {lbl_801D49D0, ARRAY_COUNT(lbl_801D49D0)}; +struct StringTable lbl_802F1510 = {lbl_801D4A30, ARRAY_COUNT(lbl_801D4A30)}; +struct StringTable lbl_802F1518 = {lbl_801D4A80, ARRAY_COUNT(lbl_801D4A80)}; +struct StringTable lbl_802F1520 = {lbl_801D4B10, ARRAY_COUNT(lbl_801D4B10)}; +struct StringTable lbl_802F1528 = {lbl_801D4B58, ARRAY_COUNT(lbl_801D4B58)}; +struct StringTable lbl_802F1530 = {lbl_801D4B58_blah, ARRAY_COUNT(lbl_801D4B58_blah)}; +struct StringTable lbl_802F1538 = {lbl_801D4C38, ARRAY_COUNT(lbl_801D4C38)}; +struct StringTable lbl_802F1540 = {&stringEntry8, 1}; +struct StringTable lbl_802F1548 = {lbl_801D4CF8, ARRAY_COUNT(lbl_801D4CF8)}; +struct StringTable lbl_802F1550 = {&stringEntry9, 1}; +struct StringTable lbl_802F1558 = {&stringEntry10, 1}; +struct StringTable lbl_802F1560 = {&stringEntry11, 1}; +struct StringTable lbl_802F1568 = {lbl_801D4D9C, ARRAY_COUNT(lbl_801D4D9C)}; +struct StringTable lbl_802F1570 = {lbl_801D4DCC, ARRAY_COUNT(lbl_801D4DCC)}; +struct StringTable lbl_802F1578 = {lbl_801D4E18, ARRAY_COUNT(lbl_801D4E18)}; +struct StringTable lbl_802F1580 = {&stringEntry12, 1}; +struct StringTable lbl_802F1588 = {&stringEntry13, 1}; +struct StringTable lbl_802F1590 = {&stringEntry14, 1}; +struct StringTable lbl_802F1598 = {lbl_801D4EE4, ARRAY_COUNT(lbl_801D4EE4)}; +struct StringTable lbl_802F15A0 = {lbl_801D4FB4, ARRAY_COUNT(lbl_801D4FB4)}; + +extern char string_Please_press_the_p_BUTTON_B__a_Button_[]; +struct StringEntry lbl_802F15A8 = +{ + "Please press the p/BUTTON_B/ a/Button.", 0, +}; + +struct StringEntry stringEntry15 = +{ + "Please press the p/BUTTON_B/ a/Button to Continue without saving.", 0, +}; + +struct StringEntry lbl_802F15B8 = +{ + "There are %d free blocks on this Memory Card.", 0, +}; + +struct StringEntry stringEntry16 = +{ + "There is %d free block on this Memory Card.", 0, +}; + +struct StringEntry stringEntry17 = +{ + "No free blocks found on this Memory Card.", 0, +}; + +struct StringEntry stringEntry18 = +{ + "Accessing Memory Card.", 0, +}; + +struct StringEntry lbl_801D512C[] = +{ + {"Now saving Replay Data.", 0}, + {"Do not touch the Memory Card or the POWER Button.", 0}, +}; + +struct StringEntry lbl_801D5154[] = +{ + {"Now saving Game Data.", 0}, + {"Do not touch the Memory Card or the POWER Button.", 0}, +}; + +struct StringEntry lbl_801D517C[] = +{ + {"Now loading Game Data.", 0}, + {"Do not touch the Memory Card or the POWER Button.", 0}, +}; + +struct StringEntry lbl_801D5208[] = +{ + {"Please use the p/LEVER/ a/or the p/BUTTON_+/ a/to highlight a selection,", 0}, + {"and press the p/BUTTON_A/ a/Button to select.", 0}, +}; + +struct StringEntry lbl_801D52A4[] = +{ + {"Please insert a Memory Card into Slot A,", 0}, + {"then press the p/BUTTON_A/ a/Button.", 0}, + {"You may cancel by pressing the p/BUTTON_B/ a/Button.", 0}, +}; + +struct StringEntry lbl_801D530C[] = +{ + {"This will format your Memory Card.", 0}, + {"All data will be lost. Is it OK to format?", 0}, + {"", 0}, + {"", 0}, +}; + +struct StringEntry lbl_801D534C[] = +{ + {"Memory Card being formatted.", 0}, + {"Do not touch the Memory Card or the POWER Button.", 0}, +}; + +struct StringEntry lbl_801D53B0[] = +{ + {"A Super Monkey Ball Game Data file already exists.", 0}, + {"Would you like to save over it?", 0}, + {"", 0}, + {"", 0}, +}; + +struct StringTable lbl_802F15DC = {&lbl_802F15A8, 1}; +struct StringTable lbl_802F15E4 = {&stringEntry15, 1}; +struct StringTable lbl_802F15EC = {&lbl_802F15B8, 1}; +struct StringTable lbl_802F15F4 = {&stringEntry16, 1}; +struct StringTable lbl_802F15FC = {&stringEntry17, 1}; +struct StringTable lbl_802F1604 = {&stringEntry18, 1}; +struct StringTable lbl_802F160C = {lbl_801D512C, ARRAY_COUNT(lbl_801D512C)}; +struct StringTable lbl_802F1614 = {lbl_801D5154, ARRAY_COUNT(lbl_801D5154)}; +struct StringTable lbl_802F161C = {lbl_801D517C, ARRAY_COUNT(lbl_801D517C)}; +struct StringTable lbl_802F1624 = {lbl_801D5208, ARRAY_COUNT(lbl_801D5208)}; +struct StringTable lbl_802F162C = {lbl_801D52A4, ARRAY_COUNT(lbl_801D52A4)}; +struct StringTable lbl_802F1634 = {lbl_801D530C, ARRAY_COUNT(lbl_801D530C)}; +struct StringTable lbl_802F163C = {lbl_801D534C, ARRAY_COUNT(lbl_801D534C)}; +struct StringTable lbl_802F1644 = {lbl_801D53B0, ARRAY_COUNT(lbl_801D53B0)}; + +struct StringTable *lbl_801D53D0[] = +{ + &lbl_802F1450, + &lbl_802F1458, + &lbl_802F1460, + &lbl_802F1468, + &lbl_802F1470, + &lbl_802F1478, + &lbl_802F1480, + &lbl_802F1488, + &lbl_802F1490, + &lbl_802F1498, + &lbl_802F14A0, + &lbl_802F14A8, + &lbl_802F14B0, + &lbl_802F14B8, + &lbl_802F14C0, + &lbl_802F14D0, + &lbl_802F14E0, + &lbl_802F14E8, + &lbl_802F14F0, + &lbl_802F14F8, + &lbl_802F1500, + &lbl_802F1508, + &lbl_802F1510, + &lbl_802F1518, + &lbl_802F1520, + &lbl_802F1528, + &lbl_802F1530, + &lbl_802F1538, + &lbl_802F1540, + &lbl_802F1548, + &lbl_802F1550, + &lbl_802F1558, + &lbl_802F1560, + &lbl_802F1568, + &lbl_802F1570, + &lbl_802F1578, + &lbl_802F1580, + &lbl_802F1588, + &lbl_802F1590, + &lbl_802F1598, + &lbl_802F15A0, + &lbl_802F15DC, + &lbl_802F15E4, + &lbl_802F15EC, + &lbl_802F15FC, + &lbl_802F1604, + &lbl_802F160C, + &lbl_802F1614, + &lbl_802F161C, + &lbl_802F1624, + &lbl_802F162C, + &lbl_802F1634, + &lbl_802F163C, + &lbl_802F1644, +}; /* void func_8009F568(void)