commit
83456ab34a
13 changed files with 746 additions and 192 deletions
|
|
@ -19,9 +19,9 @@ modules:
|
||||||
splits: config/GMPE01_00/rels/bootDll/splits.txt
|
splits: config/GMPE01_00/rels/bootDll/splits.txt
|
||||||
links: []
|
links: []
|
||||||
extract:
|
extract:
|
||||||
- symbol: logoNintendoData
|
- symbol: nintendoData
|
||||||
binary: logoNintendoData.bin
|
binary: nintendoData.bin
|
||||||
header: logoNintendoData.inc
|
header: nintendoData.inc
|
||||||
- object: files/dll/instDll.rel
|
- object: files/dll/instDll.rel
|
||||||
hash: f09399fee83c63abfe2adb25341152adad959a93
|
hash: f09399fee83c63abfe2adb25341152adad959a93
|
||||||
symbols: config/GMPE01_00/rels/instDll/symbols.txt
|
symbols: config/GMPE01_00/rels/instDll/symbols.txt
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,7 @@ REL/executor.c:
|
||||||
.text start:0x00000000 end:0x000000A0
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/bootDll/main.c:
|
REL/bootDll/main.c:
|
||||||
.text start:0x000000A0 end:0x00002944
|
.text start:0x000000A0 end:0x000029C8
|
||||||
.rodata start:0x00000000 end:0x000000DC
|
.rodata start:0x00000000 end:0x000000DC
|
||||||
.data start:0x00000000 end:0x000000A0
|
.data start:0x00000000 end:0x0000311D
|
||||||
.bss start:0x00000000 end:0x0000005C
|
.bss start:0x00000000 end:0x0000005C
|
||||||
|
|
||||||
REL/bootDll/nintendo_data.c:
|
|
||||||
.text start:0x00002944 end:0x000029C8
|
|
||||||
.data start:0x000000A0 end:0x0000311D
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
ObjectSetup = .text:0x000000A0; // type:function size:0x1CC
|
ObjectSetup = .text:0x000000A0; // type:function size:0x1CC
|
||||||
BootProc = .text:0x0000026C; // type:function size:0x78C scope:local
|
BootExec = .text:0x0000026C; // type:function size:0x78C
|
||||||
UpdateDemoMess = .text:0x000009F8; // type:function size:0xC8 scope:local
|
UpdateDemoMess = .text:0x000009F8; // type:function size:0xC8 scope:local
|
||||||
ProgressiveProc = .text:0x00000AC0; // type:function size:0x6B8 scope:local
|
BootProgExec = .text:0x00000AC0; // type:function size:0x6B8
|
||||||
fn_1_1178 = .text:0x00001178; // type:function size:0x3B4
|
DebugCamOutView = .text:0x00001178; // type:function size:0x3B4
|
||||||
fn_1_152C = .text:0x0000152C; // type:function size:0xBD4
|
DebugCamUpdate = .text:0x0000152C; // type:function size:0xBD4
|
||||||
TitleInit = .text:0x00002100; // type:function size:0x374 scope:local
|
BootTitleCreate = .text:0x00002100; // type:function size:0x374
|
||||||
TitleProc = .text:0x00002474; // type:function size:0x4D0 scope:local
|
BootTitleExec = .text:0x00002474; // type:function size:0x4D0
|
||||||
logoReadNintendo = .text:0x00002944; // type:function size:0x84
|
NintendoDataDecode = .text:0x00002944; // type:function size:0x84
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
||||||
|
|
@ -50,20 +50,21 @@ lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:d
|
||||||
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float
|
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 scope:local data:string
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 scope:local data:string
|
||||||
lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 scope:local data:string
|
lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 scope:local data:string
|
||||||
demoTimingTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte
|
demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte
|
||||||
progressivePosTbl = .data:0x00000050; // type:object size:0x8 scope:local
|
progPosTbl = .data:0x00000050; // type:object size:0x8 scope:local
|
||||||
lbl_1_data_58 = .data:0x00000058; // type:object size:0x4 scope:local
|
debugCamTbl = .data:0x00000058; // type:object size:0x4 scope:local
|
||||||
lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A scope:local data:string
|
lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A scope:local data:string
|
||||||
lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 scope:local data:string
|
lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 scope:local data:string
|
||||||
lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 scope:local
|
lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 scope:local
|
||||||
logoNintendoData = .data:0x000000A0; // type:object size:0x307D align:32
|
nintendoData = .data:0x000000A0; // type:object size:0x307D align:32
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4
|
debugCamOnF = .bss:0x00000000; // type:object size:0x4
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2
|
||||||
titleGroup = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte
|
bootGrpId = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte
|
||||||
titleModel = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte
|
titleMdlId = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte
|
||||||
demoWin = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte
|
demoWinId = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC
|
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC
|
||||||
lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:float
|
debugCamZoom = .bss:0x0000001C; // type:object size:0x8 data:float
|
||||||
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:float
|
debugCamPos = .bss:0x00000024; // type:object size:0x18 data:float
|
||||||
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x18 data:float
|
debugCamRot = .bss:0x0000003C; // type:object size:0x18 data:float
|
||||||
objman = .bss:0x00000054; // type:object size:0x8 scope:local data:4byte
|
objman = .bss:0x00000054; // type:object size:0x4 data:4byte
|
||||||
|
debugOutView = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ modules:
|
||||||
splits: config/GMPE01_00/rels/bootDll/splits.txt
|
splits: config/GMPE01_00/rels/bootDll/splits.txt
|
||||||
links: []
|
links: []
|
||||||
extract:
|
extract:
|
||||||
- symbol: logoNintendoData
|
- symbol: nintendoData
|
||||||
binary: logoNintendoData.bin
|
binary: nintendoData.bin
|
||||||
header: logoNintendoData.inc
|
header: nintendoData.inc
|
||||||
- object: files/dll/instDll.rel
|
- object: files/dll/instDll.rel
|
||||||
hash: f09399fee83c63abfe2adb25341152adad959a93
|
hash: f09399fee83c63abfe2adb25341152adad959a93
|
||||||
symbols: config/GMPE01_00/rels/instDll/symbols.txt
|
symbols: config/GMPE01_00/rels/instDll/symbols.txt
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,10 @@ modules:
|
||||||
symbols: config/GMPP01_00/rels/bootDll/symbols.txt
|
symbols: config/GMPP01_00/rels/bootDll/symbols.txt
|
||||||
splits: config/GMPP01_00/rels/bootDll/splits.txt
|
splits: config/GMPP01_00/rels/bootDll/splits.txt
|
||||||
links: []
|
links: []
|
||||||
|
extract:
|
||||||
|
- symbol: nintendoData
|
||||||
|
binary: nintendoData.bin
|
||||||
|
header: nintendoData.inc
|
||||||
- object: files/dll/instDll.rel
|
- object: files/dll/instDll.rel
|
||||||
hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8
|
hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8
|
||||||
symbols: config/GMPP01_00/rels/instDll/symbols.txt
|
symbols: config/GMPP01_00/rels/instDll/symbols.txt
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,17 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/bootDll/main.c:
|
||||||
|
.text start:0x000000A0 end:0x00002AE0
|
||||||
|
.rodata start:0x00000000 end:0x000000F8
|
||||||
|
.data start:0x00000000 end:0x00003120
|
||||||
|
.bss start:0x00000000 end:0x00000060
|
||||||
|
|
||||||
|
REL/bootDll/language.c:
|
||||||
|
.text start:0x00002AE0 end:0x00003D9C
|
||||||
|
.rodata start:0x000000F8 end:0x000001A0
|
||||||
|
.data start:0x00003120 end:0x00003156
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x204
|
ObjectSetup = .text:0x000000A0; // type:function size:0x204
|
||||||
fn_1_2A4 = .text:0x000002A4; // type:function size:0x8B4
|
BootExec = .text:0x000002A4; // type:function size:0x8B4
|
||||||
fn_1_B58 = .text:0x00000B58; // type:function size:0xC8
|
UpdateDemoMess = .text:0x00000B58; // type:function size:0xC8 scope:local
|
||||||
fn_1_C20 = .text:0x00000C20; // type:function size:0x3B4
|
DebugCamOutView = .text:0x00000C20; // type:function size:0x3B4
|
||||||
fn_1_FD4 = .text:0x00000FD4; // type:function size:0xB88
|
DebugCamUpdate = .text:0x00000FD4; // type:function size:0xB88
|
||||||
fn_1_1B5C = .text:0x00001B5C; // type:function size:0x460
|
BootTitleCreate = .text:0x00001B5C; // type:function size:0x460
|
||||||
fn_1_1FBC = .text:0x00001FBC; // type:function size:0xAA0
|
BootTitleExec = .text:0x00001FBC; // type:function size:0xAA0
|
||||||
fn_1_2A5C = .text:0x00002A5C; // type:function size:0x84
|
NintendoDataDecode = .text:0x00002A5C; // type:function size:0x84
|
||||||
fn_1_2AE0 = .text:0x00002AE0; // type:function size:0x10C8
|
LanguageMenuExec = .text:0x00002AE0; // type:function size:0x10C8
|
||||||
fn_1_3BA8 = .text:0x00003BA8; // type:function size:0x1F4
|
LanguageBootGet = .text:0x00003BA8; // type:function size:0x1F4
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
||||||
|
|
@ -86,22 +86,25 @@ lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double
|
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string
|
||||||
lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string
|
lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string
|
||||||
lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 data:2byte
|
demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte
|
||||||
lbl_1_data_50 = .data:0x00000050; // type:object size:0x4
|
debugCamTbl = .data:0x00000050; // type:object size:0x4 scope:local
|
||||||
lbl_1_data_54 = .data:0x00000054; // type:object size:0x1A data:string
|
lbl_1_data_54 = .data:0x00000054; // type:object size:0x1A data:string
|
||||||
lbl_1_data_6E = .data:0x0000006E; // type:object size:0x13 data:string
|
lbl_1_data_6E = .data:0x0000006E; // type:object size:0x13 data:string
|
||||||
lbl_1_data_81 = .data:0x00000081; // type:object size:0x1F
|
lbl_1_data_81 = .data:0x00000081; // type:object size:0x1F
|
||||||
lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x3080 data:4byte
|
nintendoData = .data:0x000000A0; // type:object size:0x307D align:32
|
||||||
lbl_1_data_3120 = .data:0x00003120; // type:object size:0x14
|
flagFileTbl = .data:0x00003120; // type:object size:0x14 scope:local
|
||||||
lbl_1_data_3134 = .data:0x00003134; // type:object size:0x5 data:string
|
lbl_1_data_3134 = .data:0x00003134; // type:object size:0x5 data:string
|
||||||
lbl_1_data_3139 = .data:0x00003139; // type:object size:0xD data:string
|
lbl_1_data_3139 = .data:0x00003139; // type:object size:0xD data:string
|
||||||
lbl_1_data_3146 = .data:0x00003146; // type:object size:0x10 data:string
|
lbl_1_data_3146 = .data:0x00003146; // type:object size:0x10 data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
debugCamOnF = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x6
|
initLanguageF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte
|
||||||
lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte
|
lbl_1_bss_4 = .bss:0x00000008; // type:object size:0x2
|
||||||
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x6 data:2byte
|
bootGrpId = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_bss_12 = .bss:0x00000012; // type:object size:0xE data:2byte
|
titleMdlId = .bss:0x0000000C; // type:object size:0x6 scope:local data:2byte
|
||||||
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float
|
demoWinId = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float
|
lbl_1_bss_10 = .bss:0x00000014; // type:object size:0xC data:float
|
||||||
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float
|
debugCamZoom = .bss:0x00000020; // type:object size:0x8 data:float
|
||||||
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte
|
debugCamPos = .bss:0x00000028; // type:object size:0x18 data:float
|
||||||
|
debugCamRot = .bss:0x00000040; // type:object size:0x18 data:float
|
||||||
|
objman = .bss:0x00000058; // type:object size:0x4 data:4byte
|
||||||
|
debugOutView = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,10 @@ modules:
|
||||||
symbols: config/GMPP01_00/rels/bootDll/symbols.txt
|
symbols: config/GMPP01_00/rels/bootDll/symbols.txt
|
||||||
splits: config/GMPP01_00/rels/bootDll/splits.txt
|
splits: config/GMPP01_00/rels/bootDll/splits.txt
|
||||||
links: []
|
links: []
|
||||||
|
extract:
|
||||||
|
- symbol: nintendoData
|
||||||
|
binary: nintendoData.bin
|
||||||
|
header: nintendoData.inc
|
||||||
- object: files/dll/instDll.rel
|
- object: files/dll/instDll.rel
|
||||||
hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8
|
hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8
|
||||||
symbols: config/GMPP01_00/rels/instDll/symbols.txt
|
symbols: config/GMPP01_00/rels/instDll/symbols.txt
|
||||||
|
|
|
||||||
|
|
@ -835,8 +835,8 @@ config.libs = [
|
||||||
Rel(
|
Rel(
|
||||||
"bootDll",
|
"bootDll",
|
||||||
objects={
|
objects={
|
||||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/main.c"),
|
Object(Matching, "REL/bootDll/main.c"),
|
||||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/nintendo_data.c"),
|
Object(Matching, "REL/bootDll/language.c"),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Rel(
|
Rel(
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,9 @@
|
||||||
#define DATANUM_TITLE_H
|
#define DATANUM_TITLE_H
|
||||||
|
|
||||||
#include "datadir_enum.h"
|
#include "datadir_enum.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
|
#if VERSION_NTSC
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
TITLE_NINTENDO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0),
|
TITLE_NINTENDO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0),
|
||||||
|
|
@ -20,4 +23,40 @@ enum {
|
||||||
TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13),
|
TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TITLE_HUDSON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0),
|
||||||
|
TITLE_PROGRESSIVE_CHOOSE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 1),
|
||||||
|
TITLE_PROGRESSIVE_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 2),
|
||||||
|
TITLE_PROGRESSIVE_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 3),
|
||||||
|
TITLE_PROGRESSIVE_CURSOR_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 4),
|
||||||
|
TITLE_PROGRESSIVE_CURSOR_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 5),
|
||||||
|
TITLE_BG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 6),
|
||||||
|
TITLE_LOGO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 7),
|
||||||
|
TITLE_COPYRIGHT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 8),
|
||||||
|
TITLE_CHAR_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 9),
|
||||||
|
TITLE_CUBE_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 10),
|
||||||
|
TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 11),
|
||||||
|
TITLE_LANGUAGEBG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 12),
|
||||||
|
TITLE_FLAG_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13),
|
||||||
|
TITLE_FLAG_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 14),
|
||||||
|
TITLE_FLAG_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 15),
|
||||||
|
TITLE_FLAG_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 16),
|
||||||
|
TITLE_FLAG_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 17),
|
||||||
|
TITLE_FLAG_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 18),
|
||||||
|
TITLE_PRESS_START_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 19),
|
||||||
|
TITLE_PRESS_START_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 20),
|
||||||
|
TITLE_PRESS_START_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 21),
|
||||||
|
TITLE_PRESS_START_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 22),
|
||||||
|
TITLE_PRESS_START_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 23),
|
||||||
|
TITLE_LANGUAGE_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 24),
|
||||||
|
TITLE_LANGUAGE_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 25),
|
||||||
|
TITLE_LANGUAGE_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 26),
|
||||||
|
TITLE_LANGUAGE_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 27),
|
||||||
|
TITLE_LANGUAGE_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 28),
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
280
src/REL/bootDll/language.c
Normal file
280
src/REL/bootDll/language.c
Normal file
|
|
@ -0,0 +1,280 @@
|
||||||
|
#include "version.h"
|
||||||
|
#if VERSION_PAL
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "game/card.h"
|
||||||
|
#include "game/saveload.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/hsfanim.h"
|
||||||
|
#include "game/window.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/wipe.h"
|
||||||
|
#include "game/pad.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/chrman.h"
|
||||||
|
#include "game/minigame_seq.h"
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
|
#include "ext_math.h"
|
||||||
|
|
||||||
|
#include "data_num/title.h"
|
||||||
|
|
||||||
|
s32 flagFileTbl[] = {
|
||||||
|
TITLE_FLAG_EN_ANM,
|
||||||
|
TITLE_FLAG_ES_ANM,
|
||||||
|
TITLE_FLAG_IT_ANM,
|
||||||
|
TITLE_FLAG_FR_ANM,
|
||||||
|
TITLE_FLAG_GE_ANM
|
||||||
|
};
|
||||||
|
|
||||||
|
extern int SystemInitF;
|
||||||
|
|
||||||
|
extern Process *objman;
|
||||||
|
extern Vec debugCamRot[2];
|
||||||
|
extern Vec debugCamPos[2];
|
||||||
|
extern float debugCamZoom[2];
|
||||||
|
|
||||||
|
void DebugCamOutView(omObjData *obj);
|
||||||
|
void DebugCamUpdate(omObjData *obj);
|
||||||
|
|
||||||
|
BOOL LanguageMenuExec(void)
|
||||||
|
{
|
||||||
|
s16 language = GWLanguageGet()-1;
|
||||||
|
s16 i;
|
||||||
|
s16 gid;
|
||||||
|
s16 time;
|
||||||
|
s16 choiceChange;
|
||||||
|
AnimData *anim;
|
||||||
|
s16 sprid;
|
||||||
|
s16 choice;
|
||||||
|
omObjData *outView;
|
||||||
|
omObjData *updateCamera;
|
||||||
|
s16 modelId[5];
|
||||||
|
s16 winId[5];
|
||||||
|
|
||||||
|
float winSize[2];
|
||||||
|
float dist;
|
||||||
|
float posX;
|
||||||
|
float posZ;
|
||||||
|
|
||||||
|
for(i=0; i<4; i++) {
|
||||||
|
GWPlayerCfg[i].character = i;
|
||||||
|
}
|
||||||
|
gid = HuSprGrpCreate(1);
|
||||||
|
anim = HuSprAnimReadFile(TITLE_LANGUAGEBG_ANM);
|
||||||
|
sprid = HuSprCreate(anim, 0, 0);
|
||||||
|
HuSprGrpMemberSet(gid, 0, sprid);
|
||||||
|
HuSprDrawNoSet(gid, 0, 127);
|
||||||
|
HuSprPosSet(gid, 0, 288, 240);
|
||||||
|
HuSprTPLvlSet(gid, 0, 0.6f);
|
||||||
|
Hu3DFogSet(350, 2000, 128, 128, 128);
|
||||||
|
debugCamRot[0].x = -20;
|
||||||
|
debugCamRot[0].y = 0;
|
||||||
|
debugCamRot[0].z = 0;
|
||||||
|
debugCamPos[0].x = 0;
|
||||||
|
debugCamPos[0].y = 20;
|
||||||
|
debugCamPos[0].z = -7;
|
||||||
|
debugCamZoom[0] = 600;
|
||||||
|
|
||||||
|
Hu3DCameraPerspectiveSet(HU3D_CAM0, 60, 20, 5000, 1.2f);
|
||||||
|
outView = omAddObjEx(objman, 32730, 0, 0, -1, DebugCamOutView);
|
||||||
|
updateCamera = omAddObjEx(objman, 0, 32, 32, -1, DebugCamUpdate);
|
||||||
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||||
|
while (WipeStatGet()) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
if(!SystemInitF) {
|
||||||
|
void *group_samp;
|
||||||
|
HuWindowInit();
|
||||||
|
group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||||
|
msmSysLoadGroup(0, group_samp, 0);
|
||||||
|
HuMemDirectFree(group_samp);
|
||||||
|
}
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
modelId[i] = Hu3DModelCreateFile(TITLE_FLAG_HSF);
|
||||||
|
anim = HuSprAnimReadFile(flagFileTbl[i]);
|
||||||
|
Hu3DAnimCreate(anim, modelId[i], "flag");
|
||||||
|
Hu3DModelPosSet(modelId[i], sind(i*72)*200, 70, cosd(i*72)*200);
|
||||||
|
Hu3DModelRotSet(modelId[i], -20, 0, 0);
|
||||||
|
}
|
||||||
|
for(time=1; time<=30; time++) {
|
||||||
|
dist = 1.0-(time/30.0);
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
Hu3DModelPosSet(modelId[i], sind((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)), 70, cosd((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)));
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuWinInit(1);
|
||||||
|
HuWinMesMaxSizeGet(5, winSize, 0x380000, 0x380005, 0x38000A, 0x38000F, 0x380014);
|
||||||
|
winId[0] = HuWinExCreateStyled(-10000, 50, winSize[0], winSize[1], -1, 0);
|
||||||
|
HuWinAttrSet(winId[0], 0x800);
|
||||||
|
HuWinMesSet(winId[0], 0x380000+(language*5));
|
||||||
|
HuWinBGTPLvlSet(winId[0], 0);
|
||||||
|
HuWinMesSpeedSet(winId[0], 0);
|
||||||
|
HuWinDispOn(winId[0]);
|
||||||
|
HuWinMesMaxSizeGet(5, winSize, 0x380001, 0x380006, 0x38000B, 0x380010, 0x380015);
|
||||||
|
winId[1] = HuWinExCreateStyled(-10000, 100, winSize[0], winSize[1], -1, 0);
|
||||||
|
HuWinAttrSet(winId[1], 0x800);
|
||||||
|
HuWinMesSet(winId[1], 0x380001+(language*5));
|
||||||
|
HuWinBGTPLvlSet(winId[1], 0);
|
||||||
|
HuWinMesSpeedSet(winId[1], 0);
|
||||||
|
HuWinDispOn(winId[1]);
|
||||||
|
HuWinMesMaxSizeGet(5, winSize, 0x380002, 0x380007, 0x38000C, 0x380011, 0x380016);
|
||||||
|
winId[2] = HuWinExCreateStyled(-10000, 340, winSize[0], winSize[1], -1, 0);
|
||||||
|
HuWinAttrSet(winId[2], 0x800);
|
||||||
|
HuWinMesSet(winId[2], 0x380002+(language*5));
|
||||||
|
HuWinBGTPLvlSet(winId[2], 0);
|
||||||
|
HuWinMesSpeedSet(winId[2], 0);
|
||||||
|
HuWinDispOn(winId[2]);
|
||||||
|
HuWinMesMaxSizeGet(5, winSize, 0x380004, 0x380009, 0x38000E, 0x380013, 0x380018);
|
||||||
|
winId[4] = HuWinExCreateStyled(-10000, (448-winSize[1])-10, winSize[0], winSize[1], -1, 0);
|
||||||
|
HuWinAttrSet(winId[4], 0x800);
|
||||||
|
choiceChange = FALSE;
|
||||||
|
while(1) {
|
||||||
|
if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
|
||||||
|
HuAudFXPlay(0);
|
||||||
|
for(time=0; time<=10; time++) {
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
posX = sind((72.0*language)+(i*72)-(72.0*(time/10.0)))*200;
|
||||||
|
posZ = cosd((72.0*language)+(i*72)-(72.0*(time/10.0)))*200;
|
||||||
|
Hu3DModelPosSet(modelId[i], posX, 70, posZ);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
language--;
|
||||||
|
if(language < 0) {
|
||||||
|
language = 4;
|
||||||
|
}
|
||||||
|
choiceChange = TRUE;
|
||||||
|
} else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
|
||||||
|
HuAudFXPlay(0);
|
||||||
|
for(time=0; time<=10; time++) {
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
posX = sind((72.0*language)+(i*72)+(72.0*(time/10.0)))*200;
|
||||||
|
posZ = cosd((72.0*language)+(i*72)+(72.0*(time/10.0)))*200;
|
||||||
|
Hu3DModelPosSet(modelId[i], posX, 70, posZ);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
language++;
|
||||||
|
if(language >= 5) {
|
||||||
|
language = 0;
|
||||||
|
}
|
||||||
|
choiceChange = TRUE;
|
||||||
|
}
|
||||||
|
if(choiceChange) {
|
||||||
|
HuWinMesSet(winId[0], 0x380000+(language*5));
|
||||||
|
HuWinMesSet(winId[1], 0x380001+(language*5));
|
||||||
|
HuWinMesSet(winId[2], 0x380002+(language*5));
|
||||||
|
choiceChange = FALSE;
|
||||||
|
}
|
||||||
|
if(HuPadBtnDown[0] & PAD_BUTTON_A) {
|
||||||
|
HuAudFXPlay(1);
|
||||||
|
HuWinHomeClear(winId[4]);
|
||||||
|
HuWinExAnimIn(winId[4]);
|
||||||
|
HuWinMesSet(winId[4], 0x380004+(language*5));
|
||||||
|
HuWinMesWait(winId[4]);
|
||||||
|
choice = HuWinChoiceGet(winId[4], 0);
|
||||||
|
if(choice == 0) {
|
||||||
|
GwLanguage = GwLanguageSave = language+1;
|
||||||
|
GWLanguageSet(GwLanguage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuWinExAnimOut(winId[4]);
|
||||||
|
}
|
||||||
|
if(GwLanguage != -1 && (HuPadBtnDown[0] & PAD_BUTTON_B)) {
|
||||||
|
HuAudFXPlay(3);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
|
while (WipeStatGet()) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuSprGrpKill(gid);
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
Hu3DModelKill(modelId[i]);
|
||||||
|
}
|
||||||
|
omDelObjEx(objman, outView);
|
||||||
|
omDelObjEx(objman, updateCamera);
|
||||||
|
if(SystemInitF == 0) {
|
||||||
|
CharManInit();
|
||||||
|
MGSeqInit();
|
||||||
|
}
|
||||||
|
HuWinAllKill();
|
||||||
|
Hu3DFogClear();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 LanguageBootGet(void)
|
||||||
|
{
|
||||||
|
s16 result = -1;
|
||||||
|
s16 i;
|
||||||
|
s16 j;
|
||||||
|
for(i=0; i<2; i++) {
|
||||||
|
if(HuCardSlotCheck(i) < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(HuCardMount(i) < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(j=0; j<3; j++) {
|
||||||
|
CARDFileInfo fileInfo;
|
||||||
|
if(HuCardOpen(i, SaveFileNameTbl[j], &fileInfo) < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(HuCardRead(&fileInfo, &saveBuf, SAVE_BUF_SIZE, 0) < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!SLCheckSumCheck()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat));
|
||||||
|
if(GWGameStat.language < 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(GWGameStat.language > 5) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
result = GWGameStat.language;
|
||||||
|
OSReport("Language %d\n", GWGameStat.language);
|
||||||
|
HuCardClose(&fileInfo);
|
||||||
|
HuCardUnMount(i);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
HuCardUnMount(i);
|
||||||
|
}
|
||||||
|
if(result == -1) {
|
||||||
|
OSReport("OS Language %d\n", OSGetLanguage());
|
||||||
|
switch(OSGetLanguage()) {
|
||||||
|
case OS_LANG_ENGLISH:
|
||||||
|
result = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OS_LANG_GERMAN:
|
||||||
|
result = 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OS_LANG_FRENCH:
|
||||||
|
result = 3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OS_LANG_SPANISH:
|
||||||
|
result = 5;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OS_LANG_ITALIAN:
|
||||||
|
result = 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
result = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -24,51 +24,69 @@
|
||||||
|
|
||||||
extern int SystemInitF;
|
extern int SystemInitF;
|
||||||
|
|
||||||
static Process *objman[2];
|
static omObjData *debugOutView;
|
||||||
Vec lbl_1_bss_3C[2];
|
Process *objman;
|
||||||
Vec lbl_1_bss_24[2];
|
Vec debugCamRot[2];
|
||||||
float lbl_1_bss_1C[2];
|
Vec debugCamPos[2];
|
||||||
|
float debugCamZoom[2];
|
||||||
|
|
||||||
Vec lbl_1_bss_10;
|
Vec lbl_1_bss_10;
|
||||||
|
|
||||||
static s16 demoWin;
|
static s16 demoWinId;
|
||||||
|
|
||||||
static s16 titleModel[3];
|
static s16 titleMdlId[3];
|
||||||
static s16 titleGroup;
|
static s16 bootGrpId;
|
||||||
|
|
||||||
s16 lbl_1_bss_4;
|
s16 lbl_1_bss_4;
|
||||||
s32 lbl_1_bss_0;
|
#if VERSION_PAL
|
||||||
|
static BOOL initLanguageF;
|
||||||
|
#endif
|
||||||
|
s32 debugCamOnF;
|
||||||
|
|
||||||
static void BootProc(void);
|
void BootExec(void);
|
||||||
static void UpdateDemoMess(void);
|
static void UpdateDemoMess(void);
|
||||||
static void ProgressiveProc(void);
|
#if VERSION_NTSC
|
||||||
static void TitleInit(void);
|
void BootProgExec(void);
|
||||||
static BOOL TitleProc(void);
|
#endif
|
||||||
|
void BootTitleCreate(void);
|
||||||
|
BOOL BootTitleExec(void);
|
||||||
|
|
||||||
void *logoReadNintendo(void);
|
void *NintendoDataDecode(void);
|
||||||
|
|
||||||
void ObjectSetup(void)
|
void ObjectSetup(void)
|
||||||
{
|
{
|
||||||
omOvlHisData *history;
|
omOvlHisData *history;
|
||||||
OSReport("******* Boot ObjectSetup *********\n");
|
OSReport("******* Boot ObjectSetup *********\n");
|
||||||
objman[0] = omInitObjMan(50, 8192);
|
objman = omInitObjMan(50, 8192);
|
||||||
lbl_1_bss_3C[0].x = -67;
|
debugCamRot[0].x = -67;
|
||||||
lbl_1_bss_3C[0].y = 40;
|
debugCamRot[0].y = 40;
|
||||||
lbl_1_bss_3C[0].z = 0;
|
debugCamRot[0].z = 0;
|
||||||
lbl_1_bss_24[0].x = 260;
|
debugCamPos[0].x = 260;
|
||||||
lbl_1_bss_24[0].y = -103;
|
debugCamPos[0].y = -103;
|
||||||
lbl_1_bss_24[0].z = -18;
|
debugCamPos[0].z = -18;
|
||||||
lbl_1_bss_1C[0] = 2885;
|
debugCamZoom[0] = 2885;
|
||||||
Hu3DCameraCreate(1);
|
Hu3DCameraCreate(1);
|
||||||
Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2);
|
Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2);
|
||||||
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
||||||
HuPrcCreate(BootProc, 100, 12288, 0);
|
HuPrcCreate(BootExec, 100, 12288, 0);
|
||||||
Hu3DBGColorSet(0, 0, 0);
|
Hu3DBGColorSet(0, 0, 0);
|
||||||
history = omOvlHisGet(0);
|
history = omOvlHisGet(0);
|
||||||
omOvlHisChg(0, history->overlay, 1, history->stat);
|
omOvlHisChg(0, history->overlay, 1, history->stat);
|
||||||
|
#if VERSION_PAL
|
||||||
|
if(SystemInitF == FALSE) {
|
||||||
|
initLanguageF = FALSE;
|
||||||
|
} else {
|
||||||
|
initLanguageF = TRUE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BootProc(void)
|
#if VERSION_PAL
|
||||||
|
s32 LanguageBootGet(void);
|
||||||
|
BOOL LanguageMenuExec(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void BootExec(void)
|
||||||
{
|
{
|
||||||
AnimData *data;
|
AnimData *data;
|
||||||
s16 group;
|
s16 group;
|
||||||
|
|
@ -77,11 +95,24 @@ static void BootProc(void)
|
||||||
s16 i;
|
s16 i;
|
||||||
OSTick tick_prev;
|
OSTick tick_prev;
|
||||||
Process *curr = HuPrcCurrentGet();
|
Process *curr = HuPrcCurrentGet();
|
||||||
|
#if VERSION_NTSC
|
||||||
if (omovlevtno == 0) {
|
if (omovlevtno == 0) {
|
||||||
ProgressiveProc();
|
BootProgExec();
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if(SystemInitF == FALSE) {
|
||||||
|
GwLanguage = LanguageBootGet();
|
||||||
|
if(GwLanguage == -1) {
|
||||||
|
if(LanguageMenuExec()) {
|
||||||
|
SystemInitF = TRUE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
GWLanguageSet(GwLanguage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
group = HuSprGrpCreate(2);
|
group = HuSprGrpCreate(2);
|
||||||
data = HuSprAnimRead(logoReadNintendo());
|
data = HuSprAnimRead(NintendoDataDecode());
|
||||||
sprite_nintendo = HuSprCreate(data, 0, 0);
|
sprite_nintendo = HuSprCreate(data, 0, 0);
|
||||||
HuSprGrpMemberSet(group, 0, sprite_nintendo);
|
HuSprGrpMemberSet(group, 0, sprite_nintendo);
|
||||||
HuSprPosSet(group, 0, 288, 240);
|
HuSprPosSet(group, 0, 288, 240);
|
||||||
|
|
@ -94,7 +125,7 @@ static void BootProc(void)
|
||||||
HuSprPosSet(group, 1, 288, 240);
|
HuSprPosSet(group, 1, 288, 240);
|
||||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||||
HuWinInit(1);
|
HuWinInit(1);
|
||||||
TitleInit();
|
BootTitleCreate();
|
||||||
SystemInitF = 1;
|
SystemInitF = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -105,6 +136,18 @@ static void BootProc(void)
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
GWPlayerCfg[i].pad_idx = i;
|
GWPlayerCfg[i].pad_idx = i;
|
||||||
}
|
}
|
||||||
|
#if VERSION_PAL
|
||||||
|
if(SystemInitF) {
|
||||||
|
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||||
|
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||||
|
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||||
|
HuSprPosSet(group, 1, 288, 240);
|
||||||
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuAudSndGrpSetSet(0);
|
||||||
|
BootTitleCreate();
|
||||||
|
HuWinInit(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
repeat:
|
repeat:
|
||||||
HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF);
|
HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF);
|
||||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||||
|
|
@ -118,7 +161,7 @@ static void BootProc(void)
|
||||||
HuWindowInit();
|
HuWindowInit();
|
||||||
MGSeqInit();
|
MGSeqInit();
|
||||||
HuWinInit(1);
|
HuWinInit(1);
|
||||||
TitleInit();
|
BootTitleCreate();
|
||||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||||
|
|
@ -130,9 +173,15 @@ static void BootProc(void)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (i = 0; i < 180; i++) {
|
for (i = 0; i < 180; i++) {
|
||||||
|
#if VERSION_NTSC
|
||||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -159,12 +208,21 @@ static void BootProc(void)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (i = 0; i < 180; i++) {
|
for (i = 0; i < 180; i++) {
|
||||||
|
#if VERSION_NTSC
|
||||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if VERSION_PAL
|
||||||
|
initLanguageF = TRUE;
|
||||||
|
#endif
|
||||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
|
|
@ -184,11 +242,11 @@ static void BootProc(void)
|
||||||
HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
||||||
HuSprPosSet(group_thp, 0, 288, 240);
|
HuSprPosSet(group_thp, 0, 288, 240);
|
||||||
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
||||||
demoWin = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0);
|
demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0);
|
||||||
HuWinMesSpeedSet(demoWin, 0);
|
HuWinMesSpeedSet(demoWinId, 0);
|
||||||
HuWinBGTPLvlSet(demoWin, 0);
|
HuWinBGTPLvlSet(demoWinId, 0);
|
||||||
HuWinPriSet(demoWin, 10);
|
HuWinPriSet(demoWinId, 10);
|
||||||
HuWinAttrSet(demoWin, 0x800);
|
HuWinAttrSet(demoWinId, 0x800);
|
||||||
HuPrcSleep(5);
|
HuPrcSleep(5);
|
||||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
|
|
@ -207,7 +265,7 @@ static void BootProc(void)
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
HuWinKill(demoWin);
|
HuWinKill(demoWinId);
|
||||||
HuTHPClose();
|
HuTHPClose();
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
HuSprGrpKill(group_thp);
|
HuSprGrpKill(group_thp);
|
||||||
|
|
@ -216,7 +274,7 @@ static void BootProc(void)
|
||||||
}
|
}
|
||||||
skip_wait = FALSE;
|
skip_wait = FALSE;
|
||||||
}
|
}
|
||||||
if (!TitleProc()) {
|
if (!BootTitleExec()) {
|
||||||
HuPrcSleep(60);
|
HuPrcSleep(60);
|
||||||
goto repeat;
|
goto repeat;
|
||||||
}
|
}
|
||||||
|
|
@ -242,7 +300,7 @@ static void BootProc(void)
|
||||||
} while (1);
|
} while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static s16 demoTimingTbl[] = {
|
static s16 demoMessTimeTbl[] = {
|
||||||
1686,
|
1686,
|
||||||
1785,
|
1785,
|
||||||
1850,
|
1850,
|
||||||
|
|
@ -261,19 +319,21 @@ static void UpdateDemoMess(void)
|
||||||
{
|
{
|
||||||
int frame = HuTHPFrameGet();
|
int frame = HuTHPFrameGet();
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; demoTimingTbl[i * 2] != -1; i++) {
|
for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) {
|
||||||
if (frame == demoTimingTbl[i * 2]) {
|
if (frame == demoMessTimeTbl[i * 2]) {
|
||||||
HuWinMesSet(demoWin, MAKE_MESSID(54, i));
|
HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
|
||||||
}
|
}
|
||||||
if (frame == demoTimingTbl[(i * 2) + 1]) {
|
if (frame == demoMessTimeTbl[(i * 2) + 1]) {
|
||||||
HuWinHomeClear(demoWin);
|
HuWinHomeClear(demoWinId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16 progressivePosTbl[] = { 236, 313, 353, 313 };
|
#if VERSION_NTSC
|
||||||
|
|
||||||
static void ProgressiveProc(void)
|
static u16 progPosTbl[] = { 236, 313, 353, 313 };
|
||||||
|
|
||||||
|
void BootProgExec(void)
|
||||||
{
|
{
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 option;
|
s16 option;
|
||||||
|
|
@ -303,11 +363,11 @@ static void ProgressiveProc(void)
|
||||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
||||||
sprite = HuSprCreate(data, 0, 0);
|
sprite = HuSprCreate(data, 0, 0);
|
||||||
HuSprGrpMemberSet(group, 1, sprite);
|
HuSprGrpMemberSet(group, 1, sprite);
|
||||||
HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]);
|
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||||
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
||||||
sprite = HuSprCreate(data, 0, 0);
|
sprite = HuSprCreate(data, 0, 0);
|
||||||
HuSprGrpMemberSet(group, 2, sprite);
|
HuSprGrpMemberSet(group, 2, sprite);
|
||||||
HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]);
|
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||||
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
|
|
@ -316,12 +376,12 @@ static void ProgressiveProc(void)
|
||||||
for (i = 0; i < 600; i++) {
|
for (i = 0; i < 600; i++) {
|
||||||
if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) {
|
if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) {
|
||||||
option ^= 1;
|
option ^= 1;
|
||||||
HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]);
|
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
||||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||||
HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]);
|
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||||
HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -370,33 +430,35 @@ static void ProgressiveProc(void)
|
||||||
HuPrcSleep(30);
|
HuPrcSleep(30);
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 lbl_1_data_58[] = { 1, 2 };
|
#endif
|
||||||
|
|
||||||
void fn_1_1178(void)
|
static u16 debugCamTbl[] = { 1, 2 };
|
||||||
|
|
||||||
|
void DebugCamOutView(omObjData *obj)
|
||||||
{
|
{
|
||||||
s16 i;
|
s16 i;
|
||||||
for (i = 0; i < 1; i++) {
|
for (i = 0; i < 1; i++) {
|
||||||
Vec pos, target, up;
|
Vec pos, target, up;
|
||||||
float x, y, z;
|
float x, y, z;
|
||||||
|
|
||||||
x = lbl_1_bss_3C[i].x;
|
x = debugCamRot[i].x;
|
||||||
y = lbl_1_bss_3C[i].y;
|
y = debugCamRot[i].y;
|
||||||
z = lbl_1_bss_3C[i].z;
|
z = debugCamRot[i].z;
|
||||||
|
|
||||||
pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].x);
|
pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x);
|
||||||
pos.y = (-sind(x) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].y;
|
pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y;
|
||||||
pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].z;
|
pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z;
|
||||||
target.x = lbl_1_bss_24[i].x;
|
target.x = debugCamPos[i].x;
|
||||||
target.y = lbl_1_bss_24[i].y;
|
target.y = debugCamPos[i].y;
|
||||||
target.z = lbl_1_bss_24[i].z;
|
target.z = debugCamPos[i].z;
|
||||||
up.x = sind(y) * sind(x);
|
up.x = sind(y) * sind(x);
|
||||||
up.y = cosd(x);
|
up.y = cosd(x);
|
||||||
up.z = cosd(y) * sind(x);
|
up.z = cosd(y) * sind(x);
|
||||||
Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_152C(void)
|
void DebugCamUpdate(omObjData *obj)
|
||||||
{
|
{
|
||||||
Vec pos;
|
Vec pos;
|
||||||
Vec offset;
|
Vec offset;
|
||||||
|
|
@ -405,28 +467,30 @@ void fn_1_152C(void)
|
||||||
|
|
||||||
f32 z_rot;
|
f32 z_rot;
|
||||||
s8 stick_pos;
|
s8 stick_pos;
|
||||||
|
|
||||||
|
#if VERSION_NTSC
|
||||||
if ((HuPadBtnDown[0] & 0x800)) {
|
if ((HuPadBtnDown[0] & 0x800)) {
|
||||||
lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1;
|
debugCamOnF = (debugCamOnF) ? 0 : 1;
|
||||||
}
|
}
|
||||||
if (lbl_1_bss_0 != 0) {
|
#endif
|
||||||
lbl_1_bss_3C[0].y += 0.1f * HuPadStkX[0];
|
if (debugCamOnF != 0) {
|
||||||
lbl_1_bss_3C[0].x += 0.1f * HuPadStkY[0];
|
debugCamRot[0].y += 0.1f * HuPadStkX[0];
|
||||||
lbl_1_bss_1C[0] += HuPadTrigL[0] / 2;
|
debugCamRot[0].x += 0.1f * HuPadStkY[0];
|
||||||
lbl_1_bss_1C[0] -= HuPadTrigR[0] / 2;
|
debugCamZoom[0] += HuPadTrigL[0] / 2;
|
||||||
if (lbl_1_bss_1C[0] < 100.0f) {
|
debugCamZoom[0] -= HuPadTrigR[0] / 2;
|
||||||
lbl_1_bss_1C[0] = 100.0f;
|
if (debugCamZoom[0] < 100.0f) {
|
||||||
|
debugCamZoom[0] = 100.0f;
|
||||||
}
|
}
|
||||||
pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sind(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x)));
|
pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x)));
|
||||||
pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sind(lbl_1_bss_3C[0].x)));
|
pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x)));
|
||||||
pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cosd(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x))));
|
pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x))));
|
||||||
offset.x = lbl_1_bss_24[0].x - pos.x;
|
offset.x = debugCamPos[0].x - pos.x;
|
||||||
offset.y = lbl_1_bss_24[0].y - pos.y;
|
offset.y = debugCamPos[0].y - pos.y;
|
||||||
offset.z = lbl_1_bss_24[0].z - pos.z;
|
offset.z = debugCamPos[0].z - pos.z;
|
||||||
dir.x = (sind(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||||
dir.y = cosd(lbl_1_bss_3C[0].x);
|
dir.y = cosd(debugCamRot[0].x);
|
||||||
dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||||
z_rot = lbl_1_bss_3C[0].z;
|
z_rot = debugCamRot[0].z;
|
||||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
||||||
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
||||||
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
||||||
|
|
@ -443,70 +507,102 @@ void fn_1_152C(void)
|
||||||
VECNormalize(&offset, &offset);
|
VECNormalize(&offset, &offset);
|
||||||
stick_pos = (HuPadSubStkX[0] & 0xF8);
|
stick_pos = (HuPadSubStkX[0] & 0xF8);
|
||||||
if (stick_pos != 0) {
|
if (stick_pos != 0) {
|
||||||
lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos);
|
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||||
lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos);
|
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||||
lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos);
|
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||||
}
|
}
|
||||||
VECNormalize(&y_offset, &offset);
|
VECNormalize(&y_offset, &offset);
|
||||||
stick_pos = -(HuPadSubStkY[0] & 0xF8);
|
stick_pos = -(HuPadSubStkY[0] & 0xF8);
|
||||||
if (stick_pos != 0) {
|
if (stick_pos != 0) {
|
||||||
lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos);
|
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||||
lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos);
|
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||||
lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos);
|
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TitleInit(void)
|
void BootTitleCreate(void)
|
||||||
{
|
{
|
||||||
s16 model;
|
s16 model;
|
||||||
s16 sprite;
|
s16 sprite;
|
||||||
AnimData *sprite_data;
|
AnimData *sprite_data;
|
||||||
titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
s16 i;
|
||||||
|
titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
||||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||||
titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
||||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||||
titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
||||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||||
Hu3DModelCameraInfoSet(model, 1);
|
Hu3DModelCameraInfoSet(model, 1);
|
||||||
Hu3DModelLightInfoSet(model, 1);
|
Hu3DModelLightInfoSet(model, 1);
|
||||||
titleGroup = HuSprGrpCreate(4);
|
#if VERSION_NTSC
|
||||||
|
bootGrpId = HuSprGrpCreate(4);
|
||||||
|
#else
|
||||||
|
bootGrpId = HuSprGrpCreate(13);
|
||||||
|
#endif
|
||||||
sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
||||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||||
HuSprGrpMemberSet(titleGroup, 0, sprite);
|
HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||||
HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||||
HuSprDrawNoSet(titleGroup, 0, 127);
|
HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||||
HuSprPosSet(titleGroup, 0, 288, 240);
|
HuSprPosSet(bootGrpId, 0, 288, 240);
|
||||||
sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
||||||
sprite = HuSprCreate(sprite_data, 1, 0);
|
sprite = HuSprCreate(sprite_data, 1, 0);
|
||||||
HuSprGrpMemberSet(titleGroup, 1, sprite);
|
HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||||
HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||||
HuSprPosSet(titleGroup, 1, 288, 420);
|
HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||||
|
#if VERSION_NTSC
|
||||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
||||||
sprite = HuSprCreate(sprite_data, 2, 0);
|
sprite = HuSprCreate(sprite_data, 2, 0);
|
||||||
HuSprGrpMemberSet(titleGroup, 2, sprite);
|
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||||
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||||
HuSprPosSet(titleGroup, 2, 288, 380);
|
HuSprPosSet(bootGrpId, 2, 288, 380);
|
||||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||||
HuSprGrpMemberSet(titleGroup, 3, sprite);
|
HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||||
HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||||
HuSprPosSet(titleGroup, 3, 288, 200);
|
HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||||
|
#else
|
||||||
|
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||||
|
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||||
|
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||||
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||||
|
HuSprPosSet(bootGrpId, 2, 288, 200);
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||||
|
sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||||
|
HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||||
|
HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||||
|
HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||||
|
}
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i);
|
||||||
|
sprite = HuSprCreate(sprite_data, 8+i, 0);
|
||||||
|
HuSprGrpMemberSet(bootGrpId, 8+i, sprite);
|
||||||
|
HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||||
|
HuSprPosSet(bootGrpId, 8+i, 288, 380);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL TitleProc(void)
|
BOOL BootTitleExec(void)
|
||||||
{
|
{
|
||||||
float scale;
|
float scale;
|
||||||
float scale_time;
|
float scale_time;
|
||||||
int seNo[32];
|
int seNo[32];
|
||||||
|
s16 pressStartMemberNo;
|
||||||
|
s16 languageMemberNo;
|
||||||
s16 i;
|
s16 i;
|
||||||
Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF);
|
s16 choice;
|
||||||
Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF);
|
float temp;
|
||||||
HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
repeat:
|
||||||
HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||||
|
Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||||
|
HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
||||||
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
||||||
HuAudSStreamPlay(20);
|
HuAudSStreamPlay(20);
|
||||||
|
|
@ -514,24 +610,128 @@ static BOOL TitleProc(void)
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
#if VERSION_NTSC
|
||||||
|
HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||||
for (i = 1; i <= 50; i++) {
|
for (i = 1; i <= 50; i++) {
|
||||||
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||||
HuSprScaleSet(titleGroup, 3, scale, scale);
|
HuSprScaleSet(bootGrpId, 3, scale, scale);
|
||||||
HuSprTPLvlSet(titleGroup, 3, i / 50.0);
|
HuSprTPLvlSet(bootGrpId, 3, i / 50.0);
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
#else
|
||||||
|
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
for (i = 1; i <= 50; i++) {
|
||||||
|
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||||
|
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||||
|
HuSprTPLvlSet(bootGrpId, 2, i / 50.0);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
if(GwLanguage == -1) {
|
||||||
|
pressStartMemberNo = 3;
|
||||||
|
languageMemberNo = 8;
|
||||||
|
} else {
|
||||||
|
pressStartMemberNo = GwLanguage+3-1;
|
||||||
|
languageMemberNo = GwLanguage+8-1;
|
||||||
|
}
|
||||||
|
HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF);
|
||||||
|
for(i=1; i<=20; i++) {
|
||||||
|
scale = sind(i*4.5);
|
||||||
|
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||||
|
HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
choice = 0;
|
||||||
|
scale_time = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if VERSION_NTSC
|
||||||
for (i = scale_time = 0; i < 1800; i++) {
|
for (i = scale_time = 0; i < 1800; i++) {
|
||||||
|
#else
|
||||||
|
for (i = temp = 0; i < 1800; i++) {
|
||||||
|
#endif
|
||||||
|
#if VERSION_PAL
|
||||||
|
if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) {
|
||||||
|
HuAudFXPlay(0);
|
||||||
|
for(i=1; i<=10; i++) {
|
||||||
|
scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7;
|
||||||
|
if(choice == 0) {
|
||||||
|
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||||
|
} else {
|
||||||
|
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||||
|
}
|
||||||
|
scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0;
|
||||||
|
if(choice == 0) {
|
||||||
|
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||||
|
} else {
|
||||||
|
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
choice ^= 1;
|
||||||
|
scale_time = 0;
|
||||||
|
}
|
||||||
|
if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||||
|
if(choice == 0) {
|
||||||
|
s32 ret = HuAudFXPlay(2092);
|
||||||
|
if (ret < 0) {
|
||||||
|
OSReport(">>>>>Error %d\n", ret);
|
||||||
|
}
|
||||||
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
HuAudFXPlay(1);
|
||||||
|
HuAudSStreamAllFadeOut(500);
|
||||||
|
WipeColorSet(255, 255, 255);
|
||||||
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
|
while (WipeStatGet()) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||||
|
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||||
|
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||||
|
}
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||||
|
}
|
||||||
|
LanguageMenuExec();
|
||||||
|
Hu3DModelCameraInfoSet(titleMdlId[2], 1);
|
||||||
|
Hu3DModelLightInfoSet(titleMdlId[2], 1);
|
||||||
|
HuWinInit(1);
|
||||||
|
goto repeat;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scale = (cosd(scale_time) * 0.1) + 0.9;
|
||||||
|
if(choice == 0) {
|
||||||
|
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||||
|
} else {
|
||||||
|
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||||
|
}
|
||||||
|
scale = (cosd(scale_time/3.0) * 0.05) + 0.65;
|
||||||
|
if(choice == 0) {
|
||||||
|
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||||
|
} else {
|
||||||
|
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||||
|
}
|
||||||
|
scale_time += 5;
|
||||||
|
HuPrcVSleep();
|
||||||
|
#else
|
||||||
if (i <= 10) {
|
if (i <= 10) {
|
||||||
HuSprTPLvlSet(titleGroup, 2, i / 10.0);
|
HuSprTPLvlSet(bootGrpId, 2, i / 10.0);
|
||||||
}
|
}
|
||||||
if (HuPadBtnDown[0] & PAD_BUTTON_START) {
|
if (HuPadBtnDown[0] & PAD_BUTTON_START) {
|
||||||
s32 ret = HuAudFXPlay(2092);
|
s32 ret = HuAudFXPlay(2092);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
OSReport(">>>>>Error %d\n", ret);
|
OSReport(">>>>>Error %d\n", ret);
|
||||||
}
|
}
|
||||||
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
scale = (sind(i * scale_time) * 0.1) + 0.9;
|
scale = (sind(i * scale_time) * 0.1) + 0.9;
|
||||||
|
|
@ -539,20 +739,48 @@ static BOOL TitleProc(void)
|
||||||
if (scale_time > 5) {
|
if (scale_time > 5) {
|
||||||
scale_time = 5;
|
scale_time = 5;
|
||||||
}
|
}
|
||||||
HuSprScaleSet(titleGroup, 2, scale, scale);
|
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
WipeColorSet(255, 255, 255);
|
WipeColorSet(255, 255, 255);
|
||||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
while (WipeStatGet()) {
|
while (WipeStatGet()) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
Hu3DModelAttrSet(titleModel[0], HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||||
Hu3DModelAttrSet(titleModel[1], HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||||
Hu3DModelAttrSet(titleModel[2], HU3D_ATTR_DISPOFF);
|
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||||
HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
#if VERSION_NTSC
|
||||||
HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||||
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||||
HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||||
|
#else
|
||||||
|
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||||
|
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||||
|
}
|
||||||
|
for(i=0; i<5; i++) {
|
||||||
|
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "nintendoData.inc"
|
||||||
|
|
||||||
|
void *NintendoDataDecode(void)
|
||||||
|
{
|
||||||
|
u32 *src = (u32 *)nintendoData;
|
||||||
|
u32 size = *src++;
|
||||||
|
void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
||||||
|
int decode_type = *src++;
|
||||||
|
if(dst) {
|
||||||
|
HuDecodeData(src, dst, size, decode_type);
|
||||||
|
}
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#include "game/data.h"
|
|
||||||
|
|
||||||
#include "logoNintendoData.inc"
|
|
||||||
|
|
||||||
void *logoReadNintendo(void)
|
|
||||||
{
|
|
||||||
u32 *src = (u32 *)logoNintendoData;
|
|
||||||
u32 size = *src++;
|
|
||||||
void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
|
||||||
int decode_type = *src++;
|
|
||||||
if(dst) {
|
|
||||||
HuDecodeData(src, dst, size, decode_type);
|
|
||||||
}
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue