Merge branch 'Rainchus:main' into main

This commit is contained in:
CreateSource 2023-12-02 13:49:55 -05:00 committed by GitHub
commit ae57b017e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 2346 additions and 1571 deletions

View file

@ -5,3 +5,26 @@ Sections:
.rodata type:rodata align:8
.data type:data align:8
.bss type:bss align:8
REL/w10Dll/w10Dll_init.c:
.text start:0x00000000 end:0x000000E0
REL/w10Dll/w10Dll.c:
.text start:0x000000E0 end:0x00000AEC
.rodata start:0x00000000 end:0x00000038
.data start:0x00000000 end:0x00000078
.bss start:0x00000000 end:0x00000038
REL/w10Dll/w10Dll2.c:
.text start:0x00000AEC end:0x00000D2C
.rodata start:0x00000038 end:0x00000048
.data start:0x00000078 end:0x00000098
REL/w10Dll/w10Dll3.c:
.text start:0x00000D2C end:0x0000176C
.rodata start:0x00000048 end:0x00000050
REL/w10Dll/w10Dll4.c:
.text start:0x0000176C end:0x0000206C
.rodata start:0x00000050 end:0x00000070
.data start:0x00000098 end:0x000002D4

View file

@ -15,7 +15,7 @@ fn_1_AEC = .text:0x00000AEC; // type:function size:0xB4
fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70
fn_1_C10 = .text:0x00000C10; // type:function size:0x10
fn_1_C20 = .text:0x00000C20; // type:function size:0x10C
fn_1_D2C = .text:0x00000D2C; // type:function size:0x28
fn_1_D2C = .text:0x00000D2C; // type:function size:0x28 scope:local
fn_1_D54 = .text:0x00000D54; // type:function size:0x28
fn_1_D7C = .text:0x00000D7C; // type:function size:0x28
fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28
@ -65,26 +65,26 @@ fn_1_1E3C = .text:0x00001E3C; // type:function size:0x174
fn_1_1FB0 = .text:0x00001FB0; // type:function size:0xBC
_ctors = .ctors: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_14 = .rodata:0x00000014; // type:object size:0x4 data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:float
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double
lbl_1_data_0 = .data:0x00000000; // type:object size:0x28
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:float
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double
lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 data:float
lbl_1_data_28 = .data:0x00000028; // type:object size:0x2 data:2byte
lbl_1_data_2A = .data:0x0000002A; // type:object size:0x2 data:2byte
lbl_1_data_2C = .data:0x0000002C; // type:object size:0x2 data:2byte
@ -96,13 +96,14 @@ lbl_1_data_5C = .data:0x0000005C; // type:object size:0x8
lbl_1_data_64 = .data:0x00000064; // type:object size:0x8
lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC
lbl_1_data_78 = .data:0x00000078; // type:object size:0x8
lbl_1_data_80 = .data:0x00000080; // type:object size:0x18
lbl_1_data_98 = .data:0x00000098; // type:object size:0x2E
lbl_1_data_80 = .data:0x00000080; // type:object size:0x18 data:float
lbl_1_data_98 = .data:0x00000098; // type:object size:0x2E data:string
lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x42
lbl_1_data_108 = .data:0x00000108; // type:object size:0x150
lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 data:string
lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x2C
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte
lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte

View file

@ -120,6 +120,30 @@ game/hsfman.c:
.sdata2 start:0x801D4AB0 end:0x801D4B10
.sbss2 start:0x801D6BE0 end:0x801D6BE8
game/hsfmotion.c:
.text start:0x800250E8 end:0x80028B04
.data start:0x8012D658 end:0x8012D838
.bss start:0x8018D3D0 end:0x8018DBD0
.sbss start:0x801D3C60 end:0x801D3C68
.sdata2 start:0x801D4B10 end:0x801D4B60
game/hsfanim.c:
.text start:0x80028B04 end:0x8002CB74
.data start:0x8012D838 end:0x8012D8F8
.bss start:0x8018DBD0 end:0x8018F790
.sdata2 start:0x801D4B60 end:0x801D4BE8
game/hsfex.c:
.text start:0x8002CB74 end:0x8002E74C
.data start:0x8012D8F8 end:0x8012D918
.sdata2 start:0x801D4BE8 end:0x801D4C78
game/perf.c:
.text start:0x8002E74C end:0x8002EBD8
.bss start:0x8018F790 end:0x8018FB38
.sdata start:0x801D3488 end:0x801D3498
.sbss start:0x801D3C68 end:0x801D3CC0
game/objmain.c:
.text start:0x8002EBD8 end:0x8002FF4C
.data start:0x8012D918 end:0x8012DCC8
@ -135,14 +159,82 @@ game/fault.c:
.sdata start:0x801D34A0 end:0x801D34B0
.sbss start:0x801D3CF0 end:0x801D3D00
game/ovllist.c:
.data start:0x8012F790 end:0x80130100
game/gamework.c:
.text start:0x800308B8 end:0x800315BC
.rodata start:0x8011DD30 end:0x8011DD50
.bss start:0x8018FC10 end:0x80190008
game/objsysobj.c:
.text start:0x800315BC end:0x80031DB4
.bss start:0x80190008 end:0x801901E0
.sbss start:0x801D3D00 end:0x801D3D08
.sdata2 start:0x801D4CA0 end:0x801D4CB0
game/objdll.c:
.text start:0x80031DB4 end:0x800325F4
.data start:0x8012E4F0 end:0x8012E988
.bss start:0x801901E0 end:0x80190230
.sbss start:0x801D3D08 end:0x801D3D10
game/frand.c:
.text start:0x800325F4 end:0x80032830
.sbss start:0x801D3D10 end:0x801D3D18
.sdata2 start:0x801D4CB0 end:0x801D4CC0
game/audio.c:
.text start:0x80032830 end:0x80033EEC
.data start:0x8012E988 end:0x8012F130
.bss start:0x80190230 end:0x80190450
.sdata start:0x801D34B0 end:0x801D34B8
.sbss start:0x801D3D18 end:0x801D3D48
.sdata2 start:0x801D4CC0 end:0x801D4CD0
game/EnvelopeExec.c:
.text start:0x80033EEC end:0x800353AC
.sbss start:0x801D3D48 end:0x801D3D78
.sdata2 start:0x801D4CD0 end:0x801D4CE8
game/minigame_seq.c:
.text start:0x800353AC end:0x8003F8B8
.data start:0x8012F130 end:0x8012F790
.bss start:0x80190450 end:0x80190860
.sdata start:0x801D34B8 end:0x801D35C0
.sbss start:0x801D3D78 end:0x801D3D98
.sdata2 start:0x801D4CE8 end:0x801D4EA8
game/ovllist.c:
.data start:0x8012F790 end:0x80130100
game/esprite.c:
.text start:0x8003F8B8 end:0x8003FF68
.bss start:0x80190860 end:0x80192060
.sbss start:0x801D3D98 end:0x801D3DA0
game/code_8003FF68.c:
.text start:0x8003FF68 end:0x80040500
.data start:0x80130100 end:0x80130120
.bss start:0x80192060 end:0x80192360
.sdata start:0x801D35C0 end:0x801D35E0
.sdata2 start:0x801D4EA8 end:0x801D4EC0
game/ClusterExec.c:
.text start:0x80040500 end:0x80040D60
.sdata2 start:0x801D4EC0 end:0x801D4ED0
game/ShapeExec.c:
.text start:0x80040D60 end:0x80041170
.sdata2 start:0x801D4ED0 end:0x801D4EE0
game/wipe.c:
.text start:0x80041170 end:0x8004207C
.data start:0x80130120 end:0x80130138
.bss start:0x80192360 end:0x801923C0
.sdata start:0x801D35E0 end:0x801D35E8
.sdata2 start:0x801D4EE0 end:0x801D4F08
dolphin/os/__start.c:
.init start:0x80003100 end:0x80003354
game/window.c:
.text start:0x8004207C end:0x800483A0
.data start:0x80130140 end:0x80130688
@ -165,6 +257,180 @@ game/armem.c:
.bss start:0x801967E0 end:0x80196EC0
.sbss start:0x801D3E00 end:0x801D3E10
game/code_800498F0.c:
.text start:0x800498F0 end:0x80050C5C
.data start:0x801307C8 end:0x801311E8
.bss start:0x80196EC0 end:0x80197650
.sdata start:0x801D35F0 end:0x801D3638
.sbss start:0x801D3E10 end:0x801D3E18
.sdata2 start:0x801D4F98 end:0x801D50D0
game/mapspace.c:
.text start:0x80050C5C end:0x80054A00
.bss start:0x80197650 end:0x80197AB8
.sbss start:0x801D3E18 end:0x801D3E38
.sdata2 start:0x801D50D0 end:0x801D5100
game/THPSimple.c:
.text start:0x80054A00 end:0x80056B04
.data start:0x801311E8 end:0x801312E8
.bss start:0x80197AC0 end:0x801981A0
.sdata start:0x801D3638 end:0x801D3640
.sbss start:0x801D3E38 end:0x801D3E58
.sdata2 start:0x801D5100 end:0x801D5108
game/THPDraw.c:
.text start:0x80056B04 end:0x8005745C
.sdata2 start:0x801D5108 end:0x801D5120
game/thpmain.c:
.text start:0x8005745C end:0x80057E24
.rodata start:0x8011DD50 end:0x8011DD60
.data start:0x801312E8 end:0x80131350
.bss start:0x801981A0 end:0x801981E0
.sbss start:0x801D3E58 end:0x801D3E80
.sdata2 start:0x801D5120 end:0x801D5138
game/objsub.c:
.text start:0x80057E24 end:0x80058010
.data start:0x80131350 end:0x80132150
.bss start:0x801981E0 end:0x80198410
game/flag.c:
.text start:0x80058010 end:0x80058228
.bss start:0x80198410 end:0x80198420
dolphin/PPCArch.c:
.text start:0x800B42F4 end:0x800B439C
dolphin/os/OS.c:
.text start:0x800B439C end:0x800B4CF8
.data start:0x8013B560 end:0x8013B720
.bss start:0x801A5300 end:0x801A5350
.sbss start:0x801D42B0 end:0x801D42E0
dolphin/os/OSAlarm.c:
.text start:0x800B4CF8 end:0x800B53A4
.sbss start:0x801D42E0 end:0x801D42E8
dolphin/os/OSAlloc.c:
.text start:0x800B53A4 end:0x800B5D9C
.data start:0x8013B720 end:0x8013BAB8
.sdata start:0x801D38B8 end:0x801D38C0
.sbss start:0x801D42E8 end:0x801D42F8
dolphin/os/OSArena.c:
.text start:0x800B5D9C end:0x800B5DBC
.sdata start:0x801D38C0 end:0x801D38C8
.sbss start:0x801D42F8 end:0x801D4300
dolphin/os/OSAudioSystem.c:
.text start:0x800B5DBC end:0x800B6050
.data start:0x8013BAB8 end:0x8013BB38
dolphin/os/OSCache.c:
.text start:0x800B6050 end:0x800B66E8
.data start:0x8013BB38 end:0x8013BD68
dolphin/os/OSContext.c:
.text start:0x800B66E8 end:0x800B6F48
.data start:0x8013BD68 end:0x8013BF40
dolphin/os/OSError.c:
.text start:0x800B6F48 end:0x800B71E4
.data start:0x8013BF40 end:0x8013C260
.bss start:0x801A5350 end:0x801A5390
.sdata start:0x801D38C8 end:0x801D38D0
dolphin/os/OSFont.c:
.text start:0x800B71E4 end:0x800B723C
.sdata start:0x801D38D0 end:0x801D38D8
dolphin/os/OSInterrupt.c:
.text start:0x800B723C end:0x800B7AA8
.data start:0x8013C260 end:0x8013C290
.sbss start:0x801D4300 end:0x801D4318
dolphin/os/OSLink.c:
.text start:0x800B7AA8 end:0x800B822C
.data start:0x8013C290 end:0x8013C2E0
dolphin/os/OSMessage.c:
.text start:0x800B822C end:0x800B828C
dolphin/os/OSMemory.c:
.text start:0x800B828C end:0x800B8584
.data start:0x8013C2E0 end:0x8013C2F0
dolphin/os/OSMutex.c:
.text start:0x800B8584 end:0x800B85F4
dolphin/os/OSReboot.c:
.text start:0x800B85F4 end:0x800B8800
.bss start:0x801A53A0 end:0x801A53C0
.sbss start:0x801D4318 end:0x801D4328
dolphin/os/OSReset.c:
.text start:0x800B8800 end:0x800B8BE4
.sbss start:0x801D4328 end:0x801D4330
dolphin/os/OSResetSW.c:
.text start:0x800B8BE4 end:0x800B8F70
.sbss start:0x801D4330 end:0x801D4350
dolphin/os/OSRtc.c:
.text start:0x800B8F70 end:0x800B999C
.bss start:0x801A53C0 end:0x801A5418
dolphin/os/OSStopwatch.c:
.text start:0x800B999C end:0x800B9D0C
.data start:0x8013C2F0 end:0x8013C368
dolphin/os/OSSync.c:
.text start:0x800B9D0C end:0x800B9D90
dolphin/os/OSThread.c:
.text start:0x800B9D90 end:0x800BAE5C
.bss start:0x801A5418 end:0x801A5E00
.sbss start:0x801D4350 end:0x801D4360
dolphin/os/OSTime.c:
.text start:0x800BAE5C end:0x800BB280
.data start:0x8013C368 end:0x8013C3C8
dolphin/os/__ppc_eabi_init.c:
.init start:0x80003354 end:0x800033A8
.text start:0x800BB280 end:0x800BB314
dolphin/db.c:
.text start:0x800BB314 end:0x800BB400
.data start:0x8013C3C8 end:0x8013C3E0
.sbss start:0x801D4360 end:0x801D4368
dolphin/mtx/mtx.c:
.text start:0x800BB400 end:0x800BBCB0
.sdata start:0x801D38D8 end:0x801D38E0
.sdata2 start:0x801D6350 end:0x801D6368
dolphin/mtx/mtxvec.c:
.text start:0x800BBCB0 end:0x800BBDE4
dolphin/mtx/mtx44.c:
.text start:0x800BBDE4 end:0x800BBF4C
.sdata2 start:0x801D6368 end:0x801D6380
dolphin/mtx/vec.c:
.text start:0x800BBF4C end:0x800BC2C4
.sdata2 start:0x801D6380 end:0x801D6390
dolphin/mtx/quat.c:
.text start:0x800BC2C4 end:0x800BC710
.rodata start:0x8011E430 end:0x8011E440
.sdata2 start:0x801D6390 end:0x801D63B8
dolphin/mtx/psmtx.c:
.text start:0x800BC710 end:0x800BC9E8
Runtime.PPCEABI.H/global_destructor_chain.c:
.text start:0x800E2008 end:0x800E2068
.dtors start:0x8011DCE8 end:0x8011DCEC

