From 6b4d71e66c23279d7ccb4f187a0c989be9f0d2d6 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Fri, 31 Mar 2023 07:40:53 -0400 Subject: [PATCH] Match credits (#297) * Match credits data and ro data Signed-off-by: Taggerung --- data/data_credits_128480_2.s | 242 ---------------------------- mk64.ld | 4 +- src/code_80091750.c | 2 +- src/{credits_01.inc.c => credits.c} | 166 ++++++++++++++----- src/{credits_01.h => credits.h} | 4 +- 5 files changed, 134 insertions(+), 284 deletions(-) delete mode 100644 data/data_credits_128480_2.s rename src/{credits_01.inc.c => credits.c} (62%) rename src/{credits_01.h => credits.h} (95%) diff --git a/data/data_credits_128480_2.s b/data/data_credits_128480_2.s deleted file mode 100644 index a08d7a33a..000000000 --- a/data/data_credits_128480_2.s +++ /dev/null @@ -1,242 +0,0 @@ -.include "macros.inc" - -.data -glabel D_englishCredits -# English credits -.asciiz "executive producer" -.balign 4 -.asciiz "hiroshi yamauchi" -.balign 4 -.asciiz "producer" -.balign 4 -.asciiz "shigeru miyamoto" -.balign 4 -.asciiz "director" -.balign 4 -.asciiz "hideki konno" -.balign 4 -.asciiz "assistant director" -.balign 4 -.asciiz "yasuyuki oyagi" -.balign 4 -.asciiz "programmer" -.balign 4 -.asciiz "masato kimura" -.balign 4 -.asciiz "kenji yamamoto" -.balign 4 -.asciiz "yasuhiro kawaguchi" -.balign 4 -.asciiz "yuzuru ogawa" -.balign 4 -.asciiz "masahiro kawano" -.balign 4 -.asciiz "hirohito yoshimoto" -.balign 4 -.asciiz "demo sequence programmer" -.balign 4 -.asciiz "" -.balign 4 -.asciiz "hajime yajima" -.balign 4 -.asciiz "takumi kawagoe" -.balign 4 -.asciiz "visual director" -.balign 4 -.asciiz "tadashi sugiyama" -.balign 4 -.asciiz "c.g.character designer" -.balign 4 -.asciiz "" -.balign 4 -.asciiz "tomoaki kuroume" -.balign 4 -.asciiz "hiroaki takenaka" -.balign 4 -.asciiz "tokihiko toyoda" -.balign 4 -.asciiz "shigefumi hino" -.balign 4 -.asciiz "masanao arimoto" -.balign 4 -.asciiz "hisashi nogami" -.balign 4 -.asciiz "c.g.map designer" -.balign 4 -.asciiz "makoto miyanaga" -.balign 4 -.asciiz "naoki mori" -.balign 4 -.asciiz "hiroyasu kuwabara" -.balign 4 -.asciiz "music composer" -.balign 4 -.asciiz "kenta nagata" -.balign 4 -.asciiz "sound programmer" -.balign 4 -.asciiz "taro bando" -.balign 4 -.asciiz "yoji inagaki" -.balign 4 -.asciiz "sampling voice" -.balign 4 -.asciiz "charles martinet" -.balign 4 -.asciiz "leslie swan" -.balign 4 -.asciiz "isaac marshall" -.balign 4 -.asciiz "" -.balign 4 -.asciiz "" -.balign 4 -.asciiz "" -.balign 4 -.asciiz "technical support" -.balign 4 -.asciiz "takao sawano" -.balign 4 -.asciiz "tsuyoshi takahashi" -.balign 4 -.asciiz "hirohito yada" -.balign 4 -.asciiz "progress management" -.balign 4 -.asciiz "kimiyoshi fukui" -.balign 4 -.asciiz "keizo kato" -.balign 4 -.asciiz "special thanks" -.balign 4 -.asciiz "yasuhiro sakai" -.balign 4 -.asciiz "yoshitaka nishikawa" -.balign 4 -.asciiz "hideki fujii" -.balign 4 -.asciiz "yusuke nakano" -.balign 4 -.asciiz "wataru yamaguchi" -.balign 4 -.asciiz "phil sandhop" -.balign 4 -.asciiz "super mario club" -.balign 4 -.asciiz "Donkey Kong 3-D Model Provided Courtesy of Rare U.K." -.balign 4 -.asciiz "the end" -.balign 4 -.asciiz "mariokart64 staff" - -/* -The encoding on these strings is very odd. -As best as I can tell they are encoded as specified by either: -the euc-jis-2004 standard -or -the JIS X 0213 standard -I can't tell which, they may be the same thing, or one may have -superceded the other. I can't quite tell - -See http://x0213.org/codetable/euc-jis-2004-std.txt for a table -that maps euc-jis-2004 codes to equivalent Unicode - -If the MSB of a character is 0 its treated like plain Unicode. -So 0x20 is still a space, 0x4D is still "m", like in Unicode/ASCII - -If the MSB of a character is 1 its a control character, which -indicates that the next byte has a special interpretation. -For our purposes its always(?) a katakana glyph. - -See char_to_glyph_index for reference, it looks for those -control characters if the byte isn't in the usual ASCII range -*/ -# Japanse credits -.word 0xA5A8A5B0, 0xA5BCA5AF, 0xA5C6A5A3, 0xA5D620A5 -.word 0xD7A5EDA5, 0xC7A5E5A1, 0xBCA5B5A1, 0xBC000000 -.word 0xA4E4A4DE, 0xA4A6A4C1, 0x20A4D2A4, 0xEDA4B700 -.word 0xA5D7A5ED, 0xA5C7A5E5, 0xA1BCA5B5, 0xA1BC0000 -.word 0xA4DFA4E4, 0xA4E2A4C8, 0x20A4B7A4, 0xB2A4EB00 -.word 0xA5C7A5A3, 0xA5ECA5AF, 0xA5BFA1BC, 0x00000000 -.word 0xA4B3A4F3, 0xA4CE20A4, 0xD2A4C7A4, 0xAD000000 -.word 0xA5A2A5B7, 0xA5B9A5BF, 0xA5F3A5C8, 0x20A5C7A5 -.word 0xA3A5ECA5, 0xAFA5BFA1, 0xBC000000, 0xA4AAA4AA -.word 0xA4E4A4AE, 0x20A4E4A4, 0xB9A4E6A4, 0xAD000000 -.word 0xA5D7A5ED, 0xA5B0A5E9, 0xA5DEA1BC, 0x00000000 -.word 0xA4ADA4E0, 0xA4E920A4, 0xDEA4B5A4, 0xC8000000 -.word 0xA4E4A4DE, 0xA4E2A4C8, 0x20A4B1A4, 0xF3A4B800 -.word 0xA4ABA4EF, 0xA4B0A4C1, 0x20A4E4A4, 0xB9A4D2A4 -.word 0xED000000, 0xA4AAA4AC, 0xA4EF20A4, 0xE6A4BAA4 -.word 0xEB000000, 0xA4ABA4EF, 0xA4CE20A4, 0xDEA4B5A4 -.word 0xD2A4ED00, 0xA4E8A4B7, 0xA4E2A4C8, 0x20A4D2A4 -.word 0xEDA4D2A4, 0xC8000000, 0xA5C7A5E2, 0x20A5B7A1 -.word 0xBCA5B1A5, 0xF3A5B920, 0xA5D7A5ED, 0xA5B0A5E9 -.word 0xA5DEA1BC, 0x00000000, 0x00000000, 0xA4E4A4B8 -.word 0xA4DE20A4, 0xCFA4B8A4, 0xE1000000, 0xA4ABA4EF -.word 0xA4B4A4A8, 0x20A4BFA4, 0xAFA4DF00, 0xA5D3A5B8 -.word 0xA5E5A5A2, 0xA5EB20A5, 0xC7A5A3A5, 0xECA5AFA5 -.word 0xBFA1BC00, 0xA4B9A4AE, 0xA4E4A4DE, 0x20A4BFA4 -.word 0xC0A4B700, 0x636720A5, 0xADA5E3A5, 0xE9A5AFA5 -.word 0xBFA1BC20, 0xA5C7A5B6, 0xA5A4A5CA, 0xA1BC0000 -.word 0x00000000, 0xA4AFA4ED, 0xA4A6A4E1, 0x20A4C8A4 -.word 0xE2A4A2A4, 0xAD000000, 0xA4BFA4B1, 0xA4CAA4AB -.word 0x20A4D2A4, 0xEDA4A2A4, 0xAD000000, 0xA4C8A4E8 -.word 0xA4C020A4, 0xC8A4ADA4, 0xD2A4B300, 0xA4D2A4CE -.word 0x20A4B7A4, 0xB2A4D5A4, 0xDF000000, 0xA4A2A4EA -.word 0xA4E2A4C8, 0x20A4DEA4, 0xB5A4CAA4, 0xAA000000 -.word 0xA4CEA4AC, 0xA4DF20A4, 0xD2A4B5A4, 0xB7000000 -.word 0x636720A5, 0xDEA5C3A5, 0xD720A5C7, 0xA5B6A5A4 -.word 0xA5CAA1BC, 0x00000000, 0xA4DFA4E4, 0xA4CAA4AC -.word 0x20A4DEA4, 0xB3A4C800, 0xA4E2A4EA, 0x20A4CAA4 -.word 0xAAA4AD00, 0xA4AFA4EF, 0xA4D0A4E9, 0x20A4D2A4 -.word 0xEDA4E4A4, 0xB9000000, 0xA5DFA5E5, 0xA1BCA5B8 -.word 0xA5C3A5AF, 0x20A5B3A5, 0xF3A5DDA1, 0xBCA5B6A1 -.word 0xBC000000, 0xA4CAA4AC, 0xA4BF20A4, 0xB1A4F3A4 -.word 0xBF000000, 0xA5B5A5A6, 0xA5F3A5C9, 0x20A5D7A5 -.word 0xEDA5B0A5, 0xE9A5DEA1, 0xBC000000, 0xA4D0A4F3 -.word 0xA4C9A4A6, 0x20A4BFA4, 0xEDA4A600, 0xA4A4A4CA -.word 0xA4ACA4AD, 0x20A4E8A4, 0xA6A4B800, 0xA5B5A5F3 -.word 0xA5D7A5EA, 0xA5F3A5F3, 0xA5B020A5, 0xDCA5A4A5 -.word 0xB9000000, 0xA4B3A4A6, 0xA4C5A4AD, 0x20A4A2A4 -.word 0xB5A4B300, 0xA4DEA4EB, 0xA4CE20A4, 0xC8A4E2A4 -.word 0xB3000000, 0xA4C1A4E3, 0xA1BCA4EB, 0xA4BA20A4 -.word 0xDEA4EBA4, 0xC6A4A3A4, 0xCD000000, 0xA4B8A4E5 -.word 0xA4EAA4A2, 0xA4F320A4, 0xD0A4EBA4, 0xC0A4B3A4 -.word 0xD5000000, 0xA4C8A4DE, 0xA4B920A4, 0xB9A4D4A4 -.word 0xF3A4C9A4, 0xE9A1BC00, 0xA4B8A4E7, 0xA4F320A4 -.word 0xD2A4E5A1, 0xBCA4E9A4, 0xC8A4F300, 0xA5C6A5AF -.word 0xA5CBA5AB, 0xA5EB20A5, 0xB5A5DDA1, 0xBCA5C800 -.word 0xA4B5A4EF, 0xA4CE20A4, 0xBFA4ABA4, 0xAA000000 -.word 0xA4BFA4AB, 0xA4CFA4B7, 0x20A4C4A4, 0xE8A4B700 -.word 0xA4E4A4C0, 0x20A4D2A4, 0xEDA4D2A4, 0xC8000000 -.word 0xA5D7A5ED, 0xA5B0A5EC, 0xA5B920A5, 0xDEA5CDA1 -.word 0xBCA5B8A5, 0xE1A5F3A5, 0xC8000000, 0xA4D5A4AF -.word 0xA4A420A4, 0xADA4DFA4, 0xE8A4B700, 0xA4ABA4C8 -.word 0xA4A620A4, 0xB1A4A4A4, 0xBEA4A600, 0xA5B9A5DA -.word 0xA5B7A5E3, 0xA5EB20A5, 0xB5A5F3A5, 0xAFA5B900 -.word 0xA4B5A4AB, 0xA4A420A4, 0xE4A4B9A4, 0xD2A4ED00 -.word 0xA4CBA4B7, 0xA4ABA4EF, 0x20A4E8A4, 0xB7A4BFA4 -.word 0xAB000000, 0xA4D5A4B8, 0xA4A420A4, 0xD2A4C7A4 -.word 0xAD000000, 0xA4CAA4AB, 0xA4CE20A4, 0xE6A4A6A4 -.word 0xB9A4B100, 0xA4E4A4DE, 0xA4B0A4C1, 0x20A4EFA4 -.word 0xBFA4EB00, 0xA4CBA4F3, 0xA4C6A4F3, 0xA4C9A4A6 -.word 0x20A4B8A4, 0xE7A1BCA4, 0xABA4A400, 0xA4B9A1BC -.word 0xA4D1A1BC, 0x20A4DEA4, 0xEAA4AA20, 0xA4AFA4E9 -.word 0xA4D60000, 0xA4ECA4A2, 0x20A4EAA4, 0xDFA4C6A4 -.word 0xC3A4C900, 0x2020A4AA, 0xA4B7A4DE, 0xA4A40000 -.word 0x20A4DEA4, 0xEAA4AAA4, 0xABA1BCA4, 0xC8363420 -.word 0xA4B9A4BF, 0xA4C3A4D5 - -.word 0x00000000, 0x00000000, 0x00000000, 0x00000000 - -#glabel D_80287470 -#.word 0x3F2AAAAB - -#glabel D_80287474 -#.word 0x3E2AAAAB - -#glabel D_80287478 -#.word 0x3F666666 - -#glabel D_8028747C -#.word 0xC52EC000 diff --git a/mk64.ld b/mk64.ld index a6fdd1b7f..0026814b9 100644 --- a/mk64.ld +++ b/mk64.ld @@ -407,11 +407,11 @@ SECTIONS BUILD_DIR/src/code_80280650.o(.data); BUILD_DIR/data/data_credits_128480.o(.data); BUILD_DIR/src/dl_unk_80284EE0.inc.o(.data); - BUILD_DIR/src/credits_01.inc.o(.data); + BUILD_DIR/src/credits.o(.data); BUILD_DIR/src/ceremony_and_credits.o(.data); BUILD_DIR/src/code_80280650.o(.rodata); BUILD_DIR/src/camera_junk.o(.rodata); - BUILD_DIR/data/data_credits_128480_2.o(.data); + BUILD_DIR/src/credits.o(.rodata); BUILD_DIR/src/ceremony_and_credits.o(.rodata); } END_SEG(code_80280000) diff --git a/src/code_80091750.c b/src/code_80091750.c index ec09a128d..41945d2d0 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -9,7 +9,7 @@ #include "menus.h" #include "code_800B45E0.h" #include "code_80057C60.h" -#include "credits_01.h" +#include "credits.h" #include "data_segment2.h" #include "code_800AF9B0.h" #include "variables.h" diff --git a/src/credits_01.inc.c b/src/credits.c similarity index 62% rename from src/credits_01.inc.c rename to src/credits.c index f0cee9c9e..3331dab3c 100644 --- a/src/credits_01.inc.c +++ b/src/credits.c @@ -1,4 +1,4 @@ -#include "credits_01.h" +#include "credits.h" #include "defines.h" struct_802850C0_entry D_802850C0[] = { @@ -67,43 +67,135 @@ struct_802850C0_entry D_802850C0[] = { {0.90f, 520, 130, 160, 130, SLIDE_LEFT, TEXT_YELLOW, 0}, }; -// These are pointers to the actual credit text after its been copied out of -// the cartridge ROM -// It would be nice to find a way to instantiate this array that didn't involve -// a bunch of type-casting char *D_802854B0[] = { // English Credits - (char*) 0x80286BB0, (char*) 0x80286BC4, (char*) 0x80286BD8, (char*) 0x80286BE4, - (char*) 0x80286BF8, (char*) 0x80286C04, (char*) 0x80286C14, (char*) 0x80286C28, - (char*) 0x80286C38, (char*) 0x80286C44, (char*) 0x80286C54, (char*) 0x80286C64, - (char*) 0x80286C78, (char*) 0x80286C88, (char*) 0x80286C98, (char*) 0x80286CAC, - (char*) 0x80286CC8, (char*) 0x80286CCC, (char*) 0x80286CDC, (char*) 0x80286CEC, - (char*) 0x80286CFC, (char*) 0x80286D10, (char*) 0x80286D28, (char*) 0x80286D2C, - (char*) 0x80286D3C, (char*) 0x80286D50, (char*) 0x80286D60, (char*) 0x80286D70, - (char*) 0x80286D80, (char*) 0x80286D90, (char*) 0x80286DA4, (char*) 0x80286DB4, - (char*) 0x80286DC0, (char*) 0x80286DD4, (char*) 0x80286DE4, (char*) 0x80286DF4, - (char*) 0x80286E08, (char*) 0x80286E14, (char*) 0x80286E24, (char*) 0x80286E34, - (char*) 0x80286E48, (char*) 0x80286E54, (char*) 0x80286E64, (char*) 0x80286E68, - (char*) 0x80286E6C, (char*) 0x80286E70, (char*) 0x80286E84, (char*) 0x80286E94, - (char*) 0x80286EA8, (char*) 0x80286EB8, (char*) 0x80286ECC, (char*) 0x80286EDC, - (char*) 0x80286EE8, (char*) 0x80286EF8, (char*) 0x80286F08, (char*) 0x80286F1C, - (char*) 0x80286F2C, (char*) 0x80286F3C, (char*) 0x80286F50, (char*) 0x80286F60, - (char*) 0x80286F74, (char*) 0x80286FAC, (char*) 0x80286FB4, + "executive producer", + "hiroshi yamauchi", + "producer", + "shigeru miyamoto", + "director", + "hideki konno", + "assistant director", + "yasuyuki oyagi", + "programmer", + "masato kimura", + "kenji yamamoto", + "yasuhiro kawaguchi", + "yuzuru ogawa", + "masahiro kawano", + "hirohito yoshimoto", + "demo sequence programmer", + "", + "hajime yajima", + "takumi kawagoe", + "visual director", + "tadashi sugiyama", + "c.g.character designer", + "", + "tomoaki kuroume", + "hiroaki takenaka", + "tokihiko toyoda", + "shigefumi hino", + "masanao arimoto", + "hisashi nogami", + "c.g.map designer", + "makoto miyanaga", + "naoki mori", + "hiroyasu kuwabara", + "music composer", + "kenta nagata", + "sound programmer", + "taro bando", + "yoji inagaki", + "sampling voice", + "charles martinet", + "leslie swan", + "isaac marshall", + "", + "", + "", + "technical support", + "takao sawano", + "tsuyoshi takahashi", + "hirohito yada", + "progress management", + "kimiyoshi fukui", + "keizo kato", + "special thanks", + "yasuhiro sakai", + "yoshitaka nishikawa", + "hideki fujii", + "yusuke nakano", + "wataru yamaguchi", + "phil sandhop", + "super mario club", + "Donkey Kong 3-D Model Provided Courtesy of Rare U.K.", + "the end", + "mariokart64 staff", // Japanese Credits - (char*) 0x80286FC8, (char*) 0x80286FE8, (char*) 0x80286FF8, (char*) 0x80287008, - (char*) 0x80287018, (char*) 0x80287028, (char*) 0x80287038, (char*) 0x80287054, - (char*) 0x80287068, (char*) 0x80287078, (char*) 0x80287088, (char*) 0x80287098, - (char*) 0x802870AC, (char*) 0x802870BC, (char*) 0x802870CC, (char*) 0x802870E0, - (char*) 0x80287100, (char*) 0x80287104, (char*) 0x80287114, (char*) 0x80287124, - (char*) 0x8028713C, (char*) 0x8028714C, (char*) 0x80287168, (char*) 0x8028716C, - (char*) 0x80287180, (char*) 0x80287194, (char*) 0x802871A4, (char*) 0x802871B4, - (char*) 0x802871C8, (char*) 0x802871D8, (char*) 0x802871F0, (char*) 0x80287200, - (char*) 0x8028720C, (char*) 0x80287220, (char*) 0x8028723C, (char*) 0x8028724C, - (char*) 0x80287264, (char*) 0x80287274, (char*) 0x80287284, (char*) 0x8028729C, - (char*) 0x802872AC, (char*) 0x802872BC, (char*) 0x802872D4, (char*) 0x802872EC, - (char*) 0x80287300, (char*) 0x80287314, (char*) 0x80287328, (char*) 0x80287338, - (char*) 0x80287348, (char*) 0x80287358, (char*) 0x80287374, (char*) 0x80287384, - (char*) 0x80287394, (char*) 0x802873A8, (char*) 0x802873B8, (char*) 0x802873CC, - (char*) 0x802873DC, (char*) 0x802873EC, (char*) 0x802873FC, (char*) 0x80287414, - (char*) 0x8028742C, (char*) 0x8028743C, (char*) 0x80287448, + // Note that these are EUC-JP encoded, see: + // https://en.wikipedia.org/wiki/Extended_Unix_Code#EUC-JP + "エグゼクティブ プロデューサー", + "やまうち ひろし", + "プロデューサー", + "みやもと しげる", + "ディレクター", + "こんの ひでき", + "アシスタント ディレクター", + "おおやぎ やすゆき", + "プログラマー", + "きむら まさと", + "やまもと けんじ", + "かわぐち やすひろ", + "おがわ ゆずる", + "かわの まさひろ", + "よしもと ひろひと", + "デモ シーケンス プログラマー", + "", + "やじま はじめ", + "かわごえ たくみ", + "ビジュアル ディレクター", + "すぎやま ただし", + "cg キャラクター デザイナー", + "", + "くろうめ ともあき", + "たけなか ひろあき", + "とよだ ときひこ", + "ひの しげふみ", + "ありもと まさなお", + "のがみ ひさし", + "cg マップ デザイナー", + "みやなが まこと", + "もり なおき", + "くわばら ひろやす", + "ミュージック コンポーザー", + "ながた けんた", + "サウンド プログラマー", + "ばんどう たろう", + "いながき ようじ", + "サンプリンング ボイス", + "こうづき あさこ", + "まるの ともこ", + "ちゃーるず まるてぃね", + "じゅりあん ばるだこふ", + "とます すぴんどらー", + "じょん ひゅーらとん", + "テクニカル サポート", + "さわの たかお", + "たかはし つよし", + "やだ ひろひと", + "プログレス マネージメント", + "ふくい きみよし", + "かとう けいぞう", + "スペシャル サンクス", + "さかい やすひろ", + "にしかわ よしたか", + "ふじい ひでき", + "なかの ゆうすけ", + "やまぐち わたる", + "にんてんどう じょーかい", + "すーぱー まりお くらぶ", + "れあ りみてっど", + " おしまい", + " まりおかーと64 すたっふ" }; diff --git a/src/credits_01.h b/src/credits.h similarity index 95% rename from src/credits_01.h rename to src/credits.h index e4c0a5d69..277cf0196 100644 --- a/src/credits_01.h +++ b/src/credits.h @@ -1,5 +1,5 @@ -#ifndef CREDIT_01_H -#define CREDIT_01_H +#ifndef CREDITS_H +#define CREDITS_H #include "PR/ultratypes.h"