File diff suppressed because it is too large Load diff

View file

@ -191,6 +191,7 @@ cflags_game = [
"-fp_contract off",
]
config.linker_version = "GC/2.6"
config.rel_strip_partial = False
config.rel_empty_file = "REL/empty.c"
@ -247,16 +248,90 @@ config.libs = [
Object(NonMatching, "game/hsfload.c"),
Object(NonMatching, "game/hsfdraw.c"),
Object(NonMatching, "game/hsfman.c"),
Object(NonMatching, "game/hsfmotion.c"),
Object(NonMatching, "game/hsfanim.c"),
Object(NonMatching, "game/hsfex.c"),
Object(NonMatching, "game/perf.c"),
Object(Matching, "game/objmain.c"),
Object(NonMatching, "game/fault.c"),
Object(NonMatching, "game/frand.c"),
Object(NonMatching, "game/gamework.c"),
Object(NonMatching, "game/objsysobj.c"),
Object(NonMatching, "game/objdll.c"),
Object(Matching, "game/frand.c"),
Object(NonMatching, "game/audio.c"),
Object(NonMatching, "game/EnvelopeExec.c"),
Object(NonMatching, "game/minigame_seq.c"),
Object(Matching, "game/ovllist.c"),
Object(NonMatching, "game/esprite.c"),
Object(NonMatching, "game/code_8003FF68.c"),
Object(NonMatching, "game/ClusterExec.c"),
Object(NonMatching, "game/ShapeExec.c"),
Object(NonMatching, "game/wipe.c"),
Object(NonMatching, "game/window.c"),
Object(NonMatching, "game/messdata.c"),
Object(Matching, "game/messdata.c"),
Object(NonMatching, "game/card.c"),
Object(NonMatching, "game/armem.c"),
Object(NonMatching, "game/code_800498F0.c"),
Object(NonMatching, "game/mapspace.c"),
Object(NonMatching, "game/THPSimple.c"),
Object(NonMatching, "game/THPDraw.c"),
Object(NonMatching, "game/thpmain.c"),
Object(NonMatching, "game/objsub.c"),
Object(NonMatching, "game/flag.c"),
],
},
DolphinLib(
"base",
[
Object(NonMatching, "dolphin/PPCArch.c"),
],
),
DolphinLib(
"os",
[
Object(NonMatching, "dolphin/os/OS.c"),
Object(NonMatching, "dolphin/os/OSAlarm.c"),
Object(NonMatching, "dolphin/os/OSAlloc.c"),
Object(NonMatching, "dolphin/os/OSArena.c"),
Object(NonMatching, "dolphin/os/OSAudioSystem.c"),
Object(NonMatching, "dolphin/os/OSCache.c"),
Object(NonMatching, "dolphin/os/OSContext.c"),
Object(NonMatching, "dolphin/os/OSError.c"),
Object(NonMatching, "dolphin/os/OSFont.c"),
Object(NonMatching, "dolphin/os/OSInterrupt.c"),
Object(NonMatching, "dolphin/os/OSLink.c"),
Object(NonMatching, "dolphin/os/OSMessage.c"),
Object(NonMatching, "dolphin/os/OSMemory.c"),
Object(NonMatching, "dolphin/os/OSMutex.c"),
Object(NonMatching, "dolphin/os/OSReboot.c"),
Object(NonMatching, "dolphin/os/OSReset.c"),
Object(NonMatching, "dolphin/os/OSResetSW.c"),
Object(NonMatching, "dolphin/os/OSRtc.c"),
Object(NonMatching, "dolphin/os/OSStopwatch.c"),
Object(NonMatching, "dolphin/os/OSSync.c"),
Object(NonMatching, "dolphin/os/OSThread.c"),
Object(NonMatching, "dolphin/os/OSTime.c"),
Object(NonMatching, "dolphin/os/__start.c"),
Object(NonMatching, "dolphin/os/__ppc_eabi_init.c"),
],
),
DolphinLib(
"db",
[
Object(NonMatching, "dolphin/db.c"),
],
),
DolphinLib(
"mtx",
[
Object(NonMatching, "dolphin/mtx/mtx.c"),
Object(NonMatching, "dolphin/mtx/mtxvec.c"),
Object(NonMatching, "dolphin/mtx/mtx44.c"),
Object(NonMatching, "dolphin/mtx/vec.c"),
Object(NonMatching, "dolphin/mtx/quat.c"),
Object(NonMatching, "dolphin/mtx/psmtx.c"),
],
),
{
"lib": "Runtime.PPCEABI.H",
"mw_version": config.linker_version,
@ -308,6 +383,19 @@ config.libs = [
Object(Matching, "REL/subchrselDll/subchrselDll.c"),
],
},
{
"lib": "w10Dll",
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [
Object(Matching, "REL/w10Dll/w10Dll_init.c"),
Object(Matching, "REL/w10Dll/w10Dll.c"),
Object(Matching, "REL/w10Dll/w10Dll2.c"),
Object(Matching, "REL/w10Dll/w10Dll3.c"),
Object(Matching, "REL/w10Dll/w10Dll4.c"),
],
},
]
if args.mode == "configure":

128
include/REL/w10Dll.h Normal file
View file

@ -0,0 +1,128 @@
#include "common.h"
#include "REL/executor.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
typedef struct unkw10Dll {
Vec3f unk0;
Vec3f unk0C;
Vec3f unk18;
s32 unk24;
} unkw10Dll; //sizeof 0x28
typedef struct w10DllUnk01 {
u8 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
f32 unk10;
} w10DllUnk01; //sizeof ?
typedef struct m456DllUnk02 {
char unk00[0x5C];
w10DllUnk01* unk5C;
} m456DllUnk02; //sizeof ?
//this belongs to m456Dll
m456DllUnk02** fn_8002FAC0(Process*, s32);
typedef struct w10DllUnk03 {
s16 unk0;
s16 unk2;
s16 unk4;
} w10DllUnk03;
typedef struct w10DllUnk04 {
s16 unk0;
s16 unk2;
void (*unk4)();
} w10DllUnk04;
extern s16 lbl_1_bss_20;
extern s16 lbl_1_bss_22[];
extern s16 lbl_1_bss_20;
extern s32 lbl_801A52E8;
void fn_1_C10(s16);
void fn_1_1FB0(void);
void fn_1_1E3C(s16, s16, s16);
void fn_1_BA0(s32);
void fn_1_C20(void);
void fn_1_6D8(void);
void fn_1_E0(void);
void fn_1_1D68(void);
void fn_1_1DEC(void);
void fn_1_AEC(void);
int fn_1_1AAC(s16, s32);
void fn_1_8C0(void);
void fn_1_904(void);
void fn_1_908(void);
s32 fn_1_90C(void);
void fn_1_91C(void);
void fn_1_13A4(void);
void fn_1_176C(void);
void fn_1_179C(void);
void fn_1_17F4(void);
void fn_1_1834(void);
void fn_1_18BC(void);
void fn_1_1908(void);
void fn_1_1930(void);
void fn_1_1958(void);
void fn_1_D2C(void);
void fn_1_D54(void);
void fn_1_D7C(void);
void fn_1_DA4(void);
void fn_1_DCC(void);
void fn_1_DF4(void);
void fn_1_E1C(void);
void fn_1_E44(void);
void fn_1_E94(void);
void fn_1_EBC(void);
void fn_1_EE4(void);
void fn_1_EE8(void);
void fn_1_F30(void);
void fn_1_F6C(void);
void fn_1_FB8(void);
void fn_1_1010(void);
void fn_1_105C(void);
void fn_1_1098(void);
void fn_1_10C0(void);
void fn_1_10F8(void);
void fn_1_1134(void);
void fn_1_1178(void);
void fn_1_11A0(void);
void fn_1_11EC(void);
void fn_1_1240(void);
void fn_1_1278(void);
void fn_1_12A0(void);
void fn_1_12DC(void);
void fn_1_1304(void);
void fn_1_132C(void);
void fn_1_1354(void);
void fn_1_137C(void);
extern w10DllUnk04 lbl_1_data_108[42];
extern w10DllUnk03 lbl_1_data_C6[];
extern Vec3f lbl_1_data_80[];
extern Process* lbl_1_bss_18;
extern s16 lbl_1_bss_1C;
extern s16 lbl_1_bss_1E;
extern s32 lbl_1_data_78[2];
extern BoardStateSubStruct* lbl_1_bss_0;
extern s16 lbl_1_bss_10[4]; //could be incorrect size
extern void* lbl_1_bss_8; //unknown type
extern s16 lbl_1_bss_C;
extern s16 lbl_1_bss_E;
extern unkw10Dll lbl_1_data_0[1];
extern s16 lbl_1_bss_22[11];
extern s32 lbl_1_data_2A8[11];
extern s16 lbl_1_data_28;
extern s16 lbl_1_data_2A;
extern s16 lbl_1_data_2C;
extern s16 lbl_1_data_2E;
extern s16 lbl_1_data_30;
extern s16 lbl_1_data_32;
extern s32 lbl_1_data_54[2];
extern s32 lbl_1_data_5C[2];
extern s32 lbl_1_data_64[2];
extern s32 lbl_1_data_6C[2];

View file

@ -7,5 +7,6 @@
#include "functions.h"
#include "variables.h"
#include "dolphin/mtx/GeoTypes.h"
#include "dolphin/mtx.h"
#endif

View file

@ -11,6 +11,11 @@ typedef struct om_ovl_his_data {
int stat;
} omOvlHisData;
typedef struct Vec2f {
f32 x;
f32 y;
} Vec2f;
typedef struct Vec3f {
f32 x;
f32 y;
@ -78,12 +83,12 @@ typedef struct data_read_stat {
typedef struct BoardStateSubStruct {
/* 0x00 */ s32 unk0;
/* 0x04 */ s16 unk4;
/* 0x06 */ s16 unk6;
/* 0x04 */ u16 unk4;
/* 0x06 */ u16 unk6;
/* 0x08 */ s16 unk8;
} BoardStateSubStruct;
typedef struct BoardState {
typedef struct system_work {
/* 0x00 */ char unk00[0x04];
/* 0x04 */ s8 curTurnCount;
/* 0x05 */ s8 maxTurnCount;
@ -94,14 +99,14 @@ typedef struct BoardState {
/* 0x0C */ char unk0C[4];
/* 0x10 */ BoardStateSubStruct unk10;
/* 0x1A */ char unk1A[0xC6];
} BoardState; //8018fcf8, sizeof 0xE0
} SystemState; //8018fcf8, sizeof 0xE0
typedef struct {
u8 unk0 : 2;
} PlayerFlags;
typedef struct Player {
/* 0x00 */ s8 characterID;
typedef struct player_state {
/* 0x00 */ u8 characterID;
/* 0x01 */ s8 unk01;
/* 0x02 */ s8 unk02;
/* 0x03 */ s8 unk03;
@ -128,7 +133,7 @@ typedef struct Player {
/* 0x24 */ char unk_24[6];
/* 0x2A */ s16 stars;
/* 0x2C */ char unk_2C[4];
} Player; //size of 0x30
} PlayerState; //size of 0x30
typedef struct om_obj_data {
u16 stat;

View file

@ -4,9 +4,11 @@
#include "types.h"
#include "common_structs.h"
#include "common_enums.h"
#include "dolphin/mtx.h"
#include "dolphin/gx/GXStruct.h"
void Hu3D2Dto3D(Vec3f*, s32, Vec3f*);
void Hu3DModelLightInfoSet(s32, s32);
void Hu3DBGColorSet(u8, u8, u8);
void Hu3DCameraCreate(s16);
void Hu3DCameraPerspectiveSet(s16, f32, f32, f32, f32);
@ -14,7 +16,7 @@ void Hu3DCameraViewportSet(s16, f32, f32, f32, f32, f32, f32);
void fn_80044920(s16);
void fn_80045F74(s16, s32);
s32 fn_800578E4(void);
void fn_80032A58(int arg0);
void HuAudFadeOut(int arg0);
void fn_80035A0C(void);
void HuDecodeData(void *src, void *dst, u32 size, int decode_type);
@ -100,6 +102,7 @@ void omSysPauseEnable(BOOL flag);
void WipeCreate(char dir, char type, short duration);
u8 WipeStatGet(void);
void pfInit(void);
void pfClsScr(void);
@ -149,20 +152,34 @@ void Hu3DModelRotSet(s16 index, float x, float y, float z);
void Hu3DModelScaleSet(s16 index, float x, float y, float z);
void espInit(void);
void espScaleSet(s16, f32, f32);
s16 espEntry(s32, s32, s32);
void espDispOff(s16);
void espKill(s16);
void espDispOn(s16);
void espPosSet(s16, f32, f32);
void HuSprClose(void);
void HuWinAllKill(void);
void HuWinMesSet(s16, s32);
void HuWinKill(s16);
void HuWinPriSet(s16, s32);
void HuWinMesPalSet(s16, s32, s32, s32, s32);
void HuWinMesSpeedSet(s16, s32);
void HuWinMesMaxSizeGet(s32, f32*, ...);
s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame);
void HuPadRumbleAllStop(void);
s16 HuPadStatGet(s16);
void HuAudFXListnerKill(void);
void HuAudDllSndGrpSet(u16 ovl);
void fn_800338EC(s16 ovl);
void HuAudVoiceInit(s16 ovl);
void fn_80035A0C(void);
void MGSeqKillAll(void);
void fn_8003F3AC(void);
void MGSeqPracticeStart(void);
void fn_8004D6F4(s16 arg);
s32 _CheckFlag(u32 flag);
@ -171,4 +188,57 @@ void BoardMessCreate(s16, s32, s32);
void BoardMessKill(void);
void BoardMessWait(void);
s32 rand8(void);
void fn_8005D8E8(void);
void fn_8005DB6C(s16, Vec3f*, s32, f32, f32, s32);
void fn_8005E0C0(void);
void fn_80074210(s32, s32, Vec3f*);
void fn_8007A360(s32);
void fn_8007F894(void);
void fn_80083F84(void);
void fn_800884F4(s32);
void fn_800A4C88(void);
void fn_800A6B10(void);
void fn_8008853C(s32);
void fn_800B42B4(s32);
void fn_80082AAC(s32);
void fn_800B4264(s32, s32, s32);
void fn_8007500C(s32);
void fn_8006F0D4(s32, f32);
f32 fn_8006F128(s32);
f64 fmod(f32, f64);
void fn_8006F61C(s16, s32);
void fn_800B42BC(s16);
s32 fn_8006DBD4(s16);
void fn_8005B150(void*, void*);
void fn_8006F2E8(s32, Vec3f*);
void fn_8005D10C(void*, void*);
s16 fn_8006D9A4(s32, void*, s32);
void fn_8006DB90(s16);
void fn_8006DDE8(s16, f32);
void fn_8006E2B8(s16, s32, s32);
void fn_8006E878(s16, f32);
void fn_8006F158(s16, void*);
void fn_8006F1A8(s16, f32, f32, f32);
s32 fn_8006F220(s16 arg0, Vec3f* arg1);
void fn_8006F50C(s16, s32);
void fn_80073FF4(void*);
void fn_80073FFC(void*);
void fn_80074004(void*);
s32 fn_800745F0(s32, s32);
void fn_800772EC(s32);
void fn_80077A3C(void);
void fn_80077AAC(s16);
void fn_8007A83C(s16);
void fn_80083EDC(s16);
void fn_800A4F6C(s16);
void fn_800B3FD8(void*);
void fn_800B4274(s32, s32);
void fn_8005D5C0(Vec3f*);
void fn_8006F338(s16, f32, f32, f32);
s32 fn_8005B6A8(void);
void fn_8006EFBC(s16, Mtx);
void fn_8006F270(s16, f32, f32, f32);
#endif

View file

@ -22,7 +22,7 @@ extern u32 procfunc;
extern WipeState wipeData;
extern PlayerConfig gPlayerConfig[4];
extern PlayerConfig GWPlayerCfg[4];
extern FileListEntry _ovltbl[];
@ -45,5 +45,7 @@ extern s16 omSysExitReq;
extern s16 omdispinfo;
extern char omSysPauseEnableFlag;
extern OverlayID omprevovl;
extern PlayerState GWPlayer[4];
extern SystemState GWSystem;
#endif

View file

@ -76,7 +76,7 @@ void fn_8000F038(s16, s32, s32);
s16 fn_800204D0(s32);
void fn_80021228(s16, s32);
void fn_80022420(s16, s32);
void fn_80023828(s16, s32);
void Hu3DModelLightInfoSet(s16, s32);
extern s16 lbl_1_bss_6;
extern temp2 lbl_1_bss_8;
extern f32 lbl_1_rodata_48;
@ -103,7 +103,7 @@ void fn_1_2100(void) {
fn_80021228(temp_r3_3, 1);
fn_80021228(temp_r3_3, 0x40000001);
fn_80022420(temp_r3_3, 1);
fn_80023828(temp_r3_3, 1);
Hu3DModelLightInfoSet(temp_r3_3, 1);
lbl_1_bss_6 = fn_8000E0F8(4);
fn_80008364(0x740008, 0x10000000, 2);
temp_r3 = fn_8000DD24();

View file

@ -61,7 +61,7 @@ static void SubchrMain()
int ext_character[4];
int i, cursor_pos;
for(i=0; i<4; i++) {
character[i] = gPlayerConfig[i].character;
character[i] = GWPlayerCfg[i].character;
ext_character[i] = 0;
cur_direction[i] = 0;
}
@ -90,13 +90,13 @@ static void SubchrMain()
if(GetBtns() & 0x1000) {
for(i=0; i<4; i++) {
if(ext_character[i] != 0) {
gPlayerConfig[i]. character = ext_character[i]+7;
GWPlayerCfg[i].character = ext_character[i]+7;
}
}
fn_80032A58(30);
HuAudFadeOut(30);
WipeCreate(2, 0, -1);
HuPrcSleep(wipeData.duration+1.0f);
fn_80035A0C();
MGSeqKillAll();
omOvlGotoEx(OVL_M433, 1, 0, 0);
do {
HuPrcVSleep();
@ -145,10 +145,10 @@ static void SubchrMain()
cursor_pos = 0;
}
if(GetBtns() & 0x200) {
fn_80032A58(30);
HuAudFadeOut(30);
WipeCreate(2, 0, -1);
HuPrcSleep(wipeData.duration+1.0f);
fn_80035A0C();
MGSeqKillAll();
omOvlReturnEx(1, 1);
do {
HuPrcVSleep();

View file

@ -1,150 +1,72 @@
#include "common.h"
#include "REL/executor.h"
#include "include/REL/w10Dll.h"
s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame);
//BSS
s16 lbl_1_bss_22[11];
s16 lbl_1_bss_20;
s16 lbl_1_bss_1E;
s16 lbl_1_bss_1C;
Process* lbl_1_bss_18;
s16 lbl_1_bss_10[4];
s16 lbl_1_bss_E;
s16 lbl_1_bss_C;
void* lbl_1_bss_8;
s32 lbl_1_bss_4_pad;
BoardStateSubStruct* lbl_1_bss_0;
typedef struct unkw10Dll {
char unk0[0x0C];
Vec3f unk0C;
Vec3f unk18;
s32 unk24;
} unkw10Dll; //sizeof 0x28
//DATA
unkw10Dll lbl_1_data_0[1] = {
3300.0f, 100.0f, -900.0f,
0.0f, 0.0f, 0.0f,
1.0f, 1.0f, 1.0f,
0x007B0003
};
typedef struct w10DllUnk01 {
u8 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
f32 unk10;
} w10DllUnk01; //sizeof ?
typedef struct w10DllUnk02 {
char unk00[0x5C];
w10DllUnk01* unk5C;
} w10DllUnk02; //sizeof ?
s16 lbl_1_data_28 = -1;
s16 lbl_1_data_2A = -1;
s16 lbl_1_data_2C = -1;
s16 lbl_1_data_2E = -1;
s16 lbl_1_data_30 = -1;
s16 lbl_1_data_32 = -1;
//this belongs to m456Dll
w10DllUnk02** fn_8002FAC0(Process*, s32);
void fn_8003FD10(s16, f32, f32);
extern s16 lbl_1_bss_20;
extern f32 lbl_1_rodata_5C;
extern f32 lbl_1_rodata_60;
s16 fn_8003F958(s32, s32, s32);
void fn_8003FBEC(s16);
void fn_8008853C(s32);
extern s32 lbl_801A52E8;
void fn_800B42B4(s32);
void fn_80082AAC(s32);
void fn_800B4264(s32, s32, s32);
void fn_1_1FB0(void);
void fn_1_1E3C(s32, s32, s32);
void fn_8007500C(s32);
void fn_1_BA0(s32);
void fn_8006F0D4(s32, f32);
f32 fn_8006F128(s32);
f64 fmod(f32, f64);
void fn_1_C20(void);
void fn_8006F61C(s16, s32);
void fn_800B42BC(s16);
void fn_80023828(s32, s32);
s32 fn_8006DBD4(s16);
void fn_8005B150(void*, void*);
void fn_1_6D8(void);
void fn_1_E0(void);
void fn_8006F2E8(s32, Vec3f*);
void HuWinMesSet(s16, s32);
void fn_1_1D68(void);
void fn_1_1DEC(void);
void fn_1_AEC(void);
void fn_80042848(s16);
void fn_80045BF4(s16, s32);
void fn_80045D7C(s16, s32, s32, s32, s32);
void fn_80045E84(s16, s32);
void fn_80046F04(s32, f32*, ...);
void fn_8005D10C(void*, void*);
s16 fn_8006D9A4(s32, void*, s32);
void fn_8006DB90(s16);
void fn_8006DDE8(s16, f32);
void fn_8006E2B8(s16, s32, s32);
void fn_8006E878(s16, f32);
void fn_8006F158(s16, void*);
void fn_8006F1A8(s16, f32, f32, f32);
s32 fn_8006F220(s16 arg0, Vec3f* arg1);
void fn_8006F50C(s16, s32);
void fn_80073FF4(void*);
void fn_80073FFC(void*);
void fn_80074004(void*);
s32 fn_800745F0(s32, s32);
void fn_800772EC(s32);
void fn_80077A3C(void);
void fn_80077AAC(s16);
void fn_8007A83C(s16);
void fn_80083EDC(s16);
void fn_800A4F6C(s16);
void fn_800B3FD8(void*);
void fn_800B4274(s32, s32);
void fn_1_1AAC(void);
void fn_1_8C0(void);
void fn_1_904(void);
void fn_1_908(void);
s32 fn_1_90C(void);
void fn_1_91C(void);
void Hu3D2Dto3D(Vec3f*, s32, Vec3f*);
void fn_8005D5C0(Vec3f*);
void fn_8006F338(s16, f32, f32, f32);
s32 fn_8005B6A8(void);
void fn_8006EFBC(s16, Mtx);
void fn_8006F270(s16, f32, f32, f32);
void fn_8003FB08(s16);
extern Vec3f lbl_1_data_80[];
extern f32 lbl_1_rodata_38;
extern f32 lbl_1_rodata_3C;
extern f32 lbl_1_rodata_40;
extern Process* lbl_1_bss_18;
extern s16 lbl_1_bss_1C;
extern s16 lbl_1_bss_1E;
extern s32 lbl_1_data_78; //no idea on the type of this
extern f64 lbl_1_rodata_28;
extern f32 lbl_1_rodata_30;
extern f32 lbl_1_rodata_34;
extern BoardStateSubStruct* lbl_1_bss_0;
extern s16 lbl_1_bss_10[12]; //could be incorrect size
extern void* lbl_1_bss_8; //unknown type
extern s16 lbl_1_bss_C;
extern s16 lbl_1_bss_E;
extern unkw10Dll lbl_1_data_0[1];
extern s16 lbl_1_bss_22[11];
extern s32 lbl_1_data_2A8[11];
extern s16 lbl_1_data_28;
extern s16 lbl_1_data_2A;
extern s16 lbl_1_data_2C;
extern s16 lbl_1_data_2E;
extern s16 lbl_1_data_30;
extern s16 lbl_1_data_32;
extern s32 lbl_1_data_54; //unknown type
extern s32 lbl_1_data_5C; //unknown type
extern s32 lbl_1_data_64; //unknown type
extern s32 lbl_1_data_6C; //unknown type
extern f32 lbl_1_rodata_10;
extern f32 lbl_1_rodata_14;
extern f32 lbl_1_rodata_18;
extern f32 lbl_1_rodata_1C;
extern BoardState lbl_8018FCF8;
//unused?
s32 lbl_1_data_34[] = {
0x005F0000, 0x001A0000,
0x006D0000, 0x008A0000,
0x00850000, 0x00110000,
0x000D0000, 0x00810000,
};
/*
void fn_1_0(void) {
fn_8005B150(&fn_1_E0, &fn_1_6D8);
}
*/
s32 lbl_1_data_54[2] = {
0x007B0012,
-1
};
s32 lbl_1_data_5C[2] = {
0x00020009,
-1
};
s32 lbl_1_data_64[2] = {
0x00020018,
-1
};
s32 lbl_1_data_6C[2] = {
0x0002000E,
-1,
};
//RODATA
//HACK: Force 0.5 and 3.0 double constants to appear in REL
const double _half = 0.5;
const double _three = 3.0;
// function is probably global. only inlined in rels?
/*
inline s32 get_current_board(void) {
return lbl_8018FCF8.unk08 & 0x1F;
return GWSystem.unk08 & 0x1F;
}
*/
/*
void fn_1_E0(void) {
f32 sp10;
f32 spC;
@ -156,7 +78,7 @@ void fn_1_E0(void) {
s32 temp2;
temp2 = get_current_board();
lbl_1_bss_0 = &lbl_8018FCF8.unk10;
lbl_1_bss_0 = &GWSystem.unk10;
lbl_1_bss_0->unk0 = 0;
lbl_1_bss_0->unk4 = 0;
lbl_1_bss_0->unk6 = 0;
@ -168,25 +90,25 @@ void fn_1_E0(void) {
temp = fn_800745F0(0, 1);
fn_800B4274(temp, 1);
lbl_1_data_28 = fn_8006D9A4(0x7B0001, NULL, 0);
fn_8006DDE8(lbl_1_data_28, lbl_1_rodata_10);
fn_8006F1A8(lbl_1_data_28, lbl_1_rodata_14, lbl_1_rodata_14, lbl_1_rodata_14);
fn_8006DDE8(lbl_1_data_28, -1.0f);
fn_8006F1A8(lbl_1_data_28, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_28, 0, 0x40000001);
fn_8006E878(lbl_1_data_28, lbl_1_rodata_18);
fn_8006E878(lbl_1_data_28, 1.0f);
lbl_1_data_2A = fn_8006D9A4(0x7B0002, NULL, 0);
fn_8006DDE8(lbl_1_data_2A, lbl_1_rodata_10);
fn_8006F1A8(lbl_1_data_2A, lbl_1_rodata_14, lbl_1_rodata_14, lbl_1_rodata_14);
fn_8006DDE8(lbl_1_data_2A, -1.0f);
fn_8006F1A8(lbl_1_data_2A, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_2A, 0, 0x40000001);
lbl_1_data_2C = fn_8006D9A4(0x7B0011, &lbl_1_data_54, 0);
fn_8006F1A8(lbl_1_data_2C, lbl_1_rodata_14, lbl_1_rodata_14, lbl_1_rodata_14);
lbl_1_data_2C = fn_8006D9A4(0x7B0011, lbl_1_data_54, 0);
fn_8006F1A8(lbl_1_data_2C, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_2C, 1, 0x40000001);
lbl_1_data_2E = fn_8006D9A4(0x20005, &lbl_1_data_5C, 0);
lbl_1_data_2E = fn_8006D9A4(0x20005, lbl_1_data_5C, 0);
fn_8006E2B8(lbl_1_data_2E, 1, 0x40000001);
lbl_1_data_32 = fn_8006D9A4(0x20012, &lbl_1_data_64, 0);
lbl_1_data_32 = fn_8006D9A4(0x20012, lbl_1_data_64, 0);
fn_8006E2B8(lbl_1_data_32, 1, 0x40000001);
lbl_1_data_30 = fn_8006D9A4(0x2000D, &lbl_1_data_6C, 0);
lbl_1_data_30 = fn_8006D9A4(0x2000D, lbl_1_data_6C, 0);
fn_8006E2B8(lbl_1_data_30, 1, 0x40000001);
fn_8005D10C(&fn_1_8C0, &fn_1_904);
for (i = 0; i < 1; i++) {
for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) {
temp_r30 = &lbl_1_data_0[i];
if (temp_r30->unk24 != -1) {
lbl_1_bss_8 = NULL;
@ -210,16 +132,14 @@ void fn_1_E0(void) {
fn_800A4F6C(lbl_1_data_32);
fn_80077AAC(lbl_1_data_2E);
fn_8007A83C(lbl_1_data_30);
fn_80046F04(1, &spC, 0x2E003A);
lbl_1_bss_E = HuWinCreate(lbl_1_rodata_1C, lbl_1_rodata_20, spC, sp10, 1);
HuWinMesMaxSizeGet(1, &spC, 0x2E003A);
lbl_1_bss_E = HuWinCreate(-10000.0f, 390.0f, spC, sp10, 1);
HuWinMesSet(lbl_1_bss_E, 0x2E003A);
fn_80045E84(lbl_1_bss_E, 0);
fn_80045BF4(lbl_1_bss_E, 1);
fn_80045D7C(lbl_1_bss_E, 7, 0, 0, 0);
HuWinMesSpeedSet(lbl_1_bss_E, 0);
HuWinPriSet(lbl_1_bss_E, 1);
HuWinMesPalSet(lbl_1_bss_E, 7, 0, 0, 0);
}
*/
/*
void fn_1_6D8(void) {
s32 i;
for (i = 0; i < 1; i++) {
@ -254,50 +174,34 @@ void fn_1_6D8(void) {
}
fn_8006DB90(lbl_1_bss_0->unk8);
fn_1_1DEC();
fn_80042848(lbl_1_bss_E);
HuWinKill(lbl_1_bss_E);
fn_80077A3C();
}
*/
/*
void fn_1_8C0(void) {
s32 temp = fn_8006DBD4(lbl_1_data_28);
fn_80023828(temp, 1);
Hu3DModelLightInfoSet(temp, 1);
}
*/
/*
void fn_1_904(void) {
}
*/
/*
void fn_1_908(void) {
}
*/
/*
s32 fn_1_90C(void) {
return 0;
}
*/
/*
void fn_1_914(void) {
}
*/
/*
void fn_1_918(void) {
}
*/
/*
void fn_1_91C(void) {
}
*/
/*
s32 fn_1_920(s32 arg0, f32 arg8, f32 arg9) {
s32 var_r31;
f32 var_f29;
@ -305,34 +209,34 @@ s32 fn_1_920(s32 arg0, f32 arg8, f32 arg9) {
var_r31 = 0;
var_f31 = fn_8006F128(arg0);
arg8 = fmod(arg8, lbl_1_rodata_28);
if (var_f31 < lbl_1_rodata_14) {
var_f31 += lbl_1_rodata_30;
arg8 = fmod(arg8, 360.0);
if (var_f31 < 0.0f) {
var_f31 += 360.0f;
}
if (arg8 < lbl_1_rodata_14) {
arg8 += lbl_1_rodata_30;
if (arg8 < 0.0f) {
arg8 += 360.0f;
}
if (var_f31 != arg8) {
var_f29 = arg8 - var_f31;
if (var_f29 < lbl_1_rodata_14) {
var_f29 += lbl_1_rodata_30;
if (var_f29 < 0.0f) {
var_f29 += 360.0f;
}
if (var_f29 < lbl_1_rodata_34) {
if (var_f29 < 180.0f) {
if (var_f29 > arg9) {
var_f31 = var_f31 + arg9;
} else {
var_f31 = arg8;
}
} else if ((lbl_1_rodata_30 - var_f29) > arg9) {
} else if ((360.0f - var_f29) > arg9) {
var_f31 = var_f31 - arg9;
} else {
var_f31 = arg8;
}
if (var_f31 < lbl_1_rodata_14) {
var_f31 += lbl_1_rodata_30;
if (var_f31 < 0.0f) {
var_f31 += 360.0f;
}
if (var_f31 >= lbl_1_rodata_30) {
var_f31 -= lbl_1_rodata_30;
if (var_f31 >= 360.0f) {
var_f31 -= 360.0f;
}
fn_8006F0D4(arg0, var_f31);
} else {
@ -340,407 +244,3 @@ s32 fn_1_920(s32 arg0, f32 arg8, f32 arg9) {
}
return var_r31;
}
*/
/*
void fn_1_AEC(void) {
lbl_1_bss_1C = 0;
lbl_1_bss_1E = fn_8006D9A4(0x7B000F, &lbl_1_data_78, 0);
fn_8006E2B8(lbl_1_bss_1E, 1, 0x40000001);
fn_800B42BC(lbl_1_bss_1E);
fn_8006F61C(lbl_1_bss_1E, 6);
lbl_1_bss_18 = HuPrcCreate(fn_1_C20, 0x1FFF, 0x1800, 0);
}
*/
/*
void fn_1_BA0(s32 arg0) {
s32 var_r31;
switch (lbl_1_bss_1C) {
case 0:
var_r31 = 5;
break;
case 1:
var_r31 = 6;
break;
}
BoardMessCreate(var_r31, arg0, -1);
BoardMessWait();
BoardMessKill();
}
*/
/*
void fn_1_C10(void) {
HuPrcEnd();
}
*/
/*
void fn_1_C20(void) {
Mtx sp20;
Vec3f sp14;
Vec3f sp8;
while (1) {
if (fn_8005B6A8() != 0) {
fn_8006DB90(lbl_1_bss_1E);
fn_800B42BC(-1);
HuPrcEnd();
}
Hu3D2Dto3D(&lbl_1_data_80[lbl_1_bss_1C], 1, &sp14);
fn_8006F158(lbl_1_bss_1E, &sp14);
fn_8005D5C0(&sp8);
PSMTXRotRad(sp20, 'y', lbl_1_rodata_38);
fn_8006EFBC(lbl_1_bss_1E, sp20);
fn_8006F270(lbl_1_bss_1E, sp8.x, lbl_1_rodata_3C, lbl_1_rodata_3C);
fn_8006F338(lbl_1_bss_1E, lbl_1_rodata_40, lbl_1_rodata_40, lbl_1_rodata_40);
HuPrcVSleep();
}
}
*/
/*
void fn_1_D2C(void) {
fn_1_BA0(0x2E0001);
}
*/
/*
void fn_1_D54(void) {
fn_1_BA0(0x2E0002);
}
*/
/*
void fn_1_D7C(void) {
fn_1_BA0(0x2E0003);
}
*/
/*
void fn_1_DA4(void) {
fn_1_BA0(0x2E0004);
}
*/
/*
void fn_1_DCC(void) {
fn_1_BA0(0x2E0005);
}
*/
/*
void fn_1_DF4(void) {
fn_1_BA0(0x2E0006);
}
*/
/*
void fn_1_E1C(void) {
fn_1_BA0(0x2E0007);
}
*/
/*
void fn_1_E44(void) {
fn_1_BA0(0x2E0008);
fn_1_BA0(0x2E0009);
fn_8007500C(0);
fn_8006F50C(lbl_1_data_2C, 1);
}
*/
/*
void fn_1_E94(void) {
fn_1_BA0(0x2E000A);
}
*/
/*
void fn_1_EBC(void) {
fn_1_BA0(0x2E000B);
}
*/
/*
void fn_1_EE4(void) {
}
*/
/*
void fn_1_EE8(void) {
fn_1_1E3C(0, 0x122, 0x8C);
fn_1_BA0(0x2E000C);
fn_1_BA0(0x2E000D);
fn_1_1FB0();
}
*/
/*
void fn_1_F30(void) {
fn_1_1E3C(1, 0x122, 0x8C);
fn_1_BA0(0x2E000E);
fn_1_1FB0();
}
*/
/*
void fn_1_F6C(void) {
fn_1_1E3C(2, 0x122, 0x8C);
fn_1_BA0(0x2E000F);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
}
*/
/*
void fn_1_FB8(void) {
fn_1_1E3C(3, 0x122, 0x8C);
fn_1_BA0(0x2E0010);
fn_1_1FB0();
fn_1_BA0(0x2E0011);
fn_800B4264(-0x50, 0, 1);
}
*/
/*
void fn_1_1010(void) {
fn_1_1E3C(4, 0x122, 0x8C);
fn_1_BA0(0x2E0012);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
}
*/
/*
void fn_1_105C(void) {
fn_1_1E3C(5, 0x122, 0x8C);
fn_1_BA0(0x2E0013);
fn_1_1FB0();
}
*/
/*
void fn_1_1098(void) {
fn_1_BA0(0x2E0014);
}
*/
/*
void fn_1_10C0(void) {
fn_1_BA0(0x2E0015);
fn_800B4264(-0x50, 0, 1);
}
*/
/*
void fn_1_10F8(void) {
fn_1_1E3C(6, 0x122, 0x8C);
fn_1_BA0(0x2E0016);
fn_1_1FB0();
}
*/
/*
void fn_1_1134(void) {
fn_1_1E3C(7, 0x122, 0x8C);
fn_1_BA0(0x2E0017);
fn_1_1FB0();
fn_80082AAC(1);
}
*/
/*
void fn_1_1178(void) {
fn_1_BA0(0x2E0018);
}
*/
/*
void fn_1_11A0(void) {
s32 temp;
fn_1_BA0(0x2E0019);
temp = fn_800745F0(0, 1);
fn_800B4274(temp, 0);
}
*/
/*
void fn_1_11EC(void) {
s32 temp;
fn_1_BA0(0x2E001A);
temp = fn_800745F0(0, 1);
fn_800B4274(temp, 0);
fn_800B42B4(0);
}
*/
/*
void fn_1_1240(void) {
fn_1_BA0(0x2E001B);
fn_800B4264(0x50, 0, 1);
}
*/
/*
void fn_1_1278(void) {
fn_1_BA0(0x2E001C);
}
*/
/*
void fn_1_12A0(void) {
fn_1_BA0(0x2E001D);
fn_80062B74(2, 1);
fn_800B42B4(1);
}
*/
/*
void fn_1_12DC(void) {
fn_1_BA0(0x2E001E);
}
*/
/*
void fn_1_1304(void) {
fn_1_BA0(0x2E001F);
}
*/
/*
void fn_1_132C(void) {
fn_1_BA0(0x2E0020);
}
*/
/*
void fn_1_1354(void) {
fn_1_BA0(0x2E0021);
}
*/
/*
void fn_1_137C(void) {
fn_1_BA0(0x2E0022);
}
*/
// fn_1_13A4
/*
void fn_1_176C(void) {
fn_1_C10(1);
fn_1_BA0(0x2E0024);
}
*/
/*
void fn_1_179C(void) {
fn_1_BA0(0x2E0025);
gPlayerData[1].flags.unk0 = 2;
gPlayerData[3].flags.unk0 = 2;
}
*/
/*
void fn_1_17F4(void) {
fn_1_BA0(0x2E0026);
gPlayerData[0].flags.unk0 = 2;
}
*/
/*
void fn_1_1834(void) {
fn_1_BA0(0x2E0027);
gPlayerData[0].flags.unk0 = 1;
gPlayerData[1].flags.unk0 = 1;
gPlayerData[2].flags.unk0 = 1;
gPlayerData[3].flags.unk0 = 2;
}
*/
/*
void fn_1_18BC(void) {
fn_1_BA0(0x2E0028);
fn_1_BA0(0x2E0029);
lbl_801A52E8 = 0;
fn_8008853C(0);
}
*/
/*
void fn_1_1908(void) {
fn_1_BA0(0x2E002D);
}
*/
/*
void fn_1_1930(void) {
fn_1_BA0(0x2E002F);
}
*/
/*
void fn_1_1958(void) {
fn_1_BA0(0x2E0031);
}
*/
/*
void fn_1_1980(void) {
}
*/
// fn_1_1984
// fn_1_1AAC
/*
void fn_1_1D68(void) {
s32 temp_r4;
s32 temp_r5;
s32 i;
for (i = 0; i < 11; i++) {
lbl_1_bss_22[i] = fn_8003F958(lbl_1_data_2A8[i], 0, 0);
fn_8003FBEC(lbl_1_bss_22[i]);
}
}
*/
/*
void fn_1_1DEC(void) {
s32 i;
for (i = 0; i < 11; i++) {
fn_8003FB08(lbl_1_bss_22[i]);
}
}
*/
// fn_1_1E3C
/*
void fn_1_1FB0(void) {
f32 var_f31;
f32 var_f30;
u32 i;
var_f31 = lbl_1_rodata_60;
var_f30 = lbl_1_rodata_60;
for (i = 0; i < 15; i++) {
var_f31 -= lbl_1_rodata_5C;
var_f30 -= lbl_1_rodata_5C;
fn_8003FD10(lbl_1_bss_20, var_f31, var_f30);
HuPrcVSleep();
}
fn_8003FBEC(lbl_1_bss_20);
}
*/

62
src/REL/w10Dll/w10Dll2.c Normal file
View file

@ -0,0 +1,62 @@
#include "REL/w10Dll.h"
s32 lbl_1_data_78[2] = {
0x007B0010,
-1
};
Vec3f lbl_1_data_80[2] = {
{70.0f, 355.0f, 200.f},
{70.0f, 175.0f, 200.f},
};
void fn_1_AEC(void) {
lbl_1_bss_1C = 0;
lbl_1_bss_1E = fn_8006D9A4(0x7B000F, &lbl_1_data_78, 0);
fn_8006E2B8(lbl_1_bss_1E, 1, 0x40000001);
fn_800B42BC(lbl_1_bss_1E);
fn_8006F61C(lbl_1_bss_1E, 6);
lbl_1_bss_18 = HuPrcCreate(fn_1_C20, 0x1FFF, 0x1800, 0);
}
void fn_1_BA0(s32 arg0) {
s32 var_r31;
switch (lbl_1_bss_1C) {
case 0:
var_r31 = 5;
break;
case 1:
var_r31 = 6;
break;
}
BoardMessCreate(var_r31, arg0, -1);
BoardMessWait();
BoardMessKill();
}
void fn_1_C10(s16 arg0) {
lbl_1_bss_1C = arg0;
}
void fn_1_C20(void) {
Mtx sp20;
Vec3f sp14;
Vec3f sp8;
while (1) {
if (fn_8005B6A8() != 0) {
fn_8006DB90(lbl_1_bss_1E);
fn_800B42BC(-1);
HuPrcEnd();
}
Hu3D2Dto3D(&lbl_1_data_80[lbl_1_bss_1C], 1, &sp14);
fn_8006F158(lbl_1_bss_1E, &sp14);
fn_8005D5C0(&sp8);
PSMTXRotRad(sp20, 'y', 0.2617994f);
fn_8006EFBC(lbl_1_bss_1E, sp20);
fn_8006F270(lbl_1_bss_1E, sp8.x, 0.0f, 0.0f);
fn_8006F338(lbl_1_bss_1E, 0.2f, 0.2f, 0.2f);
HuPrcVSleep();
}
}

238
src/REL/w10Dll/w10Dll3.c Normal file
View file

@ -0,0 +1,238 @@
#include "include/REL/w10Dll.h"
void fn_1_D2C(void) {
fn_1_BA0(0x2E0001);
}
void fn_1_D54(void) {
fn_1_BA0(0x2E0002);
}
void fn_1_D7C(void) {
fn_1_BA0(0x2E0003);
}
void fn_1_DA4(void) {
fn_1_BA0(0x2E0004);
}
void fn_1_DCC(void) {
fn_1_BA0(0x2E0005);
}
void fn_1_DF4(void) {
fn_1_BA0(0x2E0006);
}
void fn_1_E1C(void) {
fn_1_BA0(0x2E0007);
}
void fn_1_E44(void) {
fn_1_BA0(0x2E0008);
fn_1_BA0(0x2E0009);
fn_8007500C(0);
fn_8006F50C(lbl_1_data_2C, 1);
}
void fn_1_E94(void) {
fn_1_BA0(0x2E000A);
}
void fn_1_EBC(void) {
fn_1_BA0(0x2E000B);
}
void fn_1_EE4(void) {
}
void fn_1_EE8(void) {
fn_1_1E3C(0, 0x122, 0x8C);
fn_1_BA0(0x2E000C);
fn_1_BA0(0x2E000D);
fn_1_1FB0();
}
void fn_1_F30(void) {
fn_1_1E3C(1, 0x122, 0x8C);
fn_1_BA0(0x2E000E);
fn_1_1FB0();
}
void fn_1_F6C(void) {
fn_1_1E3C(2, 0x122, 0x8C);
fn_1_BA0(0x2E000F);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
}
void fn_1_FB8(void) {
fn_1_1E3C(3, 0x122, 0x8C);
fn_1_BA0(0x2E0010);
fn_1_1FB0();
fn_1_BA0(0x2E0011);
fn_800B4264(-0x50, 0, 1);
}
void fn_1_1010(void) {
fn_1_1E3C(4, 0x122, 0x8C);
fn_1_BA0(0x2E0012);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
}
void fn_1_105C(void) {
fn_1_1E3C(5, 0x122, 0x8C);
fn_1_BA0(0x2E0013);
fn_1_1FB0();
}
void fn_1_1098(void) {
fn_1_BA0(0x2E0014);
}
void fn_1_10C0(void) {
fn_1_BA0(0x2E0015);
fn_800B4264(-0x50, 0, 1);
}
void fn_1_10F8(void) {
fn_1_1E3C(6, 0x122, 0x8C);
fn_1_BA0(0x2E0016);
fn_1_1FB0();
}
void fn_1_1134(void) {
fn_1_1E3C(7, 0x122, 0x8C);
fn_1_BA0(0x2E0017);
fn_1_1FB0();
fn_80082AAC(1);
}
void fn_1_1178(void) {
fn_1_BA0(0x2E0018);
}
void fn_1_11A0(void) {
s32 temp;
fn_1_BA0(0x2E0019);
temp = fn_800745F0(0, 1);
fn_800B4274(temp, 0);
}
void fn_1_11EC(void) {
s32 temp;
fn_1_BA0(0x2E001A);
temp = fn_800745F0(0, 1);
fn_800B4274(temp, 0);
fn_800B42B4(0);
}
void fn_1_1240(void) {
fn_1_BA0(0x2E001B);
fn_800B4264(0x50, 0, 1);
}
void fn_1_1278(void) {
fn_1_BA0(0x2E001C);
}
void fn_1_12A0(void) {
fn_1_BA0(0x2E001D);
fn_80062B74(2, 1);
fn_800B42B4(1);
}
void fn_1_12DC(void) {
fn_1_BA0(0x2E001E);
}
void fn_1_1304(void) {
fn_1_BA0(0x2E001F);
}
void fn_1_132C(void) {
fn_1_BA0(0x2E0020);
}
void fn_1_1354(void) {
fn_1_BA0(0x2E0021);
}
void fn_1_137C(void) {
fn_1_BA0(0x2E0022);
}
void fn_1_13A4(void) {
s32 i;
Vec3f sp14;
Vec3f sp8;
s32 temp_r3_2;
fn_1_BA0(0x2E0023);
for (i = 0; i < 4; i++) {
GWPlayer[i].flags.unk0 = 1;
}
fn_800A4C88();
fn_800884F4(0);
fn_1_C10(0);
fn_1_BA0(0x2E002B);
sp8.x = -33.0f;
sp8.y = sp8.z = 0.0f;
temp_r3_2 = fn_800745F0(0, 0x80000);
fn_80074210(0, temp_r3_2, &sp14);
fn_8006F158(lbl_1_bss_0->unk8, &sp14);
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
fn_1_BA0(0x2E002C);
fn_8007A360(temp_r3_2);
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
temp_r3_2 = fn_800745F0(0, 0x10000000);
fn_80074210(0, temp_r3_2, &sp14);
fn_8006F158(lbl_1_bss_0->unk8, &sp14);
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
fn_1_BA0(0x2E002E);
fn_8007F894();
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
temp_r3_2 = fn_800745F0(0, 0x08000000);
fn_80074210(0, temp_r3_2, &sp14);
fn_8006F158(lbl_1_bss_0->unk8, &sp14);
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
fn_1_BA0(0x2E0030);
fn_800A6B10();
fn_8005DB6C(lbl_1_bss_0->unk8, &sp8, 0, 3200.0f, -1.0f, 0x1E);
fn_8005E0C0();
fn_1_BA0(0x2E0032);
fn_80083F84();
fn_8005D8E8();
fn_8005E0C0();
fn_1_BA0(0x2E0033);
fn_1_BA0(0x2E0034);
fn_1_1E3C(8, 0x122, 0x8C);
fn_1_BA0(0x2E0035);
fn_1_1FB0();
fn_1_1E3C(9, 0x122, 0x8C);
fn_1_BA0(0x2E0036);
fn_1_1FB0();
fn_1_1E3C(0xA, 0x122, 0x8C);
fn_1_BA0(0x2E0037);
fn_1_1FB0();
fn_1_BA0(0x2E0038);
fn_1_BA0(0x2E0039);
if (lbl_1_bss_C == 0) {
lbl_1_bss_C = 1;
fn_80070EE8(0, 0x1F3);
fn_8005B5FC();
}
fn_800B3FD8(NULL);
while (1) {
HuPrcVSleep();
}
}

259
src/REL/w10Dll/w10Dll4.c Normal file
View file

@ -0,0 +1,259 @@
#include "REL/w10Dll.h"
char lbl_1_data_98[] = "@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n\000";
w10DllUnk03 lbl_1_data_C6[11] = {
1, -1, -1,
2, -1, -1,
4, -1, -1,
5, -1, -1,
5, -1, -1,
4, -1, -1,
1, -1, -1,
3, -1, -1,
2, -1, -1,
4, -1, -1,
5, 6, -1,
};
w10DllUnk04 lbl_1_data_108[42] = {
{0x0000, 0000, fn_1_D2C},
{0x0001, 0000, fn_1_D54},
{0x0002, 0000, fn_1_D7C},
{0x0003, 0000, fn_1_DA4},
{0x0003, 0000, fn_1_DCC},
{0x0003, 0000, fn_1_DF4},
{0x0003, 0000, fn_1_E1C},
{0x0004, 0000, fn_1_E44},
{0x0005, 0000, fn_1_E94},
{0x0006, 0000, fn_1_EBC},
{0x0007, 0000, fn_1_EE4},
{0x000A, 0000, fn_1_EE8},
{0x000B, 0000, fn_1_F30},
{0x0010, 0000, fn_1_F6C},
{0x0011, 0000, fn_1_FB8},
{0x000C, 0000, fn_1_1010},
{0x000D, 0000, fn_1_105C},
{0x000E, 0000, fn_1_1098},
{0x000E, 0000, fn_1_10C0},
{0x000F, 0000, fn_1_10F8},
{0x0012, 0000, fn_1_1134},
{0x0014, 0000, fn_1_1178},
{0x0015, 0000, fn_1_11A0},
{0x0016, 0000, fn_1_11EC},
{0x0005, 0000, fn_1_1240},
{0x0017, 0000, fn_1_1278},
{0x0007, 0000, fn_1_12A0},
{0x0005, 0000, fn_1_12DC},
{0x0017, 0000, fn_1_1304},
{0x0018, 0000, fn_1_132C},
{0x0019, 0000, fn_1_1354},
{0x0008, 0000, fn_1_137C},
{0x0009, 0000, fn_1_13A4},
{0x001A, 0000, fn_1_176C},
{0x001B, 0000, fn_1_179C},
{0x001B, 0000, fn_1_17F4},
{0x001B, 0000, fn_1_1834},
{0x001B, 0000, fn_1_18BC},
{0x001C, 0000, fn_1_1908},
{0x001C, 0000, fn_1_1930},
{0x001C, 0000, fn_1_1958},
{-1, 0, 0},
};
char lbl_1_data_258[] = "Tutorial Hook P0:%d P1:%d P2:%d P3:%d SCEN:%d CUE:%d PRM:%d DICE:%d MSG:%d\n";
s32 lbl_1_data_2A8[11] = {
0x007B0004,
0x007B0005,
0x007B0006,
0x007B0007,
0x007B0008,
0x007B0009,
0x007B000A,
0x007B000B,
0x007B000C,
0x007B000D,
0x007B000E
};
void fn_1_176C(void) {
fn_1_C10(1);
fn_1_BA0(0x2E0024);
}
void fn_1_179C(void) {
fn_1_BA0(0x2E0025);
GWPlayer[1].flags.unk0 = 2;
GWPlayer[3].flags.unk0 = 2;
}
void fn_1_17F4(void) {
fn_1_BA0(0x2E0026);
GWPlayer[0].flags.unk0 = 2;
}
void fn_1_1834(void) {
fn_1_BA0(0x2E0027);
GWPlayer[0].flags.unk0 = 1;
GWPlayer[1].flags.unk0 = 1;
GWPlayer[2].flags.unk0 = 1;
GWPlayer[3].flags.unk0 = 2;
}
void fn_1_18BC(void) {
fn_1_BA0(0x2E0028);
fn_1_BA0(0x2E0029);
lbl_801A52E8 = 0;
fn_8008853C(0);
}
void fn_1_1908(void) {
fn_1_BA0(0x2E002D);
}
void fn_1_1930(void) {
fn_1_BA0(0x2E002F);
}
void fn_1_1958(void) {
fn_1_BA0(0x2E0031);
}
void fn_1_1980(void) {
}
void fn_1_1984(void) {
s32 contPortIndex;
s32 i;
if (lbl_1_bss_C == 0) {
if (WipeStatGet() != 0) {
HuWinDispOff(lbl_1_bss_E);
return;
}
HuWinDispOn(lbl_1_bss_E);
if (fn_8005B6A8() != 0) {
return;
}
for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) {
contPortIndex = GWPlayer[i].controllerPort;
if (contPortIndex == -1) {
continue;
}
if (HuPadStatGet(contPortIndex) == 0 && HuPadBtnDown[contPortIndex] & 0x1000) {
break;
}
}
if (i != 4) {
lbl_1_bss_C = 1;
OSReport(lbl_1_data_98);
fn_80070EE8(0, 0x1F3);
fn_8005B5FC();
fn_800B3FD8(NULL);
}
}
}
int fn_1_1AAC(s16 arg0, s32 arg1) {
s32 i;
if (arg0 == 0x1E) {
if (lbl_1_bss_C == 0) {
if (WipeStatGet() != 0) {
HuWinDispOff(lbl_1_bss_E);
} else {
HuWinDispOn(lbl_1_bss_E);
if (fn_8005B6A8() == 0) {
s32 contPortIndex;
for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) {
contPortIndex = GWPlayer[i].controllerPort;
if (contPortIndex == -1) {
continue;
}
if (HuPadStatGet(contPortIndex) == 0 && HuPadBtnDown[contPortIndex] & 0x1000) {
break;
}
}
if (i != 4) {
lbl_1_bss_C = 1;
OSReport(lbl_1_data_98);
fn_80070EE8(0, 0x1F3);
fn_8005B5FC();
fn_800B3FD8(NULL);
}
}
}
}
return;
}
if (arg0 != 0x1D) {
OSReport(lbl_1_data_258,
(GWPlayer[0].characterID >> 5) & 1, (GWPlayer[1].characterID >> 5) & 1,
(GWPlayer[2].characterID >> 5) & 1, (GWPlayer[3].characterID >> 5) & 1,
lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6);
if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) {
if (arg0 == 5) {
fn_8008831C(&lbl_1_data_C6[lbl_1_bss_0->unk4++]);
}
if (arg0 == lbl_1_data_108[lbl_1_bss_0->unk0].unk0) {
void (*temp_r3_3)() = lbl_1_data_108[lbl_1_bss_0->unk0++].unk4;
temp_r3_3();
}
}
}
}
void fn_1_1D68(void) {
s32 temp_r4;
s32 temp_r5;
s32 i;
for (i = 0; i < 11; i++) {
lbl_1_bss_22[i] = espEntry(lbl_1_data_2A8[i], 0, 0);
espDispOff(lbl_1_bss_22[i]);
}
}
void fn_1_1DEC(void) {
s32 i;
for (i = 0; i < 11; i++) {
espKill(lbl_1_bss_22[i]);
}
}
void fn_1_1E3C(s16 arg0, s16 arg1, s16 arg2) {
f32 var_f31;
f32 var_f30;
u32 i;
lbl_1_bss_20 = lbl_1_bss_22[arg0];
espPosSet(lbl_1_bss_20, arg1, arg2);
var_f31 = 0.0f;
var_f30 = 0.0f;
espDispOn(lbl_1_bss_20);
for (i = 0; i < 15; i++) {
var_f31 += 0.06666667f;
var_f30 += 0.06666667f;
espScaleSet(lbl_1_bss_20, var_f31, var_f30);
HuPrcVSleep();
}
espScaleSet(lbl_1_bss_20, 1.0f, 1.0f);
}
void fn_1_1FB0(void) {
f32 var_f31;
f32 var_f30;
u32 i;
var_f31 = 1.0f;
var_f30 = 1.0f;
for (i = 0; i < 15; i++) {
var_f31 -= 0.06666667f;
var_f30 -= 0.06666667f;
espScaleSet(lbl_1_bss_20, var_f31, var_f30);
HuPrcVSleep();
}
espDispOff(lbl_1_bss_20);
}

View file

@ -0,0 +1,23 @@
#include "include/REL/w10Dll.h"
void fn_1_0(void) {
fn_8005B150(&fn_1_E0, &fn_1_6D8);
}
int _prolog(void) {
const VoidFunc* ctors = _ctors;
while (*ctors != 0) {
(**ctors)();
ctors++;
}
fn_8005B150(&fn_1_E0, &fn_1_6D8);
return 0;
}
void _epilog(void) {
const VoidFunc* dtors = _dtors;
while (*dtors != 0) {
(**dtors)();
dtors++;
}
}

40
src/game/frand.c Normal file
View file

@ -0,0 +1,40 @@
#include "common.h"
static u32 frand_seed;
static inline u32 frandom(void)
{
u32 rand = frand_seed;
s32 rand2, rand3;
if (rand == 0) {
rand = rand8();
rand = rand ^ (s64)OSGetTime();
rand ^= 0xD826BC89;
}
rand2 = rand / (u32)0x1F31D;
rand3 = rand - (rand2 * 0x1F31D);
rand = rand2 * 0xB14;
rand = rand - rand3 * 0x41A7;
return rand;
}
u32 frand(void) {
return frand_seed = frandom();
}
f32 frandf(void) {
u32 value = frand();
f32 ret;
value &= 0x7FFFFFFF;
ret = (f32)value/2147483648;
return ret;
}
u32 frandmod(u32 arg0) {
u32 ret;
frand_seed = frandom();
ret = (frand_seed & 0x7FFFFFFF)%arg0;
return ret;
}

53
src/game/messdata.c Normal file
View file

@ -0,0 +1,53 @@
#include "common.h"
static void *MessData_MesDataGet(void *messdata, u32 id)
{
s32 i;
s32 max_bank;
u16 *banks;
u16 bank;
s32 *data;
bank = id >> 16;
data = messdata;
max_bank = *data;
data++;
banks = (u16 *)(((u8 *)messdata)+(*data));
for(i=max_bank; i != 0; i--, banks += 2) {
if(*banks == bank) {
break;
}
}
if(i == 0) {
return NULL;
} else {
data += banks[1];
return (((u8 *)messdata)+(*data));
}
}
static void *_MessData_MesPtrGet(void *messbank, u32 id)
{
u16 index;
s32 max_index;
s32 *data;
index = id & 0xFFFF;
data = messbank;
max_index = *data;
data++;
if(max_index <= index) {
return NULL;
} else {
data = data+index;
return (((u8 *)messbank)+(*data));
}
}
void *MessData_MesPtrGet(void *messdata, u32 id)
{
void *bank = MessData_MesDataGet(messdata, id);
if(bank) {
return _MessData_MesPtrGet(bank, id);
}
return NULL;
}

View file

@ -71,14 +71,14 @@ static void omWatchOverlayProc(void)
OSReport("objman>Init esp\n");
espInit();
OSReport("objman>Call objectsetup\n");
fn_800338EC(omnextovl);
HuAudVoiceInit(omnextovl);
HuAudDllSndGrpSet(omnextovl);
omcurovl = omnextovl;
omovlevtno = omnextovlevtno;
omovlstat = omnextovlstat;
omnextovl = OVL_INVALID;
if(_CheckFlag(0x1000C)) {
fn_8003F3AC();
MGSeqPracticeStart();
}
omSysPauseEnable(TRUE);
omcurdll = omDLLStart(omcurovl, 0);
@ -136,7 +136,7 @@ void omOvlReturnEx(s16 level, s16 arg2)
void omOvlKill(s16 arg)
{
fn_8004D6F4(-1);
fn_80035A0C();
MGSeqKillAll();
Hu3DAllKill();
HuWinAllKill();
HuSprClose();