diff --git a/.gitmodules b/.gitmodules index 7e284f7b..5bdca45d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,3 @@ [submodule "extern/musyx"] path = extern/musyx url = https://github.com/AxioDL/musyx -[submodule "extern/aurora"] - path = extern/aurora - url = https://github.com/dbalatoni13/aurora.git -[submodule "extern/libco"] - path = extern/libco - url = https://github.com/higan-emu/libco.git diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 691fa122..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,203 +0,0 @@ -cmake_minimum_required(VERSION 3.13) -if (APPLE) - project(marioparty4 LANGUAGES C CXX OBJC) -else () - project(marioparty4 LANGUAGES C CXX) -endif () - -set(CMAKE_C_STANDARD 11) -set(CMAKE_CXX_STANDARD 20) - -set(VERSION 0) - -# Set build type to Debug if not specified -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Debug) -endif () - -if (CMAKE_SYSTEM_NAME STREQUAL Linux) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -fsanitize=address -fsanitize-address-use-after-scope -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-parameter -fPIC") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -fsanitize=address -fsanitize-address-use-after-scope -Wno-register -fPIC") - set(CMAKE_PREFIX_PATH /usr) - set(CMAKE_LIBRARY_ARCHITECTURE i386-linux-gnu) - set(CMAKE_LIBRARY_PATH "/usr/lib32" "/usr/lib/i386-linux-gnu" CACHE PATH "") - set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX 32) -elseif (APPLE) - add_compile_options(-Wno-declaration-after-statement) -elseif (MSVC) - add_compile_options(/bigobj) -endif () - -# add_compile_options(-fsanitize=address) - -add_subdirectory(extern/aurora EXCLUDE_FROM_ALL) -add_subdirectory(extern/musyx EXCLUDE_FROM_ALL) - -set(DOLPHIN_FILES - src/dolphin/mtx/mtx.c - src/dolphin/mtx/mtx44.c - src/dolphin/mtx/vec.c - src/dolphin/mtx/quat.c - src/dolphin/os/OSAlloc.c - src/dolphin/os/OSArena.c - src/dolphin/os/OSStopwatch.c -) - -set(GAME_FILES - src/game/board/audio.c - src/game/board/basic_space.c - src/game/board/battle.c - src/game/board/block.c - src/game/board/boo.c - src/game/board/boo_house.c - src/game/board/bowser.c - src/game/board/char_wheel.c - src/game/board/com.c - src/game/board/com_path.c - src/game/board/fortune.c - src/game/board/item.c - src/game/board/last5.c - src/game/board/lottery.c - src/game/board/main.c - src/game/board/mg_setup.c - src/game/board/model.c - src/game/board/mushroom.c - src/game/board/pause.c - src/game/board/player.c - src/game/board/roll.c - src/game/board/shop.c - src/game/board/space.c - src/game/board/star.c - src/game/board/start.c - src/game/board/tutorial.c - src/game/board/ui.c - src/game/board/view.c - src/game/board/warp.c - src/game/board/window.c - - src/game/armem.c - src/game/card.c - src/game/chrman.c - src/game/ClusterExec.c - src/game/data.c - src/game/decode.c - src/game/dvd.c - src/game/EnvelopeExec.c - src/game/esprite.c - src/game/fault.c - src/game/flag.c - src/game/font.c - src/game/frand.c - src/game/gamework.c - src/game/hsfanim.c - src/game/hsfdraw.c - src/game/hsfex.c - src/game/hsfload.c - src/game/hsfman.c - src/game/hsfmotion.c - src/game/init.c - src/game/main.c - src/game/malloc.c - src/game/mapspace.c - src/game/memory.c - src/game/messdata.c - src/game/minigame_seq.c - src/game/objdll.c - src/game/objmain.c - src/game/objsub.c - src/game/objsysobj.c - src/game/ovllist.c - src/game/pad.c - src/game/perf.c - src/game/printfunc.c - src/game/process.c - src/game/saveload.c - src/game/ShapeExec.c - src/game/sprman.c - src/game/sprput.c - src/game/window.c - src/game/wipe.c - - src/libhu/setvf.c - src/libhu/subvf.c -) - -set(PORT_FILES - src/port/ar.c - src/port/arq.c - src/port/audio.c - src/port/byteswap.cpp - src/port/dvd.c - src/port/imgui.cpp - src/port/OS.c - src/port/stubs.c -) - -source_group("Dolphin" FILES ${DOLPHIN_FILES}) -source_group("Game" FILES ${GAME_FILES}) -source_group("Port" FILES ${PORT_FILES}) - -if (NOT MSVC) - foreach (file ${DOLPHIN_FILES}) - set_source_files_properties(${file} PROPERTIES COMPILE_FLAGS "-Dinline=") - endforeach () - foreach (file ${GAME_FILES}) - set_source_files_properties(${file} PROPERTIES COMPILE_FLAGS "-Dinline=") - endforeach () -endif () - -add_library(dol SHARED ${DOLPHIN_FILES} ${GAME_FILES} ${PORT_FILES} extern/libco/libco.c) -target_compile_definitions(dol PRIVATE TARGET_PC NON_MATCHING TARGET_DOL VERSION=${VERSION} MUSY_VERSION_MAJOR=1 MUSY_VERSION_MINOR=5 MUSY_VERSION_PATCH=4) -target_include_directories(dol PRIVATE include build/GMPE01_00/include extern/libco) -target_link_libraries(dol PRIVATE aurora::core aurora::gx aurora::si aurora::vi aurora::pad musyx) -set_source_files_properties(${DOLPHIN_FILES} ${GAME_FILES} PROPERTIES COMPILE_OPTIONS "-fsanitize=address") -if (MSVC) - target_link_options(dol PRIVATE "/DEF:${CMAKE_SOURCE_DIR}/dol.def") - target_compile_options(dol PRIVATE "/Zi") - target_compile_options(dol PRIVATE "/Ob0") - target_compile_options(dol PRIVATE "/Od") - target_compile_options(dol PRIVATE "/RTC1") -else () - # target_compile_options(dol PRIVATE "-fvisibility=hidden") - # target_link_options(dol PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/dol.map") -endif () - -add_executable(marioparty4 src/port/portmain.c) -target_compile_definitions(marioparty4 PRIVATE TARGET_PC NON_MATCHING VERSION=${VERSION}) -target_include_directories(marioparty4 PRIVATE include) -target_link_libraries(marioparty4 PRIVATE dol aurora::main) - -file(GLOB REL_DIRS RELATIVE ${CMAKE_SOURCE_DIR}/src/REL ${CMAKE_SOURCE_DIR}/src/REL/*) -set(EXCLUDED_RELS "nisDll" "safDll") - -foreach (dir ${REL_DIRS}) - if (IS_DIRECTORY ${CMAKE_SOURCE_DIR}/src/REL/${dir}) - if (dir IN_LIST EXCLUDED_RELS) - continue() - endif() - file(GLOB_RECURSE REL_FILES src/REL/${dir}/*.c) - - if (REL_FILES) - add_library(${dir} SHARED ${REL_FILES}) - set_source_files_properties(${REL_FILES} PROPERTIES COMPILE_OPTIONS "-fsanitize=address") - if (dir MATCHES "^w..Dll") - target_sources(${dir} PRIVATE src/REL/board_executor.c) - endif() - target_compile_definitions(${dir} PRIVATE TARGET_PC NON_MATCHING VERSION=${VERSION}) - target_include_directories(${dir} PRIVATE include build/GMPE01_00/include extern/libco) - if (MSVC) - set_target_properties(${dir} PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup") - target_compile_options(${dir} PRIVATE "/Zi") - target_compile_options(${dir} PRIVATE "/Ob0") - target_compile_options(${dir} PRIVATE "/Od") - target_compile_options(${dir} PRIVATE "/RTC1") - elseif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows) - target_compile_options(${dir} PRIVATE "-fvisibility=hidden") - target_link_options(${dir} PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/rel.map") - set_target_properties(${dir} PROPERTIES PREFIX "") - endif () - target_link_libraries(${dir} PRIVATE dol musyx) - add_dependencies(marioparty4 ${dir}) - endif () - endif () -endforeach () diff --git a/README.md b/README.md index 06a57925..f1594c57 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Linux - For non-x86(_64) platforms: Install wine from your package manager. - For x86(_64), [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. -Building the game for the GameCube +Building ======== - Clone the repository: @@ -89,13 +89,11 @@ Building the game for the GameCube ninja ``` -Building the game for PC -===== -After you got the GameCube build up and running for `GMPE01_00`: -- Generate project files using CMake: - ``` - cmake -B build/port -G "Visual Studio 17 2022" -A Win32 - ``` -Linux and MacOS, and x64 support is coming later. +Diffing +======= -- Open the solution in Visual Studio and build. +Once the initial build succeeds, an `objdiff.json` should exist in the project root. + +Download the latest release from [encounter/objdiff](https://github.com/encounter/objdiff). Under project settings, set `Project directory`. The configuration should be loaded automatically. + +Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, `configure.py`, `splits.txt` or `symbols.txt`. diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index 392db46c..fe98fd1f 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C fn_1_4C = .text:0x0000004C; // type:function size:0x58 _prolog = .text:0x000000A4; // type:function size:0x54 scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global -ObjectSetup = .text:0x00000144; // type:function size:0xC8 +fn_1_144 = .text:0x00000144; // type:function size:0xC8 fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_254 = .text:0x00000254; // type:function size:0xD8 diff --git a/config/GMPE01_00/rels/mstory4Dll/symbols.txt b/config/GMPE01_00/rels/mstory4Dll/symbols.txt index bcd4f6c3..01a56bcd 100644 --- a/config/GMPE01_00/rels/mstory4Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory4Dll/symbols.txt @@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0xEC fn_1_EC = .text:0x000000EC; // type:function size:0x115C _prolog = .text:0x00001248; // type:function size:0x54 scope:global _epilog = .text:0x0000129C; // type:function size:0x4C scope:global -ObjectSetup = .text:0x000012E8; // type:function size:0xB8 +fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPE01_00/rels/option/symbols.txt b/config/GMPE01_00/rels/option/symbols.txt index e197b616..5eb11c4d 100644 --- a/config/GMPE01_00/rels/option/symbols.txt +++ b/config/GMPE01_00/rels/option/symbols.txt @@ -103,7 +103,7 @@ CreateNote = .text:0x00007710; // type:function size:0x190 scope:local CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local -OptionPlaySound = .text:0x00007F00; // type:function size:0x148 scope:local +PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local FadeSound = .text:0x00008048; // type:function size:0x9C scope:local OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 OptionRecordKill = .text:0x0000825C; // type:function size:0x54 diff --git a/config/GMPE01_00/rels/present/symbols.txt b/config/GMPE01_00/rels/present/symbols.txt index 1b80682d..332b6bce 100644 --- a/config/GMPE01_00/rels/present/symbols.txt +++ b/config/GMPE01_00/rels/present/symbols.txt @@ -31,7 +31,7 @@ PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local -PresentGetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local +GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index 621d5373..db16ef1b 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -207,4 +207,4 @@ lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 stageSprId = .bss:0x00001A1A; // type:object size:0x42 data:2byte stageMotId = .bss:0x00001A5C; // type:object size:0x40 data:2byte -stageMdlId = .bss:0x00001A9C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 6f350097..17ef4f4f 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4620,7 +4620,7 @@ lbl_80192160 = .bss:0x80192160; // type:object size:0x100 lbl_80192260 = .bss:0x80192260; // type:object size:0x100 wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte -winKey = .bss:0x801953C0; // type:object size:0x10 scope:local +winKey = .bss:0x801953C0; // type:object size:0x10 winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400 ARInfo = .bss:0x801967E0; // type:object size:0x400 scope:local data:byte arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index 21137761..5bed188a 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -4619,7 +4619,7 @@ lbl_80192160 = .bss:0x80192160; // type:object size:0x100 lbl_80192260 = .bss:0x80192260; // type:object size:0x100 wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte -winKey = .bss:0x801953C0; // type:object size:0x10 scope:local +winKey = .bss:0x801953C0; // type:object size:0x10 winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400 ARInfo = .bss:0x801967E0; // type:object size:0x400 data:byte arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local diff --git a/config/GMPJ01_00/rels/mentDll/symbols.txt b/config/GMPJ01_00/rels/mentDll/symbols.txt index 9dbd0380..1be34e66 100644 --- a/config/GMPJ01_00/rels/mentDll/symbols.txt +++ b/config/GMPJ01_00/rels/mentDll/symbols.txt @@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C fn_1_4C = .text:0x0000004C; // type:function size:0x58 _prolog = .text:0x000000A4; // type:function size:0x54 scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global -ObjectSetup = .text:0x00000144; // type:function size:0xC8 +fn_1_144 = .text:0x00000144; // type:function size:0xC8 fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_254 = .text:0x00000254; // type:function size:0xD8 diff --git a/config/GMPJ01_00/rels/mstory4Dll/symbols.txt b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt index 22f69967..59a31229 100644 --- a/config/GMPJ01_00/rels/mstory4Dll/symbols.txt +++ b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt @@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0xEC fn_1_EC = .text:0x000000EC; // type:function size:0x115C _prolog = .text:0x00001248; // type:function size:0x54 scope:global _epilog = .text:0x0000129C; // type:function size:0x4C scope:global -ObjectSetup = .text:0x000012E8; // type:function size:0xB8 +fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index b4a34dc7..ca5a261c 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -4452,7 +4452,7 @@ lbl_80192160 = .bss:0x80191E00; // type:object size:0x100 lbl_80192260 = .bss:0x80191F00; // type:object size:0x100 wipeData = .bss:0x80192000; // type:object size:0x4C data:4byte winData = .bss:0x80192060; // type:object size:0x3000 data:byte -winKey = .bss:0x80195060; // type:object size:0x10 scope:local +winKey = .bss:0x80195060; // type:object size:0x10 winComKeyBuf = .bss:0x80195070; // type:object size:0x1400 ARInfo = .bss:0x80196480; // type:object size:0x400 scope:local data:byte arqReq = .bss:0x80196880; // type:object size:0x20 scope:local diff --git a/config/GMPP01_00/rels/mentDll/symbols.txt b/config/GMPP01_00/rels/mentDll/symbols.txt index 9d28344b..a6cdecf3 100644 --- a/config/GMPP01_00/rels/mentDll/symbols.txt +++ b/config/GMPP01_00/rels/mentDll/symbols.txt @@ -2,7 +2,7 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4C fn_1_4C = .text:0x0000004C; // type:function size:0x58 _prolog = .text:0x000000A4; // type:function size:0x54 scope:global _epilog = .text:0x000000F8; // type:function size:0x4C scope:global -ObjectSetup = .text:0x00000144; // type:function size:0xC8 +fn_1_144 = .text:0x00000144; // type:function size:0xC8 fn_1_20C = .text:0x0000020C; // type:function size:0x28 fn_1_234 = .text:0x00000234; // type:function size:0x20 fn_1_254 = .text:0x00000254; // type:function size:0xD8 diff --git a/config/GMPP01_00/rels/option/symbols.txt b/config/GMPP01_00/rels/option/symbols.txt index f21ee30d..16625f3c 100644 --- a/config/GMPP01_00/rels/option/symbols.txt +++ b/config/GMPP01_00/rels/option/symbols.txt @@ -103,7 +103,7 @@ CreateNote = .text:0x00007710; // type:function size:0x190 scope:local CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local -OptionPlaySound = .text:0x00007F00; // type:function size:0x148 scope:local +PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local FadeSound = .text:0x00008048; // type:function size:0x9C scope:local OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 OptionRecordKill = .text:0x0000825C; // type:function size:0x54 diff --git a/config/GMPP01_00/rels/present/symbols.txt b/config/GMPP01_00/rels/present/symbols.txt index 1b80682d..332b6bce 100644 --- a/config/GMPP01_00/rels/present/symbols.txt +++ b/config/GMPP01_00/rels/present/symbols.txt @@ -31,7 +31,7 @@ PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local -PresentGetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local +GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index 70a581ce..acf35410 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -5547,7 +5547,7 @@ lbl_80192160 = .bss:0x801AF500; // type:object size:0x100 lbl_80192260 = .bss:0x801AF600; // type:object size:0x100 wipeData = .bss:0x801AF700; // type:object size:0x4C data:4byte winData = .bss:0x801AF760; // type:object size:0x3000 align:32 data:byte -winKey = .bss:0x801B2760; // type:object size:0x10 scope:local +winKey = .bss:0x801B2760; // type:object size:0x10 winComKeyBuf = .bss:0x801B2770; // type:object size:0x1400 mesWInsert = .bss:0x801B3B70; // type:object size:0x10 scope:local ARInfo = .bss:0x801B3B80; // type:object size:0x400 data:byte diff --git a/configure.py b/configure.py index bc3a4268..3721f4c9 100644 --- a/configure.py +++ b/configure.py @@ -160,7 +160,6 @@ config.asflags = [ "-mgekko", "--strip-local-absolute", "-I include", - "-I libc", f"-I build/{config.version}/include", f"--defsym version={version_num}", ] @@ -193,7 +192,6 @@ cflags_base = [ "-fp_contract on", "-str reuse", "-i include", - "-i libc", "-i extern/musyx/include", f"-i build/{config.version}/include", "-multibyte", @@ -272,7 +270,6 @@ cflags_musyx = [ "-nodefaults", "-nosyspath", "-i include", - "-i libc", "-i extern/musyx/include", "-inline auto", "-O4,p", diff --git a/dol.def b/dol.def deleted file mode 100644 index 19dcc9a8..00000000 --- a/dol.def +++ /dev/null @@ -1,1089 +0,0 @@ -EXPORTS - BoardArcCos - BoardArcSin - BoardAudFXPlay - BoardAudFXStop - BoardAudSeqFadeOut - BoardAudSeqFadeOutAll - BoardAudSeqFadeOutFast - BoardAudSeqPause - BoardBattleExec - BoardBooHouseCreate - BoardBooHouseExec - BoardBooHouseHostGet - BoardBooHouseHostSet - BoardBooHouseKill - BoardBooHouseTutorialExec - BoardBowserSuitInit - BoardBowserSuitKill - BoardBowserSuitModelGet - BoardBowserSuitMotionSetJump - BoardBowserSuitMotionSetWait - BoardBowserSuitMotionSetWalk - BoardBowserSuitMotionSetWin - BoardBowserSuitPlayerModelGet - BoardBowserSuitPlayerModelKill - BoardCameraCullCheck - BoardCameraDirGet - BoardCameraFovSet - BoardCameraMotionIsDone - BoardCameraMotionStart - BoardCameraMotionStartEx - BoardCameraMotionWait - BoardCameraMoveSet - BoardCameraNearFarGet - BoardCameraNearFarSet - BoardCameraOffsetSet - BoardCameraPointDirGet - BoardCameraPosCalcFuncSet - BoardCameraPosGet - BoardCameraPosSet - BoardCameraQuakeReset - BoardCameraQuakeSet - BoardCameraRotGet - BoardCameraRotSet - BoardCameraScissorSet - BoardCameraTargetGet - BoardCameraTargetModelSet - BoardCameraTargetPlayerSet - BoardCameraTargetSet - BoardCameraTargetSpaceSet - BoardCameraViewSet - BoardCameraXRotZoomSet - BoardCameraZoomGet - BoardCameraZoomSet - BoardCharWheelCheck - BoardCharWheelInit - BoardCharWheelResultGet - BoardCharWheelSpeedSet - BoardCharWheelTargetSet - BoardCharWheelWait - BoardCoinChgCreate - BoardCoinChgExist - BoardComFarPlayerFind - BoardComKeySetDown - BoardComKeySetLeft - BoardComKeySetRight - BoardComKeySetUp - BoardComPreferItemCheck - BoardComPreferItemGet - BoardConfettiCreate - BoardConfettiKill - BoardConfettiStop - BoardDAngleCalc - BoardDAngleCalcRange - BoardDAngleCalcVec - BoardDiceDoneCheck - BoardDicePauseAll - BoardDiceStop - BoardDiceValueSet - BoardEventFlagGet - BoardEventFlagReset - BoardEventFlagSet - BoardFilterFadeCheck - BoardFilterFadeInit - BoardFilterFadeOut - BoardFilterFadePauseCheck - BoardIsKill - BoardItemGetDestPos - BoardItemModelGet - BoardItemPrevGet - BoardItemPrevSet - BoardItemStart - BoardItemStatusKill - BoardItemUseExec - BoardJunctionMaskReset - BoardJunctionMaskSet - BoardJunctionMaskZero - BoardKill - BoardLandBlueExec - BoardLandRedExec - BoardLightHookSet - BoardLightResetExec - BoardLightSetExec - BoardLotteryExec - BoardLotteryHostGet - BoardLotteryHostSet - BoardLotteryInit - BoardLotteryKill - BoardLotteryTutorialExec - BoardMGCreate - BoardMGDoneFlagGet - BoardMGDoneFlagSet - BoardMGExit - BoardMGSetupExec - BoardMGSetupTutorialExec - BoardMTXCalcLookAt - BoardModelAlphaSet - BoardModelAmbSet - BoardModelAmbSetAll - BoardModelAttrReset - BoardModelAttrSet - BoardModelCameraSet - BoardModelCameraSetAll - BoardModelCreate - BoardModelCreateCharacter - BoardModelCreateParam - BoardModelDummyUpdate - BoardModelExistCheck - BoardModelExistDupe - BoardModelHideSetAll - BoardModelHookObjReset - BoardModelHookReset - BoardModelHookSet - BoardModelIDGet - BoardModelInit - BoardModelKill - BoardModelKillAll - BoardModelLayerSet - BoardModelLayerSetAll - BoardModelMotionCreate - BoardModelMotionEndCheck - BoardModelMotionKill - BoardModelMotionMaxTimeGet - BoardModelMotionShapeEndCheck - BoardModelMotionShapeMaxTimeGet - BoardModelMotionShapeSet - BoardModelMotionShapeSpeedGet - BoardModelMotionShapeSpeedSet - BoardModelMotionShapeStartEndSet - BoardModelMotionShapeTimeGet - BoardModelMotionShiftSet - BoardModelMotionSpeedGet - BoardModelMotionSpeedSet - BoardModelMotionStart - BoardModelMotionStartEndSet - BoardModelMotionTimeGet - BoardModelMotionTimeSet - BoardModelMotionUpdateSet - BoardModelMtxGet - BoardModelMtxSet - BoardModelPassSet - BoardModelPosGet - BoardModelPosSet - BoardModelPosSetV - BoardModelRotGet - BoardModelRotSet - BoardModelRotSetV - BoardModelRotYGet - BoardModelRotYSet - BoardModelScaleGet - BoardModelScaleSet - BoardModelScaleSetV - BoardModelVisibilityGet - BoardModelVisibilitySet - BoardModelVisibilityUpdate - BoardModelVoiceEnableSet - BoardMusLoudSet - BoardMusStart - BoardMusStartBoard - BoardMusStatusGet - BoardMusVolPanSet - BoardMushroomExec - BoardNextOvlSet - BoardObjectSetup - BoardPartyConfigSet - BoardPauseActiveCheck - BoardPickerBackFlagSet - BoardPickerChoiceGet - BoardPickerCreate - BoardPickerDoneCheck - BoardPickerPosGet - BoardPlayerAmbSet - BoardPlayerAutoSizeGet - BoardPlayerAutoSizeSet - BoardPlayerBtnDownWait - BoardPlayerCameraSet - BoardPlayerCoinsAdd - BoardPlayerCoinsGet - BoardPlayerCoinsSet - BoardPlayerCopyEyeMat - BoardPlayerCornerPosGet - BoardPlayerCornerPosSet - BoardPlayerCurrMotionGet - BoardPlayerDiceJumpCheck - BoardPlayerDiceJumpStart - BoardPlayerExistCheck - BoardPlayerGetCharMess - BoardPlayerGetCharName - BoardPlayerIdleSet - BoardPlayerInit - BoardPlayerItemAdd - BoardPlayerItemCount - BoardPlayerItemFind - BoardPlayerItemRemove - BoardPlayerLayerSet - BoardPlayerModelAttrReset - BoardPlayerModelAttrSet - BoardPlayerModelInit - BoardPlayerModelKill - BoardPlayerMotBlendCheck - BoardPlayerMotBlendSet - BoardPlayerMotionCreate - BoardPlayerMotionEndCheck - BoardPlayerMotionEndWait - BoardPlayerMotionKill - BoardPlayerMotionMaxTimeGet - BoardPlayerMotionShiftSet - BoardPlayerMotionSpeedSet - BoardPlayerMotionStart - BoardPlayerMotionStartEndSet - BoardPlayerMotionTimeGet - BoardPlayerMotionTimeSet - BoardPlayerMoveAwayIsDone - BoardPlayerMoveAwayStart - BoardPlayerMoveAwayStartCurr - BoardPlayerMoveBetween - BoardPlayerMoveToAsync - BoardPlayerMtxSet - BoardPlayerPosGet - BoardPlayerPosLerpStart - BoardPlayerPosSet - BoardPlayerPosSetV - BoardPlayerPostTurnHookSet - BoardPlayerPreTurnHookSet - BoardPlayerRankCalc - BoardPlayerResizeAnimExec - BoardPlayerRotGet - BoardPlayerRotSet - BoardPlayerRotSetV - BoardPlayerRotYGet - BoardPlayerRotYSet - BoardPlayerSameTeamFind - BoardPlayerScaleGet - BoardPlayerScaleSet - BoardPlayerScaleSetV - BoardPlayerSizeGet - BoardPlayerSizeSet - BoardPlayerStarsAdd - BoardPlayerVoiceEnableSet - BoardRand - BoardRandFloat - BoardRandMod - BoardRollCreate - BoardRollDispSet - BoardRollExec - BoardRollKill - BoardRollTutorialSet - BoardRollUpdateSet - BoardSaveInit - BoardShopExec - BoardShopHostGet - BoardShopHostSet - BoardShopInit - BoardShopKill - BoardShopTutorialExec - BoardSpaceAttrReset - BoardSpaceAttrSet - BoardSpaceBlockExec - BoardSpaceCameraSet - BoardSpaceCornerPosGet - BoardSpaceCountGet - BoardSpaceDestroy - BoardSpaceFlagGet - BoardSpaceFlagPosGet - BoardSpaceFlagSearch - BoardSpaceGet - BoardSpaceHide - BoardSpaceInit - BoardSpaceLandEventFuncSet - BoardSpaceLandExec - BoardSpaceLinkFlagSearch - BoardSpaceLinkTargetListGet - BoardSpaceLinkTransformGet - BoardSpaceLinkTypeListGet - BoardSpaceLinkTypeSearch - BoardSpacePosGet - BoardSpaceRead - BoardSpaceRotGet - BoardSpaceStarCheck - BoardSpaceStarGet - BoardSpaceStarGetCurr - BoardSpaceStarGetRandom - BoardSpaceStarMove - BoardSpaceStarSetIndex - BoardSpaceTypeGet - BoardSpaceTypeSet - BoardSpaceWalkEventExec - BoardSpaceWalkEventFuncSet - BoardSpaceWalkExec - BoardSpaceWalkMiniEventExec - BoardSpaceWalkMiniEventFuncSet - BoardSpriteCreate - BoardStarExec - BoardStarGive - BoardStarHostMdlGet - BoardStarHostSet - BoardStatusCreate - BoardStatusGraySet - BoardStatusHammerCreate - BoardStatusHammerKill - BoardStatusHammerShowSet - BoardStatusItemHideSet - BoardStatusItemSet - BoardStatusKill - BoardStatusPosGet - BoardStatusPosSet - BoardStatusShowSet - BoardStatusShowSetAll - BoardStatusShowSetForce - BoardStatusStopCheck - BoardStatusTargetPosSet - BoardStatusVisibleGet - BoardStoryConfigSet - BoardTutorialBlockSetPos - BoardTutorialDirInputSet - BoardTutorialHookSet - BoardTutorialHostSet - BoardTutorialItemSet - BoardVecDistXZCalc - BoardVecMaxDistXZCheck - BoardVecMinDistCheck - BoardViewFocusGetPos - BoardViewFocusSet - BoardViewMoveCheck - BoardViewMapExec - BoardViewMoveEnd - BoardViewMoveStart - BoardWarpExec - BoardWinAttrReset - BoardWinAttrSet - BoardWinChoiceDisable - BoardWinChoiceGet - BoardWinChoiceNowGet - BoardWinChoiceNowGet2 - BoardWinCreate - BoardWinCreateChoice - BoardWinInit - BoardWinInsertMesSet - BoardWinKeyWait - BoardWinKill - BoardWinKillAll - BoardWinPause - BoardWinPlayerSet - BoardWinPriSet - BoardWinSpeedGet - BoardWinSpeedSet - BoardWinUnusedArraySet - BoardWinWait - BoardYourTurnExec - C_MTXConcat - C_MTXCopy - C_MTXIdentity - C_MTXInvXpose - C_MTXInverse - C_MTXLightPerspective - C_MTXLookAt - C_MTXMultVec - C_MTXMultVecArray - C_MTXMultVecSR - C_MTXOrtho - C_MTXPerspective - C_MTXQuat - C_MTXROMultVecArray - C_MTXReorder - C_MTXRotAxisRad - C_MTXRotRad - C_MTXScale - C_MTXTrans - C_MTXTranspose - C_VECAdd - C_VECCrossProduct - C_VECDistance - C_VECDotProduct - C_VECHalfAngle - C_VECMag - C_VECNormalize - C_VECScale - C_VECSubtract - C_VECSquareDistance - C_VECSquareMag - C_QUATMultiply - C_QUATNormalize - C_QUATInverse - C_QUATRotAxisRad - C_QUATSlerp - CamMotionEx - CamMotionEx2 - CharAMemPtrGet - CharARAMOpen - CharKill - CharKillAll - CharManInit - CharModelCoinEffectCreate - CharModelCreate - CharModelDataClose - CharModelEffectCreate - CharModelEffectEnableSet - CharModelEffectNpcInit - CharModelEffectNpcInitSilent - CharModelHookNameGet - CharModelItemHookCreate - CharModelKill - CharModelLayerSetAll - CharModelLayerSetAll2 - CharModelMotionCreate - CharModelMotionDataClose - CharModelMotionEndCheck - CharModelMotionIndexSet - CharModelMotionKill - CharModelMotionMaxTimeGet - CharModelMotionSet - CharModelMotionShiftIDGet - CharModelMotionShiftSet - CharModelMotionShiftTimeGet - CharModelMotionSpeedSet - CharModelMotionTimeGet - CharModelMotionTimeSet - CharModelStepTypeSet - CharModelTexNameGet - CharModelVoiceEnableSet - DCFlushRange - DCFlushRangeNoSync - DCInvalidateRange - DCStoreRange - DCStoreRangeNoSync - EnvelopeProc - GWBoardMaxCoinsGet - GWBoardMaxCoinsSet - GWBoardMaxStarsGet - GWBoardMaxStarsSet - GWBoardPlayCountAdd - GWBoardPlayCountGet - GWBoardWinCountGet - GWBoardWinCountInc - GWCharColorGet - GWCoinsAdd - GWCoinsSet - GWGameStatReset - GWMGAvailGet - GWMGAvailSet - GWMGCustomGet - GWMGCustomSet - GWMGCustomReset - GWMGRecordGet - GWMGRecordSet - GWMessDelayGet - GWStarsGet - GWStarsSet - GWTotalStarsAdd - GXBegin - GXBeginDisplayList - GXCallDisplayList - GXClearVtxDesc - GXColor1x16 - GXColor1x8 - GXColor3u8 - GXColor4u8 - GXCopyTex - GXDestroyTexObj - GXDestroyTlutObj - GXDrawDone - GXEnd - GXEndDisplayList - GXGetProjectionv - GXGetTexBufferSize - GXGetViewportv - GXInitLightAttn - GXInitLightAttnK - GXInitLightColor - GXInitLightDir - GXInitLightDistAttn - GXInitLightPos - GXInitLightSpot - GXInitSpecularDir - GXInitTexObj - GXInitTexObjCI - GXInitTexObjLOD - GXInitTlutObj - GXLoadLightObjImm - GXLoadNrmMtxImm - GXLoadPosMtxImm - GXLoadTexMtxImm - GXLoadTexObj - GXLoadTlut - GXNormal1x16 - GXNormal3f32 - GXPixModeSync - GXPosition1x16 - GXPosition1x8 - GXPosition2f32 - GXPosition2s16 - GXPosition2u16 - GXPosition3f32 - GXPosition3u8 - GXProject - GXSetAlphaCompare - GXSetArray - GXSetBlendMode - GXSetChanAmbColor - GXSetChanCtrl - GXSetChanMatColor - GXSetAlphaUpdate - GXSetColorUpdate - GXSetCopyClear - GXSetCullMode - GXSetCurrentMtx - GXSetFog - GXSetIndTexCoordScale - GXSetIndTexMtx - GXSetIndTexOrder - GXSetLineWidth - GXSetNumChans - GXSetNumIndStages - GXSetNumTevStages - GXSetNumTexGens - GXSetProjection - GXSetScissor - GXSetTevAlphaIn - GXSetTevAlphaOp - GXSetTevColor - GXSetTevColorIn - GXSetTevColorOp - GXSetTevDirect - GXSetTevIndWarp - GXSetTevOp - GXSetTevOrder - GXSetTexCoordGen2 - GXSetTexCopyDst - GXSetTexCopySrc - GXSetViewport - GXSetVtxAttrFmt - GXSetVtxDesc - GXSetZCompLoc - GXSetZMode - GXSetZTexture - GXTexCoord1x16 - GXTexCoord2f32 - GXUnknownu16 - HmfInverseMtxF3X3 - Hu3D2Dto3D - Hu3D3Dto2D - Hu3DAllKill - Hu3DAnimAllKill - Hu3DAnimAttrReset - Hu3DAnimAttrSet - Hu3DAnimBankSet - Hu3DAnimCreate - Hu3DAnimExec - Hu3DAnimInit - Hu3DAnimKill - Hu3DAnimLink - Hu3DAnimSet - Hu3DAnimSpeedSet - Hu3DAnmNoSet - Hu3DBGColorSet - Hu3DCameraAllKill - Hu3DCameraCreate - Hu3DCameraKill - Hu3DCameraMotionOff - Hu3DCameraMotionOn - Hu3DCameraMotionStart - Hu3DCameraPerspectiveSet - Hu3DCameraPosSet - Hu3DCameraPosSetV - Hu3DCameraScissorSet - Hu3DCameraSet - Hu3DCameraViewportSet - Hu3DFogClear - Hu3DFogSet - Hu3DGLightColorSet - Hu3DGLightCreate - Hu3DGLightCreateV - Hu3DGLightInfinitytSet - Hu3DGLightKill - Hu3DGLightPointSet - Hu3DGLightPosAimSet - Hu3DGLightPosAimSetV - Hu3DGLightPosSet - Hu3DGLightPosSetV - Hu3DGLightSpotSet - Hu3DGLightStaticSet - Hu3DHookFuncCreate - Hu3DJointMotion - Hu3DLLightColorSet - Hu3DLLightCreate - Hu3DLLightCreateV - Hu3DLLightInfinitytSet - Hu3DLLightKill - Hu3DLLightPointSet - Hu3DLLightPosAimSet - Hu3DLLightPosAimSetV - Hu3DLLightPosSet - Hu3DLLightPosSetV - Hu3DLLightSpotSet - Hu3DLLightStaticSet - Hu3DLayerHookSet - Hu3DLighInit - Hu3DLightAllKill - Hu3DLightSet - Hu3DMipMapSet - Hu3DModelAllKill - Hu3DModelAmbSet - Hu3DModelAttrGet - Hu3DModelAttrReset - Hu3DModelAttrSet - Hu3DModelCameraCreate - Hu3DModelCameraInfoSet - Hu3DModelCameraSet - Hu3DModelClusterAttrReset - Hu3DModelClusterAttrSet - Hu3DModelCreate - Hu3DModelHiliteMapSet - Hu3DModelHiliteTypeSet - Hu3DModelHookObjReset - Hu3DModelHookReset - Hu3DModelHookSet - Hu3DModelKill - Hu3DModelLayerSet - Hu3DModelLightInfoSet - Hu3DModelLink - Hu3DModelMotionAttrGet - Hu3DModelObjDraw - Hu3DModelObjDrawInit - Hu3DModelObjMtxGet - Hu3DModelObjPosGet - Hu3DModelObjPtrGet - Hu3DModelPosSet - Hu3DModelPosSetV - Hu3DModelProjectionReset - Hu3DModelProjectionSet - Hu3DModelReflectTypeSet - Hu3DModelRotSet - Hu3DModelRotSetV - Hu3DModelScaleSet - Hu3DModelScaleSetV - Hu3DModelShadowDispOff - Hu3DModelShadowDispOn - Hu3DModelShadowMapObjSet - Hu3DModelShadowMapSet - Hu3DModelShadowReset - Hu3DModelShadowSet - Hu3DModelTPLvlSet - Hu3DMotionAllKill - Hu3DMotionCalc - Hu3DMotionClusterNoSet - Hu3DMotionClusterReset - Hu3DMotionClusterSet - Hu3DMotionCreate - Hu3DMotionEndCheck - Hu3DMotionExec - Hu3DMotionForceSet - Hu3DMotionIDGet - Hu3DMotionInit - Hu3DMotionKill - Hu3DMotionMaxTimeGet - Hu3DMotionModelCreate - Hu3DMotionMotionMaxTimeGet - Hu3DMotionNext - Hu3DMotionNoMotReset - Hu3DMotionNoMotSet - Hu3DMotionOverlayReset - Hu3DMotionOverlaySet - Hu3DMotionOverlaySpeedSet - Hu3DMotionOverlayTimeGet - Hu3DMotionOverlayTimeSet - Hu3DMotionSet - Hu3DMotionShapeIDGet - Hu3DMotionShapeMaxTimeGet - Hu3DMotionShapeReset - Hu3DMotionShapeSet - Hu3DMotionShapeSpeedSet - Hu3DMotionShapeStartEndSet - Hu3DMotionShapeTimeSet - Hu3DMotionShiftIDGet - Hu3DMotionShiftMaxTimeGet - Hu3DMotionShiftSet - Hu3DMotionShiftSpeedSet - Hu3DMotionShiftStartEndSet - Hu3DMotionShiftTimeGet - Hu3DMotionSpeedSet - Hu3DMotionStartEndSet - Hu3DMotionTimeGet - Hu3DMotionTimeSet - Hu3DMtxRotGet - Hu3DMtxScaleGet - Hu3DMtxTransGet - Hu3DNoSyncSet - Hu3DParManAllKill - Hu3DParManAttrReset - Hu3DParManAttrSet - Hu3DParManColorSet - Hu3DParManCreate - Hu3DParManInit - Hu3DParManKill - Hu3DParManLink - Hu3DParManModelIDGet - Hu3DParManPosSet - Hu3DParManPtrGet - Hu3DParManRotSet - Hu3DParManTimeLimitSet - Hu3DParManVacumeSet - Hu3DParManVecSet - Hu3DParticleAnimModeSet - Hu3DParticleAttrReset - Hu3DParticleAttrSet - Hu3DParticleBlendModeSet - Hu3DParticleCntSet - Hu3DParticleColSet - Hu3DParticleCreate - Hu3DParticleHookSet - Hu3DParticleScaleSet - Hu3DParticleTPLvlSet - Hu3DParticleZRotSet - Hu3DPauseSet - Hu3DProjectionCreate - Hu3DProjectionKill - Hu3DProjectionPosSet - Hu3DProjectionTPLvlSet - Hu3DReflectMapSet - Hu3DReflectNoSet - Hu3DShadowCreate - Hu3DShadowPosSet - Hu3DShadowSizeSet - Hu3DShadowTPLvlSet - Hu3DSubMotionExec - Hu3DTexScrollAllKill - Hu3DTexScrollCreate - Hu3DTexScrollKill - Hu3DTexScrollPauseDisableSet - Hu3DTexScrollPosMoveSet - Hu3DTexScrollPosSet - Hu3DTexScrollRotMoveSet - Hu3DTexScrollRotSet - HuAMemDump - HuAR_ARAMtoMRAMFileRead - HuAR_DVDtoARAM - HuAR_MRAMtoARAM - HuARDMACheck - HuAudAUXVolSet - HuAudAllStop - HuAudCharVoicePlay - HuAudCharVoicePlayPos - HuAudFXAllStop - HuAudFXEmiterPlay - HuAudFXEmiterUpDate - HuAudFXFadeOut - HuAudFXListnerKill - HuAudFXListnerSetEX - HuAudFXListnerUpdate - HuAudFXPanning - HuAudFXPauseAll - HuAudFXPitchSet - HuAudFXPlay - HuAudFXPlayVol - HuAudFXPlayVolPan - HuAudFXStatusGet - HuAudFXStop - HuAudFXVolSet - HuAudFadeOut - HuAudPlayerVoicePlay - HuAudSStreamAllFadeOut - HuAudSStreamAllStop - HuAudSStreamFadeOut - HuAudSStreamPlay - HuAudSStreamStatGet - HuAudSeqAllFadeOut - HuAudSeqMidiCtrlGet - HuAudSeqFadeOut - HuAudSeqPause - HuAudSeqPauseAll - HuAudSeqPlay - HuAudSndCommonGrpSet - HuAudSndGrpSet - HuAudSndGrpSetSet - HuAudStreamFadeOut - HuAudStreamPlay - HuAudVoiceInit - HuCardCheck - HuCardClose - HuCardCreate - HuCardDelete - HuCardFormat - HuCardFreeSpaceGet - HuCardMount - HuCardOpen - HuCardRead - HuCardSectorSizeGet - HuCardSlotCheck - HuCardUnMount - HuCardWrite - HuDataClose - HuDataCloseMulti - HuDataDirClose - HuDataDirCloseNum - HuDataDirRead - HuDataDirReadAsync - HuDataDirReadNumAsync - HuDataGetAsyncStat - HuDataGetSize - HuDataInit - HuDataRead - HuDataReadChk - HuDataReadMulti - HuDataReadNum - HuDataReadNumHeapShortForce - HuDataSelHeapRead - HuDataSelHeapReadNum - HuDecodeData - HuMemDirectFree - HuMemDirectFreeNum - HuMemDirectMalloc - HuMemDirectMallocNum - HuMemHeapDump - HuMemHeapPtrGet - HuMemHeapSizeGet - HuMemUsedMallocSizeGet - HuPadInit - HuPadRead - HuPadRumbleAllStop - HuPadRumbleGet - HuPadRumbleSet - HuPadRumbleStop - HuPadStatGet - HuPrcAllPause - HuPrcCall - HuPrcChildCreate - HuPrcChildKill - HuPrcChildLink - HuPrcChildUnlink - HuPrcCreate - HuPrcCurrentGet - HuPrcDestructorSet - HuPrcDestructorSet2 - HuPrcEnd - HuPrcInit - HuPrcKill - HuPrcMemAlloc - HuPrcMemFree - HuPrcResetStat - HuPrcSetStat - HuPrcSleep - HuPrcVSleep - HuPrcWakeup - HuSetVecF - HuSprAnimKill - HuSprAnimLock - HuSprAnimMake - HuSprAnimRead - HuSprAttrReset - HuSprAttrSet - HuSprBankSet - HuSprClose - HuSprColorSet - HuSprCreate - HuSprData - HuSprDrawNoSet - HuSprGrpCreate - HuSprGrpData - HuSprGrpDrawNoSet - HuSprGrpKill - HuSprGrpMemberKill - HuSprGrpMemberSet - HuSprGrpPosSet - HuSprGrpScaleSet - HuSprGrpScissorSet - HuSprGrpTPLvlSet - HuSprInit - HuSprPosSet - HuSprPriSet - HuSprScaleSet - HuSprSpeedSet - HuSprTPLvlSet - HuSprTexLoad - HuSubVecF - HuSysVWaitSet - HuTHP3DCreate - HuTHP3DCreateVol - HuTHPClose - HuTHPEndCheck - HuTHPFrameGet - HuTHPRestart - HuTHPSetVolume - HuTHPSprCreate - HuTHPSprCreateVol - HuTHPStop - HuTHPTotalFrameGet - HuWinAllKill - HuWinAnimSet - HuWinAttrReset - HuWinAttrSet - HuWinBGColSet - HuWinBGTPLvlSet - HuWinCenterPosSet - HuWinChoiceDisable - HuWinChoiceGet - HuWinChoiceNowGet - HuWinChoiceNumGet - HuWinComKeyReset - HuWinComKeySet - HuWinComKeyWait - HuWinCreate - HuWinDisablePlayerReset - HuWinDisablePlayerSet - HuWinDispOff - HuWinDispOn - HuWinDrawNoSet - HuWinExAnimIn - HuWinExAnimOut - HuWinExAnimPopIn - HuWinExCleanup - HuWinExCreate - HuWinExCreateStyled - HuWinHomeClear - HuWinInit - HuWinInsertMesSet - HuWinInsertMesSizeGet - HuWinKeyWaitEntry - HuWinKeyWaitNumGet - HuWinKill - HuWinMesColSet - HuWinMesMaxSizeBetGet - HuWinMesMaxSizeGet - HuWinMesPalSet - HuWinMesRead - HuWinMesSet - HuWinMesSizeCancelCRSet - HuWinMesSpeedSet - HuWinMesWait - HuWinPosSet - HuWinPriSet - HuWinPushKeySet - HuWinScaleSet - HuWinScissorSet - HuWinSprIDGet - HuWinSprKill - HuWinSprPosSet - HuWinSprPriSet - HuWinSprSet - HuWinStatGet - HuWinZRotSet - HuWindowInit - MakeDisplayList - MGSeqCreate - MGSeqDoneCheck - MGSeqInit - MGSeqKill - MGSeqKillAll - MGSeqParamSet - MGSeqPosSet - MGSeqSprKill - MGSeqStatGet - MakeObjectName - MapPos - MapWall - MessData_MesPtrGet - OSGetTick - OSGetTime - OSPanic - OSReport - OSTicksToCalendarTime - OSSetSoundMode - PPCSync - SetDefLight - SLCheckSumCheck - SLCheckSumSet - SLCommonSet - SLCurBoxNoSet - SLCurSlotNoSet - SLFileClose - SLFileCreate - SLFileOpen - SLFileRead - SLFileWrite - SLLoad - SLLoadBoard - SLLoadBoardStory - SLLoadGameStat - SLSave - SLSaveBoard - SLSaveBoardStory - SLSaveDataMake - SLSaveFlagGet - SLSaveFlagSet - SLSerialNoCheck - SLSerialNoGet - SLStatSet - WipeColorSet - WipeCreate - WipeExecAlways - WipeInit - WipeStatGet - _CheckFlag - _ClearFlag - _SetFlag - byteswap_s32 - byteswap_u32 - espAttrReset - espAttrSet - espBankSet - espColorSet - espDispOff - espDispOn - espDrawNoSet - espEntry - espGrpIDGet - espInit - espKill - espPosSet - espPriSet - espScaleSet - espSpeedSet - espTPLvlSet - espZRotSet - fn_80062A40 - fn_8006DC1C - fn_8006DDE8 - frand - frandf - frandmod - game_main - msmMusGetStatus - msmMusPlay - msmMusSetMasterVolume - msmSeSetListener - msmSeSetParam - msmSeStopAll - msmSysGetOutputMode - msmSysSetOutputMode - mtxRot - mtxRotCat - mtxScaleCat - mtxTransCat - ObjConstantMake - omAddObjEx - omDelObjEx - omDLLDBGOut - omGameSysInit - omGetGroupMemberListEx - omInitObjMan - omMakeGroupEx - omMgIndexGet - omOutView - omOutViewMulti - omOvlCallEx - omOvlGotoEx - omOvlHisChg - omOvlHisGet - omOvlReturnEx - omPauseChk - omSetRot - omSetSca - omSetStatBit - omSetTra - omSysPauseEnable - omVibrate - print8 - printWin - rand8 - GXInvalidateTexAll - Hu3DDrawPreInit - Hu3DDraw - Hu3DDrawPost - HuSprExec - HuSprExecLayerSet - HuSprDispInit - ClusterProc - ClusterMotionExec - InitVtxParm - ShapeProc \ No newline at end of file diff --git a/extern/aurora b/extern/aurora deleted file mode 160000 index 23522538..00000000 --- a/extern/aurora +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 23522538e13f67957d62a7119bc617700fa0c6ab diff --git a/extern/libco b/extern/libco deleted file mode 160000 index e18e09d6..00000000 --- a/extern/libco +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e18e09d634d612a01781168ad4d76be10a7e3bad diff --git a/extern/musyx b/extern/musyx index 37e8ecd4..a170f2ef 160000 --- a/extern/musyx +++ b/extern/musyx @@ -1 +1 @@ -Subproject commit 37e8ecd4e6503e90b97ea81cd7d669357861d501 +Subproject commit a170f2ef4a3f51edb89bc792dff79d55b2c42a89 diff --git a/include/REL/m407dll.h b/include/REL/m407dll.h index 9c05763a..e007469c 100644 --- a/include/REL/m407dll.h +++ b/include/REL/m407dll.h @@ -3,8 +3,6 @@ #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - typedef void (*VoidFuncs)(void); typedef void (*ObjFuncs)(omObjData *); @@ -18,9 +16,6 @@ void fn_1_334(void); void fn_1_388(u8, s32); void fn_1_3C4(u8); void fn_1_404(void); -#ifndef __MWERKS__ -s32 fn_1_4C0(u8 arg0); -#endif s32 fn_1_508(u8); s32 fn_1_53C(u8); void fn_1_568(s16, s16, s16); @@ -40,7 +35,6 @@ void fn_1_2564(void); void fn_1_25C0(void); s32 fn_1_2880(void); #ifndef __MWERKS__ -void fn_1_2770(u8 arg0); s16 fn_1_28B8(u8 arg0); s16 fn_1_28D4(void); #endif diff --git a/include/REL/m410Dll.h b/include/REL/m410Dll.h index 1a5672b9..ff6a02e1 100644 --- a/include/REL/m410Dll.h +++ b/include/REL/m410Dll.h @@ -205,10 +205,6 @@ void fn_1_28AC(s32 arg0); s32 fn_1_28DC(void); float fn_1_2FD4(float arg8, float arg9, float argA); float fn_1_30F0(float arg8, float arg9); -void fn_1_31A4(Process *process); -void fn_1_31F8(void); -void fn_1_33A8(Process *objman); -void fn_1_3484(void); s32 fn_1_76B8(Vec arg0, Vec arg1, u16 arg2); void fn_1_77E8(void *arg0); void fn_1_77F8(u16 arg0, Vec *arg1); @@ -217,6 +213,5 @@ void fn_1_7888(u16 arg0, u16 arg1, Vec *arg2); s32 fn_1_79F8(s16 arg0, char *arg1, Mtx arg2); void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3); void fn_1_7E30(Process *objman); -void fn_1_806C(void); #endif diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h index 00ebc506..0be73a76 100644 --- a/include/REL/m415Dll.h +++ b/include/REL/m415Dll.h @@ -3,7 +3,7 @@ #include "game/hsfman.h" #include "game/object.h" -SHARED_SYM extern u8 texMtxTbl[]; +extern u8 texMtxTbl[]; #define FABS(x) ((x < 0.0f) ? -(x) : (x)) @@ -257,7 +257,6 @@ float fn_1_7520(float, float *, float *, float *, s32); void fn_1_7674(float *, Vec *, Vec *, s32); void fn_1_7A54(float, Vec *, float *, Vec *, Vec *, s32); // map.c -void fn_1_8780(s16 arg0, s16 arg1); void fn_1_95C0(ModelData *, Mtx); AnimData **fn_1_9734(s16); void fn_1_9DC8(unkSubStruct2 *); @@ -267,16 +266,11 @@ s16 fn_1_A94C(u32, s16, s16); void fn_1_ACF4(s16, s16, s16, s16, s16, s16); void fn_1_AF48(s16); u8 fn_1_AFC8(s16, u8, s32, s16, s16); -u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2); s32 fn_1_B0B8(s16, u8, s16); -void fn_1_B634(void); void fn_1_B864(s16, float, float, float); -void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA); void fn_1_BB4C(s16, float, float, float); void fn_1_BC9C(s16, float, float, float); void fn_1_BD08(s16, s16, float, float, float); -void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2); -void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5); void fn_1_C264(s16, u8); void fn_1_C2D0(s16, s16, u8); void fn_1_C410(s16, s16, u8, u8); diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h index 02fd6de9..ac79d774 100644 --- a/include/REL/m424Dll.h +++ b/include/REL/m424Dll.h @@ -1,5 +1,4 @@ -#ifndef M424DLL_H -#define M424DLL_H +#include "dolphin.h" #include "game/object.h" @@ -32,7 +31,6 @@ extern M424DllBallStruct2 lbl_1_bss_60[9]; extern u8 lbl_1_bss_58; extern s16 lbl_1_bss_24[4]; -s32 fn_1_FE0(void); float fn_1_1358(float, float); float fn_1_1470(float, float, float); omObjData *fn_1_1AB8(Process *); @@ -44,13 +42,9 @@ void fn_1_2720(Process *); void fn_1_2880(void); Vec *fn_1_8A00(u8); s32 fn_1_8A2C(void); -s32 fn_1_907C(Vec *arg0, Vec *arg1); omObjData *fn_1_93F0(Process *); void fn_1_94A4(void); s32 fn_1_B804(void); s32 fn_1_B888(void); s32 fn_1_B8AC(void); s32 fn_1_B924(void); -void fn_1_C2E0(s32 arg0); - -#endif \ No newline at end of file diff --git a/include/REL/m434Dll.h b/include/REL/m434Dll.h index 20130d9f..d83bd084 100644 --- a/include/REL/m434Dll.h +++ b/include/REL/m434Dll.h @@ -6,9 +6,6 @@ void fn_1_1C44(s32 arg0, s32 arg1); s32 fn_1_1C88(s32 arg0); s32 fn_1_1CB8(void); -#ifndef __MWERKS__ -s16 fn_1_1D44(void); -#endif s32 fn_1_1D54(void); void fn_1_1D64(s32 arg0); s32 fn_1_1D74(s32 arg0); diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 3b853962..d7d2c5b8 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -109,7 +109,7 @@ typedef struct _unkStruct6 { m440Func6 unk38; s16 unk3C; s16 unk3E; -} unkStruct6; // sizeof 0x40 // TODO same as unkStruct14? +} unkStruct6; // sizeof 0x40 typedef struct _unkStruct7 { GXColor unk0; @@ -178,8 +178,7 @@ typedef struct _unkStruct13 { typedef struct _unkStruct14 { s16 unk0; s16 unk2; - char unk4[4]; - s32 unk8; + char unk4[0x8]; void *unkC; char unk10[0x4]; void *unk14; @@ -241,7 +240,6 @@ typedef struct _unkObjStruct { float unk68; float unk6C; float unk70; - char unk74[0x4]; } unkObjStruct; #if VERSION_NTSC diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index f15f662b..bdbdadb2 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -235,7 +235,6 @@ void fn_1_34A0(unkStruct5 *, unkStruct4 **, s32, s32); s32 m446DeckPushCard(unkStruct5 *, unkStruct4 *, s32); s32 m446DeckPopCard(unkStruct2 **, unkStruct4 **); void fn_1_38B0(unkStruct2 **); -// void fn_1_38E0(u32 arg0); // TODO s32 fn_1_38F0(void); // table.c s32 fn_1_3924(void); diff --git a/include/REL/modeltestDll.h b/include/REL/modeltestDll.h index b8134fca..d4afecc4 100644 --- a/include/REL/modeltestDll.h +++ b/include/REL/modeltestDll.h @@ -29,6 +29,9 @@ typedef struct { HsfObject *obj; // 0030 } HuObjUnk; +extern Vec CRot; +extern Vec Center; +extern float CZoom; void fn_1_29C(); void fn_1_28F8(Vec *arg0, Vec *arg1); void fn_1_37DC(omObjData *); diff --git a/include/REL/modeseldll.h b/include/REL/modeseldll.h index 8e2f16e5..4100ea20 100644 --- a/include/REL/modeseldll.h +++ b/include/REL/modeseldll.h @@ -27,9 +27,7 @@ typedef struct datalist_sprite { GXColor color; } DataListSprite; -#ifndef __MWERKS__ -void fn_1_1EC0(s16 view); -#endif +// void fn_1_1EC0(s16 view); s32 fn_1_2490(void); s32 fn_1_37DC(void); diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index 022b6894..a7163c63 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -8,8 +8,6 @@ #include "game/window.h" #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - enum { MAPOBJ_MAX = 12 }; diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index 85b3b162..a1446748 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -26,7 +26,7 @@ typedef struct tutorial_scene { TutorialSceneFunc func; } TutorialScene; -SHARED_SYM extern s32 boardTutorialData[4]; +extern s32 boardTutorialData[4]; void HostPosSet(s16); void fn_1_1FB0(void); diff --git a/libc/ctype.h b/include/ctype.h similarity index 100% rename from libc/ctype.h rename to include/ctype.h diff --git a/include/dolphin/ar.h b/include/dolphin/ar.h index bbdea48a..db0adaf3 100644 --- a/include/dolphin/ar.h +++ b/include/dolphin/ar.h @@ -20,7 +20,7 @@ typedef void (*ARCallback)(void); ARCallback ARRegisterDMACallback(ARCallback callback); u32 ARGetDMAStatus(void); -void ARStartDMA(u32 type, uintptr_t mainmem_addr, u32 aram_addr, u32 length); +void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length); u32 ARInit(u32* stack_index_addr, u32 num_entries); u32 ARGetBaseAddress(void); BOOL ARCheckInit(void); diff --git a/include/dolphin/arq.h b/include/dolphin/arq.h index dde57c18..5b7a194c 100644 --- a/include/dolphin/arq.h +++ b/include/dolphin/arq.h @@ -20,7 +20,7 @@ extern "C" { #define ARQ_PRIORITY_LOW 0 #define ARQ_PRIORITY_HIGH 1 -typedef void (*ARQCallback)(uintptr_t pointerToARQRequest); +typedef void (*ARQCallback)(u32 pointerToARQRequest); typedef struct ARQRequest { @@ -37,7 +37,7 @@ typedef struct ARQRequest { void ARQInit(void); void ARQReset(void); -void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, uintptr_t source, uintptr_t dest, +void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source, u32 dest, u32 length, ARQCallback callback); void ARQRemoveRequest(ARQRequest* task); void ARQRemoveOwnerRequest(u32 owner); diff --git a/include/dolphin/demo/DEMOStats.h b/include/dolphin/demo/DEMOStats.h index d9c29c93..92a61bf6 100644 --- a/include/dolphin/demo/DEMOStats.h +++ b/include/dolphin/demo/DEMOStats.h @@ -29,10 +29,10 @@ typedef enum { DEMO_STAT_IO = 4 } DEMO_STAT_DISP; +extern unsigned char DemoStatEnable; + void DEMOSetStats(DemoStatData * stat, unsigned long nstats, DEMO_STAT_DISP disp); void DEMOUpdateStats(unsigned char inc); void DEMOPrintStats(void); -void DEMOUpdateStats(unsigned char inc); -void DEMOPrintStats(void); #endif diff --git a/include/dolphin/gx/GXBump.h b/include/dolphin/gx/GXBump.h index 2cd4f981..cc2cb976 100644 --- a/include/dolphin/gx/GXBump.h +++ b/include/dolphin/gx/GXBump.h @@ -20,10 +20,9 @@ void GXSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTe GXIndTexWrap wrap_t, GXBool add_prev, GXBool ind_lod, GXIndTexAlphaSel alpha_sel); //Must be implicit to match m455dll -#ifndef __MWERKS__ -void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, - GXBool replace_mode, GXIndTexMtxID matrix_sel); -#endif +//void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, +// GXBool replace_mode, GXIndTexMtxID matrix_sel); + void GXSetTevIndTile (GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, u16 tilespacing_t, diff --git a/include/dolphin/gx/GXDispList.h b/include/dolphin/gx/GXDispList.h index 422fbd5a..552eda2d 100644 --- a/include/dolphin/gx/GXDispList.h +++ b/include/dolphin/gx/GXDispList.h @@ -7,15 +7,8 @@ extern "C" { #endif -#ifdef AURORA -#define GXCallDisplayListNative GXCallDisplayListLE -#else -#define GXCallDisplayListNative GXCallDisplayList -#endif - void GXBeginDisplayList(void* list, u32 size); u32 GXEndDisplayList(void); -void GXCallDisplayListLE(const void* list, u32 nbytes); void GXCallDisplayList(const void* list, u32 nbytes); #ifdef __cplusplus diff --git a/include/dolphin/gx/GXGeometry.h b/include/dolphin/gx/GXGeometry.h index 77effd85..632ebc69 100644 --- a/include/dolphin/gx/GXGeometry.h +++ b/include/dolphin/gx/GXGeometry.h @@ -20,10 +20,8 @@ void GXSetPointSize(u8 pointSize, GXTexOffset texOffsets); void GXEnableTexOffsets(GXTexCoordID coord, GXBool line_enable, GXBool point_enable); #ifdef TARGET_PC void GXSetArray(GXAttr attr, const void* data, u32 size, u8 stride); -#define GXSETARRAY(attr, data, size, stride) GXSetArray((attr), (data), (size), (stride)) #else void GXSetArray(GXAttr attr, const void* data, u8 stride); -#define GXSETARRAY(attr, data, size, stride) GXSetArray((attr), (data), (stride)) #endif void GXInvalidateVtxCache(void); diff --git a/include/dolphin/gx/GXPriv.h b/include/dolphin/gx/GXPriv.h index b2d1878a..1cd42e37 100644 --- a/include/dolphin/gx/GXPriv.h +++ b/include/dolphin/gx/GXPriv.h @@ -2,9 +2,8 @@ #define _DOLPHIN_GXPRIV #include "dolphin/gx.h" -#include "dolphin/os.h" -#ifndef NDEBUG +#ifdef DEBUG #define ASSERTLINE(line, cond) \ ((cond) || (OSPanic(__FILE__, line, "Failed assertion " #cond), 0)) diff --git a/include/dolphin/mtx.h b/include/dolphin/mtx.h index 84505659..49dc1b7e 100644 --- a/include/dolphin/mtx.h +++ b/include/dolphin/mtx.h @@ -6,11 +6,7 @@ #ifdef __cplusplus extern "C" { #endif - -#if defined(__MWERKS__) && !defined(GEKKO) #define GEKKO -#endif - #ifndef GEKKO #define MTX_USE_C #undef MTX_USE_PS @@ -39,7 +35,6 @@ typedef struct { #define MTXRadToDeg(a) ((a)*57.29577951f) #define MTXRowCol(m, r, c) ((m)[(r)][(c)]) - void C_MTXIdentity(Mtx m); void C_MTXCopy(const Mtx src, Mtx dst); void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab); @@ -47,8 +42,6 @@ void C_MTXConcatArray(const Mtx a, const Mtx* srcBase, Mtx* dstBase, u32 count); void C_MTXTranspose(const Mtx src, Mtx xPose); u32 C_MTXInverse(const Mtx src, Mtx inv); u32 C_MTXInvXpose(const Mtx src, Mtx invX); -void C_MTXReorder(const Mtx src, ROMtx dest); -void C_MTXROMultVecArray(const ROMtx m, const Vec *srcBase, Vec *dstBase, u32 count); #ifdef GEKKO void PSMTXIdentity(Mtx m); @@ -309,20 +302,6 @@ void PSMTXMultS16VecArray(const Mtx m, const S16Vec* srcBase, Vec* dstBase, u32 void PSMTXROMultS16VecArray(const ROMtx m, const S16Vec* srcBase, Vec* dstBase, u32 count); #endif -#ifdef MTX_USE_PS -#define MTXReorder PSMTXReorder -#define MTXROMultVecArray PSMTXROMultVecArray -#define MTXROSkin2VecArray PSMTXROSkin2VecArray -#define MTXROMultS16VecArray PSMTXROMultS16VecArray -#define MTXMultS16VecArray PSMTXMultS16VecArray -#else // MTX_USE_C -#define MTXReorder C_MTXReorder -#define MTXROMultVecArray C_MTXROMultVecArray -#define MTXROSkin2VecArray C_MTXROSkin2VecArray -#define MTXROMultS16VecArray C_MTXROMultS16VecArray -#define MTXMultS16VecArray C_MTXMultS16VecArray -#endif - void MTXInitStack(MtxStack* sPtr, u32 numMtx); MtxPtr MTXPush(MtxStack* sPtr, const Mtx m); MtxPtr MTXPushFwd(MtxStack* sPtr, const Mtx m); diff --git a/include/dolphin/os.h b/include/dolphin/os.h index b0f91c56..d255bb04 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -23,15 +23,10 @@ extern "C" { #endif typedef s64 OSTime; typedef u32 OSTick; -#ifdef __MWERKS__ u32 __OSBusClock AT_ADDRESS(OS_BASE_CACHED | 0x00F8); // sync with OSLoMem.h u32 __OSCoreClock AT_ADDRESS(OS_BASE_CACHED | 0x00FC); // sync with OSLoMem.h #define OS_BUS_CLOCK (u32) __OSBusClock #define OS_CORE_CLOCK __OSCoreClock -#else -#define OS_BUS_CLOCK 162000000ull -#define OS_CORE_CLOCK 486000000ull -#endif #define OS_TIMER_CLOCK (OS_BUS_CLOCK / 4) #ifndef _DEBUG @@ -62,8 +57,8 @@ u32 OSUncachedToCached(void *ucaddr); #define OSDiffTick(tick1, tick0) ((s32)(tick1) - (s32)(tick0)) -#define OSRoundUp32B(x) (((size_t)(x) + 0x1F) & ~(0x1F)) -#define OSRoundDown32B(x) (((size_t)(x)) & ~(0x1F)) +#define OSRoundUp32B(x) (((u32)(x) + 0x1F) & ~(0x1F)) +#define OSRoundDown32B(x) (((u32)(x)) & ~(0x1F)) #define OSRoundUp(x, align) (((x) + (align)-1) & (-(align))) #define OSRoundUpPtr(x, align) ((void*)((((u32)(x)) + (align)-1) & (~((align)-1)))) diff --git a/include/dolphin/os/OSAlloc.h b/include/dolphin/os/OSAlloc.h index afa788c0..686dae2b 100644 --- a/include/dolphin/os/OSAlloc.h +++ b/include/dolphin/os/OSAlloc.h @@ -9,17 +9,17 @@ extern "C" { typedef int OSHeapHandle; typedef void (*OSAllocVisitor)(void *obj, u32 size); void *OSInitAlloc(void *arenaStart, void *arenaEnd, int maxHeaps); -uintptr_t OSCreateHeap(void *start, void *end); +OSHeapHandle OSCreateHeap(void *start, void *end); void OSDestroyHeap(OSHeapHandle heap); void OSAddToHeap(OSHeapHandle heap, void *start, void *end); OSHeapHandle OSSetCurrentHeap(OSHeapHandle heap); -void *OSAllocFromHeap(int heap, unsigned long size); +void *OSAllocFromHeap(OSHeapHandle heap, u32 size); void *OSAllocFixed(void **rstart, void **rend); void OSFreeToHeap(OSHeapHandle heap, void *ptr); long OSCheckHeap(OSHeapHandle heap); void OSDumpHeap(OSHeapHandle heap); -unsigned long OSReferentSize(void *ptr); -void OSVisitAllocated(void (*visitor)(void *, unsigned long)); +u32 OSReferentSize(void *ptr); +void OSVisitAllocated(OSAllocVisitor visitor); extern volatile OSHeapHandle __OSCurrHeap; #define OSAlloc(size) OSAllocFromHeap(__OSCurrHeap, (size)) #define OSFree(ptr) OSFreeToHeap(__OSCurrHeap, (ptr)) diff --git a/include/dolphin/os/OSFastCast.h b/include/dolphin/os/OSFastCast.h index 9fb24e30..b52cabfe 100644 --- a/include/dolphin/os/OSFastCast.h +++ b/include/dolphin/os/OSFastCast.h @@ -1,8 +1,6 @@ #ifndef _DOLPHIN_OSFASTCAST #define _DOLPHIN_OSFASTCAST -#include "dolphin/types.h" - #ifdef __cplusplus extern "C" { #endif @@ -46,7 +44,6 @@ static inline void OSInitFastCast(void) { static inline s16 __OSf32tos16(register f32 inF) { -#ifdef __MWERKS__ u32 tmp; register u32* tmpPtr = &tmp; register s16 out; @@ -58,16 +55,12 @@ static inline s16 __OSf32tos16(register f32 inF) // clang-format on return out; -#else - return (s16) inF; -#endif } static inline void OSf32tos16(f32 *f, s16 *out) { *out = __OSf32tos16(*f); } static inline u8 __OSf32tou8(register f32 inF) { -#ifdef __MWERKS__ u32 tmp; register u32 *tmpPtr = &tmp; register u8 out; @@ -79,16 +72,12 @@ static inline u8 __OSf32tou8(register f32 inF) // clang-format on return out; -#else - return (u8)inF; -#endif } static inline void OSf32tou8(f32 *f, u8 *out) { *out = __OSf32tou8(*f); } static inline s8 __OSf32tos8(register f32 inF) { -#ifdef __MWERKS__ u32 tmp; register u32 *tmpPtr = &tmp; register s8 out; @@ -101,16 +90,12 @@ static inline s8 __OSf32tos8(register f32 inF) // clang-format on return out; -#else - return (s8) inF; -#endif } static inline void OSf32tos8(f32 *f, s8 *out) { *out = __OSf32tos8(*f); } static inline u16 __OSf32tou16(register f32 inF) { -#ifdef __MWERKS__ u32 tmp; register u32 *tmpPtr = &tmp; register u16 out; @@ -122,15 +107,11 @@ static inline u16 __OSf32tou16(register f32 inF) // clang-format on return out; -#else - return (u16) inF; -#endif } static inline void OSf32tou16(f32 *f, u16 *out) { *out = __OSf32tou16(*f); } static inline float __OSs8tof32(register const s8* arg) { -#ifdef __MWERKS__ register float ret; asm { @@ -138,15 +119,11 @@ static inline float __OSs8tof32(register const s8* arg) { } return ret; -#else - return (f32)*arg; -#endif } static inline void OSs8tof32(const s8* in, float* out) { *out = __OSs8tof32(in); } static inline float __OSs16tof32(register const s16* arg) { -#ifdef __MWERKS__ register float ret; asm { @@ -154,15 +131,11 @@ static inline float __OSs16tof32(register const s16* arg) { } return ret; -#else - return (f32)*arg; -#endif } static inline void OSs16tof32(const s16* in, float* out) { *out = __OSs16tof32(in); } static inline float __OSu8tof32(register const u8* arg) { -#ifdef __MWERKS__ register float ret; asm { @@ -170,15 +143,11 @@ static inline float __OSu8tof32(register const u8* arg) { } return ret; -#else - return (f32)*arg; -#endif } static inline void OSu8tof32(const u8* in, float* out) { *out = __OSu8tof32(in); } static inline float __OSu16tof32(register const u16* arg) { -#ifdef __MWERKS__ register float ret; asm { @@ -186,9 +155,6 @@ static inline float __OSu16tof32(register const u16* arg) { } return ret; -#else - return (f32)*arg; -#endif } static inline void OSu16tof32(const u16* in, float* out) { *out = __OSu16tof32(in); } diff --git a/include/dolphin/pad.h b/include/dolphin/pad.h index e52a6e9f..0d525004 100644 --- a/include/dolphin/pad.h +++ b/include/dolphin/pad.h @@ -84,8 +84,8 @@ PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback); #ifdef TARGET_PC /* New API to facilitate controller interactions */ typedef struct PADDeadZones { - BOOL emulateTriggers; - BOOL useDeadzones; + bool emulateTriggers; + bool useDeadzones; u16 stickDeadZone; u16 substickDeadZone; u16 leftTriggerActivationZone; @@ -118,7 +118,7 @@ const char* PADGetNativeButtonName(u32 button); /* Returns any pressed native button */ s32 PADGetNativeButtonPressed(u32 port); void PADRestoreDefaultMapping(u32 port); -void PADBlockInput(BOOL block); +void PADBlockInput(bool block); #endif #ifdef __cplusplus diff --git a/include/dolphin/types.h b/include/dolphin/types.h index b4d273b4..822ec081 100644 --- a/include/dolphin/types.h +++ b/include/dolphin/types.h @@ -20,9 +20,6 @@ typedef unsigned char u8; typedef unsigned short int u16; typedef unsigned long u32; typedef unsigned long long int u64; - -typedef u32 size_t; -typedef u32 uintptr_t; #endif typedef volatile u8 vu8; @@ -67,7 +64,7 @@ typedef int BOOL; #define NULL ((void *)0) #endif #endif -#if !defined(__cplusplus) +#if !defined(__cplusplus) || __cplusplus < 201103L #ifndef nullptr #define nullptr NULL #endif diff --git a/include/dolphin/vi.h b/include/dolphin/vi.h index da232cb2..f503f4b5 100644 --- a/include/dolphin/vi.h +++ b/include/dolphin/vi.h @@ -15,7 +15,6 @@ u32 VIGetTvFormat(void); void VISetNextFrameBuffer(void* fb); void VIWaitForRetrace(void); void VISetBlack(BOOL black); -void VIConfigurePan(u16 xOrg, u16 yOrg, u16 width, u16 height); #ifdef TARGET_PC void VISetWindowTitle(const char* title); diff --git a/include/ext_math.h b/include/ext_math.h index d13a036e..e979909d 100644 --- a/include/ext_math.h +++ b/include/ext_math.h @@ -4,10 +4,6 @@ #include "math.h" #include "dolphin/mtx.h" -#ifndef M_PI -#define M_PI 3.141592653589793 -#endif - typedef struct vec2f { float x; float y; @@ -37,8 +33,7 @@ typedef struct vec2f { #define atan2d(y, x) (180.0*(atan2((y), (x)) / M_PI)) #ifndef __MWERKS__ -void HuSetVecF(Vec *arg0, f32 arg8, f32 arg9, f32 argA); -void HuSubVecF(Vec* out, Vec* in, Vec* sub); +void HuSetVecF(Vec* arg0, f32 arg8, f32 arg9, f32 argA) #endif #endif diff --git a/libc/float.h b/include/float.h similarity index 100% rename from libc/float.h rename to include/float.h diff --git a/include/game/animdata.h b/include/game/animdata.h index b4199a7e..63876d94 100644 --- a/include/game/animdata.h +++ b/include/game/animdata.h @@ -78,13 +78,6 @@ typedef struct anim_data { /* 0x08 */ AnimBankData *bank; /* 0x0C */ AnimPatData *pat; /* 0x10 */ AnimBmpData *bmp; -#ifdef TARGET_PC - u32 valid; -#endif } AnimData; //sizeof 0x14 -#ifdef TARGET_PC -#define ANIM_DATA_ALLOCATION_VALID 0xD3D3D3D3 -#endif - #endif diff --git a/include/game/audio.h b/include/game/audio.h index 0389b530..3846ea73 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -2,7 +2,6 @@ #define _GAME_AUDIO_H #include "dolphin.h" -#include "version.h" typedef struct sndGrpTbl_s { s16 ovl; @@ -75,6 +74,6 @@ extern float Snd3DDistOffset; extern s32 musicOffF; extern u8 fadeStat; -SHARED_SYM extern SNDGRPTBL sndGrpTable[]; +extern SNDGRPTBL sndGrpTable[]; #endif diff --git a/include/game/board/basic_space.h b/include/game/board/basic_space.h index e39aa47c..d786b2b7 100644 --- a/include/game/board/basic_space.h +++ b/include/game/board/basic_space.h @@ -3,8 +3,6 @@ #include "dolphin.h" -void BoardLandBlueExec(s32 player, s32 space); -void BoardLandRedExec(s32 player, s32 space); void BoardEventLandBlue(s32, s32); void BoardEventLandRed(s32, s32); s8 BoardCoinChgCreate(Vec*, s8); diff --git a/include/game/board/boo.h b/include/game/board/boo.h index 6543950f..39c7d971 100755 --- a/include/game/board/boo.h +++ b/include/game/board/boo.h @@ -8,6 +8,10 @@ s16 BoardBooCreate(s32 arg0, Vec *arg1); void BoardBooKill(void); s32 BoardBooStealTypeSet(s32 arg0); s32 BoardBooStealMain(void); +BOOL CheckBallCoinDone(void); +void TakeBallStar(void); +void ExecTakeBallStar(omObjData *arg0); +BOOL CheckTakeBallStarDone(void); s32 BoardBooStealValueGet(s16 *arg0, s16 *arg1); BOOL BoardBooStealLightCheck(void); diff --git a/include/game/board/boo_house.h b/include/game/board/boo_house.h index 27cebd16..03fb3126 100644 --- a/include/game/board/boo_house.h +++ b/include/game/board/boo_house.h @@ -8,7 +8,6 @@ void BoardBooHouseHostSet(s16); s16 BoardBooHouseHostGet(void); void BoardBooHouseCreate(void); void BoardBooHouseExec(s32); -void BoardBooHouseKill(void); s32 BoardBooComUseCheck(s32); void BoardBooHouseTutorialExec(void); diff --git a/include/game/board/bowser.h b/include/game/board/bowser.h deleted file mode 100644 index 551d00db..00000000 --- a/include/game/board/bowser.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _BOARD_BOWSER_H -#define _BOARD_BOWSER_H - -#include "game/process.h" - -void BoardBowserExec(s32 player, s32 space); - -#endif \ No newline at end of file diff --git a/include/game/board/fortune.h b/include/game/board/fortune.h deleted file mode 100644 index 0d17b464..00000000 --- a/include/game/board/fortune.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _BOARD_FORTUNE_H -#define _BOARD_FORTUNE_H - -#include "game/process.h" - -void BoardFortuneExec(s32 player, s32 space); - -#endif \ No newline at end of file diff --git a/include/game/board/item.h b/include/game/board/item.h index c67beab4..2a637c05 100755 --- a/include/game/board/item.h +++ b/include/game/board/item.h @@ -6,8 +6,5 @@ void BoardItemStart(s32 arg0, s32 arg1); BOOL BoardItemDoneCheck(void); void BoardItemBagItemSet(s16 *arg0); -#ifndef __MWERKS__ -void BoardItemPlayerRestore(s32 arg0, s32 arg1); -#endif #endif diff --git a/include/game/board/main.h b/include/game/board/main.h index abcd9c48..2b4d84cc 100644 --- a/include/game/board/main.h +++ b/include/game/board/main.h @@ -1,73 +1,72 @@ #ifndef _BOARD_MAIN_H #define _BOARD_MAIN_H -#include "dolphin.h" -#include "game/data.h" #include "game/gamework_data.h" #include "game/object.h" +#include "game/data.h" +#include "dolphin.h" - -#define BOARD_ID_MAIN1 0 // TOADS_MIDWAY_MADNESS -#define BOARD_ID_MAIN2 1 // GOOMBAS_GREEDY_GALA -#define BOARD_ID_MAIN3 2 // SHY_GUYS_JUNGLE_JAM -#define BOARD_ID_MAIN4 3 // BOOS_HAUNTED_BASH -#define BOARD_ID_MAIN5 4 // KOOPAS_SEASIDE_SOIREE -#define BOARD_ID_MAIN6 5 // BOWSERS_GNARLY_PARTY -#define BOARD_ID_TUTORIAL 6 // TUTORIAL_BOARD -#define BOARD_ID_EXTRA1 7 // MEGA_BOARD_MAYHEM -#define BOARD_ID_EXTRA2 8 // MINI_BOARD_MAD_DASH +#define BOARD_ID_MAIN1 0 //TOADS_MIDWAY_MADNESS +#define BOARD_ID_MAIN2 1 //GOOMBAS_GREEDY_GALA +#define BOARD_ID_MAIN3 2 //SHY_GUYS_JUNGLE_JAM +#define BOARD_ID_MAIN4 3 //BOOS_HAUNTED_BASH +#define BOARD_ID_MAIN5 4 //KOOPAS_SEASIDE_SOIREE +#define BOARD_ID_MAIN6 5 //BOWSERS_GNARLY_PARTY +#define BOARD_ID_TUTORIAL 6 //TUTORIAL_BOARD +#define BOARD_ID_EXTRA1 7 //MEGA_BOARD_MAYHEM +#define BOARD_ID_EXTRA2 8 //MINI_BOARD_MAD_DASH #define BOARD_FABS(value) ((value < 0) ? -(value) : (value)) typedef struct board_focus_data { - u16 view_type; - s16 time; - s16 max_time; - float fov_start; - float fov_end; - float zoom_start; - float zoom_end; - Vec rot_start; - Vec rot_end; - Vec target_start; - Vec target_end; + u16 view_type; + s16 time; + s16 max_time; + float fov_start; + float fov_end; + float zoom_start; + float zoom_end; + Vec rot_start; + Vec rot_end; + Vec target_start; + Vec target_end; } BoardFocusData; typedef struct board_camera_data { - struct { - u8 hide_all : 1; - u8 moving : 1; - u8 quaking : 1; - }; - u16 mask; - s16 target_mdl; - s16 target_space; - s32 quake_timer; - float quake_strength; - float fov; - float nnear; - float ffar; - float aspect; - float viewport_x; - float viewport_y; - float viewport_w; - float viewport_h; - float viewport_near; - float viewport_far; - Vec pos; - Vec up; - Vec target; - Vec offset; - Vec rot; - float zoom; - void (*pos_calc)(struct board_camera_data *); - BoardFocusData focus; + struct { + u8 hide_all : 1; + u8 moving : 1; + u8 quaking : 1; + }; + u16 mask; + s16 target_mdl; + s16 target_space; + s32 quake_timer; + float quake_strength; + float fov; + float near; + float far; + float aspect; + float viewport_x; + float viewport_y; + float viewport_w; + float viewport_h; + float viewport_near; + float viewport_far; + Vec pos; + Vec up; + Vec target; + Vec offset; + Vec rot; + float zoom; + void (*pos_calc)(struct board_camera_data *); + BoardFocusData focus; } BoardCameraData; extern BoardCameraData boardCamera; -SHARED_SYM extern Process *boardObjMan; -SHARED_SYM extern Process *boardMainProc; -SHARED_SYM extern u32 boardRandSeed; +extern Process *boardObjMan; +extern Process *boardMainProc; +extern u32 boardRandSeed; extern omObjData *boardMainObj; typedef void (*BoardFunc)(void); @@ -79,11 +78,11 @@ typedef void (*BoardCameraPosCalcFunc)(BoardCameraData *camera); typedef void (*BoardTurnStartHook)(s32 player, s32 space); -SHARED_SYM extern BoardTurnStartHook boardTurnStartFunc; -SHARED_SYM extern void (*boardStarShowNextHook)(void); -SHARED_SYM extern void (*boardStarGiveHook)(void); -SHARED_SYM extern BoardBowserHook boardBowserHook; -SHARED_SYM extern BoardFunc boardTurnFunc; +extern BoardTurnStartHook boardTurnStartFunc; +extern void (*boardStarShowNextHook)(void); +extern void (*boardStarGiveHook)(void); +extern BoardBowserHook boardBowserHook; +extern BoardFunc boardTurnFunc; extern BoardLightHook boardLightResetHook; extern BoardLightHook boardLightSetHook; @@ -120,15 +119,12 @@ void BoardCameraTargetSpaceSet(s32 space); void BoardCameraQuakeSet(s32 duration, float strength); void BoardCameraQuakeReset(); void BoardCameraTargetSet(float x, float y, float z); -#ifndef __MWERKS__ -void BoardCameraPosCalcFuncSet(BoardCameraPosCalcFunc func); -#endif void BoardCameraPosSet(float x, float y, float z); void BoardCameraXRotZoomSet(float zoom, float x_rot); void BoardCameraZoomSet(float zoom); void BoardCameraRotSet(float x, float y); -void BoardCameraNearFarSet(float nnear, float ffar); -void BoardCameraNearFarGet(float *nnear, float *ffar); +void BoardCameraNearFarSet(float near, float far); +void BoardCameraNearFarGet(float *near, float *far); void BoardCameraMotionStart(s16 model_target, Vec *rot_target, float zoom_target, float fov_target); void BoardCameraMotionStartEx(s16 model_target, Vec *rot_target, Vec *offset_end, float zoom_target, float fov_target, s16 max_time); void BoardCameraFovSet(float fov); @@ -170,4 +166,4 @@ void BoardTauntKill(void); s32 BoardDataDirReadAsync(s32 data_num); void BoardDataAsyncWait(s32 status); -#endif +#endif \ No newline at end of file diff --git a/include/game/board/model.h b/include/game/board/model.h index e0a50561..a570836d 100644 --- a/include/game/board/model.h +++ b/include/game/board/model.h @@ -41,7 +41,6 @@ s32 BoardModelMotionUpdateSet(s16 model, s32 flag); s32 BoardModelVoiceEnableSet(s16 model, s32 motion, s32 flag); s32 BoardModelMotionStart(s16 model, s32 slot, u32 attr); s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr); -s32 BoardModelMotionShiftIDGet(s16 model); s32 BoardModelAttrSet(s16 model, u32 attr); s32 BoardModelAttrReset(s16 model, u32 attr); s32 BoardModelMotionTimeSet(s16 model, float time); diff --git a/include/game/board/player.h b/include/game/board/player.h index 02136b04..df4e2c49 100644 --- a/include/game/board/player.h +++ b/include/game/board/player.h @@ -13,7 +13,7 @@ #include "game/board/space.h" #include "game/board/ui.h" -SHARED_SYM extern s16 boardPlayerMdl[4]; +extern s16 boardPlayerMdl[4]; static inline s32 BoardPlayerHandicapGet(s32 player) { @@ -97,9 +97,6 @@ void BoardJunctionMaskReset(s32); void BoardJunctionMaskZero(void); void BoardPlayerVoiceEnableSet(s32, s32, s32); -#ifndef __MWERKS__ -void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2); -#endif void BoardPlayerMoveTo(s32, s32); void BoardPlayerMoveToAsync(s32, s32); diff --git a/include/game/board/space.h b/include/game/board/space.h index df674ff0..37a0fe66 100644 --- a/include/game/board/space.h +++ b/include/game/board/space.h @@ -17,7 +17,6 @@ typedef struct board_space { u16 link[BOARD_SPACE_LINKMAX+1]; } BoardSpace; -s32 BoardSpaceWalkExec(s32 player, s32 space); void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func); void BoardSpaceWalkMiniEventFuncSet(BoardSpaceEventFunc func); void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func); @@ -28,7 +27,6 @@ BoardSpace *BoardSpaceGet(s32 layer, s32 index); void BoardSpaceAttrSet(s32 layer, u32 attr); void BoardSpaceAttrReset(s32 layer, u32 attr); u32 BoardSpaceFlagGet(s32 layer, s32 index); -void BoardSpaceTypeForce(u16 from, u16 to); s32 BoardSpaceTypeGet(s32 layer, s32 index); void BoardSpaceTypeSet(s32 layer, s32 index, s32 type); s32 BoardSpacePosGet(s32 layer, s32 index, Vec *pos); @@ -42,7 +40,6 @@ s32 BoardSpaceLinkTargetListGet(s32 layer, s32 target, s16 *list); s32 BoardSpaceLinkTypeSearch(s32 layer, s32 target, u16 type); s32 BoardSpaceLinkTransformGet(s32 flag, Vec *pos, Vec *rot, Vec *scale); void BoardSpaceHostSet(s32 space); -void BoardSpaceHide(s32 value); void BoardSpaceStarSetIndex(s32 index); s32 BoardSpaceStarGetNext(void); s32 BoardSpaceStarGetRandom(s32 excl_pos); @@ -52,7 +49,6 @@ s32 BoardSpaceStarGetCurr(void); s32 BoardSpaceStarCheck(s32 index); void BoardSpaceLandExec(s32 player, s32 space); void BoardSpaceCameraSet(u16 mask); -s32 BoardSpaceBlockExec(s32 player, s32 space); void BoardSpaceBlockPosSet(void); void BoardSpaceInit(s32 data_num); void BoardSpaceDestroy(void); diff --git a/include/game/board/tutorial.h b/include/game/board/tutorial.h index 32d32d0a..3b63c2ae 100755 --- a/include/game/board/tutorial.h +++ b/include/game/board/tutorial.h @@ -2,7 +2,6 @@ #define _BOARD_TUTORIAL_H #include "dolphin/types.h" -#include "version.h" void BoardTutorialInit(void); void BoardTutorialKill(void); @@ -17,7 +16,7 @@ void BoardTutorialItemSet(s8 arg0); void BoardTutorialHostSet(s16 arg0); void BoardTutorialHostHide(s8 arg0); -SHARED_SYM extern s32 boardTutorialData[4]; +extern s32 boardTutorialData[4]; extern s8 boardTutorialDirInputX; extern s8 boardTutorialDirInputY; extern s16 boardTutorialDirInputTime; @@ -25,6 +24,6 @@ extern s32 boardTutorialBlockPos; extern s8 boardTutorialBlockItem; extern s8 boardTutorialBlockF; extern s8 boardTutorialUseItem; -SHARED_SYM extern s8 boardTutorialF; +extern s8 boardTutorialF; #endif diff --git a/include/game/card.h b/include/game/card.h index 58c0b5d3..96d621b4 100644 --- a/include/game/card.h +++ b/include/game/card.h @@ -2,9 +2,8 @@ #define _GAME_CARD_H #include "dolphin.h" -#include "version.h" -SHARED_SYM extern u8 UnMountCnt; +extern u8 UnMountCnt; void HuCardInit(void); s32 HuCardCheck(void); diff --git a/include/game/chrman.h b/include/game/chrman.h index c20b79cc..d826fb68 100755 --- a/include/game/chrman.h +++ b/include/game/chrman.h @@ -44,6 +44,8 @@ s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3); s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2); void CharModelStepTypeSet(s16 character, s32 arg1); -#define GW_CHARACTER_MAX 8 +#define CHARNO_MAX 8 +#define CHAR_NPC_MAX 7 +#define CHAR_EFFECT_AND_PARTICLE_MAX 8 #endif diff --git a/include/game/data.h b/include/game/data.h index 3a1d41ff..9c01b09b 100644 --- a/include/game/data.h +++ b/include/game/data.h @@ -34,6 +34,7 @@ s32 HuDataReadChk(s32 data_num); DataReadStat *HuDataGetStatus(void *dir_ptr); void *HuDataGetDirPtr(s32 data_num); DataReadStat *HuDataDirRead(s32 data_num); +DataReadStat *HuDataDirReadNum(s32 data_num, s32 num); DataReadStat *HuDataDirSet(void *dir_ptr, s32 data_num); void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo); s32 HuDataDirReadAsync(s32 data_num); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 5cfb1bbd..f26f62dc 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -5,7 +5,7 @@ #include "game/flag.h" #include "version.h" -// HACK: to prevent prototype errors +//HACK: to prevent prototype errors extern void HuPadRumbleAllStop(void); typedef struct player_config { @@ -17,12 +17,12 @@ typedef struct player_config { } PlayerConfig; typedef struct system_state { - /* 0x00 */ struct { +/* 0x00 */ struct { u8 party : 1; u8 team : 1; }; - /* 0x01 */ u8 diff_story; - /* 0x02 */ struct { +/* 0x01 */ u8 diff_story; +/* 0x02 */ struct { u16 bonus_star : 1; u16 explain_mg : 1; u16 show_com_mg : 1; @@ -30,35 +30,35 @@ typedef struct system_state { u16 mess_speed : 2; u16 save_mode : 2; }; - /* 0x04 */ u8 turn; - /* 0x05 */ u8 max_turn; - /* 0x06 */ u8 star_flag; - /* 0x07 */ u8 star_total; - /* 0x08 */ struct { - u8 star_pos : 3; - u8 board : 5; - }; - /* 0x09 */ s8 last5_effect; - /* 0x0A */ s8 player_curr; - /* 0x0B */ u8 storyCharBit; - /* 0x0C */ s8 storyChar; - /* 0x0E */ s16 block_pos; - /* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32]; - /* 0x30 */ u8 mess_delay; - /* 0x31 */ struct { +/* 0x04 */ u8 turn; +/* 0x05 */ u8 max_turn; +/* 0x06 */ u8 star_flag; +/* 0x07 */ u8 star_total; +/* 0x08 */ struct { + u8 star_pos : 3; + u8 board : 5; +}; +/* 0x09 */ s8 last5_effect; +/* 0x0A */ s8 player_curr; +/* 0x0B */ u8 storyCharBit; +/* 0x0C */ s8 storyChar; +/* 0x0E */ s16 block_pos; +/* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32]; +/* 0x30 */ u8 mess_delay; +/* 0x31 */ struct { u8 bowser_loss : 4; u8 bowser_event : 4; }; - /* 0x32 */ s8 lucky_value; - /* 0x34 */ u16 mg_next; - /* 0x36 */ s16 mg_type; - /* 0x38 */ u16 unk_38; - /* 0x3A */ u8 flag[3][16]; - /* 0x6A */ u8 unk_6A[0x72]; -} SystemState; // 8018fcf8, sizeof 0xDC +/* 0x32 */ s8 lucky_value; +/* 0x34 */ u16 mg_next; +/* 0x36 */ s16 mg_type; +/* 0x38 */ u16 unk_38; +/* 0x3A */ u8 flag[3][16]; +/* 0x6A */ u8 unk_6A[0x72]; +} SystemState; //8018fcf8, sizeof 0xDC typedef struct player_state { - /* 0x00 */ struct { +/* 0x00 */ struct { u16 diff : 2; u16 com : 1; u16 character : 4; @@ -66,15 +66,15 @@ typedef struct player_state { u16 draw_ticket : 1; u16 ticket_player : 6; }; - /* 0x02 */ struct { +/* 0x02 */ struct { u8 team : 1; u8 spark : 1; u8 player_idx : 2; }; - /* 0x03 */ s8 handicap; - /* 0x04 */ s8 port; - /* 0x05 */ s8 items[3]; - /* 0x08 */ struct { +/* 0x03 */ s8 handicap; +/* 0x04 */ s8 port; +/* 0x05 */ s8 items[3]; +/* 0x08 */ struct { u16 color : 2; u16 moving : 1; u16 jump : 1; @@ -85,30 +85,30 @@ typedef struct player_state { u16 bowser_suit : 1; u16 team_backup : 1; }; - /* 0x0A */ s8 roll; - /* 0x0C */ s16 space_curr; - /* 0x0E */ s16 space_prev; - /* 0x10 */ s16 space_next; - /* 0x12 */ s16 space_shock; - /* 0x14 */ s8 blue_count; - /* 0x15 */ s8 red_count; - /* 0x16 */ s8 question_count; - /* 0x17 */ s8 fortune_count; - /* 0x18 */ s8 bowser_count; - /* 0x19 */ s8 battle_count; - /* 0x1A */ s8 mushroom_count; - /* 0x1B */ s8 warp_count; - /* 0x1C */ s16 coins; - /* 0x1E */ s16 coins_mg; - /* 0x20 */ s16 coins_total; - /* 0x22 */ s16 coins_max; - /* 0x24 */ s16 coins_battle; - /* 0x26 */ s16 coin_collect; - /* 0x28 */ s16 coin_win; - /* 0x2A */ s16 stars; - /* 0x2C */ s16 stars_max; - /* 0x2E */ char unk_2E[2]; -} PlayerState; // size of 0x30 +/* 0x0A */ s8 roll; +/* 0x0C */ s16 space_curr; +/* 0x0E */ s16 space_prev; +/* 0x10 */ s16 space_next; +/* 0x12 */ s16 space_shock; +/* 0x14 */ s8 blue_count; +/* 0x15 */ s8 red_count; +/* 0x16 */ s8 question_count; +/* 0x17 */ s8 fortune_count; +/* 0x18 */ s8 bowser_count; +/* 0x19 */ s8 battle_count; +/* 0x1A */ s8 mushroom_count; +/* 0x1B */ s8 warp_count; +/* 0x1C */ s16 coins; +/* 0x1E */ s16 coins_mg; +/* 0x20 */ s16 coins_total; +/* 0x22 */ s16 coins_max; +/* 0x24 */ s16 coins_battle; +/* 0x26 */ s16 coin_collect; +/* 0x28 */ s16 coin_win; +/* 0x2A */ s16 stars; +/* 0x2C */ s16 stars_max; +/* 0x2E */ char unk_2E[2]; +} PlayerState; //size of 0x30 typedef struct pause_backup_config { u8 explain_mg : 1; @@ -119,21 +119,21 @@ typedef struct pause_backup_config { } PauseBackupConfig; typedef struct game_stat { - /* 0x0 */ s16 unk_00; - /* 0x2 */ u8 language; - /* 0x3 */ u8 sound_mode; - /* 0x4 */ s8 rumble; - /* 0x6 */ u16 total_stars; - /* 0x8 */ OSTime create_time; - /* 0x10 */ u32 mg_custom[2]; - /* 0x18 */ u32 mg_avail[2]; - /* 0x20 */ u32 mg_record[15]; - /* 0x5C */ u8 board_win_count[9][8]; - /* 0xA4 */ u8 board_play_count[9]; - /* 0xAE */ u16 board_max_stars[9]; - /* 0xC0 */ u16 board_max_coins[9]; - /* 0xD2 */ u8 present[60]; - /* 0x10E */ struct { +/* 0x0 */ s16 unk_00; +/* 0x2 */ u8 language; +/* 0x3 */ u8 sound_mode; +/* 0x4 */ s8 rumble; +/* 0x6 */ u16 total_stars; +/* 0x8 */ OSTime create_time; +/* 0x10 */ u32 mg_custom[2]; +/* 0x18 */ u32 mg_avail[2]; +/* 0x20 */ u32 mg_record[15]; +/* 0x5C */ u8 board_win_count[9][8]; +/* 0xA4 */ u8 board_play_count[9]; +/* 0xAE */ u16 board_max_stars[9]; +/* 0xC0 */ u16 board_max_coins[9]; +/* 0xD2 */ u8 present[60]; +/* 0x10E */ struct { u8 story_continue : 1; u8 party_continue : 1; u8 open_w06 : 1; @@ -141,17 +141,17 @@ typedef struct game_stat { u8 customPackEnable : 1; u8 musicAllF : 1; }; - /* 0x10F */ PauseBackupConfig story_pause; - /* 0x110 */ PauseBackupConfig party_pause; +/* 0x10F */ PauseBackupConfig story_pause; +/* 0x110 */ PauseBackupConfig party_pause; } GameStat; -SHARED_SYM extern s16 GwLanguage; -SHARED_SYM extern s16 GwLanguageSave; +extern s16 GwLanguage; +extern s16 GwLanguageSave; -SHARED_SYM extern PlayerConfig GWPlayerCfg[4]; -SHARED_SYM extern PlayerState GWPlayer[4]; -SHARED_SYM extern SystemState GWSystem; -SHARED_SYM extern GameStat GWGameStat; +extern PlayerConfig GWPlayerCfg[4]; +extern PlayerState GWPlayer[4]; +extern SystemState GWSystem; +extern GameStat GWGameStat; static inline s32 GWPlayerCfgGroupGet(s32 player) { @@ -196,7 +196,7 @@ static inline s32 GWRumbleGet(void) static inline void GWRumbleSet(s32 value) { GWGameStat.rumble = value; - if (value == 0) { + if(value == 0) { HuPadRumbleAllStop(); } } @@ -206,6 +206,7 @@ static inline s32 GWBonusStarGet(void) return GWSystem.bonus_star; } + static inline s32 GWMGExplainGet(void) { return GWSystem.explain_mg; @@ -249,9 +250,9 @@ static inline s32 GWMessSpeedGet(void) static inline void GWMessSpeedSet(s32 value) { -#if VERSION_NTSC + #if VERSION_NTSC GWSystem.mess_speed = value; - switch (value) { + switch(value) { case 0: GWSystem.mess_delay = 16; break; @@ -264,9 +265,9 @@ static inline void GWMessSpeedSet(s32 value) GWSystem.mess_delay = 32; break; } -#else + #else GWSystem.mess_speed = value; - switch (value) { + switch(value) { case 0: GWSystem.mess_delay = 32; break; @@ -274,7 +275,7 @@ static inline void GWMessSpeedSet(s32 value) case 2: GWSystem.mess_delay = 64; break; - + case 1: GWSystem.mess_delay = 48; break; @@ -283,7 +284,7 @@ static inline void GWMessSpeedSet(s32 value) GWSystem.mess_delay = 120; break; } -#endif + #endif } static inline void GWSaveModeSet(s32 value) @@ -366,7 +367,7 @@ static inline void GWPlayerCoinWinSet(s32 player, s16 value) } } -#define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player)) + (value)) -#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), (s32)GWPlayerCoinCollectGet((player)) + (value)) +#define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player))+(value)) +#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), (s32)GWPlayerCoinCollectGet((player))+(value)) #endif diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index e251c5fb..9cf16673 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -4,15 +4,10 @@ #include "game/hsfformat.h" #include "game/hsfman.h" #include "game/animdata.h" -#include "version.h" typedef struct model_data ModelData; typedef struct particle_data ParticleData; -#ifdef TARGET_PC -typedef void (*ParticleDLCallFunc)(ParticleData *particle); -#endif - typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix); typedef struct { @@ -49,11 +44,11 @@ struct particle_data { /* 0x34 */ u32 unk_34; /* 0x38 */ s32 unk_38; /* 0x3C */ u32 unk_3C; - /* 0x40 */ s32 unk_40; // dlSize + /* 0x40 */ s32 unk_40; /* 0x44 */ AnimData *unk_44; /* 0x48 */ HsfanimStruct01 *unk_48; /* 0x4C */ Vec *unk_4C; - /* 0x50 */ void *unk_50; // dlPtr + /* 0x50 */ void *unk_50; /* 0x54 */ ParticleHook unk_54; }; // Size 0x58 @@ -143,7 +138,7 @@ void Hu3DParManTimeLimitSet(s16 arg0, s32 arg1); void Hu3DParManVacumeSet(s16 arg0, float arg1, float arg2, float arg3, float arg4); void Hu3DParManColorSet(s16 arg0, s16 arg1); -SHARED_SYM extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256]; -SHARED_SYM extern Hu3DTexScrDataStruct Hu3DTexScrData[16]; +extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256]; +extern Hu3DTexScrDataStruct Hu3DTexScrData[16]; #endif diff --git a/include/game/hsfdraw.h b/include/game/hsfdraw.h index aca5f1d4..d3b46df6 100755 --- a/include/game/hsfdraw.h +++ b/include/game/hsfdraw.h @@ -19,7 +19,7 @@ typedef struct hsfdraw_struct_01 { /* 0x1C */ float unk1C; /* 0x20 */ float unk20; /* 0x24 */ float unk24; - /* 0x28 */ float unk28; + /* 0x28 */ float unk28; /* 0x2C */ float unk2C; /* 0x30 */ float unk30; /* 0x34 */ float unk34; @@ -56,8 +56,9 @@ typedef struct hsf_draw_object { void Hu3DDrawPreInit(void); void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2); s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2); +void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1); void Hu3DDrawPost(void); -void MakeDisplayList(s16 arg0, uintptr_t arg1); +void MakeDisplayList(s16 arg0, u32 arg1); HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1); void mtxTransCat(Mtx arg0, float arg1, float arg2, float arg3); void mtxRotCat(Mtx arg0, float arg1, float arg2, float arg3); @@ -70,7 +71,7 @@ void Hu3DModelObjMtxGet(s16 arg0, char *arg1, Mtx arg2); void PGObjCall(ModelData *arg0, HsfObject *arg1); void PGObjCalc(ModelData *arg0, HsfObject *arg1); void PGObjReplica(ModelData *arg0, HsfObject *arg1); -HsfObject *Hu3DObjDuplicate(HsfData *arg0, uintptr_t arg1); +HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1); void Hu3DModelObjDrawInit(void); void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2); diff --git a/include/game/hsfformat.h b/include/game/hsfformat.h index 68b317cd..36c083a9 100644 --- a/include/game/hsfformat.h +++ b/include/game/hsfformat.h @@ -227,8 +227,9 @@ typedef struct hsf_cluster { s32 target; }; HsfPart *part; - float index; - float weight[32]; // unknown array size + float unk10; + float unk14[1]; // unknown array size + u8 unk18[124]; u8 adjusted; u8 unk95; u16 type; @@ -260,7 +261,7 @@ typedef struct hsf_object_data { } mesh; struct hsf_object *replica; }; - + HsfBuffer *face; HsfBuffer *vertex; HsfBuffer *normal; @@ -277,8 +278,7 @@ typedef struct hsf_object_data { HsfCluster **cluster; u32 cenvCnt; HsfCenv *cenv; - HsfVector3f *vtxtop; - HsfVector3f *normtop; + void *file[2]; } HsfObjectData; typedef struct hsf_camera { @@ -286,8 +286,8 @@ typedef struct hsf_camera { HsfVector3f pos; float aspect_dupe; float fov; - float nnear; - float ffar; + float near; + float far; } HsfCamera; typedef struct hsf_light { @@ -351,9 +351,6 @@ typedef struct hsf_track { float value; void *data; }; -#ifdef TARGET_PC - void *dataTop; -#endif } HsfTrack; typedef struct hsf_motion { @@ -400,9 +397,6 @@ typedef struct hsf_data { HsfObject *object; HsfMapAttr *mapAttr; HsfMatrix *matrix; -#ifdef TARGET_PC - void **symbol; -#endif s16 sceneCnt; s16 attributeCnt; s16 materialCnt; diff --git a/include/game/hsfload.h b/include/game/hsfload.h index c1003f05..1b67cb21 100644 --- a/include/game/hsfload.h +++ b/include/game/hsfload.h @@ -8,8 +8,5 @@ void ClusterAdjustObject(HsfData *model, HsfData *src_model); char *SetName(u32 *str_ofs); char *MakeObjectName(char *name); s32 CmpObjectName(char *name1, char *name2); -#ifdef TARGET_PC -void KillHSF(HsfData *data); -#endif #endif \ No newline at end of file diff --git a/include/game/hsfman.h b/include/game/hsfman.h index 6fb6d133..2be96d31 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -5,7 +5,6 @@ #include "game/hsfanim.h" #include "game/hsfformat.h" #include "game/memory.h" -#include "version.h" #define HU3D_MODEL_MAX 512 #define HU3D_MOTION_MAX 256 @@ -105,7 +104,7 @@ struct model_data { u16 unk_26; u16 unk_28[8]; s16 unk_38[8]; - uintptr_t unk_48; + u32 unk_48; u32 unk_4C; u32 attr; u32 motion_attr; @@ -141,8 +140,8 @@ struct model_data { }; // sizeof 0x124 typedef struct camera_data { float fov; - float nnear; - float ffar; + float near; + float far; float aspect; float aspect_dupe; Vec pos; @@ -284,9 +283,6 @@ void Hu3DLLightStaticSet(s16, s16, s32); s32 Hu3DModelLightInfoSet(s16, s16); s16 Hu3DLightSet(ModelData *, Mtx *, Mtx *, float); void lightSet(LightData *arg0, s16 arg1, Mtx *arg2, Mtx *arg3, float arg8); -#ifndef __MWERKS__ -void Hu3DReflectMapSet(AnimData* arg0); -#endif void Hu3DReflectNoSet(s16 arg0); void Hu3DFogSet(float, float, u8, u8, u8); void Hu3DFogClear(void); @@ -301,23 +297,23 @@ void Hu3DProjectionPosSet(s16, Vec *, Vec *, Vec *); void Hu3DProjectionTPLvlSet(s16, float); void Hu3DMipMapSet(char *, s16, s32, float); -SHARED_SYM extern ModelData Hu3DData[0x200]; -SHARED_SYM extern CameraData Hu3DCamera[0x10]; +extern ModelData Hu3DData[0x200]; +extern CameraData Hu3DCamera[0x10]; extern AnimData *reflectAnim[5]; -SHARED_SYM extern AnimData *hiliteAnim[4]; +extern AnimData *hiliteAnim[4]; extern ThreeDProjectionStruct Hu3DProjection[4]; -SHARED_SYM extern ShadowData Hu3DShadowData; -SHARED_SYM extern Mtx Hu3DCameraMtx; -SHARED_SYM extern Mtx Hu3DCameraMtxXPose; -SHARED_SYM extern LightData Hu3DGlobalLight[0x8]; +extern ShadowData Hu3DShadowData; +extern Mtx Hu3DCameraMtx; +extern Mtx Hu3DCameraMtxXPose; +extern LightData Hu3DGlobalLight[0x8]; extern s16 reflectMapNo; extern AnimData *toonAnim; -SHARED_SYM extern s16 Hu3DShadowCamBit; -SHARED_SYM extern s32 Hu3DShadowF; -SHARED_SYM extern s32 shadowModelDrawF; -SHARED_SYM extern s16 Hu3DCameraNo; +extern s16 Hu3DShadowCamBit; +extern s32 Hu3DShadowF; +extern s32 shadowModelDrawF; +extern s16 Hu3DCameraNo; extern s16 Hu3DCameraBit; extern s16 Hu3DPauseF; -SHARED_SYM extern GXColor BGColor; +extern GXColor BGColor; #endif diff --git a/include/game/hsfmotion.h b/include/game/hsfmotion.h index e1864032..f820bd7f 100644 --- a/include/game/hsfmotion.h +++ b/include/game/hsfmotion.h @@ -3,7 +3,6 @@ #include "dolphin.h" #include "game/hsfformat.h" -#include "version.h" #define Hu3DMotionCreateFile(data_id) (Hu3DMotionCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) @@ -11,9 +10,9 @@ typedef struct motion_data { - s16 attr; - s16 modelId; - HsfData *hsfData; + s16 unk_00; + s16 unk_02; + HsfData *unk_04; } MotionData; typedef struct { @@ -77,6 +76,6 @@ s16 Hu3DJointMotion(s16 arg0, void *arg1); void JointModel_Motion(s16 arg0, s16 arg1); void Hu3DMotionCalc(s16 arg0); -SHARED_SYM extern MotionData Hu3DMotion[256]; +extern MotionData Hu3DMotion[256]; #endif diff --git a/include/game/init.h b/include/game/init.h index 07834840..6eb51287 100644 --- a/include/game/init.h +++ b/include/game/init.h @@ -2,9 +2,8 @@ #define _GAME_INIT_H #include "dolphin.h" -#include "version.h" -SHARED_SYM extern GXRenderModeObj *RenderMode; +extern GXRenderModeObj *RenderMode; extern OSHeapHandle currentHeapHandle; extern void *DemoFrameBuffer1; @@ -12,7 +11,7 @@ extern void *DemoFrameBuffer2; extern void *DemoCurrentBuffer; extern u32 minimumVcount; extern float minimumVcountf; -SHARED_SYM extern u32 worstVcount; +extern u32 worstVcount; void HuSysInit(GXRenderModeObj *mode); void HuSysBeforeRender(); diff --git a/include/game/jmp.h b/include/game/jmp.h index f1f6a9eb..0aadbc43 100755 --- a/include/game/jmp.h +++ b/include/game/jmp.h @@ -16,4 +16,4 @@ typedef struct jump_buf { s32 gcsetjmp(jmp_buf *jump); s32 gclongjmp(jmp_buf *jump, s32 status); -#endif \ No newline at end of file +#endif diff --git a/include/game/mapspace.h b/include/game/mapspace.h index c9f1e51c..d4840451 100755 --- a/include/game/mapspace.h +++ b/include/game/mapspace.h @@ -16,11 +16,11 @@ void CharRotInv(Mtx arg0, Mtx arg1, Vec *arg2, omObjData *arg3); extern Mtx MapMT; extern Mtx MapMTR; -SHARED_SYM extern float AddX; -SHARED_SYM extern float AddZ; -SHARED_SYM extern s32 nMap; -SHARED_SYM extern s32 nChar; +extern float AddX; +extern float AddZ; +extern s32 nMap; +extern s32 nChar; extern s32 HitFaceCount; -SHARED_SYM extern omObjData *MapObject[16]; +extern omObjData *MapObject[16]; #endif diff --git a/include/game/memory.h b/include/game/memory.h index efc86334..95728bde 100644 --- a/include/game/memory.h +++ b/include/game/memory.h @@ -19,23 +19,23 @@ void *HuMemInit(void *ptr, s32 size); void HuMemDCFlushAll(); void HuMemDCFlush(HeapID heap); void *HuMemDirectMalloc(HeapID heap, s32 size); -void *HuMemDirectMallocNum(HeapID heap, s32 size, uintptr_t num); +void *HuMemDirectMallocNum(HeapID heap, s32 size, u32 num); void HuMemDirectFree(void *ptr); -void HuMemDirectFreeNum(HeapID heap, uintptr_t num); +void HuMemDirectFreeNum(HeapID heap, u32 num); s32 HuMemUsedMallocSizeGet(HeapID heap); s32 HuMemUsedMallocBlockGet(HeapID heap); u32 HuMemHeapSizeGet(HeapID heap); void *HuMemHeapPtrGet(HeapID heap); void *HuMemHeapInit(void *ptr, s32 size); -void *HuMemMemoryAlloc(void *heap_ptr, s32 size, uintptr_t retaddr); -void *HuMemMemoryAllocNum(void *heap_ptr, s32 size, uintptr_t num, uintptr_t retaddr); -void HuMemMemoryFree(void *ptr, uintptr_t retaddr); -void HuMemMemoryFreeNum(void *heap_ptr, uintptr_t num, uintptr_t retaddr); +void *HuMemMemoryAlloc(void *heap_ptr, s32 size, u32 retaddr); +void *HuMemMemoryAllocNum(void *heap_ptr, s32 size, u32 num, u32 retaddr); +void HuMemMemoryFree(void *ptr, u32 retaddr); +void HuMemMemoryFreeNum(void *heap_ptr, u32 num, u32 retaddr); s32 HuMemUsedMemorySizeGet(void *heap_ptr); s32 HuMemUsedMemoryBlockGet(void *heap_ptr); s32 HuMemMemorySizeGet(void *ptr); s32 HuMemMemoryAllocSizeGet(s32 size); void HuMemHeapDump(void *heap_ptr, s16 status); -#endif +#endif \ No newline at end of file diff --git a/include/game/minigame_seq.h b/include/game/minigame_seq.h index ee2c47c1..6f20a101 100644 --- a/include/game/minigame_seq.h +++ b/include/game/minigame_seq.h @@ -117,6 +117,6 @@ s32 MGSeqUpdateRecord(SeqWork *work); s32 MGSeqInitFlip(SeqWork *work, va_list params); s32 MGSeqUpdateFlip(SeqWork *work); -SHARED_SYM extern OverlayID mgSeqOvlPrev; +extern OverlayID mgSeqOvlPrev; #endif diff --git a/include/game/msm.h b/include/game/msm.h index 2916a32e..e5106677 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -165,7 +165,6 @@ s32 msmSysDelGroupAll(void); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupBase(s32 grpNum); s32 msmSysSetAux(s32 auxA, s32 auxB); -void msmSysRegularProc(void); s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); int msmSePlay(int seId, MSM_SEPARAM *param); @@ -186,7 +185,6 @@ int msmMusPlay(int musId, MSM_MUSPARAM *musParam); s32 msmMusStop(int musNo, s32 speed); void msmMusPauseAll(BOOL pause, s32 speed); s32 msmMusPause(int musNo, BOOL pause, s32 speed); -void msmMusFdoutEnd(void); s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusGetStatus(int musNo); diff --git a/include/game/object.h b/include/game/object.h index 8c022103..69f4cb6b 100644 --- a/include/game/object.h +++ b/include/game/object.h @@ -5,10 +5,6 @@ #include "game/process.h" #include "game/dvd.h" -#ifdef _WIN32 -#include -#endif - #define OM_DLL_MAX 20 #define OVL_DEFINE(name, path) name, @@ -64,14 +60,9 @@ typedef struct om_obj_data { typedef struct om_dll_data { char *name; -#if _WIN32 - HMODULE hModule; -#else OSModuleHeader *module; void *bss; s32 ret; -#endif - } omDllData; void omMasterInit(s32 prio, FileListEntry *ovl_list, s32 ovl_count, OverlayID start_ovl); @@ -121,26 +112,26 @@ void omSysPauseCtrl(s16 flag); extern omObjData *omDBGSysKeyObj; extern Process *omwatchproc; extern OverlayID omnextovl; -SHARED_SYM extern OverlayID omcurovl; +extern OverlayID omcurovl; extern s32 omcurdll; -SHARED_SYM extern s32 omovlhisidx; -SHARED_SYM extern s32 omovlevtno; +extern s32 omovlhisidx; +extern s32 omovlevtno; extern s32 omnextovlevtno; -SHARED_SYM extern u32 omovlstat; +extern u32 omovlstat; extern char omUPauseFlag; -SHARED_SYM extern s16 omSysExitReq; +extern s16 omSysExitReq; extern s16 omdispinfo; extern u8 omSysPauseEnableFlag; extern OverlayID omprevovl; extern omDllData *omDLLinfoTbl[OM_DLL_MAX]; -SHARED_SYM extern Vec CRot; -SHARED_SYM extern Vec Center; -SHARED_SYM extern float CZoom; -SHARED_SYM extern Vec CRotM[16]; -SHARED_SYM extern Vec CenterM[16]; -SHARED_SYM extern float CZoomM[16]; -SHARED_SYM extern s16 omDBGMenuButton; +extern Vec CRot; +extern Vec Center; +extern float CZoom; +extern Vec CRotM[16]; +extern Vec CenterM[16]; +extern float CZoomM[16]; +extern s16 omDBGMenuButton; #endif diff --git a/include/game/objsub.h b/include/game/objsub.h index 9f05b82a..d42531e5 100644 --- a/include/game/objsub.h +++ b/include/game/objsub.h @@ -4,7 +4,6 @@ #include "dolphin.h" #include "game/process.h" #include "game/gamework_data.h" -#include "version.h" typedef struct mg_info { u16 ovl; @@ -23,20 +22,20 @@ void omGameSysInit(Process *objman); void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on); -SHARED_SYM extern s16 mgTypeCurr; -SHARED_SYM extern s16 mgBattleStar[4]; -SHARED_SYM extern s16 mgBattleStarMax; -SHARED_SYM extern u8 lbl_801D3E94; -SHARED_SYM extern u32 mgRecordExtra; -SHARED_SYM extern s32 mgQuitExtraF; -SHARED_SYM extern s32 mgPracticeEnableF; -SHARED_SYM extern s32 mgInstExitEnableF; -SHARED_SYM extern u8 mgBoardHostEnableF; +extern s16 mgTypeCurr; +extern s16 mgBattleStar[4]; +extern s16 mgBattleStarMax; +extern u8 lbl_801D3E94; +extern u32 mgRecordExtra; +extern s32 mgQuitExtraF; +extern s32 mgPracticeEnableF; +extern s32 mgInstExitEnableF; +extern u8 mgBoardHostEnableF; -SHARED_SYM extern s16 mgTicTacToeGrid[3][3]; -SHARED_SYM extern u8 mgIndexList[256]; -SHARED_SYM extern GameStat mgGameStatBackup; +extern s16 mgTicTacToeGrid[3][3]; +extern u8 mgIndexList[256]; +extern GameStat mgGameStatBackup; -SHARED_SYM extern MgInfo mgInfoTbl[]; +extern MgInfo mgInfoTbl[]; #endif diff --git a/include/game/pad.h b/include/game/pad.h index 3c279ff4..2223f0b4 100644 --- a/include/game/pad.h +++ b/include/game/pad.h @@ -2,24 +2,23 @@ #define _GAME_PAD_H #include "dolphin.h" -#include "version.h" #define PAD_BUTTON_DIR (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_UP | PAD_BUTTON_DOWN) #define PAD_BUTTON_TRIGGER_L 0x4000 #define PAD_BUTTON_TRIGGER_R 0x2000 -SHARED_SYM extern u16 HuPadBtn[4]; -SHARED_SYM extern u16 HuPadBtnDown[4]; -SHARED_SYM extern u16 HuPadBtnRep[4]; -SHARED_SYM extern s8 HuPadStkX[4]; -SHARED_SYM extern s8 HuPadStkY[4]; -SHARED_SYM extern s8 HuPadSubStkX[4]; -SHARED_SYM extern s8 HuPadSubStkY[4]; -SHARED_SYM extern u8 HuPadTrigL[4]; -SHARED_SYM extern u8 HuPadTrigR[4]; -SHARED_SYM extern u8 HuPadDStk[4]; -SHARED_SYM extern u8 HuPadDStkRep[4]; +extern u16 HuPadBtn[4]; +extern u16 HuPadBtnDown[4]; +extern u16 HuPadBtnRep[4]; +extern s8 HuPadStkX[4]; +extern s8 HuPadStkY[4]; +extern s8 HuPadSubStkX[4]; +extern s8 HuPadSubStkY[4]; +extern u8 HuPadTrigL[4]; +extern u8 HuPadTrigR[4]; +extern u8 HuPadDStk[4]; +extern u8 HuPadDStkRep[4]; extern s8 HuPadErr[4]; extern u16 _PadBtn[4]; extern u16 _PadBtnDown[4]; @@ -33,4 +32,4 @@ void HuPadRumbleAllStop(void); s16 HuPadStatGet(s16 pad); u32 HuPadRumbleGet(void); -#endif +#endif \ No newline at end of file diff --git a/include/game/printfunc.h b/include/game/printfunc.h index b0906cdf..9587aa6a 100644 --- a/include/game/printfunc.h +++ b/include/game/printfunc.h @@ -2,7 +2,6 @@ #define _GAME_PRINTFUNC_H #include "dolphin.h" -#include "version.h" #define FONT_COLOR_BLACK 0 #define FONT_COLOR_DARK_BLUE 1 @@ -30,7 +29,7 @@ void pfDrawFonts(void); extern BOOL saftyFrameF; extern u16 strlinecnt; extern u16 empstrline; -SHARED_SYM extern int fontcolor; +extern int fontcolor; extern u32 procfunc; #endif \ No newline at end of file diff --git a/include/game/process.h b/include/game/process.h index cf4a3af6..3bd6a297 100644 --- a/include/game/process.h +++ b/include/game/process.h @@ -1,14 +1,8 @@ #ifndef _GAME_PROCESS_H #define _GAME_PROCESS_H -#include "dolphin/types.h" - -#ifdef TARGET_PC -#include -#include "libco.h" -#else #include "game/jmp.h" -#endif +#include "dolphin/types.h" #define PROCESS_STAT_PAUSE 0x1 #define PROCESS_STAT_UPAUSE 0x2 @@ -27,12 +21,8 @@ typedef struct process { u16 stat; u16 prio; s32 sleep_time; -#ifdef TARGET_PC - cothread_t thread; -#else - uintptr_t base_sp; + u32 base_sp; jmp_buf jump; -#endif void (*dtor)(void); void *user_data; } Process; @@ -60,4 +50,4 @@ void HuPrcResetStat(Process *process, u16 value); void HuPrcAllPause(s32 flag); void HuPrcAllUPause(s32 flag); -#endif +#endif \ No newline at end of file diff --git a/include/game/saveload.h b/include/game/saveload.h index 91478898..d17712a3 100644 --- a/include/game/saveload.h +++ b/include/game/saveload.h @@ -24,13 +24,13 @@ typedef union save_buf_all { u8 ATTRIBUTE_ALIGN(32) buf[SAVE_BUF_SIZE]; } SaveBufAll; -SHARED_SYM extern char *SaveFileNameTbl[]; -SHARED_SYM extern CARDFileInfo curFileInfo; -SHARED_SYM extern SaveBufAll saveBuf; +extern char *SaveFileNameTbl[]; +extern CARDFileInfo curFileInfo; +extern SaveBufAll saveBuf; extern u64 SLSerialNo; -SHARED_SYM extern s32 saveExecF; +extern s32 saveExecF; extern u8 curBoxNo; -SHARED_SYM extern s16 curSlotNo; +extern s16 curSlotNo; s32 SLFileOpen(char *fileName); s32 SLFileCreate(char *fileName, u32 size, void *addr); diff --git a/include/game/sprite.h b/include/game/sprite.h index 554b3252..5f503fcf 100644 --- a/include/game/sprite.h +++ b/include/game/sprite.h @@ -113,7 +113,7 @@ void HuSprGrpCenterSet(s16 group, float x, float y); void HuSprGrpZRotSet(s16 group, float z_rot); void HuSprGrpScaleSet(s16 group, float x, float y); void HuSprGrpTPLvlSet(s16 group, float tp_lvl); -#if !defined(HUSPR_USE_OLD_DEFS) || !defined(__MWERKS__) +#ifndef HUSPR_USE_OLD_DEFS void HuSprGrpDrawNoSet(s16 group, s32 draw_no); #endif void HuSprDrawNoSet(s16 group, s16 member, s32 draw_no); @@ -127,7 +127,7 @@ void AnimDebug(AnimData *anim); void HuSprDispInit(void); void HuSprDisp(HuSprite *sprite); -#if !defined(HUSPR_USE_OLD_DEFS) || !defined(__MWERKS__) +#ifndef HUSPR_USE_OLD_DEFS void HuSprTexLoad(AnimData *anim, s16 bmp, s16 slot, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXTexFilter filter); #endif void HuSprExecLayerSet(s16 draw_no, s16 layer); diff --git a/include/game/sreset.h b/include/game/sreset.h deleted file mode 100644 index caf8b15b..00000000 --- a/include/game/sreset.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _GAME_SRESET_H -#define _GAME_SRESET_H - -#include "dolphin.h" - -s32 HuSoftResetButtonCheck(void); -void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2); - -#endif diff --git a/include/game/window.h b/include/game/window.h index 05afd68d..a2ff8eb1 100644 --- a/include/game/window.h +++ b/include/game/window.h @@ -3,7 +3,6 @@ #include "game/animdata.h" #include "dolphin.h" -#include "version.h" #define MAKE_MESSID(bank, mess) (((bank) << 16)+(mess)) #define MAKE_MESSID_PTR(ptr) ((u32)(ptr)) @@ -76,8 +75,8 @@ typedef struct { /* 0x160 */ u8 ATTRIBUTE_ALIGN(32) mess_pal[10][3]; } WindowData; // Size 0x180 -SHARED_SYM extern WindowData winData[32]; -SHARED_SYM extern void *messDataPtr; +extern WindowData winData[32]; +extern void *messDataPtr; void HuWindowInit(void); void HuWinInit(s32 mess_data_no); @@ -140,4 +139,6 @@ void HuWinExCleanup(s16 window); void HuWinExAnimPopIn(s16 window, s16 portrait); void *MessData_MesPtrGet(void *data, u32 index); +extern void *messDataPtr; + #endif diff --git a/include/game/wipe.h b/include/game/wipe.h index 52f2f985..baafbe25 100644 --- a/include/game/wipe.h +++ b/include/game/wipe.h @@ -2,7 +2,6 @@ #define _GAME_WIPE_H #include "dolphin.h" -#include "version.h" #define WIPE_TYPE_PREV -1 #define WIPE_TYPE_NORMAL 0 @@ -38,7 +37,7 @@ void WipeCreate(s16 mode, s16 type, s16 duration); void WipeColorSet(u8 r, u8 g, u8 b); u8 WipeStatGet(void); -SHARED_SYM extern WipeState wipeData; +extern WipeState wipeData; extern BOOL wipeFadeInF; #endif diff --git a/libc/math.h b/include/math.h similarity index 98% rename from libc/math.h rename to include/math.h index 5722be26..5ac49892 100644 --- a/libc/math.h +++ b/include/math.h @@ -1,6 +1,8 @@ #ifndef _MATH_H #define _MATH_H +#define M_PI 3.141592653589793 + #ifndef _MATH_INLINE #define _MATH_INLINE static inline #endif diff --git a/include/ovl_table.h b/include/ovl_table.h index d391d305..fe695ea9 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -1,108 +1,108 @@ #include "version.h" -OVL_DEFINE(OVL__MINI, "_minigameDLL") -OVL_DEFINE(OVL_BOOT, "bootdll") -OVL_DEFINE(OVL_E3SETUP, "e3setupDLL") -OVL_DEFINE(OVL_INST, "instdll") -OVL_DEFINE(OVL_M300, "m300dll") -OVL_DEFINE(OVL_M302, "m302dll") -OVL_DEFINE(OVL_M303, "m303dll") -OVL_DEFINE(OVL_M330, "m330dll") -OVL_DEFINE(OVL_M333, "m333dll") -OVL_DEFINE(OVL_M401, "m401dll") -OVL_DEFINE(OVL_M402, "m402dll") -OVL_DEFINE(OVL_M403, "m403dll") -OVL_DEFINE(OVL_M404, "m404dll") -OVL_DEFINE(OVL_M405, "m405dll") -OVL_DEFINE(OVL_M406, "m406dll") -OVL_DEFINE(OVL_M407, "m407dll") -OVL_DEFINE(OVL_M408, "m408dll") -OVL_DEFINE(OVL_M409, "m409dll") -OVL_DEFINE(OVL_M410, "m410dll") -OVL_DEFINE(OVL_M411, "m411dll") -OVL_DEFINE(OVL_M412, "m412dll") -OVL_DEFINE(OVL_M413, "m413dll") -OVL_DEFINE(OVL_M414, "m414dll") -OVL_DEFINE(OVL_M415, "m415dll") -OVL_DEFINE(OVL_M416, "m416dll") -OVL_DEFINE(OVL_M417, "m417dll") -OVL_DEFINE(OVL_M418, "m418dll") -OVL_DEFINE(OVL_M419, "m419dll") -OVL_DEFINE(OVL_M420, "m420dll") -OVL_DEFINE(OVL_M421, "m421dll") -OVL_DEFINE(OVL_M422, "m422dll") -OVL_DEFINE(OVL_M423, "m423dll") -OVL_DEFINE(OVL_M424, "m424dll") -OVL_DEFINE(OVL_M425, "m425dll") -OVL_DEFINE(OVL_M426, "m426dll") -OVL_DEFINE(OVL_M427, "m427dll") -OVL_DEFINE(OVL_M428, "m428dll") -OVL_DEFINE(OVL_M429, "m429dll") -OVL_DEFINE(OVL_M430, "m430dll") -OVL_DEFINE(OVL_M431, "m431dll") -OVL_DEFINE(OVL_M432, "m432dll") -OVL_DEFINE(OVL_M433, "m433dll") -OVL_DEFINE(OVL_M434, "m434dll") -OVL_DEFINE(OVL_M435, "m435dll") -OVL_DEFINE(OVL_M436, "m436dll") -OVL_DEFINE(OVL_M437, "m437dll") -OVL_DEFINE(OVL_M438, "m438dll") -OVL_DEFINE(OVL_M439, "m439dll") -OVL_DEFINE(OVL_M440, "m440dll") -OVL_DEFINE(OVL_M441, "m441dll") -OVL_DEFINE(OVL_M442, "m442dll") -OVL_DEFINE(OVL_M443, "m443dll") -OVL_DEFINE(OVL_M444, "m444dll") -OVL_DEFINE(OVL_M445, "m445dll") -OVL_DEFINE(OVL_M446, "m446dll") -OVL_DEFINE(OVL_M447, "m447dll") -OVL_DEFINE(OVL_M448, "m448dll") -OVL_DEFINE(OVL_M449, "m449dll") -OVL_DEFINE(OVL_M450, "m450dll") -OVL_DEFINE(OVL_M451, "m451dll") -OVL_DEFINE(OVL_M453, "m453dll") -OVL_DEFINE(OVL_M455, "m455dll") -OVL_DEFINE(OVL_M456, "m456dll") -OVL_DEFINE(OVL_M457, "m457dll") -OVL_DEFINE(OVL_M458, "m458dll") -OVL_DEFINE(OVL_M459, "m459dll") -OVL_DEFINE(OVL_M460, "m460dll") -OVL_DEFINE(OVL_M461, "m461dll") -OVL_DEFINE(OVL_M462, "m462dll") -OVL_DEFINE(OVL_M463, "m463dll") -OVL_DEFINE(OVL_MENT, "mentdll") +OVL_DEFINE(OVL__MINI, "dll/_minigameDLL.rel") +OVL_DEFINE(OVL_BOOT, "dll/bootdll.rel") +OVL_DEFINE(OVL_E3SETUP, "dll/e3setupDLL.rel") +OVL_DEFINE(OVL_INST, "dll/instdll.rel") +OVL_DEFINE(OVL_M300, "dll/m300dll.rel") +OVL_DEFINE(OVL_M302, "dll/m302dll.rel") +OVL_DEFINE(OVL_M303, "dll/m303dll.rel") +OVL_DEFINE(OVL_M330, "dll/m330dll.rel") +OVL_DEFINE(OVL_M333, "dll/m333dll.rel") +OVL_DEFINE(OVL_M401, "dll/m401dll.rel") +OVL_DEFINE(OVL_M402, "dll/m402dll.rel") +OVL_DEFINE(OVL_M403, "dll/m403dll.rel") +OVL_DEFINE(OVL_M404, "dll/m404dll.rel") +OVL_DEFINE(OVL_M405, "dll/m405dll.rel") +OVL_DEFINE(OVL_M406, "dll/m406dll.rel") +OVL_DEFINE(OVL_M407, "dll/m407dll.rel") +OVL_DEFINE(OVL_M408, "dll/m408dll.rel") +OVL_DEFINE(OVL_M409, "dll/m409dll.rel") +OVL_DEFINE(OVL_M410, "dll/m410dll.rel") +OVL_DEFINE(OVL_M411, "dll/m411dll.rel") +OVL_DEFINE(OVL_M412, "dll/m412dll.rel") +OVL_DEFINE(OVL_M413, "dll/m413dll.rel") +OVL_DEFINE(OVL_M414, "dll/m414dll.rel") +OVL_DEFINE(OVL_M415, "dll/m415dll.rel") +OVL_DEFINE(OVL_M416, "dll/m416dll.rel") +OVL_DEFINE(OVL_M417, "dll/m417dll.rel") +OVL_DEFINE(OVL_M418, "dll/m418dll.rel") +OVL_DEFINE(OVL_M419, "dll/m419dll.rel") +OVL_DEFINE(OVL_M420, "dll/m420dll.rel") +OVL_DEFINE(OVL_M421, "dll/m421dll.rel") +OVL_DEFINE(OVL_M422, "dll/m422dll.rel") +OVL_DEFINE(OVL_M423, "dll/m423dll.rel") +OVL_DEFINE(OVL_M424, "dll/m424dll.rel") +OVL_DEFINE(OVL_M425, "dll/m425dll.rel") +OVL_DEFINE(OVL_M426, "dll/m426dll.rel") +OVL_DEFINE(OVL_M427, "dll/m427dll.rel") +OVL_DEFINE(OVL_M428, "dll/m428dll.rel") +OVL_DEFINE(OVL_M429, "dll/m429dll.rel") +OVL_DEFINE(OVL_M430, "dll/m430dll.rel") +OVL_DEFINE(OVL_M431, "dll/m431dll.rel") +OVL_DEFINE(OVL_M432, "dll/m432dll.rel") +OVL_DEFINE(OVL_M433, "dll/m433dll.rel") +OVL_DEFINE(OVL_M434, "dll/m434dll.rel") +OVL_DEFINE(OVL_M435, "dll/m435dll.rel") +OVL_DEFINE(OVL_M436, "dll/m436dll.rel") +OVL_DEFINE(OVL_M437, "dll/m437dll.rel") +OVL_DEFINE(OVL_M438, "dll/m438dll.rel") +OVL_DEFINE(OVL_M439, "dll/m439dll.rel") +OVL_DEFINE(OVL_M440, "dll/m440dll.rel") +OVL_DEFINE(OVL_M441, "dll/m441dll.rel") +OVL_DEFINE(OVL_M442, "dll/m442dll.rel") +OVL_DEFINE(OVL_M443, "dll/m443dll.rel") +OVL_DEFINE(OVL_M444, "dll/m444dll.rel") +OVL_DEFINE(OVL_M445, "dll/m445dll.rel") +OVL_DEFINE(OVL_M446, "dll/m446dll.rel") +OVL_DEFINE(OVL_M447, "dll/m447dll.rel") +OVL_DEFINE(OVL_M448, "dll/m448dll.rel") +OVL_DEFINE(OVL_M449, "dll/m449dll.rel") +OVL_DEFINE(OVL_M450, "dll/m450dll.rel") +OVL_DEFINE(OVL_M451, "dll/m451dll.rel") +OVL_DEFINE(OVL_M453, "dll/m453dll.rel") +OVL_DEFINE(OVL_M455, "dll/m455dll.rel") +OVL_DEFINE(OVL_M456, "dll/m456dll.rel") +OVL_DEFINE(OVL_M457, "dll/m457dll.rel") +OVL_DEFINE(OVL_M458, "dll/m458dll.rel") +OVL_DEFINE(OVL_M459, "dll/m459dll.rel") +OVL_DEFINE(OVL_M460, "dll/m460dll.rel") +OVL_DEFINE(OVL_M461, "dll/m461dll.rel") +OVL_DEFINE(OVL_M462, "dll/m462dll.rel") +OVL_DEFINE(OVL_M463, "dll/m463dll.rel") +OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") #if VERSION_JP -OVL_DEFINE(OVL_MGMODE, "mgmodedll") -OVL_DEFINE(OVL_MODELTEST, "modeltestdll") -OVL_DEFINE(OVL_MODESEL, "modeseldll") -OVL_DEFINE(OVL_MOVIE, "moviedll") +OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") +OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") +OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") +OVL_DEFINE(OVL_MOVIE, "dll/moviedll.rel") #else -OVL_DEFINE(OVL_MESS, "messdll") -OVL_DEFINE(OVL_MGMODE, "mgmodedll") -OVL_DEFINE(OVL_MODELTEST, "modeltestdll") -OVL_DEFINE(OVL_MODESEL, "modeseldll") +OVL_DEFINE(OVL_MESS, "dll/messdll.rel") +OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") +OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") +OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") #endif -OVL_DEFINE(OVL_MPEX, "mpexdll") -OVL_DEFINE(OVL_MSETUP, "msetupdll") -OVL_DEFINE(OVL_MSTORY2, "mstory2dll") -OVL_DEFINE(OVL_MSTORY3, "mstory3dll") -OVL_DEFINE(OVL_MSTORY4, "mstory4dll") -OVL_DEFINE(OVL_MSTORY, "mstorydll") -OVL_DEFINE(OVL_NIS, "nisdll") -OVL_DEFINE(OVL_OPTION, "option") -OVL_DEFINE(OVL_PRESENT, "present") -OVL_DEFINE(OVL_RESULT, "resultdll") -OVL_DEFINE(OVL_SAF, "safdll") -OVL_DEFINE(OVL_SELMENU, "selmenuDLL") -OVL_DEFINE(OVL_STAFF, "staffdll") -OVL_DEFINE(OVL_SUBCHRSEL, "subchrseldll") -OVL_DEFINE(OVL_W01, "w01dll") -OVL_DEFINE(OVL_W02, "w02dll") -OVL_DEFINE(OVL_W03, "w03dll") -OVL_DEFINE(OVL_W04, "w04dll") -OVL_DEFINE(OVL_W05, "w05dll") -OVL_DEFINE(OVL_W06, "w06dll") -OVL_DEFINE(OVL_W10, "w10dll") -OVL_DEFINE(OVL_W20, "w20dll") -OVL_DEFINE(OVL_W21, "w21dll") -OVL_DEFINE(OVL_ZTAR, "ztardll") +OVL_DEFINE(OVL_MPEX, "dll/mpexdll.rel") +OVL_DEFINE(OVL_MSETUP, "dll/msetupdll.rel") +OVL_DEFINE(OVL_MSTORY2, "dll/mstory2dll.rel") +OVL_DEFINE(OVL_MSTORY3, "dll/mstory3dll.rel") +OVL_DEFINE(OVL_MSTORY4, "dll/mstory4dll.rel") +OVL_DEFINE(OVL_MSTORY, "dll/mstorydll.rel") +OVL_DEFINE(OVL_NIS, "dll/nisdll.rel") +OVL_DEFINE(OVL_OPTION, "dll/option.rel") +OVL_DEFINE(OVL_PRESENT, "dll/present.rel") +OVL_DEFINE(OVL_RESULT, "dll/resultdll.rel") +OVL_DEFINE(OVL_SAF, "dll/safdll.rel") +OVL_DEFINE(OVL_SELMENU, "dll/selmenuDLL.rel") +OVL_DEFINE(OVL_STAFF, "dll/staffdll.rel") +OVL_DEFINE(OVL_SUBCHRSEL, "dll/subchrseldll.rel") +OVL_DEFINE(OVL_W01, "dll/w01dll.rel") +OVL_DEFINE(OVL_W02, "dll/w02dll.rel") +OVL_DEFINE(OVL_W03, "dll/w03dll.rel") +OVL_DEFINE(OVL_W04, "dll/w04dll.rel") +OVL_DEFINE(OVL_W05, "dll/w05dll.rel") +OVL_DEFINE(OVL_W06, "dll/w06dll.rel") +OVL_DEFINE(OVL_W10, "dll/w10dll.rel") +OVL_DEFINE(OVL_W20, "dll/w20dll.rel") +OVL_DEFINE(OVL_W21, "dll/w21dll.rel") +OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") diff --git a/include/port/byteswap.h b/include/port/byteswap.h deleted file mode 100644 index bbdec9a1..00000000 --- a/include/port/byteswap.h +++ /dev/null @@ -1,352 +0,0 @@ -#ifndef _SRC_BYTESWAP_H_ -#define _SRC_BYTESWAP_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "game/animdata.h" -#include "game/hsfformat.h" - -typedef struct AnimData32b { - s16 bankNum; - s16 patNum; - s16 bmpNum; - s16 useNum; - - u32 bank; - u32 pat; - u32 bmp; -} AnimData32b; - -typedef struct AnimBankData32b { - s16 timeNum; - s16 unk; - u32 frame; -} AnimBankData32b; - -typedef struct AnimPatData32b { - s16 layerNum; - s16 centerX; - s16 centerY; - s16 sizeX; - s16 sizeY; - u32 layer; -} AnimPatData32b; - -typedef struct AnimBmpData32b { - u8 pixSize; - u8 dataFmt; - s16 palNum; - s16 sizeX; - s16 sizeY; - u32 dataSize; - u32 palData; - u32 data; -} AnimBmpData32b; - -typedef struct HsfCluster32b { - u32 name[2]; - u32 targetName; - u32 part; - float index; - float weight[32]; - u8 adjusted; - u8 unk95; - u16 type; - u32 vertexCnt; - u32 vertex; -} HsfCluster32b; - -typedef struct HsfAttribute32b { - u32 name; - u32 unk04; - u8 unk8[4]; - float unk0C; - u8 unk10[4]; - float unk14; - u8 unk18[8]; - float unk20; - u8 unk24[4]; - float unk28; - float unk2C; - float unk30; - float unk34; - u8 unk38[44]; - u32 wrap_s; - u32 wrap_t; - u8 unk6C[12]; - u32 unk78; - u32 flag; - u32 bitmap; -} HsfAttribute32b; - -typedef struct HsfMaterial32b { - u32 name; - u8 unk4[4]; - u16 pass; - u8 vtxMode; - u8 litColor[3]; - u8 color[3]; - u8 shadowColor[3]; - float hilite_scale; - float unk18; - float invAlpha; - float unk20[2]; - float refAlpha; - float unk2C; - u32 flags; - u32 numAttrs; - u32 attrs; -} HsfMaterial32b; - -typedef struct HsfMapAttr32b { - float minX; - float minZ; - float maxX; - float maxZ; - u32 data; - u32 dataLen; -} HsfMapAttr32b; - -typedef struct HsfBuffer32b { - u32 name; - s32 count; - u32 data; -} HsfBuffer32b; - -typedef struct HsfPalette32b { - u32 name; - s32 unk; - u32 palSize; - u32 data; -} HsfPalette32b; - -typedef struct HsfBitmap32b { - u32 name; - u32 maxLod; - u8 dataFmt; - u8 pixSize; - s16 sizeX; - s16 sizeY; - s16 palSize; - GXColor tint; - u32 palData; - u32 unk; - u32 data; -} HsfBitmap32b; - -typedef struct HsfPart32b { - u32 name; - u32 count; - u32 vertex; -} HsfPart32b; - -typedef struct HsfSkeleton32b { - u32 name; - HsfTransform transform; -} HsfSkeleton32b; - -typedef struct HsfShape32b { - u32 name; - union { - u16 count16[2]; - u32 vertexCnt; - }; - u32 vertex; -} HsfShape32b; - -typedef struct HsfCenvDual32b { - u32 target1; - u32 target2; - u32 weightCnt; - u32 weight; -} HsfCenvDual32b; - -typedef struct HsfCenvMulti32b { - u32 weightCnt; - u16 pos; - u16 posCnt; - u16 normal; - u16 normalCnt; - u32 weight; -} HsfCenvMulti32b; - -typedef struct HsfCenv32b { - u32 name; - u32 singleData; - u32 dualData; - u32 multiData; - u32 singleCount; - u32 dualCount; - u32 multiCount; - u32 vtxCount; - u32 copyCount; -} HsfCenv32b; - -typedef struct HsfObjectData32b { - u32 parent; - u32 childrenCount; - u32 children; - HsfTransform base; - HsfTransform curr; - union { - struct { - HsfVector3f min; - HsfVector3f max; - float baseMorph; - float morphWeight[33]; - } mesh; - u32 replica; - }; - - u32 face; - u32 vertex; - u32 normal; - u32 color; - u32 st; - u32 material; - u32 attribute; - u8 unk120[2]; - u8 shapeType; - u8 unk123; - u32 vertexShapeCnt; - u32 vertexShape; - u32 clusterCnt; - u32 cluster; - u32 cenvCnt; - u32 cenv; - u32 vtxtop; - u32 normtop; -} HsfObjectData32b; - -typedef struct HsfObject32b { - u32 name; - u32 type; - u32 constData; - u32 flags; - HsfObjectData32b data; -} HsfObject32b; - -typedef struct HsfTrack32b { - u8 type; - u8 start; - union { - u16 target; - s16 target_s16; - }; - union { - s32 unk04; - struct { - union { - s16 param; - u16 param_u16; - }; - union { - u16 channel; - s16 channel_s16; - }; - }; - }; - u16 curveType; - u16 numKeyframes; - union { - float value; - u32 data; - }; -} HsfTrack32b; - -typedef struct HsfMotion32b { - u32 name; - s32 numTracks; - u32 track; - float len; -} HsfMotion32b; - -typedef struct HsfBitmapKey32b { - float time; - u32 data; -} HsfBitmapKey32b; - -typedef struct HsfFace32b { - s16 type; - s16 mat; - union { - struct { - s16 indices[3][4]; - u32 count; - u32 data; - } strip; - s16 indices[4][4]; - }; - Vec nbt; -} HsfFace32b; - -typedef struct HsfMatrix32b { - u32 base_idx; - u32 count; - u32 data; -} HsfMatrix32b; - -void byteswap_u16(u16 *src); -void byteswap_s16(s16 *src); -void byteswap_u32(u32 *src); -void byteswap_s32(s32 *src); -void byteswap_hsfvec3f(HsfVector3f *src); -void byteswap_hsfvec2f(HsfVector2f *src); - -void byteswap_animdata(void *src, AnimData *dest); -void byteswap_animbankdata(AnimBankData32b *src, AnimBankData *dest); -void byteswap_animpatdata(AnimPatData32b *src, AnimPatData *dest); -void byteswap_animbmpdata(AnimBmpData32b *src, AnimBmpData *dest); -void byteswap_animframedata(AnimFrameData *src); -void byteswap_animlayerdata(AnimLayerData *src); - -void byteswap_hsfheader(HsfHeader *src); -void byteswap_hsfcluster(HsfCluster32b *src, HsfCluster *dest); -void byteswap_hsfattribute(HsfAttribute32b *src, HsfAttribute *dest); -void byteswap_hsfmaterial(HsfMaterial32b *src, HsfMaterial *dest); -void byteswap_hsfscene(HsfScene *src); -void byteswap_hsfbuffer(HsfBuffer32b *src, HsfBuffer *dest); -void byteswap_hsfmatrix(HsfMatrix32b *src, HsfMatrix *dest); -void byteswap_hsfpalette(HsfPalette32b *src, HsfPalette *dest); -void byteswap_hsfpart(HsfPart32b *src, HsfPart *dest); -void byteswap_hsfbitmap(HsfBitmap32b *src, HsfBitmap *dest); -void byteswap_hsfmapattr(HsfMapAttr32b *src, HsfMapAttr *dest); -void byteswap_hsfskeleton(HsfSkeleton32b *src, HsfSkeleton *dest); -void byteswap_hsfshape(HsfShape32b *src, HsfShape *dest); -void byteswap_hsfcenv_single(HsfCenvSingle *src); -void byteswap_hsfcenv(HsfCenv32b *src, HsfCenv *dest); -void byteswap_hsfobject(HsfObject32b *src, HsfObject *dest); -void byteswap_hsfbitmapkey(HsfBitmapKey32b *src, HsfBitmapKey *dest); -void byteswap_hsftrack(HsfTrack32b *src, HsfTrack *dest); -void byteswap_hsfmotion(HsfMotion32b *src, HsfMotion *dest); -void byteswap_hsfface(HsfFace32b *src, HsfFace *dest); -void byteswap_hsfcluster(HsfCluster32b *src, HsfCluster *dest); -void byteswap_hsfattribute(HsfAttribute32b *src, HsfAttribute *dest); -void byteswap_hsfmaterial(HsfMaterial32b *src, HsfMaterial *dest); -void byteswap_hsfscene(HsfScene *src); -void byteswap_hsfbuffer(HsfBuffer32b *src, HsfBuffer *dest); -void byteswap_hsfpalette(HsfPalette32b *src, HsfPalette *dest); -void byteswap_hsfpart(HsfPart32b *src, HsfPart *dest); -void byteswap_hsfbitmap(HsfBitmap32b *src, HsfBitmap *dest); -void byteswap_hsfmapattr(HsfMapAttr32b *src, HsfMapAttr *dest); -void byteswap_hsfskeleton(HsfSkeleton32b *src, HsfSkeleton *dest); -void byteswap_hsfshape(HsfShape32b *src, HsfShape *dest); -void byteswap_hsfcenv_single(HsfCenvSingle *src); -void byteswap_hsfcenv_dual_weight(HsfCenvDualWeight *src); -void byteswap_hsfcenv_dual(HsfCenvDual32b *src, HsfCenvDual *dest); -void byteswap_hsfcenv_multi_weight(HsfCenvMultiWeight *src); -void byteswap_hsfcenv_multi(HsfCenvMulti32b *src, HsfCenvMulti *dest); -void byteswap_hsfcenv(HsfCenv32b *src, HsfCenv *dest); -void byteswap_hsfobject(HsfObject32b *src, HsfObject *dest); -void byteswap_hsfbitmapkey(HsfBitmapKey32b *src, HsfBitmapKey *dest); -void byteswap_hsftrack(HsfTrack32b *src, HsfTrack *dest); -void byteswap_hsfmotion(HsfMotion32b *src, HsfMotion *dest); -void byteswap_hsfface(HsfFace32b *src, HsfFace *dest); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/port/imgui.h b/include/port/imgui.h deleted file mode 100644 index 5c761fb0..00000000 --- a/include/port/imgui.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _SRC_IMGUI_H_ -#define _SRC_IMGUI_H_ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - - void imgui_main(const AuroraInfo* info); - void frame_limiter(); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libc/stdarg.h b/include/stdarg.h similarity index 100% rename from libc/stdarg.h rename to include/stdarg.h diff --git a/libc/stddef.h b/include/stddef.h similarity index 100% rename from libc/stddef.h rename to include/stddef.h diff --git a/libc/stdint.h b/include/stdint.h similarity index 100% rename from libc/stdint.h rename to include/stdint.h diff --git a/libc/stdio.h b/include/stdio.h similarity index 100% rename from libc/stdio.h rename to include/stdio.h diff --git a/libc/stdlib.h b/include/stdlib.h similarity index 100% rename from libc/stdlib.h rename to include/stdlib.h diff --git a/libc/string.h b/include/string.h similarity index 100% rename from libc/string.h rename to include/string.h diff --git a/include/types.h b/include/types.h index 462b4f66..349256d9 100644 --- a/include/types.h +++ b/include/types.h @@ -1,6 +1,8 @@ #ifndef _TYPES_H_ #define _TYPES_H_ +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + #include "dolphin/types.h" #endif diff --git a/include/version.h b/include/version.h index 8a25ab40..209a7d53 100644 --- a/include/version.h +++ b/include/version.h @@ -21,15 +21,4 @@ #define REFRESH_RATE 60 #endif -#if _WIN32 -#ifdef TARGET_DOL -#define SHARED_SYM __declspec(dllexport) -#else -#define SHARED_SYM __declspec(dllimport) -#endif - -#else - #define SHARED_SYM -#endif - #endif diff --git a/rel.map b/rel.map deleted file mode 100644 index 1cdba41f..00000000 --- a/rel.map +++ /dev/null @@ -1,6 +0,0 @@ -{ - global: - ObjectSetup; - local: - *; -}; diff --git a/src/REL/E3setupDLL/main.c b/src/REL/E3setupDLL/main.c index 8ad28587..a080e2de 100644 --- a/src/REL/E3setupDLL/main.c +++ b/src/REL/E3setupDLL/main.c @@ -14,10 +14,6 @@ #include "REL/E3SetupDLL.h" -#ifndef __MWERKS__ -void HuSysVWaitSet(s16 vcount); -#endif - static struct { s16 playerCnt; s16 rumble; @@ -304,7 +300,7 @@ float MotionMaxTimeGet(s16 arg0) HsfMotion *temp_r30; s16 temp_r29; - temp_r30 = temp_r31->hsfData->motion; + temp_r30 = temp_r31->unk_04->motion; temp_r29 = temp_r30->len; return temp_r29; } diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index 9cedbc78..3c8bb026 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -1,7 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" -#include "game/frand.h" -#include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/init.h" @@ -12,10 +9,6 @@ #include "REL/E3SetupDLL.h" -#ifndef __MWERKS__ -void HuSysVWaitSet(s16 vcount); -#endif - static s16 mgDefault; static omObjData *mgInterfaceObj; static omObjData *mgSelectObj; diff --git a/src/REL/board_executor.c b/src/REL/board_executor.c index ba3950a2..3d838c77 100644 --- a/src/REL/board_executor.c +++ b/src/REL/board_executor.c @@ -1,17 +1,10 @@ #include "REL/board_executor.h" #include "math.h" -#ifdef TARGET_PC -void ObjectSetup(void) { - BoardObjectSetup(BoardCreate, BoardDestroy); -} -#else static void ObjectSetup(void) { BoardObjectSetup(BoardCreate, BoardDestroy); } -#endif -#ifdef __MWERKS__ s32 _prolog(void) { const VoidFunc* ctors = _ctors; while (*ctors != 0) { @@ -28,5 +21,4 @@ void _epilog(void) { (**dtors)(); dtors++; } -} -#endif +} \ No newline at end of file diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index 3850bc7d..ee8b1b04 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -16,7 +16,6 @@ #include "game/wipe.h" #include "math.h" -#include "port/byteswap.h" #include "data_num/title.h" @@ -24,7 +23,7 @@ #define HU_PAD_BTNDOWN_ALL (HuPadBtnDown[0] | HuPadBtnDown[1] | HuPadBtnDown[2] | HuPadBtnDown[3]) #define HU_PAD_DSTK_ALL (HuPadDStkRep[0] | HuPadDStkRep[1] | HuPadDStkRep[2] | HuPadDStkRep[3]) -SHARED_SYM extern int SystemInitF; +extern int SystemInitF; static omObjData *debugOutView; Process *objman; @@ -83,734 +82,706 @@ void ObjectSetup(void) #endif } - #if VERSION_PAL - s32 LanguageBootGet(void); - BOOL LanguageMenuExec(void); - #endif - - void BootExec(void) - { - AnimData *data; - s16 group; - s16 sprite_nintendo; - s16 sprite_hudson; - s16 i; - OSTick tick_prev; - Process *curr = HuPrcCurrentGet(); - #if VERSION_NTSC - if (omovlevtno == 0) { - BootProgExec(); - } - #else - if(SystemInitF == FALSE) { - GwLanguage = LanguageBootGet(); - if(GwLanguage == -1) { - if(LanguageMenuExec()) { - SystemInitF = TRUE; - } - } else { - GWLanguageSet(GwLanguage); - } - } - #endif - group = HuSprGrpCreate(2); - data = HuSprAnimRead(NintendoDataDecode()); - sprite_nintendo = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite_nintendo); - HuSprPosSet(group, 0, 288, 240); - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - if (omovlevtno != 0) { - HuAudSndGrpSetSet(0); - 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); - HuWinInit(1); - BootTitleCreate(); - SystemInitF = 1; - } - else { - s16 group_thp; - BOOL skip_wait; - float win_size[2]; - s16 sprite_thp; - for (i = 0; i < 4; 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: - HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - WipeColorSet(255, 255, 255); - if (!SystemInitF) { - tick_prev = OSGetTick(); - CharManInit(); - HuWindowInit(); - MGSeqInit(); - HuWinInit(1); - BootTitleCreate(); - 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); - while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { - HuPrcVSleep(); - } - } - else { - for (i = 0; i < 180; i++) { - #if VERSION_NTSC - if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { - break; - } - #else - if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { - break; - } - #endif - HuPrcVSleep(); - } - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(group, 1, HUSPR_ATTR_DISPOFF); - HuPrcSleep(60); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - if (!SystemInitF) { -#ifdef __MWERKS__ - // TODO PC - void *group_samp; -#endif - tick_prev = OSGetTick(); -#ifdef __MWERKS__ - // TODO PC - group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); - msmSysLoadGroup(0, group_samp, 0); - HuMemDirectFree(group_samp); -#endif - while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { - HuPrcVSleep(); - } - } - else { - for (i = 0; i < 180; i++) { - #if VERSION_NTSC - if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { - break; - } - #else - if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { - break; - } - #endif - HuPrcVSleep(); - } - } - #if VERSION_PAL - initLanguageF = TRUE; - #endif - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - tick_prev = OSGetTick(); - if (!SystemInitF) { - HuAudSndGrpSetSet(0); - SystemInitF = 1; - } - while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 1000) { - HuPrcVSleep(); - } - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - group_thp = HuSprGrpCreate(1); -#ifdef __MWERKS__ - // TODO PC - sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122); - HuSprGrpMemberSet(group_thp, 0, sprite_thp); - HuSprPosSet(group_thp, 0, 288, 240); - HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); - demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); - HuWinMesSpeedSet(demoWinId, 0); - HuWinBGTPLvlSet(demoWinId, 0); - HuWinPriSet(demoWinId, 10); - HuWinAttrSet(demoWinId, 0x800); -#endif - HuPrcSleep(5); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while (WipeStatGet()) { - HuPrcVSleep(); - } - skip_wait = FALSE; - while (!HuTHPEndCheck()) { - UpdateDemoMess(); - if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { - skip_wait = TRUE; - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - HuWinKill(demoWinId); - HuTHPClose(); - HuPrcVSleep(); - HuSprGrpKill(group_thp); - if (!skip_wait) { - HuPrcSleep(60); - } - skip_wait = FALSE; - } - if (!BootTitleExec()) { - HuPrcSleep(60); - goto repeat; - } - WipeColorSet(255, 255, 255); - HuAudSStreamAllFadeOut(500); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - HuPrcVSleep(); - if (omSysExitReq) { - omOvlReturnEx(1, 1); - } - else { - omOvlCallEx(OVL_MODESEL, 1, 0, 0); - } - for (i = 0; i < 4; i++) { - GWPlayerCfg[i].character = -1; - } - HuPrcEnd(); - do { - HuPrcVSleep(); - } while (1); - } - - static s16 demoMessTimeTbl[] = { - 1686, - 1785, - 1850, - 1936, - 1993, - 2097, - 2135, - 2245, - 2258, - 2320, - -1, - -1, - }; - - static void UpdateDemoMess(void) - { - int frame = HuTHPFrameGet(); - int i; - for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) { - if (frame == demoMessTimeTbl[i * 2]) { - HuWinMesSet(demoWinId, MAKE_MESSID(54, i)); - } - if (frame == demoMessTimeTbl[(i * 2) + 1]) { - HuWinHomeClear(demoWinId); - } - } - } - - #if VERSION_NTSC - - static u16 progPosTbl[] = { 236, 313, 353, 313 }; - - void BootProgExec(void) - { - s16 i; - s16 option; - s16 group; - s16 sprite; - AnimData *data; -#ifdef TARGET_PC - return; -#else - option = 0; - if (OSGetResetCode() != OS_RESET_RESTART) { - return; - } - if (VIGetDTVStatus() != VI_NON_INTERLACE) { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); - return; - } - if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) { - return; - } - if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) { - VIConfigure(&GXNtsc480IntDf); - VIFlush(); - } -#endif - group = HuSprGrpCreate(3); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); - HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - for (i = 0; i < 600; i++) { - if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { - option ^= 1; - HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); - i = 0; - } - if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); - HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - while (WipeStatGet()) { - HuPrcVSleep(); - } -#ifdef __MWERKS__ - if (!option) { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON); - VIConfigure(&GXNtsc480Prog); - VIFlush(); - HuPrcSleep(100); - } - else { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); - } -#endif - HuSprGrpKill(group); - group = HuSprGrpCreate(1); - if (!option) { - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM); - } - else { - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM); - } - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while (WipeStatGet()) { - HuPrcVSleep(); - } - HuPrcSleep(60); - for (i = 0; i < 180; i++) { - if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - HuSprGrpKill(group); - HuPrcSleep(30); - } - - #endif - - static u16 debugCamTbl[] = { 1, 2 }; - - void DebugCamOutView(omObjData *obj) - { - s16 i; - for (i = 0; i < 1; i++) { - Vec pos, target, up; - float x, y, z; - - x = debugCamRot[i].x; - y = debugCamRot[i].y; - z = debugCamRot[i].z; - - pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x); - pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y; - pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z; - target.x = debugCamPos[i].x; - target.y = debugCamPos[i].y; - target.z = debugCamPos[i].z; - up.x = sind(y) * sind(x); - up.y = cosd(x); - up.z = cosd(y) * sind(x); - Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } - } - - #ifdef __MWERKS__ - void DebugCamUpdate(omObjData *obj) - { - Vec pos; - Vec offset; - Vec dir; - Vec y_offset; - - f32 z_rot; - s8 stick_pos; - - #if VERSION_NTSC - if ((HuPadBtnDown[0] & 0x800)) { - debugCamOnF = (debugCamOnF) ? 0 : 1; - } - #endif - if (debugCamOnF != 0) { - debugCamRot[0].y += 0.1f * HuPadStkX[0]; - debugCamRot[0].x += 0.1f * HuPadStkY[0]; - debugCamZoom[0] += HuPadTrigL[0] / 2; - debugCamZoom[0] -= HuPadTrigR[0] / 2; - if (debugCamZoom[0] < 100.0f) { - debugCamZoom[0] = 100.0f; - } - pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x))); - pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x))); - pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x)))); - offset.x = debugCamPos[0].x - pos.x; - offset.y = debugCamPos[0].y - pos.y; - offset.z = debugCamPos[0].z - pos.z; - dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x)); - dir.y = cosd(debugCamRot[0].x); - dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x)); - z_rot = debugCamRot[0].z; - 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.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); - - VECCrossProduct(&dir, &offset, &offset); - VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - debugCamPos[0].x += 0.05f * (offset.x * stick_pos); - debugCamPos[0].y += 0.05f * (offset.y * stick_pos); - debugCamPos[0].z += 0.05f * (offset.z * stick_pos); - } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - debugCamPos[0].x += 0.05f * (offset.x * stick_pos); - debugCamPos[0].y += 0.05f * (offset.y * stick_pos); - debugCamPos[0].z += 0.05f * (offset.z * stick_pos); - } - } - } +#if VERSION_PAL +s32 LanguageBootGet(void); +BOOL LanguageMenuExec(void); #endif - void BootTitleCreate(void) - { - s16 model; - s16 sprite; - AnimData *sprite_data; - s16 i; - titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - Hu3DModelCameraInfoSet(model, 1); - Hu3DModelLightInfoSet(model, 1); - #if VERSION_NTSC - bootGrpId = HuSprGrpCreate(4); - #else - bootGrpId = HuSprGrpCreate(13); - #endif - sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); - sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(bootGrpId, 0, sprite); - HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); - HuSprDrawNoSet(bootGrpId, 0, 127); - HuSprPosSet(bootGrpId, 0, 288, 240); - sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); - sprite = HuSprCreate(sprite_data, 1, 0); - HuSprGrpMemberSet(bootGrpId, 1, sprite); - HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(bootGrpId, 1, 288, 420); +void BootExec(void) +{ + AnimData *data; + s16 group; + s16 sprite_nintendo; + s16 sprite_hudson; + s16 i; + OSTick tick_prev; + Process *curr = HuPrcCurrentGet(); #if VERSION_NTSC - sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); - sprite = HuSprCreate(sprite_data, 2, 0); - HuSprGrpMemberSet(bootGrpId, 2, sprite); - HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - HuSprPosSet(bootGrpId, 2, 288, 380); - sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); - sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(bootGrpId, 3, sprite); - HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - 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++) { + if (omovlevtno == 0) { + BootProgExec(); + } + #else + if(SystemInitF == FALSE) { + GwLanguage = LanguageBootGet(); + if(GwLanguage == -1) { + if(LanguageMenuExec()) { + SystemInitF = TRUE; + } + } else { + GWLanguageSet(GwLanguage); + } + } + #endif + group = HuSprGrpCreate(2); + data = HuSprAnimRead(NintendoDataDecode()); + sprite_nintendo = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite_nintendo); + HuSprPosSet(group, 0, 288, 240); + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + if (omovlevtno != 0) { + HuAudSndGrpSetSet(0); + 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); + HuWinInit(1); + BootTitleCreate(); + SystemInitF = 1; + } + else { + s16 group_thp; + BOOL skip_wait; + float win_size[2]; + s16 sprite_thp; + for (i = 0; i < 4; 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: + HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + WipeColorSet(255, 255, 255); + if (!SystemInitF) { + tick_prev = OSGetTick(); + CharManInit(); + HuWindowInit(); + MGSeqInit(); + HuWinInit(1); + BootTitleCreate(); + 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); + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { + HuPrcVSleep(); + } + } + else { + for (i = 0; i < 180; i++) { + #if VERSION_NTSC + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + break; + } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif + HuPrcVSleep(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(group, 1, HUSPR_ATTR_DISPOFF); + HuPrcSleep(60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if (!SystemInitF) { + void *group_samp; + tick_prev = OSGetTick(); + group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); + msmSysLoadGroup(0, group_samp, 0); + HuMemDirectFree(group_samp); + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { + HuPrcVSleep(); + } + } + else { + for (i = 0; i < 180; i++) { + #if VERSION_NTSC + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + break; + } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif + HuPrcVSleep(); + } + } + #if VERSION_PAL + initLanguageF = TRUE; + #endif + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + tick_prev = OSGetTick(); + if (!SystemInitF) { + HuAudSndGrpSetSet(0); + SystemInitF = 1; + } + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 1000) { + HuPrcVSleep(); + } + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + group_thp = HuSprGrpCreate(1); + sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122); + HuSprGrpMemberSet(group_thp, 0, sprite_thp); + HuSprPosSet(group_thp, 0, 288, 240); + HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); + demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); + HuWinMesSpeedSet(demoWinId, 0); + HuWinBGTPLvlSet(demoWinId, 0); + HuWinPriSet(demoWinId, 10); + HuWinAttrSet(demoWinId, 0x800); + HuPrcSleep(5); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + skip_wait = FALSE; + while (!HuTHPEndCheck()) { + UpdateDemoMess(); + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + skip_wait = TRUE; + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuWinKill(demoWinId); + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(group_thp); + if (!skip_wait) { + HuPrcSleep(60); + } + skip_wait = FALSE; + } + if (!BootTitleExec()) { + HuPrcSleep(60); + goto repeat; + } + WipeColorSet(255, 255, 255); + HuAudSStreamAllFadeOut(500); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuPrcVSleep(); + if (omSysExitReq) { + omOvlReturnEx(1, 1); + } + else { + omOvlCallEx(OVL_MODESEL, 1, 0, 0); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = -1; + } + HuPrcEnd(); + do { + HuPrcVSleep(); + } while (1); +} + +static s16 demoMessTimeTbl[] = { + 1686, + 1785, + 1850, + 1936, + 1993, + 2097, + 2135, + 2245, + 2258, + 2320, + -1, + -1, +}; + +static void UpdateDemoMess(void) +{ + int frame = HuTHPFrameGet(); + int i; + for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) { + if (frame == demoMessTimeTbl[i * 2]) { + HuWinMesSet(demoWinId, MAKE_MESSID(54, i)); + } + if (frame == demoMessTimeTbl[(i * 2) + 1]) { + HuWinHomeClear(demoWinId); + } + } +} + +#if VERSION_NTSC + +static u16 progPosTbl[] = { 236, 313, 353, 313 }; + +void BootProgExec(void) +{ + s16 i; + s16 option; + s16 group; + s16 sprite; + AnimData *data; + option = 0; + if (OSGetResetCode() != OS_RESET_RESTART) { + return; + } + if (VIGetDTVStatus() != VI_NON_INTERLACE) { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); + return; + } + if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) { + return; + } + if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) { + VIConfigure(&GXNtsc480IntDf); + VIFlush(); + } + group = HuSprGrpCreate(3); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprPosSet(group, 0, 288, 240); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite); + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 2, sprite); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); + HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + for (i = 0; i < 600; i++) { + if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { + option ^= 1; + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); + i = 0; + } + if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); + HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if (!option) { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON); + VIConfigure(&GXNtsc480Prog); + VIFlush(); + HuPrcSleep(100); + } + else { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); + } + HuSprGrpKill(group); + group = HuSprGrpCreate(1); + if (!option) { + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM); + } + else { + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM); + } + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprPosSet(group, 0, 288, 240); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuPrcSleep(60); + for (i = 0; i < 180; i++) { + if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprGrpKill(group); + HuPrcSleep(30); +} + +#endif + +static u16 debugCamTbl[] = { 1, 2 }; + +void DebugCamOutView(omObjData *obj) +{ + s16 i; + for (i = 0; i < 1; i++) { + Vec pos, target, up; + float x, y, z; + + x = debugCamRot[i].x; + y = debugCamRot[i].y; + z = debugCamRot[i].z; + + pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x); + pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y; + pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z; + target.x = debugCamPos[i].x; + target.y = debugCamPos[i].y; + target.z = debugCamPos[i].z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } +} + +void DebugCamUpdate(omObjData *obj) +{ + Vec pos; + Vec offset; + Vec dir; + Vec y_offset; + + f32 z_rot; + s8 stick_pos; + + #if VERSION_NTSC + if ((HuPadBtnDown[0] & 0x800)) { + debugCamOnF = (debugCamOnF) ? 0 : 1; + } + #endif + if (debugCamOnF != 0) { + debugCamRot[0].y += 0.1f * HuPadStkX[0]; + debugCamRot[0].x += 0.1f * HuPadStkY[0]; + debugCamZoom[0] += HuPadTrigL[0] / 2; + debugCamZoom[0] -= HuPadTrigR[0] / 2; + if (debugCamZoom[0] < 100.0f) { + debugCamZoom[0] = 100.0f; + } + pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x))); + pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x))); + pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x)))); + offset.x = debugCamPos[0].x - pos.x; + offset.y = debugCamPos[0].y - pos.y; + offset.z = debugCamPos[0].z - pos.z; + dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x)); + dir.y = cosd(debugCamRot[0].x); + dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x)); + z_rot = debugCamRot[0].z; + 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.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); + + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); + } + VECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); + } + } +} + +void BootTitleCreate(void) +{ + s16 model; + s16 sprite; + AnimData *sprite_data; + s16 i; + titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + Hu3DModelCameraInfoSet(model, 1); + Hu3DModelLightInfoSet(model, 1); + #if VERSION_NTSC + bootGrpId = HuSprGrpCreate(4); + #else + bootGrpId = HuSprGrpCreate(13); + #endif + sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(bootGrpId, 0, sprite); + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprDrawNoSet(bootGrpId, 0, 127); + HuSprPosSet(bootGrpId, 0, 288, 240); + sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); + sprite = HuSprCreate(sprite_data, 1, 0); + HuSprGrpMemberSet(bootGrpId, 1, sprite); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(bootGrpId, 1, 288, 420); + #if VERSION_NTSC + sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); + sprite = HuSprCreate(sprite_data, 2, 0); + HuSprGrpMemberSet(bootGrpId, 2, sprite); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 2, 288, 380); + sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(bootGrpId, 3, sprite); + HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + 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 - } + } + 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 +} - BOOL BootTitleExec(void) - { - float scale; - float scale_time; - int seNo[32]; - s16 pressStartMemberNo; - s16 languageMemberNo; - s16 i; - s16 choice; - float temp; - repeat: - Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF); - HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF); -#ifdef __MWERKS__ - // TODO PC - OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo)); - OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); - HuAudSStreamPlay(20); -#endif - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while (WipeStatGet()) { - HuPrcVSleep(); - } - #if VERSION_NTSC - HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF); - for (i = 1; i <= 50; i++) { - scale = (cosd(i * 1.8) * 10.0) + 1.0; - HuSprScaleSet(bootGrpId, 3, scale, scale); - HuSprTPLvlSet(bootGrpId, 3, i / 50.0); - HuPrcVSleep(); - } - 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 +BOOL BootTitleExec(void) +{ + float scale; + float scale_time; + int seNo[32]; + s16 pressStartMemberNo; + s16 languageMemberNo; + s16 i; + s16 choice; + float temp; + repeat: + 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(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); + HuAudSStreamPlay(20); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + #if VERSION_NTSC + HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF); + for (i = 1; i <= 50; i++) { + scale = (cosd(i * 1.8) * 10.0) + 1.0; + HuSprScaleSet(bootGrpId, 3, scale, scale); + HuSprTPLvlSet(bootGrpId, 3, i / 50.0); + HuPrcVSleep(); + } + 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++) { - #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) { - HuSprTPLvlSet(bootGrpId, 2, i / 10.0); - } - if (HuPadBtnDown[0] & PAD_BUTTON_START) { - s32 ret = HuAudFXPlay(2092); - if (ret < 0) { - OSReport(">>>>>Error %d\n", ret); - } - HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); - return 1; - } - scale = (sind(i * scale_time) * 0.1) + 0.9; - scale_time += 0.05; - if (scale_time > 5) { - scale_time = 5; - } - HuSprScaleSet(bootGrpId, 2, scale, scale); - HuPrcVSleep(); - #endif + #if VERSION_NTSC + 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) { + HuSprTPLvlSet(bootGrpId, 2, i / 10.0); + } + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + s32 ret = HuAudFXPlay(2092); + if (ret < 0) { + OSReport(">>>>>Error %d\n", ret); + } + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + return 1; + } + scale = (sind(i * scale_time) * 0.1) + 0.9; + scale_time += 0.05; + if (scale_time > 5) { + scale_time = 5; + } + HuSprScaleSet(bootGrpId, 2, scale, scale); + HuPrcVSleep(); + #endif - } - 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); - #if VERSION_NTSC - HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(bootGrpId, 1, 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; - } + } + 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); + #if VERSION_NTSC + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, 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; +} - #include "nintendoData.inc" +#include "nintendoData.inc" - void *NintendoDataDecode(void) - { - u32 *src = (u32 *)nintendoData; - u32 size = *src++; - void *dst; - s32 decode_type; -#ifdef TARGET_PC - byteswap_u32(&size); -#endif - dst = HuMemDirectMalloc(HEAP_DATA, size); - decode_type = *src++; -#ifdef TARGET_PC - byteswap_s32(&decode_type); -#endif - if(dst) { - HuDecodeData(src, dst, size, decode_type); - } - return dst; - } +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; +} diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 4208e8ca..5d7b064c 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -1180,7 +1180,4 @@ static void ShadowDraw(ModelData *model, Mtx mtx) GXPosition3f32(2000.0f, 0, 2000.0f); GXPosition3f32(-2000.0f, 0, 2000.0f); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&tex); -#endif } diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 28edb78b..3308961a 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -17,10 +17,6 @@ #include "ext_math.h" #include "math.h" -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - float lbl_2_data_0 = -7.1875f; s16 lbl_2_data_4[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index cc201c64..34dc3dab 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -11,10 +11,6 @@ #include "REL/m401Dll.h" -#ifndef __MWERKS__ -extern s32 rand8(void); -#endif - struct Bss13EData { s16 unk0; s16 unk2[3]; @@ -47,7 +43,7 @@ void fn_2_10240(Vec *arg0, Vec *arg1) camera = &Hu3DCamera[0]; MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target); MTXMultVec(lookat, arg0, arg0); - MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); coord[0] = (arg0->x * proj[0][0]) + (arg0->y * proj[0][1]) + (arg0->z * proj[0][2]) + proj[0][3]; coord[1] = (arg0->x * proj[1][0]) + (arg0->y * proj[1][1]) + (arg0->z * proj[1][2]) + proj[1][3]; coord[2] = (arg0->x * proj[2][0]) + (arg0->y * proj[2][1]) + (arg0->z * proj[2][2]) + proj[2][3]; @@ -323,6 +319,7 @@ void fn_2_113AC(omObjData *object) M401WorkPlayer *temp_r28; omObjData *temp_r27; ParticleData *temp_r25; + s16 temp_r24; temp_r30 = object->data; temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f); object->trans.x = temp_r30->unk0.x; @@ -567,6 +564,7 @@ void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix) HsfanimStruct01 *temp_r31; s32 temp_r29; s32 temp_r28; + UnkWork10A88 *temp_r27; if (!particle->unk_02) { particle->unk_02 = 1; temp_r31 = particle->unk_48; diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 8deaf8dc..e4044763 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -24,11 +24,6 @@ #include "ext_math.h" #include "version.h" -#ifndef __MWERKS__ -#include "game/audio.h" -void HuSysVWaitSet(s16 vcount); -#endif - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -687,9 +682,7 @@ static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif static void fn_1_2454(void) { diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 1e4158d7..ba9e9ca0 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -260,7 +260,7 @@ void ObjectSetup(void) var_r29 = Hu3DGLightCreateV(&lbl_1_data_770, &lbl_1_bss_10, &lbl_1_data_788); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); - Hu3DShadowCreate(45.0f, var_r30->nnear, var_r30->ffar); + Hu3DShadowCreate(45.0f, var_r30->near, var_r30->far); Hu3DShadowTPLvlSet(0.625f); Hu3DShadowPosSet(&lbl_1_data_78C, &lbl_1_data_798, &lbl_1_data_77C); HuAudSndGrpSet(29); @@ -471,12 +471,7 @@ void fn_1_7E0(omObjData *object) espTPLvlSet(var_r31->unk_02[var_r30], 0.5f); break; case 2: -#ifdef NON_MATCHING - // TODO 1 or 0? - var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]], 0, 0); -#else var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]); -#endif espPriSet(var_r31->unk_02[var_r30], 255); break; case 3: @@ -1300,7 +1295,7 @@ void fn_1_58E4(ModelData *modelData, Mtx arg1) GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetCullMode(GX_CULL_BACK); - GXCallDisplayListNative(var_r31->unk_44, var_r31->unk_48); + GXCallDisplayList(var_r31->unk_44, var_r31->unk_48); GXInitTexObj(&sp3C, var_r31->unk_4C->bmp->data, var_r31->unk_4C->bmp->sizeX, var_r31->unk_4C->bmp->sizeY, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); GXLoadTexObj(&sp3C, GX_TEXMAP0); GXSetNumTevStages(1); @@ -1311,11 +1306,8 @@ void fn_1_58E4(ModelData *modelData, Mtx arg1) GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevColor(GX_TEVREG0, sp14); - GXCallDisplayListNative(var_r31->unk_44, var_r31->unk_48); + GXCallDisplayList(var_r31->unk_44, var_r31->unk_48); } -#ifdef TARGET_PC - GXDestroyTexObj(&sp3C); -#endif } AnimData *fn_1_5D64(u16 sizeX, u16 sizeY, s32 arg2) diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 3086732e..0eade3f2 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -19,16 +19,10 @@ #include "game/process.h" #include "game/sprite.h" #include "game/wipe.h" -#include - #include "dolphin.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -1008,15 +1002,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSETARRAY(GX_VA_POS, lbl_1_bss_5AC.unk14, 900 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_bss_5AC.unk14, 0xC); GXSetCullMode(GX_CULL_BACK); - GXCallDisplayListNative(lbl_1_bss_5AC.unk24, lbl_1_bss_5AC.unk28); + GXCallDisplayList(lbl_1_bss_5AC.unk24, lbl_1_bss_5AC.unk28); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&spC); -#endif } void fn_1_3F1C(ModelData *arg0, Mtx arg1) @@ -1086,9 +1077,6 @@ void fn_1_4024(ModelData *arg0, Mtx arg1) GXPosition3f32(600.0f, -2.0f, 1250.0f); GXPosition3f32(-600.0f, -2.0f, 1250.0f); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&sp18); -#endif } void fn_1_4700(ModelData *arg0, Mtx arg1) @@ -1283,9 +1271,7 @@ float fn_1_5664(Vec *arg0) return lbl_1_bss_5AC.unk04[fn_1_23B4(arg0)].y; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif Vec lbl_1_data_100 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_10C = { 450.0f, 300.0f, 500.0f }; diff --git a/src/REL/m406Dll/main.c b/src/REL/m406Dll/main.c index fc6607e5..8642d951 100644 --- a/src/REL/m406Dll/main.c +++ b/src/REL/m406Dll/main.c @@ -4,7 +4,6 @@ #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/minigame_seq.h" -#include "game/objsub.h" #include "game/wipe.h" #include "REL/m406Dll.h" diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 020225ca..e995e73a 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -8,10 +8,6 @@ #include "REL/m406Dll.h" -#ifndef __MWERKS__ -#include -#endif - typedef struct UnkM406Struct { /* 0x00 */ u8 unk_00; /* 0x01 */ u8 unk_01; @@ -226,7 +222,7 @@ void fn_1_D488(float arg8, Vec *arg0, Vec *arg1, Vec *arg2); void fn_1_D518(Mtx arg0, Vec *arg1); float fn_1_D5CC(Vec *arg0, Vec *arg1, float arg8, float arg9); -SHARED_SYM extern u32 GlobalCounter; +extern u32 GlobalCounter; Vec lbl_1_data_F0[0x46] = { { -495.876f, 50.005f, -0.0f }, @@ -459,7 +455,7 @@ UnkM406Struct5 lbl_1_bss_48; Vec lbl_1_bss_3C; s32 lbl_1_bss_30[3]; -SHARED_SYM extern LightData Hu3DLocalLight[0x20]; +extern LightData Hu3DLocalLight[0x20]; omObjData *fn_1_2308(Process *arg0) { @@ -1115,20 +1111,20 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_84, var_r31->unk_80 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_84, sizeof(Vec)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk_88, var_r31->unk_80 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, var_r31->unk_88, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk_90, var_r31->unk_80 * sizeof(GXColor), sizeof(GXColor)); - GXCallDisplayListNative(var_r31->unk_A4, var_r31->unk_A0); + GXSetArray(GX_VA_CLR0, var_r31->unk_90, 4); + GXCallDisplayList(var_r31->unk_A4, var_r31->unk_A0); for (var_r30 = 1; var_r30 < 29; var_r30++) { var_r29 = var_r30 * 35; - GXSETARRAY(GX_VA_POS, &var_r31->unk_84[var_r29], 35 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_NRM, &var_r31->unk_88[var_r29], 35 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_90[var_r29], 35 * sizeof(GXColor), sizeof(GXColor)); - GXCallDisplayListNative(var_r31->unk_A4, var_r31->unk_A0); + GXSetArray(GX_VA_POS, &var_r31->unk_84[var_r29], sizeof(Vec)); + GXSetArray(GX_VA_NRM, &var_r31->unk_88[var_r29], sizeof(Vec)); + GXSetArray(GX_VA_CLR0, &var_r31->unk_90[var_r29], sizeof(GXColor)); + GXCallDisplayList(var_r31->unk_A4, var_r31->unk_A0); } } } @@ -1254,11 +1250,7 @@ void fn_1_4964(ModelData *arg0) fn_1_71C4(spC4, spA0, 100.0f + (50.0f * (0.007874016f * (frand() & 0x7F))), -0.1f, sp3C); } var_r29 = var_r30->unk_2C; -#ifdef NON_MATCHING - memset(&lbl_1_bss_48, 0, sizeof(UnkM406Struct5)); -#else memset(lbl_1_bss_48, 0, sizeof(UnkM406Struct5)); -#endif for (var_r27 = 0; var_r27 < 105; var_r27++, var_r29++) { fn_1_D488(var_r29->unk_04, &var_r30->unk_84[var_r29->unk_00], &var_r30->unk_84[var_r29->unk_00 + 1], &var_r29->unk_18); if (var_r29->unk_08 >= 0) { @@ -2954,17 +2946,17 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 0x44); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(arg1, sp128) == 0) { MTXIdentity(sp128); } - MTXReorder(sp128, sp8); + PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { var_r18 = var_r31->unk_4C; var_r18(arg0, var_r31, arg1); @@ -2972,7 +2964,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) var_r29 = var_r31->unk_3C; var_r30 = var_r31->unk_40; var_r28 = var_r31->unk_44; - MTXROMultVecArray(sp8, lbl_1_data_8E0, &sp38[0], 4); + PSMTXROMultVecArray(sp8, lbl_1_data_8E0, &sp38[0], 4); for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { if (!var_r29->unk_28) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -3034,7 +3026,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_26 * 8 * 4); DCFlushRangeNoSync(var_r31->unk_3C, var_r31->unk_26 * 0x44); PPCSync(); - GXCallDisplayListNative(var_r31->unk_48, var_r31->unk_34); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); if (!shadowModelDrawF) { if ((var_r31->unk_21 & 2) == 0) { var_r31->unk_28++; @@ -3170,14 +3162,14 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 0x44); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); if (HmfInverseMtxF3X3(arg1, sp9C) == 0) { MTXIdentity(sp9C); } - MTXReorder(sp9C, spC); + PSMTXReorder(sp9C, spC); if (var_r31->unk_4C) { var_r23 = var_r31->unk_4C; var_r23(arg0, var_r31, arg1); @@ -3185,7 +3177,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) var_r29 = var_r31->unk_3C; var_r30 = var_r31->unk_40; sp8 = var_r31->unk_44; - MTXROMultVecArray(spC, lbl_1_data_930, (Vec *)sp3C, 4); + PSMTXROMultVecArray(spC, lbl_1_data_930, (Vec *)sp3C, 4); for (var_r25 = 0; var_r25 < var_r31->unk_26; var_r25++, var_r29++) { if (!var_r29->unk_28) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -3213,7 +3205,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_26 * 0xC * 4); DCFlushRangeNoSync(var_r31->unk_3C, var_r31->unk_26 * 0x44); PPCSync(); - GXCallDisplayListNative(var_r31->unk_48, var_r31->unk_34); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); if (!shadowModelDrawF) { if ((var_r31->unk_21 & 2) == 0) { var_r31->unk_28++; diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index ce4f573d..9685aac0 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -12,11 +12,6 @@ #include "REL/m406Dll.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#include "game/hsfex.h" -#endif - typedef struct UnkM406PlayerStruct { /* 0x00 */ float unk_00; /* 0x04 */ float unk_04; diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index fb37b159..4675aa80 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -64,6 +64,10 @@ void fn_1_15D8(void) void fn_1_162C(omObjData *arg0) { + s32 var_r30; + s32 var_r30_2; + s32 var_r30_3; + s32 var_r30_4; s32 i; arg0->func = fn_1_1A8C; diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index d5b9da02..0557ca80 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -8,7 +8,7 @@ #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" -#include "ext_math.h" +#include "math.h" #include "REL/m407dll.h" @@ -257,6 +257,7 @@ void fn_1_404(void) { omObjData *temp_r31; unkDominationData *unkData; + s32 temp_r0; u8 i; for (i = 0; i < 4; i++) { @@ -329,6 +330,7 @@ void fn_1_628(omObjData *arg0, s32 arg1) void fn_1_64C(omObjData *arg0) { u32 temp_r29; + unkDominationData *temp_r27; unkDominationData *temp_r31; u32 i; @@ -524,7 +526,10 @@ void fn_1_1074(omObjData *arg0) void fn_1_11CC(omObjData *arg0) { - unkDominationData *temp_r31 = arg0->data; + unkDominationData *temp_r31; + s16 temp; + + temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); @@ -538,7 +543,6 @@ void fn_1_11CC(omObjData *arg0) temp_r31->unk_24 += 0.3f; if (!(temp_r31->unk_14 > 300.0f)) { - s16 temp; temp_r31->unk_14 = 300.0f; CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0); CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); diff --git a/src/REL/m407dll/score.c b/src/REL/m407dll/score.c index a289daf2..4895ebd8 100644 --- a/src/REL/m407dll/score.c +++ b/src/REL/m407dll/score.c @@ -127,9 +127,12 @@ void fn_1_5FE4(omObjData *arg0) void fn_1_61A0(void) { - unkDominationData6 *temp_r31 = lbl_1_bss_3988->data; + s32 i; + unkDominationData6 *temp_r31; + + temp_r31 = lbl_1_bss_3988->data; + if (temp_r31->unk_04 == 0) { - s32 i; for (i = 0; i < ARRAY_COUNT(temp_r31->unk_0C); i++) { espDispOff(temp_r31->unk_0C[i]); } @@ -139,9 +142,12 @@ void fn_1_61A0(void) void fn_1_6218(void) { - unkDominationData6 *temp_r31 = lbl_1_bss_3988->data; + s16 i; + unkDominationData6 *temp_r31; + + temp_r31 = lbl_1_bss_3988->data; + if (temp_r31->unk_04 == 0) { - s16 i; for (i = 0; i < ARRAY_COUNT(temp_r31->unk_0C); i++) { espDispOn(temp_r31->unk_0C[i]); } diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index 1c13f3b1..43275f60 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -74,6 +74,7 @@ ObjFuncs lbl_1_data_258[] = { void fn_1_2354(Process *arg0) { + Process *sp8; u32 i; u32 j; @@ -122,7 +123,7 @@ void fn_1_2564(void) void fn_1_25C0(void) { - u32 i; + u32 i, j; lbl_1_bss_38 = 0; @@ -155,11 +156,7 @@ void fn_1_26CC(u8 arg0) } } -#ifdef __MWERKS__ void fn_1_2770(u8 arg0, s16 arg2) -#else -void fn_1_2770(u8 arg0) -#endif { omObjData *temp_r30; unkDominationData7 *temp_r31; @@ -203,13 +200,15 @@ void fn_1_290C(omObjData *arg0, s32 arg1) void fn_1_2930(omObjData *arg0) { + unkDominationData7 *temp_r28; omObjData *temp_r29; u32 i; - unkDominationData7 *temp_r31 = arg0->data; + unkDominationData7 *temp_r31; + + temp_r31 = arg0->data; lbl_1_data_258[temp_r31->unk_24](arg0); if ((temp_r31->unk_08.z > (Center.z - 2000.0f)) && (temp_r31->unk_08.z < (2000.0f + Center.z)) && (temp_r31->unk_04 == 0)) { for (i = 0; i < 8; i++) { - unkDominationData7 *temp_r28; temp_r29 = lbl_1_bss_2DB0[(temp_r31->unk_00 % 80) + (i * 80)]; temp_r29->model[0] = -1; temp_r28 = temp_r29->data; @@ -372,7 +371,7 @@ void fn_1_31F8(omObjData *arg0) } } -void fn_1_3360(omObjData *arg0) { } +void fn_1_3360(omObjData *) { } void fn_1_3364(omObjData *arg0) { @@ -474,7 +473,9 @@ void fn_1_36D0(omObjData *arg0) void fn_1_37B0(omObjData *arg0) { - unkDominationData7 *temp_r31 = arg0->data; + unkDominationData7 *temp_r31; + + temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { temp_r31->unk_14.x = 0.0f; temp_r31->unk_08.y = 0.0f; diff --git a/src/REL/m407dll/whomp_score.c b/src/REL/m407dll/whomp_score.c index 6ce497bb..1d985246 100644 --- a/src/REL/m407dll/whomp_score.c +++ b/src/REL/m407dll/whomp_score.c @@ -1,5 +1,4 @@ #include "game/esprite.h" -#include "game/hsfex.h" #include "game/gamework_data.h" #include "game/object.h" #include "game/process.h" @@ -17,6 +16,7 @@ typedef struct unkDominationData3 { } unkDominationData3; // sizeof 0x24 // function signatures +void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2); void fn_1_3D28(omObjData *arg0, s32 arg1); void fn_1_3E34(omObjData *); void fn_1_3F7C(omObjData *arg0); @@ -58,14 +58,17 @@ void fn_1_3B68(void) void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { + omObjData *obj; + Vec sp14; + unkDominationData3 *temp_r31; u32 i; + s16 temp; for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { - omObjData *obj = lbl_1_bss_37C8[i]; - unkDominationData3 *temp_r31 = obj->data; + obj = lbl_1_bss_37C8[i]; + temp_r31 = obj->data; if (temp_r31->unk_04 == 0) { - Vec sp14; - s16 temp = arg0; + temp = arg0; espBankSet(temp_r31->unk_18[1], (temp / 100)); temp = (temp - ((temp / 100) * 100)); espBankSet(temp_r31->unk_18[2], (temp / 10)); @@ -92,6 +95,7 @@ void fn_1_3D28(omObjData *arg0, s32 arg1) void fn_1_3D4C(omObjData *arg0) { + s32 temp_r5; unkDominationData3 *temp_r31; temp_r31 = arg0->data; diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index 857d4d27..370848c4 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -1,22 +1,24 @@ -#include "game/audio.h" #include "game/chrman.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/wipe.h" + #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/sprite.h" +#include "game/audio.h" +#include "game/gamework_data.h" + #include "REL/m408Dll.h" #include "ext_math.h" #include "math.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - omObjData *lbl_1_bss_110; u32 lbl_1_bss_10C; Vec lbl_1_bss_100; @@ -264,6 +266,7 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2); void fn_1_99C8(omObjData *object) { float temp_f31; + float temp_f30; Vec sp2C; Vec sp20; @@ -279,7 +282,7 @@ void fn_1_99C8(omObjData *object) switch (object->work[0]) { case 0: if (object->work[1] < 120.0f) { - float temp_f30 = (1.0f / 60.0f) * (1.5f * (120.0f - object->work[1])); + temp_f30 = (1.0f / 60.0f) * (1.5f * (120.0f - object->work[1])); if (temp_f30 > 1.0f) { temp_f30 = 1.0f; } @@ -466,11 +469,13 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) { - ParticleData *temp_r30 = Hu3DData[arg0].unk_120; + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r29; + temp_r30 = Hu3DData[arg0].unk_120; if (temp_r30->unk_00) { - float temp_f31; - s32 temp_r29; - HsfanimStruct01 *temp_r31 = temp_r30->unk_48; + temp_r31 = temp_r30->unk_48; for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { if (temp_r31->unk00 != 0) { continue; @@ -509,6 +514,7 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) { 600, 1, 0.6, 0.9, 0.3, 0 }, { 13, 1, 1, 1, 0.5, 0 }, }; + Vec sp8; if (particle->unk_00 == 0) { particle->unk_00++; temp_r31 = particle->unk_48; @@ -543,7 +549,6 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) else { temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - Vec sp8; if (temp_r31->unk00 == 0) { continue; } @@ -593,6 +598,9 @@ void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) float temp_f30; HsfanimStruct01 *temp_r30; s32 temp_r29; + Vec sp20; + Vec sp14; + Vec sp8; if (particle->unk_00 == 0) { particle->unk_00++; temp_f31 = -70; @@ -627,9 +635,6 @@ void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) } } else { - Vec sp20; - Vec sp14; - Vec sp8; sp20.x = sind(CRot.y) * cosd(CRot.x); sp20.y = -sind(CRot.x); sp20.z = cosd(CRot.y) * cosd(CRot.x); diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 790b23f7..fa04e61a 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -1,17 +1,18 @@ -#include "game/audio.h" #include "game/chrman.h" -#include "game/hsfanim.h" -#include "game/hsfdraw.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" -#include "game/gamework_data.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/wipe.h" + +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" +#include "game/audio.h" +#include "game/gamework_data.h" #include "REL/m408Dll.h" @@ -19,7 +20,6 @@ #include "math.h" #ifndef __MWERKS__ -#include "game/frand.h" #include "game/esprite.h" #endif @@ -384,12 +384,12 @@ void fn_1_12A0(omObjData *object) void fn_1_148C(omObjData *object) { + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f29; if (!WipeStatGet()) { - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float temp_f29; lbl_1_bss_54 = 0; sp30.x = 0; sp30.y = 50; @@ -515,14 +515,17 @@ void fn_1_1E54(omObjData *object) s32 fn_1_1EBC(omObjData *object) { + float temp_f31; + float temp_f22; + float temp_f21; + Vec sp3C; + Vec sp30; + Vec sp24; + Work2FAC *temp_r31 = object->data; - float temp_f31 = (temp_r31->unk1C.x * temp_r31->unk1C.x) + ((10.0f / 7.0f) * ((10.0f / 7.0f) * temp_r31->unk1C.z * temp_r31->unk1C.z)); + temp_f31 = (temp_r31->unk1C.x * temp_r31->unk1C.x) + ((10.0f / 7.0f) * ((10.0f / 7.0f) * temp_r31->unk1C.z * temp_r31->unk1C.z)); if (temp_f31 > 6400) { - Vec sp3C; - Vec sp30; - Vec sp24; - float temp_f21; - float temp_f22 = 80.0f / sqrtf(temp_f31); + temp_f22 = 80.0f / sqrtf(temp_f31); sp3C.x = temp_r31->unk1C.x * temp_f22; sp3C.z = temp_r31->unk1C.z * temp_f22; temp_r31->unk34.x = sp3C.x - temp_r31->unk1C.x; @@ -548,7 +551,9 @@ s32 fn_1_1EBC(omObjData *object) temp_r31->unk28.z += (sp30.z * 20.0f) + (sp30.z * 2.0f * temp_f22); return 1; } - return 0; + else { + return 0; + } } void fn_1_26E4(omObjData *object); @@ -742,9 +747,12 @@ void fn_1_2FAC(omObjData *object) } } -void fn_1_38D0(omObjData *object, s8 *arg1, s8 *arg2) +void fn_1_38D0(omObjData *arg0, s8 *arg1, s8 *arg2) { float temp_f31; + float temp_f30; + float temp_f29; + Work2FAC *temp_r31; Work2FAC *temp_r30; s8 temp_r29; s32 temp_r28; @@ -753,79 +761,79 @@ void fn_1_38D0(omObjData *object, s8 *arg1, s8 *arg2) Vec spC; s8 sp8[4]; - Work2FAC *work = object->data; - *arg1 = work->unk7C[0]; - *arg2 = work->unk7C[1]; - sp18.x = work->unk1C.x; - sp18.y = work->unk1C.y; - sp18.z = work->unk1C.z; + temp_r31 = arg0->data; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + sp18.x = temp_r31->unk1C.x; + sp18.y = temp_r31->unk1C.y; + sp18.z = temp_r31->unk1C.z; temp_r25 = fn_1_162CC(&sp18, &spC); temp_r29 = 0; sp8[0] = -1; for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { - if (temp_r28 != work->unk0) { + if (temp_r28 != temp_r31->unk0) { temp_r30 = fn_1_68A8(temp_r28); if ((temp_r30->unk4 & 0x12) == 0) { sp8[temp_r29++] = temp_r28; } } } - switch (work->unk8E) { + switch (temp_r31->unk8E) { case 0: if (temp_r29 > 0 || temp_r25) { if (temp_r29 > 0) { - work->unk8C = sp8[frandmod(temp_r29)]; + temp_r31->unk8C = sp8[frandmod(temp_r29)]; } - work->unk74 = frandmod(180) + 120.0f; - work->unk78 = 0; - work->unk8E = 1; + temp_r31->unk74 = frandmod(180) + 120.0f; + temp_r31->unk78 = 0; + temp_r31->unk8E = 1; } else { - work->unk78 = 0; - work->unk8E = 2; + temp_r31->unk78 = 0; + temp_r31->unk8E = 2; } break; case 1: - if ((work->unk78 & 0x3) == 0) { + if ((temp_r31->unk78 & 0x3) == 0) { if (temp_r25) { - temp_f31 = atan2d(spC.x - work->unk1C.x, spC.z - work->unk1C.z); + temp_f31 = atan2d(spC.x - temp_r31->unk1C.x, spC.z - temp_r31->unk1C.z); } else { - temp_r30 = fn_1_68A8(work->unk8C); - temp_f31 = atan2d(temp_r30->unk1C.x - work->unk1C.x, temp_r30->unk1C.z - work->unk1C.z); + temp_r30 = fn_1_68A8(temp_r31->unk8C); + temp_f31 = atan2d(temp_r30->unk1C.x - temp_r31->unk1C.x, temp_r30->unk1C.z - temp_r31->unk1C.z); } - work->unk84[1] = fn_1_883C(work->unk84[0], temp_f31, (0.3f * work->unk90) + 0.15f); + temp_r31->unk84[1] = fn_1_883C(temp_r31->unk84[0], temp_f31, (0.3f * temp_r31->unk90) + 0.15f); } - work->unk78++; - work->unk84[0] = fn_1_883C(work->unk84[0], work->unk84[1], 0.2f); - work->unk7C[0] = sind(work->unk84[0]) * 80.0; - work->unk7C[1] = -cosd(work->unk84[0]) * 80.0; - *arg1 = work->unk7C[0]; - *arg2 = work->unk7C[1]; - work->unk74--; + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + temp_r31->unk74--; if (temp_r25 == 0 && (temp_r30->unk4 & 0x12)) { - work->unk74 = 0; + temp_r31->unk74 = 0; } - if (work->unk74 == 0) { - work->unk8E = 0; + if (temp_r31->unk74 == 0) { + temp_r31->unk8E = 0; } break; case 2: - if ((work->unk78 & 0xF) == 0) { - float temp_f30 = (0.04f * frandmod(1000)) - 20.0f; - float temp_f29 = (0.04f * frandmod(1000)) - 20.0f; - work->unk84[1] = temp_f31 = atan2d(temp_f30 - work->unk1C.x, temp_f29 - work->unk1C.z); + if ((temp_r31->unk78 & 0xF) == 0) { + temp_f30 = (0.04f * frandmod(1000)) - 20.0f; + temp_f29 = (0.04f * frandmod(1000)) - 20.0f; + temp_r31->unk84[1] = temp_f31 = atan2d(temp_f30 - temp_r31->unk1C.x, temp_f29 - temp_r31->unk1C.z); } - work->unk78++; - work->unk84[0] = fn_1_883C(work->unk84[0], work->unk84[1], 0.2f); - work->unk7C[0] = sind(work->unk84[0]) * 80.0; - work->unk7C[1] = -cosd(work->unk84[0]) * 80.0; - *arg1 = work->unk7C[0]; - *arg2 = work->unk7C[1]; + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; if (temp_r29 > 0 || temp_r25) { - work->unk8E = 0; + temp_r31->unk8E = 0; } break; } @@ -934,10 +942,12 @@ void fn_1_3E80(omObjData *object) void fn_1_4A58(omObjData *object) { + Work2FAC *temp_r31; s32 temp_r28; s32 temp_r26; - Work2FAC *temp_r31 = object->data; - s32 sp8 = temp_r31->unk0; + s32 sp8; + temp_r31 = object->data; + sp8 = temp_r31->unk0; temp_r31->unk4 |= 2; temp_r31->unk1C.y = lbl_1_bss_54; fn_1_1EBC(object); @@ -996,36 +1006,38 @@ void fn_1_54E4(omObjData *object); void fn_1_5098(omObjData *object) { - Work2FAC *work = object->data; + Work2FAC *temp_r29; + s32 temp_r27; + + temp_r29 = object->data; object->trans.x = lbl_1_data_144[object->work[0]].x; object->trans.z = lbl_1_data_144[object->work[0]].z; if (object->work[1] == 0) { - if (lbl_1_bss_3C < work->unk8) { - lbl_1_bss_3C = work->unk8; + if (lbl_1_bss_3C < temp_r29->unk8) { + lbl_1_bss_3C = temp_r29->unk8; } } - else if (object->work[1] == 10 && lbl_1_bss_3C == work->unk8) { - s32 temp_r27; + else if (object->work[1] == 10 && lbl_1_bss_3C == temp_r29->unk8) { for (temp_r27 = 0; lbl_1_bss_28[temp_r27] >= 0; temp_r27++) ; - lbl_1_bss_28[temp_r27] = work->unk2; + lbl_1_bss_28[temp_r27] = temp_r29->unk2; } object->work[1]++; - work->unk1C.y = lbl_1_bss_54; - work->unk58.y = 0; - work->unk58.x = 0; + temp_r29->unk1C.y = lbl_1_bss_54; + temp_r29->unk58.y = 0; + temp_r29->unk58.x = 0; object->rot.x = object->rot.y = object->rot.z = 0; - object->trans.y = work->unk1C.y; - work->unk1C.x = object->trans.x; - work->unk1C.z = object->trans.z; - work->unk1C.y += lbl_1_data_A0[work->unk2]; + object->trans.y = temp_r29->unk1C.y; + temp_r29->unk1C.x = object->trans.x; + temp_r29->unk1C.z = object->trans.z; + temp_r29->unk1C.y += lbl_1_data_A0[temp_r29->unk2]; if (object->trans.y < 0) { object->trans.y = 0; } fn_1_1BE8(object, 1.0f); if (fn_1_6878() == 5) { object->func = fn_1_54E4; - if (work->unk14) { + if (temp_r29->unk14) { lbl_1_bss_C = 1; } } @@ -1057,7 +1069,9 @@ void fn_1_5AA0(omObjData *object); void fn_1_5684(omObjData *object) { - Work2FAC *temp_r31 = object->data; + Work2FAC *temp_r31; + s32 temp_r29; + temp_r31 = object->data; if (fabs(object->trans.x) < 160.0 || fabs(object->trans.z) < 160.0) { temp_r31->unk1C.x += temp_r31->unk28.x * (1.0f / 60.0f); temp_r31->unk1C.z += temp_r31->unk28.z * (1.0f / 60.0f); @@ -1074,7 +1088,6 @@ void fn_1_5684(omObjData *object) omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); } if (fn_1_6878() >= 4) { - s32 temp_r29; GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); if (lbl_1_bss_48) { Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); @@ -1144,13 +1157,15 @@ void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix) void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2) { + float temp_f31; + float temp_f30; - ParticleData *temp_r29 = Hu3DData[arg0].unk_120; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + temp_r29 = Hu3DData[arg0].unk_120; if (temp_r29->unk_00 != 0) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31 = temp_r29->unk_48; - s32 temp_r28; + temp_r31 = temp_r29->unk_48; for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { if (temp_r31->unk00) { continue; diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index d37dc474..a7db6c04 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -1,19 +1,23 @@ -#include "game/audio.h" #include "game/object.h" +#include "game/chrman.h" +#include "game/minigame_seq.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" + #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/sprite.h" +#include "game/audio.h" +#include "game/gamework_data.h" + #include "REL/m408Dll.h" #include "ext_math.h" - -#ifndef __MWERKS__ -#include "game/frand.h" -#endif -s32 rand8(void); +#include "math.h" typedef struct struct_data_20C { s32 unk0; @@ -368,9 +372,10 @@ void fn_1_11E3C(StructBssDA4 *arg0, s32 arg1) void fn_1_12354(omObjData *object) { - u32 temp_r30 = fn_1_6878(); + s32 temp_r31; + u32 temp_r30; + temp_r30 = fn_1_6878(); if (temp_r30 == 2) { - s32 temp_r31; for (temp_r31 = 0; temp_r31 < lbl_1_bss_DA0; temp_r31++) ; object->func = fn_1_123C8; @@ -517,6 +522,7 @@ void fn_1_127A0(StructBssDA4 *arg0) void fn_1_12C6C(StructBssDA4 *arg0) { + Work2FAC *temp_r30; float temp_f31; float temp_f30; float temp_f26; diff --git a/src/REL/m408Dll/stage.c b/src/REL/m408Dll/stage.c index e0149180..71b8bafd 100644 --- a/src/REL/m408Dll/stage.c +++ b/src/REL/m408Dll/stage.c @@ -1,21 +1,23 @@ -#include "ext_math.h" -#include "game/audio.h" #include "game/chrman.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" + #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/object.h" -#include "game/objsub.h" #include "game/sprite.h" -#include "game/wipe.h" +#include "game/audio.h" +#include "game/gamework_data.h" #include "REL/m408Dll.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif +#include "ext_math.h" +#include "math.h" s32 lbl_1_bss_160[2]; AnimData *lbl_1_bss_14C[5]; @@ -260,14 +262,18 @@ void fn_1_D6F0(omObjData *object); void fn_1_D004(omObjData *object) { float temp_f31; + float temp_f30; float temp_f29; + float temp_f28; + u16 *temp_r30; float *temp_r28; s32 temp_r27; s32 temp_r26; - u16 *temp_r30 = object->data; - CameraData *sp8 = &Hu3DCamera[0]; - float temp_f30 = fn_1_6888(); - float temp_f28 = 7000; + CameraData *sp8; + temp_r30 = object->data; + sp8 = &Hu3DCamera[0]; + temp_f30 = fn_1_6888(); + temp_f28 = 7000; switch (temp_r30[0]) { case 2: Hu3DModelAttrReset(object->model[9], HU3D_ATTR_DISPOFF); @@ -1036,7 +1042,7 @@ void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r30->data.vertex->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), sizeof(HsfVector3f)); + GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f)); if (temp_r25 & 0x2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); @@ -1044,15 +1050,15 @@ void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r30->data.normal->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), sizeof(HsfVector3f)); + GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f)); } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r30->data.st->data, temp_r30->data.vertex->count * sizeof(HsfVector2f), sizeof(HsfVector2f)); + GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f)); if (temp_r25 & 0x4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, arg3, arg0->unk4->data.color->count * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor)); } GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(GX_FALSE); @@ -1071,7 +1077,7 @@ void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg } fn_1_10B60(arg0, temp_r31); temp_r20 = (void *)(arg2->dlOfs + ((u32)lbl_1_bss_120[0])); - GXCallDisplayListNative(temp_r20, arg2->dlSize); + GXCallDisplayList(temp_r20, arg2->dlSize); } void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) @@ -1132,10 +1138,6 @@ void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&sp1C, arg3); -#ifdef TARGET_PC - GXDestroyTexObj(&sp1C); - GXDestroyTlutObj(&sp10); -#endif } #define SET_TEVCOLOR_ALPHA(reg, color_var, value) \ @@ -1144,7 +1146,7 @@ void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) GXSetTevColor(reg, color_var); \ } -SHARED_SYM extern u32 texMtxTbl[]; +extern u32 texMtxTbl[]; void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1) { diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index 64a94409..76fbe60a 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -6,7 +6,8 @@ void fn_1_BF88(s16 arg0, s16 arg1) { - s32 i; + s32 var_r31; + s32 var_r31_2; unkStruct8 *var_r29; unkStruct9Sub *var_r30; @@ -19,11 +20,11 @@ void fn_1_BF88(s16 arg0, s16 arg1) var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; - for (i = 0; i < arg0; i++, var_r29++) { + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - for (i = 0; i < arg1; i++, var_r30++) { + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; } @@ -47,7 +48,7 @@ void fn_1_C0C0(void) Hu3DModelKill(lbl_1_bss_F0.unk4); } -SHARED_SYM extern u8 texMtxTbl[]; +extern u8 texMtxTbl[]; void fn_1_C164(unkStruct8 *arg0) { @@ -213,19 +214,19 @@ void fn_1_C164(unkStruct8 *arg0) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk40, sizeof(Vec[4]), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk44, sizeof(GXColor[4]), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); for (var_r26 = 0; var_r26 < var_r31->unk32; var_r26++) { GXSetVtxDesc(var_r26 + GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, sizeof(HsfVector2f[4]), sizeof(HsfVector2f)); + GXSetArray(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec)); - GXCallDisplayListNative(var_r31->unk3C, var_r31->unk38); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); + GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } } @@ -744,7 +745,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) } temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; - var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct11), MEMORY_DEFAULT_NUM); + var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); @@ -767,7 +768,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) temp_r31->unkC = 1.0f; temp_r31->unk10 = 0.0f; if (temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, MEMORY_DEFAULT_NUM); } temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54; temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58; diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 5a32824a..70955a13 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -212,7 +212,12 @@ void fn_1_DDC(omObjData *object) void fn_1_F70(omObjData *object) { - s16 *sp8 = (s16 *)object->data; + s16 *sp8; + s16 temp_r3; + s16 temp_r3_2; + s32 var_r31; + + sp8 = (s16 *)object->data; switch (fn_1_2454(7)) { case 1: if (lbl_1_bss_6 == 0) { @@ -220,11 +225,10 @@ void fn_1_F70(omObjData *object) WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); } if (WipeStatGet() == 0) { - s32 i; fn_1_2414(7, 2); - for (i = 0; i < 4; i++) { - omVibrate(i, 0xC8, 6, 6); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + omVibrate(var_r31, 0xC8, 6, 6); } } break; @@ -378,7 +382,13 @@ s8 fn_1_10E8(omObjData *object) s8 fn_1_1B74(omObjData *object) { - unkStruct4 *temp_r30 = object->data; + f32 temp_f30; + f32 temp_f31; + s16 temp_r27; + s32 temp_r28; + unkStruct4 *temp_r30; + + temp_r30 = (unkStruct4 *)object->data; switch (lbl_1_bss_8) { case 0: temp_r30->unk2 = MGSeqCreate(3, 1); @@ -430,12 +440,14 @@ s8 fn_1_1B74(omObjData *object) void fn_1_2098(omObjData *object) { + ModelData *temp_r31; f32 var_f28; f32 var_f29; f32 var_f31; f32 var_f30; + s32 var_r30; - ModelData *temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]]; + temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]]; if (fn_1_2454(0x18) != 0x18) { lbl_1_bss_18 += 0.008f; if (lbl_1_bss_18 >= 1.0f) { @@ -572,6 +584,10 @@ void fn_1_2484(omObjData *object) void fn_1_2DCC(omObjData *object) { + u16 spE; + u16 spC; + u16 spA; + u16 sp8; ModelData *temp_r30; f32 temp_f29; f32 var_f31; @@ -581,6 +597,8 @@ void fn_1_2DCC(omObjData *object) s16 var_r28; s16 var_r27; s16 var_r29; + s32 temp_r16; + s16 var_r18; unkStruct4 *var_r31; if ((lbl_1_bss_24.unk0 == 0) || (fn_1_2454(0x18) == 0x18)) { @@ -973,6 +991,7 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) Vec sp2C; Vec sp20; GXColor sp1A; + s16 sp18; f32 temp_f31; s16 var_r30; unkStruct5 *temp_r31; @@ -1160,6 +1179,7 @@ unkStruct5 *fn_1_58E0(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4) s16 fn_1_5A18(AnimData *arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { ModelData *temp_r28; + f32 temp_f0; s16 var_r21; s16 var_r22; s16 var_r30; @@ -1357,15 +1377,15 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r30->unk1C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8); fn_1_40A4(arg1, sp128); - MTXReorder(sp128, spF8); + PSMTXReorder(sp128, spF8); if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) { var_r23 = temp_r30->unkC; var_r23(arg0, temp_r30, arg1); @@ -1373,7 +1393,7 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) var_r29 = temp_r30->unk18; var_r31 = temp_r30->unk1C; var_r26 = temp_r30->unk20; - MTXROMultVecArray(spF8, &temp_r30->unk2C, &sp68[0], 4); + PSMTXROMultVecArray(spF8, &temp_r30->unk2C, &sp68[0], 4); for (var_r25 = 0; var_r25 < temp_r30->unk0; var_r25++, var_r29++, var_r26 += 4) { if (var_r29->unk4E == 0) { @@ -1412,7 +1432,7 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * 0xC * 4); DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * 8 * 4); PPCSync(); - GXCallDisplayListNative(temp_r30->unk28, temp_r30->unk4); + GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } void fn_1_6608(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 64f453f1..9157deeb 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -1,15 +1,14 @@ +#include "REL/m409Dll.h" + +#include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" -#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfmotion.h" -#include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" #include "ext_math.h" -#include "REL/m409Dll.h" - #ifndef __MWERKS__ #include "game/esprite.h" #endif @@ -175,11 +174,17 @@ void fn_1_7344(omObjData *arg0) f32 temp_f28; f32 temp_f29; f32 temp_f30; + f32 var_f25; + f32 var_f26; + f32 var_f27; f32 var_f31; + s16 temp_r0; s32 temp_r19; s16 temp_r22; s16 temp_r26; s16 temp_r25; + s16 var_r20; + s16 var_r21; s16 var_r27; s16 var_r28; s32 var_r24; @@ -374,15 +379,23 @@ void fn_1_7FE8(omObjData *arg0) { Vec sp20; Vec sp14; + s32 sp10; + f32 spC; + s16 sp8; unkStruct10 *var_r30; unkStruct8Sub *temp_r29; + f32 temp_f0; + f32 temp_f0_2; + f32 temp_f1; f32 temp_f29; f32 temp_f30; + f32 var_f28; s32 var_r28; + unkStruct7 *temp_r31; - unkStruct7 *temp_r31 = (unkStruct7 *)arg0->data; - s32 sp10 = arg0->model[0]; - s16 sp8 = temp_r31->unk1C; + temp_r31 = (unkStruct7 *)arg0->data; + sp10 = arg0->model[0]; + sp8 = temp_r31->unk1C; temp_r31->unkE = temp_r31->unk10 = 0; temp_r29 = fn_1_CCCC(temp_r31->unk57, 0); sp20.x = sp20.y = sp20.z = 0.0f; @@ -1010,8 +1023,10 @@ s32 fn_1_A584(unkStruct10 *arg0) s8 fn_1_A9C0(Vec *arg0, f32 *arg1) { + f32 sp8; f32 temp_f29; f32 var_f30; + f32 var_f28; s32 var_r27; s32 var_r29; unkStruct10 *var_r31; @@ -1065,6 +1080,8 @@ void fn_1_AC08(s32 *arg0, s32 arg1) f32 fn_1_AD40(f32 arg0, f32 arg1, f32 arg2) { f32 var_f31; + f32 var_f30; + f32 var_f29; var_f31 = fmodf(arg1 - arg0, 360.0); if (var_f31 < 0.0f) { @@ -1246,7 +1263,7 @@ f32 fn_1_BF38(s16 arg0) f32 length; motionData = &Hu3DMotion[arg0]; - hsfMotionData = motionData->hsfData->motion; + hsfMotionData = motionData->unk_04->motion; length = hsfMotionData->len; return length; } diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index e481e654..5d9671c5 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -535,6 +535,7 @@ float fn_1_4FEC(Vec arg0, Vec arg1, float arg8, Vec arg2, Vec arg3, float arg9, float sp2C; float var_f28; + float var_f26; float var_f25; float var_f24; float var_f23; @@ -776,6 +777,19 @@ void fn_1_61DC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) Vec sp68; Vec sp5C; Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + Vec *var_r29; + Vec *var_r28; + Vec *var_r27; + Vec *var_r26; + Vec *var_r25; + Vec *var_r24; if (arg0->unk_00_field1 || arg1->unk_00_field1) { if (arg0->unk_00_field1) { diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 1ddf2698..e6855848 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -1,16 +1,13 @@ -#include +#include "ext_math.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/minigame_seq.h" #include "game/object.h" -#include "game/objsub.h" #include "game/wipe.h" -#include "ext_math.h" #include "REL/m410Dll.h" - Process *lbl_1_bss_28; omObjData *lbl_1_bss_24; omObjData *lbl_1_bss_20; @@ -226,7 +223,11 @@ void fn_1_DEC(omObjData *object) void fn_1_FF0(omObjData *object) { - UnkM410Struct *var_r29 = object->data; + void *var_r31; + UnkM410Struct *var_r29; + void *var_r28; + + var_r29 = object->data; fn_1_5A8(object); switch (var_r29->unk_14) { @@ -264,8 +265,11 @@ void fn_1_FF0(omObjData *object) void fn_1_139C(omObjData *object) { - UnkM410Struct *var_r29 = object->data; - s32 var_r27 = 0; + UnkM410Struct *var_r29; + s32 var_r27; + + var_r29 = object->data; + var_r27 = 0; fn_1_5A8(object); if (!--var_r29->unk_20) { @@ -466,6 +470,9 @@ s32 fn_1_28DC(void) void fn_1_2914(Vec *arg0, Vec *arg1) { Vec sp10; + float var_f29; + float var_f28; + float var_f27; sp10.x = arg1->x - arg0->x; sp10.y = arg1->y - arg0->y; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 1503788a..3286d2c0 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -1,5 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" #include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" @@ -10,12 +9,10 @@ #include "game/pad.h" #include "game/sprite.h" - #include "REL/m410Dll.h" #ifndef __MWERKS__ #include "game/esprite.h" -#include "game/frand.h" #endif omObjData *lbl_1_bss_74; @@ -262,8 +259,14 @@ void fn_1_8414(omObjData *object) void fn_1_8678(omObjData *object) { - UnkM410Struct5 *var_r31 = object->data; - s32 var_r29 = 0; + float var_f31; + float var_f30; + float var_f29; + UnkM410Struct5 *var_r31; + s32 var_r29; + + var_r31 = object->data; + var_r29 = 0; var_r31->unk_10 = 0; if (fn_1_281C() == 2) { var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; @@ -462,6 +465,8 @@ void fn_1_9040(omObjData *object) Mtx sp38; Vec sp2C; Vec sp20; + Vec sp14; + Vec sp8; float var_f31; float var_f30; @@ -470,11 +475,18 @@ void fn_1_9040(omObjData *object) float var_f27; float var_f26; float var_f25; + float var_f24; + float var_f23; + float var_f22; + double var_f21; + double var_f20; UnkM410Struct5 *var_r31; s32 var_r29; s32 var_r28; s16 var_r27; + Vec *var_r26; + Vec *var_r25; var_r31 = object->data; fn_1_79F8(object->model[0], lbl_1_data_16C[var_r31->unk_08], sp38); @@ -1105,9 +1117,9 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r30->unk_120.unk_1C0, sizeof(var_r30->unk_120.unk_1C0), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, var_r30->unk_120.unk_E40, sizeof(var_r30->unk_120.unk_E40), sizeof(GXColor)); - GXSETARRAY(GX_VA_TEX0, var_r30->unk_120.unk_940, sizeof(var_r30->unk_120.unk_940), sizeof(Vec2f)); + GXSetArray(GX_VA_POS, var_r30->unk_120.unk_1C0, 12); + GXSetArray(GX_VA_CLR0, var_r30->unk_120.unk_E40, 4); + GXSetArray(GX_VA_TEX0, var_r30->unk_120.unk_940, 8); var_r31 = var_r30->unk_120.unk_00; for (var_r29 = 0; var_r29 < 16; var_r29++, var_r31++) { @@ -1126,13 +1138,10 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); MTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); GXLoadTexMtxImm(sp124, 33, GX_MTX2x4); - GXCallDisplayListNative(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); + GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); } } GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); } -#ifdef TARGET_PC - GXDestroyTexObj(&sp14); -#endif } diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index 3edd0e89..c99ccbca 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -16,12 +16,9 @@ #include "game/sprite.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include "game/hsfex.h" -#endif - typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02[5]; @@ -380,7 +377,7 @@ void fn_1_1074(void) CameraData *var_r31; var_r31 = &Hu3DCamera[0]; - C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar); + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); GXSetProjection(sp64, GX_PERSPECTIVE); GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); GXSetScissor(0, 0, 640, 480); diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 6436c16a..8f153855 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -11,6 +11,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "math.h" // bss s16 lbl_1_bss_7A0; @@ -568,6 +569,8 @@ void fn_1_2064(void) Vec sp28; Vec sp1C; Vec sp10; + f32 spC; + f32 sp8; Process *temp_r26; s32 var_r30; unkStruct *temp_r28; @@ -698,6 +701,10 @@ s32 fn_1_2708(void) f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { f32 temp_f31; + f32 var_f25; + f32 var_f26; + f32 var_f27; + f32 var_f28; f32 var_f29; temp_f31 = arg8 - fn_1_1D08(arg9); @@ -915,11 +922,18 @@ void fn_1_3950(void) f32 sp5C; volatile f32 sp58; f32 sp54; + f32 temp_f27; f32 var_f29; f32 temp_f31; f32 temp_f30; f32 var_f18; + f32 var_f19; + f32 var_f20; + f32 var_f21; + f32 var_f22; + f32 var_f23; f32 var_f24; + s32 var_r28; s32 var_r24; s32 var_r25; s32 var_r29; @@ -1255,6 +1269,9 @@ void fn_1_5838(unkStruct3 *arg0) Vec spA8; Vec sp9C; Vec sp90; + Vec sp84; + Vec sp78; + Vec sp6C; s32 sp68; f32 sp64; f32 sp60; @@ -1576,6 +1593,13 @@ void fn_1_6814(unkStruct3 *arg0) void fn_1_7C60(void) { Vec sp1A0; + Vec sp188; + Vec sp17C; + Vec sp170; + Vec sp164; + Vec sp158; + Vec sp14C; + Vec sp140; f32 sp13C; f32 sp138; f32 sp134; @@ -1996,6 +2020,8 @@ void fn_1_AA88(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) void fn_1_ADC8(void) { + Vec sp14; + Vec sp8; f32 var_f31; void *temp_r28; Process *var_r29; diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index 7a1fb9ac..718bf09c 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -19,7 +19,7 @@ #include "game/hsfex.h" #endif -extern s32 rand8(void); +s32 rand8(void); typedef struct struct_bss_2A6C StructBss2A6C; @@ -468,12 +468,12 @@ void fn_1_10B8(Work19C8 *arg0) { s32 temp_r31; s32 temp_r30; - u8 sp16C[12][17] = {0}; - u8 sp6C[12] = {0}; + u8 sp16C[12][17] = {}; + u8 sp6C[12] = {}; s32 temp_r22 = (arg0->unk48[0]->unk18 - 4 < 0) ? 0 : (arg0->unk48[0]->unk18 - 4); s32 temp_r21 = (arg0->unk48[0]->unk18 + 4 > 11) ? 11 : (arg0->unk48[0]->unk18 + 4); - s32 sp44[2] = {0}; - s32 sp3C[2] = {0}; + s32 sp44[2] = {}; + s32 sp3C[2] = {}; s32 sp34[2] = { 9, 9 }; s32 temp_r20 = 0; s32 temp_r19 = 0; @@ -722,11 +722,12 @@ void fn_1_19C8(omObjData *object) HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_DISPOFF); HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); { - s32 sp258[12] = {0}; + s32 sp258[12] = {}; s32 sp194; for (sp194 = 0; sp194 < 3; sp194++) { StructBss2A6C *sp190; for (sp190 = lbl_1_bss_7884[sp194 + (temp_r31->unk10 * 3)]; sp190; sp190 = sp190->unk48) { + sp258[sp194] += (sp190 && sp190->unk0 && (sp190->unk1 & 0x2) == 0 && sp258[sp194] < 9); } } @@ -941,7 +942,7 @@ void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1); void fn_1_52A4(s32 arg0) { omObjData *sp1EC = lbl_1_bss_30; - StructBss2A6C *sp2E48[14][19] = {NULL}; + StructBss2A6C *sp2E48[14][19] = {}; StructBss2A6C *sp1E8 = NULL; StructBss2A6C *temp_r31; StructBss2A6C *temp_r30; @@ -2010,11 +2011,7 @@ void fn_1_C6E0(omObjData *object) lbl_1_bss_FC = 0; memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4)); lbl_1_bss_D0 = 0; -#ifdef NON_MATCHING - memset(&lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); -#else memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); -#endif object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x00)); omSetTra(object, 0, 0, 0); Hu3DMotionSpeedSet(object->model[0], 0); diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index bcd43d32..8ca555e6 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -10,10 +10,6 @@ #include "game/sprite.h" #include "game/wipe.h" -#ifndef __MWERKS__ -#include "game/hsfex.h" -#endif - typedef struct UnkM414Struct { s32 unk00; s32 unk04; diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 975aa227..2053aed7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -14,6 +14,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "math.h" // bss unkStruct5 lbl_1_bss_36C; @@ -420,11 +421,8 @@ void fn_1_1960(omObjData *object) GXDrawDone(); temp_r3 = fn_1_9734(object->model[2]); temp_r29 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; -#ifdef __MWERKS__ - // TODO PC memcpy((*temp_r3)->bmp->data, OSCachedToUncached(Hu3DShadowData.unk_04), temp_r29); -#endif - DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29); + DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29); break; case 2: Hu3DModelShadowMapObjSet(object->model[0], "kyanbasu"); diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index 96ae4ec7..6533a2dc 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -1,4 +1,3 @@ -#include "game/memory.h" #define HUSPR_USE_OLD_DEFS #include "REL/m415Dll.h" @@ -242,20 +241,20 @@ void fn_1_88B8(unkSubStruct2 *arg0) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk40, 4 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk44, 4 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 4 * sizeof(HsfVector2f), 8); + GXSetArray(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec)); - GXCallDisplayListNative(var_r31->unk3C, var_r31->unk38); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); + GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } } @@ -768,7 +767,7 @@ void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) HuSprAnimKill(var_r31->unk0); var_r31->unk8 |= 0xFFFF0000; var_r30 = HuSprAnimMake(arg2, arg3, arg1); - var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), MEMORY_DEFAULT_NUM); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); var_f31 = arg4 / (f32)var_r30->bmp->sizeX; var_f30 = arg5 / (f32)var_r30->bmp->sizeY; var_r31->unk0 = var_r30; @@ -886,7 +885,7 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) return 1; } -void fn_1_B634(void) +void fn_1_B634(s32 arg0) { s32 var_r28; s32 var_r27; diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index b5ca6c1d..0364445e 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -3,7 +3,6 @@ #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" -#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" @@ -14,6 +13,7 @@ #include "game/wipe.h" #include "ext_math.h" +#include "math.h" #include "REL/m416Dll.h" diff --git a/src/REL/m416Dll/map.c b/src/REL/m416Dll/map.c index 24f26414..ea6a46bd 100644 --- a/src/REL/m416Dll/map.c +++ b/src/REL/m416Dll/map.c @@ -5,11 +5,15 @@ #include "game/hsfanim.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/wipe.h" #include "ext_math.h" +#include "math.h" #include "REL/m416Dll.h" @@ -274,9 +278,6 @@ void fn_1_89BC(ModelData *model, Mtx mtx) GXTexCoord2f32(0, 1); GXEnd(); fn_1_8904(lbl_1_bss_1180, GX_FALSE); -#ifdef TARGET_PC - GXDestroyTexObj(&sp14); -#endif } void fn_1_8EA0(void) diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index 60972bd2..db0d47a6 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -1,14 +1,11 @@ #include "ext_math.h" #include "game/audio.h" -#include "game/chrman.h" #include "game/hsfdraw.h" #include "game/minigame_seq.h" -#include "game/objsub.h" #include "game/wipe.h" #include "REL/m417Dll.h" - typedef struct UnkM417Struct { /* 0x00 */ u32 unk_00; /* 0x04 */ u32 unk_04; @@ -112,9 +109,9 @@ void fn_1_4D8(omObjData *object) { UnkM417Struct *var_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM417Struct), 268435456); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x68, 268435456); var_r31 = object->data; - memset(var_r31, 0, sizeof(UnkM417Struct)); + memset(var_r31, 0, 0x68); var_r31->unk_00 = 0; var_r31->unk_04 = 0; var_r31->unk_0C = 0; diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index c371130f..81f282b0 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -4,15 +4,13 @@ #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" #include "REL/m417Dll.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - typedef struct UnkM417Struct8 { /* 0x00 */ u16 unk_00; /* 0x04 */ float unk_04; diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 5bb65bee..85cdcaea 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -6,10 +6,6 @@ #include "REL/m417Dll.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - typedef struct UnkM417Struct3 { /* 0x00 */ s16 unk_00; /* 0x02 */ char unk02[4]; @@ -269,10 +265,12 @@ void fn_1_3D54(omObjData *object) { } void fn_1_3D58(omObjData *object) { Vec spC; + float sp8; float var_f31; float var_f29; float var_f28; + float var_f27; s32 var_r31; s32 var_r30; @@ -307,7 +305,7 @@ void fn_1_3D58(omObjData *object) for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_178.unk_6BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec), MEMORY_DEFAULT_NUM); lbl_1_bss_178.unk_6C4[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec), MEMORY_DEFAULT_NUM); - lbl_1_bss_178.unk_6CC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(GXColor), MEMORY_DEFAULT_NUM); + lbl_1_bss_178.unk_6CC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 1080 * sizeof(GXColor), MEMORY_DEFAULT_NUM); lbl_1_bss_178.unk_6D4[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, 30 * 36 * sizeof(Vec2f), MEMORY_DEFAULT_NUM); lbl_1_bss_178.unk_6E0[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_178.unk_6DC, MEMORY_DEFAULT_NUM); DCFlushRange(lbl_1_bss_178.unk_6E0[var_r31], lbl_1_bss_178.unk_6DC); @@ -576,8 +574,8 @@ void fn_1_4E64(omObjData *object) MTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); MTXConcat(sp68, spC8, sp98); MTXInverse(sp98, spC8); - MTXReorder(spC8, sp38); - MTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18); + PSMTXReorder(spC8, sp38); + PSMTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18); sp2C.x = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * sind(var_r31->unk_10)); sp2C.y = 0.0f; sp2C.z = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * cosd(var_r31->unk_10)); @@ -754,6 +752,9 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) Mtx sp38; GXTexObj sp18; + GXColor *var_r30; + GXColor *var_r29; + GXColor sp14 = { 0xD8, 0xE2, 0xE5, 0x4C }; GXColor sp10 = { 0xE0, 0xD8, 0xF4, 0x40 }; DCStoreRangeNoSync(&sp14, 4); @@ -855,19 +856,16 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_POS, lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_NRM, lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(GXColor), sizeof(GXColor)); - GXSETARRAY(GX_VA_TEX0, lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec2f), sizeof(Vec2f)); - GXCallDisplayListNative(lbl_1_bss_178.unk_6E0[0], lbl_1_bss_178.unk_6E8[0]); + GXSetArray(GX_VA_POS, lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4], 12); + GXSetArray(GX_VA_NRM, lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4], 12); + GXSetArray(GX_VA_CLR0, lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 4); + GXSetArray(GX_VA_TEX0, lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 8); + GXCallDisplayList(lbl_1_bss_178.unk_6E0[0], lbl_1_bss_178.unk_6E8[0]); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); GXSetTevDirect(GX_TEVSTAGE2); GXSetTevDirect(GX_TEVSTAGE3); -#ifdef TARGET_PC - GXDestroyTexObj(&sp18); -#endif } void fn_1_6B04(ModelData *model, Mtx arg1) @@ -1003,7 +1001,14 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) void fn_1_7510(float arg8, float arg9, float argA, float argB) { - float var_f31 = 180.0 + (atan2d(arg8, argA)); + float var_f31; + float var_f30; + float var_f28; + + s32 var_r31; + s32 var_r30; + + var_f31 = 180.0 + (atan2d(arg8, argA)); if (var_f31 >= 360.0f) { var_f31 -= 360.0f; } diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index cc4c9627..38b547ca 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -1,6 +1,5 @@ #include "ext_math.h" #include "game/chrman.h" -#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/minigame_seq.h" #include "game/objsub.h" @@ -10,12 +9,6 @@ #include "REL/m418Dll.h" - -#ifndef __MWERKS__ -s32 rand8(void); -#include "game/audio.h" -#endif - // types typedef struct M418DllUnkStruct2 { omObjData *unk0; @@ -439,7 +432,7 @@ void fn_1_E74(omObjData *object) } if (object->work[1] != 0) { const char *sp8[4] = { "doukasen-null_B", "doukasen-null_A", "doukasen-null_X", "doukasen-null_Y" }; - Hu3DModelObjMtxGet(object->model[3], (char*)sp8[object->work[0]], sp18); + Hu3DModelObjMtxGet(object->model[3], sp8[object->work[0]], sp18); Hu3DModelPosSet(object->model[4], sp18[0][3], sp18[1][3], sp18[2][3]); } temp_r27 = &lbl_1_bss_170[object->work[0]]; @@ -501,6 +494,7 @@ s32 fn_1_18FC(omObjData *object, Vec arg1, f32 arg8, f32 arg9) f32 var_f30; f32 var_f27; f32 var_f26; + f32 var_f24; f32 var_f20; var_r28 = 0; @@ -812,6 +806,7 @@ void fn_1_3240(omObjData *object) Vec sp8; M418DllUnkStruct3 *temp_r28; ModelData *temp_r30; + M418DllWorkStruct *var_r29; temp_r30 = &Hu3DData[object->model[11]]; temp_r28 = &lbl_1_bss_26C[object->work[0]]; @@ -863,6 +858,7 @@ void fn_1_3444(omObjData *object, Vec arg1, f32 arg8, f32 arg9) f32 temp_f28; f32 var_f24; f32 var_f23; + f32 var_f22; s32 var_r27; s32 var_r29; @@ -965,14 +961,17 @@ void fn_1_3444(omObjData *object, Vec arg1, f32 arg8, f32 arg9) void fn_1_3EB0(omObjData *object, Vec arg1, f32 arg8, f32 arg9) { + M418DllUnkStruct3 *temp_r30; + s32 sp10; f32 var_f31; f32 var_f30; f32 var_f27; f32 var_f26; + f32 var_f24; f32 var_f20; - s32 sp10 = 0; - M418DllUnkStruct3 *temp_r30 = &lbl_1_bss_26C[object->work[0]]; + sp10 = 0; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; var_f31 = arg1.x - object->trans.x; var_f30 = object->trans.z - arg1.z; var_f26 = 90.0 + atan2d(var_f30, var_f31); @@ -1133,10 +1132,16 @@ void fn_1_4C84(omObjData *object) Mtx sp14; Vec sp8; f32 var_f31; + M418DllUnkStruct3 *temp_r26; + M418DllWorkStruct *var_r27; + M418DllUnkStruct3 *temp_r30; + ModelData *temp_r28; + ModelData *temp_r29; + s32 temp_r0; + u32 temp_r3; - M418DllUnkStruct3 *temp_r30 = &lbl_1_bss_26C[object->work[0]]; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; if (temp_r30->unk8 == 0) { - ModelData *temp_r29; var_f31 = (0.5f * temp_r30->unk3C) + ((CRot.x / 90.0f) * (0.5f * temp_r30->unk3C)); temp_r29 = &Hu3DData[object->model[12]]; if ((temp_r30->unk14 == 7) || (temp_r30->unk14 == 5)) { @@ -1256,9 +1261,11 @@ void fn_1_56AC(s32 arg0) void fn_1_5768(s32 arg0) { s32 var_r31; + M418DllUnkStruct4 *var_r30; + M418DllUnkStruct *var_r26; for (var_r31 = 0; var_r31 < 3; var_r31++) { - M418DllUnkStruct4 *var_r30 = &lbl_1_bss_170[var_r31]; + var_r30 = &lbl_1_bss_170[var_r31]; var_r30->unkC = 0; } @@ -1268,8 +1275,9 @@ void fn_1_5768(s32 arg0) s32 fn_1_57E4(s32 arg0) { M418DllUnkStruct4 *temp_r31; - s32 var_r30; + M418DllUnkStruct *var_r25; s32 var_r29; + s32 var_r30; if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -1351,6 +1359,7 @@ s32 fn_1_5A6C(s32 arg0) s32 var_r26; omObjData *temp_r25; s32 var_r24; + M418DllUnkStruct *temp_r20; temp_r27 = &lbl_1_bss_3EC; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -1642,6 +1651,7 @@ void fn_1_6808(s32 arg0) M418DllUnkStruct6 *var_r30 = &lbl_1_bss_3EC; M418DllUnkStruct3 *var_r29; M418DllUnkStruct4 *var_r28; + M418DllUnkStruct *var_r23; HuAudAUXVolSet(0x40, 0x40); @@ -1668,10 +1678,12 @@ s32 fn_1_6914(s32 arg0) { Vec sp14; M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct3 *temp_r30; s32 var_r29; s32 temp_r27; M418DllUnkStruct6 *var_r26; M418DllUnkStruct4 *var_r25; + M418DllUnkStruct *var_r18; var_r26 = &lbl_1_bss_3EC; @@ -1994,6 +2006,7 @@ s32 fn_1_7B68(s32 arg0) M418DllUnkStruct4 *temp_r28; s32 var_r27; s32 var_r26; + M418DllUnkStruct *temp_r21; var_r26 = -1; temp_r30 = &lbl_1_bss_3EC; @@ -2238,6 +2251,7 @@ void fn_1_8548(void) void fn_1_8668(void) { M418DllUnkStruct sp8; + f32 temp_f1; M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; @@ -2298,6 +2312,7 @@ s32 fn_1_88B4(s32 arg0) s32 var_r29; M418DllUnkStruct3 *var_r28; M418DllUnkStruct3 *var_r27; + M418DllUnkStruct *var_r23; var_r29 = 5; var_r30 = &lbl_1_bss_3EC; @@ -2411,8 +2426,10 @@ void fn_1_8C84(s32 arg0) s32 var_r30; M418DllUnkStruct6 *temp_r29; M418DllUnkStruct3 *temp_r28; + s32 var_r27; + s32 temp_r0; - s32 var_r27 = 0; + var_r27 = 0; temp_r29 = &lbl_1_bss_3EC; for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r31 = &lbl_1_bss_26C[temp_r29->unk4[var_r30]]; @@ -2435,12 +2452,17 @@ Vec lbl_1_data_3FC[6] = { { -200.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, -400.0f }, { s32 fn_1_8D70(s32 arg0) { + s32 sp10; + s32 spC; + s32 sp8; M418DllUnkStruct3 *temp_r31; M418DllUnkStruct6 *temp_r30; s32 var_r29; M418DllUnkStruct3 *temp_r28; M418DllUnkStruct3 *temp_r27; omObjData *var_r26; + s32 temp_r3; + void *temp_r4; temp_r30 = &lbl_1_bss_3EC; @@ -2471,7 +2493,9 @@ s32 fn_1_8D70(s32 arg0) if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); } - return 0; + else { + return 0; + } } void fn_1_8F74(s32 arg0) @@ -2645,8 +2669,10 @@ void fn_1_958C(void) M418DllUnkStruct4 *temp_r27; M418DllUnkStruct4 *temp_r26; M418DllUnkStruct3 *temp_r25; + s32 temp_r0; + s32 var_r24; - s32 var_r24 = 0; + var_r24 = 0; temp_r28 = &lbl_1_bss_1E0; for (var_r30 = 1; var_r30 < 4; var_r30++) { fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 2); @@ -2831,9 +2857,7 @@ void fn_1_9F94(omObjData *object) object->func = fn_1_9BA4; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_A1F0(void) { diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c index 11054aac..dd58a28a 100755 --- a/src/REL/m419Dll/main.c +++ b/src/REL/m419Dll/main.c @@ -3,7 +3,6 @@ #include "game/data.h" #include "game/frand.h" #include "game/gamework_data.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" @@ -14,6 +13,7 @@ #include "game/sprite.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" typedef struct { @@ -220,7 +220,7 @@ void fn_1_57C(s16 arg0) temp_r30 = &Hu3DData[lbl_1_bss_5BE]; sp14 = temp_r30->pos; sp14.y += 50.0f; - Hu3D3Dto2D(&sp14, 1, &sp8); + Hu3D3Dto2D(&sp14, 1, &sp8.x); var_r31 = sp8.x - 96.0f; var_r31 &= 0xFFF8; sp8.x = var_r31; @@ -323,10 +323,6 @@ void fn_1_AD0(s16 arg0) GXPosition3f32(lbl_1_bss_0[arg0].x, lbl_1_bss_0[arg0].y + 192.0f, 0.0f); GXTexCoord2f32(0.0f, 1.0f); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&sp58); - GXDestroyTexObj(&sp38); -#endif } void fn_1_F58(void) @@ -552,6 +548,7 @@ void fn_1_F58(void) float fn_1_1F84(float arg0, float arg1) { float var_f31; + float var_f30; if (arg0 > 600.0f - arg1) { var_f31 = 600.0f + 200.0f * ((800.0f - (arg0 + arg1)) / 200.0f); diff --git a/src/REL/m420dll/camera.c b/src/REL/m420dll/camera.c index 571c823a..c587a69e 100644 --- a/src/REL/m420dll/camera.c +++ b/src/REL/m420dll/camera.c @@ -1,9 +1,12 @@ #include "ext_math.h" +#include "game/audio.h" #include "game/flag.h" #include "game/hsfman.h" +#include "game/minigame_seq.h" #include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" +#include "game/wipe.h" #include "REL/m420dll.h" diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index 32ccdabf..d6574513 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -1,9 +1,10 @@ #include "ext_math.h" #include "game/flag.h" -#include "game/frand.h" #include "game/hsfman.h" #include "game/minigame_seq.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" #include "game/wipe.h" #include "REL/m420dll.h" diff --git a/src/REL/m420dll/map.c b/src/REL/m420dll/map.c index a2bebd31..14b48a41 100644 --- a/src/REL/m420dll/map.c +++ b/src/REL/m420dll/map.c @@ -4,10 +4,6 @@ #include "REL/m420dll.h" -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - typedef struct M420DllUnkMapStruct2 { /* 0x00 */ struct { s8 unk_00_field0 : 1; diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 6178a969..5bdb79f2 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -3,11 +3,11 @@ #include "game/chrman.h" #include "game/esprite.h" #include "game/hsfdraw.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" #include "REL/m420dll.h" @@ -386,6 +386,10 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) M420DllUnkStruct2 *var_r30; s32 var_r29; s32 var_r28; + s32 var_r26; + s32 var_r23; + s32 var_r21; + s32 var_r18; var_r30 = &lbl_1_data_50[arg0->unk_08]; fn_1_3098(arg0); @@ -465,11 +469,27 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) void fn_1_276C(M420DllPlayerStruct *arg0) { + s32 sp8[4]; + float var_f31; float var_f30; s32 var_r30; - M420DllUnkStruct2 *var_r29 = &lbl_1_data_50[arg0->unk_08]; + M420DllUnkStruct2 *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + var_r29 = &lbl_1_data_50[arg0->unk_08]; if (arg0->unk_4C == 1) { HuAudFXPlay(0x5F1); fn_1_669C(1); @@ -608,6 +628,14 @@ void fn_1_2D7C(M420DllPlayerStruct *arg0) void fn_1_2EA8(M420DllPlayerStruct *arg0) { s16 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; fn_1_326C(arg0); CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0); @@ -984,12 +1012,22 @@ void fn_1_4294(M420DllPlayerStruct *arg0) void fn_1_4574(M420DllPlayerStruct *arg0) { + float var_f31; + M420DllPlayerStruct *var_r31; + s32 var_r29; + s32 var_r28; + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[1], 0.0f, 4.0f, 0); fn_1_2260(arg0); } void fn_1_476C(M420DllPlayerStruct *arg0) { + float var_f31; + M420DllPlayerStruct *var_r31; + s32 var_r29; + s32 var_r28; + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[2], 0.0f, 4.0f, 0); fn_1_2260(arg0); } diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c index 67639fbc..8ab50b74 100644 --- a/src/REL/m421Dll/main.c +++ b/src/REL/m421Dll/main.c @@ -834,6 +834,8 @@ s32 fn_1_3FF8(void) void fn_1_4030(Vec *sp8, Vec *var_r31) { Vec sp10; + float var_f30; + float var_f29; VECSubtract(var_r31, sp8, &sp10); Center = *var_r31; diff --git a/src/REL/m421Dll/player.c b/src/REL/m421Dll/player.c index ae99233f..ce14a94c 100644 --- a/src/REL/m421Dll/player.c +++ b/src/REL/m421Dll/player.c @@ -1800,8 +1800,8 @@ void fn_1_ABDC(ModelData *model, Mtx matrix) MTXConcat(sp58, sp88, sp118); MTXConcat(spB8, sp118, spE8); GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); - GXSETARRAY(GX_VA_POS, work->unk_50[var_r28], 14 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, &work->unk_40[var_r28], sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_POS, work->unk_50[var_r28], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); GXPosition1x8(0); GXPosition1x8(0); @@ -1815,8 +1815,8 @@ void fn_1_ABDC(ModelData *model, Mtx matrix) MTXConcat(sp58, sp88, sp118); MTXConcat(spB8, sp118, spE8); GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); - GXSETARRAY(GX_VA_POS, work->unk_50[var_r28 + 1], 14 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, &work->unk_40[var_r28], sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_POS, work->unk_50[var_r28 + 1], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); GXPosition1x8(0); GXPosition1x8(0); @@ -1825,7 +1825,4 @@ void fn_1_ABDC(ModelData *model, Mtx matrix) GXColor1x8(1); } } -#ifdef TARGET_PC - GXDestroyTexObj(&sp8); -#endif } diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c index 6e0bcbdd..79b64b3c 100755 --- a/src/REL/m422Dll/main.c +++ b/src/REL/m422Dll/main.c @@ -10,16 +10,13 @@ #include "game/hsfmotion.h" #include "game/minigame_seq.h" #include "game/object.h" -#include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" -#ifndef __MWERKS__ -s32 rand8(void); -#endif typedef struct { /* 0x00 */ s32 unk00; diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c index 1754f6e3..4590b4a0 100755 --- a/src/REL/m423Dll/main.c +++ b/src/REL/m423Dll/main.c @@ -9,21 +9,17 @@ #include "game/memory.h" #include "game/minigame_seq.h" #include "game/object.h" -#include "game/objsub.h" #include "game/pad.h" #include "game/process.h" #include "game/sprite.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - #define frand7() (frand() & 0x7F) -SHARED_SYM extern u32 GlobalCounter; +extern u32 GlobalCounter; typedef struct { /* 0x00 */ s32 unk00; @@ -878,16 +874,16 @@ void fn_1_14A0(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_29C, sizeof(lbl_1_data_29C), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_29C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_30C, sizeof(lbl_1_data_30C), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, lbl_1_data_30C, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, lbl_1_data_2CC, sizeof(lbl_1_data_2CC), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, lbl_1_data_2CC, 8); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX1, lbl_1_data_2EC, sizeof(lbl_1_data_2EC), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX1, lbl_1_data_2EC, 8); GXBegin(GX_QUADS, GX_VTXFMT0, 4); for (i = 0; i < 4; i++) { GXPosition1x16(i); @@ -1259,9 +1255,9 @@ void fn_1_29BC(ModelData *arg0, Mtx arg1) DCFlushRangeNoSync(temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14)); DCFlushRangeNoSync(temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C)); PPCSync(); - GXSETARRAY(GX_VA_POS, temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14), sizeof(*temp_r31->unk14)); - GXSETARRAY(GX_VA_CLR0, temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C), sizeof(*temp_r31->unk1C)); - GXCallDisplayListNative(temp_r31->unk38, temp_r31->unk34); + GXSetArray(GX_VA_POS, temp_r31->unk14, sizeof(*temp_r31->unk14)); + GXSetArray(GX_VA_CLR0, temp_r31->unk1C, sizeof(*temp_r31->unk1C)); + GXCallDisplayList(temp_r31->unk38, temp_r31->unk34); } } } @@ -4475,9 +4471,9 @@ void fn_1_EF44(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r30->unk20C, 32 * sizeof(*temp_r30->unk20C), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, temp_r30->unk214, 5 * sizeof(*temp_r30->unk214), sizeof(GXColor)); - GXSETARRAY(GX_VA_TEX0, temp_r30->unk210, 32 * sizeof(*temp_r30->unk210), sizeof(Vec2f)); + GXSetArray(GX_VA_POS, temp_r30->unk20C, 12); + GXSetArray(GX_VA_CLR0, temp_r30->unk214, 4); + GXSetArray(GX_VA_TEX0, temp_r30->unk210, 8); var_r31 = temp_r30->unk00; for (i = 0; i < 16; i++, var_r31++) { if (var_r31->unk00 == 0) { @@ -4497,13 +4493,10 @@ void fn_1_EF44(ModelData *arg0, Mtx arg1) GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); MTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); GXLoadTexMtxImm(sp124, GX_TEXMTX1, GX_MTX2x4); - GXCallDisplayListNative(temp_r30->unk220, temp_r30->unk21C); + GXCallDisplayList(temp_r30->unk220, temp_r30->unk21C); } GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); -#ifdef TARGET_PC - GXDestroyTexObj(&sp14); -#endif } s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) @@ -4512,6 +4505,7 @@ s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) ModelData *var_r28; StructM423_0B *var_r26; StructM423_0A *var_r31; + s32 var_r27; s32 i; var_r29 = lbl_1_bss_9C; @@ -4867,7 +4861,7 @@ void fn_1_10BC8(void) if (var_r31->fov <= 0.0f) { return; } - C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar); + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); GXSetProjection(sp64, GX_PERSPECTIVE); GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); GXSetScissor(0, 0, 640, 480); @@ -4917,9 +4911,6 @@ void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, GXInitTexObjLOD(&sp18, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&sp18, arg2); -#ifdef TARGET_PC - GXDestroyTexObj(&sp18); -#endif } s16 fn_1_11114(AnimData *arg0, s16 arg1) @@ -5157,7 +5148,7 @@ void fn_1_11900(ModelData *arg0, Mtx arg1) if (HmfInverseMtxF3X3(arg1, sp128) == 0) { MTXIdentity(sp128); } - MTXReorder(sp128, sp8); + PSMTXReorder(sp128, sp8); if (temp_r31->unk4C) { var_r18 = temp_r31->unk4C; var_r18(arg0, temp_r31, arg1); @@ -5165,7 +5156,7 @@ void fn_1_11900(ModelData *arg0, Mtx arg1) var_r29 = temp_r31->unk3C; var_r30 = temp_r31->unk40; var_r28 = temp_r31->unk44; - MTXROMultVecArray(sp8, lbl_1_data_8C4, sp38, 4); + PSMTXROMultVecArray(sp8, lbl_1_data_8C4, sp38, 4); for (i = 0; i < temp_r31->unk26; i++, var_r29++) { if (!var_r29->unk30) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -5230,14 +5221,14 @@ void fn_1_11900(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r31->unk40, temp_r31->unk26 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &temp_r31->unk3C->unk44, sizeof(GXColor), 76); + GXSetArray(GX_VA_CLR0, &temp_r31->unk3C->unk44, 76); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r31->unk44, temp_r31->unk26 * sizeof(Vec2f) * 4, sizeof(Vec2f)); - GXCallDisplayListNative(temp_r31->unk48, temp_r31->unk34); + GXSetArray(GX_VA_TEX0, temp_r31->unk44, 8); + GXCallDisplayList(temp_r31->unk48, temp_r31->unk34); if (shadowModelDrawF == 0) { if (!(temp_r31->unk21 & 2)) { temp_r31->unk28++; diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index f0a15594..c8c3177e 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -4,12 +4,10 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" -#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/memory.h" #include "game/pad.h" #include "game/sprite.h" #include "string.h" @@ -1086,7 +1084,7 @@ void *fn_1_6078(s32 arg0) if (var_r31 == 0x20) { return NULL; } - lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); return lbl_1_bss_5BC[var_r31]; } diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index 07647127..42d11821 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1,20 +1,13 @@ #include "REL/m424Dll.h" +#include "math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" -#include "game/EnvelopeExec.h" #include "game/gamework_data.h" -#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/memory.h" #include "game/pad.h" -#include "math.h" - -#ifndef __MWERKS__ -#include "game/frand.h" -#endif // STRUCT typedef struct _M424DllClawStruct { @@ -153,8 +146,8 @@ void fn_1_94D0(omObjData *arg0) s32 var_r29; M424DllClawStruct *var_r31; - var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M424DllClawStruct), MEMORY_DEFAULT_NUM); - memset(var_r31, 0, sizeof(M424DllClawStruct)); + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B0, 0x10000000); + memset(var_r31, 0, 0x1B0); var_r31->unk0 = lbl_1_bss_24[3]; var_r31->unk2 = GWPlayerCfg[var_r31->unk0].character; var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c index 5cd4eb0d..4536b396 100644 --- a/src/REL/m424Dll/map.c +++ b/src/REL/m424Dll/map.c @@ -55,8 +55,8 @@ void fn_1_1BB8(omObjData *arg0) { M424DllMapStruct *var_r30; - var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M424DllMapStruct), MEMORY_DEFAULT_NUM); - memset(var_r30, 0, sizeof(M424DllMapStruct)); + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + memset(var_r30, 0, 0x54); var_r30->unk0 = 0.0f; var_r30->unk4 = 0.0f; var_r30->unk38 = -1; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index f2221b7b..7d1a75d0 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -5,6 +5,7 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/esprite.h" #include "game/flag.h" #include "game/frand.h" #include "game/gamework_data.h" @@ -17,14 +18,16 @@ #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" #include "game/wipe.h" #include "math.h" #include "string.h" #include "REL/m425Dll.h" -SHARED_SYM extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h? +extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h? typedef struct M425DllWork { u8 unk_00; @@ -339,6 +342,8 @@ void fn_1_8E4(omObjData *object) s32 var_r30; s32 var_r29; s32 var_r28; + s16 var_r26; + s16 var_r25; switch (lbl_1_bss_648) { case 4: @@ -678,49 +683,49 @@ void fn_1_1B40(omObjData *object) float var_f19; float var_f18; - (void)object; - (void)object; - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r30; - (void)var_r30; - (void)var_r30; - (void)var_r30; - (void)var_r30; - (void)var_r30; - (void)var_r29; - (void)var_r29; - (void)var_r29; - (void)var_r29; - (void)var_r29; - (void)var_r29; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f31; - (void)var_f20; - (void)var_f20; - (void)var_f20; - (void)var_f19; - (void)var_f19; - (void)var_f19; - (void)var_f18; - (void)var_f18; - (void)var_f18; + (void) object; + (void) object; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f20; + (void) var_f20; + (void) var_f20; + (void) var_f19; + (void) var_f19; + (void) var_f19; + (void) var_f18; + (void) var_f18; + (void) var_f18; } var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); @@ -1450,7 +1455,7 @@ void fn_1_5608(GXColor **arg0, s16 arg1, GXColor *arg2) s32 var_r29; s32 var_r28; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), 0x10000000); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -1623,20 +1628,20 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8) GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, var_r26, GX_DF_CLAMP, GX_AF_SPOT); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_14, var_r31->unk_2A * (4 * sizeof(Vec)), sizeof(Vec)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk_18, var_r31->unk_2A * (4 * sizeof(GXColor)), sizeof(GXColor)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_18, 4); for (var_r29 = GX_TEXMAP0; var_r29 < (var_r31->unk_28 * var_r31->unk_2A); var_r29++) { GXSetVtxDesc(var_r29 + 0xD, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, var_r31->unk_2A * (4 * sizeof(Vec2f)), sizeof(Vec2f)); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk_1C, var_r31->unk_2A * (4 * sizeof(Vec)), sizeof(Vec)); - GXCallDisplayListNative(var_r31->unk_10, var_r31->unk_0C); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_1C, 0xC); + GXCallDisplayList(var_r31->unk_10, var_r31->unk_0C); } u32 lbl_1_data_114 = 0x41C64E6D; @@ -1673,7 +1678,18 @@ float fn_1_66BC(float arg8, float arg9, float argA, float argB) void fn_1_6734(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) { float spC[3]; + float sp8; + float var_f31; + float var_f30; float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c index 9711ac9d..3f02dce6 100644 --- a/src/REL/m425Dll/thwomp.c +++ b/src/REL/m425Dll/thwomp.c @@ -4,6 +4,9 @@ #include "ext_math.h" #include "game/animdata.h" #include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" @@ -11,15 +14,20 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m425Dll.h" -SHARED_SYM extern u32 GlobalCounter; -SHARED_SYM extern LightData Hu3DLocalLight[0x20]; +extern u32 GlobalCounter; +extern LightData Hu3DLocalLight[0x20]; typedef struct M425DllUnkStruct4 { s16 unk_00; @@ -423,24 +431,24 @@ s32 fn_1_6EC4(float var_f24, float sp8, s16 var_r22, s16 var_r24) var_r31->unk_10E = var_r24; var_r31->unk_110 = var_r31->unk_144[24] + var_r31->unk_112[24]; var_r31->unk_240 = 0x19; - var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(s16), var_r23->unk_48); - memset(var_r31->unk_178, 0, var_r31->unk_110 * sizeof(s16)); - var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_17C, 0, var_r31->unk_110 * sizeof(Vec)); - var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_180, 0, var_r31->unk_110 * sizeof(Vec)); - var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec2f), var_r23->unk_48); - memset(var_r31->unk_184, 0, var_r31->unk_110 * sizeof(Vec2f)); - var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_188, 0, var_r31->unk_110 * sizeof(Vec)); - var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_18C, 0, var_r31->unk_110 * sizeof(Vec)); + var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 2, var_r23->unk_48); + memset(var_r31->unk_178, 0, var_r31->unk_110 * 2); + var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_17C, 0, var_r31->unk_110 * 0xC); + var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_180, 0, var_r31->unk_110 * 0xC); + var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 8, var_r23->unk_48); + memset(var_r31->unk_184, 0, var_r31->unk_110 * 8); + var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_188, 0, var_r31->unk_110 * 0xC); + var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_18C, 0, var_r31->unk_110 * 0xC); var_r31->unk_190 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 6, var_r23->unk_48); memset(var_r31->unk_190, 0, var_r31->unk_110 * 6); - var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_194, 0, var_r31->unk_110 * sizeof(Vec)); - var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * sizeof(Vec), var_r23->unk_48); - memset(var_r31->unk_198, 0, var_r31->unk_112[0] * sizeof(Vec)); + var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_194, 0, var_r31->unk_110 * 0xC); + var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * 0xC, var_r23->unk_48); + memset(var_r31->unk_198, 0, var_r31->unk_112[0] * 0xC); var_r31->unk_1A0 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110, var_r23->unk_48); memset(var_r31->unk_1A0, 0, var_r31->unk_110); for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { @@ -2123,23 +2131,23 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { MTXIdentity(sp50); } - MTXReorder(sp50, sp20); + PSMTXReorder(sp50, sp20); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA6, 0); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); for (var_r30 = 0; var_r30 < var_r31->unk_240; var_r30++) { if (var_r31->unk_2A8[var_r30] && var_r31->unk_244[var_r30] != 0 && var_r30 != 1) { - GXCallDisplayListNative(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]); + GXCallDisplayList(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]); } } GXSetNumTevStages(2); @@ -2173,18 +2181,18 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); if (var_r31->unk_2A8[1] && (var_r31->unk_244[1] != 0)) { - GXCallDisplayListNative(var_r31->unk_2A8[1], var_r31->unk_244[1]); + GXCallDisplayList(var_r31->unk_2A8[1], var_r31->unk_244[1]); } } @@ -2676,17 +2684,17 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(var_r31->unk_3C->unk_3C), 0x44); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { MTXIdentity(sp128); } - MTXReorder(sp128, &sp8[0]); + PSMTXReorder(sp128, &sp8[0]); if (var_r31->unk_4C) { var_r18 = var_r31->unk_4C; var_r18(var_r24, var_r31, var_r21); @@ -2694,7 +2702,7 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) var_r29 = var_r31->unk_3C; var_r30 = var_r31->unk_40; var_r26 = var_r31->unk_44; - MTXROMultVecArray(sp8, lbl_1_data_19C, &sp38[0], 4); + PSMTXROMultVecArray(sp8, lbl_1_data_19C, &sp38[0], 4); for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) { if (!var_r29->unk_28) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -2740,10 +2748,10 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) } } } - DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4); - DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4); + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * 8 * 4); PPCSync(); - GXCallDisplayListNative(var_r31->unk_48, var_r31->unk_34); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); if (shadowModelDrawF == 0) { if ((var_r31->unk_21 & 2) == 0) { var_r31->unk_28++; diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 511afc04..9a80a823 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -13,10 +13,6 @@ #include "string.h" #include "version.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - typedef struct UnkM426Struct { /* 0x00 */ s32 unk_00; /* 0x04 */ omObjData *unk_04[2]; @@ -269,7 +265,7 @@ void fn_1_DB8(omObjData *object); void fn_1_E18(omObjData *object); void fn_1_EB8(void); -SHARED_SYM extern u32 GlobalCounter; +extern u32 GlobalCounter; Vec lbl_1_data_0[4] = { { -600.0f, 0.0f, -285.0f }, @@ -803,6 +799,7 @@ void fn_1_16F8(omObjData *object) float var_f26; float var_f25; float var_f24; + float var_f23; float var_f22; float var_f21; @@ -1314,6 +1311,8 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) s32 spC[2]; UnkM426Struct *sp8; + float var_f31; + UnkM426Struct2 *var_r31; s32 var_r30; s32 var_r29; @@ -3036,17 +3035,17 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(var_r31->unk_3C->unk_3C), 68); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 68); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (!HmfInverseMtxF3X3(arg1, sp128)) { MTXIdentity(sp128); } - MTXReorder(sp128, sp8); + PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { var_r18 = var_r31->unk_4C; var_r18(arg0, var_r31, arg1); @@ -3054,7 +3053,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) var_r29 = var_r31->unk_3C; var_r30 = var_r31->unk_40; var_r26 = var_r31->unk_44; - MTXROMultVecArray(sp8, lbl_1_data_22C, &sp38[0], 4); + PSMTXROMultVecArray(sp8, lbl_1_data_22C, &sp38[0], 4); for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) { if (!var_r29->unk_28) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -3103,7 +3102,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4); DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4); PPCSync(); - GXCallDisplayListNative(var_r31->unk_48, var_r31->unk_34); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); if (!shadowModelDrawF) { if ((var_r31->unk_21 & 2) == 0) { var_r31->unk_28++; @@ -3123,6 +3122,7 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) { float var_f31; float var_f30; + float var_f28; float var_f27; float var_f26; @@ -3135,7 +3135,7 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) var_f27 = var_r30->pos.y - arg0->pos.y; var_f30 = var_r30->pos.z - arg0->pos.z; var_f26 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); - arg0->rot.x = (atan2d(var_f26, var_f27))-90.0; + arg0->rot.x = (atan2d(var_f26, var_f27)) - 90.0; arg0->rot.y = atan2d(var_f31, var_f30); var_r29 = arg0->unk_120; GXLoadPosMtxImm(arg1, 0); @@ -3169,13 +3169,13 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_27C, sizeof(lbl_1_data_27C), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_27C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_2AC, sizeof(lbl_1_data_2AC), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, lbl_1_data_2AC, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, lbl_1_data_2BC, sizeof(lbl_1_data_2BC), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, lbl_1_data_2BC, 8); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition1x16(0); diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c index a00ca58c..7031739f 100644 --- a/src/REL/m427Dll/main.c +++ b/src/REL/m427Dll/main.c @@ -2,8 +2,6 @@ #include "ext_math.h" #include "game/audio.h" -#include "game/chrman.h" -#include "game/frand.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfformat.h" @@ -543,7 +541,7 @@ void fn_1_1954(void) { s32 var_r31; M427DllStruct2* var_r30; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M427DllStruct2), MEMORY_DEFAULT_NUM); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA4, 0x10000000); lbl_1_bss_40 = var_r30; var_r30->unk9C = 0; var_r30->unkA0 = 0; @@ -738,6 +736,7 @@ void fn_1_21E8(s32 arg0, s32 arg1) { void fn_1_232C(s32 arg0) { M427DllStruct2* temp_r29; + f32 temp_f0; s32 var_r31; temp_r29 = lbl_1_bss_40; @@ -786,6 +785,7 @@ void fn_1_232C(s32 arg0) { void fn_1_2518(s32 arg0) { M427DllStruct2* temp_r29; + f32 temp_f0; s32 var_r31; temp_r29 = lbl_1_bss_40; diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c index c7b5a3f3..fa191ed6 100644 --- a/src/REL/m427Dll/map.c +++ b/src/REL/m427Dll/map.c @@ -18,7 +18,7 @@ #include "string.h" extern s32 rand8(void); -SHARED_SYM extern LightData Hu3DLocalLight[0x20]; +extern LightData Hu3DLocalLight[0x20]; #define FABS(value) ((value < 0) ? -(value) : (value)) @@ -388,9 +388,9 @@ void fn_1_32F4(Process *arg0) lbl_1_bss_158.unk0 = 0; lbl_1_bss_548 = omAddObjEx(arg0, 0x7F, 0, 0, -1, fn_1_6760); - lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); + lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); - for (var_r31 = 0; var_r31 < 16; var_r31++) { + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { lbl_1_bss_F0[var_r31].unk2 = -1; } temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); @@ -613,8 +613,8 @@ void fn_1_3E58(omObjData *arg0) var_r29->unk48[0] = 0; var_r29->unk4A = 0; var_r29->unk4 = 0; - lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); - for (var_r28 = 0; var_r28 < 16; var_r28++) { + lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { lbl_1_bss_E4[var_r28].unk10 = -1.0f; } fn_1_510C(0, 0x32, 0x32); @@ -629,6 +629,7 @@ void fn_1_4218(omObjData *arg0) M427DllMapStruct5 *var_r31; s16 var_r30; M427DllMapStruct4 *var_r29; + s32 temp_r28; var_r29 = &lbl_1_bss_98; var_r31 = &lbl_1_bss_E4[0]; @@ -797,6 +798,12 @@ void fn_1_50A0(ModelData *arg0, Mtx arg1) void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) { + s16 sp12; + s16 sp10; + s16 spE; + s16 spC; + s16 spA; + s16 sp8; M427DllMapStruct4 *var_r31; M427DllMapSubstruct5 *var_r30; s16 var_r29; @@ -830,7 +837,7 @@ void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) var_r31->unk4 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); var_r31->unk8 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec2f), temp_r28->unk_48); var_r31->unkC = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); - var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * (3 * sizeof(GXColor)), temp_r28->unk_48); + var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); var_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), temp_r28->unk_48); var_r30 = var_r31->unk1C; var_r23 = var_r26 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); @@ -888,9 +895,11 @@ void fn_1_558C(M427DllMapStruct4 *arg0) Vec *var_r29; Vec *var_r28; s16 var_r27; + M427DllMapStruct5 *var_r26; Vec2f *var_r25; s16 var_r24; CameraData *var_r23; + s16 var_r22; var_r23 = &Hu3DCamera[0]; if (lbl_1_data_F8 == -1.0f) { @@ -1004,13 +1013,13 @@ void fn_1_618C(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk4, var_r31->unk14 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk4, 0xC); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk8, var_r31->unk14 * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk8, 8); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk10, var_r31->unk14 * 3 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r31->unk10, 4); GXInitTexObj(&sp14, var_r31->unk30, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); GXLoadTexObj(&sp14, GX_TEXMAP0); @@ -1063,13 +1072,10 @@ void fn_1_618C(ModelData *arg0, Mtx arg1) GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXCallDisplayListNative(var_r31->unk20, var_r31->unk24); + GXCallDisplayList(var_r31->unk20, var_r31->unk24); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&sp14); -#endif } s32 lbl_1_data_FC[0xC] = { @@ -1103,6 +1109,7 @@ void fn_1_6760(omObjData *object) s16 var_r26; M427DllMapSubstruct3Sub *var_r25; M427DllMapStruct3 *var_r24; + u16 var_r23; var_r24 = &lbl_1_bss_158; Hu3DFogSet(3500.0f, 20000.0f, 0, 0, 0); @@ -1968,13 +1975,13 @@ void fn_1_9B88(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_POS, &var_r31->unkC, sizeof(var_r31->unkC), sizeof(Vec)); + GXSetArray(GX_VA_POS, &var_r31->unkC, sizeof(Vec)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_TEX0, &var_r31->unk3C, sizeof(var_r31->unk3C), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, &var_r31->unk3C, sizeof(Vec2f)); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_TEX1, var_r31->unk5C, sizeof(var_r31->unk5C), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX1, var_r31->unk5C, sizeof(Vec2f)); HuSprTexLoad(var_r31->unk8, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); HuSprTexLoad(var_r26->unk_04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); HuSprTexLoad(var_r26->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); @@ -2010,7 +2017,7 @@ void fn_1_9B88(ModelData *model, Mtx matrix) GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - GXCallDisplayListNative(var_r31->unk80, var_r31->unk84); + GXCallDisplayList(var_r31->unk80, var_r31->unk84); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); @@ -2048,6 +2055,7 @@ s16 fn_1_A1F4(s32 arg0, s16 arg1, s16 arg2, s16 arg3, float arg8, Vec *arg4, Vec Vec2f *var_r26; void *var_r25; M427DllMapStruct3 *var_r22; + u16 var_r21; s16 var_r19; void *var_r18; @@ -2340,13 +2348,13 @@ void fn_1_B3CC(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_2C, var_r31->unk_38 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_2C, sizeof(Vec)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, var_r31->unk_34, var_r31->unk_38 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, var_r31->unk_34, sizeof(Vec)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_30, var_r31->unk_38 * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_30, 8); if (var_r31->unk_00 == 0) { GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); } @@ -2431,13 +2439,10 @@ void fn_1_B3CC(ModelData *model, Mtx matrix) GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - GXCallDisplayListNative(var_r31->unk_40, var_r31->unk_44); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_44); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&sp44); -#endif } void fn_1_BD2C(ModelData *model, Mtx matrix) @@ -2788,6 +2793,7 @@ M427DllMapSubstruct6 *fn_1_D4FC(s16 arg0, Vec *arg1, Vec *arg2, float arg8, GXCo s16 fn_1_D63C(AnimData *arg0, s16 arg1, float arg8, s16 arg2, s16 arg3) { + float temp_f0; M427DllMapStruct7 *var_r31; s16 var_r30; Vec2f *var_r29; @@ -3003,13 +3009,13 @@ void fn_1_DCD4(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r30->unk_1C, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r30->unk_24, var_r30->unk_00 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r30->unk_24, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r30->unk_20, 8); sp128[0][0] = matrix[0][0]; sp128[1][0] = matrix[0][1]; sp128[2][0] = matrix[0][2]; @@ -3022,7 +3028,7 @@ void fn_1_DCD4(ModelData *model, Mtx matrix) sp128[0][3] = 0.0f; sp128[1][3] = 0.0f; sp128[2][3] = 0.0f; - MTXReorder(sp128, spF8); + PSMTXReorder(sp128, spF8); if ((omPauseChk() == 0) && (var_r30->unk_0C)) { var_r23 = var_r30->unk_0C; var_r23(model, var_r30, matrix); @@ -3030,7 +3036,7 @@ void fn_1_DCD4(ModelData *model, Mtx matrix) var_r29 = var_r30->unk_18; var_r31 = var_r30->unk_1C; var_r26 = var_r30->unk_20; - MTXROMultVecArray(spF8, &var_r30->unk_2C, sp68, 4); + PSMTXROMultVecArray(spF8, &var_r30->unk_2C, sp68, 4); for (var_r25 = 0; var_r25 < var_r30->unk_00; var_r25++, var_r29++, var_r26 += 4) { if (var_r29->unk_62 == 0) { var_r31->x = var_r31->y = var_r31->z = 0.0f; @@ -3045,20 +3051,20 @@ void fn_1_DCD4(ModelData *model, Mtx matrix) else { if (var_r29->unk_44 == 0.0f) { fn_1_E420(sp68, &sp38, &var_r29->unk_48, 4); - VECAdd(&sp38, &var_r29->unk_54, var_r31++); - VECAdd(&sp44, &var_r29->unk_54, var_r31++); - VECAdd(&sp50, &var_r29->unk_54, var_r31++); - VECAdd(&sp5C, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp38, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp44, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp50, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp5C, &var_r29->unk_54, var_r31++); } else { fn_1_E420(&var_r30->unk_2C, &sp38, &var_r29->unk_48, 4); - MTXRotRad(spC8, 0x5A, MTXDegToRad(var_r29->unk_44)); - MTXConcat(sp128, spC8, sp98); - MTXMultVecArray(sp98, &sp38, &sp8, 4); - VECAdd(&sp8, &var_r29->unk_54, var_r31++); - VECAdd(&sp14, &var_r29->unk_54, var_r31++); - VECAdd(&sp20, &var_r29->unk_54, var_r31++); - VECAdd(&sp2C, &var_r29->unk_54, var_r31++); + PSMTXRotRad(spC8, 0x5A, MTXDegToRad(var_r29->unk_44)); + PSMTXConcat(sp128, spC8, sp98); + PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + PSVECAdd(&sp8, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp14, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp20, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp2C, &var_r29->unk_54, var_r31++); } if (var_r29->unk_60 != -1) { fn_1_E37C(var_r26, var_r30->unk_5C, var_r29->unk_60, var_r30->unk_60, var_r30->unk_64); @@ -3068,7 +3074,7 @@ void fn_1_DCD4(ModelData *model, Mtx matrix) DCFlushRangeNoSync(var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4); DCFlushRangeNoSync(var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4); PPCSync(); - GXCallDisplayListNative(var_r30->unk_28, var_r30->unk_04); + GXCallDisplayList(var_r30->unk_28, var_r30->unk_04); } void fn_1_E2B0(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9) diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c index 1d28252d..fe097531 100644 --- a/src/REL/m427Dll/player.c +++ b/src/REL/m427Dll/player.c @@ -6,15 +6,18 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfformat.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" #include "string.h" #ifndef __MWERKS__ @@ -1457,6 +1460,26 @@ void fn_1_12580(omObjData *var_r24) void fn_1_12B08(void) { Vec sp20; + float sp1C; + float sp18; + float sp14; + float sp10; + float spC; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; M427DllBss590Struct *var_r31; s32 var_r30; M427DllBss57CStruct *var_r29; @@ -1570,10 +1593,10 @@ void fn_1_12B08(void) lbl_1_bss_558 = lbl_1_data_260; lbl_1_bss_554 = lbl_1_data_3BC; lbl_1_bss_550 = lbl_1_bss_584; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 64 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x40 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); lbl_1_bss_57C = var_r29; - memset(lbl_1_bss_57C, 0, 64 * sizeof(M427DllBss57CStruct)); - for (var_r30 = 0; var_r30 < 64; var_r30++, var_r29++) { + memset(lbl_1_bss_57C, 0, 0x40 * sizeof(M427DllBss57CStruct)); + for (var_r30 = 0; var_r30 < 0x40; var_r30++, var_r29++) { var_r29->unk_00 = var_r30; var_r29->unk_04 = -1; var_r29->unk_08 = -1; @@ -1622,7 +1645,7 @@ void fn_1_13FBC(ModelData *model, Mtx matrix) var_r27 = &lbl_1_bss_578[*var_r25]; var_r24 = lbl_1_bss_56C[*var_r25]; GXLoadPosMtxImm(matrix, 0); - MTXInvXpose(matrix, sp70); + PSMTXInvXpose(matrix, sp70); GXLoadNrmMtxImm(sp70, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -1643,10 +1666,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_260, sizeof(lbl_1_data_260), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_260, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { GXPosition1x16(var_r29); @@ -1655,10 +1678,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, &lbl_1_data_3BC, sizeof(lbl_1_data_3BC), sizeof(Vec)); + GXSetArray(GX_VA_POS, &lbl_1_data_3BC, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { GXPosition1x16(var_r29); @@ -1667,10 +1690,10 @@ void fn_1_13FBC(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, lbl_1_bss_584, lbl_1_bss_580 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_bss_584, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &lbl_1_data_650, sizeof(lbl_1_data_650), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &lbl_1_data_650, sizeof(GXColor)); GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); for (var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++) { GXPosition1x16(var_r29); @@ -1826,6 +1849,9 @@ s32 fn_1_154BC(float arg8, float arg9, float argA) s32 fn_1_155E0(float arg8, float arg9, float argA, float *arg0) { float var_f31; + float var_f30; + double var_f29; + double var_f28; M427DllBss590Struct *var_r31; s32 var_r30; M427DllBss590Struct *var_r29; @@ -2112,6 +2138,7 @@ float fn_1_166AC(float arg8, float arg9, float argA) { float var_f31; float var_f30; + float var_f26; if (arg8 >= 360.0) { arg8 -= 360.0; diff --git a/src/REL/m428Dll/main.c b/src/REL/m428Dll/main.c index 170625b0..1ee62c82 100644 --- a/src/REL/m428Dll/main.c +++ b/src/REL/m428Dll/main.c @@ -4,6 +4,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/gamework_data.h" +#include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" @@ -11,7 +12,9 @@ #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/window.h" #include "game/wipe.h" #include "string.h" @@ -977,9 +980,6 @@ void fn_1_3B64(void) GXTexCoord2f32(0.0f, 1.0f); } } -#ifdef TARGET_PC - GXDestroyTexObj(&sp14); -#endif } s32 lbl_1_data_EC[] = { diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c index df9739e3..925c04bc 100644 --- a/src/REL/m428Dll/map.c +++ b/src/REL/m428Dll/map.c @@ -1,13 +1,23 @@ #include "dolphin/gx/GXEnum.h" #include "dolphin/gx/GXVert.h" #include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfformat.h" #include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m428Dll.h" @@ -555,6 +565,8 @@ void fn_1_5CCC(HsfData *var_r31, HsfObject *var_r23) void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) { + s32 sp3C; + s32 sp38; Vec sp8; float var_f31; float var_f30; @@ -1119,6 +1131,7 @@ void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28) float spD4[16]; float sp94[16]; Vec sp8; + s32 var_r31; s32 var_r30; s32 var_r27; diff --git a/src/REL/m428Dll/player.c b/src/REL/m428Dll/player.c index 39e17187..4964e8a5 100644 --- a/src/REL/m428Dll/player.c +++ b/src/REL/m428Dll/player.c @@ -9,11 +9,15 @@ #include "game/hsfload.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/init.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m428Dll.h" @@ -235,7 +239,7 @@ s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg8); s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8); s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3); -SHARED_SYM extern u32 GlobalCounter; +extern u32 GlobalCounter; Vec lbl_1_data_150[4] = { { -140.0f, -400.0f, 0.0f }, @@ -969,6 +973,8 @@ void fn_1_BBD0(omObjData *object) float var_f31; float var_f30; float var_f27; + float var_f26; + float var_f25; float var_f24; float var_f23; float var_f22; @@ -2114,7 +2120,7 @@ void fn_1_FE98(M428DllPlayerUnk120Struct *arg0) } } for (var_r29 = 0, var_r30 = arg0->unk_54; var_r29 < arg0->unk_02; var_r29++, var_r30++) { - VECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24); + PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24); var_f30 = var_r30->unk_08[0].z; if ((sp8 = fn_1_F88C(&var_r30->unk_08[2], &sp24, &sp18)) != -1) { var_r30->unk_08[0] = sp18; @@ -2131,7 +2137,7 @@ void fn_1_FE98(M428DllPlayerUnk120Struct *arg0) } } -GXColor lbl_1_data_694[2] = { { 0xFF, 0xA0, 0x40, 0xFF }, { 0x00, 0xC8, 0xFF, 0xFF } }; +s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF }; s16 lbl_1_data_69C[2] = { -0x10, 0x10 }; s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 }; Vec lbl_1_data_6A4[4] = { @@ -2175,10 +2181,10 @@ void fn_1_102A8(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(var_r31->unk_54->unk_08), sizeof(M428DllPlayerUnkStruct)); + GXSetArray(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(M428DllPlayerUnkStruct)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], 4); GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02); for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) { GXPosition1x16(var_r30); @@ -3103,7 +3109,7 @@ void fn_1_134C0(ModelData *var_r23, Mtx var_r22) if (HmfInverseMtxF3X3(var_r22, &sp128[0]) == 0) { MTXIdentity(sp128); } - MTXReorder(sp128, sp8); + PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { var_r18 = var_r31->unk_4C; var_r18(var_r23, var_r31, var_r22); @@ -3111,7 +3117,7 @@ void fn_1_134C0(ModelData *var_r23, Mtx var_r22) var_r29 = var_r31->unk_3C; var_r30 = var_r31->unk_40; var_r28 = var_r31->unk_44; - MTXROMultVecArray(sp8, lbl_1_data_6A4, &sp38[0], 4); + PSMTXROMultVecArray(sp8, lbl_1_data_6A4, &sp38[0], 4); for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { if (!var_r29->unk_30) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -3176,14 +3182,14 @@ void fn_1_134C0(ModelData *var_r23, Mtx var_r22) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(GXColor), sizeof(M428DllPlayerUnkStruct2)); // bug? + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(M428DllPlayerUnkStruct2)); // bug? GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f)); - GXCallDisplayListNative(var_r31->unk_48, var_r31->unk_34); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, sizeof(Vec2f)); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); if (shadowModelDrawF == 0) { if ((var_r31->unk_21 & 2) == 0) { var_r31->unk_28++; diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 6fb1ab01..01040112 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -1,33 +1,28 @@ #include "REL/executor.h" #include "game/chrman.h" #include "game/frand.h" -#include "game/esprite.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" + +#include "game/gamework_data.h" + +#include "game/mapspace.h" +#include "game/pad.h" +#include "game/printfunc.h" + #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/gamework.h" -#include "game/gamework_data.h" -#include "game/mapspace.h" -#include "game/minigame_seq.h" -#include "game/object.h" -#include "game/objsub.h" -#include "game/pad.h" -#include "game/printfunc.h" + +#include "game/esprite.h" #include "game/sprite.h" -#include "game/wipe.h" #include "ext_math.h" #include "version.h" - -#ifndef __MWERKS__ -#include "game/audio.h" -#include "game/hsfex.h" -#endif - -void HuSysVWaitSet(s16 vcount); - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -1328,9 +1323,7 @@ void fn_1_3DCC(Work8F68 *arg0) } } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2) { @@ -1506,6 +1499,8 @@ void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) void fn_1_54BC(Work8F68 *arg0, omObjData *arg1) { float temp_f31; + float temp_f30; + float temp_f29; Vec sp14; Vec sp8; omObjData *temp_r29; @@ -1621,6 +1616,7 @@ void fn_1_595C(Work8F68 *arg0, Work8F68 *arg1) s32 fn_1_5CDC(Work8F68 *arg0) { + s32 temp_r30; s32 temp_r29; s32 temp_r28; Work3284 *temp_r27; diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c index c52b221d..d848689f 100644 --- a/src/REL/m430Dll/main.c +++ b/src/REL/m430Dll/main.c @@ -2,15 +2,20 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/flag.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/memory.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" #include "game/wipe.h" #include "string.h" @@ -494,6 +499,10 @@ float fn_1_4130(void) void fn_1_41F0(Vec *arg0, Vec *arg1) { Vec sp10; + float var_f29; + float var_f28; + float var_f27; + float var_f26; sp10.x = arg1->x - arg0->x; sp10.y = arg1->y - arg0->y; diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index ce6f7efb..baa21d63 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -11,10 +11,14 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m430Dll.h" @@ -781,6 +785,11 @@ void fn_1_D828(omObjData *var_r30) float var_f25; float var_f24; float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; M430PlayerWork *var_r31; M430PlayerBss174Struct *var_r29; s32 var_r28; @@ -1253,6 +1262,12 @@ s32 fn_1_F62C(omObjData *object) void fn_1_F6A0(omObjData *object) { Vec sp38; + float sp30; + float sp28; + float sp20; + float sp18; + float sp10; + float sp8; float var_f31; float var_f30; float var_f29; @@ -1260,6 +1275,13 @@ void fn_1_F6A0(omObjData *object) float var_f27; float var_f26; float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; M430PlayerWork *work; s32 var_r29; s32 var_r28; @@ -1471,11 +1493,11 @@ void fn_1_100A0(void) var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f; var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 1000.0f; var_r31->unk_58 = 0; - var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); memset(var_r31->unk_4C, 0, 0xC0); - var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); memset(var_r31->unk_50, 0, 0xC0); - var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec2f), MEMORY_DEFAULT_NUM); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x80, MEMORY_DEFAULT_NUM); memset(var_r31->unk_54, 0, 0x80); var_r30 = &Hu3DData[var_r31->unk_04]; var_r27 = HuMemDirectMallocNum(HEAP_DATA, 0x200, var_r30->unk_48); @@ -1617,15 +1639,15 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30) GXSetLineWidth(0x10, GX_TO_ZERO); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_50, 16 * sizeof(Vec), sizeof(Vec)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_50, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &lbl_1_data_308, sizeof(lbl_1_data_308), sizeof(GXColor)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_308, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_54, 16 * sizeof(Vec2f), sizeof(Vec2f)); - GXCallDisplayListNative(var_r31->unk_60, var_r31->unk_5C); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_54, 8); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_5C); } void fn_1_10B88(void) @@ -1633,9 +1655,9 @@ void fn_1_10B88(void) M430PlayerBss16CStruct *var_r31; s32 var_r30; - var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); - memset(var_r31, 0, 16 * sizeof(M430PlayerBss16CStruct)); - for (var_r30 = 0; var_r30 < 16; var_r30++, var_r31++) { + var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x10 * sizeof(M430PlayerBss16CStruct)); + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x23)); @@ -1810,9 +1832,9 @@ void fn_1_113AC(void) M430PlayerBss168Struct *var_r31; s32 var_r30; - var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 32 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); - memset(var_r31, 0, 32 * sizeof(M430PlayerBss168Struct)); - for (var_r30 = 0; var_r30 < 32; var_r31++) { + var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x20 * sizeof(M430PlayerBss168Struct)); + for (var_r30 = 0; var_r30 < 0x20; var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x22)); diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c index 0bb03d09..cfb782c7 100644 --- a/src/REL/m430Dll/water.c +++ b/src/REL/m430Dll/water.c @@ -4,19 +4,27 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/flag.h" #include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m430Dll.h" #ifndef __MWERKS__ +#include "game/esprite.h" #include "game/frand.h" void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, GXBool replace_mode, GXIndTexMtxID matrix_sel); @@ -725,6 +733,7 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) Vec sp8; float var_f31; float var_f30; + float var_f29; s32 var_r30; s32 var_r29; s32 var_r28; @@ -1267,17 +1276,14 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], 0x1B8 * sizeof(Vec), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], 0x1B8 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], sizeof(Vec)); + GXSetArray(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], sizeof(GXColor)); GXSetCullMode(GX_CULL_NONE); - GXCallDisplayListNative(var_r31->unk_60, var_r31->unk_64); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_64); GXSetCullMode(GX_CULL_BACK); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&sp24); -#endif } Vec lbl_1_data_60[6] = { @@ -1363,8 +1369,8 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_60, sizeof(lbl_1_data_60), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_A8, sizeof(lbl_1_data_A8), sizeof(GXColor)); + GXSetArray(GX_VA_POS, lbl_1_data_60, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, sizeof(GXColor)); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); GXPosition1x8(0); GXColor1x8(3); @@ -1481,8 +1487,8 @@ void fn_1_9C90(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_C0, sizeof(lbl_1_data_C0), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_A8, sizeof(lbl_1_data_A8), sizeof(GXColor)); + GXSetArray(GX_VA_POS, lbl_1_data_C0, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, 4); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); for (var_r30 = 0; var_r30 < 8; var_r30++) { GXPosition1x8(var_r30); @@ -1500,6 +1506,8 @@ void fn_1_A3A8(ModelData *model, Mtx matrix) Mtx sp18; float var_f31; float var_f30; + u8 *var_r30; + u8 *var_r29; GXColor sp14 = { 0xFF, 0xA5, 0x59, 0xB2 }; GXColor sp10 = { 0x99, 0x72, 0x59, 0xB2 }; @@ -1568,8 +1576,8 @@ void fn_1_A3A8(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_120, sizeof(lbl_1_data_120), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_168, sizeof(lbl_1_data_168), sizeof(GXColor)); + GXSetArray(GX_VA_POS, lbl_1_data_120, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_168, 4); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); GXPosition1x8(0); GXColor1x8(0); diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 83334e46..4aec497d 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -17,8 +17,6 @@ #include "REL/m431Dll.h" #include "version.h" -s32 rand8(void); - typedef struct bss_5C_struct { s16 unk0[6]; s16 unkC[2]; @@ -2089,15 +2087,15 @@ void fn_1_72B4(ModelData *model, Mtx mtx) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(HsfVector2f) * 4, sizeof(HsfVector2f)); + GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f)); fn_1_79FC(mtx, sp128); - MTXReorder(sp128, spF8); + PSMTXReorder(sp128, spF8); if (!omPauseChk() && temp_r30->unkC) { temp_r23 = temp_r30->unkC; temp_r23(model, temp_r30, mtx); @@ -2105,7 +2103,7 @@ void fn_1_72B4(ModelData *model, Mtx mtx) temp_r29 = temp_r30->unk18; temp_r31 = temp_r30->unk1C; temp_r27 = temp_r30->unk20; - MTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); + PSMTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); for (temp_r26 = 0; temp_r26 < temp_r30->unk0; temp_r26++, temp_r29++, temp_r27 += 4) { if (temp_r29->unk56 == 0) { temp_r31->x = temp_r31->y = temp_r31->z = 0; @@ -2143,7 +2141,7 @@ void fn_1_72B4(ModelData *model, Mtx mtx) DCFlushRangeNoSync(temp_r30->unk1C, (temp_r30->unk0 * sizeof(Vec)) * 4); DCFlushRangeNoSync(temp_r30->unk20, (temp_r30->unk0 * sizeof(HsfVector2f)) * 4); PPCSync(); - GXCallDisplayListNative(temp_r30->unk28, temp_r30->unk4); + GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } void fn_1_7824(HsfVector2f *arg0, s16 arg1, s16 arg2, float arg3, float arg4) diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 4e86c54f..aaa65ed0 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -1,19 +1,20 @@ -#include "game/audio.h" #include "game/chrman.h" #include "game/hsfman.h" #include "game/hsfmotion.h" + +#include "game/audio.h" #include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" +#include "game/wipe.h" #include "REL/m431Dll.h" #include "ext_math.h" #include "version.h" -s32 rand8(void); - typedef struct bss_struct_62C { u8 unk0; float unk4; diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index 15e2894b..038512c9 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -1,4 +1,5 @@ #include "REL/executor.h" +#include "dolphin/types.h" #include "game/chrman.h" #include "game/frand.h" #include "game/memory.h" @@ -1357,6 +1358,8 @@ void fn_1_5848(UnkM432DllStruct *var_r28, UnkM432DllBss0SubStruct *var_r31) s32 sp20; float var_f31; float var_f30; + float var_f29; + float var_f28; s32 var_r30; s32 var_r27; @@ -2235,14 +2238,14 @@ void fn_1_AF28(omObjData *object) fn_1_4ED8(&var_r31->unk_00, 0); } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_B234(void) { UnkM432DllStruct *var_r31; s32 var_r30; + u32 var_r29; + u32 var_r28; if (HuPadBtn[0] & 2) { lbl_1_bss_57C = 300 * REFRESH_RATE; @@ -2298,7 +2301,12 @@ void fn_1_B518(omObjData *object) void fn_1_B7E4(omObjData *object) { UnkM432DllStruct2 *var_r30; + UnkBss5D0Struct *var_r29; + UnkBss5D0Struct *var_r28; + UnkBss5D0Struct *var_r27; s16 var_r26; + s16 var_r25; + s16 var_r24; var_r26 = fn_1_AC(0x1000); if (var_r26 < 0) { @@ -2328,7 +2336,7 @@ void fn_1_B974(Vec *arg0, float arg8, float arg9) if (lbl_1_bss_402 < 0xF0) { lbl_1_bss_402++; var_r30 = omAddObjEx(lbl_1_bss_5B4, 0x67, 1, 0, 3, fn_1_B7E4); - var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct2), MEMORY_DEFAULT_NUM); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct2), 0x10000000); var_r31 = var_r30->data; var_r31->unk_00 = *arg0; var_r31->unk_00.x += 30.0f * arg9; @@ -2473,9 +2481,17 @@ void fn_1_C33C(UnkM432DllStruct *arg0) void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24) { + Vec spC; float var_f25; - UnkBss0Struct *var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; + UnkBss0Struct *var_r30; + UnkM432DllStruct *var_r29; + s32 var_r28; + void *var_r27; + s32 var_r26; + float var_f19; + + var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; fn_1_BF9C(var_r31); if (fn_1_BF08(var_r31) == 0x7D4) { var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / REFRESH_RATE)); @@ -3039,7 +3055,11 @@ void fn_1_10CCC(omObjData *object) UnkM432DllStruct *var_r31; s32 var_r29; + s32 var_r28; + s32 var_r27; UnkM432DllBss0SubStruct *var_r26; + s32 var_r24; + s32 var_r23; var_r31 = object->data; var_r26 = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_10[var_r31->unk_184 & 1]; @@ -3243,7 +3263,13 @@ void fn_1_128C8(omObjData *object) s32 var_r31; UnkM432DllStruct *var_r30; UnkM432DllStruct *var_r29; + s32 var_r28; + s32 var_r27; + void *var_r26; + void *var_r25; omObjData *var_r24; + void *var_r23; + void *var_r22; if (lbl_1_bss_41C->work[0] >= 0x3EB) { for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -3347,6 +3373,8 @@ void fn_1_131A8(omObjData *var_r28) float var_f30; float var_f27; float var_f26; + float var_f22; + float var_f21; UnkBss0Struct *var_r29; s32 var_r26; @@ -3592,6 +3620,7 @@ void fn_1_131A8(omObjData *var_r28) void fn_1_15320(omObjData *object) { + s32 var_r31; object->work[0] = 0x3E8; fn_1_B4C(80.0f, DATA_MAKE_NUM(DATADIR_M432, 0x1E)); fn_1_9EC(); @@ -3602,12 +3631,17 @@ void fn_1_15320(omObjData *object) void ObjectSetup(void) { Vec sp8; + float var_f31; + float var_f30; + float var_f29; + UnkBss0Struct *var_r31; s32 var_r30; float *var_r29; UnkM432DllStruct *var_r28; omObjData *var_r27; s32 var_r26; + s32 var_r24; s32 var_r23; s32 var_r22; s32 var_r21; diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c index 425e62ab..6e36fe20 100644 --- a/src/REL/m433Dll/main.c +++ b/src/REL/m433Dll/main.c @@ -3,11 +3,15 @@ #include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/window.h" #include "game/wipe.h" #include "string.h" diff --git a/src/REL/m433Dll/map.c b/src/REL/m433Dll/map.c index 162905a1..40aab323 100644 --- a/src/REL/m433Dll/map.c +++ b/src/REL/m433Dll/map.c @@ -2,15 +2,23 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/flag.h" #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" #include "REL/m433Dll.h" diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c index afe2dd50..b6ef317c 100644 --- a/src/REL/m433Dll/player.c +++ b/src/REL/m433Dll/player.c @@ -3,16 +3,21 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/flag.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "string.h" #include "REL/m433Dll.h" @@ -3451,7 +3456,9 @@ s32 fn_1_10D24(Vec *sp8) Vec sp18; Vec spC; float var_f31; + float var_f30; M433PlayerWork2 *var_r31; + M433PlayerWork2 *var_r30; var_r31 = lbl_1_bss_7CC->data; fn_1_10D24_inline(&spC); diff --git a/src/REL/m434Dll/fish.c b/src/REL/m434Dll/fish.c index ebd0649c..b5940faa 100644 --- a/src/REL/m434Dll/fish.c +++ b/src/REL/m434Dll/fish.c @@ -3,14 +3,16 @@ #include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" +#include "game/wipe.h" + #include "REL/m434Dll.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" #include "version.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif typedef struct bss_7480_struct { s32 unk0; diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index 8e697fde..ee77f381 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -3,12 +3,17 @@ #include "game/object.h" #include "game/objsub.h" +#include "game/audio.h" #include "game/frand.h" #include "game/hsfmotion.h" #include "game/sprite.h" +#include "game/wipe.h" #include "REL/m434Dll.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" #include "version.h" typedef struct bss_2468_data { @@ -337,15 +342,12 @@ void fn_1_2978(ModelData *model, Mtx mtx) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, lbl_1_bss_2868, sizeof(lbl_1_bss_2868), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec)); GXSetCullMode(GX_CULL_BACK); - GXCallDisplayListNative(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&spC); -#endif } void fn_1_3004(void) @@ -466,9 +468,6 @@ void fn_1_3594(ModelData *model, Mtx mtx) GXPosition3f32(1000.0f, -5.000001f, 1000.0f); GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&sp10); -#endif } GXColor lbl_1_data_170 = { 255, 0, 0, 255 }; @@ -539,7 +538,7 @@ void fn_1_3CC8(ModelData *model, Mtx mtx) MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f); mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0); GXLoadPosMtxImm(sp14, GX_PNMTX0); - GXCallDisplayListNative(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + GXCallDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); } fn_1_32DC(&lbl_1_bss_3F0[0], GX_TRUE); } diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index 1bf45c71..55ae04c8 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -3,18 +3,19 @@ #include "game/hsfman.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" -#include "game/gamework_data.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" -#include "ext_math.h" -#include "version.h" +#include "game/wipe.h" + #include "REL/m434Dll.h" +#include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" +#include "version.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif typedef struct data_224_struct { u16 unk0; diff --git a/src/REL/m435Dll/main.c b/src/REL/m435Dll/main.c index 996a0a69..df551b13 100755 --- a/src/REL/m435Dll/main.c +++ b/src/REL/m435Dll/main.c @@ -4,8 +4,6 @@ #include "game/esprite.h" #include "game/gamework.h" #include "game/gamework_data.h" -#include "game/hsfdraw.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" @@ -19,11 +17,6 @@ #include "ext_math.h" -s32 rand8(void); -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - typedef struct { /* 0x00 */ omObjData* unk00; /* 0x04 */ s32 unk04; @@ -4259,9 +4252,7 @@ void fn_1_14760(omObjData* arg0) { arg0->func = fn_1_14384; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_14A54(void) { lbl_1_bss_0 = omInitObjMan(62, 0x2000); diff --git a/src/REL/m436Dll/main.c b/src/REL/m436Dll/main.c index 44a7ea82..95440203 100755 --- a/src/REL/m436Dll/main.c +++ b/src/REL/m436Dll/main.c @@ -1,7 +1,6 @@ #include "REL/m436Dll.h" #include "game/chrman.h" #include "game/data.h" -#include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfman.h" @@ -17,11 +16,6 @@ #include "ext_math.h" #include "version.h" -s32 rand8(void); -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - typedef struct { /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; @@ -3286,9 +3280,7 @@ void fn_1_10670(omObjData *arg0) arg0->func = fn_1_1026C; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_108DC(void) { diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index fa14307a..5ca6de46 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -15,15 +15,11 @@ #include "game/window.h" #include "game/wipe.h" +#include "dolphin.h" #include "math.h" #include "string.h" #include "version.h" -s32 rand8(void); -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - typedef struct { /* 0x000 */ omObjData *unk00; /* 0x004 */ s32 unk04; @@ -3447,9 +3443,7 @@ void fn_1_108A4(omObjData *arg0) arg0->func = fn_1_1043C; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_10B30(void) { diff --git a/src/REL/m438Dll/fire.c b/src/REL/m438Dll/fire.c index 712704c0..349febca 100644 --- a/src/REL/m438Dll/fire.c +++ b/src/REL/m438Dll/fire.c @@ -1,41 +1,37 @@ #include "REL/m438Dll.h" #include "game/hsfdraw.h" -#include "game/memory.h" #define HUSPR_USE_OLD_DEFS #include "game/sprite.h" -#include - -SHARED_SYM extern u8 texMtxTbl[]; +extern u8 texMtxTbl[]; // PROTO -void fn_1_E790(M438UnkStruct2 *); -void fn_1_F538(ModelData *, Mtx); -void fn_1_FAB8(M438UnkStruct *); -void fn_1_FD40(M438UnkStruct2 *); +void fn_1_E790(M438UnkStruct2*); +void fn_1_F538(ModelData*, Mtx); +void fn_1_FAB8(M438UnkStruct*); +void fn_1_FD40(M438UnkStruct2*); void fn_1_10F0C(s16); s32 fn_1_110B4(s16, u8, s16); -void fn_1_E658(s16 arg0, s16 arg1) -{ - M438UnkStruct2 *var_r29; +void fn_1_E658(s16 arg0, s16 arg1) { + M438UnkStruct2* var_r29; s32 var_r31; - M438UnkStruct3 *var_r30; + M438UnkStruct3* var_r30; lbl_1_bss_DE4.unk_34 = Hu3DHookFuncCreate(fn_1_F538); Hu3DModelLayerSet(lbl_1_bss_DE4.unk_34, 6); lbl_1_bss_DE4.unk_30 = arg0; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), MEMORY_DEFAULT_NUM); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), 0x10000000); lbl_1_bss_DE4.unk_40 = var_r29; lbl_1_bss_DE4.unk_32 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), MEMORY_DEFAULT_NUM); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), 0x10000000); lbl_1_bss_DE4.unk_3C = var_r30; - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk_08 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk_06 = 0; var_r30->unk_08 = 0; @@ -43,8 +39,7 @@ void fn_1_E658(s16 arg0, s16 arg1) lbl_1_bss_DE4.unk_36 = lbl_1_bss_DE4.unk_38 = lbl_1_bss_DE4.unk_3A = 0; } -void fn_1_E790(M438UnkStruct2 *arg0) -{ +void fn_1_E790(M438UnkStruct2* arg0) { ModelData sp120; Mtx spF0; Mtx spC0; @@ -53,11 +48,11 @@ void fn_1_E790(M438UnkStruct2 *arg0) Mtx sp30; GXColor sp2C; s16 sp8; - M438UnkStruct *var_r31; + M438UnkStruct* var_r31; s16 var_r29; s16 var_r28; s32 var_r27; - M438UnkStruct3 *temp_r26; + M438UnkStruct3* temp_r26; s32 var_r25; s32 var_r24; s16 temp_r23; @@ -67,17 +62,17 @@ void fn_1_E790(M438UnkStruct2 *arg0) s32 var_r19; mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); - MTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); - MTXConcat(sp60, sp90, sp90); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); - MTXConcat(Hu3DCameraMtx, sp90, spC0); + PSMTXConcat(Hu3DCameraMtx, sp90, spC0); var_r29 = 0; var_r28 = 0; sp8 = 0; for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk_04; var_r27++) { if (arg0->unk_34[var_r27] != 0) { temp_r26 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r27]]; - MTXCopy(temp_r26->unk_18, sp30); + PSMTXCopy(temp_r26->unk_18, sp30); mtxTransCat(sp30, temp_r26->unk_0C.x, temp_r26->unk_0C.y, temp_r26->unk_0C.z); switch (temp_r26->unk_04) { case 0: @@ -89,13 +84,11 @@ void fn_1_E790(M438UnkStruct2 *arg0) if ((temp_r26->unk_00->bmp->dataFmt == 7) || (temp_r26->unk_00->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r26->unk_48); GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } - else { + } else { GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } - else { + } else { sp2C.a = temp_r26->unk_48.a; GXSetTevColor(GX_TEVREG2, sp2C); GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -144,14 +137,14 @@ void fn_1_E790(M438UnkStruct2 *arg0) break; case 4: mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); - MTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); - MTXConcat(sp60, sp90, sp90); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); - MTXConcat(Hu3DCameraMtx, sp90, sp30); - MTXInverse(Hu3DCameraMtx, sp60); - MTXConcat(sp60, sp30, sp60); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp90); - MTXConcat(sp90, sp60, sp30); + PSMTXConcat(Hu3DCameraMtx, sp90, sp30); + PSMTXInverse(Hu3DCameraMtx, sp60); + PSMTXConcat(sp60, sp30, sp60); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp90); + PSMTXConcat(sp90, sp60, sp30); GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX3x4); var_r19 = texMtxTbl[var_r28]; GXSetTexCoordGen2(var_r28, GX_TG_MTX3x4, GX_TG_POS, var_r19, 0, 0x7D); @@ -159,8 +152,7 @@ void fn_1_E790(M438UnkStruct2 *arg0) if (var_r27 == GX_TEXMAP0) { GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } - else { + } else { GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); } @@ -172,8 +164,7 @@ void fn_1_E790(M438UnkStruct2 *arg0) var_r28++; if (temp_r26->unk_4D != 0) { HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 1, 1, 1); - } - else { + } else { HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 0, 0, 1); } } @@ -187,42 +178,40 @@ void fn_1_E790(M438UnkStruct2 *arg0) case 0: mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); if (var_r31->unk_31 == 2) { - MTXConcat(lbl_1_bss_DE4.unk_00, sp60, sp60); + PSMTXConcat(lbl_1_bss_DE4.unk_00, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); } - else if (var_r31->unk_31 == 1) { - MTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); - MTXConcat(sp90, sp60, sp60); - } - MTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); - MTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); - MTXConcat(sp90, sp30, sp90); - MTXConcat(sp60, sp90, sp90); + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); - MTXConcat(Hu3DCameraMtx, sp90, spF0); + PSMTXConcat(Hu3DCameraMtx, sp90, spF0); break; case 1: mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); if (var_r31->unk_31 == 2) { if (HmfInverseMtxF3X3(spC0, sp90) == 0) { - MTXIdentity(sp90); + PSMTXIdentity(sp90); } - MTXConcat(sp90, sp60, sp60); + PSMTXConcat(sp90, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); } - else if (var_r31->unk_31 == 1) { - MTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); - MTXConcat(sp90, sp60, sp60); - } - MTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); - MTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); - MTXConcat(sp90, sp30, sp90); - MTXConcat(sp60, sp90, sp90); + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); - MTXConcat(spC0, sp90, spF0); + PSMTXConcat(spC0, sp90, spF0); break; } GXLoadPosMtxImm(spF0, 0); - MTXInverse(spF0, sp90); - MTXTranspose(sp90, sp60); + PSMTXInverse(spF0, sp90); + PSMTXTranspose(sp90, sp60); GXLoadNrmMtxImm(sp60, 0); GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_50); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_54); @@ -241,8 +230,7 @@ void fn_1_E790(M438UnkStruct2 *arg0) } if ((var_r31->unk_38 & 0x10) != 0) { GXSetZMode(0, GX_LEQUAL, 1); - } - else { + } else { GXSetZMode(1, GX_LEQUAL, 0); } sp120.attr = 0; @@ -250,8 +238,7 @@ void fn_1_E790(M438UnkStruct2 *arg0) GXSetNumChans(1); if ((var_r31->unk_38 & 8) != 0) { var_r25 = GX_SRC_VTX; - } - else { + } else { var_r25 = GX_SRC_REG; } switch (var_r31->unk_32) { @@ -267,84 +254,77 @@ void fn_1_E790(M438UnkStruct2 *arg0) } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_44, 4 * sizeof(Vec), sizeof(Vec)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_44, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk_48, 4 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r31->unk_48, 4); for (var_r27 = 0; var_r27 < var_r31->unk_34; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 4 * sizeof(Vec2f), sizeof(Vec2f)); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U); - GXSETARRAY(GX_VA_NRM, var_r31->unk_4C, sizeof(Vec), sizeof(Vec)); - GXCallDisplayListNative(var_r31->unk_40, var_r31->unk_3C); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0U); + GXSetArray(GX_VA_NRM, var_r31->unk_4C, 12); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_3C); } } } -void fn_1_F538(ModelData *arg0, Mtx arg1) -{ +void fn_1_F538(ModelData* arg0, Mtx arg1) { Mtx sp38; Mtx sp8; - M438UnkStruct2 *var_r31; + M438UnkStruct2* var_r31; s32 var_r30; var_r31 = lbl_1_bss_DE4.unk_40; GXLoadPosMtxImm(arg1, 0); - MTXInverse(arg1, sp38); - MTXTranspose(sp38, sp8); + PSMTXInverse(arg1, sp38); + PSMTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_DE4.unk_00); - + for (var_r30 = 0; var_r30 < lbl_1_bss_DE4.unk_30; var_r30++, var_r31++) { if ((var_r31->unk_08 != 0) && ((var_r31->unk_08 & 2) != 0) && ((var_r31->unk_08 & 4) == 0)) { if ((u8)omPauseChk() == 0) { if (var_r31->unk_30) { var_r31->unk_30(var_r31); } - if (var_r31->unk_08 == 0) - continue; + if (var_r31->unk_08 == 0) continue; fn_1_FD40(var_r31); - if (var_r31->unk_08 == 0) - continue; + if (var_r31->unk_08 == 0) continue; } fn_1_E790(var_r31); } } } -M438UnkStruct2 *fn_1_F664(s16 arg0) -{ +M438UnkStruct2* fn_1_F664(s16 arg0) { return &lbl_1_bss_DE4.unk_40[arg0]; } -M438UnkStruct *fn_1_F680(s16 arg0, s16 arg1) -{ +M438UnkStruct* fn_1_F680(s16 arg0, s16 arg1) { return &lbl_1_bss_DE4.unk_40[arg0].unk_3C[arg1]; } -M438UnkStruct3 *fn_1_F6AC(s16 arg0) -{ +M438UnkStruct3* fn_1_F6AC(s16 arg0) { return &lbl_1_bss_DE4.unk_3C[arg0]; } -void fn_1_F6C8(M438FireStruct **arg0, s16 arg1, f32 arg8, f32 arg9) -{ +void fn_1_F6C8(M438FireStruct** arg0, s16 arg1, f32 arg8, f32 arg9) { s32 var_r30; - M438FireStruct *var_r31; - - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), MEMORY_DEFAULT_NUM); + M438FireStruct* var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { - var_r31->unk0.x = (-0.5f * arg8); - var_r31->unk0.y = (0.5f * arg9); - var_r31->unk0.z = 0.0f; - var_r31->unkC.x = (0.5f * arg8); - var_r31->unkC.y = (0.5f * arg9); - var_r31->unkC.z = 0.0f; + var_r31->unk0.x = (-0.5f * arg8); + var_r31->unk0.y = (0.5f * arg9); + var_r31->unk0.z = 0.0f; + var_r31->unkC.x = (0.5f * arg8); + var_r31->unkC.y = (0.5f * arg9); + var_r31->unkC.z = 0.0f; var_r31->unk18.x = (0.5f * arg8); var_r31->unk18.y = (-0.5f * arg9); var_r31->unk18.z = 0.0f; @@ -354,14 +334,13 @@ void fn_1_F6C8(M438FireStruct **arg0, s16 arg1, f32 arg8, f32 arg9) } } -void fn_1_F84C(M438FireStruct **arg0, s16 arg1, Vec *arg2) -{ - Vec *var_r31; +void fn_1_F84C(M438FireStruct** arg0, s16 arg1, Vec* arg2) { + Vec* var_r31; s32 var_r29; s32 var_r28; - var_r31 = (Vec *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), MEMORY_DEFAULT_NUM); - + var_r31 = (Vec*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -371,14 +350,13 @@ void fn_1_F84C(M438FireStruct **arg0, s16 arg1, Vec *arg2) } } -void fn_1_F8EC(M438FireStruct2 **arg0, s16 arg1, GXColor *arg2) -{ - GXColor *var_r31; +void fn_1_F8EC(M438FireStruct2** arg0, s16 arg1, GXColor* arg2) { + GXColor* var_r31; s32 var_r29; s32 var_r28; - var_r31 = (GXColor *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), MEMORY_DEFAULT_NUM); - + var_r31 = (GXColor*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), 0x10000000U); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -389,13 +367,12 @@ void fn_1_F8EC(M438FireStruct2 **arg0, s16 arg1, GXColor *arg2) } } -void fn_1_F994(Vec **arg0, s16 arg1, Vec *arg2) -{ +void fn_1_F994(Vec** arg0, s16 arg1, Vec* arg2) { s32 var_r29; - Vec *var_r31; - - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + Vec* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000); + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -403,14 +380,13 @@ void fn_1_F994(Vec **arg0, s16 arg1, Vec *arg2) } } -void fn_1_FA20(M438FireStruct3 **arg0, s16 arg1, HsfVector2f *arg2) -{ - HsfVector2f *var_r31; +void fn_1_FA20(M438FireStruct3** arg0, s16 arg1, HsfVector2f* arg2) { + HsfVector2f* var_r31; s32 var_r29; s32 var_r28; - - var_r31 = (HsfVector2f *)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), MEMORY_DEFAULT_NUM); - + + var_r31 = (HsfVector2f*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), 0x10000000); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -419,20 +395,30 @@ void fn_1_FA20(M438FireStruct3 **arg0, s16 arg1, HsfVector2f *arg2) } } -void fn_1_FAB8(M438UnkStruct *arg0) -{ - Vec sp1C[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; - GXColor spC[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; - - void *sp8; +void fn_1_FAB8(M438UnkStruct* arg0) { + Vec sp1C[4] = { + { -50.0f, 50.0f, 0.0f }, + { 50.0f, 50.0f, 0.0f }, + { 50.0f, -50.0f, 0.0f }, + { -50.0f, -50.0f, 0.0f } + }; + GXColor spC[4] = { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }; + + void* sp8; s32 var_r31; s32 var_r29; - void *temp_r28; - + void* temp_r28; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk_44[var_r31] = sp1C[var_r31]; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk_48[var_r31] = spC[var_r31]; } @@ -443,7 +429,7 @@ void fn_1_FAB8(M438UnkStruct *arg0) sp8 = temp_r28; GXBeginDisplayList(temp_r28, 0x100); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GXPosition1x16(var_r31); GXColor1x16(0); @@ -455,24 +441,22 @@ void fn_1_FAB8(M438UnkStruct *arg0) arg0->unk_3C = GXEndDisplayList(); } -void fn_1_FD40(M438UnkStruct2 *arg0) -{ - M438UnkStruct *var_r28; - M438UnkStruct3 *temp_r30; - M438UnkSubStruct *var_r31; +void fn_1_FD40(M438UnkStruct2* arg0) { + M438UnkStruct* var_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* var_r31; s32 temp_r0; s32 var_r25; s32 var_r26; s32 var_r27; var_r27 = 0; - + var_r28 = arg0->unk_3C; for (var_r25 = 0; var_r25 < arg0->unk_02; var_r25++, var_r28++) { if ((var_r28->unk_38 & 4) != 0) { var_r27++; - } - else { + } else { var_r31 = var_r28->unk_58; for (var_r26 = 0; var_r26 < var_r28->unk_34; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r26]]; @@ -497,37 +481,30 @@ void fn_1_FD40(M438UnkStruct2 *arg0) if ((var_r31->unk_24 & 0x10) != 0) { var_r31->unk_24 |= 8; var_r31->unk_00 -= 1; - } - else if ((var_r31->unk_24 & 0x40) != 0) { + } else if ((var_r31->unk_24 & 0x40) != 0) { var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 2; var_r31->unk_00 -= 2; - } - else if ((var_r31->unk_24 & 0x20) != 0) { + } else if ((var_r31->unk_24 & 0x20) != 0) { var_r31->unk_00 = 0; } var_r31->unk_24 |= 4; - } - else if (var_r31->unk_00 < 0) { + } else if (var_r31->unk_00 < 0) { if ((var_r31->unk_24 & 0x10) != 0) { var_r31->unk_24 |= 8; var_r31->unk_00 = 0; - } - else if ((var_r31->unk_24 & 0x20) != 0) { + } else if ((var_r31->unk_24 & 0x20) != 0) { if ((var_r31->unk_24 & 0x40) != 0) { var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 1; var_r31->unk_00 = 1; - } - else { + } else { var_r31->unk_00 = temp_r30->unk_4C - 1; } - } - else if ((var_r31->unk_24 & 0x40) != 0) { + } else if ((var_r31->unk_24 & 0x40) != 0) { var_r31->unk_24 |= 8; var_r31->unk_00 = 0; } var_r31->unk_24 |= 4; - } - else { + } else { var_r31->unk_24 &= ~8; } if (var_r31->unk_00 != var_r31->unk_01) { @@ -548,13 +525,11 @@ void fn_1_FD40(M438UnkStruct2 *arg0) if ((var_r31->unk_24 & 0x40) == 0) { if (var_r31->unk_00 <= 0) { var_r31->unk_00 = temp_r30->unk_4C; - } - else { + } else { var_r31->unk_00 = 0; } } - } - else if ((var_r28->unk_38 & 0x80000000) != 0) { + } else if ((var_r28->unk_38 & 0x80000000) != 0) { fn_1_107BC(arg0->unk_00); } var_r27++; @@ -565,27 +540,24 @@ void fn_1_FD40(M438UnkStruct2 *arg0) if (var_r27 >= arg0->unk_02) { if ((arg0->unk_08 & 0x40000000) != 0) { arg0->unk_08 |= 4; - } - else if ((arg0->unk_08 & 0x80000000) != 0) { + } else if ((arg0->unk_08 & 0x80000000) != 0) { fn_1_107BC(arg0->unk_00); } } PPCSync(); } -s16 fn_1_10258(u8 arg0, u8 arg1) -{ - M438UnkStruct *var_r30; - M438UnkStruct2 *var_r31; +s16 fn_1_10258(u8 arg0, u8 arg1) { + M438UnkStruct* var_r30; + M438UnkStruct2* var_r31; s32 var_r29; s32 var_r28; - void *temp_r25; + void* temp_r25; var_r31 = &lbl_1_bss_DE4.unk_40[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_30; var_r29++, var_r31++) { - if (var_r31->unk_08 == 0) - break; + if (var_r31->unk_08 == 0) break; } if (var_r29 == lbl_1_bss_DE4.unk_30) { OSReport("OVER BILL\n"); @@ -596,15 +568,15 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r31->unk_30 = NULL; var_r31->unk_02 = arg0; var_r31->unk_04 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct), MEMORY_DEFAULT_NUM); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, 0x10000000); var_r31->unk_3C = var_r30; - var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), MEMORY_DEFAULT_NUM); + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000); var_r31->unk_48 = 0; - var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, MEMORY_DEFAULT_NUM); - var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); - var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); - var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); - var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * sizeof(M438UnkSubStruct)), MEMORY_DEFAULT_NUM); + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, 0x10000000); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, 0x10000000); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, 0x10000000); + var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, 0x10000000); + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), 0x10000000); DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8); var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; @@ -612,15 +584,15 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r31->unk_70.x = var_r31->unk_70.y = var_r31->unk_70.z = 0.0f; var_r31->unk_64.x = var_r31->unk_64.y = var_r31->unk_64.z = 0.0f; var_r31->unk_60 = 0; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r31->unk_7Ca[var_r29] = 0; } - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { var_r31->unk_34[var_r29] = 0; } - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { var_r30->unk_38 = 1; var_r30->unk_34 = arg1; @@ -633,7 +605,7 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r30->unk_54.r = var_r30->unk_54.g = var_r30->unk_54.b = 0xFF; var_r30->unk_54.a = 0xFF; var_r30->unk_58 = &var_r31->unk_5C[var_r29 * arg1]; - + for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r30->unk_58[var_r28].unk_00 = var_r30->unk_58[var_r28].unk_01 = 0; var_r30->unk_58[var_r28].unk_28 = 1.0f; @@ -646,19 +618,19 @@ s16 fn_1_10258(u8 arg0, u8 arg1) var_r30->unk_24.x = var_r30->unk_24.y = var_r30->unk_24.z = 0.0f; var_r30->unk_60.x = var_r30->unk_60.y = var_r30->unk_60.z = 0.0f; var_r30->unk_5C = 0; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r30->unk_78[var_r28] = 0; } var_r30->unk_44 = &var_r31->unk_50[var_r29 * 4]; var_r30->unk_48 = &var_r31->unk_54[var_r29 * 4]; var_r30->unk_4C = &var_r31->unk_58[var_r29]; - var_r30->unk_40 = ((char *)var_r31->unk_4C) + var_r31->unk_48; + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; fn_1_FAB8(var_r30); var_r31->unk_48 += var_r30->unk_3C; } temp_r25 = var_r31->unk_4C; - var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, MEMORY_DEFAULT_NUM); + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, 0x10000000); memcpy(var_r31->unk_4C, temp_r25, var_r31->unk_48); HuMemDirectFree(temp_r25); DCFlushRangeNoSync(var_r31->unk_50, arg0 * 0x30); @@ -667,9 +639,9 @@ s16 fn_1_10258(u8 arg0, u8 arg1) DCFlushRangeNoSync(var_r31->unk_4C, var_r31->unk_48); var_r30 = var_r31->unk_3C; var_r31->unk_48 = 0; - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { - var_r30->unk_40 = ((char *)var_r31->unk_4C) + var_r31->unk_48; + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; var_r31->unk_48 += var_r30->unk_3C; } lbl_1_bss_DE4.unk_36 = var_r31->unk_00; @@ -679,14 +651,13 @@ s16 fn_1_10258(u8 arg0, u8 arg1) return var_r31->unk_00; } -void fn_1_107BC(s16 arg0) -{ - M438UnkStruct2 *temp_r31; +void fn_1_107BC(s16 arg0) { + M438UnkStruct2* temp_r31; s32 var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; - if ((u32)temp_r31->unk_08 != 0) { + if ((u32) temp_r31->unk_08 != 0) { if (temp_r31->unk_50 != NULL) { HuMemDirectFree(temp_r31->unk_50); } @@ -702,7 +673,7 @@ void fn_1_107BC(s16 arg0) if (temp_r31->unk_5C != NULL) { HuMemDirectFree(temp_r31->unk_5C); } - + for (var_r30 = 0; var_r30 < temp_r31->unk_04; var_r30++) { fn_1_10F0C(temp_r31->unk_34[var_r30]); } @@ -714,8 +685,7 @@ void fn_1_107BC(s16 arg0) } } -void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) -{ +void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) { lbl_1_bss_DE4.unk_36 = arg0; lbl_1_bss_DE4.unk_38 = arg1; lbl_1_bss_DE4.unk_3A = arg2; @@ -723,45 +693,40 @@ void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) #include "game/sprite.h" -s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) -{ +s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) { f32 var_f31; f32 var_f30; - AnimData *var_r30; - M438UnkStruct3 *var_r31; + AnimData* var_r30; + M438UnkStruct3* var_r31; s32 var_r29; var_r31 = &lbl_1_bss_DE4.unk_3C[1]; for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { - if ((var_r31->unk_06 != 0) && (var_r31->unk_08 == arg0)) - break; + if ((var_r31->unk_06 != 0) && (var_r31->unk_08 == arg0)) break; } if (var_r29 < lbl_1_bss_DE4.unk_32) { var_r31->unk_06++; return var_r29; } - + var_r31 = &lbl_1_bss_DE4.unk_3C[1]; for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { - if (var_r31->unk_06 == 0) - break; + if (var_r31->unk_06 == 0) break; } var_r31->unk_08 = arg0; var_r31->unk_06 = 1; if (((arg0 & 0xFFFF0000) + 0x10000) == 0) { var_r30 = HuSprAnimMake(arg1, arg2, 2); - var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); arg1 = arg2 = 0; - } - else { - var_r30 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + } else { + var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); } if ((arg1 == 0) || (arg2 == 0)) { arg1 = var_r30->bmp->sizeX; arg2 = var_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } - else { + } else { var_f31 = arg1 / (f32)var_r30->bmp->sizeX; var_f30 = arg2 / (f32)var_r30->bmp->sizeY; } @@ -783,32 +748,31 @@ s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) } var_r31->unk_48.r = var_r31->unk_48.g = var_r31->unk_48.b = 0xFF; var_r31->unk_48.a = 0xFF; - MTXIdentity(var_r31->unk_18); + PSMTXIdentity(var_r31->unk_18); var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; return var_r29; } -void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) -{ +void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { f32 var_f31; f32 var_f30; - M438UnkStruct3 *temp_r31; - AnimData *temp_r30; + M438UnkStruct3* temp_r31; + AnimData* temp_r30; temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; HuSprAnimKill(temp_r31->unk_00); temp_r31->unk_08 |= 0xFFFF0000; temp_r30 = HuSprAnimMake(arg2, arg3, arg1); - temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), MEMORY_DEFAULT_NUM); - var_f31 = arg4 / (f32)temp_r30->bmp->sizeX; - var_f30 = arg5 / (f32)temp_r30->bmp->sizeY; + temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), 0x10000000U); + var_f31 = arg4 / (f32) temp_r30->bmp->sizeX; + var_f30 = arg5 / (f32) temp_r30->bmp->sizeY; temp_r31->unk_00 = temp_r30; temp_r31->unk_4E = arg2; temp_r31->unk_50 = arg3; temp_r31->unk_54 = var_f31; temp_r31->unk_58 = var_f30; - temp_r31->unk_5C = 1.0f / (f32)temp_r30->bmp->sizeX; - temp_r31->unk_60 = 1.0f / (f32)temp_r30->bmp->sizeY; + temp_r31->unk_5C = 1.0f / (f32) temp_r30->bmp->sizeX; + temp_r31->unk_60 = 1.0f / (f32) temp_r30->bmp->sizeY; temp_r31->unk_04 = 0; temp_r31->unk_4C = temp_r30->bmp->sizeY / arg5; temp_r31->unk_4D = 0; @@ -816,9 +780,8 @@ void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) temp_r31->unk_48.a = 0xFF; } -void fn_1_10F0C(s16 arg0) -{ - M438UnkStruct3 *temp_r31; +void fn_1_10F0C(s16 arg0) { + M438UnkStruct3* temp_r31; temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; if (temp_r31->unk_08 != 0) { @@ -832,36 +795,31 @@ void fn_1_10F0C(s16 arg0) } } -u8 fn_1_10F8C(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) -{ +u8 fn_1_10F8C(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { s32 var_r31; - if (arg0 == 0) - return 0; - + if (arg0 == 0) return 0; + var_r31 = fn_1_10910(arg2, arg3, arg4); - if (var_r31 == 0) - return 0; - + if (var_r31 == 0) return 0; + fn_1_110B4(arg0, arg1, var_r31); return var_r31; } -u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2) -{ +u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2) { u8 var_r31; var_r31 = fn_1_10F8C(arg0, arg1, arg2, 0, 0); - + return var_r31; } -s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) -{ - M438UnkStruct *var_r29; - M438UnkStruct2 *temp_r28; - M438UnkStruct3 *temp_r30; - M438UnkSubStruct *temp_r31; +s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) { + M438UnkStruct* var_r29; + M438UnkStruct2* temp_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* temp_r31; s32 var_r26; if (arg2 == 0) { @@ -877,7 +835,7 @@ s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) } temp_r28->unk_34[arg1] = arg2; temp_r30 = &lbl_1_bss_DE4.unk_3C[arg2]; - + var_r29 = temp_r28->unk_3C; for (var_r26 = 0; var_r26 < temp_r28->unk_02; var_r26++, var_r29++) { if (arg1 == 0) { @@ -916,11 +874,10 @@ s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) return 1; } -void fn_1_11658(void) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct3 *temp_r30; - M438UnkStruct3 *temp_r29; +void fn_1_11658(void) { + M438UnkStruct2* temp_r31; + M438UnkStruct3* temp_r30; + M438UnkStruct3* temp_r29; s32 var_r28; s32 var_r27; s16 var_r26; @@ -944,7 +901,7 @@ void fn_1_11658(void) if (temp_r31->unk_5C != NULL) { HuMemDirectFree(temp_r31->unk_5C); } - + for (var_r27 = 0; var_r27 < temp_r31->unk_04; var_r27++) { var_r26 = temp_r31->unk_34[var_r27]; temp_r29 = &lbl_1_bss_DE4.unk_3C[var_r26]; @@ -965,7 +922,7 @@ void fn_1_11658(void) } } } - + for (var_r28 = 1; var_r28 < lbl_1_bss_DE4.unk_32; var_r28++) { temp_r30 = &lbl_1_bss_DE4.unk_3C[(s16)var_r28]; if (temp_r30->unk_08 != 0U) { @@ -983,9 +940,8 @@ void fn_1_11658(void) Hu3DModelKill(lbl_1_bss_DE4.unk_34); } -void fn_1_11890(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct2 *temp_r31; +void fn_1_11890(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -998,10 +954,9 @@ void fn_1_11890(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_118FC(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_118FC(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1014,10 +969,9 @@ void fn_1_118FC(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_1196C(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_1196C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1031,9 +985,8 @@ void fn_1_1196C(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_119E0(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct2 *temp_r31; +void fn_1_119E0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1046,10 +999,9 @@ void fn_1_119E0(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11A64(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11A64(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1062,10 +1014,9 @@ void fn_1_11A64(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11AEC(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11AEC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1079,10 +1030,9 @@ void fn_1_11AEC(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11B78(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11B78(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1095,10 +1045,9 @@ void fn_1_11B78(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11BE8(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11BE8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1112,9 +1061,8 @@ void fn_1_11BE8(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11C5C(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct2 *temp_r31; +void fn_1_11C5C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1127,10 +1075,9 @@ void fn_1_11C5C(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11CC8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11CC8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1143,10 +1090,9 @@ void fn_1_11CC8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11D38(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11D38(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1160,9 +1106,8 @@ void fn_1_11D38(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11DAC(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct2 *temp_r31; +void fn_1_11DAC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1175,10 +1120,9 @@ void fn_1_11DAC(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11E18(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11E18(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1191,10 +1135,9 @@ void fn_1_11E18(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11E88(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11E88(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1208,9 +1151,8 @@ void fn_1_11E88(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11EFC(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct2 *temp_r31; +void fn_1_11EFC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1223,10 +1165,9 @@ void fn_1_11EFC(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11F68(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11F68(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1239,10 +1180,9 @@ void fn_1_11F68(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_11FD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_11FD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1256,9 +1196,8 @@ void fn_1_11FD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) } } -void fn_1_1204C(s16 arg0, s32 arg1) -{ - M438UnkStruct2 *temp_r31; +void fn_1_1204C(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1266,10 +1205,9 @@ void fn_1_1204C(s16 arg0, s32 arg1) } } -void fn_1_12090(s16 arg0, s16 arg1, s32 arg2) -{ - M438UnkStruct *temp_r30; - M438UnkStruct2 *temp_r31; +void fn_1_12090(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1280,10 +1218,9 @@ void fn_1_12090(s16 arg0, s16 arg1, s32 arg2) } } -void fn_1_12100(s16 arg0, s32 arg1) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12100(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; s32 var_r29; if (arg0 != 0) { @@ -1295,9 +1232,8 @@ void fn_1_12100(s16 arg0, s32 arg1) } } -void fn_1_12174(s16 arg0, u32 arg1) -{ - M438UnkStruct2 *temp_r31; +void fn_1_12174(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1305,24 +1241,22 @@ void fn_1_12174(s16 arg0, u32 arg1) } } -void fn_1_121B8(s16 arg0, s16 arg1, u32 arg2) -{ - M438UnkStruct *temp_r30; - M438UnkStruct2 *temp_r31; +void fn_1_121B8(s16 arg0, s16 arg1, u32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; - if ((s16)temp_r31->unk_02 > arg1) { + if ((s16) temp_r31->unk_02 > arg1) { temp_r30 = &temp_r31->unk_3C[arg1]; temp_r30->unk_38 &= ~arg2; } } } -void fn_1_12228(s16 arg0, u32 arg1) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12228(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; s32 var_r29; if (arg0 != 0) { @@ -1334,10 +1268,9 @@ void fn_1_12228(s16 arg0, u32 arg1) } } -s32 fn_1_1229C(s16 arg0, s32 arg1) -{ - M438UnkStruct2 *var_r31; - +s32 fn_1_1229C(s16 arg0, s32 arg1) { + M438UnkStruct2* var_r31; + if (arg0 == 0) { return 0; } @@ -1349,10 +1282,9 @@ s32 fn_1_1229C(s16 arg0, s32 arg1) return 0; } -s16 fn_1_122F8(s16 arg0, s16 arg1, s32 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +s16 fn_1_122F8(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1367,10 +1299,9 @@ s16 fn_1_122F8(s16 arg0, s16 arg1, s32 arg2) return arg0; } -void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) -{ - M438UnkStruct *temp_r31; - M438UnkStruct2 *temp_r30; +void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1384,10 +1315,9 @@ void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) } } -void fn_1_123EC(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_123EC(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r29; if (arg0 != 0) { @@ -1402,10 +1332,9 @@ void fn_1_123EC(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) } } -void fn_1_12464(s16 arg0, s16 arg1, u8 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12464(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1416,10 +1345,9 @@ void fn_1_12464(s16 arg0, s16 arg1, u8 arg2) } } -void fn_1_124CC(s16 arg0, u8 arg1) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_124CC(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; s32 var_r29; if (arg0 != 0) { @@ -1431,10 +1359,9 @@ void fn_1_124CC(s16 arg0, u8 arg1) } } -void fn_1_12538(s16 arg0, s16 arg1, u8 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12538(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1445,10 +1372,9 @@ void fn_1_12538(s16 arg0, s16 arg1, u8 arg2) } } -void fn_1_125A0(s16 arg0, u8 arg1) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_125A0(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; s32 var_r29; if (arg0 != 0) { @@ -1460,10 +1386,9 @@ void fn_1_125A0(s16 arg0, u8 arg1) } } -void fn_1_1260C(s16 arg0, s16 arg1, u8 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_1260C(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1474,10 +1399,9 @@ void fn_1_1260C(s16 arg0, s16 arg1, u8 arg2) } } -void fn_1_12674(s16 arg0, u8 arg1) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12674(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; s32 var_r29; if (arg0 != 0) { @@ -1489,10 +1413,9 @@ void fn_1_12674(s16 arg0, u8 arg1) } } -void fn_1_126E0(s16 arg0, s16 arg1, u8 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_126E0(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1503,10 +1426,9 @@ void fn_1_126E0(s16 arg0, s16 arg1, u8 arg2) } } -void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1517,16 +1439,15 @@ void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) } } -void fn_1_127C4(s16 arg0, u8 arg1) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r29; +void fn_1_127C4(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r29; s32 var_r28; s32 var_r30; if (arg0 != 0) { temp_r29 = &lbl_1_bss_DE4.unk_40[arg0]; - var_r31 = (M438UnkStruct *)&temp_r29->unk_3C; //! bug + var_r31 = (M438UnkStruct*)&temp_r29->unk_3C; //! bug for (var_r28 = 0; var_r28 < temp_r29->unk_02; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk_34; var_r30++) { var_r31->unk_58[var_r30].unk_24 = arg1; @@ -1535,10 +1456,9 @@ void fn_1_127C4(s16 arg0, u8 arg1) } } -void fn_1_1285C(s16 arg0, s16 arg1, f32 arg8) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_1285C(s16 arg0, s16 arg1, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1549,10 +1469,9 @@ void fn_1_1285C(s16 arg0, s16 arg1, f32 arg8) } } -void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1563,17 +1482,16 @@ void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) } } -void fn_1_12940(s16 arg0, f32 arg8) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_12940(s16 arg0, f32 arg8) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r28; s32 var_r29; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; var_r31 = temp_r30->unk_3C; - + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { var_r31->unk_58[var_r29].unk_28 = arg8; @@ -1582,10 +1500,9 @@ void fn_1_12940(s16 arg0, f32 arg8) } } -void fn_1_129D8(s16 arg0, s16 arg1, u8 arg2) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_129D8(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1596,10 +1513,9 @@ void fn_1_129D8(s16 arg0, s16 arg1, u8 arg2) } } -void fn_1_12A48(s16 arg0, s16 arg1, u8 arg2, u8 arg3) -{ - M438UnkStruct2 *temp_r31; - M438UnkStruct *var_r30; +void fn_1_12A48(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; @@ -1610,17 +1526,16 @@ void fn_1_12A48(s16 arg0, s16 arg1, u8 arg2, u8 arg3) } } -void fn_1_12AC0(s16 arg0, u8 arg1) -{ - M438UnkStruct *var_r31; - M438UnkStruct2 *temp_r30; +void fn_1_12AC0(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; s32 var_r28; s32 var_r29; if (arg0 != 0) { temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; var_r31 = temp_r30->unk_3C; - + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { var_r31->unk_58[var_r29].unk_00 = arg1; @@ -1629,10 +1544,9 @@ void fn_1_12AC0(s16 arg0, u8 arg1) } } -void fn_1_12B58(s16 arg0, u8 arg1) -{ - M438UnkStruct3 *var_r31; - +void fn_1_12B58(s16 arg0, u8 arg1) { + M438UnkStruct3* var_r31; + if (arg0 != 0) { var_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; var_r31->unk_04 = arg1; diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 18b50662..861c653d 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -1,7 +1,6 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" -#include "game/hsfex.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" @@ -14,10 +13,6 @@ #include "REL/m438Dll.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - #define BOARD_FABS(value) ((value < 0.0f) ? -(value) : (value)) typedef struct M438MainWork { @@ -1202,6 +1197,7 @@ void fn_1_35C0(omObjData *object) s16 sp0A; s16 sp8; + float var_f31; float var_f30; float var_f29; @@ -1501,6 +1497,7 @@ void fn_1_4984(omObjData *object) Vec sp8; float var_f31; s32 var_r27; + M438MainWork3 *var_r28; M438MainWork3 *var_r30; M438MainWork3 *var_r31; @@ -1595,7 +1592,9 @@ void fn_1_4F50(omObjData *object) float var_f29; float var_f28; float var_f27; + float var_f25; s32 var_r26; + M438MainWork3 *var_r27; s32 var_r28; M438MainWork *var_r29; M438MainWork3 *var_r31; @@ -2602,6 +2601,8 @@ void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg float sp48[16]; float sp8[16]; + float var_f29; + s32 var_r30; s32 var_r29; @@ -2671,6 +2672,8 @@ f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) { Vec sp44; f32 var_f31; + f32 var_f30; + f32 temp_f29; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) @@ -2683,7 +2686,28 @@ f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) f32 fn_1_9C9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) { + f32 sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2C; + f32 sp28; + f32 sp24; + Vec sp18; + f32 sp14; + f32 sp10; + f32 spC; + f32 sp8; + f32 temp_f25; + f32 temp_f26; + f32 temp_f28; + f32 var_f24; f32 var_f27; + f64 temp_f31; + f64 temp_f31_2; + f64 temp_f31_3; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index 1ba02bc0..ea4ba2d0 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -1,17 +1,12 @@ #include "REL/m438Dll.h" #include "ext_math.h" -#include "game/audio.h" #include "game/hsfanim.h" #include "game/hsfmotion.h" -#include "game/memory.h" #include "game/sprite.h" #include "game/wipe.h" #include "string.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif // STRUCT typedef struct M438MapStruct { @@ -97,7 +92,7 @@ void fn_1_B54C(omObjData *arg0) M438MapStruct *var_r24; M438MapStruct3 *temp_r23; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); temp_r23 = arg0->data; memset(temp_r23, 0, 0x108C); arg0->model[0] = Hu3DModelCreateFile(0x450000); @@ -377,6 +372,7 @@ void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix) { HsfanimStruct01 *var_r31; s32 var_r29; + u16 temp_r0; var_r31 = particle->unk_48; @@ -403,6 +399,7 @@ void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix) { HsfanimStruct01 *var_r31; s32 var_r29; + u16 temp_r0; var_r31 = particle->unk_48; @@ -511,6 +508,7 @@ void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix) { HsfanimStruct01 *var_r31; s32 var_r29; + u16 temp_r0; lbl_1_bss_E2C = 0; var_r31 = particle->unk_48; @@ -583,6 +581,7 @@ s32 fn_1_DA64(f32 arg8) s32 var_r30; M438MapStruct2 *var_r31; float var_f31; + float var_f29; var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index 81595139..44c7927b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -1,6 +1,5 @@ #include "game/hsfanim.h" #include "game/hsfdraw.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/object.h" @@ -24,12 +23,6 @@ #include "REL/m439data.h" #include "version.h" -#ifndef __MWERKS__ -#include "game/ClusterExec.h" -#include "game/EnvelopeExec.h" -#include "game/ShapeExec.h" -#endif - typedef struct camera_params { float zoom; Vec pos; diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index ff62f742..85db113d 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -600,7 +600,7 @@ void fn_1_2470(omObjData *arg0) s16 var_r30; unkStruct2 *temp_r27; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct2), MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r27 = arg0->data; arg0->stat |= 0x100; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x08)); @@ -1344,12 +1344,12 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) arg2->unk38 = NULL; arg2->unk3C = 0xFF; arg2->unk3E = 0; - arg2->unk18 = HuMemDirectMallocNum(HEAP_DATA, arg1->data.vertex->count * sizeof(Vec), var_r29->unk_48); + arg2->unk18 = HuMemDirectMallocNum(HEAP_DATA, arg1->data.vertex->count * 0xC, var_r29->unk_48); fn_1_6554(arg2, arg1); fn_1_6B58(arg2, arg1); - arg2->unkC = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48); - arg2->unk10 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48); - arg2->unk14 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * sizeof(Vec), var_r29->unk_48); + arg2->unkC = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48); + arg2->unk10 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48); + arg2->unk14 = HuMemDirectMallocNum(HEAP_DATA, arg2->unk8 * 0xC, var_r29->unk_48); if (arg2->unk28->numAttrs != 0) { arg2->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg1->data.st->count * 8, var_r29->unk_48); var_r22 = arg1->data.st->data; @@ -1565,7 +1565,7 @@ void fn_1_6B58(unkStruct6 *arg0, HsfObject *arg1) break; } } - arg0->unk24 = HuMemDirectMallocNum(HEAP_DATA, arg0->unk20 * sizeof(unkStruct8), var_r22->unk_48); + arg0->unk24 = HuMemDirectMallocNum(HEAP_DATA, arg0->unk20 * 0xD0, var_r22->unk_48); var_r31 = arg0->unk24; if (var_r24 != 0) { var_r30 = arg1->data.vertex->count; @@ -1843,10 +1843,7 @@ void fn_1_7D60(unkStruct15 *arg0, unkStruct13 *arg1, s16 arg2) } GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); GXLoadTexObj(&sp1C, arg2); -#ifdef TARGET_PC - GXDestroyTexObj(&sp1C); - GXDestroyTlutObj(&sp10); -#endif + return; } void fn_1_806C(ModelData *arg0, Mtx arg1) @@ -1879,10 +1876,10 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r31->unkC, temp_r31->unk8 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r31->unkC, 12); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r31->unk14, temp_r31->unk8 * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, temp_r31->unk14, 12); lbl_1_bss_C = temp_r31->unk3C; if (temp_r31->unk28->unk34 == 0) { GXSetNumTevStages(1); @@ -1897,18 +1894,18 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) else { GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r31->unk1C, sizeof(Vec2f), sizeof(Vec2f)); // TODO PC + GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8); temp_r29 = &temp_r31->unk2C[temp_r31->unk28->unk38[0]]; fn_1_7D60(temp_r29->unk80, temp_r29, 0); lbl_1_bss_2C = 1; - HuSprTexLoad(hiliteAnim[0], 0, lbl_1_bss_2C, GX_CLAMP, GX_CLAMP, GX_LINEAR); + HuSprTexLoad(*hiliteAnim, 0, lbl_1_bss_2C, GX_CLAMP, GX_CLAMP, GX_LINEAR); fn_1_8470(temp_r31->unk28, temp_r29); } GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(GX_FALSE); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXCallDisplayListNative(temp_r31->unk30, temp_r31->unk34); + GXCallDisplayList(temp_r31->unk30, temp_r31->unk34); } void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) @@ -2135,9 +2132,6 @@ void fn_1_8D1C(void) GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGBA8, GX_FALSE); GXCopyTex(lbl_1_bss_28, 0); DCFlushRange(lbl_1_bss_28, lbl_1_bss_24); -#ifdef TARGET_PC - GXDestroyTexObj(&sp10); -#endif } void fn_1_91A4(Vec *arg0, Vec *arg1, Vec *arg2, f32 arg3[5]) @@ -2255,33 +2249,33 @@ s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) var_r20 = Hu3DHookFuncCreate(fn_1_9C04); temp_r28 = &Hu3DData[var_r20]; - var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(unkStruct5), temp_r28->unk_48); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, 0x68, temp_r28->unk_48); temp_r28->unk_120 = var_r31; arg0->useNum += 1; var_r31->unk10 = arg0; var_r31->unk0 = arg1; var_r31->unk8 = 0; var_r31->unkC = NULL; - var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(unkStruct4), temp_r28->unk_48); + var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0x64, temp_r28->unk_48); var_r31->unk18 = var_r24; for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { var_r24->unk60 = -1; var_r24->unk62 = 0; } - var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48); + var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0xC * 4, temp_r28->unk_48); var_r31->unk1C = var_r25; for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { var_r25->x = var_r25->y = var_r25->z = 0.0f; } - var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48); + var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 4, temp_r28->unk_48); var_r31->unk24 = var_r27; for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; } - var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, temp_r28->unk_48); + var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 8 * 4, temp_r28->unk_48); var_r31->unk20 = var_r29; for (var_r30 = 0; var_r30 < arg1; var_r30++) { @@ -2458,15 +2452,15 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r30->unk1C, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8); fn_1_9344(arg1, sp128); - MTXReorder(sp128, spF8); + PSMTXReorder(sp128, spF8); if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) { var_r23 = temp_r30->unkC; var_r23(arg0, temp_r30, arg1); @@ -2474,7 +2468,7 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) var_r29 = temp_r30->unk18; var_r31 = temp_r30->unk1C; var_r27 = temp_r30->unk20; - MTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec *)&sp68[0], 4); + PSMTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec *)&sp68[0], 4); for (var_r26 = 0; var_r26 < temp_r30->unk0; var_r26++, var_r29++, var_r27 += 4) { if (var_r29->unk62 == 0) { @@ -2510,9 +2504,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) } } } - DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4); - DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4); - GXCallDisplayListNative(temp_r30->unk28, temp_r30->unk4); + DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * 0xC * 4); + DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * 8 * 4); + GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } void fn_1_A1B8(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 5de16855..5eb6cb5c 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -1,7 +1,6 @@ #include "REL/m440Dll.h" #include "ext_math.h" -#include "game/audio.h" #include "game/chrman.h" #include "game/flag.h" #include "game/gamework_data.h" @@ -11,6 +10,10 @@ #include "string.h" #include "version.h" +#ifdef __MWERKS__ +#include "game/audio.h" +#endif + // bss omObjData *lbl_1_bss_C0[4]; s16 lbl_1_bss_B8[4]; @@ -53,9 +56,9 @@ void fn_1_AEE4(omObjData *arg0) s16 var_r29; unkObjStruct *temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkObjStruct), MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM); temp_r31 = (unkObjStruct *)arg0->data; - memset(temp_r31, 0, sizeof(unkObjStruct)); + memset(temp_r31, 0, 0x78); arg0->stat |= 0x100; temp_r31->unk4 = arg0->work[0]; temp_r31->unk6 = GWPlayerCfg[temp_r31->unk4].pad_idx; @@ -104,9 +107,13 @@ void fn_1_B180(omObjData *arg0) { s16 var_r29; s16 var_r31; + s32 var_r28; + u32 temp_r0; + u32 temp_r3; + u32 temp_r3_2; unkObjStruct *temp_r30; - s32 var_r28 = GWSystem.player_curr; + var_r28 = GWSystem.player_curr; if (var_r28 < 0) { var_r28 = 0; } @@ -229,6 +236,9 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) f32 var_f28; f32 var_f31; f32 var_f30; + s16 temp_r0; + s16 temp_r0_2; + s16 temp_r3; s16 var_r30; switch (lbl_1_bss_74) { @@ -362,8 +372,13 @@ void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1) { s16 sp12[5]; s16 sp8[5]; + f32 var_f28; + f32 var_f29; f32 var_f30; f32 var_f31; + s16 temp_r0; + s16 temp_r0_2; + s16 temp_r3; s16 var_r29; s16 var_r28; s16 var_r30; @@ -475,6 +490,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) f32 var_f29; f32 var_f30; f32 var_f31; + s16 var_r28; s16 var_r30; s16 var_r29; @@ -642,8 +658,10 @@ s16 fn_1_CFAC(unkObjStruct *arg0, u8 arg1) void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2) { - f32 var_f31; f32 var_f28; + f32 var_f29; + f32 var_f30; + f32 var_f31; var_f28 = REFRESH_RATE_F / 6.0f; arg0->unk6C = arg1; @@ -1111,8 +1129,14 @@ void fn_1_F168(void) void fn_1_F228(void) { omObjData *temp_r30; + s16 temp_r0; s16 var_r29; + s32 temp_r27; + s32 temp_r27_2; s32 var_r28; + u32 temp_r0_2; + u32 temp_r3; + u32 temp_r3_2; unkObjStruct *temp_r31; for (var_r29 = 0; var_r29 < 4; var_r29++) { diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index cda76fda..bc0d7e77 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -6,7 +6,6 @@ #include "game/objsub.h" #include "game/wipe.h" -#include "game/gamework.h" #include "game/gamework_data.h" #include "game/mapspace.h" @@ -24,13 +23,6 @@ #include "ext_math.h" #include "version.h" -#ifndef __MWERKS__ -#include -#include -#endif - -void HuSysVWaitSet(s16 vcount); - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -708,9 +700,7 @@ HsfanimStruct00 lbl_1_data_48C = { { { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } }, }; -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_2454(omObjData *object) { @@ -1782,6 +1772,9 @@ void fn_1_892C(s16 arg0, s16 arg1, Vec *arg2) { omObjData *object; Work713C *work; + float x; + float y; + float z; if (lbl_1_bss_1E >= 400) { OSReport("over!!\n"); return; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 9f45c7b0..53dd649a 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -16,11 +16,6 @@ #include "REL/m442Dll.h" -#ifndef __MWERKS__ -#include "game/esprite.h" -#include "game/frand.h" -#endif - typedef struct M442StructBss5C { /* 0x00 */ float unk_00; // probably Vec /* 0x04 */ float unk_04; @@ -248,7 +243,7 @@ void ObjectSetup(void) var_r29 = Hu3DGLightCreateV(&lbl_1_data_54, &lbl_1_bss_14, &lbl_1_data_6C); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); - Hu3DShadowCreate(10.0f, var_r30->nnear, var_r30->ffar); + Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far); Hu3DShadowTPLvlSet(0.625f); Hu3DShadowPosSet(&lbl_1_data_70, &lbl_1_data_7C, &lbl_1_data_60); HuAudSndGrpSet(0x44); @@ -823,6 +818,7 @@ void fn_1_2254(omObjData *object) float var_f31; float var_f30; + double var_f29; float var_f28; float var_f27; float var_f26; @@ -1469,10 +1465,26 @@ void fn_1_485C(ModelData *model, Mtx mtx) Vec sp10; float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; M442StructBss5C *var_r31; s32 var_r30; CameraData *var_r29; + u16 var_r28; + u16 var_r27; + u16 var_r26; + u16 var_r25; var_r29 = Hu3DCamera; C_MTXOrtho(sp100, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); @@ -1515,12 +1527,12 @@ void fn_1_485C(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->nnear, var_r29->ffar); + C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far); GXSetProjection(sp40, GX_PERSPECTIVE); MTXInverse(mtx, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f; - MTXReorder(spA0, sp70); - MTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4); + PSMTXReorder(spA0, sp70); + PSMTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4); GXLoadPosMtxImm(mtx, 0); var_r31 = lbl_1_bss_5C; for (var_r30 = 0; var_r30 < 1024; var_r30++, var_r31++) { @@ -1618,9 +1630,6 @@ void fn_1_54C8(ModelData *model, Mtx mtx) GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&spC); -#endif } s16 fn_1_5918(Vec *arg0) @@ -1655,6 +1664,15 @@ s32 fn_1_59C0(Vec *arg0) void fn_1_5A48(ModelData *arg0, Mtx arg1) { + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + M442StructBssC9F8 *var_r31; s32 var_r30; @@ -1708,6 +1726,8 @@ GXColor lbl_1_data_218 = { 0xFF, 0xFF, 0xFF, 0x80 }; void fn_1_5EDC(ModelData *model, float (*mtx)[4]) { + float sp38; + float sp28; Mtx spC; M442MainWork *var_r31; @@ -2118,6 +2138,8 @@ void fn_1_7EBC(ModelData *model, ParticleData *particle, Mtx matrix) { s32 sp14; float sp10; + float spC; + float sp8; float var_f31; diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index f0ab0aa4..acf8f914 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -809,6 +809,9 @@ void fn_1_3770(omObjData *arg0) s32 var_r26; u32 var_r25; s32 var_r24; + s32 var_r23; + u32 var_r22; + u32 var_r21; var_r28 = arg0->data; { diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index 2ee3729e..9ed45b12 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -10,7 +10,6 @@ #ifndef __MWERKS__ #include "game/esprite.h" -#include "game/frand.h" #endif #include "REL/m443Dll.h" @@ -213,6 +212,7 @@ void fn_1_5680(omObjData *object) { f32 spC[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; s32 sp8; + f32 temp_f0; s32 temp_r27; s32 temp_r3; s32 var_r29; @@ -220,7 +220,7 @@ void fn_1_5680(omObjData *object) M443DllWorkStruct *temp_r31; HsfanimStruct01 *var_r28; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M443DllWorkStruct), MEMORY_DEFAULT_NUM); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x134, MEMORY_DEFAULT_NUM); temp_r31 = object->data; memset(temp_r31, 0, 0x134); object->stat |= 0x100; @@ -403,6 +403,7 @@ void fn_1_6458(omObjData *object) f32 var_f31; s32 var_r29; M443DllWorkStruct *temp_r31; + void *temp_r4; temp_r31 = object->data; var_r29 = 0; @@ -443,6 +444,7 @@ void fn_1_6458(omObjData *object) void fn_1_6674(omObjData *object) { M443DllWorkStruct *temp_r31; + void *temp_r4; temp_r31 = object->data; temp_r31->unk10 = 0; @@ -565,6 +567,9 @@ void fn_1_6B90(omObjData *object) { 3, 2, 1, 0 }, }; f32 sp18[4] = { 0.0f, -700.0f, 600.0f, 1200.0f }; + s32 sp14; + s32 sp10; + s32 spC; s32 sp8[4] = { 2, 4, 8, 16 }; f32 var_f31; s32 var_r28; @@ -973,6 +978,7 @@ void fn_1_8508(omObjData *object) s32 var_r30; M443DllWorkStruct *temp_r28; M443DllUnkStruct *temp_r31; + f32 *temp_r4; temp_r28 = object->data; temp_r31 = &temp_r28->unk108s; diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 52ede40d..27ef0821 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -1,4 +1,3 @@ -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/object.h" @@ -18,6 +17,7 @@ #include "REL/m444dll.h" #include "ext_math.h" +#include "math.h" typedef struct camera_view_params { Vec rot; diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index e4ad2e19..a455a9f4 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -10,17 +10,19 @@ #include "game/audio.h" #include "game/chrman.h" +#include "game/esprite.h" #include "game/window.h" +#include "game/wipe.h" +#include "game/board/ui.h" +#include "game/gamework.h" #include "game/gamework_data.h" #include "REL/m444dll.h" #include "ext_math.h" #include "version.h" +#include "math.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif s16 lbl_1_bss_198F0[5][2]; Vec lbl_1_bss_D8F0[4096]; diff --git a/src/REL/m444dll/shadow.c b/src/REL/m444dll/shadow.c index 604c5e85..9351f3e6 100644 --- a/src/REL/m444dll/shadow.c +++ b/src/REL/m444dll/shadow.c @@ -1,6 +1,8 @@ #include "game/hsfman.h" #include "game/object.h" +#include "game/window.h" + #include "ext_math.h" void fn_1_D9F4(s16); @@ -21,7 +23,7 @@ void fn_1_D9F4(s16 arg0) CameraData *var_r31; var_r31 = &Hu3DCamera[0]; - C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar); + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); GXSetProjection(sp64, GX_PERSPECTIVE); GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); GXSetScissor(0, 0, 0x280, 0x1E0); diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index b1251344..831d1e69 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -2,7 +2,6 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" -#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" @@ -17,6 +16,7 @@ #include "game/window.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" typedef struct { diff --git a/src/REL/m446Dll/camera.c b/src/REL/m446Dll/camera.c index 2b353e3a..8a49a82f 100644 --- a/src/REL/m446Dll/camera.c +++ b/src/REL/m446Dll/camera.c @@ -1,5 +1,6 @@ #include "REL/m446Dll.h" +#include "math.h" #include "ext_math.h" #include "game/hsfman.h" #include "game/printfunc.h" diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 0f187b20..fa45170f 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -15,7 +15,7 @@ unkStruct2 *fn_1_1C64(s32 arg0) { unkStruct2 *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct2), MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -86,7 +86,7 @@ unkStruct3 *fn_1_1DF4(void *arg0) { unkStruct3 *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct3), MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -211,7 +211,9 @@ void fn_1_207C(void) void fn_1_20D4(void) { + m446Func1 *temp_r4; f32 temp_f31; + s32 temp_r5; unkStruct4 *temp_r31; unkStruct3 *var_r30; @@ -273,7 +275,7 @@ unkStruct4 *m446CardCreate(s32 arg0) unkStruct4 *temp_r31; unkStruct3 *temp_r30; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct4), MEMORY_DEFAULT_NUM); + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM); if (!temp_r31) { OSReport("[!] m446CardCreate ERROR...\n"); return NULL; diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 0fee3a5f..c57da258 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -70,7 +70,7 @@ unkStruct7 *m446CursorCreate(s32 arg0) unkStruct7 *var_r31; unkStruct3 *var_r29; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m446Dll/deck.c b/src/REL/m446Dll/deck.c index cf3ce64d..83e541ee 100644 --- a/src/REL/m446Dll/deck.c +++ b/src/REL/m446Dll/deck.c @@ -1,6 +1,6 @@ #include "REL/m446Dll.h" -#include "game/audio.h" +#include "math.h" #include "ext_math.h" // bss @@ -18,7 +18,7 @@ unkStruct5* fn_1_3064(void) { s32 var_r30; unkStruct5* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct5), MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index 91e62596..b73f19e3 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -5,8 +5,8 @@ #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/jmp.h" #include "game/minigame_seq.h" -#include "game/objsub.h" #include "game/window.h" #include "game/wipe.h" @@ -94,7 +94,7 @@ unkStruct *m446FlowCreate(void) s32 var_r30; unkStruct *temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct), MEMORY_DEFAULT_NUM); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM); if (temp_r3 == 0) { OSReport("[!] m446FlowCreate() ERROR...\n"); return NULL; @@ -288,6 +288,9 @@ void fn_1_53C(unkStruct *arg0) void fn_1_958(unkStruct *arg0) { + s32 temp_r3; + s32 temp_r3_2; + s32 temp_r3_3; s32 var_r30; switch (arg0->unk10) { @@ -678,6 +681,7 @@ void fn_1_19D4(void) { s16 temp_r3; s16 var_r30; + s32 temp_r0; s32 var_r29; u32 temp_r27; diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 57d002a4..ecf62fa9 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -1,6 +1,5 @@ #include "REL/m446Dll.h" -#include "game/audio.h" #include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfman.h" @@ -167,7 +166,7 @@ unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) s32 var_r30; unkStruct8 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct8), MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } @@ -339,6 +338,7 @@ s32 m446PlayerAppendCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2) { Vec sp18; Vec spC; + s32 temp_r0_2; s32 temp_r28; s32 temp_r27; s32 var_r29; @@ -859,7 +859,7 @@ void fn_1_64BC(unkStruct8 *arg0, s32 arg1, s32 arg2) } } -static inline s32 unkStruct8UnkC8(unkStruct8 *arg0) +static inline unkStruct8UnkC8(unkStruct8 *arg0) { if (arg0->unkC8 == 0) { return 0; diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 5248117e..19f9d91f 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -101,7 +101,7 @@ unkStruct9 *m446StageCreate(void) unkStruct3 *temp_ret; unkStruct9 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct9), MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index e972842c..ea79e3b9 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -1,5 +1,4 @@ #include "REL/m446Dll.h" -#include "game/audio.h" #include "game/hsfman.h" #include "game/pad.h" @@ -47,7 +46,7 @@ unkStruct6 *fn_1_39D0(void) unkStruct3 *var_r29; unkStruct6 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct6), MEMORY_DEFAULT_NUM); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } diff --git a/src/REL/m447dll/main.c b/src/REL/m447dll/main.c index dbba1ee1..eeb86fd4 100755 --- a/src/REL/m447dll/main.c +++ b/src/REL/m447dll/main.c @@ -13,10 +13,6 @@ #include "math.h" -#ifndef __MWERKS__ -#include "game/audio.h" -#endif - typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ char unk02[2]; @@ -467,12 +463,7 @@ void fn_1_1068(UnkM447Struct_00* arg0) { /* fallthrough */ case 1: // Bug: HuAudSeqFadeOut takes two arguments. -#ifdef TARGET_PC - // TODO PC - HuAudSeqFadeOut(arg0->unk70, 100); -#else HuAudSeqFadeOut(arg0->unk70); -#endif arg0->unk30 = MGSeqCreate(3, 1); arg0->unk1C = 2; /* fallthrough */ diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c index d74c3a1c..a4744d53 100755 --- a/src/REL/m447dll/player.c +++ b/src/REL/m447dll/player.c @@ -4,7 +4,6 @@ #include "game/data.h" #include "game/esprite.h" #include "game/gamework_data.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 0e7c6322..961f27be 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -3,6 +3,7 @@ #include "game/chrman.h" #include "game/data.h" #include "game/esprite.h" +#include "game/flag.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" @@ -17,11 +18,10 @@ #include "game/window.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" #include "version.h" -s32 rand8(void); - typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; @@ -301,9 +301,6 @@ void fn_1_4FC(ModelData *model, Mtx matrix) } } } -#ifdef TARGET_PC - GXDestroyTexObj(&lbl_1_bss_40); -#endif } const Vec lbl_1_rodata_100 = { 0.0f, 0.0f, 0.0f }; diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index 6a18dd8c..02d13d79 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -5,6 +5,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/esprite.h" +#include "game/flag.h" #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" @@ -15,6 +16,7 @@ #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" @@ -24,7 +26,7 @@ #include "game/hsfex.h" #endif -extern s32 rand8(void); +s32 rand8(void); typedef struct UnkCameraStruct { /* 0x00 */ float unk_00; @@ -1315,7 +1317,15 @@ float lbl_1_data_294 = -30.0f; void fn_1_6850(omObjData *object) { M449DllWork *sp20[2]; + s32 sp1C; + s32 sp18; + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; float var_f31; + float var_f30; + float var_f29; s32 var_r31; s32 var_r30; @@ -1440,6 +1450,8 @@ void fn_1_71A8(void) s16 var_r31; s32 var_r30; s16 var_r29; + s32 var_r28; + s32 var_r27; u32 var_r26; var_r29 = 0; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index d1a76105..4610c4b3 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -1589,13 +1589,13 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, var_r31->unk_14, var_r31->unk_64 * sizeof(Vec) * 4, sizeof(Vec)); + GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, var_r31->unk_20, var_r31->unk_64 * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, var_r31->unk_20, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, var_r31->unk_18, var_r31->unk_64 * sizeof(Vec2f) * 4, sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, var_r31->unk_18, 8); sp130[0][0] = arg1[0][0]; sp130[1][0] = arg1[0][1]; sp130[2][0] = arg1[0][2]; @@ -1608,7 +1608,7 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1) sp130[0][3] = 0.0f; sp130[1][3] = 0.0f; sp130[2][3] = 0.0f; - MTXReorder(sp130, sp100); + PSMTXReorder(sp130, sp100); if ((omPauseChk() == 0) && (var_r31->unk_00)) { spC = var_r31->unk_00; spC(arg0, var_r31, arg1); @@ -1616,7 +1616,7 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1) var_r29 = var_r31->unk_10; var_r30 = var_r31->unk_14; var_r27 = var_r31->unk_18; - MTXROMultVecArray(sp100, &var_r31->unk_28, sp70, 4); + PSMTXROMultVecArray(sp100, &var_r31->unk_28, sp70, 4); for (var_r19 = 0; var_r19 < var_r31->unk_64; var_r19++, var_r29++, var_r27 += 4) { if (var_r29->unk_3E < 0) { var_r30->x = var_r30->y = var_r30->z = 0.0f; @@ -1651,9 +1651,9 @@ void fn_1_56C4(ModelData *arg0, Mtx arg1) } } } - DCFlushRangeNoSync(var_r31->unk_14, var_r31->unk_64 * sizeof(Vec) * 4); - DCFlushRangeNoSync(var_r31->unk_18, var_r31->unk_64 * sizeof(Vec2f) * 4); - GXCallDisplayListNative(var_r31->unk_24, var_r31->unk_58); + DCFlushRangeNoSync(var_r31->unk_14, var_r31->unk_64 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_18, var_r31->unk_64 * 8 * 4); + GXCallDisplayList(var_r31->unk_24, var_r31->unk_58); } } @@ -1707,7 +1707,7 @@ s16 fn_1_5ED8(AnimData *arg0, Vec *arg1, float *arg2, s16 arg3, float arg8, s16 var_r31->unk_00 = 0; var_r31->unk_66 = arg3; var_r31->unk_6B = 0; - var_r31->unk_10 = HuMemDirectMallocNum(HEAP_DATA, arg3 * sizeof(UnkM450Struct2), var_r28->unk_48); + var_r31->unk_10 = HuMemDirectMallocNum(HEAP_DATA, arg3 * 0x40, var_r28->unk_48); for (var_r24 = var_r31->unk_10, var_r30 = 0; var_r30 < arg3; var_r30++, var_r24++) { var_r24->unk_3E = -1; var_r24->unk_3C = -1; @@ -1889,7 +1889,12 @@ void fn_1_6798(s16 arg0, s16 arg1, Vec *arg2, float arg8, float arg9, float argA s16 fn_1_69F8(Vec *arg0, float *arg1, s16 arg2) { - s16 var_r31 = fn_1_5ED8(lbl_1_bss_14, arg0, arg1, arg2, 80.0f, 0x40, 0x40); + s16 var_r31; + void *var_r30; + ModelData *var_r29; + ModelData *var_r28; + + var_r31 = fn_1_5ED8(lbl_1_bss_14, arg0, arg1, arg2, 80.0f, 0x40, 0x40); fn_1_6638(var_r31, fn_1_5148); fn_1_6670(var_r31, 1); Hu3DModelLayerSet(var_r31, 5); @@ -2290,6 +2295,8 @@ void fn_1_8120(void) float var_f29; s32 var_r31; + s32 var_r30; + s32 var_r29; float sp10[2] = { 0.0f, 0.0f }; s32 sp24[22] = { @@ -2351,6 +2358,12 @@ void fn_1_8120(void) void fn_1_8500(void) { + float sp28; + float sp20; + float sp18; + float sp10; + float sp8; + s32 var_r31; float sp30[2] = { 0.0f, 0.0f }; @@ -2394,6 +2407,8 @@ void fn_1_8500(void) void fn_1_8BDC(void) { + s32 var_r31; + lbl_1_bss_4 = 2; lbl_1_bss_0 = -1; fn_1_E1A8(1, 0xD, 8.0f, 0x40000001, -1, 0.0f); @@ -2826,6 +2841,7 @@ void fn_1_AD58(omObjData *object) float spC8; UnkM450Struct3 *var_r31; + Vec2f *var_r25; s32 var_r20; var_r20 = 0; @@ -3466,6 +3482,7 @@ void fn_1_E478(UnkM450Struct3 *arg0, omObjData *arg1) void fn_1_E604(UnkM450Struct3 *arg0, omObjData *arg1) { Vec spC; + float sp8; arg0->unk_D4 = ((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C; if (((arg0->unk_154 & 0x10) != 0) && ((arg0->unk_154 & 0x20) == 0)) { @@ -3521,6 +3538,10 @@ HsfanimStruct00 lbl_1_data_1504; void fn_1_EB6C(UnkM450Struct3 *arg0, omObjData *arg1) { + s32 var_r29; + s16 var_r28; + u32 var_r27; + fn_1_1D18(arg1->model[4], "g007i03-itemhook_M", &arg0->unk_00.unk_6C); Hu3DModelHookObjReset(arg1->model[4], "g007i03-itemhook_M"); Hu3DModelAttrSet(arg1->model[4], HU3D_ATTR_DISPOFF); @@ -4496,6 +4517,9 @@ void fn_1_12A1C(omObjData *object) void fn_1_12B80(omObjData *object) { + s32 var_r30; + s16 var_r29; + object->work[0] = frandmod(3 * REFRESH_RATE); omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); @@ -4688,6 +4712,7 @@ void fn_1_13BC4(s32 arg0) { s32 var_r31; UnkData1380Struct *var_r30; + s16 var_r29; nMap = 0; lbl_1_bss_118 = arg0; @@ -5023,7 +5048,7 @@ void fn_1_15BAC(Vec *arg0, Vec *arg1, float arg8, s32 arg2, float *arg3, float * else if (0.0f > arg8) { arg8 += 360.0f; } - *arg3 = (atan2d(sp14.z, sp14.x))-90.0; + *arg3 = (atan2d(sp14.z, sp14.x)) - 90.0; *arg4 = atan2d(sp14.y, sqrtf((sp14.x * sp14.x) + (sp14.z * sp14.z))); if (arg2 == 0) { *arg3 *= -1.0f; @@ -5600,7 +5625,12 @@ void fn_1_17BBC(omObjData *object) void fn_1_18424(s32 arg0, Vec *arg1) { + UnkBss358Struct *var_r27; + UnkBss358Struct *var_r28; + UnkBss358Struct *var_r29; omObjData *var_r31; + s16 var_r24; + s16 var_r25; s16 var_r26; UnkM450Struct4 *var_r30; @@ -5875,9 +5905,12 @@ s32 fn_1_1964C(Vec *arg0, Vec *arg1) s32 fn_1_19798(void) { + float sp8; float var_f31; float var_f30; + float var_f29; float var_f28; + float var_f27; UnkM450Struct5 *var_r31 = lbl_1_bss_138->data; UnkM450Struct3 *var_r30 = lbl_1_bss_134->data; @@ -6065,9 +6098,7 @@ void fn_1_1A3F0(void) lbl_1_bss_30C.y += 150.0f; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_1A714(void) { @@ -6382,6 +6413,8 @@ s32 fn_1_1C39C(UnkM450Struct5 *arg0) void fn_1_1C434(UnkM450Struct5 *arg0, omObjData *arg1) { + s32 var_r30; + arg0->unk_118++; lbl_1_bss_1A4->work[0] += 1; lbl_1_bss_128 = 0.0f; @@ -6719,6 +6752,8 @@ void fn_1_1E150(omObjData *var_r29) void fn_1_200BC(UnkM450Struct5 *arg0, omObjData *object) { + s32 var_r31; + arg0->unk_118++; arg0->unk_FC &= ~0x802; arg0->unk_FC &= ~0x70; diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 29601f11..4f55107a 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -17,10 +17,6 @@ #include "game/gamework_data.h" -#ifndef __MWERKS__ -#include "game/hsfex.h" -#endif - typedef struct bss_348_data { s16 unk0[5]; s16 unkA; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index e49eecfa..9db313c7 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -1315,6 +1315,7 @@ void fn_1_3F38(ModelData *model, ParticleData *particle, Mtx matrix) float var_f31; float var_f30; float var_f29; + float var_f28; HsfanimStruct01 *var_r31; s32 var_r29; @@ -1463,8 +1464,18 @@ float fn_1_4B34(float arg8, float arg9, float argA, float argB) void fn_1_4BAC(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) { float spC[3]; + float sp8; + float var_f31; float var_f30; + float var_f28; float var_f29; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; s32 var_r31; @@ -1604,6 +1615,13 @@ void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*a float sp48[16]; float sp8[16]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + + s32 var_r31; s32 var_r30; s32 var_r29; diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 97cbe2ab..6771a755 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -3,12 +3,16 @@ #include "game/chrman.h" #include "game/flag.h" #include "game/frand.h" +#include "game/gamework.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/wipe.h" #include "math.h" #include "string.h" @@ -460,7 +464,7 @@ void fn_1_6C74(omObjData *object) s32 var_r31; M453MapUnkStruct *var_r29; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453MapUnkStruct), MEMORY_DEFAULT_NUM); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); object->data = var_r29; memset(object->data, 0, 0x54); for (var_r31 = 0; var_r31 < 0xC; var_r31++) { diff --git a/src/REL/m453Dll/score.c b/src/REL/m453Dll/score.c index 8f0decb6..a588ca07 100644 --- a/src/REL/m453Dll/score.c +++ b/src/REL/m453Dll/score.c @@ -1,9 +1,19 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" #include "game/esprite.h" #include "game/flag.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" #include "game/memory.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" +#include "game/wipe.h" #include "REL/m453Dll.h" diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 3b7af6c8..36c27f42 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -19,7 +19,6 @@ #ifndef __MWERKS__ #include "game/esprite.h" -#include "game/hsfex.h" #endif typedef struct camera_view_params { @@ -76,7 +75,7 @@ void ObjectSetup(void) light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(light); Hu3DGLightStaticSet(light, 1); - Hu3DShadowCreate(10, camera->nnear, camera->ffar); + Hu3DShadowCreate(10, camera->near, camera->far); Hu3DShadowTPLvlSet(0.7f); Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44); HuAudSndGrpSet(77); @@ -744,7 +743,7 @@ void fn_1_27A0(Vec *arg0, Vec *arg1, float arg2) arg1->z = fn_1_26F8(arg2, arg0[0].z, arg0[1].z, arg0[2].z, arg0[3].z); } -float lbl_1_data_184[2] = {0.0f, 0.0f}; +float lbl_1_data_184[2] = {}; void fn_1_2AF4(s32 arg0, s32 arg1, float arg2); diff --git a/src/REL/m455Dll/stage.c b/src/REL/m455Dll/stage.c index cf1fbe4b..ff708c84 100644 --- a/src/REL/m455Dll/stage.c +++ b/src/REL/m455Dll/stage.c @@ -1,13 +1,18 @@ -#include "game/hsfanim.h" -#include "game/hsfdraw.h" -#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" - +#include "game/hsfman.h" +#include "game/hsfdraw.h" +#include "game/hsfanim.h" #include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/wipe.h" #include "game/frand.h" +#include "game/audio.h" +#include "game/minigame_seq.h" +#include "game/gamework_data.h" +#include "game/chrman.h" #include "game/sprite.h" #include "REL/m455Dll.h" @@ -149,7 +154,7 @@ omObjData *fn_1_347C(void) s32 id; ModelData *modelP; s32 i; - + work->unkA40 = 0; work->unkA44 = 0; work->unkA48 = 0; @@ -157,7 +162,7 @@ omObjData *fn_1_347C(void) work->unkA50 = 0; work->unkA54 = 0; work->unkA58 = 0; - + object->model[0] = id = Hu3DHookFuncCreate(fn_1_4E64); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 5); @@ -191,13 +196,13 @@ omObjData *fn_1_347C(void) GXPosition2f32(-0.5f, 0.5f); GXTexCoord2f32(0, 1); work2->unkA18 = GXEndDisplayList(); - for (i = 0; i < 26; i++) { + for(i=0; i<26; i++) { work2->unk874[i][0] = 0; work2->unk874[i][1] = 0; work2->unk944[i][0] = 0; work2->unk944[i][1] = 0; } - + object->model[3] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 5)); Hu3DModelPosSet(id, 0, 0, -5000); Hu3DModelScaleSet(id, 2, 2, 2); @@ -207,36 +212,36 @@ omObjData *fn_1_347C(void) Hu3DTexScrollPosMoveSet(id, -0.00009166667f, 0, 0); id = Hu3DTexScrollCreate(object->model[3], "pa_sk3"); Hu3DTexScrollPosMoveSet(id, -0.00020833335f, 0, 0); - + object->model[4] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 6)); Hu3DModelPosSet(id, 0, 0, -3000); Hu3DModelScaleSet(id, 1.2f, 1.2f, 1.2f); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 1); - + object->model[8] = id = Hu3DHookFuncCreate(fn_1_49AC); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 2); modelP = &Hu3DData[id]; modelP->unk_120 = work; - + object->model[10] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 0)); Hu3DModelPosSet(id, 0, 0, 0); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 3); Hu3DModelShadowMapSet(object->model[10]); - for (i = 0; i < 4; i++) { - - object->model[i + 11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 1)); - Hu3DModelCameraSet(object->model[i + 11], HU3D_CAM0); - Hu3DModelLayerSet(object->model[i + 11], 3); - Hu3DModelPosSet(object->model[i + 11], lbl_1_data_1D8[i].x, lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); - Hu3DModelAttrSet(object->model[i + 11], HU3D_MOTATTR_SHAPE_LOOP); - Hu3DMotionShapeTimeSet(object->model[i + 11], (0.25 * i) * Hu3DMotionShapeMaxTimeGet(object->model[i + 11])); + for(i=0; i<4; i++) { + + object->model[i+11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 1)); + Hu3DModelCameraSet(object->model[i+11], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i+11], 3); + Hu3DModelPosSet(object->model[i+11], lbl_1_data_1D8[i].x, lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); + Hu3DModelAttrSet(object->model[i+11], HU3D_MOTATTR_SHAPE_LOOP); + Hu3DMotionShapeTimeSet(object->model[i+11], (0.25*i)*Hu3DMotionShapeMaxTimeGet(object->model[i+11])); } modelP = &Hu3DData[object->model[0]]; workUnk4 = &work2->unk4[0]; - for (i = 0; i < 4; i++, workUnk4++) { + for(i=0; i<4; i++, workUnk4++) { workUnk4->unkC = lbl_1_data_20C[i].unk0; workUnk4->unk10 = lbl_1_data_20C[i].unk4; workUnk4->unk14 = lbl_1_data_20C[i].unk8; @@ -247,7 +252,7 @@ omObjData *fn_1_347C(void) memset(workUnk4->unk0, 0, workUnk4->unk4); DCFlushRange(workUnk4->unk0, workUnk4->unk4); } - for (i = 0; i < 64; i++, workUnk74++) { + for(i=0; i<64; i++, workUnk74++) { workUnk74->unk0.x = workUnk74->unk0.y = workUnk74->unk0.z = 0; workUnk74->unkC.x = 0; workUnk74->unkC.y = 0; @@ -266,21 +271,21 @@ void fn_1_3DDC(omObjData *object) Work347C *work = object->data; Work347C *work2 = work; s32 i; - if ((work->unkA50 = work->unkA50 + (0.007874016f * ((s32)frand() & 0x7F) * 3.0f)) > 360) { + if((work->unkA50 = work->unkA50+(0.007874016f*((s32)frand() & 0x7F)*3.0f)) > 360) { work->unkA50 -= 360; } - work->unkA44 = (25 + work->unkA40) + (5.0 * sind(work->unkA50)); + work->unkA44 = (25+work->unkA40)+(5.0*sind(work->unkA50)); Hu3DModelPosSet(object->model[10], 0, work->unkA44, 0); - for (i = 0; i < 4; i++) { - Hu3DModelPosSet(object->model[i + 11], lbl_1_data_1D8[i].x, work->unkA44 + lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); + for(i=0; i<4; i++) { + Hu3DModelPosSet(object->model[i+11], lbl_1_data_1D8[i].x, work->unkA44+lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); } work->unkA54 += 0.001f; work->unkA58 += 0.001f; work->unkA48++; work->unkA4C++; - if (work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { - float time = 1 - ((work->unkA4C - 60.0f) / 21.0f); - if (time < 0.0f) { + if(work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { + float time = 1-((work->unkA4C-60.0f)/21.0f); + if(time < 0.0f) { time = 0.0f; } fn_1_9CFC(time); @@ -304,31 +309,147 @@ void fn_1_4104(omObjData *object) GXColor lbl_1_data_26A = { 255, 255, 255, 32 }; GXColor lbl_1_data_26E = { 255, 255, 255, 10 }; GXColor lbl_1_data_272 = { 0, 126, 126, 255 }; -Vec lbl_1_data_278[4] = { -1000, 50, 1000, -1000, 50, -1000, 1000, 50, -1000, 1000, 50, 1000 }; +Vec lbl_1_data_278[4] = { + -1000, 50, 1000, + -1000, 50, -1000, + 1000, 50, -1000, + 1000, 50, 1000 +}; -Vec lbl_1_data_2A8[26] = { -1500, 0, 1000, -1400, 0, 1000, 0, 0, 1000, 1400, 0, 1000, 1500, 0, 1000, -1500, 0, -500, -1400, 0, -500, 0, 0, -500, 1400, - 0, -500, 1500, 0, -500, -1500, 0, -2000, -1400, 0, -2000, 0, 0, -2000, 1400, 0, -2000, 1500, 0, -2000, -1500, 0, -5000, -1400, 0, -5000, 0, 0, - -5000, 1400, 0, -5000, 1500, 0, -5000, -2000, 0, -500, -2500, 0, -2000, -3000, 0, -5000, 2000, 0, -500, 2500, 0, -2000, 3000, 0, -5000 }; +Vec lbl_1_data_2A8[26] = { + -1500, 0, 1000, + -1400, 0, 1000, + 0, 0, 1000, + 1400, 0, 1000, + 1500, 0, 1000, + -1500, 0, -500, + -1400, 0, -500, + 0, 0, -500, + 1400, 0, -500, + 1500, 0, -500, + -1500, 0, -2000, + -1400, 0, -2000, + 0, 0, -2000, + 1400, 0, -2000, + 1500, 0, -2000, + -1500, 0, -5000, + -1400, 0, -5000, + 0, 0, -5000, + 1400, 0, -5000, + 1500, 0, -5000, + -2000, 0, -500, + -2500, 0, -2000, + -3000, 0, -5000, + 2000, 0, -500, + 2500, 0, -2000, + 3000, 0, -5000 +}; -GXColor lbl_1_data_3E0[26] = { { 96, 128, 255, 255 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 255 }, - { 24, 48, 255, 255 }, { 96, 128, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 32 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, { 96, 128, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 } }; +GXColor lbl_1_data_3E0[26] = { + { 96, 128, 255, 255 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 32 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 } +}; -float lbl_1_data_448[26][2] - = { 0, 1, 0.033333335, 1, 0.5, 1, 0.96666664, 1, 1, 1, 0, 0.5, 0.033333335, 0.5, 0.5, 0.5, 0.96666664, 0.5, 1, 0.5, 0, 0, 0.033333335, 0, 0.5, 0, - 0.96666664, 0, 1, 0, 0, 0, 0.033333335, 0, 0.5, 0, 0.96666664, 0, 1, 0, -0.15, 0.5, -0.33, 0, -0.49, 0, 1.15, 0.5, 1.33, 0, 1.49, 0 }; +float lbl_1_data_448[26][2] = { + 0, 1, + 0.033333335, 1, + 0.5, 1, + 0.96666664, 1, + 1, 1, + 0, 0.5, + 0.033333335, 0.5, + 0.5, 0.5, + 0.96666664, 0.5, + 1, 0.5, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + -0.15, 0.5, + -0.33, 0, + -0.49, 0, + 1.15, 0.5, + 1.33, 0, + 1.49, 0 +}; -float lbl_1_data_518[26][2] = { 0, 30, 0.5, 30, 7.5, 30, 14.5, 30, 15, 30, 0, 15, 0.5, 15, 7.5, 15, 14.5, 15, 15, 15, 0, 7.5, 0.5, 7.5, 7.5, 7.5, - 14.5, 7.5, 15, 7.5, 0, 0, 0.5, 0, 7.5, 0, 14.5, 0, 15, 0, -2.25, 15, -4.9500003, 7.5, -7.3500004, 0, 17.25, 15, 19.95, 7.5, 22.35, 0 }; +float lbl_1_data_518[26][2] = { + 0, 30, + 0.5, 30, + 7.5, 30, + 14.5, 30, + 15, 30, + 0, 15, + 0.5, 15, + 7.5, 15, + 14.5, 15, + 15, 15, + 0, 7.5, + 0.5, 7.5, + 7.5, 7.5, + 14.5, 7.5, + 15, 7.5, + 0, 0, + 0.5, 0, + 7.5, 0, + 14.5, 0, + 15, 0, + -2.25, 15, + -4.9500003, 7.5, + -7.3500004, 0, + 17.25, 15, + 19.95, 7.5, + 22.35, 0 +}; -float lbl_1_data_5E8[2][3] = { 0, 0, 0.5, 0, 0.5, 0 }; +float lbl_1_data_5E8[2][3] = { + 0, 0, 0.5, + 0, 0.5, 0 +}; GXColor lbl_1_data_600 = { 80, 80, 80, 80 }; -Vec lbl_1_data_604[9] - = { -1500, 0, -5000, 0, 0, -5000, 1500, 0, -5000, -1500, 0, -3000, 0, 0, -3000, 1500, 0, -3000, -1500, 0, 1000, 0, 0, 1000, 1500, 0, 1000 }; +Vec lbl_1_data_604[9] = { + -1500, 0, -5000, + 0, 0, -5000, + 1500, 0, -5000, + -1500, 0, -3000, + 0, 0, -3000, + 1500, 0, -3000, + -1500, 0, 1000, + 0, 0, 1000, + 1500, 0, 1000 +}; GXColor lbl_1_data_670[9] = { { 255, 255, 255, 0 }, @@ -388,11 +509,11 @@ void fn_1_4180(ModelData *model, Mtx matrix) GXPosition2u16(0, 0); GXTexCoord2f32(work->unkA54, work->unkA58); GXPosition2u16(400, 0); - GXTexCoord2f32(work->unkA54 + 7, work->unkA58); + GXTexCoord2f32(work->unkA54+7, work->unkA58); GXPosition2u16(400, 400); - GXTexCoord2f32(work->unkA54 + 7, work->unkA58 + 7); + GXTexCoord2f32(work->unkA54+7, work->unkA58+7); GXPosition2u16(0, 400); - GXTexCoord2f32(work->unkA54, work->unkA58 + 7); + GXTexCoord2f32(work->unkA54, work->unkA58+7); GXEnd(); GXSetNumTexGens(1); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); @@ -411,22 +532,22 @@ void fn_1_4180(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); workUnk74 = &work2->unk74[0]; - for (i = 0; i < 64; i++, workUnk74++) { + for(i=0; i<64; i++, workUnk74++) { float scale; float accel; - if (workUnk74->unk1E == 0) { + if(workUnk74->unk1E == 0) { continue; } - scale = 128 * (workUnk74->unkC.x * (0.2f + cosd(workUnk74->unk1E * workUnk74->unk18 * 90.0f))); - accel = workUnk74->unk1E * workUnk74->unk18; - lbl_1_data_26A.a = workUnk74->unkC.z * sind((accel * accel) * 90.0f) * 255.0; + scale = 128*(workUnk74->unkC.x*(0.2f+cosd(workUnk74->unk1E*workUnk74->unk18*90.0f))); + accel = workUnk74->unk1E*workUnk74->unk18; + lbl_1_data_26A.a = workUnk74->unkC.z*sind((accel*accel)*90.0f)*255.0; GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_26A); - MTXScale(modelview, 0.5f * scale, 0.5f * scale, 1.0f); + MTXScale(modelview, 0.5f*scale, 0.5f*scale, 1.0f); mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); - mtxTransCat(modelview, 400 * (workUnk74->unk0.x + 1500) / 3000, 400 * (workUnk74->unk0.z - -2000) / 3000, 0); + mtxTransCat(modelview, 400*(workUnk74->unk0.x+1500)/3000, 400*(workUnk74->unk0.z - -2000)/3000, 0); GXLoadPosMtxImm(modelview, GX_PNMTX0); - GXCallDisplayListNative(work2->unkA14, work2->unkA18); - if (!omPauseChk()) { + GXCallDisplayList(work2->unkA14, work2->unkA18); + if(!omPauseChk()) { workUnk74->unk1E--; } } @@ -479,11 +600,11 @@ void fn_1_4B1C(ModelData *model, Mtx matrix) Mtx projCamera; s16 lightMask; s16 i; - + fn_1_6088(workUnk4, 0); GXLoadPosMtxImm(matrix, GX_PNMTX0); fov = cameraP->fov; - if (fov <= 0.0f) { + if(fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -509,9 +630,9 @@ void fn_1_4B1C(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSETARRAY(GX_VA_POS, lbl_1_data_278, sizeof(lbl_1_data_278), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_278, sizeof(Vec)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for (i = 0; i < 4; i++) { + for(i=0; i<4; i++) { GXPosition1x16(i); } GXEnd(); @@ -520,7 +641,7 @@ void fn_1_4B1C(ModelData *model, Mtx matrix) workUnk4 = &work2->unk4[2]; fn_1_6594(0, workUnk4, 0, 0, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for (i = 0; i < 4; i++) { + for(i=0; i<4; i++) { GXPosition1x16(i); } GXEnd(); @@ -547,7 +668,7 @@ void fn_1_4E64(ModelData *model, Mtx matrix) MTXInvXpose(matrix, invXPose); GXLoadNrmMtxImm(invXPose, GX_PNMTX0); fov = cameraP->fov; - if (fov <= 0.0f) { + if(fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -589,55 +710,53 @@ void fn_1_4E64(ModelData *model, Mtx matrix) GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetIndTexMtx(GX_ITM_1, lbl_1_data_5E8, -1); - for (i = 0; i < 26; i++) { - work2->unk944[i][0] -= 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; - work2->unk944[i][1] += 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; - work2->unk874[i][0] = work2->unk944[i][0] + lbl_1_data_518[i][0]; - work2->unk874[i][1] = work2->unk944[i][1] + lbl_1_data_518[i][1]; + for(i=0; i<26; i++) { + work2->unk944[i][0] -= 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk944[i][1] += 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk874[i][0] = work2->unk944[i][0]+lbl_1_data_518[i][0]; + work2->unk874[i][1] = work2->unk944[i][1]+lbl_1_data_518[i][1]; } DCFlushRange(&work2->unk874[0][0], sizeof(work2->unk874)); GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - - GXSETARRAY(GX_VA_POS, lbl_1_data_2A8, sizeof(lbl_1_data_2A8), sizeof(Vec)); + + GXSetArray(GX_VA_POS, lbl_1_data_2A8, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_3E0, sizeof(lbl_1_data_3E0), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, lbl_1_data_3E0, sizeof(GXColor)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, lbl_1_data_448, sizeof(lbl_1_data_448), sizeof(float) * 2); + GXSetArray(GX_VA_TEX0, lbl_1_data_448, sizeof(float)*2); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX1, &work2->unk874[0][0], sizeof(work2->unk874), sizeof(float) * 2); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2); GXBegin(GX_QUADS, GX_VTXFMT0, 48); - for (i = 0; i < 12; i++) { + for(i=0; i<12; i++) { s16 index; - if (i == 4) { + if(i == 4) { index = 12; - } - else if (i == 9) { + } else if(i == 9) { index = 13; - } - else { + } else { index = i; } - GXPosition1x16(index + 0); - GXColor1x16(index + 0); - GXTexCoord1x16(index + 0); - GXTexCoord1x16(index + 0); - GXPosition1x16(index + 5); - GXColor1x16(index + 5); - GXTexCoord1x16(index + 5); - GXTexCoord1x16(index + 5); - GXPosition1x16(index + 6); - GXColor1x16(index + 6); - GXTexCoord1x16(index + 6); - GXTexCoord1x16(index + 6); - GXPosition1x16(index + 1); - GXColor1x16(index + 1); - GXTexCoord1x16(index + 1); - GXTexCoord1x16(index + 1); + GXPosition1x16(index+0); + GXColor1x16(index+0); + GXTexCoord1x16(index+0); + GXTexCoord1x16(index+0); + GXPosition1x16(index+5); + GXColor1x16(index+5); + GXTexCoord1x16(index+5); + GXTexCoord1x16(index+5); + GXPosition1x16(index+6); + GXColor1x16(index+6); + GXTexCoord1x16(index+6); + GXTexCoord1x16(index+6); + GXPosition1x16(index+1); + GXColor1x16(index+1); + GXTexCoord1x16(index+1); + GXTexCoord1x16(index+1); } GXEnd(); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); @@ -734,18 +853,18 @@ void fn_1_59A0(ModelData *model, Mtx matrix) HuSprTexLoad(work->unkA1C[1], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f * scale; + x = 0.004f*scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48 % 1024) / (512.0f * x), 0, 1.2499999f * (work->unkA48 % 400)); + MTXTrans(temp, (work->unkA48%1024)/(512.0f*x), 0, 1.2499999f*(work->unkA48%400)); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX0); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f * scale; + x = 0.004f*scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48 % 300) / (150.0f * x), 0, 0); + MTXTrans(temp, (work->unkA48%300)/(150.0f*x), 0, 0); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX1, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX1); @@ -767,8 +886,8 @@ void fn_1_59A0(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_604, sizeof(lbl_1_data_604), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_670, sizeof(lbl_1_data_670), sizeof(GXColor)); + GXSetArray(GX_VA_POS, lbl_1_data_604, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_670, sizeof(GXColor)); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); GXPosition1x8(0); GXColor1x8(0); @@ -805,12 +924,13 @@ void fn_1_6088(Work347CUnk4 *arg0, s32 arg1) GXSetTexCopyDst(arg0->unk14, arg0->unk18, GX_TF_RGB565, arg0->unk8); GXSetCopyClear(lbl_1_data_69C, GX_MAX_Z24); GXCopyTex(arg0->unk0, arg1); + } void fn_1_6144(Work347CUnk4 *fbWork, float x1, float y1, float scale) { - float x2 = x1 + (fbWork->unk14 * scale); - float y2 = y1 + (fbWork->unk18 * scale); + float x2 = x1+(fbWork->unk14*scale); + float y2 = y1+(fbWork->unk18*scale); Mtx44 proj; Mtx modelview; GXTexObj texObj; @@ -848,25 +968,18 @@ void fn_1_6144(Work347CUnk4 *fbWork, float x1, float y1, float scale) GXPosition3f32(x1, y2, 0); GXTexCoord2f32(0, 1); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&texObj); -#endif } void fn_1_6594(s16 arg0, Work347CUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4) { GXTexObj texObj; GXInitTexObj(&texObj, arg1->unk0, arg1->unk14, arg1->unk18, GX_TF_RGB565, arg2, arg2, FALSE); - if (arg4) { + if(arg4) { GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - else { + } else { GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&texObj, arg0); -#ifdef TARGET_PC - GXDestroyTexObj(&texObj); -#endif } s32 fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3) @@ -875,51 +988,47 @@ s32 fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3) Work347C *work2; Work347CUnk74 *workUnk74; s32 i; - if (!lbl_1_bss_6C) { + if(!lbl_1_bss_6C) { return -1; } work = lbl_1_bss_6C->data; work2 = work; workUnk74 = &work->unk74[0]; - for (i = 0; i < 64; i++, workUnk74++) { - if (workUnk74->unk1E == 0) { + for(i=0; i<64; i++, workUnk74++) { + if(workUnk74->unk1E == 0) { break; } } - if (i >= 64) { + if(i >= 64) { return -1; } workUnk74->unk0 = *arg0; - if (arg1 < 0.0f) { + if(arg1 < 0.0f) { workUnk74->unkC.x = 1; - } - else { + } else { workUnk74->unkC.x = arg1; } - if (arg2 < 0.0f) { + if(arg2 < 0.0f) { workUnk74->unkC.z = 1; - } - else { + } else { workUnk74->unkC.z = arg2; } - if (arg3 < 0) { + if(arg3 < 0) { workUnk74->unk1C = 60; - } - else { + } else { workUnk74->unk1C = arg3; } - workUnk74->unkC.y = (s32)frand() % 360; + workUnk74->unkC.y = (s32)frand()%360; workUnk74->unk1E = workUnk74->unk1C; - workUnk74->unk18 = 1.0f / workUnk74->unk1C; + workUnk74->unk18 = 1.0f/workUnk74->unk1C; return i; } float fn_1_687C(void) { - if (!lbl_1_bss_6C) { + if(!lbl_1_bss_6C) { return 0; - } - else { + } else { Work347C *work = lbl_1_bss_6C->data; return work->unkA44; } @@ -927,10 +1036,9 @@ float fn_1_687C(void) float fn_1_68C8(void) { - if (!lbl_1_bss_6C) { + if(!lbl_1_bss_6C) { return 0; - } - else { + } else { Work347C *work = lbl_1_bss_6C->data; return work->unkA40; } @@ -954,10 +1062,10 @@ void fn_1_6914(omObjData *object) Work6914 *work; s32 i; AnimData *anim; - work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914) * 8, MEMORY_DEFAULT_NUM); - memset(work, 0, sizeof(Work6914) * 8); + work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914)*8, MEMORY_DEFAULT_NUM); + memset(work, 0, sizeof(Work6914)*8); anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 26), MEMORY_DEFAULT_NUM)); - for (i = 0; i < 8; i++, work++) { + for(i=0; i<8; i++, work++) { work->unk10 = anim; work->unk0 = i; work->unk4 = Hu3DParticleCreate(work->unk10, 32); @@ -978,22 +1086,21 @@ void fn_1_6A6C(omObjData *object) { Work6914 *work = object->data; s32 i; - for (i = 0; i < 8; i++, work++) { - if (work->unk8 == 0) { + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { continue; } - if (work->unkC > 1) { + if(work->unkC > 1) { ModelData *modelP = &Hu3DData[work->unk4]; ParticleData *particleP = modelP->unk_120; HsfanimStruct01 *data = particleP->unk_48; s32 j; - for (j = 0; j < particleP->unk_30; j++, data++) { - if (++data->unk00 > data->unk02) { - s32 alpha = data->unk40.a - 1; - if (alpha < 0) { + for(j=0; junk_30; j++, data++) { + if(++data->unk00 > data->unk02) { + s32 alpha = data->unk40.a-1; + if(alpha < 0) { data->unk2C = 0; - } - else { + } else { data->unk40.a = alpha; } } @@ -1004,11 +1111,10 @@ void fn_1_6A6C(omObjData *object) data->unk08.y -= 0.3103333379576603; } } - if (++work->unkC > 90.0f) { + if(++work->unkC > 90.0f) { Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); work->unk8 = 0; - } - else { + } else { Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); @@ -1031,13 +1137,13 @@ s32 fn_1_6CB0(Vec *arg0, float arg1) ModelData *temp_r27; ParticleData *temp_r28; HsfanimStruct01 *temp_r30; - - for (i = 0; i < 8; i++, work++) { - if (work->unk8 == 0) { + + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { break; } } - if (i >= 8) { + if(i >= 8) { return -1; } Hu3DModelAttrReset(work->unk4, HU3D_ATTR_DISPOFF); @@ -1047,29 +1153,29 @@ s32 fn_1_6CB0(Vec *arg0, float arg1) temp_r28 = temp_r27->unk_120; temp_r28->unk_2C = 1; temp_r30 = temp_r28->unk_48; - for (i = 0; i < temp_r28->unk_30; i++, temp_r30++) { - float temp_f30 = ((s32)frand() % 20) + 90; - float temp_f29 = (s32)frand() % 360; + for(i=0; iunk_30; i++, temp_r30++) { + float temp_f30 = ((s32)frand()%20)+90; + float temp_f29 = (s32)frand()%360; float temp_f26 = sind(temp_f30); float temp_f28 = cosd(temp_f30); - float temp_f25 = 0.75f + 0.15f * (0.007874016f * ((s32)frand() & 0x7F)); + float temp_f25 = 0.75f+0.15f*(0.007874016f*((s32)frand() & 0x7F)); float temp_f31 = 0.15f; - temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29)))); - temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29)))); - temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25); + temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); + temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); + temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); temp_r30->unk00 = 0; - temp_r30->unk02 = ((s32)frand() % 16) + 45; - temp_r30->unk30 = (s32)frand() % 360; + temp_r30->unk02 = ((s32)frand()%16)+45; + temp_r30->unk30 = (s32)frand()%360; temp_r30->unk2C = 145; - temp_r30->unk34.x = 0.05f * (((s32)frand() & 0x7F) - 64); - temp_r30->unk34.y = 0.65f * (((s32)frand() & 0x7F) - 64); - temp_r30->unk34.z = 0.05f * (((s32)frand() & 0x7F) - 64); - temp_r30->unk40.r = ((s32)frand() % 64) + 192; - temp_r30->unk40.g = ((s32)frand() % 64) + 192; - temp_r30->unk40.b = ((s32)frand() % 64) + 192; + temp_r30->unk34.x = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.y = 0.65f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.z = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk40.r = ((s32)frand()%64)+192; + temp_r30->unk40.g = ((s32)frand()%64)+192; + temp_r30->unk40.b = ((s32)frand()%64)+192; temp_r30->unk40.a = 64; } - if (arg1 < 0.0f) { + if(arg1 < 0.0f) { arg1 = 1.0f; } work->unk14 = *arg0; @@ -1086,16 +1192,16 @@ void fn_1_7368(omObjData *object); void fn_1_7280(omObjData *object) { s32 i; - for (i = 0; i < object->mdlcnt; i++) { - if (i == 0) { + for(i=0; imdlcnt; i++) { + if(i == 0) { object->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 9)); - } - else { + } else { object->model[i] = Hu3DModelLink(object->model[0]); } Hu3DModelCameraSet(object->model[i], HU3D_CAM0); Hu3DModelLayerSet(object->model[i], 6); Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } object->stat |= 0x100; object->func = fn_1_7368; @@ -1104,28 +1210,31 @@ void fn_1_7280(omObjData *object) void fn_1_7368(omObjData *object) { s32 i; - for (i = 0; i < object->mdlcnt; i++) { + for(i=0; imdlcnt; i++) { ModelData *modelP = &Hu3DData[object->model[i]]; - if (!(modelP->attr & HU3D_ATTR_DISPOFF)) { - if (Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { - Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); - } + if(!(modelP->attr & HU3D_ATTR_DISPOFF)) { + if(Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } } } } -void fn_1_7430(omObjData *object) { } +void fn_1_7430(omObjData *object) +{ + +} s32 fn_1_7434(Vec *pos, float scale) { s32 i; - for (i = 0; i < lbl_1_bss_64->mdlcnt; i++) { + for(i=0; imdlcnt; i++) { ModelData *modelP = &Hu3DData[lbl_1_bss_64->model[i]]; - if (modelP->attr & HU3D_ATTR_DISPOFF) { + if(modelP->attr & HU3D_ATTR_DISPOFF) { break; } } - if (i >= lbl_1_bss_64->mdlcnt) { + if(i >= lbl_1_bss_64->mdlcnt) { return -1; } Hu3DMotionTimeSet(lbl_1_bss_64->model[i], 0); @@ -1145,7 +1254,7 @@ void fn_1_75C0(omObjData *object) s32 i; ModelData *modelP; AnimData *anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 26), MEMORY_DEFAULT_NUM)); - + object->data = anim; object->model[0] = Hu3DParticleCreate(anim, 64); Hu3DModelCameraSet(object->model[0], HU3D_CAM0); @@ -1155,7 +1264,7 @@ void fn_1_75C0(omObjData *object) temp_r30 = modelP->unk_120; temp_r29 = temp_r30->unk_48; temp_r30->unk_2C = 1; - for (i = 0; i < temp_r30->unk_30; i++, temp_r29++) { + for(i=0; iunk_30; i++, temp_r29++) { temp_r29->unk2C = 0; } object->func = fn_1_76B0; @@ -1167,19 +1276,20 @@ void fn_1_76B0(omObjData *object) ParticleData *temp_r29 = modelP->unk_120; HsfanimStruct01 *temp_r30 = temp_r29->unk_48; s32 i; - for (i = 0; i < temp_r29->unk_30; i++, temp_r30++) { - if (temp_r30->unk2C <= 0.0f) { + for(i=0; iunk_30; i++, temp_r30++) { + if(temp_r30->unk2C <= 0.0f) { continue; } - if (++temp_r30->unk00 > 360) { + if(++temp_r30->unk00 > 360) { temp_r30->unk00 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00); + temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00); temp_r30->unk34.y += temp_r30->unk08.y; - if (temp_r30->unk34.y >= 0.0f) { - fn_1_6698(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, 15); + if(temp_r30->unk34.y >= 0.0f) { + fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); temp_r30->unk2C = 0; } + } } @@ -1197,26 +1307,27 @@ s32 fn_1_79C8(Vec *pos, float scale) ModelData *modelP = &Hu3DData[lbl_1_bss_60->model[0]]; ParticleData *temp_r30 = modelP->unk_120; HsfanimStruct01 *temp_r31 = temp_r30->unk_48; - for (i = 0; i < temp_r30->unk_30; i++, temp_r31++) { - if (temp_r31->unk2C <= 0.0f) { + for(i=0; iunk_30; i++, temp_r31++) { + if(temp_r31->unk2C <= 0.0f) { break; } } - if (i >= temp_r30->unk_30) { + if(i >= temp_r30->unk_30) { return -1; } - if (scale <= 0.0f) { + if(scale <= 0.0f) { scale = 1.0f; } temp_r31->unk34 = *pos; - temp_r31->unk08.x = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 0.5f; - temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))); - temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f; - temp_r31->unk00 = (s32)frand() % 360; - temp_r31->unk2C = 20 * scale; + temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; + temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); + temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; + temp_r31->unk00 = (s32)frand()%360; + temp_r31->unk2C = 20*scale; return i; } + typedef struct work7C48 { s32 unk0; s32 unk4; @@ -1231,25 +1342,24 @@ void fn_1_8050(omObjData *object); void fn_1_7C48(omObjData *object) { - Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48) * 8, MEMORY_DEFAULT_NUM); + Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48)*8, MEMORY_DEFAULT_NUM); Work7C48 *workP = workBase; s32 i; - memset(workP, 0, 8 * sizeof(Work7C48)); - for (i = 0; i < 8; i++, workP++) { - switch (i) { + memset(workP, 0, 8*sizeof(Work7C48)); + for(i=0; i<8; i++, workP++) { + switch(i) { case 0: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 10)); break; - + case 1: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 10)); break; - + default: - if (i & 0x1) { + if(i & 0x1) { workP->unk0 = Hu3DModelLink(workBase[0].unk0); - } - else { + } else { workP->unk0 = Hu3DModelLink(workBase[1].unk0); } break; @@ -1261,11 +1371,11 @@ void fn_1_7C48(omObjData *object) workP->unk8 = 0; workP->unkC = 2; workP->unk10 = (s32)frand() % 360; - workP->unk14.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); - workP->unk14.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); - workP->unk14.y = -250 + (100 * (0.3f * i)); - workP->unk20.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); - workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk14.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.y = -250+(100*(0.3f*i)); + workP->unk20.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); workP->unk20.y = workP->unk14.y; Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); @@ -1279,61 +1389,60 @@ void fn_1_8050(omObjData *object) { Work7C48 *workP = object->data; s32 i; - for (i = 0; i < 8; i++, workP++) { + for(i=0; i<8; i++, workP++) { float dx; float dz; float vel; float angle; - if (workP->unk4 == 0) { - vel = 1 + (0.5 * sind((workP->unk8 * 5) % 180)); - } - else { + if(workP->unk4 == 0) { + vel = 1+(0.5*sind((workP->unk8*5)%180)); + } else { vel = 3; } - workP->unk14.x += vel * (workP->unkC * sind(workP->unk10)); - workP->unk14.z += vel * (workP->unkC * cosd(workP->unk10)); - dx = workP->unk20.x - workP->unk14.x; - dz = workP->unk20.z - workP->unk14.z; + workP->unk14.x += vel*(workP->unkC*sind(workP->unk10)); + workP->unk14.z += vel*(workP->unkC*cosd(workP->unk10)); + dx = workP->unk20.x-workP->unk14.x; + dz = workP->unk20.z-workP->unk14.z; angle = atan2d(dx, dz); workP->unk10 = fn_1_9F18(angle, workP->unk10, 3.5f); - if ((dx * dx) + (dz * dz) < 10000.0f) { - if (workP->unk4 == 0) { - workP->unk20.x = 2000 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); - workP->unk20.z = 700 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + if((dx*dx)+(dz*dz) < 10000.0f) { + if(workP->unk4 == 0) { + workP->unk20.x = 2000*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 700*((0.007874016f*((s32)frand() & 0x7F))-0.5f); workP->unk20.y = workP->unk14.y; - } - else { - if (workP->unk14.x < 0.0f) { + } else { + if(workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } - else { + } else { workP->unk20.x = 2500; } - workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); workP->unk20.y = workP->unk14.y; } } Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); - workP->unk8 += frand() & 0x3; + workP->unk8 += frand()&0x3; } } -void fn_1_8474(omObjData *object) { } +void fn_1_8474(omObjData *object) +{ + +} void fn_1_8478(void) { Work7C48 *workP = lbl_1_bss_5C->data; s32 i; - for (i = 0; i < 8; i++, workP++) { + for(i=0; i<8; i++, workP++) { workP->unk4 = 1; - if (workP->unk14.x < 0.0f) { + if(workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } - else { + } else { workP->unk20.x = 2500; } - workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); workP->unk20.y = workP->unk14.y; } } @@ -1359,10 +1468,10 @@ void fn_1_8578(omObjData *object, Work891C *workP) s32 num = workP[0].unk6; float ofsZ = -2000; s32 i; - for (i = 0; i < num; i++, workP++) { + for(i=0; iunk0, workP->unk8.x, workP->unk8.y, workP->unk8.z + ofsZ); + Hu3DModelPosSet(workP->unk0, workP->unk8.x, workP->unk8.y, workP->unk8.z+ofsZ); modelMtx = &Hu3DData[workP->unk0].unk_F0; MTXRotDeg(*modelMtx, 'Y', workP->unk28); MTXRotDeg(rotZ, 'Z', workP->unk38); @@ -1378,19 +1487,20 @@ void fn_1_867C(omObjData *object) Work891C *workP = object->data; s32 num = workP[0].unk6; s32 i; - for (i = 0; i < num; i++, workP++) { + for(i=0; iunk14, &workP->unk8, &diff); workP->unk2C = atan2d(diff.x, diff.z); - workP->unk28 = fn_1_8D90(workP->unk28, workP->unk2C + workP->unk3C, 0.08f); - workP->unk24 += 0.05f * (600.0f - workP->unk24); - workP->unk20 += 0.2f * (workP->unk24 - workP->unk20); - workP->unk8.x += (workP->unk20 * 0.016666668f) * sind(workP->unk28); - workP->unk8.z += (workP->unk20 * 0.016666668f) * cosd(workP->unk28); - workP->unk30 += workP->unk20 * 0.016666668f; + workP->unk28 = fn_1_8D90(workP->unk28, workP->unk2C+workP->unk3C, 0.08f); + workP->unk24 += 0.05f*(600.0f-workP->unk24); + workP->unk20 += 0.2f*(workP->unk24-workP->unk20); + workP->unk8.x += (workP->unk20*0.016666668f)*sind(workP->unk28); + workP->unk8.z += (workP->unk20*0.016666668f)*cosd(workP->unk28); + workP->unk30 += workP->unk20*0.016666668f; } fn_1_8578(object, object->data); + } void fn_1_891C(omObjData *object) @@ -1403,31 +1513,31 @@ void fn_1_891C(omObjData *object) float angle; float ofsZ; s32 i; - object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num * sizeof(Work891C), MEMORY_DEFAULT_NUM); - memset(workBase, 0, num * sizeof(Work891C)); + object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num*sizeof(Work891C), MEMORY_DEFAULT_NUM); + memset(workBase, 0, num*sizeof(Work891C)); modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 8)); ofsZ = 1500; work = workBase; - for (i = 0; i < num; i++, work++) { + for(i=0; iunk0 = Hu3DModelLink(modelId); Hu3DModelLayerSet(work->unk0, 6); Hu3DModelCameraSet(work->unk0, 1); Hu3DModelScaleSet(work->unk0, 7, 7, 7); - work->unk14.x = ((s32)frandmod(1000) * 4.0f) - 2000; - work->unk14.z = ((s32)frandmod(1000)) - 500.0f; - work->unk14.y = ((s32)frandmod(1000) * 0.8f) + 300; + work->unk14.x = ((s32)frandmod(1000)*4.0f)-2000; + work->unk14.z = ((s32)frandmod(1000))-500.0f; + work->unk14.y = ((s32)frandmod(1000)*0.8f)+300; angle = (s32)frandmod(360); - radius = ((s32)frandmod(250)) + 200.0f; - work->unk8.x = radius * sind(angle); + radius = ((s32)frandmod(250))+200.0f; + work->unk8.x = radius*sind(angle); work->unk8.y = 0; - work->unk8.z = radius * cosd(angle); + work->unk8.z = radius*cosd(angle); VECAdd(&work->unk14, &work->unk8, &work->unk8); - work->unk38 = 60 - ((6.0f / 55.0f) * radius); + work->unk38 = 60-((6.0f/55.0f)*radius); work->unk28 = (s32)frandmod(360); - work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f + ((s32)frandmod(50) * 0.1f)) : (70.0f - ((s32)frandmod(50) * 0.1f)); - if (work->unk3C < 0.0f) { + work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f+((s32)frandmod(50)*0.1f)) : (70.0f-((s32)frandmod(50)*0.1f)); + if(work->unk3C < 0.0f) { work->unk38 = -work->unk38; } work->unk30 = 1; @@ -1441,15 +1551,15 @@ void fn_1_891C(omObjData *object) float fn_1_8D90(float start, float end, float weight) { - float angle = fmodf(end - start, 360); - if (angle < 0.0f) { + float angle = fmodf(end-start, 360); + if(angle < 0.0f) { angle += 360.0f; } - if (angle > 180.0f) { + if(angle > 180.0f) { angle -= 360.0f; } - angle = fmodf(start + (weight * angle), 360); - if (angle < 0.0f) { + angle = fmodf(start+(weight*angle), 360); + if(angle < 0.0f) { angle += 360.0f; } return angle; @@ -1477,8 +1587,8 @@ void fn_1_8EAC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_91B8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); - memset(newWork, 0, 4 * sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); newWork[1] = 0; workP->unk10[1] = modelId = Hu3DParticleCreate(workP->unk0[3], 10); Hu3DModelLayerSet(modelId, 6); @@ -1486,8 +1596,8 @@ void fn_1_8EAC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_91B8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); - memset(newWork, 0, 4 * sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); newWork[1] = 1; workP->unk10[2] = modelId = Hu3DParticleCreate(workP->unk0[2], 4); Hu3DModelLayerSet(modelId, 6); @@ -1495,8 +1605,8 @@ void fn_1_8EAC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_91B8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); - memset(newWork, 0, 4 * sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); newWork[1] = 2; workP->unk10[3] = modelId = Hu3DParticleCreate(workP->unk0[1], 6); Hu3DModelLayerSet(modelId, 6); @@ -1504,8 +1614,8 @@ void fn_1_8EAC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_91B8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); - memset(newWork, 0, 4 * sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); newWork[1] = 3; } @@ -1518,9 +1628,19 @@ void fn_1_9168(void) HuSprAnimKill(workP->unk0[3]); } -float lbl_1_data_6A0[4] = { 1000, 200, 600, 1200 }; +float lbl_1_data_6A0[4] = { + 1000, + 200, + 600, + 1200 +}; -float lbl_1_data_6B0[4] = { 1, 0.6, 0.3, 0.425 }; +float lbl_1_data_6B0[4] = { + 1, + 0.6, + 0.3, + 0.425 +}; void fn_1_91B8(ModelData *model, ParticleData *particle, Mtx matrix) { @@ -1541,37 +1661,34 @@ void fn_1_91B8(ModelData *model, ParticleData *particle, Mtx matrix) float temp_f29; float temp_f23; s32 i; - switch (newWorkP[2]) { + switch(newWorkP[2]) { case 0: temp_r31 = particle->unk_48; - if (newWorkP[1]) { + if(newWorkP[1]) { sp18.x = 2000; sp18.y = -300; sp18.z = 500; - temp_f29 = 1 / VECMagPoint(sp18.x, sp18.y, sp18.z); + temp_f29 = 1/VECMagPoint(sp18.x, sp18.y, sp18.z); sp18.x *= temp_f29; sp18.y *= temp_f29; sp18.z *= temp_f29; - temp_f23 = 3200.0f / particle->unk_30; - for (i = 0; i < particle->unk_30; i++, temp_r31++) { - temp_f26 = 500.0 + ((temp_f23 * i) + ((0.25f * temp_f23) * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625))); - temp_f25 = temp_f26 / 3200; + temp_f23 = 3200.0f/particle->unk_30; + for(i=0; iunk_30; i++, temp_r31++) { + temp_f26 = 500.0+((temp_f23*i)+((0.25f*temp_f23)*((float)((s32)frand() & 0xFFFF)*0.0000152587890625))); + temp_f25 = temp_f26/3200; temp_r31->unk14.x = temp_f26; - temp_r31->unk34.x = 1000 + (temp_f26 * sp18.x); - temp_r31->unk34.y = 4800 + (temp_f26 * sp18.y); - temp_r31->unk34.z = -3500 + (temp_f26 * sp18.z); - temp_r31->unk2C = ((0.7f * (temp_f25 * temp_f25)) + 0.3f) - * (lbl_1_data_6A0[newWorkP[1]] * (0.7f + (0.3f * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625)))); - temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 160.0) + 32; - temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 96.0) + 32; - temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 128.0) + 32; - temp_r31->unk40.a = (255 * lbl_1_data_6B0[newWorkP[1]] * (1.0 - (0.4 * temp_f25))) - - (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 16.0); + temp_r31->unk34.x = 1000+(temp_f26*sp18.x); + temp_r31->unk34.y = 4800+(temp_f26*sp18.y); + temp_r31->unk34.z = -3500+(temp_f26*sp18.z); + temp_r31->unk2C = ((0.7f*(temp_f25*temp_f25))+0.3f)*(lbl_1_data_6A0[newWorkP[1]]*(0.7f+(0.3f*((float)((s32)frand() & 0xFFFF)*0.0000152587890625)))); + temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*160.0)+32; + temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*96.0)+32; + temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*128.0)+32; + temp_r31->unk40.a = (255*lbl_1_data_6B0[newWorkP[1]]*(1.0-(0.4*temp_f25)))-(s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*16.0); temp_r31->unk14.z = temp_r31->unk40.a; } newWorkP[2]++; - } - else { + } else { temp_r31->unk34.x = 1000; temp_r31->unk34.y = 4800; temp_r31->unk34.z = -3500; @@ -1580,46 +1697,46 @@ void fn_1_91B8(ModelData *model, ParticleData *particle, Mtx matrix) break; case 1: - sp3C.x = sind(rot.y) * cosd(rot.x); + sp3C.x = sind(rot.y)*cosd(rot.x); sp3C.y = -sind(rot.x); - sp3C.z = cosd(rot.y) * cosd(rot.x); - sp30.x = 1000 - (pos.x + (1.25f * (sp3C.x * zoom))); - sp30.y = 4800 - (pos.y + (sp3C.y * zoom)); - sp30.z = -3500 - (pos.z + (1.25f * (sp3C.z * zoom))); - temp_f29 = 1 / VECMagPoint(sp30.x, sp30.y, sp30.z); + sp3C.z = cosd(rot.y)*cosd(rot.x); + sp30.x = 1000-(pos.x+(1.25f*(sp3C.x*zoom))); + sp30.y = 4800-(pos.y+(sp3C.y*zoom)); + sp30.z = -3500-(pos.z+(1.25f*(sp3C.z*zoom))); + temp_f29 = 1/VECMagPoint(sp30.x, sp30.y, sp30.z); sp30.x *= temp_f29; sp30.y *= temp_f29; sp30.z *= temp_f29; - temp_f29 = -((-sp30.x * -sp3C.x) + (-sp30.y * -sp3C.y) + (-sp30.z * -sp3C.z)); - sp24.x = -sp3C.x + ((-2.0f * sp30.x) * temp_f29); - sp24.y = -sp3C.y + ((-2.0f * sp30.y) * temp_f29); - sp24.z = -sp3C.z + ((-2.0f * sp30.z) * temp_f29); + temp_f29 = -((-sp30.x*-sp3C.x)+(-sp30.y*-sp3C.y)+(-sp30.z*-sp3C.z)); + sp24.x = -sp3C.x+((-2.0f*sp30.x)*temp_f29); + sp24.y = -sp3C.y+((-2.0f*sp30.y)*temp_f29); + sp24.z = -sp3C.z+((-2.0f*sp30.z)*temp_f29); temp_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, temp_r31++) { - temp_r31->unk34.x = 1000 + (sp24.x * temp_r31->unk14.x); - temp_r31->unk34.y = 4800 + (sp24.y * temp_r31->unk14.x); - temp_r31->unk34.z = -3500 + (sp24.z * temp_r31->unk14.x); - temp_r31->unk40.a = temp_r31->unk14.z * workP->unk20.y; + for(i=0; iunk_30; i++, temp_r31++) { + temp_r31->unk34.x = 1000+(sp24.x*temp_r31->unk14.x); + temp_r31->unk34.y = 4800+(sp24.y*temp_r31->unk14.x); + temp_r31->unk34.z = -3500+(sp24.z*temp_r31->unk14.x); + temp_r31->unk40.a = temp_r31->unk14.z*workP->unk20.y; } break; } - DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + } void fn_1_9CFC(float arg0) { StructBss48 *workP = lbl_1_bss_48; workP->unk20.y = arg0; - if (workP->unk20.y > 1.0f) { + if(workP->unk20.y > 1.0f) { workP->unk20.y = 1.0f; } - if (workP->unk20.y <= 0.0f) { + if(workP->unk20.y <= 0.0f) { Hu3DModelAttrSet(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[3], HU3D_ATTR_DISPOFF); - } - else { + } else { Hu3DModelAttrReset(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[2], HU3D_ATTR_DISPOFF); @@ -1630,23 +1747,20 @@ void fn_1_9CFC(float arg0) float fn_1_9E00(float start, float end) { float angleDiff; - if (start >= 360.0f) { + if(start >= 360.0f) { start -= 360.0f; - } - else if (start < 0.0f) { + } else if(start < 0.0f) { start += 360.0f; } - if (end >= 360.0f) { + if(end >= 360.0f) { end -= 360.0f; - } - else if (end < 0.0f) { + } else if(end < 0.0f) { end += 360.0f; } - angleDiff = start - end; - if (angleDiff <= -180.0f) { + angleDiff = start-end; + if(angleDiff <= -180.0f) { angleDiff += 360.0f; - } - else if (angleDiff >= 180.0f) { + } else if(angleDiff >= 180.0f) { angleDiff -= 360.0f; } return angleDiff; @@ -1656,44 +1770,38 @@ float fn_1_9F18(float start, float end, float max) { float angle; float diff; - - if (start >= 360.0) { + + if(start >= 360.0) { start -= 360.0; - } - else if (start < 0.0) { + } else if(start < 0.0) { start += 360.0; } - if (end >= 360.0) { + if(end >= 360.0) { end -= 360.0; - } - else if (end < 0.0) { + } else if(end < 0.0) { end += 360.0; } - diff = 360.0 + (start - end); - if (fabs(diff) >= 360.0) { + diff = 360.0+(start-end); + if(fabs(diff) >= 360.0) { diff = fmod(diff, 360.0); } - if (diff < 180.0) { - if (diff <= max) { + if(diff < 180.0) { + if(diff <= max) { angle = diff; - } - else { + } else { angle = max; } - } - else if (360.0 - diff <= max) { - angle = -(360.0 - diff); - } - else { + } else if(360.0-diff <= max) { + angle = -(360.0-diff); + } else { angle = -max; } angle += end; - if (angle >= 360.0) { + if(angle >= 360.0) { angle -= 360.0; - } - else if (angle < 0.0) { + } else if(angle < 0.0) { angle += 360.0; } - + return angle; } diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c index 8f3a10ed..97e8ffb5 100644 --- a/src/REL/m456Dll/main.c +++ b/src/REL/m456Dll/main.c @@ -150,7 +150,7 @@ void ObjectSetup(void) var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); - Hu3DShadowCreate(10.0f, var_r30->nnear, var_r30->ffar); + Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far); Hu3DShadowTPLvlSet(0.7f); Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44); HuAudSndGrpSet(0x4E); diff --git a/src/REL/m456Dll/stage.c b/src/REL/m456Dll/stage.c index 94824810..8e13a6cf 100644 --- a/src/REL/m456Dll/stage.c +++ b/src/REL/m456Dll/stage.c @@ -1,15 +1,23 @@ #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" -#include "game/sprite.h" +#include "game/hsfmotion.h" +#include "game/pad.h" + +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/sprite.h" +#include "game/wipe.h" #include "REL/m456Dll.h" #include "ext_math.h" +#include "math.h" #include "version.h" #if !VERSION_PAL @@ -426,7 +434,7 @@ void fn_1_3CB0(ModelData *model, Mtx matrix) mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); mtxTransCat(modelview, 400 * (workUnk74->unk0.x + 1500) / 3000, 400 * (workUnk74->unk0.z - -2000) / 3000, 0); GXLoadPosMtxImm(modelview, GX_PNMTX0); - GXCallDisplayListNative(work2->unkA14, work2->unkA18); + GXCallDisplayList(work2->unkA14, work2->unkA18); if (!omPauseChk()) { workUnk74->unk1E--; } @@ -510,7 +518,7 @@ void fn_1_464C(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSETARRAY(GX_VA_POS, lbl_1_data_388, sizeof(lbl_1_data_388), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_388, sizeof(Vec)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); for (i = 0; i < 4; i++) { GXPosition1x16(i); @@ -601,16 +609,16 @@ void fn_1_4994(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSETARRAY(GX_VA_POS, lbl_1_data_3B8, sizeof(lbl_1_data_3B8), sizeof(Vec)); + GXSetArray(GX_VA_POS, lbl_1_data_3B8, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_4F0, sizeof(lbl_1_data_4F0), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, lbl_1_data_4F0, sizeof(GXColor)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, lbl_1_data_558, sizeof(lbl_1_data_558), sizeof(float) * 2); + GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float) * 2); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX1, &work2->unk874[0][0], sizeof(work2->unk874), sizeof(float) * 2); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float) * 2); GXBegin(GX_QUADS, GX_VTXFMT0, 48); for (i = 0; i < 12; i++) { s16 index; @@ -768,8 +776,8 @@ void fn_1_54D0(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_POS, lbl_1_data_714, sizeof(lbl_1_data_714), sizeof(Vec)); - GXSETARRAY(GX_VA_CLR0, lbl_1_data_780, sizeof(lbl_1_data_780), sizeof(GXColor)); + GXSetArray(GX_VA_POS, lbl_1_data_714, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_780, sizeof(GXColor)); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); GXPosition1x8(0); GXColor1x8(0); @@ -849,9 +857,6 @@ void fn_1_5C74(Work2FACUnk4 *fbWork, float x1, float y1, float scale) GXPosition3f32(x1, y2, 0); GXTexCoord2f32(0, 1); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&texObj); -#endif } void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4) @@ -865,9 +870,6 @@ void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&texObj, arg0); -#ifdef TARGET_PC - GXDestroyTexObj(&texObj); -#endif } s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3) diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c index cc840f43..4e570c51 100755 --- a/src/REL/m457Dll/main.c +++ b/src/REL/m457Dll/main.c @@ -21,7 +21,7 @@ #include "ext_math.h" #include "version.h" -extern s32 rand8(void); +s32 rand8(void); #define MSM_SE_BOWSER_LAUGH 0x3A #define MSM_SE_BOWSER_HOWL 0x3E diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index 9e037ee3..3b261cd0 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -17,6 +17,8 @@ #include "game/wipe.h" #include "string.h" +#include "game/frand.h" + extern s32 rand8(void); typedef struct UnkCameraStruct { diff --git a/src/REL/m459dll/main.c b/src/REL/m459dll/main.c index b8764c6a..c8c96218 100644 --- a/src/REL/m459dll/main.c +++ b/src/REL/m459dll/main.c @@ -12,7 +12,9 @@ #include "game/printfunc.h" #include "game/wipe.h" +// #ifndef __MWERKS__ #include "game/frand.h" +// #endif typedef struct M459DllBss18Struct { /* 0x00 */ s32 unk_00; @@ -524,6 +526,7 @@ void fn_1_73C(void) void fn_1_E78(void) { + float sp8; float var_f31; M459DllBss61CStruct *var_r31; @@ -1151,6 +1154,10 @@ loop_1: void fn_1_338C(M459DllBssCCStruct *arg0, float arg8) { + float spC; + float var_f31; + float var_f30; + float var_f29; s16 var_r30; var_r30 = 0; diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c index 2cc504ee..52ca989b 100644 --- a/src/REL/m460Dll/main.c +++ b/src/REL/m460Dll/main.c @@ -945,6 +945,8 @@ u32 fn_1_4370(void) void fn_1_4388(Vec *sp8, Vec *var_r31) { Vec sp10; + float var_f30; + float var_f29; VECSubtract(var_r31, sp8, &sp10); Center = *var_r31; diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c index 6e7f2622..15fa7f53 100644 --- a/src/REL/m460Dll/map.c +++ b/src/REL/m460Dll/map.c @@ -10,6 +10,7 @@ #include "game/hsfmotion.h" #include "game/memory.h" #include "game/object.h" +#include "game/pad.h" #include "game/sprite.h" #include "string.h" @@ -397,9 +398,6 @@ void fn_1_7790(ModelData *model, Mtx mtx) GXPosition3f32(var_f31, var_f30, -var_f29); GXPosition3f32(var_f31, -var_f30, -var_f29); GXPosition3f32(-var_f31, -var_f30, -var_f29); -#ifdef TARGET_PC - GXDestroyTexObj(&spC); -#endif } void fn_1_7B94(s32 arg0) diff --git a/src/REL/m460Dll/score.c b/src/REL/m460Dll/score.c index d1a62652..357c2d8c 100644 --- a/src/REL/m460Dll/score.c +++ b/src/REL/m460Dll/score.c @@ -77,6 +77,9 @@ void fn_1_8F38(void) void fn_1_8FAC(s32 arg0) { + s32 sp8; + s32 var_r3; + switch (arg0) { case 0: fn_1_9020(1); diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index ac2ad1a2..1c4b57cc 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -1127,9 +1127,7 @@ void fn_1_507C(WorkPlayerOld *player, s32 attr) player->unk3C &= ~attr; } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif Vec lbl_1_data_A0 = { 0, 600, 600 }; Vec lbl_1_data_AC = { 0, 1, 0 }; diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c index 7f873677..159940f0 100755 --- a/src/REL/m463Dll/main.c +++ b/src/REL/m463Dll/main.c @@ -20,8 +20,6 @@ #include "ext_math.h" -extern s32 rand8(void); - typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 608ce2a6..59f44912 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -29,8 +29,18 @@ s32 lbl_1_data_0[][4] = { s32 lbl_1_data_70 = -1; +// char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"; +// char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f"; +// char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f"; +// char lbl_1_data_CA[] = "ZOOM : %.2f"; + +extern s32 _prolog(); +extern void _epilog(); void fn_1_144(void); void fn_1_2318(s32); +typedef void (*VoidFunc)(void); +extern const VoidFunc _ctors[]; +extern const VoidFunc _dtors[]; void fn_1_0(omObjData *arg0) { @@ -48,11 +58,27 @@ void fn_1_4C(omObjData *object) } } -#ifdef __MWERKS__ -#include "src/REL/executor.c" -#endif +s32 _prolog(void) +{ + const VoidFunc *ctors = _ctors; + while (*ctors != 0) { + (**ctors)(); + ctors++; + } + fn_1_144(); + return 0; +} -void ObjectSetup(void) +void _epilog(void) +{ + const VoidFunc *dtors = _dtors; + while (*dtors != 0) { + (**dtors)(); + dtors++; + } +} + +void fn_1_144(void) { _ClearFlag(0x1000BU); boardTutorialF = 0; diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 789030fc..db8375f3 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -4,7 +4,6 @@ #include "game/armem.h" #include "game/chrman.h" #include "game/hsfdraw.h" -#include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" @@ -16,11 +15,6 @@ #include "game/window.h" #include "game/wipe.h" -#ifndef __MWERKS__ -extern s32 rand8(void); -#include "game/audio.h" -#endif - typedef struct MentDllUnkBssE4Struct { /* 0x00 */ s32 unk_00; /* 0x04 */ s32 unk_04; diff --git a/src/REL/messDll/main.c b/src/REL/messDll/main.c index 1d91e94c..f7b32576 100755 --- a/src/REL/messDll/main.c +++ b/src/REL/messDll/main.c @@ -7,6 +7,7 @@ #include "game/window.h" #include "game/wipe.h" +#include "dolphin.h" #include "ext_math.h" extern s32 sprintf(char *, const char *, s32); diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c index 9c2538d9..c5088576 100644 --- a/src/REL/mgmodedll/battle.c +++ b/src/REL/mgmodedll/battle.c @@ -1,17 +1,16 @@ #include "REL/mgmodedll.h" +#include "game/gamework.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/esprite.h" #include "game/gamework_data.h" #include "game/minigame_seq.h" +#include "game/saveload.h" #include "game/wipe.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - s16 lbl_1_bss_3A4; s32 lbl_1_bss_3A0; s16 lbl_1_bss_396[4]; diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c index ab29a7d8..58ffe85e 100644 --- a/src/REL/mgmodedll/free_play.c +++ b/src/REL/mgmodedll/free_play.c @@ -4,6 +4,7 @@ #include "game/audio.h" #include "game/esprite.h" #include "game/gamework_data.h" +#include "game/saveload.h" #include "game/wipe.h" #include "ext_math.h" diff --git a/src/REL/mgmodedll/minigame.c b/src/REL/mgmodedll/minigame.c index 62d7aa14..2c4fb825 100644 --- a/src/REL/mgmodedll/minigame.c +++ b/src/REL/mgmodedll/minigame.c @@ -60,7 +60,7 @@ void fn_1_26C54(s16 layer) Vec pos, target, up; GXColor color; CameraData *camera = &Hu3DCamera[0]; - MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); GXSetProjection(proj, GX_PERSPECTIVE); GXSetViewport(0, 0, 640, 480, 0, 1); GXSetScissor(0, 0, 640, 480); diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 1e3778aa..cb1c254b 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -859,9 +859,6 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetNumIndStages(0U); GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); -#ifdef TARGET_PC - GXDestroyTexObj(&sp30); -#endif } // -------------------------------------------------------------------------- // diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 9293bb37..03f4fd71 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -72,7 +72,7 @@ static inline void HuControlCamCenter(Vec *sp18, Vec *sp30) // -------------------------------------------------------------------------- // -void fn_1_37DC(omObjData *object) +void fn_1_37DC(omObjData *) { Vec sp3C; Vec sp30; @@ -135,7 +135,7 @@ void fn_1_37DC(omObjData *object) // -------------------------------------------------------------------------- // -void fn_1_439C(omObjData *object) +void fn_1_439C(omObjData *) { s16 var_r31; f32 temp_f30; diff --git a/src/REL/modeseldll/datalist.c b/src/REL/modeseldll/datalist.c index afd55ec3..87287bed 100644 --- a/src/REL/modeseldll/datalist.c +++ b/src/REL/modeseldll/datalist.c @@ -1,9 +1,5 @@ #include "REL/modeseldll.h" -#ifndef __MWERKS__ -#include "game/esprite.h" -#endif - s16 lbl_1_bss_19A[24]; s16 lbl_1_bss_16A[24]; s16 lbl_1_bss_152[12]; diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 43781e7e..1ddd44cf 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -14,11 +14,8 @@ #include "REL/modeseldll.h" -s32 msmSysGetOutputMode(void); - #ifndef __MWERKS__ #include "game/esprite.h" -#include "game/hsfex.h" #endif s16 lbl_1_data_100 = -1; diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index 343293c3..2ece1b9d 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -1,8 +1,5 @@ #include "REL/modeseldll.h" -#include "ext_math.h" #include "game/audio.h" -#include "game/board/ui.h" -#include "game/esprite.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/object.h" @@ -11,8 +8,7 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" - -#include +#include "ext_math.h" typedef struct camera_view_params { Vec rot; @@ -107,7 +103,6 @@ void fn_1_414(void) HuWinAllKill(); HuWinInit(1); #endif -#ifdef __MWERKS__ grpId = HuSprGrpCreate(1); sprId = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); HuSprGrpMemberSet(grpId, 0, sprId); @@ -121,7 +116,6 @@ void fn_1_414(void) } HuTHPClose(); HuSprGrpKill(grpId); -#endif } } espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 1501d249..ff96fbbc 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -31,6 +31,8 @@ s16 lbl_1_bss_80; void fn_1_3668(void); +// Scratch is at https://decomp.me/scratch/iirXp +// Register allocation issues at line 180 with load of 1.0 double constant s32 fn_1_2490(void) { float sp10[2]; @@ -171,13 +173,10 @@ s32 fn_1_2490(void) HuWinExAnimOut(lbl_1_bss_82); HuAudFXStop(temp_r25); temp_r27 = HuSprGrpCreate(1); -#ifdef __MWERKS__ - // TODO PC temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0); HuSprGrpMemberSet(temp_r27, 0, temp_r21); HuSprPosSet(temp_r27, 0, 288.0f, 240.0f); HuSprDrawNoSet(temp_r27, 0, 127); -#endif HuPrcSleep(2); espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index 9494542d..31a7359e 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -44,7 +44,7 @@ typedef struct MpexDllUnkStruct4 { /* 0x2C */ char unk2C[0x1C]; } MpexDllUnkStruct4; /* size = 0x48 */ -extern s32 rand8(void); +s32 rand8(void); float fn_1_1B52C(float arg8, float arg9, float argA, float argB); float fn_1_1B574(float arg0, float arg1, float arg2, float arg3); float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3); diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c index 0014ae13..77125674 100644 --- a/src/REL/mstory2Dll/main.c +++ b/src/REL/mstory2Dll/main.c @@ -130,9 +130,7 @@ void fn_1_A4(void) { } } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_3E4(void) { diff --git a/src/REL/mstory3Dll/main.c b/src/REL/mstory3Dll/main.c index f86f741f..c1e4f1bf 100755 --- a/src/REL/mstory3Dll/main.c +++ b/src/REL/mstory3Dll/main.c @@ -127,9 +127,7 @@ void fn_1_A4(void) { } } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_40C(void) { lbl_1_bss_0 = omInitObjMan(62, 0x2000); diff --git a/src/REL/mstory3Dll/win_effect.c b/src/REL/mstory3Dll/win_effect.c index 7bc31b9e..2a86dd6c 100755 --- a/src/REL/mstory3Dll/win_effect.c +++ b/src/REL/mstory3Dll/win_effect.c @@ -222,8 +222,8 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f); temp_r26 = temp_r21 / 2; temp_r20 = temp_r21 - temp_r26; - VECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8); - temp_f31 = VECMag(&sp8) / temp_r20; + PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8); + temp_f31 = PSVECMag(&sp8) / temp_r20; for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) { var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { @@ -254,12 +254,12 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { continue; } if (var_r31->unk00 == 0) { - VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.999f; var_r31->unk08.y -= 0.5f; var_r31->unk08.z *= 0.999f; if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) { - VECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); + PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); } if (var_r31->unk02 == temp_r26) { var_r31->unk00++; @@ -270,18 +270,18 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { } } else if (var_r31->unk00 == 1) { sp8 = temp_r28->unk00[var_r29]; - VECSubtract(&sp8, &var_r31->unk34, &sp8); - if (VECMag(&sp8) <= 1.0 + temp_f31) { + PSVECSubtract(&sp8, &var_r31->unk34, &sp8); + if (PSVECMag(&sp8) <= 1.0 + temp_f31) { var_r23++; var_r31->unk34 = temp_r28->unk00[var_r29]; var_r31->unk00++; continue; } - VECNormalize(&sp8, &sp8); + PSVECNormalize(&sp8, &sp8); var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x); var_r31->unk08.y = sp8.y * temp_f31; var_r31->unk08.z = sp8.z * temp_f31; - VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk14.x += 20.0f; } else { var_r23++; diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index e29d0fd1..b6304228 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -105,6 +105,7 @@ s32 lbl_1_data_56C[] = { }; void fn_1_EC(void); +void fn_1_12E8(void); void fn_1_13A0(void); s32 lbl_1_bss_14; @@ -453,11 +454,25 @@ void fn_1_EC(void) } } -#ifdef __MWERKS__ -#include "src/REL/executor.c" -#endif +s32 _prolog(void) { + const VoidFunc* ctors = _ctors; + while (*ctors != 0) { + (**ctors)(); + ctors++; + } + fn_1_12E8(); + return 0; +} -void ObjectSetup(void) +void _epilog(void) { + const VoidFunc* dtors = _dtors; + while (*dtors != 0) { + (**dtors)(); + dtors++; + } +} + +void fn_1_12E8(void) { lbl_1_bss_0 = omInitObjMan(62, 8192); omGameSysInit(lbl_1_bss_0); @@ -562,7 +577,7 @@ void fn_1_13A0(void) s32 i; for(i=1; i<4; i++) { GWPlayerCfg[i].character = GWPlayerCfg[i-1].character+1; - if(GWPlayerCfg[i].character > GW_CHARACTER_MAX) { + if(GWPlayerCfg[i].character > CHARNO_MAX ) { GWPlayerCfg[i].character = 0; } } diff --git a/src/REL/mstoryDll/main.c b/src/REL/mstoryDll/main.c index fbef63a7..7f4f2cb7 100755 --- a/src/REL/mstoryDll/main.c +++ b/src/REL/mstoryDll/main.c @@ -138,9 +138,7 @@ void fn_1_A4(void) { } } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif void fn_1_488(void) { s32 i; diff --git a/src/REL/nisDll/main.c b/src/REL/nisDll/main.c index 1ee9dbd0..4dc839ce 100644 --- a/src/REL/nisDll/main.c +++ b/src/REL/nisDll/main.c @@ -19,6 +19,4 @@ void fn_1_68(omObjData *object) } } -#ifdef __MWERKS__ #include "src/REL/executor.c" -#endif \ No newline at end of file diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index cc1cbfb2..7012bb90 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -13,10 +13,6 @@ #include "dolphin.h" #include "math.h" -#ifndef __MWERKS__ -#include -#endif - typedef struct { /* 0x000 */ omObjData *object[26]; /* 0x068 */ OptionWindow *window[13]; @@ -114,7 +110,7 @@ static void CreateNote(omObjData *object, s32 type, s32 side, s32 color); static void CreateNoteSpawner(omObjData *object); static void KillNoteSpawner(omObjData *object); static void ExecNoteSpawner(void); -static void OptionPlaySound(omObjData *object); +static void PlaySound(omObjData *object); static void FadeSound(omObjData *object); omObjData *optionSound; @@ -924,7 +920,7 @@ static void ExecMusic(omObjData *object) HuAudSeqFadeOut(work->bgMusicStat, 0x64); work->bgMusicStat = -1; } - OptionPlaySound(object); + PlaySound(object); } else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); @@ -1105,7 +1101,7 @@ static void ExecVoice(omObjData *object) case 6: if (work->window[0]->state == 0 && work->window[1]->state == 0) { if (OptionPadCheck(PAD_BUTTON_A)) { - OptionPlaySound(object); + PlaySound(object); } else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); @@ -1669,7 +1665,7 @@ static void ExecNoteSpawner(void) } } -static void OptionPlaySound(omObjData *object) +static void PlaySound(omObjData *object) { SoundWork *work = object->data; SndSelData *sndSelData; diff --git a/src/REL/present/present.c b/src/REL/present/present.c index fc7c27dd..b6d90dfc 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -86,7 +86,7 @@ typedef struct PresentDistanceStruct { static void ExecSelectRoom(omObjData *object); static void ChangeRoom(omObjData *object, s32 direction); static void ExecSelectPresent(omObjData *object); -static void PresentGetCursorPos(omObjData *object, float *x, float *y, float *z); +static void GetCursorPos(omObjData *object, float *x, float *y, float *z); static void SetCameraRot(omObjData *object, float rot, s32 duration); static void RotateCamera(omObjData *object); static BOOL CameraRotationDoneCheck(omObjData *object); @@ -731,7 +731,7 @@ static void ExecSelectPresent(omObjData *object) work->cursorSpeed = 1.0f / 6.0f; if (work->roomNotEmptyF) { Vec cursorPos; - PresentGetCursorPos(work->object[roomTbl[room].presentData[idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); + GetCursorPos(work->object[roomTbl[room].presentData[idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); Hu3D3Dto2D(&cursorPos, 1, &cursorPos); cursorPos.y -= 15.0f; cursorPos.x -= 20.0f; @@ -818,7 +818,7 @@ static void ExecSelectPresent(omObjData *object) } } -static void PresentGetCursorPos(omObjData *object, float *x, float *y, float *z) +static void GetCursorPos(omObjData *object, float *x, float *y, float *z) { Mtx sp8; @@ -966,7 +966,7 @@ static s32 MoveCursor(omObjData *object, s32 arg1) return work->idxInRoom; } - PresentGetCursorPos(work->object[roomTbl[work->room].presentData[work->idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); + GetCursorPos(work->object[roomTbl[work->room].presentData[work->idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); Hu3D3Dto2D(&cursorPos, 1, &cursorPos); for (i = 0, j = 0; i == 0 && j < 1; j++) { for (i = 0, present = 0; present < totalPresents; present++) { @@ -978,7 +978,7 @@ static s32 MoveCursor(omObjData *object, s32 arg1) if (!PresentUnlocked(object, work->room, present)) { continue; } - PresentGetCursorPos(work->object[roomTbl[work->room].presentData[present].cursorPosIdx], &cursorPosNew.x, &cursorPosNew.y, &cursorPosNew.z); + GetCursorPos(work->object[roomTbl[work->room].presentData[present].cursorPosIdx], &cursorPosNew.x, &cursorPosNew.y, &cursorPosNew.z); Hu3D3Dto2D(&cursorPosNew, 1, &cursorPosNew); dx = cursorPos.x - cursorPosNew.x; dy = cursorPos.y - cursorPosNew.y; diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index 84d962fa..f9a58cba 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -676,7 +676,4 @@ static void ResultShadowDraw(struct model_data *model, Mtx matrix) GXPosition3f32(500.0f, 0, 500.0f); GXPosition3f32(-500.0f, 0, 500.0f); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&tex); -#endif } diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index 4cab5e56..ad413ed8 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -16,13 +16,10 @@ #include "game/wipe.h" #include "math.h" -#ifdef __MWERKS__ + // MSM Definitions static s8 *msmSeGetIndexPtr(s16 datano); static void msmMusSetMasterVolume(s32 value); -#else -#include "game/msm.h" -#endif #define SM_PAGE_MAX 7 #define SM_PAGE_SIZE 10 @@ -133,7 +130,7 @@ static u16 keyDStkDown; static u16 btnDownAll[4]; static u16 keyDStkAll[4]; static u16 keyDStkAllDown[4]; -static u16 keyDStkAllPrev[4] = {0, 0, 0, 0}; +static u16 keyDStkAllPrev[4] = {}; static void SMInit(omObjData *object); static void SMRand8Tick(omObjData *object); @@ -910,12 +907,9 @@ static void SMSound3DDraw(void); static void SMSound3DInit(omObjData *object) { -#ifdef __MWERKS__ - // TODO PC s8 *data = msmSeGetIndexPtr(emiCompDataNo); emiCompVal = data[12]; object->func = SMSound3DUpdate; -#endif } static void SMSound3DUpdate(omObjData *object) diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index 630569bb..c42f53b3 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -660,7 +660,7 @@ void fn_1_48EC(s32 arg0) temp_r31->unkbit_04 = 0; temp_r31->unk_02 = -1; temp_r31->unkbit_01 = arg0; - temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 80 * sizeof(w03StructUnk3), MEMORY_DEFAULT_NUM); + temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, MEMORY_DEFAULT_NUM); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC); temp_r31->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x07), NULL, 0); BoardModelVisibilitySet(temp_r31->model, 0); diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index dba306f1..dc05b755 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -761,7 +761,7 @@ void fn_1_97F8(s32 arg0) temp_r30 = OM_GET_WORK_PTR(temp_r3, unkTemp2); temp_r30->unk00_bit0 = 0; temp_r30->unk4 = arg0; - temp_r30->unk_0C = HuMemDirectMallocNum(0, 20 * sizeof(unkTemp), MEMORY_DEFAULT_NUM); + temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, MEMORY_DEFAULT_NUM); BoardPlayerPosGet(arg0, &sp8); temp_r30->unk8 = (80.0f + sp8.y); memset(temp_r30->unk_0C, 0, 0x190); diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index fab52641..9b9ccfa3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -60,6 +60,8 @@ typedef struct w03UnkMG { // external symbols +extern u16 HuPadBtnDown[4]; + // function signatures s32 BoardVecDAngleCalcRange(float *value, float min, float range); diff --git a/src/REL/w03Dll/smoke.c b/src/REL/w03Dll/smoke.c index b72c3fec..0fcdeda3 100644 --- a/src/REL/w03Dll/smoke.c +++ b/src/REL/w03Dll/smoke.c @@ -12,6 +12,7 @@ typedef struct w03UnkWorkStruct { extern w03State* lbl_1_bss_0; omObjData* lbl_1_bss_138[2]; +extern Process *boardObjMan; extern s16 lbl_1_data_1E0; void fn_1_79E0(omObjData* arg0); diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index a5388cd8..c2f8d938 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -157,7 +157,7 @@ void fn_1_9D0C(omObjData *arg0) s32 var_r30; dataCopy2 *temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(dataCopy2), MEMORY_DEFAULT_NUM); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r31 = arg0->data; temp_r31->unk_02 = 5; temp_r31->unk_04 = 0x3C; @@ -318,7 +318,7 @@ void fn_1_A5B0(omObjData *arg0) BoardModelVisibilitySet(lbl_1_bss_D4, 1); BoardModelMotionTimeSet(lbl_1_bss_D4, 110.0f); lbl_1_bss_C8 = temp_r29 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3C4); - temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); temp_r31 = temp_r29->data; lbl_1_bss_C8->work[1] = 1; Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14); diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 4ea226d7..0e942bef 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -114,7 +114,7 @@ void fn_1_6B7C(void) lbl_1_bss_94 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_7284); lbl_1_bss_8C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_78A0); lbl_1_bss_90 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL); - lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(dataCopy), MEMORY_DEFAULT_NUM); + lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, MEMORY_DEFAULT_NUM); if (lbl_1_bss_78 == NULL) { lbl_1_bss_78 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); HuSprAnimLock(lbl_1_bss_78); diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index 33283e33..0b8de21c 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -1,4 +1,4 @@ -#include "REL/w10Dll.h" +#include "include/REL/w10Dll.h" #include "game/data.h" #include "game/hsfman.h" #include "game/board/lottery.h" diff --git a/src/REL/w10Dll/scene.c b/src/REL/w10Dll/scene.c index 0ba84414..9328f7e4 100644 --- a/src/REL/w10Dll/scene.c +++ b/src/REL/w10Dll/scene.c @@ -1,4 +1,4 @@ -#include "REL/w10Dll.h" +#include "include/REL/w10Dll.h" #include "game/board/char_wheel.h" #include "game/board/lottery.h" #include "game/board/main.h" diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 8138a5f4..0d20bade 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -1538,7 +1538,4 @@ void fn_1_7414(ModelData *model, Mtx matrix) GXPosition3f32(500.0f, 0.0f, -500.0f); GXPosition3f32(500.0f, 0.0f, 500.0f); GXPosition3f32(-500.0f, 0.0f, 500.0f); -#ifdef TARGET_PC - GXDestroyTexObj(&spC); -#endif } diff --git a/src/dolphin/demo/DEMOInit.c b/src/dolphin/demo/DEMOInit.c index 798653b4..86df9bd1 100644 --- a/src/dolphin/demo/DEMOInit.c +++ b/src/dolphin/demo/DEMOInit.c @@ -77,10 +77,10 @@ static void __DEMOInitMem() void *arenaHi = OSGetArenaHi(); unsigned long fbSize = ((u16)(rmode->fbWidth + 15) & 0xFFF0) * rmode->xfbHeight * 2; - DemoFrameBuffer1 = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F); - DemoFrameBuffer2 = (void *)(((uintptr_t)DemoFrameBuffer1 + fbSize + 0x1F) & ~0x1F); + DemoFrameBuffer1 = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + DemoFrameBuffer2 = (void *)(((u32)DemoFrameBuffer1 + fbSize + 0x1F) & 0xFFFFFFE0); DemoCurrentBuffer = DemoFrameBuffer2; - arenaLo = (void *)(((uintptr_t)DemoFrameBuffer2 + fbSize + 0x1F) & ~0x1F); + arenaLo = (void *)(((u32)DemoFrameBuffer2 + fbSize + 0x1F) & 0xFFFFFFE0); OSSetArenaLo(arenaLo); if (((OSGetConsoleType() + 0xF0000000) == 4U) && ((OSGetPhysicalMemSize() + 0xFFC00000) != 0U) && (OSGetConsoleSimulatedMemSize() < 0x01800000U)) { @@ -91,9 +91,9 @@ static void __DEMOInitMem() arenaHi = OSGetArenaHi(); arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); OSSetArenaLo(arenaLo); - arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F); - arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F); - OSSetCurrentHeap(OSCreateHeap((void *)(((uintptr_t)arenaLo)), arenaHi)); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); + OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi)); OSSetArenaLo((arenaLo = arenaHi)); } @@ -210,13 +210,13 @@ static void LoadMemInfo() arenaHi = OSGetArenaHi(); arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); OSSetArenaLo(arenaLo); - arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F); - arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi)); OSSetArenaLo((arenaLo = arenaHi)); return; } - memEntry = (void *)((uintptr_t)buf + 0x1F & ~0x1F); + memEntry = (void *)((u32)buf + 0x1F & 0xFFFFFFE0); arenaHiOld = OSGetArenaHi(); simMemEnd = OSPhysicalToCached(OSGetConsoleSimulatedMemSize()); OSSetArenaHi(OSPhysicalToCached(OSGetPhysicalMemSize())); @@ -224,8 +224,8 @@ static void LoadMemInfo() arenaHi = OSGetArenaHi(); arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); OSSetArenaLo(arenaLo); - arenaLo = (void *)(((uintptr_t)arenaLo + 0x1F) & ~0x1F); - arenaHi = (void *)((uintptr_t)arenaHi & ~0x1F); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); OSSetCurrentHeap(OSCreateHeap((void *)(arenaLo), arenaHi)); OSSetArenaLo((arenaLo = arenaHi)); OSAllocFixed(&arenaHiOld, &simMemEnd); @@ -234,7 +234,7 @@ static void LoadMemInfo() while (length) { OSReport("loop\n"); transferLength = (length < 0x20) ? length : 0x20; - if (DVDReadPrio(&fileInfo, memEntry, (transferLength + 0x1F) & ~0x1F, offset, 2) < 0) { + if (DVDReadPrio(&fileInfo, memEntry, (transferLength + 0x1F) & 0xFFFFFFE0, offset, 2) < 0) { OSPanic(__FILE__, 0x49F, "An error occurred when issuing read to /meminfo.bin\n"); } indexMax = (transferLength / 8); diff --git a/src/dolphin/demo/DEMOPuts.c b/src/dolphin/demo/DEMOPuts.c index c5af26fc..618152e5 100644 --- a/src/dolphin/demo/DEMOPuts.c +++ b/src/dolphin/demo/DEMOPuts.c @@ -53,9 +53,6 @@ void DEMOLoadFont(enum _GXTexMapID texMap, enum _GXTexMtx texMtx, DMTexFlt texFl GXLoadTexMtxImm(fontTMtx, texMtx, 1); GXSetNumTexGens(1); GXSetTexCoordGen(0, 1, 4, texMtx); -#ifdef TARGET_PC - GXDestroyTexObj(&fontTexObj); -#endif } void DEMOSetupScrnSpc(long width, long height, float depth) diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c index 6b71edb5..558d4d03 100644 --- a/src/dolphin/mtx/mtx.c +++ b/src/dolphin/mtx/mtx.c @@ -1,5 +1,4 @@ #include "dolphin/mtx.h" -#include "dolphin/gx/GXPriv.h" static f32 Unit01[] = { 0.0f, 1.0f }; @@ -7,21 +6,17 @@ extern f32 sinf(f32); extern f32 cosf(f32); extern f32 tanf(f32); -void C_MTXIdentity(Mtx m) +void C_MTXIdentity(Mtx mtx) { - ASSERTMSGLINE(189, m, "MtxIdentity(): NULL Mtx 'm' "); - m[0][0] = 1; - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = 0; - m[1][0] = 0; - m[1][1] = 1; - m[1][2] = 0; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = 1; - m[2][3] = 0; + mtx[0][0] = 1.0f; + mtx[0][1] = 0.0f; + mtx[0][2] = 0.0f; + mtx[1][0] = 0.0f; + mtx[1][1] = 1.0f; + mtx[1][2] = 0.0f; + mtx[2][0] = 0.0f; + mtx[2][1] = 0.0f; + mtx[2][2] = 1.0f; } #ifdef GEKKO @@ -46,23 +41,27 @@ void PSMTXIdentity(register Mtx m) } #endif -void C_MTXCopy(const Mtx src, Mtx dst) { - ASSERTMSGLINE(250, src, "MTXCopy(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(251, dst, "MTXCopy(): NULL MtxPtr 'dst' "); - if (src != dst) { - dst[0][0] = src[0][0]; - dst[0][1] = src[0][1]; - dst[0][2] = src[0][2]; - dst[0][3] = src[0][3]; - dst[1][0] = src[1][0]; - dst[1][1] = src[1][1]; - dst[1][2] = src[1][2]; - dst[1][3] = src[1][3]; - dst[2][0] = src[2][0]; - dst[2][1] = src[2][1]; - dst[2][2] = src[2][2]; - dst[2][3] = src[2][3]; +void C_MTXCopy(const Mtx src, Mtx dst) +{ + + if (src == dst) { + return; } + + dst[0][0] = src[0][0]; + dst[0][1] = src[0][1]; + dst[0][2] = src[0][2]; + dst[0][3] = src[0][3]; + + dst[1][0] = src[1][0]; + dst[1][1] = src[1][1]; + dst[1][2] = src[1][2]; + dst[1][3] = src[1][3]; + + dst[2][0] = src[2][0]; + dst[2][1] = src[2][1]; + dst[2][2] = src[2][2]; + dst[2][3] = src[2][3]; } #ifdef GEKKO @@ -89,34 +88,33 @@ asm void PSMTXCopy(const register Mtx src, register Mtx dst) } #endif -void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab) { +void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab) +{ Mtx mTmp; MtxPtr m; - ASSERTMSGLINE(324, a, "MTXConcat(): NULL MtxPtr 'a' "); - ASSERTMSGLINE(325, b, "MTXConcat(): NULL MtxPtr 'b' "); - ASSERTMSGLINE(326, ab, "MTXConcat(): NULL MtxPtr 'ab' "); - - if (ab == a || ab == b) { + if ((ab == a) || (ab == b)) { m = mTmp; - } else { + } + + else { m = ab; } - m[0][0] = 0 + a[0][2] * b[2][0] + ((a[0][0] * b[0][0]) + (a[0][1] * b[1][0])); - m[0][1] = 0 + a[0][2] * b[2][1] + ((a[0][0] * b[0][1]) + (a[0][1] * b[1][1])); - m[0][2] = 0 + a[0][2] * b[2][2] + ((a[0][0] * b[0][2]) + (a[0][1] * b[1][2])); - m[0][3] = a[0][3] + (a[0][2] * b[2][3] + (a[0][0] * b[0][3] + (a[0][1] * b[1][3]))); + m[0][0] = a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0]; + m[0][1] = a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1]; + m[0][2] = a[0][0] * b[0][2] + a[0][1] * b[1][2] + a[0][2] * b[2][2]; + m[0][3] = a[0][0] * b[0][3] + a[0][1] * b[1][3] + a[0][2] * b[2][3] + a[0][3]; - m[1][0] = 0 + a[1][2] * b[2][0] + ((a[1][0] * b[0][0]) + (a[1][1] * b[1][0])); - m[1][1] = 0 + a[1][2] * b[2][1] + ((a[1][0] * b[0][1]) + (a[1][1] * b[1][1])); - m[1][2] = 0 + a[1][2] * b[2][2] + ((a[1][0] * b[0][2]) + (a[1][1] * b[1][2])); - m[1][3] = a[1][3] + (a[1][2] * b[2][3] + (a[1][0] * b[0][3] + (a[1][1] * b[1][3]))); + m[1][0] = a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0]; + m[1][1] = a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1]; + m[1][2] = a[1][0] * b[0][2] + a[1][1] * b[1][2] + a[1][2] * b[2][2]; + m[1][3] = a[1][0] * b[0][3] + a[1][1] * b[1][3] + a[1][2] * b[2][3] + a[1][3]; - m[2][0] = 0 + a[2][2] * b[2][0] + ((a[2][0] * b[0][0]) + (a[2][1] * b[1][0])); - m[2][1] = 0 + a[2][2] * b[2][1] + ((a[2][0] * b[0][1]) + (a[2][1] * b[1][1])); - m[2][2] = 0 + a[2][2] * b[2][2] + ((a[2][0] * b[0][2]) + (a[2][1] * b[1][2])); - m[2][3] = a[2][3] + (a[2][2] * b[2][3] + (a[2][0] * b[0][3] + (a[2][1] * b[1][3]))); + m[2][0] = a[2][0] * b[0][0] + a[2][1] * b[1][0] + a[2][2] * b[2][0]; + m[2][1] = a[2][0] * b[0][1] + a[2][1] * b[1][1] + a[2][2] * b[2][1]; + m[2][2] = a[2][0] * b[0][2] + a[2][1] * b[1][2] + a[2][2] * b[2][2]; + m[2][3] = a[2][0] * b[0][3] + a[2][1] * b[1][3] + a[2][2] * b[2][3] + a[2][3]; if (m == mTmp) { C_MTXCopy(mTmp, ab); @@ -224,16 +222,12 @@ asm void PSMTXConcat(const register Mtx mA, const register Mtx mB, register Mtx } #endif -void C_MTXConcatArray(const Mtx a, const Mtx* srcBase, Mtx* dstBase, u32 count) { +void C_MTXConcatArray(const Mtx a, const Mtx *srcBase, Mtx *dstBase, u32 count) +{ u32 i; - - ASSERTMSGLINE(580, a != 0, "MTXConcatArray(): NULL MtxPtr 'a' "); - ASSERTMSGLINE(581, srcBase != 0, "MTXConcatArray(): NULL MtxPtr 'srcBase' "); - ASSERTMSGLINE(582, dstBase != 0, "MTXConcatArray(): NULL MtxPtr 'dstBase' "); - ASSERTMSGLINE(583, count > 1, "MTXConcatArray(): count must be greater than 1."); - for (i = 0; i < count; i++) { C_MTXConcat(a, *srcBase, *dstBase); + srcBase++; dstBase++; } @@ -357,31 +351,31 @@ _loop: #endif -void C_MTXTranspose(const Mtx src, Mtx xPose) { +void C_MTXTranspose(const Mtx src, Mtx xPose) +{ Mtx mTmp; MtxPtr m; - ASSERTMSGLINE(851, src, "MTXTranspose(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(852, xPose, "MTXTranspose(): NULL MtxPtr 'xPose' "); - if (src == xPose) { m = mTmp; - } else { + } + else { m = xPose; } m[0][0] = src[0][0]; m[0][1] = src[1][0]; m[0][2] = src[2][0]; - m[0][3] = 0; + m[0][3] = 0.0f; m[1][0] = src[0][1]; m[1][1] = src[1][1]; m[1][2] = src[2][1]; - m[1][3] = 0; + m[1][3] = 0.0f; m[2][0] = src[0][2]; m[2][1] = src[1][2]; m[2][2] = src[2][2]; - m[2][3] = 0; + m[2][3] = 0.0f; + if (m == mTmp) { C_MTXCopy(mTmp, xPose); } @@ -419,48 +413,48 @@ void PSMTXTranspose(const register Mtx src, register Mtx xPose) } #endif -u32 C_MTXInverse(const Mtx src, Mtx inv) { +u32 C_MTXInverse(const Mtx src, Mtx inv) +{ Mtx mTmp; MtxPtr m; f32 det; - ASSERTMSGLINE(950, src, "MTXInverse(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(951, inv, "MTXInverse(): NULL MtxPtr 'inv' "); - if (src == inv) { m = mTmp; - } else { + } + else { m = inv; } - det = ((((src[2][1] * (src[0][2] * src[1][0])) - + ((src[2][2] * (src[0][0] * src[1][1])) - + (src[2][0] * (src[0][1] * src[1][2])))) - - (src[0][2] * (src[2][0] * src[1][1]))) - - (src[2][2] * (src[1][0] * src[0][1]))) - - (src[1][2] * (src[0][0] * src[2][1])); - if (0 == det) { + + det = src[0][0] * src[1][1] * src[2][2] + src[0][1] * src[1][2] * src[2][0] + src[0][2] * src[1][0] * src[2][1] + - src[2][0] * src[1][1] * src[0][2] - src[1][0] * src[0][1] * src[2][2] - src[0][0] * src[2][1] * src[1][2]; + + if (det == 0.0f) { return 0; } - det = 1 / det; - m[0][0] = (det * +((src[1][1] * src[2][2]) - (src[2][1] * src[1][2]))); - m[0][1] = (det * -((src[0][1] * src[2][2]) - (src[2][1] * src[0][2]))); - m[0][2] = (det * +((src[0][1] * src[1][2]) - (src[1][1] * src[0][2]))); - m[1][0] = (det * -((src[1][0] * src[2][2]) - (src[2][0] * src[1][2]))); - m[1][1] = (det * +((src[0][0] * src[2][2]) - (src[2][0] * src[0][2]))); - m[1][2] = (det * -((src[0][0] * src[1][2]) - (src[1][0] * src[0][2]))); + det = 1.0f / det; - m[2][0] = (det * +((src[1][0] * src[2][1]) - (src[2][0] * src[1][1]))); - m[2][1] = (det * -((src[0][0] * src[2][1]) - (src[2][0] * src[0][1]))); - m[2][2] = (det * +((src[0][0] * src[1][1]) - (src[1][0] * src[0][1]))); + m[0][0] = (src[1][1] * src[2][2] - src[2][1] * src[1][2]) * det; + m[0][1] = -(src[0][1] * src[2][2] - src[2][1] * src[0][2]) * det; + m[0][2] = (src[0][1] * src[1][2] - src[1][1] * src[0][2]) * det; - m[0][3] = ((-m[0][0] * src[0][3]) - (m[0][1] * src[1][3])) - (m[0][2] * src[2][3]); - m[1][3] = ((-m[1][0] * src[0][3]) - (m[1][1] * src[1][3])) - (m[1][2] * src[2][3]); - m[2][3] = ((-m[2][0] * src[0][3]) - (m[2][1] * src[1][3])) - (m[2][2] * src[2][3]); + m[1][0] = -(src[1][0] * src[2][2] - src[2][0] * src[1][2]) * det; + m[1][1] = (src[0][0] * src[2][2] - src[2][0] * src[0][2]) * det; + m[1][2] = -(src[0][0] * src[1][2] - src[1][0] * src[0][2]) * det; + + m[2][0] = (src[1][0] * src[2][1] - src[2][0] * src[1][1]) * det; + m[2][1] = -(src[0][0] * src[2][1] - src[2][0] * src[0][1]) * det; + m[2][2] = (src[0][0] * src[1][1] - src[1][0] * src[0][1]) * det; + + m[0][3] = -m[0][0] * src[0][3] - m[0][1] * src[1][3] - m[0][2] * src[2][3]; + m[1][3] = -m[1][0] * src[0][3] - m[1][1] * src[1][3] - m[1][2] * src[2][3]; + m[2][3] = -m[2][0] * src[0][3] - m[2][1] * src[1][3] - m[2][2] * src[2][3]; if (m == mTmp) { C_MTXCopy(mTmp, inv); } + return 1; } @@ -537,48 +531,48 @@ _regular: } #endif -u32 C_MTXInvXpose(const Mtx src, Mtx invX) { +u32 C_MTXInvXpose(const Mtx src, Mtx invX) +{ Mtx mTmp; MtxPtr m; f32 det; - ASSERTMSGLINE(1185, src, "MTXInvXpose(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(1186, invX, "MTXInvXpose(): NULL MtxPtr 'invX' "); - if (src == invX) { m = mTmp; - } else { + } + else { m = invX; } - det = ((((src[2][1] * (src[0][2] * src[1][0])) - + ((src[2][2] * (src[0][0] * src[1][1])) - + (src[2][0] * (src[0][1] * src[1][2])))) - - (src[0][2] * (src[2][0] * src[1][1]))) - - (src[2][2] * (src[1][0] * src[0][1]))) - - (src[1][2] * (src[0][0] * src[2][1])); - if (0 == det) { + + det = src[0][0] * src[1][1] * src[2][2] + src[0][1] * src[1][2] * src[2][0] + src[0][2] * src[1][0] * src[2][1] + - src[2][0] * src[1][1] * src[0][2] - src[1][0] * src[0][1] * src[2][2] - src[0][0] * src[2][1] * src[1][2]; + + if (det == 0.0f) { return 0; } - det = 1 / det; - m[0][0] = (det * +((src[1][1] * src[2][2]) - (src[2][1] * src[1][2]))); - m[0][1] = (det * -((src[1][0] * src[2][2]) - (src[2][0] * src[1][2]))); - m[0][2] = (det * +((src[1][0] * src[2][1]) - (src[2][0] * src[1][1]))); - m[1][0] = (det * -((src[0][1] * src[2][2]) - (src[2][1] * src[0][2]))); - m[1][1] = (det * +((src[0][0] * src[2][2]) - (src[2][0] * src[0][2]))); - m[1][2] = (det * -((src[0][0] * src[2][1]) - (src[2][0] * src[0][1]))); + det = 1.0f / det; - m[2][0] = (det * +((src[0][1] * src[1][2]) - (src[1][1] * src[0][2]))); - m[2][1] = (det * -((src[0][0] * src[1][2]) - (src[1][0] * src[0][2]))); - m[2][2] = (det * +((src[0][0] * src[1][1]) - (src[1][0] * src[0][1]))); + m[0][0] = (src[1][1] * src[2][2] - src[2][1] * src[1][2]) * det; + m[0][1] = -(src[1][0] * src[2][2] - src[2][0] * src[1][2]) * det; + m[0][2] = (src[1][0] * src[2][1] - src[2][0] * src[1][1]) * det; - m[0][3] = 0; - m[1][3] = 0; - m[2][3] = 0; + m[1][0] = -(src[0][1] * src[2][2] - src[2][1] * src[0][2]) * det; + m[1][1] = (src[0][0] * src[2][2] - src[2][0] * src[0][2]) * det; + m[1][2] = -(src[0][0] * src[2][1] - src[2][0] * src[0][1]) * det; + + m[2][0] = (src[0][1] * src[1][2] - src[1][1] * src[0][2]) * det; + m[2][1] = -(src[0][0] * src[1][2] - src[1][0] * src[0][2]) * det; + m[2][2] = (src[0][0] * src[1][1] - src[1][0] * src[0][1]) * det; + + m[0][3] = 0.0F; + m[1][3] = 0.0F; + m[2][3] = 0.0F; if (m == mTmp) { C_MTXCopy(mTmp, invX); } + return 1; } @@ -644,11 +638,10 @@ _regular: } #endif -void C_MTXRotRad(Mtx m, char axis, f32 rad) { - f32 sinA; - f32 cosA; +void C_MTXRotRad(Mtx m, char axis, f32 rad) +{ - ASSERTMSGLINE(1447, m, "MTXRotRad(): NULL MtxPtr 'm' "); + f32 sinA, cosA; sinA = sinf(rad); cosA = cosf(rad); C_MTXRotTrig(m, axis, sinA, cosA); @@ -666,57 +659,60 @@ void PSMTXRotRad(Mtx m, char axis, f32 rad) } #endif -void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA) { - ASSERTMSGLINE(1502, m, "MTXRotTrig(): NULL MtxPtr 'm' "); - switch(axis) { - case 'x': - case 'X': - m[0][0] = 1; - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = 0; - m[1][0] = 0; - m[1][1] = cosA; - m[1][2] = -sinA; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = sinA; - m[2][2] = cosA; - m[2][3] = 0; - break; - case 'y': - case 'Y': - m[0][0] = cosA; - m[0][1] = 0; - m[0][2] = sinA; - m[0][3] = 0; - m[1][0] = 0; - m[1][1] = 1; - m[1][2] = 0; - m[1][3] = 0; - m[2][0] = -sinA; - m[2][1] = 0; - m[2][2] = cosA; - m[2][3] = 0; - break; - case 'z': - case 'Z': - m[0][0] = cosA; - m[0][1] = -sinA; - m[0][2] = 0; - m[0][3] = 0; - m[1][0] = sinA; - m[1][1] = cosA; - m[1][2] = 0; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = 1; - m[2][3] = 0; - break; - default: - ASSERTMSGLINE(1529, FALSE, "MTXRotTrig(): invalid 'axis' value "); - break; +void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA) +{ + switch (axis) { + + case 'x': + case 'X': + m[0][0] = 1.0f; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cosA; + m[1][2] = -sinA; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = sinA; + m[2][2] = cosA; + m[2][3] = 0.0f; + break; + + case 'y': + case 'Y': + m[0][0] = cosA; + m[0][1] = 0.0f; + m[0][2] = sinA; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = 1.0f; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = -sinA; + m[2][1] = 0.0f; + m[2][2] = cosA; + m[2][3] = 0.0f; + break; + + case 'z': + case 'Z': + m[0][0] = cosA; + m[0][1] = -sinA; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = sinA; + m[1][1] = cosA; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 1.0f; + m[2][3] = 0.0f; + break; + + default: + break; } } @@ -784,43 +780,42 @@ _end: #endif -void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad) { +void C_MTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) +{ Vec vN; - f32 s; - f32 c; + f32 s, c; f32 t; - f32 x; - f32 y; - f32 z; - f32 xSq; - f32 ySq; - f32 zSq; - - ASSERTMSGLINE(1677, m, "MTXRotAxisRad(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(1678, axis, "MTXRotAxisRad(): NULL VecPtr 'axis' "); + f32 x, y, z; + f32 xSq, ySq, zSq; s = sinf(rad); c = cosf(rad); - t = 1 - c; + t = 1.0f - c; + C_VECNormalize(axis, &vN); + x = vN.x; y = vN.y; z = vN.z; - xSq = (x * x); - ySq = (y * y); - zSq = (z * z); - m[0][0] = (c + (t * xSq)); - m[0][1] = (y * (t * x)) - (s * z); - m[0][2] = (z * (t * x)) + (s * y); - m[0][3] = 0; - m[1][0] = ((y * (t * x)) + (s * z)); - m[1][1] = (c + (t * ySq)); - m[1][2] = ((z * (t * y)) - (s * x)); - m[1][3] = 0; - m[2][0] = ((z * (t * x)) - (s * y)); - m[2][1] = ((z * (t * y)) + (s * x)); - m[2][2] = (c + (t * zSq)); - m[2][3] = 0; + + xSq = x * x; + ySq = y * y; + zSq = z * z; + + m[0][0] = (t * xSq) + (c); + m[0][1] = (t * x * y) - (s * z); + m[0][2] = (t * x * z) + (s * y); + m[0][3] = 0.0f; + + m[1][0] = (t * x * y) + (s * z); + m[1][1] = (t * ySq) + (c); + m[1][2] = (t * y * z) - (s * x); + m[1][3] = 0.0f; + + m[2][0] = (t * x * z) - (s * y); + m[2][1] = (t * y * z) + (s * x); + m[2][2] = (t * zSq) + (c); + m[2][3] = 0.0f; } #ifdef GEKKO @@ -880,19 +875,19 @@ void PSMTXRotAxisRad(register Mtx m, const Vec *axis, register f32 rad) #endif -void C_MTXTrans(Mtx m, f32 xT, f32 yT, f32 zT) { - ASSERTMSGLINE(1866, m, "MTXTrans(): NULL MtxPtr 'm' "); - m[0][0] = 1; - m[0][1] = 0; - m[0][2] = 0; +void C_MTXTrans(Mtx m, f32 xT, f32 yT, f32 zT) +{ + m[0][0] = 1.0f; + m[0][1] = 0.0f; + m[0][2] = 0.0f; m[0][3] = xT; - m[1][0] = 0; - m[1][1] = 1; - m[1][2] = 0; + m[1][0] = 0.0f; + m[1][1] = 1.0f; + m[1][2] = 0.0f; m[1][3] = yT; - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = 1; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 1.0f; m[2][3] = zT; } @@ -919,10 +914,8 @@ void PSMTXTrans(register Mtx m, register f32 xT, register f32 yT, register f32 z } #endif -void C_MTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT) { - ASSERTMSGLINE(1933, src, "MTXTransApply(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(1934, dst, "MTXTransApply(): NULL MtxPtr 'src' "); //! wrong assert string - +void C_MTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT) +{ if (src != dst) { dst[0][0] = src[0][0]; dst[0][1] = src[0][1]; @@ -935,9 +928,9 @@ void C_MTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT) { dst[2][2] = src[2][2]; } - dst[0][3] = (src[0][3] + xT); - dst[1][3] = (src[1][3] + yT); - dst[2][3] = (src[2][3] + zT); + dst[0][3] = src[0][3] + xT; + dst[1][3] = src[1][3] + yT; + dst[2][3] = src[2][3] + zT; } #ifdef GEKKO @@ -968,20 +961,20 @@ asm void PSMTXTransApply(const register Mtx src, register Mtx dst, register f32 } #endif -void C_MTXScale(Mtx m, f32 xS, f32 yS, f32 zS) { - ASSERTMSGLINE(2008, m, "MTXScale(): NULL MtxPtr 'm' "); +void C_MTXScale(Mtx m, f32 xS, f32 yS, f32 zS) +{ m[0][0] = xS; - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = 0; - m[1][0] = 0; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; m[1][1] = yS; - m[1][2] = 0; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; m[2][2] = zS; - m[2][3] = 0; + m[2][3] = 0.0f; } #ifdef GEKKO @@ -1004,21 +997,22 @@ void PSMTXScale(register Mtx m, register f32 xS, register f32 yS, register f32 z } #endif -void C_MTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS) { - ASSERTMSGLINE(2070, src, "MTXScaleApply(): NULL MtxPtr 'src' "); - ASSERTMSGLINE(2071, dst, "MTXScaleApply(): NULL MtxPtr 'dst' "); - dst[0][0] = (src[0][0] * xS); - dst[0][1] = (src[0][1] * xS); - dst[0][2] = (src[0][2] * xS); - dst[0][3] = (src[0][3] * xS); - dst[1][0] = (src[1][0] * yS); - dst[1][1] = (src[1][1] * yS); - dst[1][2] = (src[1][2] * yS); - dst[1][3] = (src[1][3] * yS); - dst[2][0] = (src[2][0] * zS); - dst[2][1] = (src[2][1] * zS); - dst[2][2] = (src[2][2] * zS); - dst[2][3] = (src[2][3] * zS); +void C_MTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS) +{ + dst[0][0] = src[0][0] * xS; + dst[0][1] = src[0][1] * xS; + dst[0][2] = src[0][2] * xS; + dst[0][3] = src[0][3] * xS; + + dst[1][0] = src[1][0] * yS; + dst[1][1] = src[1][1] * yS; + dst[1][2] = src[1][2] * yS; + dst[1][3] = src[1][3] * yS; + + dst[2][0] = src[2][0] * zS; + dst[2][1] = src[2][1] * zS; + dst[2][2] = src[2][2] * zS; + dst[2][3] = src[2][3] * zS; } #ifdef GEKKO @@ -1052,25 +1046,12 @@ asm void PSMTXScaleApply(const register Mtx src, register Mtx dst, register f32 } #endif -void C_MTXQuat(Mtx m, const Quaternion* q) { - f32 s; - f32 xs; - f32 ys; - f32 zs; - f32 wx; - f32 wy; - f32 wz; - f32 xx; - f32 xy; - f32 xz; - f32 yy; - f32 yz; - f32 zz; +void C_MTXQuat(Mtx m, const Quaternion *q) +{ + + f32 s, xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz; + s = 2.0f / ((q->x * q->x) + (q->y * q->y) + (q->z * q->z) + (q->w * q->w)); - ASSERTMSGLINE(2145, m, "MTXQuat(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(2146, q, "MTXQuat(): NULL QuaternionPtr 'q' "); - ASSERTMSGLINE(2147, q->x || q->y || q->z || q->w, "MTXQuat(): zero-value quaternion "); - s = 2 / ((q->w * q->w) + ((q->z * q->z) + ((q->x * q->x) + (q->y * q->y)))); xs = q->x * s; ys = q->y * s; zs = q->z * s; @@ -1083,18 +1064,21 @@ void C_MTXQuat(Mtx m, const Quaternion* q) { yy = q->y * ys; yz = q->y * zs; zz = q->z * zs; - m[0][0] = (1 - (yy + zz)); - m[0][1] = (xy - wz); - m[0][2] = (xz + wy); - m[0][3] = 0; - m[1][0] = (xy + wz); - m[1][1] = (1 - (xx + zz)); - m[1][2] = (yz - wx); - m[1][3] = 0; - m[2][0] = (xz - wy); - m[2][1] = (yz + wx); - m[2][2] = (1 - (xx + yy)); - m[2][3] = 0; + + m[0][0] = 1.0f - (yy + zz); + m[0][1] = xy - wz; + m[0][2] = xz + wy; + m[0][3] = 0.0f; + + m[1][0] = xy + wz; + m[1][1] = 1.0f - (xx + zz); + m[1][2] = yz - wx; + m[1][3] = 0.0f; + + m[2][0] = xz - wy; + m[2][1] = yz + wx; + m[2][2] = 1.0f - (xx + yy); + m[2][3] = 0.0f; } #ifdef GEKKO @@ -1152,28 +1136,29 @@ void PSMTXQuat(register Mtx m, const register Quaternion *q) } #endif -void C_MTXReflect(Mtx m, const Vec* p, const Vec* n) { - f32 vxy; - f32 vxz; - f32 vyz; - f32 pdotn; +void C_MTXReflect(Mtx m, const Vec *p, const Vec *n) +{ + f32 vxy, vxz, vyz, pdotn; - vxy = -2 * n->x * n->y; - vxz = -2 * n->x * n->z; - vyz = -2 * n->y * n->z; - pdotn = 2 * C_VECDotProduct(p, n); - m[0][0] = (1 - (2 * n->x * n->x)); + vxy = -2.0f * n->x * n->y; + vxz = -2.0f * n->x * n->z; + vyz = -2.0f * n->y * n->z; + pdotn = 2.0f * C_VECDotProduct(p, n); + + m[0][0] = 1.0f - 2.0f * n->x * n->x; m[0][1] = vxy; m[0][2] = vxz; - m[0][3] = (pdotn * n->x); + m[0][3] = pdotn * n->x; + m[1][0] = vxy; - m[1][1] = (1 - (2 * n->y * n->y)); + m[1][1] = 1.0f - 2.0f * n->y * n->y; m[1][2] = vyz; - m[1][3] = (pdotn * n->y); + m[1][3] = pdotn * n->y; + m[2][0] = vxz; m[2][1] = vyz; - m[2][2] = (1 - (2 * n->z * n->z)); - m[2][3] = (pdotn * n->z); + m[2][2] = 1.0f - 2.0f * n->z * n->z; + m[2][3] = pdotn * n->z; } #ifdef GEKKO @@ -1217,15 +1202,9 @@ void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n) } #endif -void C_MTXLookAt(Mtx m, const Point3d* camPos, const Vec* camUp, const Point3d* target) { - Vec vLook; - Vec vRight; - Vec vUp; - - ASSERTMSGLINE(2438, m, "MTXLookAt(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(2439, camPos, "MTXLookAt(): NULL VecPtr 'camPos' "); - ASSERTMSGLINE(2440, camUp, "MTXLookAt(): NULL VecPtr 'camUp' "); - ASSERTMSGLINE(2441, target, "MTXLookAt(): NULL Point3dPtr 'target' "); +void C_MTXLookAt(Mtx m, const Vec *camPos, const Vec *camUp, const Vec *target) +{ + Vec vLook, vRight, vUp; vLook.x = camPos->x - target->x; vLook.y = camPos->y - target->y; @@ -1234,163 +1213,88 @@ void C_MTXLookAt(Mtx m, const Point3d* camPos, const Vec* camUp, const Point3d* VECCrossProduct(camUp, &vLook, &vRight); VECNormalize(&vRight, &vRight); VECCrossProduct(&vLook, &vRight, &vUp); + m[0][0] = vRight.x; m[0][1] = vRight.y; m[0][2] = vRight.z; - m[0][3] = -((camPos->z * vRight.z) + ((camPos->x * vRight.x) + (camPos->y * vRight.y))); + m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); + m[1][0] = vUp.x; m[1][1] = vUp.y; m[1][2] = vUp.z; - m[1][3] = -((camPos->z * vUp.z) + ((camPos->x * vUp.x) + (camPos->y * vUp.y))); + m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); + m[2][0] = vLook.x; m[2][1] = vLook.y; m[2][2] = vLook.z; - m[2][3] = -((camPos->z * vLook.z) + ((camPos->x * vLook.x) + (camPos->y * vLook.y))); + m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); } -void C_MTXLightFrustum(Mtx m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 scaleS, f32 scaleT, f32 transS, f32 transT) { +void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float scaleS, float scaleT, float transS, float transT) +{ f32 tmp; - ASSERTMSGLINE(2541, m, "MTXLightFrustum(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(2542, (t != b), "MTXLightFrustum(): 't' and 'b' clipping planes are equal "); - ASSERTMSGLINE(2543, (l != r), "MTXLightFrustum(): 'l' and 'r' clipping planes are equal "); + tmp = 1.0f / (r - l); + m[0][0] = ((2 * n) * tmp) * scaleS; + m[0][1] = 0.0f; + m[0][2] = (((r + l) * tmp) * scaleS) - transS; + m[0][3] = 0.0f; - tmp = 1 / (r - l); - m[0][0] = (scaleS * (2 * n * tmp)); - m[0][1] = 0; - m[0][2] = (scaleS * (tmp * (r + l))) - transS; - m[0][3] = 0; - tmp = 1 / (t - b); - m[1][0] = 0; - m[1][1] = (scaleT * (2 * n * tmp)); - m[1][2] = (scaleT * (tmp * (t + b))) - transT; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = -1; - m[2][3] = 0; + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = ((2 * n) * tmp) * scaleT; + m[1][2] = (((t + b) * tmp) * scaleT) - transT; + m[1][3] = 0.0f; + + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = -1.0f; + m[2][3] = 0.0f; } -void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, f32 scaleS, f32 scaleT, f32 transS, f32 transT) { +void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, float scaleS, float scaleT, float transS, float transT) +{ f32 angle; f32 cot; - ASSERTMSGLINE(2605, m, "MTXLightPerspective(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(2606, (fovY > 0.0) && (fovY < 180.0), "MTXLightPerspective(): 'fovY' out of range "); - ASSERTMSGLINE(2607, 0 != aspect, "MTXLightPerspective(): 'aspect' is 0 "); - - angle = (0.5f * fovY); + angle = fovY * 0.5f; angle = MTXDegToRad(angle); - cot = 1 / tanf(angle); - m[0][0] = (scaleS * (cot / aspect)); - m[0][1] = 0; + + cot = 1.0f / tanf(angle); + + m[0][0] = (cot / aspect) * scaleS; + m[0][1] = 0.0f; m[0][2] = -transS; - m[0][3] = 0; - m[1][0] = 0; - m[1][1] = (cot * scaleT); + m[0][3] = 0.0f; + + m[1][0] = 0.0f; + m[1][1] = cot * scaleT; m[1][2] = -transT; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = -1; - m[2][3] = 0; + m[1][3] = 0.0f; + + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = -1.0f; + m[2][3] = 0.0f; } -void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, f32 scaleS, f32 scaleT, f32 transS, f32 transT) { +void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, float scaleS, float scaleT, float transS, float transT) +{ f32 tmp; + tmp = 1.0f / (r - l); + m[0][0] = (2.0f * tmp * scaleS); + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = ((-(r + l) * tmp) * scaleS) + transS; - ASSERTMSGLINE(2673, m, "MTXLightOrtho(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(2674, (t != b), "MTXLightOrtho(): 't' and 'b' clipping planes are equal "); - ASSERTMSGLINE(2675, (l != r), "MTXLightOrtho(): 'l' and 'r' clipping planes are equal "); - tmp = 1 / (r - l); - m[0][0] = (2 * tmp * scaleS); - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = (transS + (scaleS * (tmp * -(r + l)))); - tmp = 1/ (t - b); - m[1][0] = 0; - m[1][1] = (2 * tmp * scaleT); - m[1][2] = 0; - m[1][3] = (transT + (scaleT * (tmp * -(t + b)))); - m[2][0] = 0; - m[2][1] = 0; - m[2][2] = 0; - m[2][3] = 1; + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = (2.0f * tmp) * scaleT; + m[1][2] = 0.0f; + m[1][3] = ((-(t + b) * tmp) * scaleT) + transT; + + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 0.0f; + m[2][3] = 1.0f; } - -#ifdef TARGET_PC -void C_MTXReorder(const Mtx src, ROMtx dest) -{ - u32 i, j; - for (i = 0; i < 3; i++) { - for (j = 0; j < 4; j++) { - dest[j][i] = src[i][j]; - } - } -} - -void C_MTXMultVec(const Mtx m, const Vec* src, Vec* dst) { - Vec vTmp; - - ASSERTMSGLINE(66, m, "MTXMultVec(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(67, src, "MTXMultVec(): NULL VecPtr 'src' "); - ASSERTMSGLINE(68, dst, "MTXMultVec(): NULL VecPtr 'dst' "); - - vTmp.x = m[0][3] + ((m[0][2] * src->z) + ((m[0][0] * src->x) + (m[0][1] * src->y))); - vTmp.y = m[1][3] + ((m[1][2] * src->z) + ((m[1][0] * src->x) + (m[1][1] * src->y))); - vTmp.z = m[2][3] + ((m[2][2] * src->z) + ((m[2][0] * src->x) + (m[2][1] * src->y))); - dst->x = vTmp.x; - dst->y = vTmp.y; - dst->z = vTmp.z; -} - -void C_MTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count) { - u32 i; - Vec vTmp; - - ASSERTMSGLINE(168, m, "MTXMultVecArray(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(169, srcBase, "MTXMultVecArray(): NULL VecPtr 'srcBase' "); - ASSERTMSGLINE(170, dstBase, "MTXMultVecArray(): NULL VecPtr 'dstBase' "); - ASSERTMSGLINE(171, count > 1, "MTXMultVecArray(): count must be greater than 1."); - - for(i = 0; i < count; i++) { - vTmp.x = m[0][3] + ((m[0][2] * srcBase->z) + ((m[0][0] * srcBase->x) + (m[0][1] * srcBase->y))); - vTmp.y = m[1][3] + ((m[1][2] * srcBase->z) + ((m[1][0] * srcBase->x) + (m[1][1] * srcBase->y))); - vTmp.z = m[2][3] + ((m[2][2] * srcBase->z) + ((m[2][0] * srcBase->x) + (m[2][1] * srcBase->y))); - dstBase->x = vTmp.x; - dstBase->y = vTmp.y; - dstBase->z = vTmp.z; - srcBase++; - dstBase++; - } -} - -void C_MTXROMultVecArray(const ROMtx m, const Vec *srcBase, Vec *dstBase, u32 count) -{ - for (u32 i = 0; i < count; ++i) { - Vec* src = &srcBase[i]; - Vec* dst = &dstBase[i]; - - // Perform matrix-vector multiplication: ROMtx * Vec -> Vec - dst->x = m[0][0] * src->x + m[0][1] * src->y + m[0][2] * src->z; - dst->y = m[1][0] * src->x + m[1][1] * src->y + m[1][2] * src->z; - dst->z = m[2][0] * src->x + m[2][1] * src->y + m[2][2] * src->z; - } -} - -void C_MTXMultVecSR(const Mtx m, const Vec* src, Vec* dst) { - Vec vTmp; - - ASSERTMSGLINE(313, m, "MTXMultVecSR(): NULL MtxPtr 'm' "); - ASSERTMSGLINE(314, src, "MTXMultVecSR(): NULL VecPtr 'src' "); - ASSERTMSGLINE(315, dst, "MTXMultVecSR(): NULL VecPtr 'dst' "); - - vTmp.x = (m[0][2] * src->z) + ((m[0][0] * src->x) + (m[0][1] * src->y)); - vTmp.y = (m[1][2] * src->z) + ((m[1][0] * src->x) + (m[1][1] * src->y)); - vTmp.z = (m[2][2] * src->z) + ((m[2][0] * src->x) + (m[2][1] * src->y)); - dst->x = vTmp.x; - dst->y = vTmp.y; - dst->z = vTmp.z; -} - -#endif diff --git a/src/dolphin/mtx/mtx44.c b/src/dolphin/mtx/mtx44.c index 39ddff22..a6c2faa9 100644 --- a/src/dolphin/mtx/mtx44.c +++ b/src/dolphin/mtx/mtx44.c @@ -1,98 +1,82 @@ #include "dolphin/mtx.h" -#include "dolphin/gx/GXPriv.h" #include "math.h" -void C_MTXFrustum(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) { - f32 tmp; - - ASSERTMSGLINE(105, m, "MTXFrustum(): NULL Mtx44Ptr 'm' "); - ASSERTMSGLINE(106, t != b, "MTXFrustum(): 't' and 'b' clipping planes are equal "); - ASSERTMSGLINE(107, l != r, "MTXFrustum(): 'l' and 'r' clipping planes are equal "); - ASSERTMSGLINE(108, n != f, "MTXFrustum(): 'n' and 'f' clipping planes are equal "); - tmp = 1 / (r - l); - m[0][0] = (2 * n * tmp); - m[0][1] = 0; - m[0][2] = (tmp * (r + l)); - m[0][3] = 0; - tmp = 1 / (t - b); - m[1][0] = 0; - m[1][1] = (2 * n * tmp); - m[1][2] = (tmp * (t + b)); - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - tmp = 1 / (f - n); - m[2][2] = (-n * tmp); - m[2][3] = (tmp * -(f * n)); - m[3][0] = 0; - m[3][1] = 0; - m[3][2] = -1; - m[3][3] = 0; +void C_MTXFrustum(Mtx44 m, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) +{ + f32 tmp = 1.0f / (arg4 - arg3); + m[0][0] = (2 * arg5) * tmp; + m[0][1] = 0.0f; + m[0][2] = (arg4 + arg3) * tmp; + m[0][3] = 0.0f; + tmp = 1.0f / (arg1 - arg2); + m[1][0] = 0.0f; + m[1][1] = (2 * arg5) * tmp; + m[1][2] = (arg1 + arg2) * tmp; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (arg6 - arg5); + m[2][2] = -(arg5)*tmp; + m[2][3] = -(arg6 * arg5) * tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = -1.0f; + m[3][3] = 0.0f; } -void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f) { - f32 angle; +// Functions match but has issues with float constants +void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f) +{ + f32 angle = fovY * 0.5f; f32 cot; f32 tmp; - - ASSERTMSGLINE(179, m, "MTXPerspective(): NULL Mtx44Ptr 'm' "); - ASSERTMSGLINE(180, (fovY > 0.0) && (fovY < 180.0), "MTXPerspective(): 'fovY' out of range "); - ASSERTMSGLINE(181, 0.0f != aspect, "MTXPerspective(): 'aspect' is 0 "); - - angle = (0.5f * fovY); angle = MTXDegToRad(angle); - cot = 1 / tanf(angle); - m[0][0] = (cot / aspect); - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = 0; - m[1][0] = 0; - m[1][1] = (cot); - m[1][2] = 0; - m[1][3] = 0; - m[2][0] = 0; - m[2][1] = 0; - tmp = 1 / (f - n); - m[2][2] = (-n * tmp); - m[2][3] = (tmp * -(f * n)); - m[3][0] = 0; - m[3][1] = 0; - m[3][2] = -1; - m[3][3] = 0; + cot = 1.0f / tanf(angle); + m[0][0] = cot / aspect; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cot; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (f - n); + m[2][2] = -(n)*tmp; + m[2][3] = -(f * n) * tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = -1.0f; + m[3][3] = 0.0f; } -void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) { - f32 tmp; - - ASSERTMSGLINE(254, m, "MTXOrtho(): NULL Mtx44Ptr 'm' "); - ASSERTMSGLINE(255, t != b, "MTXOrtho(): 't' and 'b' clipping planes are equal "); - ASSERTMSGLINE(256, l != r, "MTXOrtho(): 'l' and 'r' clipping planes are equal "); - ASSERTMSGLINE(257, n != f, "MTXOrtho(): 'n' and 'f' clipping planes are equal "); - tmp = 1 / (r - l); - m[0][0] = 2 * tmp; - m[0][1] = 0; - m[0][2] = 0; - m[0][3] = (tmp * -(r + l)); - tmp = 1 / (t - b); - m[1][0] = 0; - m[1][1] = 2 * tmp; - m[1][2] = 0; - m[1][3] = (tmp * -(t + b)); - m[2][0] = 0; - m[2][1] = 0; - tmp = 1 / (f - n); - m[2][2] = (-1 * tmp); - m[2][3] = (-f * tmp); - m[3][0] = 0; - m[3][1] = 0; - m[3][2] = 0; - m[3][3] = 1; +void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) +{ + f32 tmp = 1.0f / (r - l); + m[0][0] = 2.0f * tmp; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = -(r + l) * tmp; + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = 2.0f * tmp; + m[1][2] = 0.0f; + m[1][3] = -(t + b) * tmp; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (f - n); + m[2][2] = -(1.0f) * tmp; + m[2][3] = -(f)*tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = 0.0f; + m[3][3] = 1.0f; } -#ifdef GEKKO asm void PSMTX44Copy(register Mtx44 src, register Mtx44 dest) { -// clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc; psq_l fp1, 0(src), 0, 0; psq_st fp1, 0(dest), 0, 0; @@ -111,6 +95,5 @@ asm void PSMTX44Copy(register Mtx44 src, register Mtx44 dest) psq_l fp1, 0x38(src), 0, 0; psq_st fp1, 0x38(dest), 0, 0; blr; -// clang-format on +#endif // clang-format on } -#endif diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c index 610b640a..f3e15a87 100644 --- a/src/dolphin/mtx/quat.c +++ b/src/dolphin/mtx/quat.c @@ -14,7 +14,6 @@ void C_QUATAdd(const Quaternion *p, const Quaternion *q, Qtrn *r) r->w = p->w + q->w; } -#ifdef GEKKO void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r) { asm { @@ -28,19 +27,7 @@ void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, regis psq_st f0, 0x8(r5), 0, 0 } } -#endif -#ifdef TARGET_PC -void C_QUATMultiply(const Quaternion *a, const Quaternion *b, Quaternion *ab) -{ - ab->x = a->w * b->x + a->x * b->w + a->y * b->z - a->z * b->y; - ab->y = a->w * b->y - a->x * b->z + a->y * b->w + a->z * b->x; - ab->z = a->w * b->z + a->x * b->y - a->y * b->x + a->z * b->w; - ab->w = a->w * b->w - a->x * b->x - a->y * b->y - a->z * b->z; -} -#endif - -#ifdef GEKKO void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) { asm { @@ -68,26 +55,7 @@ void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, psq_st f5, 8(ab), 0, 0 } } -#endif -#ifdef TARGET_PC -void C_QUATNormalize(const Quaternion *src, Quaternion *unit) -{ - float len = sqrtf(src->x * src->x + src->y * src->y + src->z * src->z + src->w * src->w); - if (len > 0.0f) { - float inv_len = 1.0f / len; - unit->x = src->x * inv_len; - unit->y = src->y * inv_len; - unit->z = src->z * inv_len; - unit->w = src->w * inv_len; - } else { - unit->x = unit->y = unit->z = 0.0f; - unit->w = 1.0f; - } -} -#endif - -#ifdef GEKKO void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit) { // sdata2 @@ -127,27 +95,7 @@ void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit) } } } -#endif -#ifdef TARGET_PC -void C_QUATInverse(const Quaternion *src, Quaternion *inv) -{ - float len_squared = src->x * src->x + src->y * src->y + src->z * src->z + src->w * src->w; - - if (len_squared > 0.0f) { - float inv_len_squared = 1.0f / len_squared; - inv->x = -src->x * inv_len_squared; - inv->y = -src->y * inv_len_squared; - inv->z = -src->z * inv_len_squared; - inv->w = src->w * inv_len_squared; - } else { - inv->x = inv->y = inv->z = 0.0f; - inv->w = 1.0f; - } -} -#endif - -#ifdef GEKKO void PSQUATInverse(const register Quaternion *src, register Quaternion *inv) { register f32 vv1, vv2, vv3, vv4; @@ -178,7 +126,6 @@ void PSQUATInverse(const register Quaternion *src, register Quaternion *inv) psq_st vv3, 8(inv), 1, 0; } } -#endif void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) { @@ -186,7 +133,7 @@ void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) Vec dst; tmp = rad; - VECNormalize(axis, &dst); + PSVECNormalize(axis, &dst); tmp2 = tmp * 0.5f; tmp3 = sinf(tmp * 0.5f); diff --git a/src/dolphin/mtx/vec.c b/src/dolphin/mtx/vec.c index cd04e4be..de5ad450 100644 --- a/src/dolphin/mtx/vec.c +++ b/src/dolphin/mtx/vec.c @@ -1,5 +1,4 @@ #include "dolphin/mtx.h" -#include "dolphin/gx/GXPriv.h" #include "math.h" #define R_RET fp1 @@ -16,19 +15,9 @@ #define FP12 fp12 #define FP13 fp13 -void C_VECAdd(const Vec *a, const Vec *b, Vec *c) { - ASSERTMSGLINE(0x57, a, "VECAdd(): NULL VecPtr 'a' "); - ASSERTMSGLINE(0x58, b, "VECAdd(): NULL VecPtr 'b' "); - ASSERTMSGLINE(0x59, c, "VECAdd(): NULL VecPtr 'ab' "); - c->x = a->x + b->x; - c->y = a->y + b->y; - c->z = a->z + b->z; -} - -#ifdef GEKKO asm void PSVECAdd(const register Vec *vec1, const register Vec *vec2, register Vec *ret) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc; psq_l FP2, 0(vec1), 0, 0; psq_l FP4, 0(vec2), 0, 0; @@ -39,23 +28,12 @@ asm void PSVECAdd(const register Vec *vec1, const register Vec *vec2, register V ps_add FP7, FP3, FP5; psq_st FP7, 8(ret), 1, 0; blr - // clang-format on -} -#endif - -void C_VECSubtract(const Vec *a, const Vec *b, Vec *c) { - ASSERTMSGLINE(0x9C, a, "VECSubtract(): NULL VecPtr 'a' "); - ASSERTMSGLINE(0x9D, b, "VECSubtract(): NULL VecPtr 'b' "); - ASSERTMSGLINE(0x9E, c, "VECSubtract(): NULL VecPtr 'a_b' "); - c->x = a->x - b->x; - c->y = a->y - b->y; - c->z = a->z - b->z; +#endif // clang-format on } -#ifdef GEKKO asm void PSVECSubtract(const register Vec *vec1, const register Vec *vec2, register Vec *ret) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc; psq_l FP2, 0(vec1), 0, 0; psq_l FP4, 0(vec2), 0, 0; @@ -66,9 +44,22 @@ asm void PSVECSubtract(const register Vec *vec1, const register Vec *vec2, regis ps_sub FP7, FP3, FP5; psq_st FP7, 8(ret), 1, 0; blr - // clang-format on +#endif // clang-format on +} + +asm void PSVECScale(register const Vec *src, register Vec *dst, register f32 scale) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + psq_l f0, 0(src), 0, 0 + psq_l f2, 8(src), 1, 0 + ps_muls0 f0, f0, f1 + psq_st f0, 0(dst), 0, 0 + ps_muls0 f0, f2, f1 + psq_st f0, 8(dst), 1, 0 + blr +#endif // clang-format on } -#endif void C_VECScale(const Vec *src, Vec *dst, f32 scale) { @@ -80,39 +71,9 @@ void C_VECScale(const Vec *src, Vec *dst, f32 scale) dst->z = src->z * s; } -#ifdef GEKKO -asm void PSVECScale(register const Vec *src, register Vec *dst, register f32 scale) -{ -#// clang-format off - nofralloc - psq_l f0, 0(src), 0, 0 - psq_l f2, 8(src), 1, 0 - ps_muls0 f0, f0, f1 - psq_st f0, 0(dst), 0, 0 - ps_muls0 f0, f2, f1 - psq_st f0, 8(dst), 1, 0 - blr - // clang-format on -} -#endif - -void C_VECNormalize(const Vec *src, Vec *unit) { - f32 mag; - - ASSERTMSGLINE(0x127, src, "VECNormalize(): NULL VecPtr 'src' "); - ASSERTMSGLINE(0x128, unit, "VECNormalize(): NULL VecPtr 'unit' "); - mag = (src->z * src->z) + ((src->x * src->x) + (src->y * src->y)); - ASSERTMSGLINE(0x12D, 0.0f != mag, "VECNormalize(): zero magnitude vector "); - mag = 1.0f/ sqrtf(mag); - unit->x = src->x * mag; - unit->y = src->y * mag; - unit->z = src->z * mag; -} - -#ifdef GEKKO void PSVECNormalize(const register Vec *vec1, register Vec *ret) { - // clang-format off +#ifdef __MWERKS__ // clang-format off register f32 half = 0.5f; register f32 three = 3.0f; register f32 xx_zz, xx_yy; @@ -135,60 +96,43 @@ void PSVECNormalize(const register Vec *vec1, register Vec *ret) ps_muls0 FP3, FP3, ret_sqrt; psq_st FP3, 8(ret), 1, 0; } - // clang-format on -} -#endif - -f32 C_VECSquareMag(const Vec *v) { - f32 sqmag; - - ASSERTMSGLINE(0x182, v, "VECMag(): NULL VecPtr 'v' "); - - sqmag = v->z * v->z + ((v->x * v->x) + (v->y * v->y)); - return sqmag; +#endif // clang-format on } -#ifdef GEKKO asm f32 PSVECSquareMag(register const Vec *v) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc psq_l f0, 0(v), 0, 0 ps_mul f0, f0, f0 lfs f1, 8(v) ps_madd f1, f1, f1, f0 ps_sum0 f1, f1, f0, f0 - blr - // clang-format on -} -#endif - -f32 C_VECMag(const Vec *v) { - return sqrtf(C_VECSquareMag(v)); + blr +#endif // clang-format on } -#ifdef GEKKO f32 PSVECMag(const register Vec *v) { register f32 v_xy, v_zz, square_mag; register f32 ret_mag, n_0, n_1; register f32 three, half, zero; - // clang-format off +#ifdef __MWERKS__ // clang-format off asm { psq_l v_xy, 0(v), 0, 0 ps_mul v_xy, v_xy, v_xy lfs v_zz, 8(v) ps_madd square_mag, v_zz, v_zz, v_xy } - // clang-format on +#endif // clang-format on half = 0.5f; - // clang-format off +#ifdef __MWERKS__ // clang-format off asm { ps_sum0 square_mag, square_mag, v_xy, v_xy frsqrte ret_mag, square_mag } - // clang-format on +#endif // clang-format on three = 3.0f; - // clang-format off +#ifdef __MWERKS__ // clang-format off asm { fmuls n_0, ret_mag, ret_mag fmuls n_1, ret_mag, half @@ -197,24 +141,13 @@ asm { fsel ret_mag, ret_mag, ret_mag, square_mag fmuls square_mag, square_mag, ret_mag } - // clang-format on +#endif // clang-format on return square_mag; } -#endif -f32 C_VECDotProduct(const Vec *a, const Vec *b) { - f32 dot; - - ASSERTMSGLINE(0x1D1, a, "VECDotProduct(): NULL VecPtr 'a' "); - ASSERTMSGLINE(0x1D2, b, "VECDotProduct(): NULL VecPtr 'b' "); - dot = (a->z * b->z) + ((a->x * b->x) + (a->y * b->y)); - return dot; -} - -#ifdef GEKKO asm f32 PSVECDotProduct(const register Vec *vec1, const register Vec *vec2) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc; psq_l f2, 4(r3), 0, 0 /* qr0 */ psq_l f3, 4(r4), 0, 0 /* qr0 */ @@ -223,30 +156,13 @@ asm f32 PSVECDotProduct(const register Vec *vec1, const register Vec *vec2) psq_l f4, 0(r4), 0, 0 /* qr0 */ ps_madd f3, f5, f4, f2 ps_sum0 f1, f3, f2, f2 - blr - // clang-format on -} -#endif - -void C_VECCrossProduct(const Vec *a, const Vec *b, Vec *axb) { - Vec vTmp; - - ASSERTMSGLINE(0x20F, a, "VECCrossProduct(): NULL VecPtr 'a' "); - ASSERTMSGLINE(0x210, b, "VECCrossProduct(): NULL VecPtr 'b' "); - ASSERTMSGLINE(0x211, axb, "VECCrossProduct(): NULL VecPtr 'axb' "); - - vTmp.x = (a->y * b->z) - (a->z * b->y); - vTmp.y = (a->z * b->x) - (a->x * b->z); - vTmp.z = (a->x * b->y) - (a->y * b->x); - axb->x = vTmp.x; - axb->y = vTmp.y; - axb->z = vTmp.z; + blr +#endif // clang-format on } -#ifdef GEKKO asm void PSVECCrossProduct(register const Vec *a, register const Vec *b, register Vec *axb) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc psq_l f1, 0(b), 0, 0 lfs f2, 8(a) @@ -262,10 +178,9 @@ asm void PSVECCrossProduct(register const Vec *a, register const Vec *b, registe psq_st f9, 0(axb), 1, 0 ps_neg f10, f10 psq_st f10, 4(axb), 0, 0 - blr - // clang-format on + blr +#endif // clang-format on } -#endif void C_VECHalfAngle(const Vec *a, const Vec *b, Vec *half) { @@ -314,18 +229,8 @@ void C_VECReflect(const Vec *src, const Vec *normal, Vec *dst) VECNormalize(dst, dst); } -f32 C_VECSquareDistance(const Vec *a, const Vec *b) { - Vec diff; - - diff.x = a->x - b->x; - diff.y = a->y - b->y; - diff.z = a->z - b->z; - return (diff.z * diff.z) + ((diff.x * diff.x) + (diff.y * diff.y)); -} - -#ifdef GEKKO asm f32 PSVECSquareDistance(register const Vec *a, register const Vec *b) { - // clang-format off +#ifdef __MWERKS__ // clang-format off nofralloc psq_l f0, 4(a), 0, 0 psq_l f1, 4(b), 0, 0 @@ -336,16 +241,10 @@ asm f32 PSVECSquareDistance(register const Vec *a, register const Vec *b) { ps_sub f0, f0, f1 ps_madd f1, f0, f0, f2 ps_sum0 f1, f1, f2, f2 - blr - // clang-format on -} -#endif - -f32 C_VECDistance(const Vec *a, const Vec *b) { - return sqrtf(C_VECSquareDistance(a, b)); + blr +#endif // clang-format on } -#ifdef GEKKO f32 PSVECDistance(register const Vec *a, register const Vec *b) { @@ -353,7 +252,7 @@ f32 PSVECDistance(register const Vec *a, register const Vec *b) register f32 three_c; register f32 dist; - // clang-format off +#ifdef __MWERKS__ // clang-format off asm { psq_l f0, 4(a), 0, 0 /* qr0 */ psq_l f1, 4(b), 0, 0 /* qr0 */ @@ -384,6 +283,5 @@ f32 PSVECDistance(register const Vec *a, register const Vec *b) } return dist; - // clang-format on +#endif // clang-format on } -#endif diff --git a/src/dolphin/os/OS.c b/src/dolphin/os/OS.c index 72a66a95..69843d73 100644 --- a/src/dolphin/os/OS.c +++ b/src/dolphin/os/OS.c @@ -19,22 +19,14 @@ extern char _db_stack_end[]; extern char *__OSResetSWInterruptHandler[]; -#ifdef TARGET_PC -vu16 __OSDeviceCode; -#else vu16 __OSDeviceCode : (OS_BASE_CACHED | 0x30E6); -#endif static DVDDriveInfo DriveInfo ATTRIBUTE_ALIGN(32); static DVDCommandBlock DriveBlock; static OSBootInfo *BootInfo; static u32 *BI2DebugFlag; static u32 *BI2DebugFlagHolder; -#ifdef _MSC_VER -BOOL __OSIsGcam = FALSE; -#else __declspec(weak) BOOL __OSIsGcam = FALSE; -#endif static f64 ZeroF; static f32 ZeroPS[2]; static BOOL AreWeInitialized = FALSE; @@ -64,7 +56,6 @@ void OSDefaultExceptionHandler(__OSException exception, OSContext *context); extern BOOL __DBIsExceptionMarked(__OSException); static void OSExceptionInit(void); -#ifdef __MWERKS__ /* clang-format off */ asm void __OSFPRInit(void) { @@ -152,7 +143,6 @@ SkipPairedSingles: blr } /* clang-format on */ -#endif u32 OSGetConsoleType() { @@ -165,8 +155,8 @@ u32 OSGetConsoleType() void *__OSSavedRegionStart; void *__OSSavedRegionEnd; -extern u32 BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) -extern u32 BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) +extern u32 BOOT_REGION_START : 0x812FDFF0; //(*(u32 *)0x812fdff0) +extern u32 BOOT_REGION_END : 0x812FDFEC; //(*(u32 *)0x812fdfec) void ClearArena(void) { @@ -487,7 +477,6 @@ static void OSExceptionInit(void) DBPrintf("Exceptions initialized...\n"); } -#ifdef __MWERKS__ static asm void __OSDBIntegrator(void) { /* clang-format off */ @@ -516,7 +505,6 @@ entry __OSDBJUMPEND /* clang-format on */ } -#endif __OSExceptionHandler __OSSetExceptionHandler(__OSException exception, __OSExceptionHandler handler) { @@ -531,7 +519,6 @@ __OSExceptionHandler __OSGetExceptionHandler(__OSException exception) return OSExceptionTable[exception]; } -#ifdef __MWERKS__ static asm void OSExceptionVector(void) { /* clang-format off */ @@ -616,10 +603,8 @@ entry __OSEVEnd nop /* clang-format on */ } -#endif void __OSUnhandledException(__OSException exception, OSContext *context, u32 dsisr, u32 dar); -#ifdef __MWERKS__ asm void OSDefaultExceptionHandler(register __OSException exception, register OSContext *context) { /* clang-format off */ @@ -646,7 +631,6 @@ void __OSPSInit(void) } // clang-format on } -#endif #define DI_CONFIG_IDX 0x9 #define DI_CONFIG_CONFIG_MASK 0xFF diff --git a/src/dolphin/os/OSAlloc.c b/src/dolphin/os/OSAlloc.c index 86a7e015..32515afd 100644 --- a/src/dolphin/os/OSAlloc.c +++ b/src/dolphin/os/OSAlloc.c @@ -1,7 +1,6 @@ #include #include #include -#include #define ALIGNMENT 32 @@ -138,9 +137,6 @@ static long DLSize(struct Cell *list) void *OSAllocFromHeap(int heap, unsigned long size) { -#ifdef TARGET_PC - return malloc(size); -#endif struct HeapDesc *hd; struct Cell *cell; struct Cell *newCell; @@ -155,7 +151,7 @@ void *OSAllocFromHeap(int heap, unsigned long size) hd = &HeapArray[heap]; size += 0x20; - size = (size + 0x1F) & ~0x1F; + size = (size + 0x1F) & 0xFFFFFFE0; for (cell = hd->free; cell != NULL; cell = cell->next) { if ((signed)size <= (signed)cell->size) { @@ -167,6 +163,7 @@ void *OSAllocFromHeap(int heap, unsigned long size) return NULL; } ASSERTMSG1(0x168, !((s32)cell & 0x1F), "OSAllocFromHeap(): heap is broken."); + ASSERTMSG1(0x169, cell->hd == NULL, "OSAllocFromHeap(): heap is broken."); leftoverSize = cell->size - size; if (leftoverSize < 0x40U) { @@ -204,12 +201,12 @@ void *OSAllocFixed(void **rstart, void **rend) void *end; void *cellEnd; - start = (void *)((*(uintptr_t *)rstart) & ~((32) - 1)); - end = (void *)((*(uintptr_t *)rend + 0x1FU) & ~((32) - 1)); + start = (void *)((*(u32 *)rstart) & ~((32) - 1)); + end = (void *)((*(u32 *)rend + 0x1FU) & ~((32) - 1)); ASSERTMSG1(0x1B0, HeapArray, "OSAllocFixed(): heap is not initialized."); - ASSERTMSG1(0x1B1, (uintptr_t)start < (uintptr_t)end, "OSAllocFixed(): invalid range."); - ASSERTMSG1(0x1B3, ((uintptr_t)ArenaStart <= (uintptr_t)start) && ((uintptr_t)start <= (uintptr_t)ArenaEnd), "OSAllocFixed(): invalid range."); + ASSERTMSG1(0x1B1, (u32)start < (u32)end, "OSAllocFixed(): invalid range."); + ASSERTMSG1(0x1B3, ((u32)ArenaStart <= (u32)start) && ((u32)end <= (u32)ArenaEnd), "OSAllocFixed(): invalid range."); for (i = 0; i < NumHeaps; i++) { hd = &HeapArray[i]; @@ -246,7 +243,7 @@ void *OSAllocFixed(void **rstart, void **rend) ASSERTMSG(0x1F3, MINOBJSIZE <= (char *)cellEnd - (char *)end); newCell = (struct Cell *)end; - newCell->size = (uintptr_t)((char *)cellEnd - (char *)end); + newCell->size = (s32)((char *)cellEnd - (char *)end); newCell->next = cell->next; if (newCell->next) { newCell->next->prev = newCell; @@ -293,16 +290,13 @@ void *OSAllocFixed(void **rstart, void **rend) ASSERTMSG(0x225, OFFSET(start, ALIGNMENT) == 0); ASSERTMSG(0x226, OFFSET(end, ALIGNMENT) == 0); ASSERTMSG(0x227, start < end); - *(uintptr_t *)rstart = (uintptr_t)start; - *(uintptr_t *)rend = (uintptr_t)end; - return (void *)*(uintptr_t *)rstart; + *(u32 *)rstart = (u32)start; + *(u32 *)rend = (u32)end; + return (void *)*(u32 *)rstart; } void OSFreeToHeap(int heap, void *ptr) { -#ifdef TARGET_PC - free(ptr); -#else struct HeapDesc *hd; struct Cell *cell; @@ -312,10 +306,10 @@ void OSFreeToHeap(int heap, void *ptr) ASSERTMSG1(0x241, HeapArray[heap].size >= 0, "OSFreeToHeap(): invalid heap handle."); cell = (void *)((u32)ptr - 0x20); hd = &HeapArray[heap]; + ASSERTMSG1(0x246, cell->hd == hd, "OSFreeToHeap(): invalid pointer."); ASSERTMSG1(0x247, DLLookup(hd->allocated, cell), "OSFreeToHeap(): invalid pointer."); hd->allocated = DLExtract(hd->allocated, cell); hd->free = DLInsert(hd->free, cell); -#endif } int OSSetCurrentHeap(int heap) @@ -337,8 +331,8 @@ void *OSInitAlloc(void *arenaStart, void *arenaEnd, int maxHeaps) struct HeapDesc *hd; ASSERTMSG1(0x283, maxHeaps > 0, "OSInitAlloc(): invalid number of heaps."); - ASSERTMSG1(0x285, (uintptr_t)arenaStart < (uintptr_t)arenaEnd, "OSInitAlloc(): invalid range."); - ASSERTMSG1(0x288, maxHeaps <= (((uintptr_t)arenaEnd - (uintptr_t)arenaStart) / 24U), "OSInitAlloc(): too small range."); + ASSERTMSG1(0x285, (u32)arenaStart < (u32)arenaEnd, "OSInitAlloc(): invalid range."); + ASSERTMSG1(0x288, maxHeaps <= (((u32)arenaEnd - (u32)arenaStart) / 24U), "OSInitAlloc(): too small range."); arraySize = maxHeaps * sizeof(struct HeapDesc); HeapArray = arenaStart; NumHeaps = maxHeaps; @@ -349,34 +343,34 @@ void *OSInitAlloc(void *arenaStart, void *arenaEnd, int maxHeaps) hd->free = hd->allocated = 0; } __OSCurrHeap = -1; - arenaStart = (void *)((uintptr_t)((char *)HeapArray + arraySize)); - arenaStart = (void *)(((uintptr_t)arenaStart + 0x1F) & ~0x1F); + arenaStart = (void *)((u32)((char *)HeapArray + arraySize)); + arenaStart = (void *)(((u32)arenaStart + 0x1F) & 0xFFFFFFE0); ArenaStart = arenaStart; - ArenaEnd = (void *)((uintptr_t)arenaEnd & ~0x1F); - ASSERTMSG1(0x2A4, ((uintptr_t)ArenaEnd - (uintptr_t)ArenaStart) >= 0x40U, "OSInitAlloc(): too small range."); + ArenaEnd = (void *)((u32)arenaEnd & 0xFFFFFFE0); + ASSERTMSG1(0x2A4, ((u32)ArenaEnd - (u32)ArenaStart) >= 0x40U, "OSInitAlloc(): too small range."); return arenaStart; } -uintptr_t OSCreateHeap(void *start, void *end) +int OSCreateHeap(void *start, void *end) { - s32 heap; + int heap; struct HeapDesc *hd; struct Cell *cell; ASSERTMSG1(0x2BD, HeapArray, "OSCreateHeap(): heap is not initialized."); - ASSERTMSG1(0x2BE, start < end, "OSCreateHeap(): invalid range."); + ASSERTMSG1(0x2BE, (u32)start < (u32)end, "OSCreateHeap(): invalid range."); - start = (void *)(((uintptr_t)start + 0x1FU) & ~((32) - 1)); - end = (void *)(((uintptr_t)end) & ~((32) - 1)); + start = (void *)(((u32)start + 0x1FU) & ~((32) - 1)); + end = (void *)(((u32)end) & ~((32) - 1)); - ASSERTMSG1(0x2C1, (uintptr_t)start < (uintptr_t)end, "OSCreateHeap(): invalid range."); - ASSERTMSG1(0x2C3, (uintptr_t)ArenaStart <= (uintptr_t)start && (uintptr_t)end <= (uintptr_t)ArenaEnd, "OSCreateHeap(): invalid range."); - ASSERTMSG1(0x2C5, ((uintptr_t)end - (uintptr_t)start) >= 0x40U, "OSCreateHeap(): too small range."); + ASSERTMSG1(0x2C1, (u32)start < (u32)end, "OSCreateHeap(): invalid range."); + ASSERTMSG1(0x2C3, (u32)ArenaStart <= (u32)start && (u32)end <= (u32)ArenaEnd, "OSCreateHeap(): invalid range."); + ASSERTMSG1(0x2C5, ((u32)end - (u32)start) >= 0x40U, "OSCreateHeap(): too small range."); for (heap = 0; heap < NumHeaps; heap++) { hd = &HeapArray[heap]; if (hd->size < 0) { - hd->size = (uintptr_t)end - (uintptr_t)start; + hd->size = (u32)end - (u32)start; cell = start; cell->prev = 0; cell->next = 0; @@ -487,6 +481,12 @@ unsigned long OSReferentSize(void *ptr) ASSERTMSG1(0x3BD, InRange(ptr, ArenaStart + HEADERSIZE, ArenaEnd), "OSReferentSize(): invalid pointer."); ASSERTMSG1(0x3BE, !OFFSET(ptr, 32), "OSReferentSize(): invalid pointer."); cell = (void *)((u32)ptr - HEADERSIZE); + ASSERTMSG1(0x3C2, cell->hd, "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C4, !(((u32)cell->hd - (u32)HeapArray) % 24), "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C6, ((u32)HeapArray <= (u32)cell->hd) && ((u32)cell->hd < (u32)((u32)HeapArray + (NumHeaps * 0x18))), + "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C7, cell->hd->size >= 0, "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C9, DLLookup(cell->hd->allocated, cell), "OSReferentSize(): invalid pointer."); return (long)((u32)cell->size - HEADERSIZE); } diff --git a/src/dolphin/os/OSStopwatch.c b/src/dolphin/os/OSStopwatch.c index e1424396..80e7dbdd 100644 --- a/src/dolphin/os/OSStopwatch.c +++ b/src/dolphin/os/OSStopwatch.c @@ -34,7 +34,7 @@ void OSStopStopwatch(struct OSStopwatch *sw) } } -OSTime OSCheckStopwatch(OSStopwatch *sw) +long long OSCheckStopwatch(struct OSStopwatch *sw) { long long currTotal; diff --git a/src/dolphin/si/SIBios.c b/src/dolphin/si/SIBios.c index 005ca545..0d34277a 100644 --- a/src/dolphin/si/SIBios.c +++ b/src/dolphin/si/SIBios.c @@ -3,8 +3,8 @@ #include #include + extern OSTime __OSGetSystemTime(); -extern u32 VIGetCurrentLine(void); typedef struct SIControl { s32 chan; diff --git a/src/game/ClusterExec.c b/src/game/ClusterExec.c index e06e7eaa..7a25f91d 100644 --- a/src/game/ClusterExec.c +++ b/src/game/ClusterExec.c @@ -3,8 +3,7 @@ #include "game/hsfmotion.h" #include "game/sprite.h" -float GetClusterCurve(HsfTrack *arg0, float arg1) -{ +float GetClusterCurve(HsfTrack *arg0, float arg1) { float *var_r30; switch (arg0->curveType) { @@ -19,8 +18,7 @@ float GetClusterCurve(HsfTrack *arg0, float arg1) return 0.0f; } -float GetClusterWeightCurve(HsfTrack *arg0, float arg1) -{ +float GetClusterWeightCurve(HsfTrack *arg0, float arg1) { float *var_r30; switch (arg0->curveType) { @@ -35,8 +33,7 @@ float GetClusterWeightCurve(HsfTrack *arg0, float arg1) return 0.0f; } -void SetClusterMain(HsfCluster *arg0) -{ +void SetClusterMain(HsfCluster *arg0) { float var_f30; float var_f31; s32 temp_r24; @@ -56,53 +53,51 @@ void SetClusterMain(HsfCluster *arg0) temp_r30 = *arg0->vertex; var_f30 = 0.0f; for (i = 0; i < arg0->vertexCnt; i++) { - var_f30 += arg0->weight[i]; + var_f30 += arg0->unk14[i]; } for (i = 0; i < temp_r27->count; i++, var_r28++) { temp_r29 = *var_r28; - Vertextop[temp_r29].x = ((Vec *)temp_r30->data)[i].x; - Vertextop[temp_r29].y = ((Vec *)temp_r30->data)[i].y; - Vertextop[temp_r29].z = ((Vec *)temp_r30->data)[i].z; + Vertextop[temp_r29].x = ((Vec*) temp_r30->data)[i].x; + Vertextop[temp_r29].y = ((Vec*) temp_r30->data)[i].y; + Vertextop[temp_r29].z = ((Vec*) temp_r30->data)[i].z; } for (i = 1; i < arg0->vertexCnt; i++) { temp_r30 = arg0->vertex[i]; var_r28 = temp_r27->vertex; - var_f31 = arg0->weight[i]; + var_f31 = arg0->unk14[i]; if (var_f31 < 0.0f) { var_f31 = 0.0f; - } - else if (var_f30 > 1.0f) { + } else if (var_f30 > 1.0f) { var_f31 /= var_f30; } for (j = 0; j < temp_r27->count; j++, var_r28++) { temp_r29 = *var_r28; - Vertextop[temp_r29].x += var_f31 * (((Vec *)temp_r30->data)[j].x - Vertextop[temp_r29].x); - Vertextop[temp_r29].y += var_f31 * (((Vec *)temp_r30->data)[j].y - Vertextop[temp_r29].y); - Vertextop[temp_r29].z += var_f31 * (((Vec *)temp_r30->data)[j].z - Vertextop[temp_r29].z); + Vertextop[temp_r29].x += var_f31 * (((Vec*) temp_r30->data)[j].x - Vertextop[temp_r29].x); + Vertextop[temp_r29].y += var_f31 * (((Vec*) temp_r30->data)[j].y - Vertextop[temp_r29].y); + Vertextop[temp_r29].z += var_f31 * (((Vec*) temp_r30->data)[j].z - Vertextop[temp_r29].z); } } return; } - temp_r24 = arg0->index; + temp_r24 = arg0->unk10; var_r23 = temp_r24 + 1; if (var_r23 >= arg0->vertexCnt) { var_r23 = temp_r24; } - var_f31 = arg0->index - temp_r24; + var_f31 = arg0->unk10 - temp_r24; temp_r30 = arg0->vertex[temp_r24]; temp_r25 = arg0->vertex[var_r23]; var_r28 = temp_r27->vertex; for (i = 0; i < temp_r27->count; i++, var_r28++) { temp_r29 = *var_r28; - Vertextop[temp_r29].x = ((Vec *)temp_r30->data)[i].x + var_f31 * (((Vec *)temp_r25->data)[i].x - ((Vec *)temp_r30->data)[i].x); - Vertextop[temp_r29].y = ((Vec *)temp_r30->data)[i].y + var_f31 * (((Vec *)temp_r25->data)[i].y - ((Vec *)temp_r30->data)[i].y); - Vertextop[temp_r29].z = ((Vec *)temp_r30->data)[i].z + var_f31 * (((Vec *)temp_r25->data)[i].z - ((Vec *)temp_r30->data)[i].z); + Vertextop[temp_r29].x = ((Vec*) temp_r30->data)[i].x + var_f31 * (((Vec*) temp_r25->data)[i].x - ((Vec*) temp_r30->data)[i].x); + Vertextop[temp_r29].y = ((Vec*) temp_r30->data)[i].y + var_f31 * (((Vec*) temp_r25->data)[i].y - ((Vec*) temp_r30->data)[i].y); + Vertextop[temp_r29].z = ((Vec*) temp_r30->data)[i].z + var_f31 * (((Vec*) temp_r25->data)[i].z - ((Vec*) temp_r30->data)[i].z); } } } -void ClusterProc(ModelData *arg0) -{ +void ClusterProc(ModelData *arg0) { s32 temp_r24; s32 i; s32 j; @@ -117,7 +112,7 @@ void ClusterProc(ModelData *arg0) temp_r24 = arg0->unk_10[i]; if (temp_r24 != -1) { temp_r22 = &Hu3DMotion[temp_r24]; - temp_r27 = temp_r22->hsfData; + temp_r27 = temp_r22->unk_04; temp_r23 = arg0->hsfData; var_r29 = temp_r27->cluster; for (j = 0; j < temp_r27->clusterCnt; j++, var_r29++) { @@ -127,9 +122,9 @@ void ClusterProc(ModelData *arg0) Vertextop = temp_r31->data.vertex->data; if (temp_r31->data.cenvCnt) { for (k = 0; k < temp_r31->data.vertex->count; k++) { - Vertextop[k].x = ((Vec *)temp_r31->data.vtxtop)[k].x; - Vertextop[k].y = ((Vec *)temp_r31->data.vtxtop)[k].y; - Vertextop[k].z = ((Vec *)temp_r31->data.vtxtop)[k].z; + Vertextop[k].x = ((Vec*) temp_r31->data.file[0])[k].x; + Vertextop[k].y = ((Vec*) temp_r31->data.file[0])[k].y; + Vertextop[k].z = ((Vec*) temp_r31->data.file[0])[k].z; } } SetClusterMain(var_r29); @@ -141,8 +136,7 @@ void ClusterProc(ModelData *arg0) } } -void ClusterMotionExec(ModelData *arg0) -{ +void ClusterMotionExec(ModelData *arg0) { float temp_f31; s32 i; s32 j; @@ -154,14 +148,12 @@ void ClusterMotionExec(ModelData *arg0) HsfTrack *var_r30; MotionData *var_r23; -#ifndef NON_MATCHING var_r31 = temp_r27->track; -#endif for (i = 0; i < 4; i++) { if (arg0->unk_10[i] != -1) { var_r20 = arg0->unk_10[i]; var_r23 = &Hu3DMotion[var_r20]; - temp_r28 = var_r23->hsfData; + temp_r28 = var_r23->unk_04; temp_r27 = temp_r28->motion; var_r31 = temp_r27->track; temp_f31 = arg0->unk_A4[i]; @@ -169,12 +161,12 @@ void ClusterMotionExec(ModelData *arg0) switch (var_r31->type) { case 5: temp_r26 = &temp_r28->cluster[var_r31->target_s16]; - temp_r26->index = GetClusterCurve(var_r31, temp_f31); + temp_r26->unk10 = GetClusterCurve(var_r31, temp_f31); break; case 6: var_r30 = var_r31; temp_r26 = &temp_r28->cluster[var_r30->target_s16]; - temp_r26->weight[var_r30->unk04] = GetClusterCurve(var_r30, temp_f31); + temp_r26->unk14[var_r30->unk04] = GetClusterCurve(var_r30, temp_f31); break; } } diff --git a/src/game/EnvelopeExec.c b/src/game/EnvelopeExec.c index 2a890986..53a9d990 100644 --- a/src/game/EnvelopeExec.c +++ b/src/game/EnvelopeExec.c @@ -36,7 +36,7 @@ void InitEnvelope(HsfData *arg0) { var_r31 = arg0->object; for (Meshcnt = i = 0; i < arg0->objectCnt; i++, var_r31++) { if (var_r31->type == 2) { - if (var_r31->data.vtxtop) { + if (var_r31->data.file[0]) { spC = var_r31->data.vertex; sp8 = var_r31->data.normal; Meshcnt++; @@ -76,7 +76,7 @@ void InitEnvelope(HsfData *arg0) { nObj = temp_r28->count; nMesh = temp_r28->base_idx; } - MTXIdentity(sp10); + PSMTXIdentity(sp10); SetMtx(arg0->root, sp10); SetRevMtx(); } @@ -89,19 +89,19 @@ static void SetEnvelopMtx(HsfObject *arg0, HsfObject *arg1, Mtx arg2) { s32 var_r29; s32 i; - MTXTrans(spC, arg1->data.curr.pos.x, arg1->data.curr.pos.y, arg1->data.curr.pos.z); - MTXConcat(arg2, spC, sp3C); + PSMTXTrans(spC, arg1->data.curr.pos.x, arg1->data.curr.pos.y, arg1->data.curr.pos.z); + PSMTXConcat(arg2, spC, sp3C); if (arg1->data.curr.rot.z) { - MTXRotRad(sp6C, 'z', MTXDegToRad(arg1->data.curr.rot.z)); - MTXConcat(sp3C, sp6C, sp3C); + PSMTXRotRad(sp6C, 'z', MTXDegToRad(arg1->data.curr.rot.z)); + PSMTXConcat(sp3C, sp6C, sp3C); } if (arg1->data.curr.rot.y) { - MTXRotRad(sp6C, 'y', MTXDegToRad(arg1->data.curr.rot.y)); - MTXConcat(sp3C, sp6C, sp3C); + PSMTXRotRad(sp6C, 'y', MTXDegToRad(arg1->data.curr.rot.y)); + PSMTXConcat(sp3C, sp6C, sp3C); } if (arg1->data.curr.rot.x) { - MTXRotRad(sp6C, 'x', MTXDegToRad(arg1->data.curr.rot.x)); - MTXConcat(sp3C, sp6C, sp3C); + PSMTXRotRad(sp6C, 'x', MTXDegToRad(arg1->data.curr.rot.x)); + PSMTXConcat(sp3C, sp6C, sp3C); } if (arg1->data.curr.scale.x != 1.0f) { sp3C[0][0] *= arg1->data.curr.scale.x; @@ -119,7 +119,7 @@ static void SetEnvelopMtx(HsfObject *arg0, HsfObject *arg1, Mtx arg2) { sp3C[2][2] *= arg1->data.curr.scale.z; } var_r29 = arg1 - arg0; - MTXCopy(sp3C, MtxTop[nMesh + var_r29]); + PSMTXCopy(sp3C, MtxTop[nMesh + var_r29]); for (i = 0; i < arg1->data.childrenCount; i++) { SetEnvelopMtx(arg0, arg1->data.children[i], sp3C); } @@ -136,7 +136,7 @@ void EnvelopeProc(HsfData *arg0) { nObj = temp_r31->count; nMesh = temp_r31->base_idx; temp_r29 = arg0->root; - MTXIdentity(sp8); + PSMTXIdentity(sp8); SetEnvelopMtx(arg0->object, temp_r29, sp8); SetEnvelopMain(arg0); } @@ -167,23 +167,23 @@ static void SetEnvelopMain(HsfData *arg0) { var_r31 = arg0->object; for (Meshno = i = 0; i < arg0->objectCnt; i++, var_r31++) { if (var_r31->type == 2) { - MTXInverse(MtxTop[&var_r31[nMesh] - arg0->object], MtxTop[Meshno]); + PSMTXInverse(MtxTop[&var_r31[nMesh] - arg0->object], MtxTop[Meshno]); temp_r30 = var_r31->data.vertex; temp_r28 = var_r31->data.normal; if (var_r31->data.unk120[0] != 0) { Vertextop = temp_r30->data; } else { - Vertextop = (Vec*)var_r31->data.vtxtop; + Vertextop = var_r31->data.file[0]; } vtxenv = temp_r30->data; - normtop = (Vec*)var_r31->data.normtop; + normtop = var_r31->data.file[1]; normenv = temp_r28->data; var_r25 = var_r31->data.cenv; for (j = 0; j < var_r31->data.cenvCnt; j++, var_r25++) { SetEnvelop(var_r25); } sp10 = temp_r30->data; - spC = var_r31->data.vtxtop; + spC = var_r31->data.file[0]; sp8 = temp_r30->data; DCStoreRangeNoSync(normenv, temp_r28->count * sizeof(Vec)); DCStoreRangeNoSync(vtxenv, temp_r30->count * sizeof(Vec)); @@ -233,37 +233,37 @@ static void SetEnvelop(HsfCenv *arg0) { temp_r31 = &Vertextop[temp_r21]; temp_r22 = &normenv[temp_r18]; temp_r26 = &normtop[temp_r18]; - MTXConcat(MtxTop[nMesh + var_r27->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r27->target], sp140); - MTXConcat(MtxTop[Meshno], sp140, sp1A0); + PSMTXConcat(MtxTop[nMesh + var_r27->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r27->target], sp140); + PSMTXConcat(MtxTop[Meshno], sp140, sp1A0); Hu3DMtxScaleGet(&sp1A0[0], &sp14); if (sp14.x != 1.0f || sp14.y != 1.0f || sp14.z != 1.0f) { - MTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z); - MTXConcat(spE0, sp1A0, sp170); - MTXInvXpose(sp170, sp170); + PSMTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z); + PSMTXConcat(spE0, sp1A0, sp170); + PSMTXInvXpose(sp170, sp170); } else { - MTXInvXpose(sp1A0, sp170); + PSMTXInvXpose(sp1A0, sp170); } if (var_r27->posCnt == 1) { - MTXMultVec(sp1A0, temp_r31, temp_r28); - MTXMultVec(sp170, temp_r26, temp_r22); + PSMTXMultVec(sp1A0, temp_r31, temp_r28); + PSMTXMultVec(sp170, temp_r26, temp_r22); } else if (var_r27->posCnt <= 6) { - MTXMultVecArray(sp1A0, temp_r31, temp_r28, var_r27->posCnt); - MTXMultVecArray(sp170, temp_r26, temp_r22, var_r27->normalCnt); + PSMTXMultVecArray(sp1A0, temp_r31, temp_r28, var_r27->posCnt); + PSMTXMultVecArray(sp170, temp_r26, temp_r22, var_r27->normalCnt); } else { - MTXReorder(sp1A0, (ROMtxPtr) sp140); - MTXReorder(sp170, (ROMtxPtr) sp110); - MTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r27->posCnt); - MTXROMultVecArray((ROMtxPtr) sp110, temp_r26, temp_r22, var_r27->normalCnt); + PSMTXReorder(sp1A0, (ROMtxPtr) sp140); + PSMTXReorder(sp170, (ROMtxPtr) sp110); + PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r27->posCnt); + PSMTXROMultVecArray((ROMtxPtr) sp110, temp_r26, temp_r22, var_r27->normalCnt); } } var_r20 = arg0->dualData; for (i = 0; i < arg0->dualCount; i++, var_r20++) { spC = var_r20->target1; sp8 = var_r20->target2; - MTXConcat(MtxTop[nMesh + spC], MtxTop[nMesh + nObj + nObj * Meshno + spC], sp140); - MTXConcat(MtxTop[Meshno], sp140, sp1A0); - MTXConcat(MtxTop[nMesh + sp8], MtxTop[nMesh + nObj + nObj * Meshno + sp8], sp140); - MTXConcat(MtxTop[Meshno], sp140, (float (*)[4]) &spB0[0]); + PSMTXConcat(MtxTop[nMesh + spC], MtxTop[nMesh + nObj + nObj * Meshno + spC], sp140); + PSMTXConcat(MtxTop[Meshno], sp140, sp1A0); + PSMTXConcat(MtxTop[nMesh + sp8], MtxTop[nMesh + nObj + nObj * Meshno + sp8], sp140); + PSMTXConcat(MtxTop[Meshno], sp140, (float (*)[4]) &spB0[0]); var_r30 = var_r20->weight; for (j = 0; j < var_r20->weightCnt; j++, var_r30++) { temp_r18 = var_r30->normal; @@ -316,32 +316,32 @@ static void SetEnvelop(HsfCenv *arg0) { var_r29[2][2] = sp110[2][2] + sp140[2][2]; var_r29[2][3] = sp110[2][3] + sp140[2][3]; if (var_r29 == sp50) { - MTXCopy(sp50, sp80); + PSMTXCopy(sp50, sp80); } Hu3DMtxScaleGet(&sp80[0], &sp14); if (sp14.x != 1.0f || sp14.y != 1.0f || sp14.z != 1.0f) { - MTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z); - MTXConcat(spE0, sp80, sp110); - MTXInvXpose(sp110, sp110); + PSMTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z); + PSMTXConcat(spE0, sp80, sp110); + PSMTXInvXpose(sp110, sp110); } else { - MTXInvXpose(sp80, sp110); + PSMTXInvXpose(sp80, sp110); } if (var_r30->posCnt == 1) { - MTXMultVec(sp80, temp_r31, temp_r28); + PSMTXMultVec(sp80, temp_r31, temp_r28); } else if (var_r30->posCnt <= 6) { - MTXMultVecArray(sp80, temp_r31, temp_r28, var_r30->posCnt); + PSMTXMultVecArray(sp80, temp_r31, temp_r28, var_r30->posCnt); } else { - MTXReorder(sp80, (ROMtxPtr) sp140); - MTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r30->posCnt); + PSMTXReorder(sp80, (ROMtxPtr) sp140); + PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r30->posCnt); } if (var_r30->normalCnt != 0) { if (var_r30->normalCnt == 1) { - MTXMultVec(sp110, temp_r26, temp_r22); + PSMTXMultVec(sp110, temp_r26, temp_r22); } else if (var_r30->normalCnt <= 6) { - MTXMultVecArray(sp110, temp_r26, temp_r22, var_r30->normalCnt); + PSMTXMultVecArray(sp110, temp_r26, temp_r22, var_r30->normalCnt); } else { - MTXReorder(sp110, (ROMtxPtr) sp140); - MTXROMultVecArray((ROMtxPtr) sp140, temp_r26, temp_r22, var_r30->normalCnt); + PSMTXReorder(sp110, (ROMtxPtr) sp140); + PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r26, temp_r22, var_r30->normalCnt); } } } @@ -359,11 +359,11 @@ static void SetEnvelop(HsfCenv *arg0) { sp20.x = sp20.y = sp20.z = 0.0f; sp10 = 0; for (j = 0; j < var_r19->weightCnt; j++, var_r25++) { - MTXConcat(MtxTop[nMesh + var_r25->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r25->target], sp1A0); - MTXConcat(MtxTop[Meshno], sp1A0, sp1A0); - MTXInvXpose(sp1A0, sp170); - MTXMultVec(sp1A0, temp_r31, &sp44); - MTXMultVec(sp170, temp_r26, &sp2C); + PSMTXConcat(MtxTop[nMesh + var_r25->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r25->target], sp1A0); + PSMTXConcat(MtxTop[Meshno], sp1A0, sp1A0); + PSMTXInvXpose(sp1A0, sp170); + PSMTXMultVec(sp1A0, temp_r31, &sp44); + PSMTXMultVec(sp170, temp_r26, &sp2C); sp44.x = var_r25->value * (sp44.x - temp_r31->x); sp44.y = var_r25->value * (sp44.y - temp_r31->y); sp44.z = var_r25->value * (sp44.z - temp_r31->z); @@ -410,18 +410,18 @@ static void SetMtx(HsfObject *arg0, Mtx arg1) { arg0->data.base.scale.y = temp_r3->transform.scale.y; arg0->data.base.scale.z = temp_r3->transform.scale.z; } - MTXTrans(spFC, arg0->data.base.pos.x, arg0->data.base.pos.y, arg0->data.base.pos.z); - MTXScale(spCC, arg0->data.base.scale.x, arg0->data.base.scale.y, arg0->data.base.scale.z); - MTXConcat(arg1, spFC, spFC); - MTXRotRad(sp9C, 'z', MTXDegToRad(arg0->data.base.rot.z)); - MTXConcat(spFC, sp9C, spFC); - MTXRotRad(sp9C, 'y', MTXDegToRad(arg0->data.base.rot.y)); - MTXConcat(spFC, sp9C, spFC); - MTXRotRad(sp9C, 'x', MTXDegToRad(arg0->data.base.rot.x)); - MTXConcat(spFC, sp9C, spFC); - MTXConcat(spFC, spCC, spFC); + PSMTXTrans(spFC, arg0->data.base.pos.x, arg0->data.base.pos.y, arg0->data.base.pos.z); + PSMTXScale(spCC, arg0->data.base.scale.x, arg0->data.base.scale.y, arg0->data.base.scale.z); + PSMTXConcat(arg1, spFC, spFC); + PSMTXRotRad(sp9C, 'z', MTXDegToRad(arg0->data.base.rot.z)); + PSMTXConcat(spFC, sp9C, spFC); + PSMTXRotRad(sp9C, 'y', MTXDegToRad(arg0->data.base.rot.y)); + PSMTXConcat(spFC, sp9C, spFC); + PSMTXRotRad(sp9C, 'x', MTXDegToRad(arg0->data.base.rot.x)); + PSMTXConcat(spFC, sp9C, spFC); + PSMTXConcat(spFC, spCC, spFC); temp_r25 = arg0 - objtop; - MTXCopy(spFC, MtxTop[nMesh + temp_r25]); + PSMTXCopy(spFC, MtxTop[nMesh + temp_r25]); for (i = 0; i < arg0->data.childrenCount; i++) { SetMtx(arg0->data.children[i], spFC); } @@ -438,12 +438,12 @@ static void SetRevMtx(void) { var_r29 = CurHsf->object; for (var_r28 = i = 0; i < CurHsf->objectCnt; i++, var_r29++) { if (var_r29->type == 2) { - MTXCopy(MtxTop[nMesh + i], sp8); + PSMTXCopy(MtxTop[nMesh + i], sp8); for (var_r30 = 0; var_r30 < CurHsf->objectCnt; var_r30++) { - MTXInverse(MtxTop[nMesh + var_r30], sp38); - MTXConcat(sp38, sp8, MtxTop[nMesh + nObj + nObj * var_r28 + var_r30]); + PSMTXInverse(MtxTop[nMesh + var_r30], sp38); + PSMTXConcat(sp38, sp8, MtxTop[nMesh + nObj + nObj * var_r28 + var_r30]); } - MTXInverse(MtxTop[nMesh + i], sp8); + PSMTXInverse(MtxTop[nMesh + i], sp8); var_r28++; } } diff --git a/src/game/THPDraw.c b/src/game/THPDraw.c index 6a9c2d26..8290c4ee 100755 --- a/src/game/THPDraw.c +++ b/src/game/THPDraw.c @@ -106,9 +106,4 @@ void THPGXYuv2RgbDraw(u32 *yImage, u32 *uImage, u32 *vImage, s16 x, s16 y, s16 t GXPosition3s16(x, y + polyHeight, 0); GXTexCoord2s16(0, 1); GXEnd(); -#ifdef TARGET_PC - GXDestroyTexObj(&sp54); - GXDestroyTexObj(&sp34); - GXDestroyTexObj(&sp14); -#endif } diff --git a/src/game/armem.c b/src/game/armem.c index e051375a..66142f66 100644 --- a/src/game/armem.c +++ b/src/game/armem.c @@ -1,8 +1,6 @@ #include "game/armem.h" #include "game/data.h" -#include - typedef struct armem_block { /* 0x00 */ u8 flag; /* 0x02 */ u16 dir; @@ -41,13 +39,8 @@ void HuARInit(void) { for (i = 0; i < 64; i++) { ARInfo[i].amemptr = 0; } -#ifdef TARGET_PC - size = ARGetSize() - 0x20; - ARBase = 0x20; -#else size = ARGetSize() - 0x808000; ARBase = 0x808000; -#endif ARInfo[0].amemptr = ARBase; ARInfo[0].size = size; ARInfo[0].flag = 0; @@ -216,7 +209,7 @@ u32 HuAR_DVDtoARAM(u32 dir) { block = HuARInfoGet(amemptr); block->dir = (dir >> 16); arqCnt++; - ARQPostRequest(&arqReq, 0x1234, 0, 0, (uintptr_t) stat->dir, amemptr, DirDataSize, ArqCallBack); + ARQPostRequest(&arqReq, 0x1234, 0, 0, (u32) stat->dir, amemptr, DirDataSize, ArqCallBack); OSReport("ARAM Trans %x\n", amemptr); while (HuARDMACheck()); HuDataDirClose(dir); @@ -267,11 +260,7 @@ void *HuAR_ARAMtoMRAMNum(u32 src, s32 num) { block = HuARInfoGet(src); if (HuDataReadChk(block->dir << 16) >= 0) { -#ifdef NON_MATCHING - return 0; -#else return; -#endif } size = HuARSizeGet(src); dst = HuMemDirectMallocNum(HEAP_DVD, size, num); @@ -283,13 +272,13 @@ void *HuAR_ARAMtoMRAMNum(u32 src, s32 num) { ARQueBuf[arqIdx].dst = dst; arqCnt++; PPCSync(); - ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, src, (uintptr_t) dst, size, ArqCallBackAM); + ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, src, (u32) dst, size, ArqCallBackAM); arqIdx++; arqIdx &= 0xF; return dst; } -static void ArqCallBackAM(uintptr_t pointerToARQRequest) { +static void ArqCallBackAM(u32 pointerToARQRequest) { ARQueReq *req_ptr = (ARQueReq*) pointerToARQRequest; arqCnt--; @@ -329,12 +318,6 @@ void HuARDirFree(u32 dir) { } } -#ifdef TARGET_PC -#define DIR_DATA (dir_data_pc) -#else -#define DIR_DATA (dir_data) -#endif - void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { s32 *dir_data; void *dst; @@ -343,10 +326,6 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { s32 count; s32 size; u32 amemptr; -#ifdef TARGET_PC - s32 dir_data_pc[2]; - s32 i; -#endif if ((amemptr = HuARDirCheck(dir)) == 0) { OSReport("Error: data none on ARAM %0x\n", dir); @@ -354,25 +333,19 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { return 0; } DCInvalidateRange(&preLoadBuf, sizeof(preLoadBuf)); - amem_src = amemptr + (u32)((((dir & 0xFFFF) + 1) * 4) & 0xFFFFFFFE0); + amem_src = amemptr + (u32)((u32)(((u16)dir + 1) * 4) & 0xFFFFFFFE0); arqCnt++; - ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (uintptr_t) &preLoadBuf, sizeof(preLoadBuf), ArqCallBackAMFileRead); + ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (u32) &preLoadBuf, sizeof(preLoadBuf), ArqCallBackAMFileRead); arqIdx++; arqIdx &= 0xF; while (HuARDMACheck()); dir_data = &preLoadBuf[(dir + 1) & 7]; -#ifdef TARGET_PC - for (i = 0; i < 2; i++) { - dir_data_pc[i] = dir_data[i]; - byteswap_s32(&dir_data_pc[i]); - } -#endif - count = DIR_DATA[0]; + count = dir_data[0]; amem_src = amemptr + (u32)(count & 0xFFFFFFFE0); - if (DIR_DATA[1] - count < 0) { + if (dir_data[1] - count < 0) { size = (HuARSizeGet(amemptr) - count + 0x3F) & 0xFFFFFFFE0; } else { - size = (DIR_DATA[1] - count + 0x3F) & 0xFFFFFFFE0; + size = (dir_data[1] - count + 0x3F) & 0xFFFFFFFE0; } dvd_data = HuMemDirectMalloc(HEAP_DVD, size); if (!dvd_data) { @@ -381,28 +354,20 @@ void *HuAR_ARAMtoMRAMFileRead(u32 dir, u32 num, HeapID heap) { DCFlushRangeNoSync(dvd_data, size); arqCnt++; PPCSync(); - ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (uintptr_t) dvd_data, (u32) size, ArqCallBackAMFileRead); + ARQPostRequest(&ARQueBuf[arqIdx].req, 0x1234, 1, 0, amem_src, (u32) dvd_data, (u32) size, ArqCallBackAMFileRead); arqIdx++; arqIdx &= 0xF; while (HuARDMACheck()); dir_data = (s32*) ((u8*) dvd_data + (count & 0x1F)); -#ifdef TARGET_PC - for (i = 0; i < 2; i++) { - dir_data_pc[i] = dir_data[i]; - byteswap_s32(&dir_data_pc[i]); - } -#endif - dst = HuMemDirectMallocNum(heap, (DIR_DATA[0] + 1) & ~1, num); + dst = HuMemDirectMallocNum(heap, (dir_data[0] + 1) & ~1, num); if (!dst) { return 0; } - HuDecodeData(&dir_data[2], dst, DIR_DATA[0], DIR_DATA[1]); + HuDecodeData(&dir_data[2], dst, dir_data[0], dir_data[1]); HuMemDirectFree(dvd_data); return dst; } -#undef DIR_DATA - static void ArqCallBackAMFileRead(u32 pointerToARQRequest) { arqCnt--; (void)pointerToARQRequest; // required to match (return?) diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index a09e96dc..abce562c 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -1,4 +1,3 @@ -#include "game/audio.h" #include "game/board/basic_space.h" #include "game/board/main.h" #include "game/board/model.h" @@ -237,10 +236,10 @@ static void CreateCoinChg(coinChg *coin_chg, Vec *pos) { BoardModelMotionSpeedSet(coin_chg->sign_model, 0.0f); BoardModelMotionSpeedSet(coin_chg->tens_model, 0.0f); BoardModelMotionSpeedSet(coin_chg->ones_model, 0.0f); - BoardModelScaleSet(coin_chg->sign_model, 0.001f, 0.001f, 0.001f); - BoardModelScaleSet(coin_chg->tens_model, 0.001f, 0.001f, 0.001f); - BoardModelScaleSet(coin_chg->ones_model, 0.001f, 0.001f, 0.001f); - BoardModelScaleSet(coin_chg->coin_model, 0.001f, 0.001f, 0.001f); + BoardModelScaleSet(coin_chg->sign_model, 0.001, 0.001, 0.001); + BoardModelScaleSet(coin_chg->tens_model, 0.001, 0.001, 0.001); + BoardModelScaleSet(coin_chg->ones_model, 0.001, 0.001, 0.001); + BoardModelScaleSet(coin_chg->coin_model, 0.001, 0.001, 0.001); BoardModelLayerSet(coin_chg->sign_model, 1); BoardModelLayerSet(coin_chg->tens_model, 1); BoardModelLayerSet(coin_chg->ones_model, 1); diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 3f40db8b..2ba67445 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -19,8 +19,6 @@ #include "ext_math.h" -#include - typedef struct { struct { u8 unk00_field0 : 1; @@ -480,7 +478,7 @@ static void UpdateExplode(omObjData *arg0) { break; case 2: BoardCameraRotGet(&sp8); - MTXRotRad(sp20, 'x', MTXDegToRad(sp8.x + 10.0f)); + PSMTXRotRad(sp20, 'x', MTXDegToRad(sp8.x + 10.0f)); BoardModelMtxSet(temp_r30->unk02, &sp20); BoardModelRotSet(temp_r30->unk02, 0.0f, 0.0f, 0.0f); sp14.x = arg0->scale.x; diff --git a/src/game/board/block.c b/src/game/board/block.c index 256c5661..0f7f86aa 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -1,5 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" @@ -9,8 +8,6 @@ #include "game/objsub.h" #include "game/process.h" -#include -#include #define BLOCK_SPAWN 0 #define BLOCK_HIT 2 diff --git a/src/game/board/boo.c b/src/game/board/boo.c index 14acebd2..56dff9ce 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -95,8 +95,6 @@ typedef struct { float unk04; } BallTakeCoinWork; -static BOOL CheckBallCoinDone(void); -static void TakeBallStar(void); static void ComSetupStealPlayer(s32 arg0); static void ComSetStealPlayerInput(s32 arg0, s32 arg1); static void ExecCoinSteal(void); @@ -133,10 +131,8 @@ static void BallBooAttack(omObjData *arg0, BallBooWork *arg1); static void BallBooFlash(omObjData *arg0, BallBooWork *arg1); static void TakeBallCoin(void); static void ExecTakeBallCoin(omObjData *arg0); -static void ExecTakeBallStar(omObjData *arg0); static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1); static void UpdatePlayerCoins(void); -static BOOL CheckTakeBallStarDone(void); s8 lbl_801D41E2; static s8 stealTarget; diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index cc54a12f..b35cadfd 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -1,5 +1,5 @@ -#include "game/audio.h" #include "game/board/boo_house.h" + #include "game/board/audio.h" #include "game/board/boo.h" #include "game/board/com.h" @@ -16,9 +16,6 @@ #include "ext_math.h" -#include -#include - // bss static s16 houseMdl[6]; diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index c26bea1f..bcbe7133 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -15,10 +15,6 @@ #include "ext_math.h" #include "string.h" -#include -#include -#include - typedef struct bowser_event_data { s16 sprite[3]; s16 delay[3]; @@ -1219,6 +1215,7 @@ static void ConfigBowserEvent(void) for(coins=i=0; i<4; i++) { coins += BoardPlayerCoinsGet(i); } + retry: while(1) { chance = BoardRandMod(100); if(chance >= 95) { diff --git a/src/game/board/com.c b/src/game/board/com.c index 22681cef..60ef9620 100755 --- a/src/game/board/com.c +++ b/src/game/board/com.c @@ -12,8 +12,6 @@ #include "ext_math.h" -#include - typedef BOOL (*UseCheckFunc)(s32 player, s32 item); static void ExecComKeyLeft(void); @@ -49,7 +47,7 @@ static s8 itemUse = -1; #define BOARD_ITEM_ITEM_BAG 13 #define BOARD_ITEMS_END BOARD_ITEM_ITEM_BAG -static s8 comItemPreferTbl[GW_CHARACTER_MAX][SHOP_ITEMS_END] = { +static s8 comItemPreferTbl[CHARNO_MAX ][SHOP_ITEMS_END] = { { //Mario BOARD_ITEM_MAGIC_LAMP, BOARD_ITEM_BOOS_CRYSTAL_BALL, diff --git a/src/game/board/fortune.c b/src/game/board/fortune.c index cc9bf23d..86294638 100644 --- a/src/game/board/fortune.c +++ b/src/game/board/fortune.c @@ -8,10 +8,6 @@ #include "game/wipe.h" -#include -#include -#include - static Vec camTargetFortune; static Vec camPosFortune; @@ -201,6 +197,7 @@ static void FortunePostMG(void) static void CreateFortunePlatform(void) { + PlayerState *player; Vec pos, rot; PlatformWork *work; fortunePlatformObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecFortunePlatform); diff --git a/src/game/board/item.c b/src/game/board/item.c index 80bb81f7..d2341c9c 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -28,13 +28,6 @@ #include "ext_math.h" -#include - -#ifndef __MWERKS__ -#include -extern s32 rand8(void); -#endif - typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; @@ -1042,7 +1035,7 @@ static void ExecItemSwap(void) } BoardModelRotGet(suitMdl, &sp3C); Hu3DCameraSet(0, sp108); - MTXInverse(sp108, spD8); + PSMTXInverse(sp108, spD8); Hu3DMtxRotGet(spD8, &sp48); sp3C.x = sp48.x; for (var_r31 = 0; var_r31 < var_r28 / 2; var_r31++) { diff --git a/src/game/board/last5.c b/src/game/board/last5.c index f92f4674..8b9261c9 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -340,7 +340,7 @@ static void SetTeamResultTarget(s32 team, Vec *pos); static void KillTeamResult(void); static void UpdateTeamResult(omObjData *object); -void BoardLast5Exec(void) +void BoardLast5Exec() { GWSystem.player_curr = -1; last5Proc = HuPrcChildCreate(ExecLast5, 8200, 14336, 0, boardMainProc); @@ -703,10 +703,10 @@ static void Last5Main(void) temp_r20 = GetLast5RouletteResult(); GWSystem.last5_effect = temp_r20; if(GWSystem.last5_effect == 2) { - BoardSpaceTypeForce(2, 3); + BoardSpaceTypeForce(2, 3); } if(GWSystem.last5_effect == 3) { - BoardSpaceTypeForce(2, 7); + BoardSpaceTypeForce(2, 7); } temp_r24 = 18+messBase+temp_r20; BoardWinCreate(2, temp_r24, BoardWinPortraitGetStar()); diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 7698cdea..f64992f4 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -1,14 +1,5 @@ #include "game/board/lottery.h" #include "game/audio.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/tutorial.h" -#include "game/board/ui.h" -#include "game/board/window.h" #include "game/chrman.h" #include "game/data.h" #include "game/esprite.h" @@ -20,14 +11,19 @@ #include "game/pad.h" #include "game/process.h" #include "game/sprite.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/tutorial.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "ext_math.h" #include "stdlib.h" -#ifndef __MWERKS__ -#include -#endif - typedef struct { struct { u8 unk00_field0 : 1; @@ -113,58 +109,104 @@ static s16 ballMdl[4] = { -1, -1, -1, -1 }; static s16 loseMot = -1; static s16 ticketSprGrp = -1; -static s8 comInputDraw1[][2] = { { 0x0B, 0xF8 }, { 0x2B, 0xDD }, { 0x2A, 0xDC }, { 0x2B, 0xDC }, { 0x2B, 0xDC }, { 0x29, 0xDB }, { 0x24, 0xD6 }, - { 0x02, 0xE8 }, { 0x00, 0x00 }, { 0xFC, 0x02 }, { 0xD8, 0x27 }, { 0xD8, 0x28 }, { 0xD8, 0x28 }, { 0xD8, 0x27 }, { 0xDA, 0x29 }, { 0xDE, 0x2C }, - { 0xE4, 0x31 }, { 0xF0, 0x3A }, { 0x00, 0x3C }, { 0x06, 0x3A }, { 0x1B, 0x32 }, { 0x23, 0x2B }, { 0x24, 0x2A }, { 0x25, 0x29 }, { 0x26, 0x29 }, - { 0x28, 0x27 }, { 0x28, 0x27 }, { 0x28, 0x26 }, { 0x28, 0x26 }, { 0x2E, 0x20 }, { 0x39, 0x11 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x35, 0xEA }, - { 0x29, 0xDB }, { 0x24, 0xD5 }, { 0x17, 0xCB }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xEB, 0xCA }, - { 0xD6, 0xDB }, { 0xD6, 0xDB }, { 0xD4, 0xDE }, { 0xD1, 0xE2 }, { 0xC4, 0xF2 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, - { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC1, 0x0B }, { 0xC6, 0x10 }, { 0xC9, 0x14 }, { 0xCB, 0x16 }, { 0xCB, 0x17 }, { 0xCE, 0x1A }, - { 0xD1, 0x1E }, { 0xD5, 0x23 }, { 0xD4, 0x22 }, { 0xDB, 0x29 }, { 0xF5, 0x3E }, { 0x00, 0x48 }, { 0x00, 0x42 }, { 0x0D, 0x3D }, { 0x24, 0x2A }, - { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x25 }, { 0x2D, 0x21 }, { 0x34, 0x18 }, { 0x40, 0x09 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x43, 0xFA }, - { 0x33, 0xE6 }, { 0x29, 0xDB }, { 0x1B, 0xCF }, { 0x05, 0xBD }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xFB, 0xBD }, { 0xDD, 0xD5 }, - { 0xD6, 0xDC }, { 0xD6, 0xDC }, { 0xD4, 0xDE }, { 0xCB, 0xE9 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC5, 0x0F }, { 0xD0, 0x1D }, - { 0xD5, 0x23 }, { 0xDC, 0x2A }, { 0xF0, 0x3B }, { 0x00, 0x3D }, { 0x08, 0x3F }, { 0x15, 0x36 }, { 0x24, 0x2A }, { 0x29, 0x26 }, { 0x2A, 0x24 }, - { 0x30, 0x1C }, { 0x3B, 0x0F }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x3E, 0xF4 }, { 0x2D, 0xE0 }, { 0x22, 0xD4 }, { 0x02, 0xBB }, { 0x00, 0xB8 }, - { 0xFB, 0xBD }, { 0xD9, 0xD8 }, { 0xD4, 0xDE }, { 0x7F, 0x7F } }; +static s8 comInputDraw1[][2] = { + { 0x0B, 0xF8 }, { 0x2B, 0xDD }, { 0x2A, 0xDC }, { 0x2B, 0xDC }, + { 0x2B, 0xDC }, { 0x29, 0xDB }, { 0x24, 0xD6 }, { 0x02, 0xE8 }, + { 0x00, 0x00 }, { 0xFC, 0x02 }, { 0xD8, 0x27 }, { 0xD8, 0x28 }, + { 0xD8, 0x28 }, { 0xD8, 0x27 }, { 0xDA, 0x29 }, { 0xDE, 0x2C }, + { 0xE4, 0x31 }, { 0xF0, 0x3A }, { 0x00, 0x3C }, { 0x06, 0x3A }, + { 0x1B, 0x32 }, { 0x23, 0x2B }, { 0x24, 0x2A }, { 0x25, 0x29 }, + { 0x26, 0x29 }, { 0x28, 0x27 }, { 0x28, 0x27 }, { 0x28, 0x26 }, + { 0x28, 0x26 }, { 0x2E, 0x20 }, { 0x39, 0x11 }, { 0x48, 0x00 }, + { 0x48, 0x00 }, { 0x35, 0xEA }, { 0x29, 0xDB }, { 0x24, 0xD5 }, + { 0x17, 0xCB }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xEB, 0xCA }, { 0xD6, 0xDB }, + { 0xD6, 0xDB }, { 0xD4, 0xDE }, { 0xD1, 0xE2 }, { 0xC4, 0xF2 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC1, 0x0B }, + { 0xC6, 0x10 }, { 0xC9, 0x14 }, { 0xCB, 0x16 }, { 0xCB, 0x17 }, + { 0xCE, 0x1A }, { 0xD1, 0x1E }, { 0xD5, 0x23 }, { 0xD4, 0x22 }, + { 0xDB, 0x29 }, { 0xF5, 0x3E }, { 0x00, 0x48 }, { 0x00, 0x42 }, + { 0x0D, 0x3D }, { 0x24, 0x2A }, { 0x29, 0x26 }, { 0x29, 0x26 }, + { 0x29, 0x25 }, { 0x2D, 0x21 }, { 0x34, 0x18 }, { 0x40, 0x09 }, + { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x43, 0xFA }, { 0x33, 0xE6 }, + { 0x29, 0xDB }, { 0x1B, 0xCF }, { 0x05, 0xBD }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xFB, 0xBD }, { 0xDD, 0xD5 }, + { 0xD6, 0xDC }, { 0xD6, 0xDC }, { 0xD4, 0xDE }, { 0xCB, 0xE9 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC5, 0x0F }, + { 0xD0, 0x1D }, { 0xD5, 0x23 }, { 0xDC, 0x2A }, { 0xF0, 0x3B }, + { 0x00, 0x3D }, { 0x08, 0x3F }, { 0x15, 0x36 }, { 0x24, 0x2A }, + { 0x29, 0x26 }, { 0x2A, 0x24 }, { 0x30, 0x1C }, { 0x3B, 0x0F }, + { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x3E, 0xF4 }, { 0x2D, 0xE0 }, + { 0x22, 0xD4 }, { 0x02, 0xBB }, { 0x00, 0xB8 }, { 0xFB, 0xBD }, + { 0xD9, 0xD8 }, { 0xD4, 0xDE }, { 0x7F, 0x7F } +}; -static s8 comInputDraw2[][2] = { { 0x07, 0x00 }, { 0x1F, 0x00 }, { 0x3A, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, - { 0x48, 0x00 }, { 0x43, 0xFA }, { 0x35, 0xEA }, { 0x2A, 0xDB }, { 0x1A, 0xCE }, { 0x00, 0xB9 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, - { 0x00, 0xBA }, { 0xE9, 0xCC }, { 0xD5, 0xDD }, { 0xD4, 0xDE }, { 0xD4, 0xDE }, { 0xD0, 0xE3 }, { 0xBD, 0xFB }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, - { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xBC, 0x03 }, { 0xC2, 0x0C }, { 0xCB, 0x17 }, { 0xD5, 0x23 }, - { 0xD8, 0x27 }, { 0xF0, 0x3A }, { 0x00, 0x43 }, { 0x18, 0x34 }, { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x25 }, { 0x29, 0x26 }, - { 0x29, 0x25 }, { 0x29, 0x25 }, { 0x2C, 0x22 }, { 0x31, 0x1B }, { 0x39, 0x12 }, { 0x47, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x37, 0xEC }, - { 0x26, 0xD7 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xFB, 0xBD }, { 0xE5, 0xCE }, - { 0xD6, 0xDC }, { 0xD6, 0xDC }, { 0xD6, 0xDC }, { 0xD5, 0xDD }, { 0xD2, 0xE0 }, { 0xCC, 0xE8 }, { 0xC4, 0xF2 }, { 0xBE, 0xFA }, { 0xB8, 0x00 }, - { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, - { 0xB8, 0x00 }, { 0xC7, 0x12 }, { 0xD8, 0x27 }, { 0xF6, 0x3E }, { 0x00, 0x47 }, { 0x00, 0x44 }, { 0x05, 0x42 }, { 0x16, 0x35 }, { 0x28, 0x27 }, - { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x7F, 0x7F } }; +static s8 comInputDraw2[][2] = { + { 0x07, 0x00 }, { 0x1F, 0x00 }, { 0x3A, 0x00 }, { 0x48, 0x00 }, + { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, + { 0x43, 0xFA }, { 0x35, 0xEA }, { 0x2A, 0xDB }, { 0x1A, 0xCE }, + { 0x00, 0xB9 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, + { 0x00, 0xBA }, { 0xE9, 0xCC }, { 0xD5, 0xDD }, { 0xD4, 0xDE }, + { 0xD4, 0xDE }, { 0xD0, 0xE3 }, { 0xBD, 0xFB }, { 0xB8, 0x00 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xBC, 0x03 }, { 0xC2, 0x0C }, + { 0xCB, 0x17 }, { 0xD5, 0x23 }, { 0xD8, 0x27 }, { 0xF0, 0x3A }, + { 0x00, 0x43 }, { 0x18, 0x34 }, { 0x29, 0x26 }, { 0x29, 0x26 }, + { 0x29, 0x26 }, { 0x29, 0x25 }, { 0x29, 0x26 }, { 0x29, 0x25 }, + { 0x29, 0x25 }, { 0x2C, 0x22 }, { 0x31, 0x1B }, { 0x39, 0x12 }, + { 0x47, 0x00 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x37, 0xEC }, + { 0x26, 0xD7 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xFB, 0xBD }, + { 0xE5, 0xCE }, { 0xD6, 0xDC }, { 0xD6, 0xDC }, { 0xD6, 0xDC }, + { 0xD5, 0xDD }, { 0xD2, 0xE0 }, { 0xCC, 0xE8 }, { 0xC4, 0xF2 }, + { 0xBE, 0xFA }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, + { 0xC7, 0x12 }, { 0xD8, 0x27 }, { 0xF6, 0x3E }, { 0x00, 0x47 }, + { 0x00, 0x44 }, { 0x05, 0x42 }, { 0x16, 0x35 }, { 0x28, 0x27 }, + { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x26 }, { 0x29, 0x26 }, + { 0x7F, 0x7F } +}; -static s8 comInputBall[][2] = { { 0xE5, 0x00 }, { 0xC0, 0x03 }, { 0xBC, 0x04 }, { 0xBC, 0x03 }, { 0xBF, 0x07 }, { 0xC3, 0x0C }, { 0xCB, 0x17 }, - { 0xD5, 0x24 }, { 0xDE, 0x2C }, { 0xF9, 0x3E }, { 0x00, 0x48 }, { 0x00, 0x45 }, { 0x06, 0x40 }, { 0x21, 0x2C }, { 0x28, 0x27 }, { 0x28, 0x26 }, - { 0x29, 0x25 }, { 0x30, 0x1D }, { 0x43, 0x05 }, { 0x48, 0x00 }, { 0x33, 0xE7 }, { 0x24, 0xD6 }, { 0x07, 0xBF }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, - { 0xE4, 0xCF }, { 0xD4, 0xDE }, { 0xC6, 0xF0 }, { 0xB8, 0x00 }, { 0xC7, 0x11 }, { 0xD2, 0x20 }, { 0xD5, 0x24 }, { 0xD6, 0x25 }, { 0xD8, 0x27 }, - { 0xE1, 0x2E }, { 0x00, 0x43 }, { 0x00, 0x48 }, { 0x00, 0x44 }, { 0x1D, 0x30 }, { 0x28, 0x27 }, { 0x28, 0x27 }, { 0x2C, 0x22 }, { 0x39, 0x12 }, - { 0x48, 0x00 }, { 0x34, 0xE8 }, { 0x23, 0xD5 }, { 0x0A, 0xC1 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xF4, 0xC3 }, { 0xD4, 0xDE }, { 0xC3, 0xF4 }, - { 0xB8, 0x00 }, { 0xC6, 0x10 }, { 0xD3, 0x21 }, { 0xD6, 0x25 }, { 0xD8, 0x27 }, { 0xDF, 0x2D }, { 0xEA, 0x36 }, { 0x00, 0x48 }, { 0x00, 0x48 }, - { 0x00, 0x48 }, { 0x17, 0x35 }, { 0x28, 0x27 }, { 0x29, 0x25 }, { 0x33, 0x19 }, { 0x48, 0x00 }, { 0x48, 0x00 }, { 0x34, 0xE8 }, { 0x23, 0xD5 }, - { 0x00, 0xB9 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0xFA, 0xBE }, { 0xD4, 0xDE }, { 0xC8, 0xED }, { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC0, 0x09 }, - { 0xD0, 0x1C }, { 0xD6, 0x24 }, { 0xDC, 0x2A }, { 0xED, 0x38 }, { 0x00, 0x48 }, { 0x00, 0x48 }, { 0x00, 0x48 }, { 0x1B, 0x31 }, { 0x28, 0x27 }, - { 0x29, 0x26 }, { 0x2D, 0x21 }, { 0x3D, 0x0C }, { 0x48, 0x00 }, { 0x33, 0xE7 }, { 0x20, 0xD3 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, { 0x00, 0xBB }, - { 0xDB, 0xD7 }, { 0xD4, 0xDE }, { 0xD3, 0xDF }, { 0xBB, 0xFD }, { 0xB8, 0x00 }, { 0x7F, 0x7F } }; +static s8 comInputBall[][2] = { + { 0xE5, 0x00 }, { 0xC0, 0x03 }, { 0xBC, 0x04 }, { 0xBC, 0x03 }, + { 0xBF, 0x07 }, { 0xC3, 0x0C }, { 0xCB, 0x17 }, { 0xD5, 0x24 }, + { 0xDE, 0x2C }, { 0xF9, 0x3E }, { 0x00, 0x48 }, { 0x00, 0x45 }, + { 0x06, 0x40 }, { 0x21, 0x2C }, { 0x28, 0x27 }, { 0x28, 0x26 }, + { 0x29, 0x25 }, { 0x30, 0x1D }, { 0x43, 0x05 }, { 0x48, 0x00 }, + { 0x33, 0xE7 }, { 0x24, 0xD6 }, { 0x07, 0xBF }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0xE4, 0xCF }, { 0xD4, 0xDE }, { 0xC6, 0xF0 }, + { 0xB8, 0x00 }, { 0xC7, 0x11 }, { 0xD2, 0x20 }, { 0xD5, 0x24 }, + { 0xD6, 0x25 }, { 0xD8, 0x27 }, { 0xE1, 0x2E }, { 0x00, 0x43 }, + { 0x00, 0x48 }, { 0x00, 0x44 }, { 0x1D, 0x30 }, { 0x28, 0x27 }, + { 0x28, 0x27 }, { 0x2C, 0x22 }, { 0x39, 0x12 }, { 0x48, 0x00 }, + { 0x34, 0xE8 }, { 0x23, 0xD5 }, { 0x0A, 0xC1 }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0xF4, 0xC3 }, { 0xD4, 0xDE }, { 0xC3, 0xF4 }, + { 0xB8, 0x00 }, { 0xC6, 0x10 }, { 0xD3, 0x21 }, { 0xD6, 0x25 }, + { 0xD8, 0x27 }, { 0xDF, 0x2D }, { 0xEA, 0x36 }, { 0x00, 0x48 }, + { 0x00, 0x48 }, { 0x00, 0x48 }, { 0x17, 0x35 }, { 0x28, 0x27 }, + { 0x29, 0x25 }, { 0x33, 0x19 }, { 0x48, 0x00 }, { 0x48, 0x00 }, + { 0x34, 0xE8 }, { 0x23, 0xD5 }, { 0x00, 0xB9 }, { 0x00, 0xB8 }, + { 0x00, 0xB8 }, { 0xFA, 0xBE }, { 0xD4, 0xDE }, { 0xC8, 0xED }, + { 0xB8, 0x00 }, { 0xB8, 0x00 }, { 0xC0, 0x09 }, { 0xD0, 0x1C }, + { 0xD6, 0x24 }, { 0xDC, 0x2A }, { 0xED, 0x38 }, { 0x00, 0x48 }, + { 0x00, 0x48 }, { 0x00, 0x48 }, { 0x1B, 0x31 }, { 0x28, 0x27 }, + { 0x29, 0x26 }, { 0x2D, 0x21 }, { 0x3D, 0x0C }, { 0x48, 0x00 }, + { 0x33, 0xE7 }, { 0x20, 0xD3 }, { 0x00, 0xB8 }, { 0x00, 0xB8 }, + { 0x00, 0xBB }, { 0xDB, 0xD7 }, { 0xD4, 0xDE }, { 0xD3, 0xDF }, + { 0xBB, 0xFD }, { 0xB8, 0x00 }, { 0x7F, 0x7F } +}; -void BoardLotteryHostSet(s16 arg0) -{ +void BoardLotteryHostSet(s16 arg0) { hostMdl = arg0; } -s16 BoardLotteryHostGet(void) -{ +s16 BoardLotteryHostGet(void) { return hostMdl; } -void BoardLotteryExec(void) -{ +void BoardLotteryExec(void) { if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { return; } @@ -177,8 +219,7 @@ void BoardLotteryExec(void) BoardRollDispSet(1); } -void BoardLotteryInit(void) -{ +void BoardLotteryInit(void) { Vec sp14; Vec sp8; s32 i; @@ -206,28 +247,73 @@ void BoardLotteryInit(void) } } -static void CreateModel(void) -{ +static void CreateModel(void) { s32 i; - s32 sp10[4] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 5), DATA_MAKE_NUM(DATADIR_BKUJIYA, 6), DATA_MAKE_NUM(DATADIR_BKUJIYA, 7), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 8) }; - s32 sp8[2] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 3), DATA_MAKE_NUM(DATADIR_BKUJIYA, 4) }; + s32 sp10[4] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 5), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 6), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 7), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 8) + }; + s32 sp8[2] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 3), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 4) + }; s32 sp20[9][4] = { - { DATA_MAKE_NUM(DATADIR_BGUEST, 1), DATA_MAKE_NUM(DATADIR_BGUEST, 2), DATA_MAKE_NUM(DATADIR_BGUEST, 3), DATA_MAKE_NUM(DATADIR_BGUEST, 4) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 9), DATA_MAKE_NUM(DATADIR_BGUEST, 10), DATA_MAKE_NUM(DATADIR_BGUEST, 11), DATA_MAKE_NUM(DATADIR_BGUEST, 12) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 14), DATA_MAKE_NUM(DATADIR_BGUEST, 15), DATA_MAKE_NUM(DATADIR_BGUEST, 16), - DATA_MAKE_NUM(DATADIR_BGUEST, 17) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 24), DATA_MAKE_NUM(DATADIR_BGUEST, 25), DATA_MAKE_NUM(DATADIR_BGUEST, 26), - DATA_MAKE_NUM(DATADIR_BGUEST, 27) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 29), DATA_MAKE_NUM(DATADIR_BGUEST, 30), DATA_MAKE_NUM(DATADIR_BGUEST, 31), - DATA_MAKE_NUM(DATADIR_BGUEST, 32) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 34), DATA_MAKE_NUM(DATADIR_BGUEST, 35), DATA_MAKE_NUM(DATADIR_BGUEST, 36), - DATA_MAKE_NUM(DATADIR_BGUEST, 37) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 14), DATA_MAKE_NUM(DATADIR_BGUEST, 15), DATA_MAKE_NUM(DATADIR_BGUEST, 16), - DATA_MAKE_NUM(DATADIR_BGUEST, 17) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 42), DATA_MAKE_NUM(DATADIR_BGUEST, 43), DATA_MAKE_NUM(DATADIR_BGUEST, 44), - DATA_MAKE_NUM(DATADIR_BGUEST, 45) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 42), DATA_MAKE_NUM(DATADIR_BGUEST, 43), DATA_MAKE_NUM(DATADIR_BGUEST, 44), DATA_MAKE_NUM(DATADIR_BGUEST, 45) } + { + DATA_MAKE_NUM(DATADIR_BGUEST, 1), + DATA_MAKE_NUM(DATADIR_BGUEST, 2), + DATA_MAKE_NUM(DATADIR_BGUEST, 3), + DATA_MAKE_NUM(DATADIR_BGUEST, 4) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 9), + DATA_MAKE_NUM(DATADIR_BGUEST, 10), + DATA_MAKE_NUM(DATADIR_BGUEST, 11), + DATA_MAKE_NUM(DATADIR_BGUEST, 12) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 14), + DATA_MAKE_NUM(DATADIR_BGUEST, 15), + DATA_MAKE_NUM(DATADIR_BGUEST, 16), + DATA_MAKE_NUM(DATADIR_BGUEST, 17) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 24), + DATA_MAKE_NUM(DATADIR_BGUEST, 25), + DATA_MAKE_NUM(DATADIR_BGUEST, 26), + DATA_MAKE_NUM(DATADIR_BGUEST, 27) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 29), + DATA_MAKE_NUM(DATADIR_BGUEST, 30), + DATA_MAKE_NUM(DATADIR_BGUEST, 31), + DATA_MAKE_NUM(DATADIR_BGUEST, 32) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 34), + DATA_MAKE_NUM(DATADIR_BGUEST, 35), + DATA_MAKE_NUM(DATADIR_BGUEST, 36), + DATA_MAKE_NUM(DATADIR_BGUEST, 37) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 14), + DATA_MAKE_NUM(DATADIR_BGUEST, 15), + DATA_MAKE_NUM(DATADIR_BGUEST, 16), + DATA_MAKE_NUM(DATADIR_BGUEST, 17) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 42), + DATA_MAKE_NUM(DATADIR_BGUEST, 43), + DATA_MAKE_NUM(DATADIR_BGUEST, 44), + DATA_MAKE_NUM(DATADIR_BGUEST, 45) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 42), + DATA_MAKE_NUM(DATADIR_BGUEST, 43), + DATA_MAKE_NUM(DATADIR_BGUEST, 44), + DATA_MAKE_NUM(DATADIR_BGUEST, 45) + } }; lotteryMdl[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 1), NULL, 0); @@ -266,8 +352,7 @@ static void CreateModel(void) BoardModelHookSet(lotteryMdl[1], "toto_grip1", gripMdl[1]); } -static void KillModel(void) -{ +static void KillModel(void) { s32 i; if (lotteryMdl[1] != -1) { @@ -305,8 +390,7 @@ static void KillModel(void) BoardModelVisibilitySet(BoardLotteryHostGet(), 0); } -void BoardLotteryKill(void) -{ +void BoardLotteryKill(void) { if (lotteryProc) { HuPrcKill(lotteryProc); } @@ -316,8 +400,7 @@ void BoardLotteryKill(void) } } -static void DestroyLottery(void) -{ +static void DestroyLottery(void) { s32 i; for (i = 0; i < 4; i++) { @@ -338,8 +421,7 @@ static void DestroyLottery(void) lotteryProc = NULL; } -static void ExecLottery(void) -{ +static void ExecLottery(void) { Vec sp38; Vec sp2C; Vec sp20; @@ -390,8 +472,7 @@ static void ExecLottery(void) if (GWPlayer[temp_r31].com) { if (BoardPlayerCoinsGet(temp_r31) >= 5) { BoardComKeySetLeft(); - } - else { + } else { BoardComKeySetRight(); } } @@ -431,8 +512,7 @@ static void ExecLottery(void) if (BoardPlayerSizeGet(temp_r31) == 1) { BoardModelVisibilitySet(gripMdl[0], 0); BoardModelVisibilitySet(gripMdl[1], 1); - } - else { + } else { BoardModelVisibilitySet(gripMdl[0], 1); BoardModelVisibilitySet(gripMdl[1], 0); } @@ -481,8 +561,7 @@ static void ExecLottery(void) SetupTicket(temp_r31); ShowTicket(); var_r27 = 1; - } - else { + } else { var_r27 = 0; } if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { @@ -492,8 +571,7 @@ static void ExecLottery(void) var_r25 = BoardRandMod(100) & 0xFF; if (var_r25 < 50) { ExecBallGame(); - } - else { + } else { ExecScratch(); } ExecPrize(); @@ -523,8 +601,7 @@ static void ExecLottery(void) HuPrcEnd(); } -static void DoMiniJumpUp(s32 arg0) -{ +static void DoMiniJumpUp(s32 arg0) { Mtx sp34; Vec sp28; Vec sp1C; @@ -552,8 +629,7 @@ static void DoMiniJumpUp(s32 arg0) OSs16tof32(&i, &temp_f30); if (i < 4) { var_f27 = 5.0f; - } - else { + } else { var_f27 = 0.0f; } sp1C.x += sp10.x; @@ -567,8 +643,7 @@ static void DoMiniJumpUp(s32 arg0) BoardPlayerIdleSet(arg0); } -static void DoMiniJumpDown(s32 arg0) -{ +static void DoMiniJumpDown(s32 arg0) { Vec sp24; Vec sp18; Vec spC; @@ -586,8 +661,7 @@ static void DoMiniJumpDown(s32 arg0) OSs16tof32(&i, &temp_f31); if (i < 3) { var_f29 = 10.0f; - } - else { + } else { var_f29 = 0.0f; } sp18.x += spC.x; @@ -607,8 +681,7 @@ static void DoMiniJumpDown(s32 arg0) } } -static void PayEnterFee(s32 arg0) -{ +static void PayEnterFee(s32 arg0) { s32 var_r29; s32 temp_r31; s32 i; @@ -618,8 +691,7 @@ static void PayEnterFee(s32 arg0) BoardStatusShowSet(temp_r31, 1); if (arg0 != 0) { var_r29 = lotteryMessBase + 12; - } - else { + } else { var_r29 = lotteryMessBase; } BoardWinCreate(2, var_r29, BoardWinPortraitGet()); @@ -637,8 +709,7 @@ static void PayEnterFee(s32 arg0) BoardStatusShowSet(temp_r31, 0); } -static void ShowTicket(void) -{ +static void ShowTicket(void) { s16 sp10; s16 spE; s16 spC; @@ -649,15 +720,22 @@ static void ShowTicket(void) s32 var_r29; s32 i; u8 *var_r28; - s32 sp14[] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 21), DATA_MAKE_NUM(DATADIR_BKUJIYA, 22), DATA_MAKE_NUM(DATADIR_BKUJIYA, 23), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 24), DATA_MAKE_NUM(DATADIR_BKUJIYA, 25), DATA_MAKE_NUM(DATADIR_BKUJIYA, 26), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 27), DATA_MAKE_NUM(DATADIR_BKUJIYA, 28) }; + s32 sp14[] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 21), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 22), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 23), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 24), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 25), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 26), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 27), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 28) + }; if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { return; } sp8 = GWPlayer[GWSystem.player_curr].ticket_player; - var_r28 = (u8 *)&sp8; + var_r28 = (u8*) &sp8; temp_r31 = HuSprGrpCreate(4); BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA); HuSprGrpMemberSet(temp_r31, 0, spA); @@ -706,11 +784,10 @@ static void ShowTicket(void) HuPrcVSleep(); } HuSprGrpKill(temp_r31); - (void)var_r29; // Required to match + (void) var_r29; // Required to match } -static void SetupTicket(s32 arg0) -{ +static void SetupTicket(s32 arg0) { u8 sp8[4]; u8 var_r29; s32 var_r28; @@ -739,9 +816,11 @@ static void SetupTicket(s32 arg0) GWPlayer[arg0].draw_ticket = 1; } -static void LotteryInlineFunc00(s32 arg0, s32 arg1) -{ - s32 sp20[2] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 18), DATA_MAKE_NUM(DATADIR_BKUJIYA, 19) }; +static void LotteryInlineFunc00(s32 arg0, s32 arg1) { + s32 sp20[2] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 18), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 19) + }; s16 sp10[2] = { 152, 120 }; s16 sp14[2] = { 120, 120 }; Vec sp34; @@ -756,8 +835,7 @@ static void LotteryInlineFunc00(s32 arg0, s32 arg1) lotterySpr = espEntry(sp20[arg0], 30001, 0); espAttrSet(lotterySpr, HUSPR_ATTR_NOANIM); } - } - else { + } else { sp34.y = (sp10[arg0] / 2) + 40; temp_f30 = -4.0f; } @@ -772,8 +850,7 @@ static void LotteryInlineFunc00(s32 arg0, s32 arg1) } } -static void ExecBallGame(void) -{ +static void ExecBallGame(void) { Vec sp4C; float temp_f24; float var_f23; @@ -794,9 +871,16 @@ static void ExecBallGame(void) s8 spA; s8 sp9; s8 *temp_r23; - s32 sp58[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 29), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 29), DATA_MAKE_NUM(DATADIR_PEACHMOT, 29), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 29), DATA_MAKE_NUM(DATADIR_WARIOMOT, 29), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 29), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 29), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29) }; + s32 sp58[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 29), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 29), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 29), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 29), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 29), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29) + }; temp_r27 = GWSystem.player_curr; currPrize = -1; @@ -865,28 +949,24 @@ static void ExecBallGame(void) temp_r25 = GWPlayer[temp_r27].port; spB = HuPadStkX[temp_r25]; spA = HuPadStkY[temp_r25]; - } - else { + } else { temp_r23 = comInputBall[comInputPos++]; spB = temp_r23[0]; spA = temp_r23[1]; } - } - else { + } else { spB = spA = 0; } if (spB == 0x7F || spA == 0x7F) { var_r20 = 1; - } - else { + } else { if ((abs(spB) < 57.600002f && abs(spA) < 57.600002f) || (var_r17 == spB && sp9 == spA) || (spB == 0 && spA == 0)) { var_f28 *= 0.93f; var_f27 *= 0.8f; if (var_f27 < 0.01f && var_r26 != 0) { var_r26--; } - } - else { + } else { OSs8tof32(&spB, &var_f26); OSs8tof32(&spA, &var_f19); var_f25 = atan2d(var_f26, var_f19); @@ -904,8 +984,7 @@ static void ExecBallGame(void) var_f27 += 0.01f * var_f26; if (var_f28 + var_f27 < 2.0f) { var_f28 += var_f27; - } - else { + } else { var_f28 = 2.0f; } } @@ -917,8 +996,7 @@ static void ExecBallGame(void) LotteryInlineFunc00(0, 1); } -static void SetBallPrize(void) -{ +static void SetBallPrize(void) { Process *sp8; s32 temp_r31; @@ -926,14 +1004,11 @@ static void SetBallPrize(void) temp_r31 = BoardRandMod(100); if (temp_r31 > 97) { currPrize = 0; - } - else if (temp_r31 > 87) { + } else if (temp_r31 > 87) { currPrize = 1; - } - else if (temp_r31 > 67) { + } else if (temp_r31 > 67) { currPrize = 2; - } - else { + } else { currPrize = 3; } if (GWSystem.max_turn - GWSystem.turn != 0 || currPrize != 2) { @@ -943,8 +1018,7 @@ static void SetBallPrize(void) sp8 = HuPrcChildCreate(ExecBallPrize, 0x2004, 0x3800, 0, lotteryProc); } -static void ExecBallPrize(void) -{ +static void ExecBallPrize(void) { Vec sp30; Vec sp24; Vec sp18; @@ -968,19 +1042,19 @@ static void ExecBallPrize(void) temp_r29 = ballMdl[currPrize & 3]; BoardModelPosGet(lotteryMdl[0], &sp30); BoardModelRotGet(lotteryMdl[0], &sp18); - MTXRotRad(sp6C, 'Y', MTXDegToRad(sp18.y)); + PSMTXRotRad(sp6C, 'Y', MTXDegToRad(sp18.y)); var_r27 = BoardModelIDGet(lotteryMdl[0]); temp_r3 = Hu3DModelObjPtrGet(var_r27, "toto_gara"); temp_f28 = sp30.y + temp_r3->data.curr.pos.y + 100.0f; - MTXTrans(sp3C, temp_r3->data.curr.pos.x, temp_r3->data.curr.pos.y + 210.0f, temp_r3->data.curr.pos.z + -40.0f); - MTXConcat(sp6C, sp3C, sp3C); + PSMTXTrans(sp3C, temp_r3->data.curr.pos.x, temp_r3->data.curr.pos.y + 210.0f, temp_r3->data.curr.pos.z + -40.0f); + PSMTXConcat(sp6C, sp3C, sp3C); Hu3DMtxTransGet(sp3C, &spC); VECAdd(&spC, &sp30, &sp30); BoardModelVisibilitySet(temp_r29, 1); sp24.x = 10.5f; sp24.y = -3.0f; sp24.z = 0.0f; - MTXMultVec(sp6C, &sp24, &sp24); + PSMTXMultVec(sp6C, &sp24, &sp24); var_f29 = 0.0f; var_f30 = 1.8f; temp_f27 = 0.016666668f; @@ -1010,29 +1084,62 @@ static void ExecBallPrize(void) } } -static const s32 pickSpr[] - = { DATA_MAKE_NUM(DATADIR_BOARD, 30), DATA_MAKE_NUM(DATADIR_BOARD, 31), DATA_MAKE_NUM(DATADIR_BOARD, 32), DATA_MAKE_NUM(DATADIR_BOARD, 33), - DATA_MAKE_NUM(DATADIR_BOARD, 34), DATA_MAKE_NUM(DATADIR_BOARD, 35), DATA_MAKE_NUM(DATADIR_BOARD, 36), DATA_MAKE_NUM(DATADIR_BOARD, 37) }; +static const s32 pickSpr[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 30), + DATA_MAKE_NUM(DATADIR_BOARD, 31), + DATA_MAKE_NUM(DATADIR_BOARD, 32), + DATA_MAKE_NUM(DATADIR_BOARD, 33), + DATA_MAKE_NUM(DATADIR_BOARD, 34), + DATA_MAKE_NUM(DATADIR_BOARD, 35), + DATA_MAKE_NUM(DATADIR_BOARD, 36), + DATA_MAKE_NUM(DATADIR_BOARD, 37) +}; -static const s32 handMdl[] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 9), DATA_MAKE_NUM(DATADIR_BKUJIYA, 10), DATA_MAKE_NUM(DATADIR_BKUJIYA, 11), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 12), DATA_MAKE_NUM(DATADIR_BKUJIYA, 13), DATA_MAKE_NUM(DATADIR_BKUJIYA, 14), DATA_MAKE_NUM(DATADIR_BKUJIYA, 15), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 16) }; +static const s32 handMdl[] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 9), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 10), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 11), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 12), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 13), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 14), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 15), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 16) +}; -static const s32 ticketSpr[] = { DATA_MAKE_NUM(DATADIR_BKUJIYA, 29), DATA_MAKE_NUM(DATADIR_BKUJIYA, 30), DATA_MAKE_NUM(DATADIR_BKUJIYA, 31), - DATA_MAKE_NUM(DATADIR_BKUJIYA, 32) }; +static const s32 ticketSpr[] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 29), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 30), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 31), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 32) +}; static omObjData *ticketObj[12] = { NULL }; static s8 ticketPrize[12] = { 0 }; static Vec handLastPos = { 0.0f, 0.0f, 0.0f }; -static s32 loseSoundTbl[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE }; +static s32 loseSoundTbl[] = { + 0x0000012E, + 0x0000016E, + 0x000001AE, + 0x000001EE, + 0x0000022E, + 0x0000026E, + 0x000002AE, + 0x000002EE +}; -static s32 loseMotTbl[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; +static s32 loseMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) +}; -static void ExecScratchTicket(s32 arg0) -{ +static void ExecScratchTicket(s32 arg0) { Vec sp24; Vec sp18; Vec spC; @@ -1071,8 +1178,7 @@ static void ExecScratchTicket(s32 arg0) comInputPos = 0; if (BoardRandMod(100) < 50) { comInputDrawP = comInputDraw1; - } - else { + } else { comInputDrawP = comInputDraw2; } temp_r27 = HuAudFXPlay(0x335); @@ -1111,8 +1217,7 @@ static void ExecScratchTicket(s32 arg0) lotteryMdl[4] = -1; } -static void ExecScratch(void) -{ +static void ExecScratch(void) { TicketWork *temp_r28; float var_f31; s32 temp_curr; @@ -1154,8 +1259,7 @@ static void ExecScratch(void) BoardFilterFadeOut(30); } -static void KillScratch(void) -{ +static void KillScratch(void) { if (ticketSprGrp != -1) { HuSprGrpKill(ticketSprGrp); ticketSprGrp = -1; @@ -1166,8 +1270,7 @@ static void KillScratch(void) memset(ticketObj, 0, sizeof(ticketObj)); } -static void ExecScratchSpr(omObjData *arg0) -{ +static void ExecScratchSpr(omObjData *arg0) { Vec sp20; Vec sp14; Vec sp8; @@ -1195,8 +1298,7 @@ static void ExecScratchSpr(omObjData *arg0) if (ABS(sp8.x) < 1.0f && ABS(sp8.y) < 1.0f) { sp8 = sp14; temp_r30->unk00_field1 = 1; - } - else { + } else { VECScale(&sp8, &sp8, 0.2f); VECAdd(&sp20, &sp8, &sp8); temp_r30->unk00_field1 = 0; @@ -1207,8 +1309,7 @@ static void ExecScratchSpr(omObjData *arg0) arg0->rot.y = sp8.y; } -static void HideScratchSpr(void) -{ +static void HideScratchSpr(void) { s32 i; for (i = 0; i < 12; i++) { @@ -1218,8 +1319,7 @@ static void HideScratchSpr(void) } } -static void InitScratchSpr(void) -{ +static void InitScratchSpr(void) { Vec sp18; Vec spC; omObjData *temp_r31; @@ -1261,8 +1361,7 @@ static void InitScratchSpr(void) HuSprGrpDrawNoSet(temp_r28, 0x40); } -static inline u32 ExecStratchPickInlineFunc(LotteryTicketPickWork *temp_r29) -{ +static inline u32 ExecStratchPickInlineFunc(LotteryTicketPickWork *temp_r29) { s32 var_r21; s32 temp_r23; u32 var_r26; @@ -1272,21 +1371,17 @@ static inline u32 ExecStratchPickInlineFunc(LotteryTicketPickWork *temp_r29) if (!GWPlayer[var_r21].com) { temp_r23 = GWPlayer[GWSystem.player_curr].port; var_r26 = HuPadDStkRep[temp_r23] | HuPadBtnDown[temp_r23]; - } - else if (comLotteryType != temp_r29->unk02) { + } else if (comLotteryType != temp_r29->unk02) { var_r26 = 2; - } - else if (comLotteryWinType != temp_r29->unk03) { + } else if (comLotteryWinType != temp_r29->unk03) { var_r26 = 4; - } - else if (comLotteryType == temp_r29->unk02 && comLotteryWinType == temp_r29->unk03) { + } else if (comLotteryType == temp_r29->unk02 && comLotteryWinType == temp_r29->unk03) { var_r26 = 0x100; } return var_r26; } -static void ExecScratchPick(omObjData *arg0) -{ +static void ExecScratchPick(omObjData *arg0) { float var_f29; float var_f28; s8 var_r28; @@ -1339,16 +1434,14 @@ static void ExecScratchPick(omObjData *arg0) if (temp_r29->unk02 < 0) { temp_r29->unk02 = 0; var_r28 = 0; - } - else if (temp_r29->unk03 < 0) { + } else if (temp_r29->unk03 < 0) { temp_r29->unk03 = 0; var_r28 = 0; } if (temp_r29->unk02 >= 4) { temp_r29->unk02 = 3; var_r28 = 0; - } - else if (temp_r29->unk03 >= 3) { + } else if (temp_r29->unk03 >= 3) { temp_r29->unk03 = 2; var_r28 = 0; } @@ -1362,8 +1455,7 @@ static void ExecScratchPick(omObjData *arg0) HuSprPosSet(temp_r29->unk08, 0, var_f29, var_f28); } -static void InitScratchPick(void) -{ +static void InitScratchPick(void) { float temp_f31 = 91.0f; float temp_f30 = 106.0f; omObjData *temp_r30; @@ -1384,8 +1476,7 @@ static void InitScratchPick(void) HuSprGrpDrawNoSet(var_r31->unk08, 0x40); } -static void InitTicketPrizes(void) -{ +static void InitTicketPrizes(void) { s32 temp_r31; s32 i; @@ -1401,8 +1492,7 @@ static void InitTicketPrizes(void) } } -static void ExecTicketFocus(s32 arg0) -{ +static void ExecTicketFocus(s32 arg0) { float var_f31; float temp_f30; omObjData *var_r30; @@ -1426,8 +1516,7 @@ static void ExecTicketFocus(s32 arg0) } } -static BOOL ScratchTicketCheckDone(AnimBmpData *arg0) -{ +static BOOL ScratchTicketCheckDone(AnimBmpData *arg0) { s32 var_r29; s32 var_r31; s32 var_r30; @@ -1443,14 +1532,12 @@ static BOOL ScratchTicketCheckDone(AnimBmpData *arg0) } if (var_r29 >= arg0->sizeX * arg0->sizeY - 300) { return TRUE; - } - else { + } else { return FALSE; } } -static u16 TicketGetPixel(u16 arg0, u16 arg1, u16 arg2) -{ +static u16 TicketGetPixel(u16 arg0, u16 arg1, u16 arg2) { u16 var_r31; u16 var_r30; u16 var_r29; @@ -1463,8 +1550,7 @@ static u16 TicketGetPixel(u16 arg0, u16 arg1, u16 arg2) return var_r29 + (var_r28 << 2) + ((var_r31 + var_r30 * (arg0 >> 2)) << 4); } -static s32 TicketUpdate(AnimBmpData *arg0, Vec *arg1, s32 arg2) -{ +static s32 TicketUpdate(AnimBmpData *arg0, Vec *arg1, s32 arg2) { Vec sp48; Vec sp3C; float temp_f25; @@ -1488,8 +1574,7 @@ static s32 TicketUpdate(AnimBmpData *arg0, Vec *arg1, s32 arg2) } OSs8tof32(&temp_r19[0], &sp48.x); OSs8tof32(&temp_r19[1], &sp48.y); - } - else { + } else { sp34 = GWPlayer[GWSystem.player_curr].port; sp48.x = HuPadStkX[sp34]; sp48.y = HuPadStkY[sp34]; @@ -1558,13 +1643,12 @@ static s32 TicketUpdate(AnimBmpData *arg0, Vec *arg1, s32 arg2) } } } - DCFlushRange(arg0->data, (u32)(arg0->sizeX * arg0->sizeY * 2) >> 3); + DCFlushRange(arg0->data, (u32) (arg0->sizeX * arg0->sizeY * 2) >> 3); handLastPos = *arg1; return 0; } -static s32 ExecCoinPrizeInlineFunc(void) -{ +static s32 ExecCoinPrizeInlineFunc(void) { s32 i; for (i = 0; i < 10; i++) { @@ -1575,8 +1659,7 @@ static s32 ExecCoinPrizeInlineFunc(void) return -1; } -static void ExecCoinPrize(void) -{ +static void ExecCoinPrize(void) { Vec sp64[10]; Vec sp8; float sp3C[10]; @@ -1591,8 +1674,7 @@ static void ExecCoinPrize(void) temp_r27 = GWSystem.player_curr; if (currPrize == 0) { var_r28 = 100; - } - else { + } else { var_r28 = 30; } memset(coinMdl, 0, sizeof(coinMdl)); @@ -1621,8 +1703,7 @@ static void ExecCoinPrize(void) BoardModelScaleSet(coinMdl[var_r30], 0.5f, 0.5f, 0.5f); var_r28--; } - } - else { + } else { var_r26 = 0; for (i = 0; i < 10; i++) { if (coinF[i] != 0) { @@ -1644,8 +1725,7 @@ static void ExecCoinPrize(void) BoardPlayerCoinsAdd(temp_r27, 1); HuAudFXPlay(7); omVibrate(temp_r27, 12, 6, 6); - } - else { + } else { BoardModelPosSetV(coinMdl[i], &sp64[i]); BoardModelRotSet(coinMdl[i], 0.0f, sp3C[i], 0.0f); sp3C[i] = BoardDAngleCalc(45.0f + sp3C[i]); @@ -1656,8 +1736,7 @@ static void ExecCoinPrize(void) } } -static void ExecItemPrize(void) -{ +static void ExecItemPrize(void) { Vec sp20; Vec sp14; float temp_f29; @@ -1669,7 +1748,10 @@ static void ExecItemPrize(void) s32 temp_r29; s16 *var_r31; s16 i; - s32 spC[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 111), DATA_MAKE_NUM(DATADIR_BOARD, 112) }; + s32 spC[2] = { + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112) + }; s8 sp8[2] = { 2, 3 }; temp_r29 = GWSystem.player_curr; @@ -1697,8 +1779,7 @@ static void ExecItemPrize(void) BoardPlayerPosGet(temp_r29, &sp20); if (BoardPlayerSizeGet(temp_r29) == 0) { sp20.y += 100.0f; - } - else { + } else { sp20.y += 30.000002f; } temp_f29 = (sp20.y - sp14.y) / 30.0f; @@ -1724,8 +1805,7 @@ static void ExecItemPrize(void) omVibrate(GWSystem.player_curr, 12, 6, 6); } -static void KillCoin(void) -{ +static void KillCoin(void) { s32 i; for (i = 0; i < 10; i++) { @@ -1734,8 +1814,7 @@ static void KillCoin(void) } } -static void ExecPrize(void) -{ +static void ExecPrize(void) { Vec sp14; Vec sp8; s16 var_r29; @@ -1786,8 +1865,7 @@ static void ExecPrize(void) if (var_r24 < 3) { var_r29 = 7; var_r26 = 80; - } - else { + } else { var_r29 = 8; } break; @@ -1812,12 +1890,11 @@ static void ExecPrize(void) HuPrcSleep(0x14); if (var_r31 == 0) { var_r27 = HuAudSStreamPlay(0xA); - } - else { + } else { var_r27 = HuAudSStreamPlay(9); } } - var_r23 = (s32)BoardPlayerRotYGet(temp_r30) + 180; + var_r23 = (s32) BoardPlayerRotYGet(temp_r30) + 180; BoardPlayerMotBlendSet(temp_r30, var_r23, 0xF); while (!BoardPlayerMotBlendCheck(temp_r30)) { HuPrcVSleep(); @@ -1835,8 +1912,7 @@ static void ExecPrize(void) if (var_r24 == 3) { BoardWinCreate(2, lotteryMessBase + 6, BoardWinPortraitGet()); BoardWinWait(); - } - else { + } else { BoardAudSeqPause(1, 1, 1000); HuPrcSleep(0x30); var_r27 = HuAudSStreamPlay(2); @@ -1855,8 +1931,7 @@ static void ExecPrize(void) case 2: if (var_r24 < 3) { ExecItemPrize(); - } - else { + } else { var_r31 = 3; } break; @@ -1873,8 +1948,7 @@ static void ExecPrize(void) } if (var_r31 != 3) { var_r28 = lotteryMessBase + 3; - } - else { + } else { var_r28 = lotteryMessBase + 8; } BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[2], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); @@ -1889,8 +1963,7 @@ static void ExecPrize(void) } } -static void ExecLose(s32 arg0) -{ +static void ExecLose(s32 arg0) { s32 temp_r30; temp_r30 = GWPlayer[arg0].character; @@ -1902,8 +1975,7 @@ static void ExecLose(s32 arg0) } } -static void CreateLotteryWin(s32 arg0) -{ +static void CreateLotteryWin(s32 arg0) { float sp8[2]; float temp_f30; float var_f31; @@ -1913,12 +1985,10 @@ static void CreateLotteryWin(s32 arg0) if (arg0 == 0) { var_r31 = MAKE_MESSID(6, 80); var_f31 = 352.0f; - } - else if (arg0 == 1) { + } else if (arg0 == 1) { var_f31 = 352.0f; var_r31 = MAKE_MESSID(6, 81); - } - else { + } else { var_f31 = 364.0f; var_r31 = MAKE_MESSID(32, 22); } @@ -1929,16 +1999,14 @@ static void CreateLotteryWin(s32 arg0) HuWinMesSet(lotteryInstWin, var_r31); } -static void KillLotteryWin(void) -{ +static void KillLotteryWin(void) { if (lotteryInstWin != -1) { HuWinKill(lotteryInstWin); lotteryInstWin = -1; } } -void BoardLotteryTutorialExec(void) -{ +void BoardLotteryTutorialExec(void) { Vec sp38; Vec sp2C; Vec sp20; diff --git a/src/game/board/main.c b/src/game/board/main.c index e4c0f5dd..1ce8c180 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1,7 +1,15 @@ -#include "game/board/main.h" +#include "game/gamework_data.h" #include "ext_math.h" +#include "game/object.h" +#include "game/flag.h" +#include "game/data.h" +#include "game/wipe.h" +#include "string.h" +#include "game/hsfman.h" +#include "game/hsfdraw.h" #include "game/board/battle.h" #include "game/board/lottery.h" +#include "game/board/main.h" #include "game/board/model.h" #include "game/board/pause.h" #include "game/board/player.h" @@ -10,30 +18,9 @@ #include "game/board/start.h" #include "game/board/tutorial.h" #include "game/board/ui.h" -#include "game/data.h" -#include "game/disp.h" -#include "game/flag.h" -#include "game/gamework_data.h" -#include "game/hsfdraw.h" -#include "game/hsfman.h" -#include "game/msm.h" -#include "game/object.h" #include "game/pad.h" -#include "game/wipe.h" -#include "string.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -extern void BoardLast5Exec(void); +#include "game/disp.h" +#include "game/msm.h" typedef struct camera_view { s16 x_rot; @@ -46,11 +33,11 @@ u32 boardRandSeed; static omObjData *last5GfxObj; static omObjData *confettiObj; static omObjData *filterObj; -SHARED_SYM BoardTurnStartHook boardTurnStartFunc; -SHARED_SYM BoardBowserHook boardBowserHook; -SHARED_SYM void (*boardStarShowNextHook)(void); -SHARED_SYM void (*boardStarGiveHook)(void); -SHARED_SYM BoardFunc boardTurnFunc; +BoardTurnStartHook boardTurnStartFunc; +BoardBowserHook boardBowserHook; +void (*boardStarShowNextHook)(void); +void (*boardStarGiveHook)(void); +BoardFunc boardTurnFunc; BoardLightHook boardLightResetHook; BoardLightHook boardLightSetHook; static BoardFunc destroyFunc; @@ -310,6 +297,7 @@ void BoardSaveInit(s32 board) GWSystem.block_pos = 0; memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data)); for(i=0; i<4; i++) { + s32 party_flag; BoardPlayerAutoSizeSet(i, 0); GWPlayer[i].draw_ticket = 0; GWPlayer[i].color = 0; @@ -1028,21 +1016,21 @@ void BoardCameraRotSet(float x, float y) camera->rot.y = y; } -void BoardCameraNearFarSet(float nnear, float ffar) +void BoardCameraNearFarSet(float near, float far) { BoardCameraData *camera = &boardCamera; - camera->nnear = nnear; - camera->ffar = ffar; + camera->near = near; + camera->far = far; } -void BoardCameraNearFarGet(float *nnear, float *ffar) +void BoardCameraNearFarGet(float *near, float *far) { BoardCameraData *camera = &boardCamera; - if(nnear) { - *nnear = camera->nnear; + if(near) { + *near = camera->near; } - if(ffar) { - *ffar = camera->ffar; + if(far) { + *far = camera->far; } } @@ -1149,8 +1137,8 @@ void BoardCameraInit(void) memset(&boardCamera, 0, sizeof(BoardCameraData)); camera = &boardCamera; camera->fov = 25; - camera->nnear = 100; - camera->ffar = 13000; + camera->near = 100; + camera->far = 13000; camera->aspect = HU_DISP_ASPECT; camera->viewport_x = 0; camera->viewport_y = 0; @@ -1199,7 +1187,7 @@ static void UpdateCamera(omObjData *object) } CalcCameraView(); camera = &boardCamera; - Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->nnear, camera->ffar, camera->aspect); + Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect); Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); target = &camera->target; if(camera->pos_calc) { diff --git a/src/game/board/model.c b/src/game/board/model.c index 5162b2fe..599f05e2 100644 --- a/src/game/board/model.c +++ b/src/game/board/model.c @@ -747,7 +747,7 @@ float BoardModelMotionShapeMaxTimeGet(s16 model) return 0; } motion = &Hu3DMotion[hsf_model->unk_0E]; - motion_hsf = motion->hsfData->motion; + motion_hsf = motion->unk_04->motion; return motion_hsf->len; } } diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 90e9efaa..1b0c57b6 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -9,15 +9,10 @@ #include "game/objsub.h" -#include "ext_math.h" #include "math.h" +#include "ext_math.h" -#include -#include -#include -#include - -SHARED_SYM extern s32 boardTutorialData[4]; +extern s32 boardTutorialData[4]; static void KillMushroom(); @@ -27,7 +22,7 @@ static void MarkKillBox(void); static void InitBox(s32 arg0); static const float boxOfs[2] = {-150.0f, 150.0f}; -static omObjData *boxObj[2] = {NULL, NULL}; +static omObjData *boxObj[2] = {}; static s16 itemMdl = -1; static s8 itemResult; static u8 pickerChoice; @@ -75,6 +70,9 @@ static void WaitItemGive(void); static void MushroomMain(void) { Vec sp14[2]; Vec sp8; + s32 temp_r0; + s32 temp_r0_2; + s32 var_r30; s32 curPlayer; s8 var_r29; boxObjWork* box; @@ -238,6 +236,7 @@ static void ShowBox(ItemGiveWork2*, omObjData*); static void BoxMain(omObjData* arg0) { + s32 temp_r0; ItemGiveWork2* temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, ItemGiveWork2); diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 1b331d56..3ca8058a 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -1,11 +1,5 @@ #include "game/board/pause.h" #include "game/audio.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/roll.h" -#include "game/board/star.h" -#include "game/board/ui.h" #include "game/data.h" #include "game/flag.h" #include "game/gamework_data.h" @@ -17,9 +11,12 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" - -#include -#include +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/roll.h" +#include "game/board/star.h" +#include "game/board/ui.h" typedef struct { struct { @@ -42,6 +39,7 @@ typedef struct { u32 unk0C; } ConfigWork; + static void PauseExit(void); static void PauseProcess(void); static void CreatePauseScreen(void); @@ -93,25 +91,56 @@ static s16 controlWin = -1; static s16 quitWin = -1; static s16 settingsWin = -1; -static s16 boxModelID[8] = { -1, -1, -1, -1, -1, -1, -1, -1 }; +static s16 boxModelID[8] = { + -1, -1, -1, -1, -1, -1, -1, -1 +}; -static float boxPosTbl[8][2] = { { 120.0f, 120.0f }, { 232.0f, 120.0f }, { 344.0f, 120.0f }, { 456.0f, 120.0f }, { 120.0f, 232.0f }, - { 232.0f, 232.0f }, { 344.0f, 232.0f }, { 456.0f, 232.0f } }; +static float boxPosTbl[8][2] = { + { 120.0f, 120.0f }, + { 232.0f, 120.0f }, + { 344.0f, 120.0f }, + { 456.0f, 120.0f }, + { 120.0f, 232.0f }, + { 232.0f, 232.0f }, + { 344.0f, 232.0f }, + { 456.0f, 232.0f } +}; -static float padConfigPosTbl[4][2] = { { 170.0f, 160.0f }, { 266.0f, 160.0f }, { 362.0f, 160.0f }, { 458.0f, 160.0f } }; +static float padConfigPosTbl[4][2] = { + { 170.0f, 160.0f }, + { 266.0f, 160.0f }, + { 362.0f, 160.0f }, + { 458.0f, 160.0f } +}; -static s32 boardLogoTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 87), DATA_MAKE_NUM(DATADIR_BOARD, 88), DATA_MAKE_NUM(DATADIR_BOARD, 89), - DATA_MAKE_NUM(DATADIR_BOARD, 90), DATA_MAKE_NUM(DATADIR_BOARD, 91), DATA_MAKE_NUM(DATADIR_BOARD, 92), DATA_MAKE_NUM(DATADIR_BOARD, 87), - DATA_MAKE_NUM(DATADIR_BOARD, 93), DATA_MAKE_NUM(DATADIR_BOARD, 94) }; +static s32 boardLogoTbl[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 87), + DATA_MAKE_NUM(DATADIR_BOARD, 88), + DATA_MAKE_NUM(DATADIR_BOARD, 89), + DATA_MAKE_NUM(DATADIR_BOARD, 90), + DATA_MAKE_NUM(DATADIR_BOARD, 91), + DATA_MAKE_NUM(DATADIR_BOARD, 92), + DATA_MAKE_NUM(DATADIR_BOARD, 87), + DATA_MAKE_NUM(DATADIR_BOARD, 93), + DATA_MAKE_NUM(DATADIR_BOARD, 94) +}; -static float turnDigitPosTbl[] = { 145.0f, 188.0f, 285.0f, 328.0f }; +static float turnDigitPosTbl[] = { + 145.0f, 188.0f, 285.0f, 328.0f +}; -static s32 boxMdlTbl[] = { DATA_MAKE_NUM(DATADIR_BPAUSE, 8), DATA_MAKE_NUM(DATADIR_BPAUSE, 9), DATA_MAKE_NUM(DATADIR_BPAUSE, 10), - DATA_MAKE_NUM(DATADIR_BPAUSE, 11), DATA_MAKE_NUM(DATADIR_BPAUSE, 12), DATA_MAKE_NUM(DATADIR_BPAUSE, 13), DATA_MAKE_NUM(DATADIR_BPAUSE, 14), - DATA_MAKE_NUM(DATADIR_BPAUSE, 15) }; +static s32 boxMdlTbl[] = { + DATA_MAKE_NUM(DATADIR_BPAUSE, 8), + DATA_MAKE_NUM(DATADIR_BPAUSE, 9), + DATA_MAKE_NUM(DATADIR_BPAUSE, 10), + DATA_MAKE_NUM(DATADIR_BPAUSE, 11), + DATA_MAKE_NUM(DATADIR_BPAUSE, 12), + DATA_MAKE_NUM(DATADIR_BPAUSE, 13), + DATA_MAKE_NUM(DATADIR_BPAUSE, 14), + DATA_MAKE_NUM(DATADIR_BPAUSE, 15) +}; -void BoardPauseStart(void) -{ +void BoardPauseStart(void) { mainProcess = HuPrcChildCreate(PauseProcess, 0x2001, 0x3800, 0, boardMainProc); hostMdl = BoardStarHostMdlGet(); BoardModelMotionStart(hostMdl, 1, 0x40000001); @@ -122,8 +151,7 @@ void BoardPauseStart(void) HuPrcDestructorSet2(mainProcess, PauseExit); } -static void PauseExit(void) -{ +static void PauseExit(void) { if (pauseQuitF == 0) { BoardRollWinDispSet(1); BoardRollDispSet(1); @@ -132,8 +160,7 @@ static void PauseExit(void) BoardLast5GfxShowSet(1); HuAudFXPauseAll(0); HuAudSeqPauseAll(0); - } - else { + } else { BoardConfettiKill(); BoardAudSeqFadeOutAll(); HuAudAllStop(); @@ -146,8 +173,7 @@ static void PauseExit(void) omSysPauseCtrl(0); if (GWMGExplainGet()) { _SetFlag(FLAG_ID_MAKE(0, 11)); - } - else { + } else { _ClearFlag(FLAG_ID_MAKE(0, 11)); } if (GWPartyGet() == 0) { @@ -156,8 +182,7 @@ static void PauseExit(void) GWGameStat.story_pause.mg_list = GWMGListGet(); GWGameStat.story_pause.mess_speed = GWMessSpeedGet(); GWGameStat.story_pause.save_mode = GWSaveModeGet(); - } - else { + } else { GWGameStat.party_pause.explain_mg = GWMGExplainGet(); GWGameStat.party_pause.show_com_mg = GWMGShowComGet(); GWGameStat.party_pause.mg_list = GWMGListGet(); @@ -167,8 +192,7 @@ static void PauseExit(void) mainProcess = NULL; } -static void PauseProcess(void) -{ +static void PauseProcess(void) { s32 temp_r31; pauseQuitF = 0; @@ -198,16 +222,14 @@ static void PauseProcess(void) HuPrcSleep(20); WipeColorSet(0, 0, 0); BoardKill(); - } - else { + } else { BoardFilterFadeOut(30); HuPrcSleep(30); } HuPrcEnd(); } -void CreatePauseScreen(void) -{ +void CreatePauseScreen(void) { Mtx sp30; Vec sp24; Vec sp18; @@ -272,12 +294,10 @@ void CreatePauseScreen(void) if (GWPartyGet() == 1) { if (GWTeamGet()) { HuSprBankSet(pauseSprGrp, 2, 2); - } - else { + } else { HuSprBankSet(pauseSprGrp, 2, 0); } - } - else { + } else { HuSprBankSet(pauseSprGrp, 2, 1); } for (i = 0; i < 4; i++) { @@ -314,8 +334,7 @@ void CreatePauseScreen(void) sp24.x = 68.0f; if (GWBoardGet() == 3) { sp24.y = 464.0f; - } - else { + } else { sp24.y = 434.0f; } sp24.z = 1100.0f; @@ -417,8 +436,7 @@ void CreatePauseScreen(void) SetBoxVisible(0); } -static void DeletePauseScreen(void) -{ +static void DeletePauseScreen(void) { ConfigWork *temp_r30; Mtx sp8; s32 i; @@ -443,7 +461,7 @@ static void DeletePauseScreen(void) HuSprGrpKill(pauseCursorPos); pauseCursorPos = -1; } - MTXIdentity(sp8); + PSMTXIdentity(sp8); BoardModelLayerSet(hostMdl, hostOldLayer); BoardModelVisibilitySet(hostMdl, 1); BoardModelMtxSet(hostMdl, &sp8); @@ -453,8 +471,7 @@ static void DeletePauseScreen(void) } } -static void SetBoxVisible(s32 arg0) -{ +static void SetBoxVisible(s32 arg0) { s32 i; for (i = 0; i < 8; i++) { @@ -462,8 +479,7 @@ static void SetBoxVisible(s32 arg0) } } -static void PauseConfigObjFunc(omObjData *arg0) -{ +static void PauseConfigObjFunc(omObjData *arg0) { ConfigWork *temp_r31; s16 temp_r28; s32 var_r29; @@ -562,8 +578,7 @@ static void PauseConfigObjFunc(omObjData *arg0) InitPauseQuit(arg0, temp_r31); break; } - } - else { + } else { cursorPos = ExecPauseConfig(arg0, temp_r31); if (temp_r28 != cursorPos) { arg0->trans.x = -40.0f + boxPosTbl[cursorPos][0]; @@ -575,8 +590,7 @@ static void PauseConfigObjFunc(omObjData *arg0) } } -static void UpdatePauseText(s32 arg0) -{ +static void UpdatePauseText(s32 arg0) { s32 var_r28; s32 j; s32 i; @@ -589,8 +603,7 @@ static void UpdatePauseText(s32 arg0) if (i == GWPlayer[j].port) { if (GWPlayer[j].com) { var_r28 = MAKE_MESSID(16, 30); - } - else { + } else { var_r28 = MAKE_MESSID(16, 29); } HuWinInsertMesSet(settingsWin, var_r28, i); @@ -602,16 +615,14 @@ static void UpdatePauseText(s32 arg0) case 1: if (boxState[arg0] != 0) { HuWinMesSet(settingsWin, MAKE_MESSID(16, 33)); - } - else { + } else { HuWinMesSet(settingsWin, MAKE_MESSID(16, 34)); } break; case 2: if (boxState[arg0] != 0) { HuWinMesSet(settingsWin, MAKE_MESSID(16, 35)); - } - else { + } else { HuWinMesSet(settingsWin, MAKE_MESSID(16, 36)); } break; @@ -631,8 +642,7 @@ static void UpdatePauseText(s32 arg0) case 4: if (boxState[arg0] != 0) { HuWinMesSet(settingsWin, MAKE_MESSID(16, 40)); - } - else { + } else { HuWinMesSet(settingsWin, MAKE_MESSID(16, 41)); } break; @@ -668,8 +678,7 @@ static void UpdatePauseText(s32 arg0) } } -static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) -{ +static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) { float var_f31; switch (arg1->unk01) { @@ -687,8 +696,7 @@ static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) if (quitWin != -1 && HuWinStatGet(quitWin) == 3) { if (HuWinChoiceNowGet(quitWin) != 0) { HuWinMesSet(settingsWin, MAKE_MESSID(16, 51)); - } - else { + } else { HuWinMesSet(settingsWin, MAKE_MESSID(16, 50)); } } @@ -717,8 +725,7 @@ static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) } } -static void PauseQuitProcess(void) -{ +static void PauseQuitProcess(void) { WindowData *temp_r31; float sp10[2]; float sp8[2]; @@ -741,8 +748,7 @@ static void PauseQuitProcess(void) HuPrcEnd(); } -static void DeletePauseQuit(void) -{ +static void DeletePauseQuit(void) { if (quitWin != -1) { HuWinExCleanup(quitWin); quitWin = -1; @@ -751,8 +757,7 @@ static void DeletePauseQuit(void) quitProcess = NULL; } -static s32 UpdatePadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static s32 UpdatePadConfig(omObjData *arg0, ConfigWork *arg1) { switch (arg1->unk01) { case 0: CreatePadConfig(arg0, arg1); @@ -772,14 +777,12 @@ static s32 UpdatePadConfig(omObjData *arg0, ConfigWork *arg1) } if (arg1->unk00_field1 != 0) { return 0; - } - else { + } else { return 1; } } -static void CreatePadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static void CreatePadConfig(omObjData *arg0, ConfigWork *arg1) { Vec sp14; Vec sp8; s32 i; @@ -814,8 +817,7 @@ static void CreatePadConfig(omObjData *arg0, ConfigWork *arg1) arg1->unk01 = 1; } -static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) { Vec sp8; s32 i; @@ -832,8 +834,7 @@ static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) arg1->unk04 = 0; arg1->unk05 = 0; arg1->unk01 = 0; - } - else { + } else { arg1->unk01 = 2; } return; @@ -847,8 +848,7 @@ static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) arg1->unk07--; } -static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) { float sp8[4]; s32 temp_r29; u32 temp_r30; @@ -861,19 +861,16 @@ static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) if (GWPlayer[temp_r29].com) { arg1->unk00_field3 = GWPlayer[temp_r29].diff + 1; arg1->unk05 = GWPlayer[temp_r29].diff + 1; - } - else { + } else { arg1->unk00_field3 = 0; arg1->unk05 = 0; } HuSprBankSet(padConfigSprGrp, arg1->unk04 + 8, 1); HuAudFXPlay(2); - } - else if (temp_r30 == 0x200) { + } else if (temp_r30 == 0x200) { HuAudFXPlay(3); arg1->unk01 = 4; - } - else { + } else { if (temp_r30 == 1) { arg1->unk04--; } @@ -882,11 +879,9 @@ static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) } if (arg1->unk04 < 0) { arg1->unk04 = 0; - } - else if (arg1->unk04 >= 4) { + } else if (arg1->unk04 >= 4) { arg1->unk04 = 3; - } - else if (temp_r30 == 1 || temp_r30 == 2) { + } else if (temp_r30 == 1 || temp_r30 == 2) { HuAudFXPlay(0); arg1->unk06 = 4; } @@ -896,8 +891,7 @@ static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) } } -static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { s32 temp_r29; s32 var_r28; s32 var_r26; @@ -907,15 +901,13 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) var_r30 = 0; if (HuPadStkX[pausePad] < -20) { var_r30 |= 1; - } - else if (HuPadStkX[pausePad] > 20) { + } else if (HuPadStkX[pausePad] > 20) { var_r30 |= 2; } temp_r29 = CheckPort(arg1->unk04); if (GWGameStat.veryHardUnlock != 0) { var_r27 = 4; - } - else { + } else { var_r27 = 3; } HuWinMesSet(settingsWin, MAKE_MESSID(16, 32)); @@ -924,15 +916,13 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) if (arg1->unk09++ < 10) { return; } - } - else { + } else { if (arg1->unk09++ < 2) { return; } arg1->unk0C = var_r30; } - } - else { + } else { arg1->unk0C = 0; } arg1->unk09 = 0; @@ -946,8 +936,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) if (var_r28 != 0) { HuAudFXPlay(0); arg1->unk06 = 4; - } - else { + } else { if (HuPadBtnDown[pausePad] == 0x100) { arg1->unk01 = 2; if (arg1->unk05 != 0) { @@ -955,8 +944,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) GWPlayerCfg[temp_r29].iscom = 1; GWPlayer[temp_r29].diff = arg1->unk05 - 1; GWPlayerCfg[temp_r29].diff = arg1->unk05 - 1; - } - else { + } else { GWPlayer[temp_r29].com = 0; GWPlayerCfg[temp_r29].iscom = 0; } @@ -979,21 +967,18 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) } if (arg1->unk05 > var_r27) { arg1->unk05 = 0; - } - else if (arg1->unk05 < 0) { + } else if (arg1->unk05 < 0) { arg1->unk05 = var_r27; } if (arg1->unk05 != 0) { var_r26 = arg1->unk05 + 3; - } - else { + } else { var_r26 = arg1->unk04; } HuSprBankSet(padConfigSprGrp, arg1->unk04 + 4, var_r26); } -static void ScrollOutPadConfig(omObjData *arg0, ConfigWork *arg1) -{ +static void ScrollOutPadConfig(omObjData *arg0, ConfigWork *arg1) { Vec sp14; Vec sp8; @@ -1018,8 +1003,7 @@ static void ScrollOutPadConfig(omObjData *arg0, ConfigWork *arg1) arg1->unk00_field2 = 1; } -static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) -{ +static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) { float var_f31; float var_f30; float var_f29; @@ -1047,26 +1031,21 @@ static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) } if (arg1->unk04 < 0) { arg1->unk04 = 0; - } - else if (arg1->unk04 > 1) { + } else if (arg1->unk04 > 1) { arg1->unk04 = 1; - } - else if (temp_r28 == 1 || temp_r28 == 2) { + } else if (temp_r28 == 1 || temp_r28 == 2) { HuAudFXPlay(0); } if (temp_r28 == 0x100) { arg1->unk01 = 3; HuAudFXPlay(2); - } - else if (temp_r28 == 0x200) { + } else if (temp_r28 == 0x200) { arg1->unk01 = 4; HuAudFXPlay(3); - } - else if (temp_r27 != arg1->unk04) { + } else if (temp_r27 != arg1->unk04) { if (arg1->unk04 != 0) { var_f30 = 0.0f; - } - else { + } else { var_f30 = -90.0f; } var_f29 = arg0->rot.x; @@ -1079,8 +1058,7 @@ static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) if (arg1->unk07 != 0) { arg0->rot.x += arg0->rot.y; arg1->unk07--; - } - else { + } else { arg1->unk01 = 1; } break; @@ -1113,8 +1091,7 @@ static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) return 0; } -static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) -{ +static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) { float var_f31; float var_f30; float var_f29; @@ -1125,8 +1102,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) if (arg2 == 3 && GWGameStat.customPackEnable == 0) { var_r27 = 1; - } - else { + } else { var_r27 = 2; } switch (arg1->unk01) { @@ -1149,22 +1125,18 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) } if (arg1->unk04 < 0) { arg1->unk04 = 0; - } - else if (arg1->unk04 > var_r27) { + } else if (arg1->unk04 > var_r27) { arg1->unk04 = var_r27; - } - else if (temp_r28 == 1 || temp_r28 == 2) { + } else if (temp_r28 == 1 || temp_r28 == 2) { HuAudFXPlay(0); } if (temp_r28 == 0x100) { arg1->unk01 = 3; HuAudFXPlay(2); - } - else if (temp_r28 == 0x200) { + } else if (temp_r28 == 0x200) { arg1->unk01 = 4; HuAudFXPlay(3); - } - else if (temp_r26 != arg1->unk04) { + } else if (temp_r26 != arg1->unk04) { switch (arg1->unk04) { case 0: var_f30 = 90.0f; @@ -1186,8 +1158,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) if (arg1->unk07 != 0) { arg0->rot.x += arg0->rot.y; arg1->unk07--; - } - else { + } else { arg1->unk01 = 1; } break; @@ -1220,8 +1191,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) return 0; } -static s32 ExecPauseConfig(omObjData *arg0, ConfigWork *arg1) -{ +static s32 ExecPauseConfig(omObjData *arg0, ConfigWork *arg1) { s32 var_r27; s32 var_r26; s32 var_r29; @@ -1248,21 +1218,17 @@ static s32 ExecPauseConfig(omObjData *arg0, ConfigWork *arg1) arg1->unk03 += var_r28; if (arg1->unk03 < 0) { arg1->unk03 = 0; - } - else if (arg1->unk03 >= 2) { + } else if (arg1->unk03 >= 2) { arg1->unk03 = 1; - } - else if (var_r28 != 0) { + } else if (var_r28 != 0) { HuAudFXPlay(0); arg1->unk06 = 4; } if (arg1->unk02 < 0) { arg1->unk02 = 0; - } - else if (arg1->unk02 >= 4) { + } else if (arg1->unk02 >= 4) { arg1->unk02 = 3; - } - else if (var_r29 != 0) { + } else if (var_r29 != 0) { HuAudFXPlay(0); arg1->unk06 = 4; } @@ -1285,8 +1251,7 @@ static s32 ExecPauseConfig(omObjData *arg0, ConfigWork *arg1) } if (var_r26 != 0) { HuAudFXPlay(4); - } - else if (var_r27 != 0) { + } else if (var_r27 != 0) { HuAudFXPlay(2); arg1->unk00_field1 = 1; } @@ -1298,8 +1263,7 @@ static s32 ExecPauseConfig(omObjData *arg0, ConfigWork *arg1) return arg1->unk02 + arg1->unk03 * 4; } -static void CreatePauseControlWin(void) -{ +static void CreatePauseControlWin(void) { float sp8[2]; float var_f31; float var_f30; @@ -1316,8 +1280,7 @@ static void CreatePauseControlWin(void) HuWinDispOff(settingsControlWin); if (GWBoardGet() == 7 || GWBoardGet() == 8) { var_r31 = MAKE_MESSID(16, 73); - } - else { + } else { var_r31 = MAKE_MESSID(16, 52); } HuWinMesMaxSizeGet(1, sp8, var_r31); @@ -1341,8 +1304,7 @@ static void CreatePauseControlWin(void) sp8[1] = 128.0f; } -static void DeletePauseControlWin(void) -{ +static void DeletePauseControlWin(void) { if (settingsControlWin != -1) { HuWinKill(settingsControlWin); settingsControlWin = -1; @@ -1357,8 +1319,7 @@ static void DeletePauseControlWin(void) } } -static s32 WaitPauseInput(void) -{ +static s32 WaitPauseInput(void) { s32 var_r28; s32 var_r31; u32 temp_r30; @@ -1366,8 +1327,7 @@ static s32 WaitPauseInput(void) mainScreenF = 1; if (GWBoardGet() == 7 || GWBoardGet() == 8) { var_r28 = 1; - } - else { + } else { var_r28 = 0; } HuWinDispOn(controlWin); @@ -1384,15 +1344,13 @@ static s32 WaitPauseInput(void) var_r31 = 0; HuAudFXPlay(0x1C); break; - } - else if (var_r28 == 0) { + } else if (var_r28 == 0) { if (temp_r30 == 0x100) { var_r31 = 1; HuAudFXPlay(1); break; } - } - else if (temp_r30 == 0x10) { + } else if (temp_r30 == 0x10) { pauseQuitF = 1; var_r31 = 2; mgQuitExtraF = 1; @@ -1410,8 +1368,7 @@ static s32 WaitPauseInput(void) return var_r31; } -static void ShowPauseConfig(void) -{ +static void ShowPauseConfig(void) { float var_f31; float var_f30; @@ -1426,8 +1383,7 @@ static void ShowPauseConfig(void) var_f30 = boxPosTbl[0][1]; HuSprPosSet(pauseCursorPos, 1, var_f31, var_f30); HuSprAttrReset(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); - } - else { + } else { HuSprAttrSet(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } while (configObj) { @@ -1435,8 +1391,7 @@ static void ShowPauseConfig(void) } } -static void CreatePadConfigSprite(void) -{ +static void CreatePadConfigSprite(void) { float temp_f31; float temp_f30; s32 var_r29; @@ -1460,8 +1415,7 @@ static void CreatePadConfigSprite(void) HuSprBankSet(padConfigSprGrp, i, temp_r28); if (temp_r26 != 0) { var_r29 = temp_r27 + 4; - } - else { + } else { var_r29 = i; } HuSprBankSet(padConfigSprGrp, i + 4, var_r29); @@ -1473,8 +1427,7 @@ static void CreatePadConfigSprite(void) HuSprGrpPosSet(padConfigSprGrp, 0.0f, 0.0f); } -static void ShowPadConfigSprite(s32 arg0) -{ +static void ShowPadConfigSprite(s32 arg0) { s32 temp_r31; s32 i; @@ -1484,8 +1437,7 @@ static void ShowPadConfigSprite(s32 arg0) HuSprAttrReset(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); HuSprAttrReset(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); HuSprAttrReset(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); - } - else { + } else { HuSprAttrSet(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); HuSprAttrSet(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); HuSprAttrSet(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); @@ -1493,14 +1445,12 @@ static void ShowPadConfigSprite(s32 arg0) } if (arg0 != 0) { HuSprAttrReset(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); - } - else { + } else { HuSprAttrSet(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); } } -static void PauseCreateNumber(s32 arg0, s8 arg1) -{ +static void PauseCreateNumber(s32 arg0, s8 arg1) { s32 var_r31; s32 temp_r30; s32 temp_r29; @@ -1509,26 +1459,22 @@ static void PauseCreateNumber(s32 arg0, s8 arg1) temp_r30 = arg1 / 10; if (arg0 == 0) { var_r31 = 3; - } - else { + } else { var_r31 = 5; } if (temp_r30 != 0) { HuSprBankSet(pauseSprGrp, var_r31, temp_r30); - } - else { + } else { HuSprAttrSet(pauseSprGrp, var_r31, 4); } HuSprBankSet(pauseSprGrp, var_r31 + 1, temp_r29); } -BOOL BoardPauseActiveCheck(void) -{ +BOOL BoardPauseActiveCheck(void) { return (mainProcess != NULL) ? TRUE : FALSE; } -BOOL BoardPauseReqCheck(void) -{ +BOOL BoardPauseReqCheck(void) { s32 temp_r30; s32 i; @@ -1549,8 +1495,7 @@ BOOL BoardPauseReqCheck(void) return FALSE; } -static s32 CheckPort(s32 arg0) -{ +static s32 CheckPort(s32 arg0) { s32 i; for (i = 0; i < 4; i++) { @@ -1561,8 +1506,7 @@ static s32 CheckPort(s32 arg0) return i; } -static void RotateBox(float arg0, float arg1, Mtx arg2) -{ +static void RotateBox(float arg0, float arg1, Mtx arg2) { Vec sp14; Mtx spB0; Mtx sp80; @@ -1570,11 +1514,11 @@ static void RotateBox(float arg0, float arg1, Mtx arg2) Mtx sp20; BoardCameraRotGet(&sp14); - MTXRotRad(spB0, 'x', MTXDegToRad(sp14.x)); - MTXRotRad(sp80, 'y', MTXDegToRad(sp14.y)); - MTXRotRad(sp50, 'x', MTXDegToRad(arg0)); - MTXRotRad(sp20, 'y', MTXDegToRad(arg1)); - MTXConcat(sp80, spB0, sp80); - MTXConcat(sp50, sp20, sp20); - MTXConcat(sp80, sp20, arg2); + PSMTXRotRad(spB0, 'x', MTXDegToRad(sp14.x)); + PSMTXRotRad(sp80, 'y', MTXDegToRad(sp14.y)); + PSMTXRotRad(sp50, 'x', MTXDegToRad(arg0)); + PSMTXRotRad(sp20, 'y', MTXDegToRad(arg1)); + PSMTXConcat(sp80, spB0, sp80); + PSMTXConcat(sp50, sp20, sp20); + PSMTXConcat(sp80, sp20, arg2); } diff --git a/src/game/board/player.c b/src/game/board/player.c index f791cbc2..046aafea 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -21,8 +21,6 @@ #include "ext_math.h" #include "stdlib.h" -#include - static void InitJunction(s32, s32, f32); static void UpdateJunctionGfx(omObjData *); static void StopJunctionPlayer(s32); @@ -69,7 +67,7 @@ static HsfMaterial *playerMatCopy[4]; static s32 (*postTurnHook[4])(); static s32 (*preTurnHook[4])(); -SHARED_SYM s16 boardPlayerMdl[4]; +s16 boardPlayerMdl[4]; static s16 playerMot[4]; static s8 itemPrev; static s8 moveAwayPlayer[4]; @@ -185,7 +183,7 @@ static s32 boardSparkSfxTblAlt[] = { 0x2E3, }; -static omObjData *megaSquishObj[4] = {NULL, NULL, NULL, NULL}; +static omObjData *megaSquishObj[4] = {}; static s32 megaSquishSfxTbl[] = { 0x128, @@ -268,6 +266,7 @@ void BoardPlayerModelInit(void) s32 temp_r25; s32 temp_r24; s16 temp_r3; + s32 temp_r4; PlayerState *temp_r27; s32 ro0[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00), @@ -338,6 +337,7 @@ void BoardPlayerModelKill(void) { s32 var_r31; PlayerState *temp_r30; + PlayerState *temp_r29; for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = BoardPlayerGet(var_r31); @@ -689,6 +689,7 @@ s32 BoardPlayerCoinsGet(s32 arg0) void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) { PlayerState *player; + s16 coins; player = BoardPlayerGet(arg0); if ((arg1 > 0) && (player->coins_total < 0x3E7)) { @@ -729,11 +730,9 @@ s32 BoardPlayerSizeGet(s32 idx) PlayerState *player; player = BoardPlayerGet(idx); -#ifndef NON_MATCHING if (!player) { return; } -#endif return player->size; } @@ -834,6 +833,7 @@ void BoardPlayerTurnExec(s32 arg0) void BoardPlayerTurnRollExec(s32 arg0) { + s32 temp_r28; s32 temp_r30; GWPlayer[arg0].roll = 0; @@ -876,6 +876,8 @@ void BoardPlayerTurnMoveExec(s32 arg0) s32 temp_r30; s32 var_r29; s32 var_r28; + s32 temp_r0; + s32 temp_r1; BoardPauseDisableSet(1); var_r28 = 0; @@ -975,6 +977,7 @@ void BoardPlayerTurnMoveExec(s32 arg0) GWSystem.bowser_event = 0xF; } BoardPlayerZoomRestore(arg0); + return; } void BoardPlayerPostTurnHookExec(s32 arg0) @@ -1064,6 +1067,9 @@ static inline GetLinkCount(s32 playerIdx, s32 boardIdx) s32 linkCount; BoardSpace *boardSpaceLink; BoardSpace *boardSpaceFlag; + PlayerState *player; + s32 color; + s32 temp; linkCount = 0; boardSpaceLink = BoardSpaceGet(0, boardIdx); @@ -1319,6 +1325,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) s32 var_r21; s32 var_r20; s32 var_r18; + bitcopy *var_r17; var_r18 = -1; @@ -1646,6 +1653,7 @@ void BoardPlayerMoveTo(s32 arg0, s32 arg1) { Vec sp18; Vec spC; + PlayerState *player; BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18); BoardSpacePosGet(0, arg1, &spC); @@ -1659,6 +1667,8 @@ void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) { Vec sp1C; Vec sp10; + s32 spC; + s32 sp8; BoardSpacePosGet(0, arg1, &sp1C); BoardSpacePosGet(0, arg2, &sp10); @@ -1672,6 +1682,7 @@ void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) { Vec sp18; Vec spC; + s32 sp8; BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18); BoardSpacePosGet(0, arg1, &spC); @@ -1857,8 +1868,11 @@ static void DiceJumpFunc(omObjData *arg0) { Vec sp38; f32 temp_f31; + PlayerState *var_r30; bitcopy2 *temp_r31; s16 var_r28; + s32 var_r23; + s32 var_r17; temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2); if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -1924,6 +1938,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) f32 var_f27; f32 var_f22; f32 var_f21; + f32 var_f19; omObjData *temp_r3; s32 var_r22; s32 var_r20; @@ -2197,7 +2212,11 @@ static void UpdateRoll(omObjData *arg0) void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) { - s32 temp_r31 = GWPlayer[arg0].port; + s32 spC; + s32 sp8; + s32 temp_r31; + + temp_r31 = GWPlayer[arg0].port; while (1) { if ((HuPadBtnDown[temp_r31] & arg1) != 0) return; @@ -2207,7 +2226,9 @@ void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) void BoardPlayerAutoSizeSet(s32 player, s32 value) { - PlayerState *temp_r28 = BoardPlayerGet(player); + PlayerState *temp_r28; + + temp_r28 = BoardPlayerGet(player); if ((temp_r28->auto_size != 0) || (value == 0)) { BoardStatusHammerKill(player); } @@ -2222,11 +2243,9 @@ s32 BoardPlayerAutoSizeGet(s32 arg0) PlayerState *player; player = BoardPlayerGet(arg0); -#ifndef NON_MATCHING if (!player) { return; } -#endif return player->auto_size; } @@ -2341,6 +2360,8 @@ void BoardBowserSuitInit(s32 arg0) void BoardBowserSuitKill(s32 arg0) { + bitcopy3 *temp; + if (bowserSuitObj != 0) { OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1; } diff --git a/src/game/board/shop.c b/src/game/board/shop.c index f790efb1..47b332c3 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -1,5 +1,13 @@ #include "game/board/shop.h" #include "game/audio.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/disp.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" #include "game/board/audio.h" #include "game/board/com.h" #include "game/board/com_path.h" @@ -12,20 +20,10 @@ #include "game/board/ui.h" #include "game/board/view.h" #include "game/board/window.h" -#include "game/disp.h" -#include "game/gamework.h" -#include "game/gamework_data.h" -#include "game/object.h" -#include "game/objsub.h" -#include "game/pad.h" -#include "game/process.h" -#include "game/sprite.h" #include "dolphin.h" #include "ext_math.h" -#include - typedef struct { struct { u8 unk00_field0 : 1; @@ -105,20 +103,39 @@ static Process *shopProc; static s16 itemMdl = -1; static s8 itemChoice = -1; -static BoardModelParam shopMdlParam[1] = { { 0x00070094, { 0, 1, 0, 0, 0 }, -1 } }; +static BoardModelParam shopMdlParam[1] = { + { 0x00070094, { 0, 1, 0, 0, 0 }, -1 } +}; static s16 hostMdl = -1; static s16 shopMot[3] = { -1, -1, -1 }; static s8 itemCurChoice = -1; -static s8 defaultItemTbl[5] = { 0x05, 0x07, 0x02, 0x03, 0x00 }; +static s8 defaultItemTbl[5] = { + 0x05, 0x07, 0x02, 0x03, 0x00 +}; -static s32 hostMessTbl[] = { MAKE_MESSID(0x0F, 0x04), MAKE_MESSID(0x0F, 0x07), MAKE_MESSID(0x0F, 0x0A), MAKE_MESSID(0x0F, 0x0D), - MAKE_MESSID(0x0F, 0x10), MAKE_MESSID(0x0F, 0x13), MAKE_MESSID(0x0F, 0x04), MAKE_MESSID(0x0F, 0x24), MAKE_MESSID(0x0F, 0x24) }; +static s32 hostMessTbl[] = { + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x07), + MAKE_MESSID(0x0F, 0x0A), + MAKE_MESSID(0x0F, 0x0D), + MAKE_MESSID(0x0F, 0x10), + MAKE_MESSID(0x0F, 0x13), + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x24), + MAKE_MESSID(0x0F, 0x24) +}; -static s8 itemPriceTbl[] = { 5, 5, 15, 15, 10, 10, 15, 15, 15, 15, 0, 25, 30, 30, 0, 0 }; +static s8 itemPriceTbl[] = { + 5, 5, 15, 15, + 10, 10, 15, 15, + 15, 15, 0, 25, + 30, 30, 0, 0 +}; -static s32 shopMotTbl[9][3] = { { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, +static s32 shopMotTbl[9][3] = { + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, { DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) }, { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, @@ -126,26 +143,27 @@ static s32 shopMotTbl[9][3] = { { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE { DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) }, { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) }, - { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) } }; + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) } +}; -void BoardShopHostSet(s16 arg0) -{ +void BoardShopHostSet(s16 arg0) { hostMdl = arg0; } -s16 BoardShopHostGet(void) -{ +s16 BoardShopHostGet(void) { return hostMdl; } -void BoardShopInit(void) -{ +void BoardShopInit(void) { BoardModelParam *var_r29; Vec sp1C; Vec sp10; s32 j; s32 i; - s32 sp8[2] = { 0x00080000, 0x00100000 }; + s32 sp8[2] = { + 0x00080000, + 0x00100000 + }; for (i = 0; i < 2; i++) { BoardSpaceLinkTransformGet(sp8[i], &sp1C, &sp10, 0); @@ -158,8 +176,7 @@ void BoardShopInit(void) BoardModelVisibilitySet(hostMdl, 0); } -void BoardShopKill(void) -{ +void BoardShopKill(void) { s32 i; s32 j; @@ -173,8 +190,7 @@ void BoardShopKill(void) } } -void BoardShopExec(s32 player, s32 space) -{ +void BoardShopExec(s32 player, s32 space) { if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { return; } @@ -188,8 +204,7 @@ void BoardShopExec(s32 player, s32 space) BoardRollDispSet(1); } -static void ExecShop(void) -{ +static void ExecShop(void) { Vec sp38; Vec sp2C; Vec sp20; @@ -214,8 +229,7 @@ static void ExecShop(void) temp_r28 = GWPlayer[shopPlayer].space_curr; if (BoardSpaceFlagGet(0, temp_r28) & 0x80000) { shopMdlPtr = shopMdlIdx[0]; - } - else { + } else { shopMdlPtr = shopMdlIdx[1]; } BoardPlayerIdleSet(shopPlayer); @@ -301,8 +315,7 @@ static void ExecShop(void) if (var_r29 > BoardPlayerCoinsGet(shopPlayer)) { BoardWinChoiceDisable(i); choiceEnableTbl[i] = 0; - } - else { + } else { choiceEnableTbl[i] = 1; } } @@ -319,8 +332,7 @@ static void ExecShop(void) HuPrcSleep(0xF); if (itemCurChoice == -1 || itemCurChoice == 5 || itemCurChoice == 0x7F) { PauseShopWin(); - } - else { + } else { PauseShopWin(); while (!BoardStatusStopCheck(shopPlayer)) { HuPrcVSleep(); @@ -334,8 +346,7 @@ static void ExecShop(void) temp_r24 = itemPriceTbl[activeItemTbl[itemCurChoice]]; if (temp_r24 >= 20) { var_r23 = 3; - } - else { + } else { var_r23 = 6; } var_f30 = BoardDAngleCalc(180.0f + BoardPlayerRotYGet(shopPlayer)); @@ -380,8 +391,7 @@ static void ExecShop(void) HuPrcEnd(); } -static void DestroyShop(void) -{ +static void DestroyShop(void) { s16 temp_r30; s32 i; @@ -403,8 +413,7 @@ static void DestroyShop(void) shopProc = NULL; } -static void PopupShop(void) -{ +static void PopupShop(void) { s32 i; for (i = 0; i < 2; i++) { @@ -434,8 +443,7 @@ static void PopupShop(void) } } -static void CloseShop(void) -{ +static void CloseShop(void) { BoardModelMotionStart(shopMdlPtr[0], 0, 0x40000004); while (BoardModelMotionTimeGet(shopMdlPtr[0]) > 28.0f) { HuPrcVSleep(); @@ -450,8 +458,7 @@ static void CloseShop(void) BoardModelVisibilitySet(BoardShopHostGet(), 0); } -static void CreateShopWin(void) -{ +static void CreateShopWin(void) { Vec sp8; omObjData *var_r31; ShopWinWork *var_r30; @@ -466,12 +473,12 @@ static void CreateShopWin(void) var_r30->unk01 = 0xC; var_r30->unk04 = 0; shopWinObj = var_r31; - var_r30->unk06 = HuWinCreate(36.0f, HU_DISP_HEIGHT - 136, 0x1F8, 0x60, 0); + var_r30->unk06 = HuWinCreate(36.0f, HU_DISP_HEIGHT-136, 0x1F8, 0x60, 0); HuWinMesSpeedSet(var_r30->unk06, 0); HuWinDrawNoSet(var_r30->unk06, 0x40); HuWinExAnimIn(var_r30->unk06); sp8.x = 84.0f; - sp8.y = HU_DISP_HEIGHT - 88; + sp8.y = HU_DISP_HEIGHT-88; sp8.z = 400.0f; var_r31->scale.x = var_r31->scale.y = var_r31->scale.z = 0.25f; Hu3D2Dto3D(&sp8, 1, &sp8); @@ -481,8 +488,7 @@ static void CreateShopWin(void) var_r31->scale.x = var_r31->scale.y = var_r31->scale.z = 1.0f; } -static void UpdateShopWin(omObjData *arg0) -{ +static void UpdateShopWin(omObjData *arg0) { Vec spC; float var_f29; float var_f28; @@ -511,8 +517,7 @@ static void UpdateShopWin(omObjData *arg0) if (temp_r28->unk00_field0 == 0) { BoardModelVisibilitySet(itemMdl, 0); } - } - else { + } else { HuWinDispOn(temp_r28->unk06); SetShopWinItem(temp_r28, arg0); BoardModelVisibilitySet(itemMdl, 1); @@ -538,9 +543,9 @@ static void UpdateShopWin(omObjData *arg0) } arg0->rot.y = BoardDAngleCalc(arg0->rot.y + 2.0f); BoardCameraRotGet(&spC); - MTXRotRad(sp48, 'y', MTXDegToRad(arg0->rot.y)); - MTXRotRad(sp18, 'x', MTXDegToRad(spC.x + 10.0f)); - MTXConcat(sp18, sp48, sp48); + PSMTXRotRad(sp48, 'y', MTXDegToRad(arg0->rot.y)); + PSMTXRotRad(sp18, 'x', MTXDegToRad(spC.x + 10.0f)); + PSMTXConcat(sp18, sp48, sp48); BoardModelMtxSet(itemMdl, &sp48); BoardModelRotSet(itemMdl, 0.0f, 0.0f, 0.0f); BoardModelPosSet(itemMdl, arg0->trans.x, arg0->trans.y + var_f29, arg0->trans.z); @@ -549,8 +554,7 @@ static void UpdateShopWin(omObjData *arg0) } } -static void SetShopWinItem(ShopWinWork *arg0, omObjData *arg1) -{ +static void SetShopWinItem(ShopWinWork *arg0, omObjData *arg1) { Vec spC; s32 var_r26; s8 temp_r28; @@ -577,16 +581,14 @@ static void SetShopWinItem(ShopWinWork *arg0, omObjData *arg1) } } -static void PauseShopWin(void) -{ +static void PauseShopWin(void) { if (shopWinObj) { OM_GET_WORK_PTR(shopWinObj, ShopWinWork)->unk00_field0 = 1; shopWinObj = NULL; } } -void StartItemGive(void) -{ +void StartItemGive(void) { Vec sp14; Vec sp8; omObjData *temp_r30; @@ -603,7 +605,7 @@ void StartItemGive(void) BoardModelMotionStart(itemMdl, 0, 0); BoardModelMotionSpeedSet(itemMdl, 0.0f); BoardModelPosGet(itemMdl, &sp14); - MTXIdentity(sp20); + PSMTXIdentity(sp20); BoardModelMtxSet(itemMdl, &sp20); OSs16tof32(&angleVal, &temp_r30->scale.z); temp_r30->scale.z = -temp_r30->scale.z / 40.0f; @@ -619,8 +621,7 @@ void StartItemGive(void) itemGiveObj = temp_r30; } -static void ExecItemGive(omObjData *arg0) -{ +static void ExecItemGive(omObjData *arg0) { ItemGiveWork *temp_r29; float var_f30; @@ -652,8 +653,7 @@ static void ExecItemGive(omObjData *arg0) BoardModelRotYSet(itemMdl, var_f30); } -static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) -{ +static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) { Vec sp1C; Vec sp10; float temp_f27; @@ -665,15 +665,13 @@ static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) arg1->unk00_field1 = 2; BoardMakeRandomItem(); BoardItemStart(GWSystem.player_curr, 0xD); - } - else { + } else { arg1->unk00_field1 = 1; arg1->unk04 = 0xF; BoardPlayerPosGet(shopPlayer, &sp1C); if (BoardPlayerSizeGet(shopPlayer) == 1) { arg0->rot.x = (sp1C.y + 30.0f - arg0->trans.y) / 22.5f; - } - else { + } else { arg0->rot.x = (sp1C.y + 70.0f - arg0->trans.y) / 22.5f; } arg0->trans.y = arg0->rot.y; @@ -694,8 +692,7 @@ static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) BoardCameraDirGet(&sp10); var_f26 = BoardDAngleCalc(atan2d(-sp10.x, -sp10.z)); OSf32tos16(&var_f26, &angleVal); - } - else { + } else { arg0->scale.x += arg0->scale.y; arg0->trans.x += arg0->rot.x; arg0->trans.z += arg0->rot.z; @@ -709,8 +706,7 @@ static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) arg1->unk02++; } -static void ShrinkItemGive(omObjData *arg0, ItemGiveWork *arg1) -{ +static void ShrinkItemGive(omObjData *arg0, ItemGiveWork *arg1) { float var_f30; if (arg1->unk02 == 0) { @@ -737,12 +733,10 @@ static void ShrinkItemGive(omObjData *arg0, ItemGiveWork *arg1) arg1->unk02 += 4; } -static void WaitItemGive(omObjData *arg0, ItemGiveWork *arg1) -{ +static void WaitItemGive(omObjData *arg0, ItemGiveWork *arg1) { if (arg1->unk02 > 20) { BoardModelVisibilitySet(itemMdl, 0); - } - else { + } else { arg1->unk02++; } if (BoardItemDoneCheck()) { @@ -750,25 +744,44 @@ static void WaitItemGive(omObjData *arg0, ItemGiveWork *arg1) } } -static s8 itemPrioTbl[2][5][14] = { { { 0x14, 0x14, 0x0F, 0x0F, 0x05, 0x07, 0x05, 0x05, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00 }, - { 0x0F, 0x0F, 0x0D, 0x0A, 0x0A, 0x0A, 0x0A, 0x05, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00 }, - { 0x07, 0x07, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, 0x08, 0x05, 0x09, 0x00, 0x08, 0x00, 0x00 }, - { 0x0A, 0x0A, 0x0D, 0x0C, 0x0A, 0x0A, 0x07, 0x0A, 0x05, 0x05, 0x00, 0x08, 0x00, 0x00 }, - { 0x07, 0x07, 0x0D, 0x0A, 0x0D, 0x07, 0x0A, 0x0A, 0x07, 0x08, 0x00, 0x08, 0x00, 0x00 } }, - { { 0x0F, 0x0F, 0x12, 0x0F, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x02, 0x05, 0x05 }, +static s8 itemPrioTbl[2][5][14] = { + { + { 0x14, 0x14, 0x0F, 0x0F, 0x05, 0x07, 0x05, 0x05, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00 }, + { 0x0F, 0x0F, 0x0D, 0x0A, 0x0A, 0x0A, 0x0A, 0x05, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00 }, + { 0x07, 0x07, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, 0x08, 0x05, 0x09, 0x00, 0x08, 0x00, 0x00 }, + { 0x0A, 0x0A, 0x0D, 0x0C, 0x0A, 0x0A, 0x07, 0x0A, 0x05, 0x05, 0x00, 0x08, 0x00, 0x00 }, + { 0x07, 0x07, 0x0D, 0x0A, 0x0D, 0x07, 0x0A, 0x0A, 0x07, 0x08, 0x00, 0x08, 0x00, 0x00 } + }, + { + { 0x0F, 0x0F, 0x12, 0x0F, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x02, 0x05, 0x05 }, { 0x0F, 0x0F, 0x0D, 0x0A, 0x07, 0x0A, 0x07, 0x03, 0x00, 0x07, 0x00, 0x00, 0x05, 0x08 }, { 0x05, 0x04, 0x0D, 0x0C, 0x0A, 0x05, 0x0A, 0x08, 0x05, 0x05, 0x00, 0x05, 0x08, 0x0A }, { 0x07, 0x04, 0x0D, 0x0C, 0x08, 0x08, 0x07, 0x0A, 0x05, 0x05, 0x00, 0x05, 0x08, 0x08 }, - { 0x03, 0x02, 0x0D, 0x0A, 0x0D, 0x03, 0x08, 0x08, 0x07, 0x07, 0x00, 0x08, 0x08, 0x0A } } }; + { 0x03, 0x02, 0x0D, 0x0A, 0x0D, 0x03, 0x08, 0x08, 0x07, 0x07, 0x00, 0x08, 0x08, 0x0A } + } +}; -static s8 rankItemGroupTbl[2][4][3] = { { { 0x00, 0x01, 0x03 }, { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 } }, - { { 0x00, 0x01, 0x03 }, { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 } } }; +static s8 rankItemGroupTbl[2][4][3] = { + { + { 0x00, 0x01, 0x03 }, { 0x00, 0x02, 0x04 }, + { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 } + }, + { + { 0x00, 0x01, 0x03 }, { 0x00, 0x02, 0x04 }, + { 0x00, 0x02, 0x04 }, { 0x00, 0x02, 0x04 } + } +}; -static float cursorPosTbl[6][2] - = { { 190.0f, 182.0f }, { 190.0f, 208.0f }, { 190.0f, 234.0f }, { 190.0f, 260.0f }, { 190.0f, 286.0f }, { 190.0f, 312.0f } }; +static float cursorPosTbl[6][2] = { + { 190.0f, 182.0f }, + { 190.0f, 208.0f }, + { 190.0f, 234.0f }, + { 190.0f, 260.0f }, + { 190.0f, 286.0f }, + { 190.0f, 312.0f } +}; -static void GetShopItems(s32 arg0) -{ +static void GetShopItems(s32 arg0) { s32 temp_r25; s32 temp_r20; s32 temp_r19; @@ -782,11 +795,10 @@ static void GetShopItems(s32 arg0) s32 var_r29; s32 var_r30; - temp_r22 = 3.0f * ((float)GWSystem.turn / GWSystem.max_turn); + temp_r22 = 3.0f * ((float) GWSystem.turn / GWSystem.max_turn); if (BoardPlayerCoinsGet(arg0) < 30) { var_r27 = 0; - } - else { + } else { var_r27 = 1; } temp_r19 = rankItemGroupTbl[var_r27][GWPlayer[arg0].rank][temp_r22]; @@ -827,8 +839,7 @@ static void GetShopItems(s32 arg0) } } -static void GetDefaultShopItems(s32 arg0) -{ +static void GetDefaultShopItems(s32 arg0) { s32 temp_r29; s32 var_r31; s32 var_r30; @@ -836,11 +847,9 @@ static void GetDefaultShopItems(s32 arg0) temp_r29 = BoardRandMod(100); if (temp_r29 > 90) { var_r30 = 3; - } - else if (temp_r29 > 40) { + } else if (temp_r29 > 40) { var_r30 = BoardRandMod(2) + 1; - } - else { + } else { var_r30 = 0; } for (var_r31 = 0; var_r31 < 5; var_r31++) { @@ -848,8 +857,7 @@ static void GetDefaultShopItems(s32 arg0) } } -static void SortShopItems(void) -{ +static void SortShopItems(void) { s32 sp8[5]; s32 var_r29; s32 i; @@ -872,8 +880,7 @@ static void SortShopItems(void) } } -static void DecideComEnter(s32 arg0) -{ +static void DecideComEnter(s32 arg0) { s32 temp_r27; s32 temp_r30; s32 temp_r29; @@ -903,13 +910,14 @@ static void DecideComEnter(s32 arg0) BoardComKeySetRight(); return; } - } - else { + } else { temp_r27 = GWPlayer[arg0].space_curr; temp_r30 = BoardComPathShortcutLenGet(temp_r27, 8, 0); temp_r29 = BoardComPathShortcutLenGet(temp_r27, 8, 1); - if ((temp_r30 != 0 || temp_r29 != 0) && (BoardPlayerCoinsGet(arg0) >= 17 || (temp_r29 >= temp_r26 && temp_r30 >= temp_r26)) - && BoardPlayerCoinsGet(arg0) < 40 && ((temp_r30 < 20 && temp_r30 > 0) || (temp_r29 < 10 && temp_r29 > 0)) + if ((temp_r30 != 0 || temp_r29 != 0) + && (BoardPlayerCoinsGet(arg0) >= 17 || (temp_r29 >= temp_r26 && temp_r30 >= temp_r26)) + && BoardPlayerCoinsGet(arg0) < 40 + && ((temp_r30 < 20 && temp_r30 > 0) || (temp_r29 < 10 && temp_r29 > 0)) && BoardRandMod(100) > var_r28) { BoardComKeySetRight(); return; @@ -918,21 +926,18 @@ static void DecideComEnter(s32 arg0) BoardComKeySetLeft(); } -static void DecideComBuy(s32 arg0) -{ +static void DecideComBuy(s32 arg0) { if (!GWPlayer[arg0].com) { return; } if (comF != 0) { BoardComKeySetDown(); - } - else { + } else { BoardComKeySetUp(); } } -static s32 GetComItemChoice(s32 arg0) -{ +static s32 GetComItemChoice(s32 arg0) { s16 sp8; s32 temp_r26; s32 var_r28 = 0; @@ -949,8 +954,7 @@ static s32 GetComItemChoice(s32 arg0) for (var_r27 = i = 0; i < 5; i++) { if (temp_r26 >= itemPriceTbl[activeItemTbl[i]]) { var_r30 = BoardComItemWeightGet(arg0, activeItemTbl[i]); - } - else { + } else { var_r30 = 0; } if (BoardPlayerItemFind(arg0, activeItemTbl[i]) != -1) { @@ -964,31 +968,28 @@ static s32 GetComItemChoice(s32 arg0) if (var_r27 == 0) { comF = 1; var_r28 = 5; - } - else { + } else { var_r28 = var_r25; } return var_r28; } -static void WaitItemChoice(void) -{ +static void WaitItemChoice(void) { while (itemChoiceObj) { HuPrcVSleep(); } } -static void CreateShopItemChoice(s32 arg0, s32 arg1) -{ +static void CreateShopItemChoice(s32 arg0, s32 arg1) { omObjData *temp_r30; ItemChoiceWork *var_r31; s16 spC; -#if VERSION_PAL s16 i; - for (i = 0; i < 6; i++) { + #if VERSION_PAL + for(i=0; i<6; i++) { cursorPosTbl[i][0] = 190; } -#endif + #endif temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice); itemChoiceObj = temp_r30; itemChoice = -1; @@ -1000,30 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) var_r31->unk02 = 0; var_r31->unk03 = arg1; var_r31->unk06 = HuSprGrpCreate(1); -#if VERSION_PAL + #if VERSION_PAL if (GWLanguageGet() != 0) { s16 winId = BoardWinIDGet(); - if (winId != -1) { + if(winId != -1) { WindowData *winP = &winData[winId]; - for (i = 0; i < 6; i++) { - cursorPosTbl[i][0] = winP->pos_x + 96; + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = winP->pos_x+96; } - } - else { - for (i = 0; i < 6; i++) { + } else { + for(i=0; i<6; i++) { cursorPosTbl[i][0] = 166; } } } temp_r30->trans.x = cursorPosTbl[0][0]; temp_r30->trans.y = cursorPosTbl[0][1]; -#else + #else temp_r30->trans.x = cursorPosTbl[0][0]; temp_r30->trans.y = cursorPosTbl[0][1]; if (GWLanguageGet() != 0) { temp_r30->trans.x -= 24.0f; } -#endif + #endif if (GWPlayer[arg0].com) { var_r31->unk01 = GWMessDelayGet(); } @@ -1033,13 +1033,11 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) HuSprPosSet(var_r31->unk06, 0, temp_r30->trans.x, temp_r30->trans.y); } -static s32 GetShopItemChoice(void) -{ +static s32 GetShopItemChoice(void) { return itemChoice; } -static s32 GetShopItemWinChoice(void) -{ +static s32 GetShopItemWinChoice(void) { ItemChoiceWork *var_r31; if (!itemChoiceObj) { @@ -1049,8 +1047,7 @@ static s32 GetShopItemWinChoice(void) return var_r31->unk02; } -static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) -{ +static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) { u32 sp8; s32 temp_r28; s32 temp_r29; @@ -1058,15 +1055,14 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) temp_r28 = arg1->unk02; arg0->trans.x = cursorPosTbl[arg1->unk02][0]; arg0->trans.y = cursorPosTbl[arg1->unk02][1]; -#if VERSION_NTSC + #if VERSION_NTSC if (GWLanguageGet() != 0) { arg0->trans.x -= 24.0f; } -#endif + #endif if (GWPlayer[arg1->unk00_field1].com) { GetShopItemChoiceInput(arg1, arg0, &sp8); - } - else { + } else { temp_r29 = GWPlayer[arg1->unk00_field1].port; sp8 = HuPadDStkRep[temp_r29] | HuPadBtnDown[temp_r29]; } @@ -1081,8 +1077,7 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) HuAudFXPlay(2); if (GWPlayer[arg1->unk00_field1].com) { arg1->unk05 = 0x32; - } - else { + } else { arg1->unk05 = 5; } return; @@ -1110,8 +1105,7 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) } } -static void UpdateShopItemChoice(omObjData *arg0) -{ +static void UpdateShopItemChoice(omObjData *arg0) { ItemChoiceWork *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, ItemChoiceWork); @@ -1126,31 +1120,25 @@ static void UpdateShopItemChoice(omObjData *arg0) if (temp_r31->unk05 == 0) { temp_r31->unk00_field0 = 1; } - } - else if (temp_r31->unk01 != 0) { + } else if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } - else if (temp_r31->unk04 != 0) { + } else if (temp_r31->unk04 != 0) { temp_r31->unk04--; - } - else { + } else { MoveShopItemChoice(arg0, temp_r31); } HuSprPosSet(temp_r31->unk06, 0, arg0->trans.x, arg0->trans.y); } -static void GetShopItemChoiceInput(ItemChoiceWork *arg0, omObjData *arg1, u32 *arg2) -{ +static void GetShopItemChoiceInput(ItemChoiceWork *arg0, omObjData *arg1, u32 *arg2) { if (arg0->unk02 == arg0->unk03) { *arg2 = 0x100; - } - else { + } else { *arg2 = 4; } } -void BoardShopTutorialExec(s32 arg0) -{ +void BoardShopTutorialExec(s32 arg0) { Vec sp48; Vec sp3C; Vec sp30; @@ -1167,8 +1155,7 @@ void BoardShopTutorialExec(s32 arg0) sp10 = BoardWinPortraitGet(); if (BoardSpaceFlagGet(0, arg0) & 0x80000) { shopMdlPtr = shopMdlIdx[0]; - } - else { + } else { shopMdlPtr = shopMdlIdx[1]; } temp_r27 = BoardSpaceLinkFlagSearch(0, arg0, 0x02000000); diff --git a/src/game/board/space.c b/src/game/board/space.c index c7172c10..d092af1e 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -17,17 +17,6 @@ #include "ext_math.h" #include "string.h" -#include -#include -#include -#include -#include - -s32 BoardBlockExec(s32 player, s32 space); // wrong -extern void BoardMushroomExec(s32 player, s32 space); // wrong -extern void BoardBooHouseExec(s32 player, s32 space); // wrong -extern void BoardBlockHouseExec(s32 player, s32 space); // wrong - static BoardSpace spaceData[2][256]; s16 boardSpaceStarTbl[8]; static GXTexObj spaceHiliteTex; @@ -311,6 +300,7 @@ void BoardSpaceHostSet(s32 space) { s16 host_space; Vec pos; + BoardSpace *space_plat; BoardSpaceTypeSet(0, space, 8); host_space = BoardSpaceLinkFlagSearch(0, space, 0x04000000); BoardSpacePosGet(0, host_space, &pos); @@ -827,7 +817,7 @@ static void DrawSpaces(ModelData *model, Mtx matrix) camera = &boardCamera; BoardCameraPosGet(&pos); BoardCameraTargetGet(&target); - MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); GXSetProjection(proj, GX_PERSPECTIVE); MTXLookAt(lookat, &pos, &camera->up, &target); GXSetViewport(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); @@ -1089,11 +1079,14 @@ void BoardSpaceInit(s32 data_num) if (_CheckFlag(FLAG_ID_MAKE(1, 1))) { Vec pos; Vec rot; + s16 space; BoardModelVisibilitySet(starPlatMdl, 1); GWSystem.star_flag |= (u8)(1 << GWSystem.star_pos); BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 8); { - int space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); + int space; + BoardSpace *space_plat; + space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); BoardSpacePosGet(0, space, &pos); BoardModelPosSetV(StarPlatGetMdl(), &pos); BoardSpaceRotGet(0, space, &rot); @@ -1118,8 +1111,4 @@ void BoardSpaceDestroy(void) HuMemDirectFree(spaceTexData); spaceTexData = NULL; } -#ifdef TARGET_PC - GXDestroyTexObj(&spaceHiliteTex); - GXDestroyTexObj(&spaceTex); -#endif } diff --git a/src/game/board/star.c b/src/game/board/star.c index 1de6d249..3f2a0ba5 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -3,15 +3,6 @@ #include "game/data.h" #include "game/disp.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/tutorial.h" -#include "game/board/ui.h" -#include "game/board/window.h" #include "game/flag.h" #include "game/gamework.h" #include "game/gamework_data.h" @@ -21,14 +12,18 @@ #include "game/objsub.h" #include "game/window.h" #include "game/wipe.h" -#include "game/hsfex.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/tutorial.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include -#endif - typedef struct { struct { u8 unk00_field0 : 1; @@ -79,28 +74,77 @@ static Process *starProc; static s16 starParman = -1; static s16 hostMdl = -1; -static const s32 starMesTbl1[9] = { MAKE_MESSID(12, 0), MAKE_MESSID(12, 9), MAKE_MESSID(12, 18), MAKE_MESSID(12, 27), MAKE_MESSID(12, 36), - MAKE_MESSID(12, 45), MAKE_MESSID(12, 0), MAKE_MESSID(12, 0), MAKE_MESSID(12, 0) }; +static const s32 starMesTbl1[9] = { + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 9), + MAKE_MESSID(12, 18), + MAKE_MESSID(12, 27), + MAKE_MESSID(12, 36), + MAKE_MESSID(12, 45), + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 0) +}; -static const s32 starMesTbl2[9][2] - = { { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, - { MAKE_MESSID(21, 37), MAKE_MESSID(21, 43) }, { MAKE_MESSID(21, 38), MAKE_MESSID(21, 44) }, { MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) }, - { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) } }; +static const s32 starMesTbl2[9][2] = { + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, + { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, + { MAKE_MESSID(21, 37), MAKE_MESSID(21, 43) }, + { MAKE_MESSID(21, 38), MAKE_MESSID(21, 44) }, + { MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) } +}; -s32 boardStarSndTbl[] = { 0x00000120, 0x00000160, 0x000001A0, 0x000001E0, 0x00000220, 0x00000260, 0x000002A0, 0x000002E0 }; +s32 boardStarSndTbl[] = { + 0x00000120, + 0x00000160, + 0x000001A0, + 0x000001E0, + 0x00000220, + 0x00000260, + 0x000002A0, + 0x000002E0 +}; -static s32 hostMotTbl[9][2] = { { DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) }, - { DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) }, { DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) }, - { DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) }, { DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) }, - { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) } }; +static s32 hostMotTbl[9][2] = { + { DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) }, + { DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) }, + { DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) }, + { DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) }, + { DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) }, + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) } +}; -static HsfanimStruct00 starEffParam = { 0x001E, { 0x00, 0x00 }, // padding? - 3.3f, 70.0f, 7.0f, { 0.0f, -0.05f, 0.0f }, 2.0f, 1.0f, 20.0f, 0.98f, 0x0002, - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0xFF, 0x80, 0x80, 0x00, 0xFF, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }; +static HsfanimStruct00 starEffParam = { + 0x001E, + { 0x00, 0x00 }, // padding? + 3.3f, + 70.0f, + 7.0f, + { 0.0f, -0.05f, 0.0f }, + 2.0f, + 1.0f, + 20.0f, + 0.98f, + 0x0002, + { + 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x40, 0xFF, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 + }, + { + 0xFF, 0x80, 0x80, 0x00, + 0xFF, 0x40, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 + } +}; -void BoardStarHostSet(s16 arg0) -{ +void BoardStarHostSet(s16 arg0) { hostMdl = arg0; if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { return; @@ -110,13 +154,11 @@ void BoardStarHostSet(s16 arg0) } } -s16 BoardStarHostMdlGet(void) -{ +s16 BoardStarHostMdlGet(void) { return hostMdl; } -void BoardStarExec(s32 arg0, s32 arg1) -{ +void BoardStarExec(s32 arg0, s32 arg1) { if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { return; } @@ -131,8 +173,7 @@ void BoardStarExec(s32 arg0, s32 arg1) } } -static void ExecStar(void) -{ +static void ExecStar(void) { Vec sp24; Vec sp18; Vec spC; @@ -174,23 +215,22 @@ static void ExecStar(void) BoardPlayerIdleSet(temp_r31); if (BoardDAngleCalc(temp_f30 - temp_f29) < 0.0f) { var_f28 = -BoardDAngleCalc(temp_f30 - temp_f29); - } - else { + } else { var_f28 = BoardDAngleCalc(temp_f30 - temp_f29); } if (var_f28 > 90.0f) { var_r25 = 30; - } - else { + } else { var_r25 = 15; } BoardPlayerMotBlendSet(temp_r31, temp_f30, var_r25); temp_f27 = BoardModelRotYGet(temp_r30); var_f31 = BoardDAngleCalc(temp_f30 + 180.0f) - temp_f27; - if ((var_f31 <= 4.0f && var_f31 >= 0.0f) || (var_f31 <= 360.0f && var_f31 >= 355.0f) || (var_f31 <= 0.0f && var_f31 >= -4.0f)) { + if ((var_f31 <= 4.0f && var_f31 >= 0.0f) + || (var_f31 <= 360.0f && var_f31 >= 355.0f) + || (var_f31 <= 0.0f && var_f31 >= -4.0f)) { var_r26 = 0; - } - else { + } else { var_r26 = 1; } if (var_r26 != 0) { @@ -213,14 +253,12 @@ static void ExecStar(void) BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); - } - else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) { + } else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) { temp_r29 = starMesTbl1[temp_r27] + 2; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); - } - else { + } else { BoardStatusShowSetAll(0); while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) { HuPrcVSleep(); @@ -248,8 +286,7 @@ static void ExecStar(void) if (GWPlayer[temp_r31].com) { if (BoardPlayerCoinsGet(temp_r31) >= 20) { BoardComKeySetUp(); - } - else { + } else { BoardComKeySetDown(); } } @@ -288,7 +325,7 @@ static void ExecStar(void) break; } } - block_A: +block_A: temp_r29 = starMesTbl1[temp_r27] + 3; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); @@ -344,8 +381,7 @@ block_B: HuPrcEnd(); } -static void DestroyStar(void) -{ +static void DestroyStar(void) { s32 i; _ClearFlag(0x10017); @@ -358,8 +394,7 @@ static void DestroyStar(void) starProc = NULL; } -static void GiveStarMain(omObjData *arg0) -{ +static void GiveStarMain(omObjData *arg0) { GiveStarWork *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, GiveStarWork); @@ -372,8 +407,7 @@ static void GiveStarMain(omObjData *arg0) } if (temp_r30->unk04 != 0) { temp_r30->unk04--; - } - else { + } else { switch (temp_r30->unk01) { case 4: break; @@ -397,8 +431,7 @@ static void GiveStarMain(omObjData *arg0) } } -static void UpdateStarAngle(GiveStarWork *arg0, omObjData *arg1) -{ +static void UpdateStarAngle(GiveStarWork *arg0, omObjData *arg1) { float var_f31; if (arg0->unk00_field1 != 0) { @@ -413,8 +446,7 @@ static void UpdateStarAngle(GiveStarWork *arg0, omObjData *arg1) } } -static void InitGiveStar(GiveStarWork *arg0, omObjData *arg1) -{ +static void InitGiveStar(GiveStarWork *arg0, omObjData *arg1) { Vec sp8; BoardPlayerPosGet(arg0->unk00_field3, &sp8); @@ -433,8 +465,7 @@ static void InitGiveStar(GiveStarWork *arg0, omObjData *arg1) InitGiveStarEffect(); } -static void MoveGiveStar(GiveStarWork *arg0, omObjData *arg1) -{ +static void MoveGiveStar(GiveStarWork *arg0, omObjData *arg1) { Vec sp8; float temp_f31; @@ -451,8 +482,7 @@ static void MoveGiveStar(GiveStarWork *arg0, omObjData *arg1) arg1->trans.z += arg1->rot.z; arg1->trans.y += -0.08166667f * temp_f31 * temp_f31 * 0.97f + 50.0f; arg0->unk0A++; - } - else { + } else { arg1->trans.y += -4.0f; if (arg1->trans.y <= sp8.y + 300.0f) { arg1->trans.y = sp8.y + 300.0f; @@ -461,8 +491,7 @@ static void MoveGiveStar(GiveStarWork *arg0, omObjData *arg1) } } -static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) -{ +static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) { Vec sp8; float var_f30; @@ -476,8 +505,7 @@ static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) if (arg0->unk08 < 90) { if (BoardPlayerSizeGet(arg0->unk00_field3) != 1) { arg0->unk08 += 2; - } - else { + } else { arg0->unk08 += 1.4f; } if (arg0->unk08 > 90) { @@ -491,8 +519,7 @@ static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) } arg1->scale.y = arg1->scale.x; arg1->scale.z = arg1->scale.x; - } - else { + } else { omVibrate(arg0->unk00_field3, 12, 0xC, 0); arg0->unk00_field0 = 1; arg0->unk01 = 4; @@ -502,8 +529,7 @@ static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) } } -static void StopGiveStar(void) -{ +static void StopGiveStar(void) { GiveStarWork *temp_r31; if (giveStarObj) { @@ -512,8 +538,7 @@ static void StopGiveStar(void) } } -static void InitGiveStarEffect(void) -{ +static void InitGiveStarEffect(void) { s16 temp_r3; void *var_r30; @@ -528,8 +553,7 @@ static void InitGiveStarEffect(void) HuDataDirClose(DATADIR_EFFECT); } -static void KillGiveStarEffect(void) -{ +static void KillGiveStarEffect(void) { if (starParman != -1) { Hu3DParManKill(starParman); starParman = -1; @@ -537,15 +561,13 @@ static void KillGiveStarEffect(void) } } -static inline void StarInlineFunc00(void) -{ +static inline void StarInlineFunc00(void) { GiveStarWork *temp_r28 = OM_GET_WORK_PTR(giveStarObj, GiveStarWork); temp_r28->unk01 = 0; } -static inline void StarInlineFunc01(void) -{ +static inline void StarInlineFunc01(void) { GiveStarWork *temp_r27 = OM_GET_WORK_PTR(giveStarObj, GiveStarWork); while (temp_r27->unk01 != 4) { @@ -553,8 +575,7 @@ static inline void StarInlineFunc01(void) } } -static inline void StarInlineFunc02(void) -{ +static inline void StarInlineFunc02(void) { GiveStarWork *temp_r29 = OM_GET_WORK_PTR(giveStarObj, GiveStarWork); temp_r29->unk00_field1 = 1; @@ -563,8 +584,7 @@ static inline void StarInlineFunc02(void) temp_r29->unk01 = 2; } -void BoardStarGive(s32 arg0, Vec *arg1) -{ +void BoardStarGive(s32 arg0, Vec *arg1) { Vec sp8; s32 temp_r25; GiveStarWork *temp_r31; @@ -611,8 +631,7 @@ void BoardStarGive(s32 arg0, Vec *arg1) HuPrcSleep(10); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardPlayerMotionEndWait(arg0); - } - else { + } else { temp_r25 = HuAudSStreamPlay(6); BoardPlayerMotionEndWait(arg0); while (msmStreamGetStatus(temp_r25) != 0) { @@ -622,8 +641,7 @@ void BoardStarGive(s32 arg0, Vec *arg1) BoardPlayerVoiceEnableSet(arg0, 7, 1); } -void BoardStarShowNext(s32 arg0) -{ +void BoardStarShowNext(s32 arg0) { Mtx spBC; Mtx sp8C; Mtx sp5C; @@ -651,8 +669,7 @@ void BoardStarShowNext(s32 arg0) while (WipeStatGet() != 0) { HuPrcVSleep(); } - } - else { + } else { HuPrcSleep(18); } BoardStatusItemSet(0); @@ -686,16 +703,14 @@ void BoardStarShowNext(s32 arg0) temp_f31 = VECMag(&sp20); if (temp_f31 > 3000.0f) { var_r27 = 0xF0; - } - else if (temp_f31 > 1500.0f) { + } else if (temp_f31 > 1500.0f) { var_r27 = 0x78; - } - else { + } else { var_r27 = 0x78; } BoardViewMoveStart(&sp38, &sp50, var_r27); showNextObj->trans.x = 68.0f; - showNextObj->trans.y = HU_DISP_HEIGHT - 50; + showNextObj->trans.y = HU_DISP_HEIGHT-50; showNextObj->trans.z = 100.0f; sp44.x = showNextObj->trans.x; sp44.y = showNextObj->trans.y; @@ -703,9 +718,9 @@ void BoardStarShowNext(s32 arg0) Hu3D2Dto3D(&sp44, 1, &sp44); BoardModelPosSetV(BoardStarHostMdlGet(), &sp44); BoardCameraRotGet(&sp2C); - MTXRotRad(sp5C, 'y', MTXDegToRad(10.0f)); - MTXRotRad(sp8C, 'x', MTXDegToRad(sp2C.x)); - MTXConcat(sp8C, sp5C, spBC); + PSMTXRotRad(sp5C, 'y', MTXDegToRad(10.0f)); + PSMTXRotRad(sp8C, 'x', MTXDegToRad(sp2C.x)); + PSMTXConcat(sp8C, sp5C, spBC); BoardModelMtxSet(BoardStarHostMdlGet(), &spBC); BoardModelRotSet(BoardStarHostMdlGet(), 0.0f, 0.0f, 0.0f); BoardModelScaleSet(BoardStarHostMdlGet(), 0.09f, 0.09f, 0.09f); @@ -720,8 +735,7 @@ void BoardStarShowNext(s32 arg0) } if (var_r28 == 0) { var_r30 = starMesTbl1[GWBoardGet()] + 6; - } - else { + } else { var_r30 = starMesTbl2[GWBoardGet()][0]; } BoardWinCreate(3, var_r30, -1); @@ -735,8 +749,7 @@ void BoardStarShowNext(s32 arg0) HuPrcSleep(3); if (var_r28 == 0) { var_r30 = starMesTbl1[GWBoardGet()] + 7; - } - else { + } else { var_r30 = starMesTbl2[GWBoardGet()][1]; } BoardWinCreate(3, var_r30, -1); @@ -752,7 +765,7 @@ void BoardStarShowNext(s32 arg0) HuPrcVSleep(); } BoardViewWait(); - MTXIdentity(spBC); + PSMTXIdentity(spBC); BoardModelMtxSet(BoardStarHostMdlGet(), &spBC); HideNextHost(1); while (showNextObj) { @@ -773,8 +786,7 @@ void BoardStarShowNext(s32 arg0) _ClearFlag(FLAG_ID_MAKE(1, 28)); } -static void ShowNextUpdate(omObjData *arg0) -{ +static void ShowNextUpdate(omObjData *arg0) { ShowNextWork *temp_r30 = OM_GET_WORK_PTR(arg0, ShowNextWork); Vec sp8; @@ -803,8 +815,7 @@ static void ShowNextUpdate(omObjData *arg0) BoardModelPosSetV(BoardStarHostMdlGet(), &sp8); } -static void HideNextHost(s32 arg0) -{ +static void HideNextHost(s32 arg0) { ShowNextWork *temp_r31 = OM_GET_WORK_PTR(showNextObj, ShowNextWork); temp_r31->unk01 = arg0; diff --git a/src/game/board/tutorial.c b/src/game/board/tutorial.c index 9d93d5ab..ff42f3c1 100755 --- a/src/game/board/tutorial.c +++ b/src/game/board/tutorial.c @@ -1,13 +1,11 @@ #include "game/board/tutorial.h" -#include "game/board/main.h" -#include "game/board/model.h" #include "game/flag.h" #include "game/gamework_data.h" #include "game/process.h" +#include "game/board/main.h" +#include "game/board/model.h" -#include - -SHARED_SYM s32 boardTutorialData[4]; // maybe a single s32 + padding? +s32 boardTutorialData[4]; // maybe a single s32 + padding? static void (*tutorialHook)(s16, s32); s8 boardTutorialDirInputX; s8 boardTutorialDirInputY; @@ -17,7 +15,7 @@ s8 boardTutorialBlockItem; s8 boardTutorialBlockF; s8 boardTutorialUseItem; static s16 hostMdl; -SHARED_SYM s8 boardTutorialF; +s8 boardTutorialF; static Process *tutorialProcess; static void *playerCfgCopy; static void *playerCopy; diff --git a/src/game/board/ui.c b/src/game/board/ui.c index f0ff4717..ff2a9066 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -1,14 +1,7 @@ #include "game/board/ui.h" #include "game/audio.h" -#include "game/board/com.h" -#include "game/board/item.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/tutorial.h" #include "game/chrman.h" #include "game/data.h" -#include "game/disp.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfex.h" @@ -18,6 +11,13 @@ #include "game/process.h" #include "game/sprite.h" #include "game/window.h" +#include "game/board/com.h" +#include "game/board/item.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/tutorial.h" +#include "game/disp.h" #include "ext_math.h" @@ -164,66 +164,147 @@ static s16 yourTurnSprGrp = -1; static UnkUiStatusStruct uiStatus[4] = { 0 }; -static s32 statusSprTbl[11] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x27), DATA_MAKE_NUM(DATADIR_BOARD, 0x26), DATA_MAKE_NUM(DATADIR_BOARD, 0x29), - DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x28), DATA_MAKE_NUM(DATADIR_BOARD, 0x2C) }; +static s32 statusSprTbl[11] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x27), + DATA_MAKE_NUM(DATADIR_BOARD, 0x26), + DATA_MAKE_NUM(DATADIR_BOARD, 0x29), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2C) +}; -static s16 statusSprPrioTbl[12] = { 0x05F0, 0x05E6, 0x05DC, 0x05D2, 0x05DC, 0x05DC, 0x05DC, 0x05DC, 0x05DC, 0x05DC, 0x05DC, 0x05DC }; +static s16 statusSprPrioTbl[12] = { + 0x05F0, 0x05E6, 0x05DC, 0x05D2, + 0x05DC, 0x05DC, 0x05DC, 0x05DC, + 0x05DC, 0x05DC, 0x05DC, 0x05DC +}; -static float statusHideOfsTbl[4] = { -230.0f, 230.0f, -230.0f, 230.0f }; +static float statusHideOfsTbl[4] = { + -230.0f, 230.0f, -230.0f, 230.0f +}; -static float statusPosTbl[4][2] - = { { 114.0f, 84.0f }, { HU_DISP_WIDTH - 114, 84.0f }, { 114.0f, HU_DISP_HEIGHT - 84 }, { HU_DISP_WIDTH - 114, HU_DISP_HEIGHT - 84 } }; +static float statusPosTbl[4][2] = { + { 114.0f, 84.0f }, + { HU_DISP_WIDTH-114, 84.0f }, + { 114.0f, HU_DISP_HEIGHT-84 }, + { HU_DISP_WIDTH-114, HU_DISP_HEIGHT-84 } +}; -static u8 statusColTbl[4][4] = { { 0x80, 0x80, 0x80, 0x00 }, { 0x1A, 0x84, 0xFF, 0x00 }, { 0xFF, 0x1A, 0x2D, 0x00 }, { 0x0A, 0xB4, 0x3C, 0x00 } }; +static u8 statusColTbl[4][4] = { + { 0x80, 0x80, 0x80, 0x00 }, + { 0x1A, 0x84, 0xFF, 0x00 }, + { 0xFF, 0x1A, 0x2D, 0x00 }, + { 0x0A, 0xB4, 0x3C, 0x00 } +}; -static float statusSprPosTbl[17][2] = { { 0.0f, 0.0f }, { 0.0f, 0.0f }, { -68.0f, 0.0f }, { 80.0f, 14.0f }, { 64.0f, 14.0f }, { 48.0f, 14.0f }, - { 26.0f, 14.0f }, { 80.0f, -12.0f }, { 64.0f, -12.0f }, { 48.0f, -12.0f }, { 26.0f, -12.0f }, { -16.0f, 0.0f }, { -18.0f, 32.0f }, - { 24.0f, -34.0f }, { 48.0f, -34.0f }, { 72.0f, -34.0f }, { -32.0f, -16.0f } }; +static float statusSprPosTbl[17][2] = { + { 0.0f, 0.0f }, + { 0.0f, 0.0f }, + { -68.0f, 0.0f }, + { 80.0f, 14.0f }, + { 64.0f, 14.0f }, + { 48.0f, 14.0f }, + { 26.0f, 14.0f }, + { 80.0f, -12.0f }, + { 64.0f, -12.0f }, + { 48.0f, -12.0f }, + { 26.0f, -12.0f }, + { -16.0f, 0.0f }, + { -18.0f, 32.0f }, + { 24.0f, -34.0f }, + { 48.0f, -34.0f }, + { 72.0f, -34.0f }, + { -32.0f, -16.0f } +}; -static float statusItemPosTbl[6][2] = { { -56.0f, 0.0f }, { -58.0f, 32.0f }, { -2.0f, 4.0f }, { 34.0f, -8.0f }, { 70.0f, 4.0f }, { -56.0f, -16.0f } }; +static float statusItemPosTbl[6][2] = { + { -56.0f, 0.0f }, + { -58.0f, 32.0f }, + { -2.0f, 4.0f }, + { 34.0f, -8.0f }, + { 70.0f, 4.0f }, + { -56.0f, -16.0f } +}; -static s32 itemMdlTbl[14] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x83), DATA_MAKE_NUM(DATADIR_BOARD, 0x84), DATA_MAKE_NUM(DATADIR_BOARD, 0x85), - DATA_MAKE_NUM(DATADIR_BOARD, 0x86), DATA_MAKE_NUM(DATADIR_BOARD, 0x87), DATA_MAKE_NUM(DATADIR_BOARD, 0x88), DATA_MAKE_NUM(DATADIR_BOARD, 0x89), - DATA_MAKE_NUM(DATADIR_BOARD, 0x8A), DATA_MAKE_NUM(DATADIR_BOARD, 0x8B), DATA_MAKE_NUM(DATADIR_BOARD, 0x8C), DATA_MAKE_NUM(DATADIR_BOARD, 0x8D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x8E), DATA_MAKE_NUM(DATADIR_BOARD, 0x8F), DATA_MAKE_NUM(DATADIR_BOARD, 0x90) }; +static s32 itemMdlTbl[14] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x83), + DATA_MAKE_NUM(DATADIR_BOARD, 0x84), + DATA_MAKE_NUM(DATADIR_BOARD, 0x85), + DATA_MAKE_NUM(DATADIR_BOARD, 0x86), + DATA_MAKE_NUM(DATADIR_BOARD, 0x87), + DATA_MAKE_NUM(DATADIR_BOARD, 0x88), + DATA_MAKE_NUM(DATADIR_BOARD, 0x89), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x90) +}; -static Vec teamItemStatusPosTbl[2] = { { HU_DISP_CENTERX - 98, 116.0f, 0.0f }, { HU_DISP_CENTERX + 98, 116.0f, 0.0f } }; +static Vec teamItemStatusPosTbl[2] = { + { HU_DISP_CENTERX-98, 116.0f, 0.0f }, + { HU_DISP_CENTERX+98, 116.0f, 0.0f } +}; -s32 BoardItemModelGet(s32 arg0) -{ - s32 sp8[14] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), DATA_MAKE_NUM(DATADIR_BOARD, 0x71), DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), DATA_MAKE_NUM(DATADIR_BOARD, 0x74), DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), DATA_MAKE_NUM(DATADIR_BOARD, 0x78), DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), DATA_MAKE_NUM(DATADIR_BOARD, 0x7B) }; +s32 BoardItemModelGet(s32 arg0) { + s32 sp8[14] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B) + }; return sp8[arg0]; } -s32 BoardItemNameGet(s32 arg0) -{ - s32 sp8[15] = { DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), - DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), - DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), DATA_MAKE_NUM(DATADIR_EFFECT, 0x08), - DATA_MAKE_NUM(DATADIR_EFFECT, 0x09), DATA_MAKE_NUM(DATADIR_EFFECT, 0x0A), DATA_MAKE_NUM(DATADIR_EFFECT, 0x0B), - DATA_MAKE_NUM(DATADIR_EFFECT, 0x0C), DATA_MAKE_NUM(DATADIR_EFFECT, 0x0D), DATA_MAKE_NUM(DATADIR_EFFECT, 0x0E) }; +s32 BoardItemNameGet(s32 arg0) { + s32 sp8[15] = { + DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x08), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x09), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0A), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0B), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0C), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0D), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0E) + }; return sp8[arg0]; } -BOOL BoardStatusStopCheck(s32 arg0) -{ +BOOL BoardStatusStopCheck(s32 arg0) { return (uiStatus[arg0].unk00_bit2) ? FALSE : TRUE; } -s32 BoardStatusVisibleGet(s32 arg0) -{ +s32 BoardStatusVisibleGet(s32 arg0) { return uiStatus[arg0].unk00_bit1; } -void BoardStatusShowSetAll(s32 arg0) -{ +void BoardStatusShowSetAll(s32 arg0) { s32 i; for (i = 0; i < 4; i++) { @@ -231,8 +312,7 @@ void BoardStatusShowSetAll(s32 arg0) } } -void BoardStatusItemSet(s32 arg0) -{ +void BoardStatusItemSet(s32 arg0) { UnkUiStatusStruct *temp_r31; s32 i; s32 j; @@ -252,13 +332,11 @@ void BoardStatusItemSet(s32 arg0) } } -void BoardStatusShowSetForce(s32 arg0) -{ +void BoardStatusShowSetForce(s32 arg0) { uiStatus[arg0].unk00_bit3 = 1; } -void BoardStatusGraySet(s32 arg0, s32 arg1) -{ +void BoardStatusGraySet(s32 arg0, s32 arg1) { UnkUiStatusStruct *temp_r31; s16 sp10[9] = { 3, 4, 5, 7, 8, 9, 2, 6, 10 }; s16 var_r28; @@ -270,8 +348,7 @@ void BoardStatusGraySet(s32 arg0, s32 arg1) var_r29 = 0xFF; temp_r31->unk00_bit4 = 1; var_r28 = 1500; - } - else { + } else { var_r29 = 0x3F; temp_r31->unk00_bit4 = 0; var_r28 = 1530; @@ -282,8 +359,7 @@ void BoardStatusGraySet(s32 arg0, s32 arg1) } } -void BoardStatusShowSet(s32 arg0, s32 arg1) -{ +void BoardStatusShowSet(s32 arg0, s32 arg1) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; if (temp_r31->unk00_bit3) { @@ -296,8 +372,7 @@ void BoardStatusShowSet(s32 arg0, s32 arg1) temp_r31->unk10.y = statusPosTbl[arg0][1]; temp_r31->unk00_bit3 = 0; } - } - else { + } else { if (!temp_r31->unk00_bit1) { temp_r31->unk00_bit1 = 1; temp_r31->unk10.x = statusPosTbl[arg0][0]; @@ -308,20 +383,17 @@ void BoardStatusShowSet(s32 arg0, s32 arg1) } } -void BoardStatusItemHideSet(s32 arg0, s32 arg1) -{ +void BoardStatusItemHideSet(s32 arg0, s32 arg1) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; if (arg1 != 0) { temp_r31->unk00_bit5 = 1; - } - else { + } else { temp_r31->unk00_bit5 = 0; } } -void BoardStatusTargetPosSet(s32 arg0, Vec *arg1) -{ +void BoardStatusTargetPosSet(s32 arg0, Vec *arg1) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; temp_r31->unk10.x = arg1->x; @@ -329,16 +401,14 @@ void BoardStatusTargetPosSet(s32 arg0, Vec *arg1) temp_r31->unk00_bit2 = 1; } -void BoardStatusPosGet(s32 arg0, Vec *arg1) -{ +void BoardStatusPosGet(s32 arg0, Vec *arg1) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; arg1->x = temp_r31->unk04.x; arg1->y = temp_r31->unk04.y; } -void BoardStatusPosSet(s32 arg0, Vec *arg1) -{ +void BoardStatusPosSet(s32 arg0, Vec *arg1) { UnkUiStatusStruct *temp_r30 = &uiStatus[arg0]; temp_r30->unk04.x = arg1->x; @@ -346,8 +416,7 @@ void BoardStatusPosSet(s32 arg0, Vec *arg1) BoardStatusTargetPosSet(arg0, arg1); } -void BoardStatusHammerCreate(s32 arg0) -{ +void BoardStatusHammerCreate(s32 arg0) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; float spC[2]; s32 var_r30; @@ -379,23 +448,20 @@ void BoardStatusHammerCreate(s32 arg0) } } -void BoardStatusHammerShowSet(s32 arg0, s32 arg1) -{ +void BoardStatusHammerShowSet(s32 arg0, s32 arg1) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; if (temp_r31->unk00_bit6) { if (arg1 != 0) { HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); - } - else { + } else { HuSprAttrReset(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_NOANIM); } } } -void BoardStatusHammerKill(s32 arg0) -{ +void BoardStatusHammerKill(s32 arg0) { UnkUiStatusStruct *temp_r31 = &uiStatus[arg0]; if (temp_r31->unk00_bit6) { @@ -404,8 +470,7 @@ void BoardStatusHammerKill(s32 arg0) } } -void BoardStatusKill(void) -{ +void BoardStatusKill(void) { UnkUiStatusStruct *temp_r31; s32 i; @@ -421,8 +486,7 @@ void BoardStatusKill(void) } } -void BoardStatusCreate(void) -{ +void BoardStatusCreate(void) { s32 i; memset(uiStatus, 0, 0x70); @@ -448,23 +512,28 @@ void BoardStatusCreate(void) } } -static void KillAllBoardStatus(void) -{ +static void KillAllBoardStatus(void) { BoardStatusKill(); statusProc = NULL; } -static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) -{ +static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) { float var_f31; float var_f30; s16 sp8; s32 temp_r28; s32 temp_r27; s16 temp_r26; - s32 spC[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), DATA_MAKE_NUM(DATADIR_BOARD, 0x30), - DATA_MAKE_NUM(DATADIR_BOARD, 0x31), DATA_MAKE_NUM(DATADIR_BOARD, 0x32), DATA_MAKE_NUM(DATADIR_BOARD, 0x33), - DATA_MAKE_NUM(DATADIR_BOARD, 0x34), DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; + s32 spC[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) + }; s32 i; temp_r28 = GWPlayerCfg[arg0].character; @@ -478,11 +547,10 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) HuSprAttrSet(arg1->unk02, i, 8); HuSprPosSet(arg1->unk02, i, statusSprPosTbl[i][0], statusSprPosTbl[i][1]); } - if ((s32)GWSystem.team != 0) { + if ((s32) GWSystem.team != 0) { if (GWPlayerTeamGet(arg0) == 0) { HuSprBankSet(arg1->unk02, 1, 2); - } - else { + } else { HuSprBankSet(arg1->unk02, 1, 1); } } @@ -514,8 +582,7 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) } } -void BoardSpriteCreate(s32 file, s32 prio, AnimData **anim, s16 *sprite) -{ +void BoardSpriteCreate(s32 file, s32 prio, AnimData **anim, s16 *sprite) { s16 temp_r28; void *temp_r27; AnimData *temp_r31; @@ -531,8 +598,7 @@ void BoardSpriteCreate(s32 file, s32 prio, AnimData **anim, s16 *sprite) } } -static s32 UpdateBoardStatus(void) -{ +static s32 UpdateBoardStatus(void) { UnkUiStatusStruct *temp_r31; u8 *temp_r28; s32 temp_r27; @@ -553,15 +619,13 @@ static s32 UpdateBoardStatus(void) if (temp_r27 != -1 && temp_r31->unk00_bit5) { UpdateStatusItem(temp_r31, j, temp_r27); HuSprAttrReset(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); - } - else { + } else { HuSprAttrSet(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); } } if (GWPlayer[i].com) { HuSprAttrReset(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); - } - else { + } else { HuSprAttrSet(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); } temp_r28 = statusColTbl[GWPlayer[i].color]; @@ -572,8 +636,7 @@ static s32 UpdateBoardStatus(void) return 0; } -static void BoardStatusProc(void) -{ +static void BoardStatusProc(void) { while (1) { if (omSysExitReq != 0 || UpdateBoardStatus() != 0) { break; @@ -583,8 +646,7 @@ static void BoardStatusProc(void) HuPrcEnd(); } -static void MoveBoardStatus(s32 arg0) -{ +static void MoveBoardStatus(s32 arg0) { UnkUiStatusStruct *temp_r30 = &uiStatus[arg0]; float var_f30; Vec spC; @@ -593,8 +655,7 @@ static void MoveBoardStatus(s32 arg0) if (ABS(spC.x) < 1.0f && ABS(spC.y) < 1.0f) { spC = temp_r30->unk10; temp_r30->unk00_bit2 = 0; - } - else { + } else { OSs8tof32(&temp_r30->unk01, &var_f30); var_f30 /= 32; VECScale(&spC, &spC, var_f30); @@ -605,8 +666,7 @@ static void MoveBoardStatus(s32 arg0) temp_r30->unk04.y = spC.y; } -void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2) -{ +void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2) { s32 temp_r29; s32 temp_r28; s32 temp_r27; @@ -616,23 +676,20 @@ void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2) temp_r27 = (arg2 - (temp_r29 * 100 + temp_r28 * 10)) % 10; if (temp_r29 == 0) { HuSprBankSet(arg0, arg1 + 2, 0xA); - } - else { + } else { HuSprBankSet(arg0, arg1 + 2, temp_r29); } if (temp_r28 == 0 && temp_r29 == 0) { HuSprBankSet(arg0, arg1 + 1, temp_r27); HuSprAttrSet(arg0, arg1, 4); - } - else { + } else { HuSprBankSet(arg0, arg1 + 1, temp_r28); HuSprBankSet(arg0, arg1, temp_r27); HuSprAttrReset(arg0, arg1, HUSPR_ATTR_DISPOFF); } } -static void UpdateStatusItem(UnkUiStatusStruct *arg0, s32 arg1, s32 arg2) -{ +static void UpdateStatusItem(UnkUiStatusStruct *arg0, s32 arg1, s32 arg2) { float temp_f31; float temp_f30; @@ -642,15 +699,21 @@ static void UpdateStatusItem(UnkUiStatusStruct *arg0, s32 arg1, s32 arg2) HuSprPosSet(arg0->unk02, arg1 + 0xD, temp_f31, temp_f30); } -void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3) -{ +void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3) { UnkUiWork01 *temp_r31; omObjData *temp_r30; s32 temp_r28; s16 sp12; - s32 sp14[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), DATA_MAKE_NUM(DATADIR_BOARD, 0x20), - DATA_MAKE_NUM(DATADIR_BOARD, 0x21), DATA_MAKE_NUM(DATADIR_BOARD, 0x22), DATA_MAKE_NUM(DATADIR_BOARD, 0x23), - DATA_MAKE_NUM(DATADIR_BOARD, 0x24), DATA_MAKE_NUM(DATADIR_BOARD, 0x25) }; + s32 sp14[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x20), + DATA_MAKE_NUM(DATADIR_BOARD, 0x21), + DATA_MAKE_NUM(DATADIR_BOARD, 0x22), + DATA_MAKE_NUM(DATADIR_BOARD, 0x23), + DATA_MAKE_NUM(DATADIR_BOARD, 0x24), + DATA_MAKE_NUM(DATADIR_BOARD, 0x25) + }; temp_r28 = GWPlayer[arg0].character; temp_r30 = omAddObjEx(boardObjMan, 0x107, 0, 0, -1, &UpdatePicker); @@ -683,13 +746,11 @@ void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3) CreatePickerWindow(temp_r31, 1); } -void BoardPickerBackFlagSet(s32 arg0) -{ +void BoardPickerBackFlagSet(s32 arg0) { if (pickerObj) { if (arg0 != 0) { pickerBackF = 0; - } - else { + } else { pickerBackF = 1; } if (arg0 == 0) { @@ -699,18 +760,15 @@ void BoardPickerBackFlagSet(s32 arg0) } } -BOOL BoardPickerDoneCheck(void) -{ +BOOL BoardPickerDoneCheck(void) { if (pickerObj) { return FALSE; - } - else { + } else { return TRUE; } } -s32 BoardPickerPosGet(Vec *arg0) -{ +s32 BoardPickerPosGet(Vec *arg0) { if (pickerObj == 0 || arg0 == 0) { return -1; } @@ -720,13 +778,11 @@ s32 BoardPickerPosGet(Vec *arg0) return 0; } -s32 BoardPickerChoiceGet(void) -{ +s32 BoardPickerChoiceGet(void) { return pickerChoice; } -static void UpdatePicker(omObjData *arg0) -{ +static void UpdatePicker(omObjData *arg0) { UnkUiWork01 *temp_r31 = OM_GET_WORK_PTR(arg0, UnkUiWork01); if (temp_r31->unk00_bit0 || BoardIsKill()) { @@ -734,15 +790,12 @@ static void UpdatePicker(omObjData *arg0) HuSprGrpKill(temp_r31->unk04); pickerObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else { + } else { if (temp_r31->unk03 != 0) { temp_r31->unk03--; - } - else if (pickerChoice != -1 || temp_r31->unk00_bit7) { + } else if (pickerChoice != -1 || temp_r31->unk00_bit7) { temp_r31->unk00_bit0 = 1; - } - else { + } else { UpdatePickerInput(temp_r31, arg0); } MovePicker(temp_r31, arg0); @@ -750,8 +803,7 @@ static void UpdatePicker(omObjData *arg0) } } -static void UpdatePickerInput(UnkUiWork01 *arg0, omObjData *arg1) -{ +static void UpdatePickerInput(UnkUiWork01 *arg0, omObjData *arg1) { s32 sp8; s32 temp_r29; @@ -759,8 +811,7 @@ static void UpdatePickerInput(UnkUiWork01 *arg0, omObjData *arg1) sp8 = 0; if (GWPlayer[arg0->unk00_bit5].com && arg0->unk01 != -1) { UpdateComPickerButton(arg0, arg1, &sp8); - } - else { + } else { temp_r29 = GWPlayer[arg0->unk00_bit5].port; sp8 = HuPadDStkRep[temp_r29] | HuPadBtnDown[temp_r29]; } @@ -772,8 +823,7 @@ static void UpdatePickerInput(UnkUiWork01 *arg0, omObjData *arg1) } } -static void MovePicker(UnkUiWork01 *arg0, omObjData *arg1) -{ +static void MovePicker(UnkUiWork01 *arg0, omObjData *arg1) { float temp_f31 = 0.5f; Vec sp14; Vec sp8; @@ -790,8 +840,7 @@ static void MovePicker(UnkUiWork01 *arg0, omObjData *arg1) arg1->trans.y = arg1->rot.y; arg1->trans.z = arg1->rot.z; arg0->unk00_bit6 = 0; - } - else { + } else { VECScale(&sp8, &sp8, temp_f31); VECAdd(&sp14, &sp8, &sp8); arg1->trans.x = sp8.x; @@ -801,40 +850,34 @@ static void MovePicker(UnkUiWork01 *arg0, omObjData *arg1) } } -static void UpdateComPickerButton(UnkUiWork01 *arg0, omObjData *arg1, s32 *arg2) -{ +static void UpdateComPickerButton(UnkUiWork01 *arg0, omObjData *arg1, s32 *arg2) { if (arg0->unk02 == arg0->unk01) { *arg2 = 0x100; - } - else { + } else { *arg2 = 2; } } -static BOOL CheckPickerButton(UnkUiWork01 *arg0, omObjData *arg1, u32 arg2) -{ +static BOOL CheckPickerButton(UnkUiWork01 *arg0, omObjData *arg1, u32 arg2) { BOOL var_r30 = FALSE; if (arg2 == 0x100) { pickerChoice = arg0->unk02; HuAudFXPlay(2); var_r30 = TRUE; - } - else if (arg2 == 0x200 && pickerBackF == 0) { + } else if (arg2 == 0x200 && pickerBackF == 0) { arg0->unk00_bit0 = 1; arg0->unk00_bit7 = 1; pickerChoice = -1; HuAudFXPlay(3); var_r30 = TRUE; - } - else if (arg2 & 1) { + } else if (arg2 & 1) { var_r30 = TRUE; if (pickerChoiceDefault > 1) { HuAudFXPlay(0); } arg0->unk02--; - } - else if (arg2 & 2) { + } else if (arg2 & 2) { var_r30 = TRUE; if (pickerChoiceDefault > 1) { HuAudFXPlay(0); @@ -853,13 +896,19 @@ static BOOL CheckPickerButton(UnkUiWork01 *arg0, omObjData *arg1, u32 arg2) return var_r30; } -void BoardYourTurnExec(s32 arg0) -{ +void BoardYourTurnExec(s32 arg0) { s32 temp_r29; UnkUiWork02 *temp_r31; - s32 sp8[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x43), DATA_MAKE_NUM(DATADIR_BOARD, 0x44), DATA_MAKE_NUM(DATADIR_BOARD, 0x45), - DATA_MAKE_NUM(DATADIR_BOARD, 0x46), DATA_MAKE_NUM(DATADIR_BOARD, 0x47), DATA_MAKE_NUM(DATADIR_BOARD, 0x48), - DATA_MAKE_NUM(DATADIR_BOARD, 0x49), DATA_MAKE_NUM(DATADIR_BOARD, 0x4A) }; + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x43), + DATA_MAKE_NUM(DATADIR_BOARD, 0x44), + DATA_MAKE_NUM(DATADIR_BOARD, 0x45), + DATA_MAKE_NUM(DATADIR_BOARD, 0x46), + DATA_MAKE_NUM(DATADIR_BOARD, 0x47), + DATA_MAKE_NUM(DATADIR_BOARD, 0x48), + DATA_MAKE_NUM(DATADIR_BOARD, 0x49), + DATA_MAKE_NUM(DATADIR_BOARD, 0x4A) + }; temp_r29 = GWPlayer[arg0].character; yourTurnObj = omAddObjEx(boardObjMan, 0x10B, 0, 0, -1, &UpdateYourTurn); @@ -882,8 +931,7 @@ void BoardYourTurnExec(s32 arg0) } } -static void UpdateYourTurn(omObjData *arg0) -{ +static void UpdateYourTurn(omObjData *arg0) { UnkUiWork02 *temp_r31 = OM_GET_WORK_PTR(arg0, UnkUiWork02); if (temp_r31->unk00_bit0 || BoardIsKill()) { @@ -891,8 +939,7 @@ static void UpdateYourTurn(omObjData *arg0) yourTurnSprGrp = -1; yourTurnObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else { + } else { switch (temp_r31->unk00_bit3) { case 0: GrowYourTurn(temp_r31, arg0); @@ -907,8 +954,7 @@ static void UpdateYourTurn(omObjData *arg0) } } -static void GrowYourTurn(UnkUiWork02 *arg0, omObjData *arg1) -{ +static void GrowYourTurn(UnkUiWork02 *arg0, omObjData *arg1) { float temp_f30; arg0->unk01 += 7; @@ -921,8 +967,7 @@ static void GrowYourTurn(UnkUiWork02 *arg0, omObjData *arg1) HuSprScaleSet(yourTurnSprGrp, 0, temp_f30, temp_f30); } -static void WaitYourTurn(UnkUiWork02 *arg0, omObjData *arg1) -{ +static void WaitYourTurn(UnkUiWork02 *arg0, omObjData *arg1) { float temp_f30; arg0->unk01 += 7; @@ -936,8 +981,7 @@ static void WaitYourTurn(UnkUiWork02 *arg0, omObjData *arg1) HuSprTPLvlSet(yourTurnSprGrp, 0, 1.0f - temp_f30); } -static void ShrinkYourTurn(UnkUiWork02 *arg0, omObjData *arg1) -{ +static void ShrinkYourTurn(UnkUiWork02 *arg0, omObjData *arg1) { s32 temp_r30 = GWPlayer[arg0->unk00_bit5].port; if ((HuPadBtnDown[temp_r30] & 0x100) || GWPlayer[arg0->unk00_bit5].com || _CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -947,8 +991,7 @@ static void ShrinkYourTurn(UnkUiWork02 *arg0, omObjData *arg1) } } -s32 BoardItemUseExec(s32 arg0) -{ +s32 BoardItemUseExec(s32 arg0) { BoardPauseDisableSet(1); itemPlayer = arg0; itemUseProc = HuPrcChildCreate(ItemUseProc, 0x2004, 0x4000, 0, boardMainProc); @@ -959,8 +1002,7 @@ s32 BoardItemUseExec(s32 arg0) return itemUsed; } -static void ItemUseTeamProc(s32 arg0) -{ +static void ItemUseTeamProc(s32 arg0) { UnkUiStatusStruct *temp_r22; Vec sp40; Vec sp34; @@ -974,10 +1016,9 @@ static void ItemUseTeamProc(s32 arg0) if (itemTeamF != 0) { BoardStatusTargetPosSet(itemPlayer, &teamItemStatusPosTbl[0]); BoardStatusTargetPosSet(teamItemPlayer, &teamItemStatusPosTbl[1]); - } - else { - BoardStatusTargetPosSet(itemPlayer, (Vec *)statusPosTbl[0]); - BoardStatusTargetPosSet(teamItemPlayer, (Vec *)statusPosTbl[1]); + } else { + BoardStatusTargetPosSet(itemPlayer, (Vec*) statusPosTbl[0]); + BoardStatusTargetPosSet(teamItemPlayer, (Vec*) statusPosTbl[1]); } sp2C[0] = BoardPlayerTeamFind(itemPlayer); sp2C[1] = BoardPlayerSameTeamFind(sp2C[0]); @@ -989,14 +1030,16 @@ static void ItemUseTeamProc(s32 arg0) while (!BoardStatusStopCheck(itemPlayer) || !BoardStatusStopCheck(teamItemPlayer)) { HuPrcVSleep(); } - } - else { + } else { for (i = 0; i < 4; i++) { sp40.x = statusPosTbl[i][0]; sp40.y = statusPosTbl[i][1]; BoardStatusTargetPosSet(i, &sp40); } - while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) { + while (!BoardStatusStopCheck(0) + || !BoardStatusStopCheck(1) + || !BoardStatusStopCheck(2) + || !BoardStatusStopCheck(3)) { sp34.z = 0.0f; for (i = 0; i < 4; i++) { temp_r22 = &uiStatus[i]; @@ -1014,8 +1057,7 @@ static void ItemUseTeamProc(s32 arg0) } } -static void ItemUseProc(void) -{ +static void ItemUseProc(void) { s32 var_r24; s16 temp_r23; s32 var_r25; @@ -1026,8 +1068,7 @@ static void ItemUseProc(void) itemTeam = GWPlayerTeamGet(itemPlayer); if (GWTeamGet()) { itemTeamF = 1; - } - else { + } else { itemTeamF = 0; } for (i = 0; i < 4; i++) { @@ -1094,8 +1135,7 @@ static void ItemUseProc(void) HuPrcEnd(); } -static void FinishItemUse(s16 arg0, s32 arg1) -{ +static void FinishItemUse(s16 arg0, s32 arg1) { s32 var_r30; s32 var_r31; s16 temp_r29; @@ -1131,8 +1171,7 @@ static void FinishItemUse(s16 arg0, s32 arg1) } } -static void DestroyItemUse(void) -{ +static void DestroyItemUse(void) { s32 i; CharModelLayerSetAll(1); @@ -1144,8 +1183,7 @@ static void DestroyItemUse(void) itemUseProc = NULL; } -void BoardMakeRandomItem(void) -{ +void BoardMakeRandomItem(void) { s32 chosenItemIndex; s32 i; @@ -1158,34 +1196,30 @@ void BoardMakeRandomItem(void) BoardItemBagItemSet(itemRandTbl); } -static inline void TeamItemPosSetInlineFunc01(s32 arg0, s32 arg1, Vec *arg2) -{ +static inline void TeamItemPosSetInlineFunc01(s32 arg0, s32 arg1, Vec *arg2) { UnkUiWork03 *temp_r29 = OM_GET_WORK_PTR(itemPickObj, UnkUiWork03); - Vec(*temp_r31)[6] = (void *)temp_r29->unk04; + Vec (*temp_r31)[6] = (void*) temp_r29->unk04; temp_r31[arg0][arg1 + 2].x = arg2->x; temp_r31[arg0][arg1 + 2].y = arg2->y; temp_r31[arg0][arg1 + 2].z = arg2->z; } -static inline void TeamItemPosSetInlineFunc02(s32 arg0, s32 arg1, Vec *arg2) -{ +static inline void TeamItemPosSetInlineFunc02(s32 arg0, s32 arg1, Vec *arg2) { UnkUiWork03 *temp_r29 = OM_GET_WORK_PTR(itemPickObj, UnkUiWork03); - Vec(*temp_r31)[6] = (void *)temp_r29->unk04; + Vec (*temp_r31)[6] = (void*) temp_r29->unk04; (temp_r31 + 4)[arg0][arg1 + 2].x = arg2->x; (temp_r31 + 4)[arg0][arg1 + 2].y = arg2->y; (temp_r31 + 4)[arg0][arg1 + 2].z = arg2->z; } -static void TeamItemPosSet(s32 arg0, s32 arg1, Vec *arg2) -{ +static void TeamItemPosSet(s32 arg0, s32 arg1, Vec *arg2) { TeamItemPosSetInlineFunc01(arg0, arg1, arg2); TeamItemPosSetInlineFunc02(arg0, arg1, arg2); } -static inline void ExecItemPickInlineFunc01(Vec (*arg0)[6]) -{ +static inline void ExecItemPickInlineFunc01(Vec (*arg0)[6]) { Vec sp1C; Vec sp28; Vec sp34; @@ -1199,8 +1233,7 @@ static inline void ExecItemPickInlineFunc01(Vec (*arg0)[6]) sp14 = GWPlayer[i].items[j]; if (sp14 == -1) { itemMdlId[i][j] = -1; - } - else { + } else { BoardCameraRotGet(&sp1C); temp_r24 = BoardModelCreate(itemMdlTbl[sp14], 0, 0); itemMdlId[i][j] = temp_r24; @@ -1220,8 +1253,7 @@ static inline void ExecItemPickInlineFunc01(Vec (*arg0)[6]) } } -static inline void ExecItemPickInlineFunc02(s32 arg0, s8 arg1, s32 arg2) -{ +static inline void ExecItemPickInlineFunc02(s32 arg0, s8 arg1, s32 arg2) { UnkUiWork03 *sp10; BoardPickerCreate(arg0, arg1, itemPosTemp, arg2); @@ -1236,8 +1268,7 @@ static inline void ExecItemPickInlineFunc02(s32 arg0, s8 arg1, s32 arg2) } } -static void ExecItemPick(void) -{ +static void ExecItemPick(void) { Vec sp40; s32 sp18; s32 var_r22; @@ -1245,7 +1276,7 @@ static void ExecItemPick(void) s32 i; s32 j; UnkUiWork03 *temp_r27; - Vec(*temp_r28)[6]; + Vec (*temp_r28)[6]; if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardTutorialHostHide(0); @@ -1262,25 +1293,22 @@ static void ExecItemPick(void) BoardStatusItemHideSet(1, 0); BoardStatusItemHideSet(2, 0); BoardStatusItemHideSet(3, 0); - temp_r28 = (void *)temp_r27->unk04; + temp_r28 = (void*) temp_r27->unk04; for (var_r22 = i = 0; i < 4; i++) { if (itemTeamF != 0) { if (itemTeam == GWPlayerTeamGet(i)) { if (itemPlayer == i) { var_r22 = 0; - } - else { + } else { var_r22 = 1; } sp40.x = teamItemStatusPosTbl[var_r22].x; sp40.y = teamItemStatusPosTbl[var_r22].y; - } - else { + } else { sp40.x = statusPosTbl[i][0] + statusHideOfsTbl[i]; sp40.y = statusPosTbl[i][1]; } - } - else { + } else { sp40.x = statusPosTbl[i][0]; sp40.y = statusPosTbl[i][1]; } @@ -1298,7 +1326,7 @@ static void ExecItemPick(void) (temp_r28 + 4)[i][j].z = temp_r28[i][j].z = 0.0f; } } - ExecItemPickInlineFunc01((void *)temp_r27->unk04); + ExecItemPickInlineFunc01((void*) temp_r27->unk04); memset(itemPosTemp, 0, 0x48); var_r23 = BoardPlayerItemCount(itemPlayer); ItemGetPos(itemPlayer, &itemPosTemp[0]); @@ -1314,11 +1342,10 @@ static void ExecItemPick(void) ExecItemPickInlineFunc02(itemPlayer, var_r23, sp18); } -static void UpdateItemPick(omObjData *arg0) -{ +static void UpdateItemPick(omObjData *arg0) { UnkUiWork03 *temp_r28 = OM_GET_WORK_PTR(arg0, UnkUiWork03); UnkUiStatusStruct *temp_r26; - Vec(*temp_r27)[6]; + Vec (*temp_r27)[6]; Vec sp14; Vec sp8; float temp_f30; @@ -1341,12 +1368,10 @@ static void UpdateItemPick(omObjData *arg0) HuMemDirectFree(temp_r28->unk04); itemPickObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else { + } else { if (temp_r28->unk02 != 0) { temp_r28->unk02--; - } - else { + } else { switch (temp_r28->unk01) { case 3: temp_r28->unk00_bit1 = 1; @@ -1361,7 +1386,7 @@ static void UpdateItemPick(omObjData *arg0) } } MakeItemPickSpace(temp_r28); - temp_r27 = (void *)temp_r28->unk04; + temp_r27 = (void*) temp_r28->unk04; for (i = 0; i < 4; i++) { temp_r26 = &uiStatus[i]; for (j = 0; j < 6; j++) { @@ -1385,15 +1410,14 @@ static void UpdateItemPick(omObjData *arg0) } } -static void MakeItemPickSpace(UnkUiWork03 *arg0) -{ +static void MakeItemPickSpace(UnkUiWork03 *arg0) { Vec sp8; float var_f29; s32 i; s32 j; - Vec(*temp_r28)[6]; + Vec (*temp_r28)[6]; - temp_r28 = (void *)arg0->unk04; + temp_r28 = (void*) arg0->unk04; if (!arg0->unk00_bit1) { if (arg0->unk03 < 90) { if (arg0->unk03 == 0) { @@ -1406,8 +1430,7 @@ static void MakeItemPickSpace(UnkUiWork03 *arg0) arg0->unk03 = 90; } } - } - else { + } else { if (arg0->unk03 > 0) { arg0->unk03 -= 6; if (arg0->unk03 < 0) { @@ -1428,8 +1451,7 @@ static void MakeItemPickSpace(UnkUiWork03 *arg0) if (arg0->unk00_bit1 && arg0->unk03 == 0) { arg0->unk00_bit0 = 1; } - } - else { + } else { var_f29 = 0.3f; VECScale(&sp8, &sp8, var_f29); VECAdd(&temp_r28[i][j], &sp8, &sp8); @@ -1440,10 +1462,9 @@ static void MakeItemPickSpace(UnkUiWork03 *arg0) } } -static void SetItemUIStatus(s32 arg0) -{ +static void SetItemUIStatus(s32 arg0) { UnkUiWork03 *temp_r27 = OM_GET_WORK_PTR(itemPickObj, UnkUiWork03); - Vec(*temp_r28)[6] = (void *)temp_r27->unk04; + Vec (*temp_r28)[6] = (void*) temp_r27->unk04; float var_f31; float var_f30; s32 i; @@ -1485,8 +1506,7 @@ static void SetItemUIStatus(s32 arg0) temp_r27->unk01 = arg0; } -void BoardItemGetDestPos(s32 arg0, Vec *arg1) -{ +void BoardItemGetDestPos(s32 arg0, Vec *arg1) { Vec spC; s32 i; @@ -1494,12 +1514,11 @@ void BoardItemGetDestPos(s32 arg0, Vec *arg1) spC.y = statusPosTbl[arg0][1]; spC.z = 0.0f; for (i = 0; i < 3; i++) { - VECAdd((Vec *)&statusItemPosTbl[i + 2], &spC, &arg1[i]); + VECAdd((Vec*) &statusItemPosTbl[i + 2], &spC, &arg1[i]); } } -static void ItemGetPos(s32 arg0, Vec *arg1) -{ +static void ItemGetPos(s32 arg0, Vec *arg1) { Vec spC; s32 var_r29; s32 i; @@ -1507,25 +1526,22 @@ static void ItemGetPos(s32 arg0, Vec *arg1) if (itemTeamF != 0) { if (itemPlayer == arg0) { var_r29 = 0; - } - else { + } else { var_r29 = 1; } spC.x = teamItemStatusPosTbl[var_r29].x; spC.y = teamItemStatusPosTbl[var_r29].y; - } - else { + } else { spC.x = statusPosTbl[arg0][0]; spC.y = statusPosTbl[arg0][1]; } spC.z = 0.0f; for (i = 0; i < 3; i++) { - VECAdd((Vec *)statusItemPosTbl[i + 2], &spC, &arg1[i]); + VECAdd((Vec*) statusItemPosTbl[i + 2], &spC, &arg1[i]); } } -void BoardItemStatusKill(s32 arg0) -{ +void BoardItemStatusKill(s32 arg0) { Vec sp68[3]; Vec sp44[3]; Vec sp20[3]; @@ -1540,19 +1556,17 @@ void BoardItemStatusKill(s32 arg0) if (arg0 == itemPlayer) { sp8.x = teamItemStatusPosTbl[0].x; sp8.y = teamItemStatusPosTbl[0].y; - } - else { + } else { sp8.x = teamItemStatusPosTbl[1].x; sp8.y = teamItemStatusPosTbl[1].y; } - } - else { + } else { sp8.x = statusPosTbl[arg0][0]; sp8.y = statusPosTbl[arg0][1]; } sp8.z = 0.0f; for (i = 0; i < 3; i++) { - VECAdd((Vec *)statusItemPosTbl[i + 2], &sp8, &sp68[i]); + VECAdd((Vec*) statusItemPosTbl[i + 2], &sp8, &sp68[i]); if (itemMdlId[arg0][i] != -1) { BoardModelRotGet(itemMdlId[arg0][i], &sp44[i]); BoardModelScaleGet(itemMdlId[arg0][i], &sp20[i]); @@ -1578,8 +1592,7 @@ void BoardItemStatusKill(s32 arg0) } } -static void UpdateItemPickGfx(omObjData *arg0) -{ +static void UpdateItemPickGfx(omObjData *arg0) { UnkUiWork01 *temp_r30 = OM_GET_WORK_PTR(arg0, UnkUiWork01); if (temp_r30->unk00_bit0 || BoardIsKill()) { @@ -1587,12 +1600,10 @@ static void UpdateItemPickGfx(omObjData *arg0) HuSprGrpKill(temp_r30->unk04); pickerObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else { + } else { if (temp_r30->unk03 != 0) { temp_r30->unk03--; - } - else { + } else { if (!CheckItemWindowSlide()) { temp_r30->unk00_bit6 = 1; } @@ -1609,8 +1620,7 @@ static void UpdateItemPickGfx(omObjData *arg0) HuSprAttrReset(temp_r30->unk04, 0, HUSPR_ATTR_NOANIM); arg0->func = UpdateItemPickup; HuWinDispOff(temp_r30->unk06); - } - else { + } else { itemUsed = -1; } } @@ -1618,8 +1628,7 @@ static void UpdateItemPickGfx(omObjData *arg0) } } -static void UpdateItemPickup(omObjData *arg0) -{ +static void UpdateItemPickup(omObjData *arg0) { UnkUiWork01 *temp_r31 = OM_GET_WORK_PTR(arg0, UnkUiWork01); Vec sp50; Vec sp44; @@ -1641,14 +1650,11 @@ static void UpdateItemPickup(omObjData *arg0) HuSprGrpKill(temp_r31->unk04); pickerObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else if (temp_r31->unk03 != 0) { + } else if (temp_r31->unk03 != 0) { temp_r31->unk03--; - } - else if (pickerChoice == -1) { + } else if (pickerChoice == -1) { temp_r31->unk00_bit0 = 1; - } - else { + } else { var_r29 = temp_r31->unk00_bit5; var_r28 = pickerChoice; if (GWTeamGet() && pickerChoice >= BoardPlayerItemCount(temp_r31->unk00_bit5)) { @@ -1691,8 +1697,7 @@ static void UpdateItemPickup(omObjData *arg0) arg0->trans.x -= itemPickupPos; arg0->trans.y += itemPickupPos; itemPickupPos *= 0.98f; - } - else { + } else { sp50.x = arg0->trans.x; sp50.y = arg0->trans.y; sp50.z = 3200.0f; @@ -1709,8 +1714,7 @@ static void UpdateItemPickup(omObjData *arg0) temp_r31->unk03 = 0x12; BoardPlayerItemRemove(var_r29, var_r28); temp_r31->unk00_bit3 = 5; - } - else { + } else { arg0->trans.x -= itemPickupPos; arg0->trans.y += itemPickupPos; itemPickupPos *= 0.9f; @@ -1732,8 +1736,7 @@ static void UpdateItemPickup(omObjData *arg0) if (ABS(sp14.x) < 1.0f && ABS(sp14.y) < 1.0f) { HuSprAttrSet(temp_r31->unk04, 0, 4); temp_r31->unk00_bit3 = 6; - } - else { + } else { VECScale(&sp14, &sp14, 0.1f); VECAdd(&sp20, &sp14, &sp50); sp50.z = 3200.0f; @@ -1750,8 +1753,7 @@ static void UpdateItemPickup(omObjData *arg0) } } -static BOOL CheckItemWindow(void) -{ +static BOOL CheckItemWindow(void) { UnkUiWork01 *temp_r31; if (pickerObj == 0) { @@ -1760,14 +1762,12 @@ static BOOL CheckItemWindow(void) temp_r31 = OM_GET_WORK_PTR(pickerObj, UnkUiWork01); if (temp_r31->unk00_bit3 == 6) { return TRUE; - } - else { + } else { return FALSE; } } -static void HideItemWindow(void) -{ +static void HideItemWindow(void) { UnkUiWork01 *temp_r31; if (pickerObj) { @@ -1776,8 +1776,7 @@ static void HideItemWindow(void) } } -static void CreateItemWindow(s32 arg0, s32 arg1) -{ +static void CreateItemWindow(s32 arg0, s32 arg1) { Vec sp10; float sp8[2]; float temp_f31; @@ -1801,8 +1800,7 @@ static void CreateItemWindow(s32 arg0, s32 arg1) temp_r26->trans.x = 0.0f; if (GWTeamGet()) { var_f30 = 32.0f; - } - else { + } else { var_f30 = 0.0f; } temp_r31 = temp_r29->unk04; @@ -1814,9 +1812,9 @@ static void CreateItemWindow(s32 arg0, s32 arg1) } temp_r28 = GWPlayer[arg0].items[var_r27]; if (temp_r28 == -1) { - temp_r31->unk12[i] = temp_r31->unk1E[i] = temp_r31->unk06[i] = temp_r31->unk00[i] = -1; - } - else { + temp_r31->unk12[i] = temp_r31->unk1E[i] + = temp_r31->unk06[i] = temp_r31->unk00[i] = -1; + } else { temp_r31->unk00[i] = temp_r28; temp_r31->unk74[i].x = i * HU_DISP_WIDTHF + 36.0f; temp_r31->unk74[i].y = var_f30 + HU_DISP_CENTERY; @@ -1853,8 +1851,7 @@ static void CreateItemWindow(s32 arg0, s32 arg1) } } -static BOOL CheckItemWindowSlide(void) -{ +static BOOL CheckItemWindowSlide(void) { UnkUiWork04 *temp_r31; if (itemWindowObj == 0) { @@ -1864,8 +1861,7 @@ static BOOL CheckItemWindowSlide(void) return (temp_r31->unk03 != 0) ? FALSE : TRUE; } -static void KillItemWindow(void) -{ +static void KillItemWindow(void) { UnkUiWork04 *temp_r31; if (itemWindowObj) { @@ -1874,8 +1870,7 @@ static void KillItemWindow(void) } } -static void SetItemWindowCurr(s32 arg0) -{ +static void SetItemWindowCurr(s32 arg0) { UnkUiWork04 *temp_r31; UnkUiWindowStruct *temp_r30; @@ -1891,8 +1886,7 @@ static void SetItemWindowCurr(s32 arg0) } } -static void UpdateItemWindow(omObjData *arg0) -{ +static void UpdateItemWindow(omObjData *arg0) { Vec sp20; Vec sp14; Vec sp8; @@ -1920,16 +1914,14 @@ static void UpdateItemWindow(omObjData *arg0) HuMemDirectFree(temp_r29->unk04); itemWindowObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); - } - else { + } else { var_r27 = 0; for (i = 0; i < temp_r29->unk02; i++) { if ((temp_r31->unk06[i] != -1) && (temp_r31->unk12[i] != -1)) { VECSubtract(&temp_r31->unk74[i], &temp_r31->unk2C[i], &sp20); if (VECMag(&sp20) <= 1.0f) { temp_r31->unk2C[i] = temp_r31->unk74[i]; - } - else { + } else { VECScale(&sp20, &sp20, 0.3f); VECAdd(&sp20, &temp_r31->unk2C[i], &temp_r31->unk2C[i]); var_r27 = 1; @@ -1945,9 +1937,9 @@ static void UpdateItemWindow(omObjData *arg0) Hu3D2Dto3D(&sp14, 1, &sp14); BoardModelPosSetV(temp_r31->unk06[i], &sp14); BoardCameraRotGet(&sp8); - MTXRotRad(sp2C, 'y', MTXDegToRad(arg0->trans.x)); - MTXRotRad(sp5C, 'x', MTXDegToRad(sp8.x + 10.0f)); - MTXConcat(sp5C, sp2C, sp2C); + PSMTXRotRad(sp2C, 'y', MTXDegToRad(arg0->trans.x)); + PSMTXRotRad(sp5C, 'x', MTXDegToRad(sp8.x + 10.0f)); + PSMTXConcat(sp5C, sp2C, sp2C); BoardModelMtxSet(temp_r31->unk06[i], &sp2C); BoardModelRotSet(temp_r31->unk06[i], 0.0f, 0.0f, 0.0f); } @@ -1957,15 +1949,14 @@ static void UpdateItemWindow(omObjData *arg0) } } -static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) -{ +static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { float spC[2]; - + float posX; float posY; float yOfs; s32 var_r30; -#if VERSION_NTSC + #if VERSION_NTSC switch (GWGameStat.language) { case 1: yOfs = 0.0f; @@ -1974,18 +1965,17 @@ static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) yOfs = 0.0f; break; } -#else + #else yOfs = 0; -#endif + #endif if (arg1 != 0) { var_r30 = MAKE_MESSID(0x10, 0x1A); - } - else { + } else { var_r30 = MAKE_MESSID(0x10, 0x1B); } HuWinMesMaxSizeGet(1, spC, var_r30); posX = -10000.0f; - posY = yOfs + (HU_DISP_HEIGHT - 128); + posY = yOfs + (HU_DISP_HEIGHT-128); arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0); HuWinBGTPLvlSet(arg0->unk06, 0.0f); HuWinMesSpeedSet(arg0->unk06, 0); @@ -1995,8 +1985,7 @@ static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) } } -static void KillPickerWindow(UnkUiWork01 *arg0) -{ +static void KillPickerWindow(UnkUiWork01 *arg0) { if (arg0->unk06 != -1) { HuWinKill(arg0->unk06); arg0->unk06 = -1; diff --git a/src/game/board/view.c b/src/game/board/view.c index dcbd1c65..38a6157c 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -1,6 +1,5 @@ #include "game/board/view.h" #include "game/audio.h" -#include "game/disp.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfex.h" @@ -8,6 +7,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "game/disp.h" #include "game/board/main.h" #include "game/board/model.h" @@ -54,28 +54,55 @@ static Process *viewProc; static s16 buttonWin = -1; static s16 focusMdl = -1; -static float overhead2DPos[][2] = { { 48.0f, 72.0f }, { HU_DISP_WIDTH - 48, 72.0f }, { 48.0f, HU_DISP_HEIGHT - 72 }, - { HU_DISP_WIDTH - 48, HU_DISP_HEIGHT - 72 }, { HU_DISP_CENTERX, 72.0f } }; +static float overhead2DPos[][2] = { + { 48.0f, 72.0f }, + { HU_DISP_WIDTH-48, 72.0f }, + { 48.0f, HU_DISP_HEIGHT-72 }, + { HU_DISP_WIDTH-48, HU_DISP_HEIGHT-72 }, + { HU_DISP_CENTERX, 72.0f } +}; -static float mapViewMinZ[] = { -2000.0f, -1500.0f, -2200.0f, -1800.0f, -2100.0f, -3000.0f, -3000.0f, -1800.0f, -1800.0f }; +static float mapViewMinZ[] = { + -2000.0f, -1500.0f, -2200.0f, + -1800.0f, -2100.0f, -3000.0f, + -3000.0f, -1800.0f, -1800.0f +}; -static float mapViewMaxZ[] = { 2300.0f, 2500.0f, 2600.0f, 2000.0f, 2300.0f, 2500.0f, 2500.0f, 2000.0f, 2000.0f }; +static float mapViewMaxZ[] = { + 2300.0f, 2500.0f, 2600.0f, + 2000.0f, 2300.0f, 2500.0f, + 2500.0f, 2000.0f, 2000.0f +}; -static float mapViewMinX[] = { -3000.0f, -3000.0f, -3000.0f, -3000.0f, -3000.0f, -3000.0f, -3000.0f, -2000.0f, -2000.0f }; +static float mapViewMinX[] = { + -3000.0f, -3000.0f, -3000.0f, + -3000.0f, -3000.0f, -3000.0f, + -3000.0f, -2000.0f, -2000.0f +}; -static float mapViewMaxX[] = { 3000.0f, 3000.0f, 3000.0f, 3000.0f, 3000.0f, 3000.0f, 3000.0f, 1600.0f, 2000.0f }; +static float mapViewMaxX[] = { + 3000.0f, 3000.0f, 3000.0f, + 3000.0f, 3000.0f, 3000.0f, + 3000.0f, 1600.0f, 2000.0f +}; -static float overheadCamZoom[] = { 14370.0f, 14500.0f, 15000.0f, 15000.0f, 13000.0f, 15000.0f, 100.0f, 10000.0f, 10000.0f }; +static float overheadCamZoom[] = { + 14370.0f, 14500.0f, 15000.0f, + 15000.0f, 13000.0f, 15000.0f, + 100.0f, 10000.0f, 10000.0f +}; -static float overheadCamPosZ[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -160.0f, 0.0f }; +static float overheadCamPosZ[] = { + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, -160.0f, 0.0f +}; -void BoardViewOverheadExec(s32 arg0) -{ +void BoardViewOverheadExec(s32 arg0) { if (BoardPauseDisableGet() == 0) { BoardPauseDisableSet(1); pauseDisableF = 1; - } - else { + } else { pauseDisableF = 0; } _SetFlag(0x1001C); @@ -101,15 +128,13 @@ void BoardViewOverheadExec(s32 arg0) _ClearFlag(0x1001C); } -void BoardViewFocusGetPos(Vec *arg0) -{ +void BoardViewFocusGetPos(Vec *arg0) { if (arg0) { BoardModelPosGet(focusMdl, arg0); } } -static inline void BoardViewInlineFunc00(Vec *arg0, Vec *arg1, u16 arg2) -{ +static inline void BoardViewInlineFunc00(Vec *arg0, Vec *arg1, u16 arg2) { if (arg2 == 0) { arg2 = 1; } @@ -125,13 +150,13 @@ static inline void BoardViewInlineFunc00(Vec *arg0, Vec *arg1, u16 arg2) } } -void BoardViewFocusSet(Vec *arg0, u16 arg1) -{ +void BoardViewFocusSet(Vec *arg0, u16 arg1) { + u16 var_r31; + if (BoardPauseDisableGet() == 0) { BoardPauseDisableSet(1); pauseDisableF = 1; - } - else { + } else { pauseDisableF = 0; } focusDestroyF = 1; @@ -139,13 +164,13 @@ void BoardViewFocusSet(Vec *arg0, u16 arg1) HuPrcSleep(2); } -void BoardViewMoveStart(Vec *arg0, Vec *arg1, u16 arg2) -{ +void BoardViewMoveStart(Vec *arg0, Vec *arg1, u16 arg2) { + u16 var_r31; + if (BoardPauseDisableGet() == 0) { BoardPauseDisableSet(1); pauseDisableF = 1; - } - else { + } else { pauseDisableF = 0; } viewProc = HuPrcChildCreate(ExecStarView, 0x200A, 0x3800, 0, boardMainProc); @@ -155,31 +180,26 @@ void BoardViewMoveStart(Vec *arg0, Vec *arg1, u16 arg2) HuPrcSleep(2); } -BOOL BoardViewMoveCheck(void) -{ +BOOL BoardViewMoveCheck(void) { return (viewMoveF != 0) ? TRUE : FALSE; } -void BoardViewMoveEnd(void) -{ +void BoardViewMoveEnd(void) { viewMoveF = 0; } -void BoardViewWait(void) -{ +void BoardViewWait(void) { viewMoveF = 0; while (viewProc != NULL) { HuPrcVSleep(); } } -void BoardViewMapExec(s32 arg0) -{ +void BoardViewMapExec(s32 arg0) { if (BoardPauseDisableGet() == 0) { BoardPauseDisableSet(1); pauseDisableF = 1; - } - else { + } else { pauseDisableF = 0; } viewProc = HuPrcChildCreate(ExecMapView, 0x200A, 0x3800, 0, boardMainProc); @@ -194,8 +214,7 @@ void BoardViewMapExec(s32 arg0) } } -static void ExecMapView(void) -{ +static void ExecMapView(void) { Vec spC; float var_f29; float temp_f28; @@ -221,8 +240,7 @@ static void ExecMapView(void) } if (HuPadBtn[GWPlayer[viewPlayer].port] & 0x100) { var_f29 = 40.0f; - } - else { + } else { var_f29 = 20.0f; } spC.x = spC.y = spC.z = 0.0f; @@ -256,8 +274,7 @@ static void ExecMapView(void) HuPrcEnd(); } -static void ExecStarView(void) -{ +static void ExecStarView(void) { Vec sp8; float temp_f30; @@ -290,8 +307,7 @@ static void ExecStarView(void) HuPrcEnd(); } -static void ExecOverheadView(void) -{ +static void ExecOverheadView(void) { u32 var_r31; if ((GWBoardGet() == BOARD_ID_MAIN3 || GWBoardGet() == BOARD_ID_MAIN6) && boardLightResetHook) { @@ -322,8 +338,7 @@ static void ExecOverheadView(void) HuPrcEnd(); } -static void DestroyView(void) -{ +static void DestroyView(void) { if (focusMdl != -1) { BoardModelKill(focusMdl); focusMdl = -1; @@ -340,8 +355,7 @@ static void DestroyView(void) viewProc = NULL; } -static void SetTargetView(void) -{ +static void SetTargetView(void) { Vec sp14; Vec sp8; @@ -356,8 +370,7 @@ static void SetTargetView(void) sp8.z = 0.0f; BoardCameraMotionStartEx(focusMdl, &sp8, NULL, 3000.0f, -1.0f, 21); BoardCameraMotionWait(); - } - else { + } else { BoardModelPosSet(focusMdl, 0.0f, 0.0f, 0.0f); sp14.x = 0.0f; sp14.y = 0.0f; @@ -373,8 +386,7 @@ static void SetTargetView(void) } } -static void DestroyFocus(void) -{ +static void DestroyFocus(void) { if (focusMdl != -1) { BoardModelKill(focusMdl); focusMdl = -1; @@ -384,8 +396,7 @@ static void DestroyFocus(void) BoardCameraMoveSet(1); } -static void CreateButtonWin(void) -{ +static void CreateButtonWin(void) { float sp8[2]; float posX; float posY; @@ -393,41 +404,39 @@ static void CreateButtonWin(void) if (viewControls != 2) { var_r31 = MAKE_MESSID(0x09, 0x05); -#if VERSION_PAL + #if VERSION_PAL HuWinMesMaxSizeGet(1, sp8, var_r31); - posX = 288 - ((sp8[0] / 2) - 32); -#endif + posX = 288-((sp8[0]/2)-32); + #endif posY = 286.0f; - } - else { + } else { var_r31 = MAKE_MESSID(0x10, 0x4D); -#if VERSION_PAL + #if VERSION_PAL posX = -10000.0f; posY = 324.0f; -#else + #else posY = 328.0f; -#endif + #endif + } HuWinMesMaxSizeGet(1, sp8, var_r31); -#if VERSION_NTSC + #if VERSION_NTSC posX = -10000.0f; -#endif + #endif buttonWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(buttonWin, 0.0f); HuWinMesSpeedSet(buttonWin, 0); HuWinMesSet(buttonWin, var_r31); } -static void DestroyButtonWin(void) -{ +static void DestroyButtonWin(void) { if (buttonWin != -1) { HuWinKill(buttonWin); buttonWin = -1; } } -static void InitOverheadView(void) -{ +static void InitOverheadView(void) { Vec sp10; GXColor spA; s16 sp8; @@ -435,9 +444,16 @@ static void InitOverheadView(void) OverheadWork *temp_r31; float *temp_r30; s32 i; - s32 sp1C[8] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), DATA_MAKE_NUM(DATADIR_BOARD, 0x30), - DATA_MAKE_NUM(DATADIR_BOARD, 0x31), DATA_MAKE_NUM(DATADIR_BOARD, 0x32), DATA_MAKE_NUM(DATADIR_BOARD, 0x33), - DATA_MAKE_NUM(DATADIR_BOARD, 0x34), DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; + s32 sp1C[8] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) + }; temp_r26 = omAddObjEx(boardObjMan, 0x1000, 0, 0, -1, UpdateOverheadView); overheadObj = temp_r26; @@ -456,8 +472,7 @@ static void InitOverheadView(void) spA.r = 0x50; spA.g = 0x50; spA.b = 0x50; - } - else { + } else { GWCharColorGet(GWPlayer[i].character, &spA); } BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x6C), 0x1770, 0, &sp8); @@ -490,15 +505,13 @@ static void InitOverheadView(void) } } -static void DestroyOverheadView(void) -{ +static void DestroyOverheadView(void) { if (overheadObj) { OM_GET_WORK_PTR(overheadObj, OverheadWork)->unk00_field0 = 1; } } -static void UpdateOverheadView(omObjData *arg0) -{ +static void UpdateOverheadView(omObjData *arg0) { Vec sp20; Vec sp14; Vec sp8; @@ -532,8 +545,7 @@ static void UpdateOverheadView(omObjData *arg0) } if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { var_r27 = 1; - } - else { + } else { var_r27 = 0; } for (i = 0; i < 5; i++) { @@ -543,11 +555,9 @@ static void UpdateOverheadView(omObjData *arg0) sp20.z = 1000.0f; if (i != 4) { BoardSpacePosGet(0, GWPlayer[i].space_curr, &sp14); - } - else if (var_r27 != 0) { + } else if (var_r27 != 0) { sp14.x = sp14.y = sp14.z = 0.0f; - } - else { + } else { BoardSpacePosGet(0, BoardSpaceStarGetCurr(), &sp14); } Hu3D3Dto2D(&sp14, 1, &sp14); @@ -559,8 +569,7 @@ static void UpdateOverheadView(omObjData *arg0) temp_f31 = VECMag(&sp8) / 32; if (i != 4) { var_r28 = i + 4; - } - else { + } else { var_r28 = 8; } HuSprZRotSet(temp_r31->unk02, var_r28, temp_f30); @@ -568,15 +577,13 @@ static void UpdateOverheadView(omObjData *arg0) HuSprPosSet(temp_r31->unk02, var_r28, var_r29[0], var_r29[1]); if (i == 4 && (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2)) { BoardModelVisibilitySet(temp_r31->unk04, 0); - } - else if (temp_r31->unk01 != 0) { + } else if (temp_r31->unk01 != 0) { if (i != 4) { HuSprAttrReset(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } HuSprAttrReset(temp_r31->unk02, var_r28, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(temp_r31->unk04, 1); - } - else { + } else { if (i != 4) { HuSprAttrSet(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } @@ -588,16 +595,15 @@ static void UpdateOverheadView(omObjData *arg0) sp20.y = var_r29[1]; sp20.z = 1000.0f; BoardCameraRotGet(&sp8); - MTXRotRad(sp5C, 'x', MTXDegToRad(sp8.x)); - MTXRotRad(sp2C, 'y', MTXDegToRad(sp8.y)); - MTXConcat(sp2C, sp5C, sp2C); + PSMTXRotRad(sp5C, 'x', MTXDegToRad(sp8.x)); + PSMTXRotRad(sp2C, 'y', MTXDegToRad(sp8.y)); + PSMTXConcat(sp2C, sp5C, sp2C); BoardModelMtxSet(temp_r31->unk04, &sp2C); Hu3D2Dto3D(&sp20, 1, &sp20); BoardModelPosSetV(temp_r31->unk04, &sp20); } -static void WaitOverheadView(void) -{ +static void WaitOverheadView(void) { while (overheadObj) { HuPrcVSleep(); } diff --git a/src/game/card.c b/src/game/card.c index a057ed46..97fdd32d 100644 --- a/src/game/card.c +++ b/src/game/card.c @@ -4,7 +4,7 @@ #include "version.h" static void *cardWork; -SHARED_SYM u8 UnMountCnt; +u8 UnMountCnt; static void MountCallBack(s32 chan, s32 result); diff --git a/src/game/chrman.c b/src/game/chrman.c index d2530265..b8ad92a3 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -13,10 +13,6 @@ #include "ext_math.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; @@ -87,12 +83,13 @@ static void OrbitEffect(HsfanimStruct01 *arg0); static void UpdateNpcEffect(void); static s32 PlayStepFX(s16 arg0, s16 arg1, u8 arg2); -static UnkCharInstanceStruct charInstance[8]; -static s16 effectMdl[8]; -static EffectParamData *particleData[8]; +static UnkCharInstanceStruct charInstance[CHARNO_MAX ]; +static s16 effectMdl[CHAR_EFFECT_AND_PARTICLE_MAX]; +static EffectParamData *particleData[CHAR_EFFECT_AND_PARTICLE_MAX]; static Process *itemHookProcess[32]; -static u16 effectFlag[15]; -static u8 lbl_801975C0[0x82]; // Unused? +//holds normal characters 0-7, then more characters 8-14 +static u16 lbl_801975B0[CHARNO_MAX + CHAR_NPC_MAX]; +static u8 lbl_801975CE[0x82]; // Unused? static s32 skipAnimUpdate; static void *effectAMemP; @@ -114,7 +111,7 @@ static EffectData effectDataTbl[8] = { { DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), 0x000C, 0x0000, 0x00000002 }, }; -static s32 charDirTbl[8][3] = { +static s32 charDirTbl[CHARNO_MAX ][3] = { { DATADIR_MARIOMDL0, DATADIR_MARIOMDL1, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00) }, { DATADIR_LUIGIMDL0, DATADIR_LUIGIMDL1, DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00) }, { DATADIR_PEACHMDL0, DATADIR_PEACHMDL1, DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00) }, @@ -154,10 +151,10 @@ void CharManInit(void) s16 i; s16 j; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { temp_r29 = &charInstance[i]; temp_r29->unkC0 = NULL; - for (j = 0; j < 32; j++) { + for (j = 0; j < ARRAY_COUNT(temp_r29->unk0C); j++) { temp_r29->unk0C[j] = -1; } temp_r29->unk00 = -1; @@ -166,11 +163,11 @@ void CharManInit(void) if (!effectAMemP) { effectAMemP = (void *)HuAR_DVDtoARAM(0x120000); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectMdl[i] = -1; particleData[i] = NULL; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { itemHookProcess[i] = NULL; } } @@ -184,7 +181,7 @@ void CharARAMOpen(s16 character) { UnkCharInstanceStruct *temp_r31; - if (character >= 8 || character < 0 || character == 0xFF) { + if (character >= CHARNO_MAX || character < 0 || character == 0xFF) { return; } temp_r31 = &charInstance[character]; @@ -685,14 +682,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) { - UnkCharInstanceStruct *temp_r31 = &charInstance[character]; - ModelData *temp_r29 = &Hu3DData[temp_r31->unk00]; + UnkCharInstanceStruct *temp_r31; + ModelData *temp_r29; + + temp_r31 = &charInstance[character]; + temp_r29 = &Hu3DData[temp_r31->unk00]; if (arg2 & 1) { -#ifdef NON_MATCHING - return 0; -#else return; -#endif } if (temp_r31->unkAC & 8) { return HuAudCharVoicePlayPos(character, arg1, &temp_r29->pos); @@ -713,12 +709,12 @@ static void InitEffect(void) s16 j; var_r27 = 0; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] == -1) { temp_r26 = HuDataSelHeapReadNum(effectDataTbl[i].unk00, MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25 = HuSprAnimRead(temp_r26); effectMdl[i] = Hu3DParticleCreate(temp_r25, effectDataTbl[i].unk04); - if (i == 7) { + if (i == CHAR_EFFECT_AND_PARTICLE_MAX - 1) { Hu3DParticleAnimModeSet(effectMdl[i], 0); } Hu3DParticleHookSet(effectMdl[i], UpdateEffect); @@ -1040,12 +1036,12 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) return -1; } temp_r26 = data_num & 0xFFFF0000; - for (var_r28 = 0; var_r28 < 8; var_r28++) { + for (var_r28 = 0; var_r28 < CHARNO_MAX ; var_r28++) { if (temp_r26 == charDirTbl[var_r28][2]) { break; } } - if (var_r28 != 8 || temp_r26 == 0) { + if (var_r28 != CHARNO_MAX || temp_r26 == 0) { data_num &= 0xFFFF; var_r27 = HuAR_ARAMtoMRAMFileRead(data_num | charDirTbl[character][2], MEMORY_DEFAULT_NUM, 2); if (!var_r27) { @@ -1068,12 +1064,12 @@ void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == arg1) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { temp_r30->unk4C[i] = arg2; } } @@ -1084,7 +1080,7 @@ void CharModelMotionKill(s16 character, u32 motion) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == motion) { break; } @@ -1098,7 +1094,7 @@ void CharModelMotionDataClose(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelMotionDataClose(i); } } @@ -1112,7 +1108,7 @@ void CharModelDataClose(s16 arg0) s16 i; if (arg0 == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelDataClose(i); // Required to match. (void)i; @@ -1132,17 +1128,17 @@ void CharModelKill(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelKill(i); } - for (i = 0; i < 15; i++) { - effectFlag[i] = 0; + for (i = 0; i < ARRAY_COUNT(lbl_801975B0); i++) { + lbl_801975B0[i] = 0; } return; } CharModelMotionDataClose(character); temp_r29 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r29->unk0C); i++) { if (temp_r29->unk0C[i] != -1) { Hu3DMotionKill(temp_r29->unk0C[i]); } @@ -1152,13 +1148,13 @@ void CharModelKill(s16 character) Hu3DModelKill(temp_r29->unk00); } temp_r29->unk00 = -1; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { if (charInstance[i].unk00 != -1) { break; } } - if (i == 8) { - for (i = 0; i < 8; i++) { + if (i == CHARNO_MAX ) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelKill(effectMdl[i]); } @@ -1168,7 +1164,7 @@ void CharModelKill(s16 character) if (temp_r29->unkC4) { HuMemDirectFree(temp_r29->unkC4->user_data); HuPrcKill(temp_r29->unkC4); - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (itemHookProcess[i]) { HuPrcKill(itemHookProcess[i]); } @@ -1324,7 +1320,7 @@ void CharModelLayerSetAll(s16 arg0) { s16 i; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelLayerSet(effectMdl[i], arg0); } @@ -1335,12 +1331,12 @@ static inline Process *CharModelItemHookCreateInlineFunc(void) { s16 i; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (!itemHookProcess[i]) { break; } } - if (i == 32) { + if (i == ARRAY_COUNT(itemHookProcess)) { return NULL; } else { @@ -1426,9 +1422,9 @@ static void UpdateItemHook(void) effectDustParam.unk0C.z = frandmod(10) - 5; CreateEffectDust(temp_r31->unk02, sp8.x, sp8.y, sp8.z, 20.0f, &effectDustParam); } - MTXIdentity(temp_r30->unk_F0); + PSMTXIdentity(temp_r30->unk_F0); temp_r25 = HuPrcCurrentGet(); - for (var_r28 = 0; var_r28 < 32; var_r28++) { + for (var_r28 = 0; var_r28 < ARRAY_COUNT(itemHookProcess); var_r28++) { if (itemHookProcess[var_r28] == temp_r25) { HuPrcKill(temp_r25); itemHookProcess[var_r28] = NULL; @@ -1450,7 +1446,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) ParticleData *var_r27; ModelData *var_r26; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1467,7 +1463,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) var_r31->unk24 = 0.1f * (frandmod(20) - 10); var_r31->unk40.a = 0xFF - frandmod(3) * 16; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 10.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1571,12 +1567,12 @@ void fn_8004EC74(s16 character) temp_r30 = &charInstance[character]; temp_r31 = &Hu3DData[temp_r30->unk00]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == temp_r31->unk_08) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { Hu3DModelObjMtxGet(temp_r30->unk00, "test11_tex_we-itemhook-r", sp24); sp18.x = sp24[0][3]; sp18.y = sp24[1][3]; @@ -1703,12 +1699,12 @@ void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) if (temp_r31->unk00 == -1) { return; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r31->unk0C); i++) { if (temp_r31->unk0C[i] == motion) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r31->unk0C)) { if (flag == 0) { temp_r31->unk8C[i] |= 1; } @@ -1735,12 +1731,12 @@ void CharModelEffectEnableSet(s16 character, s32 arg1) { UnkCharInstanceStruct *temp_r31 = &charInstance[character]; - if (character >= 8) { + if (character >= CHARNO_MAX ) { if (arg1 == 0) { - effectFlag[character] |= 0x10; + lbl_801975B0[character] |= 0x10; } else { - effectFlag[character] &= ~0x10; + lbl_801975B0[character] &= ~0x10; } return; } @@ -1836,7 +1832,7 @@ static void UpdateNpcEffect(void) temp_r26 = Hu3DMotionTimeGet(temp_r25); switch (temp_r27[2]) { case 0: - if (!(temp_r26 & 0xF) && !(effectFlag[temp_r28] & 0x10)) { + if (!(temp_r26 & 0xF) && !(lbl_801975B0[temp_r28] & 0x10)) { effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y); effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10); effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y); @@ -1855,7 +1851,7 @@ static void UpdateNpcEffect(void) } break; case 1: - if (!(temp_r26 & 3) && !(effectFlag[temp_r28] & 0x10)) { + if (!(temp_r26 & 3) && !(lbl_801975B0[temp_r28] & 0x10)) { effectDustParam.unk0C.x = 4.0 * -sind(temp_r30->rot.y); effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(10); effectDustParam.unk0C.z = 4.0 * -cosd(temp_r30->rot.y); @@ -1875,7 +1871,7 @@ static void UpdateNpcEffect(void) break; case 2: if (temp_r28 != -1) { - if (!(temp_r26 & 0x1F) && !(effectFlag[temp_r28] & 0x10)) { + if (!(temp_r26 & 0x1F) && !(lbl_801975B0[temp_r28] & 0x10)) { effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y); effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10); effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y); @@ -1894,7 +1890,7 @@ static void UpdateNpcEffect(void) break; case 3: if (temp_r28 != -1) { - if (!(temp_r26 & 3) && !(effectFlag[temp_r28] & 0x10)) { + if (!(temp_r26 & 3) && !(lbl_801975B0[temp_r28] & 0x10)) { effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y); effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10); effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y); @@ -1913,7 +1909,7 @@ static void UpdateNpcEffect(void) break; case 4: if (temp_r28 != -1) { - if (!(temp_r26 & 7) && !(effectFlag[temp_r28] & 0x10)) { + if (!(temp_r26 & 7) && !(lbl_801975B0[temp_r28] & 0x10)) { effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y); effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10); effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y); @@ -1934,17 +1930,17 @@ static void UpdateNpcEffect(void) if (temp_r26 != 0) { break; } - if (effectFlag[temp_r28] & 0x10) { + if (lbl_801975B0[temp_r28] & 0x10) { break; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; CreateEffectStar( temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; @@ -1974,11 +1970,7 @@ static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) temp_r31 = &charInstance[character]; var_r28 = &Hu3DData[temp_r31->unk00]; if (arg2 & 1) { -#ifdef NON_MATCHING - return 0; -#else return; -#endif } if (temp_r31->unkB0 == 4) { arg1 = 0x109; diff --git a/src/game/data.c b/src/game/data.c index f962c140..f76419c5 100644 --- a/src/game/data.c +++ b/src/game/data.c @@ -3,8 +3,6 @@ #include "game/process.h" #include "dolphin/dvd.h" -#include "port/byteswap.h" - #define PTR_OFFSET(ptr, offset) (void *)(((u8 *)(ptr)+(u32)(offset))) #define DATA_EFF_SIZE(size) (((size)+1) & ~0x1) @@ -24,12 +22,7 @@ static FileListEntry DataDirStat[] = { u32 DirDataSize; static u32 DataDirMax; static s32 shortAccessSleep; -static DataReadStat ATTRIBUTE_ALIGN(32) -#if TARGET_PC -ReadDataStat[DATA_MAX_READSTAT + 1]; // to avoid bug -#else -ReadDataStat[DATA_MAX_READSTAT]; -#endif +static DataReadStat ATTRIBUTE_ALIGN(32) ReadDataStat[DATA_MAX_READSTAT]; void HuDataInit(void) { @@ -286,21 +279,13 @@ BOOL HuDataGetAsyncStat(s32 status) static void GetFileInfo(DataReadStat *read_stat, s32 file_num) { - u32 *temp_ptr = (u32 *)PTR_OFFSET(read_stat->dir, (file_num * 4))+1; -#ifdef TARGET_PC - u32 ofs = *temp_ptr; - byteswap_u32(&ofs); - temp_ptr = &ofs; -#endif + u32 *temp_ptr; + temp_ptr = (u32 *)PTR_OFFSET(read_stat->dir, (file_num * 4))+1; read_stat->file = PTR_OFFSET(read_stat->dir, *temp_ptr); temp_ptr = read_stat->file; read_stat->raw_len = *temp_ptr++; read_stat->comp_type = *temp_ptr++; read_stat->file = temp_ptr; -#ifdef TARGET_PC - byteswap_u32(&read_stat->raw_len); - byteswap_u32(&read_stat->comp_type); -#endif } void *HuDataRead(s32 data_num) @@ -337,12 +322,7 @@ void *HuDataReadNum(s32 data_num, s32 num) } read_stat = &ReadDataStat[status]; GetFileInfo(read_stat, data_num & 0xFFFF); -#ifdef TARGET_PC - // TODO PC why is the allocation invalid if we use HEAP_SYSTEM? - buf = HuMemDirectMallocNum(HEAP_DATA, DATA_EFF_SIZE(read_stat->raw_len), num); -#else - buf = HuMemDirectMallocNum(HEAP_SYSTEM, DATA_EFF_SIZE(read_stat->raw_len), num); -#endif + buf = HuMemDirectMallocNum(0, DATA_EFF_SIZE(read_stat->raw_len), num); if(buf) { HuDecodeData(read_stat->file, buf, read_stat->raw_len, read_stat->comp_type); } diff --git a/src/game/fault.c b/src/game/fault.c index e18075e5..f6043a78 100644 --- a/src/game/fault.c +++ b/src/game/fault.c @@ -23,11 +23,7 @@ static RGBColor XFB_Colors[5] = { { 0x40, 0x80, 0x80 } }; -#ifdef TARGET_PC -u8 Ascii8x8_1bpp[0x800]; -#else #include "Ascii8x8_1bpp.inc" -#endif static XFBGeometry XFB_Geometry; @@ -48,29 +44,26 @@ static void XFB_CR(s32 arg0, s32* arg1, s32* arg2); void OSPanic(const char* file, int line, const char* msg, ...) { static char* titleMes = "OSPanic encounterd:"; - va_list args; + va_list sp78; s32 sp74; s32 sp70; - char buffer[1024]; + char sp84[1024]; s32 puts; sp74 = x_start = 0x10; sp70 = y_start = 0x20; puts = XFB_puts((s8*)titleMes, sp74, sp70); XFB_CR(puts + 1, &sp74, &sp70); - sprintf(buffer, "%s:%d", file, line); - puts = XFB_puts((s8*)buffer, sp74, sp70); + sprintf(sp84, "%s:%d", file, line); + puts = XFB_puts((s8*)sp84, sp74, sp70); XFB_CR(puts, &sp74, &sp70); - va_start(args, msg); - vsnprintf(buffer, 0x400U, msg, &args[0]); -#ifdef TARGET_PC - fputs(buffer, stderr); -#endif - puts = XFB_puts((s8*)buffer, sp74, sp70); + va_start(sp78, msg); + vsnprintf(sp84, 0x400U, msg, &sp78[0]); + puts = XFB_puts((s8*)sp84, sp74, sp70); XFB_CR(puts, &sp74, &sp70); XFB_WriteBackCache(); PPCHalt(); - va_end(args); + va_end(sp78); } void HuFaultInitXfbDirectDraw(GXRenderModeObj *mode) { diff --git a/src/game/flag.c b/src/game/flag.c index 4f4b4c74..26cdb6c8 100644 --- a/src/game/flag.c +++ b/src/game/flag.c @@ -1,9 +1,6 @@ +#include "dolphin.h" #include "game/gamework_data.h" -#ifdef TARGET_PC -#include "string.h" -#endif - static u8 _Sys_Flag[16]; static u8 *GetFlagPtr(u32 flag) @@ -42,4 +39,4 @@ void _ClearFlag(u32 flag) void _InitFlag(void) { memset(_Sys_Flag, 0, sizeof(_Sys_Flag)); -} +} \ No newline at end of file diff --git a/src/game/frand.c b/src/game/frand.c index 5d1407f9..69e83264 100644 --- a/src/game/frand.c +++ b/src/game/frand.c @@ -2,8 +2,6 @@ static u32 frand_seed; -extern s32 rand8(void); - static inline u32 frandom(u32 param) { s32 rand2, rand3; @@ -38,4 +36,4 @@ u32 frandmod(u32 arg0) { frand_seed = frandom(frand_seed); ret = (frand_seed & 0x7FFFFFFF)%arg0; return ret; -} +} \ No newline at end of file diff --git a/src/game/gamework.c b/src/game/gamework.c index fb9c6fda..0100278f 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -4,18 +4,14 @@ #include "string.h" #include "version.h" -#ifndef __MWERKS__ -#include "game/pad.h" -#endif +s16 GwLanguage = 1; +s16 GwLanguageSave = -1; -SHARED_SYM s16 GwLanguage = 1; -SHARED_SYM s16 GwLanguageSave = -1; - -SHARED_SYM GameStat GWGameStatDefault; -SHARED_SYM GameStat GWGameStat; -SHARED_SYM SystemState GWSystem; -SHARED_SYM PlayerState GWPlayer[4]; -SHARED_SYM PlayerConfig GWPlayerCfg[4]; +GameStat GWGameStatDefault; +GameStat GWGameStat; +SystemState GWSystem; +PlayerState GWPlayer[4]; +PlayerConfig GWPlayerCfg[4]; static inline void GWErase(void) { @@ -43,13 +39,6 @@ static inline void InitPlayerConfig(void) } } -// TODO: get these properly declared somewhere -extern void GWRumbleSet(s32 value); -extern void GWMGExplainSet(s32 value); -extern void GWMGShowComSet(s32 value); -extern void GWMessSpeedSet(s32 value); -extern void GWSaveModeSet(s32 value); - static inline void ResetBoardSettings(void) { GWRumbleSet(1); diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index 0c5a23f3..b5a73d37 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -1,5 +1,4 @@ #include "game/hsfanim.h" -#include "dolphin/gx/GXStruct.h" #include "game/hsfdraw.h" #include "game/init.h" #include "game/memory.h" @@ -9,10 +8,6 @@ #include "ext_math.h" #include "string.h" -#ifndef __MWERKS__ -#include "game/frand.h" -#endif - typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; @@ -35,10 +30,10 @@ static void ParManHook(ModelData *arg0, ParticleData *arg1, Mtx matrix); u32 frand(void); -SHARED_SYM extern u32 GlobalCounter; +extern u32 GlobalCounter; -SHARED_SYM Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX]; -SHARED_SYM Hu3DTexScrDataStruct Hu3DTexScrData[16]; +Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX]; +Hu3DTexScrDataStruct Hu3DTexScrData[16]; static Process *parManProc[64]; void Hu3DAnimInit(void) { @@ -320,7 +315,7 @@ void Hu3DAnimExec(void) { for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r31++) { if (var_r31->unk02 != -1) { if (Hu3DPauseF != 0 && !(var_r31->unk00 & 8)) { - MTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34)); + PSMTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34)); mtxTransCat(var_r31->unk3C, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z); } else { if (var_r31->unk00 & 1) { @@ -353,7 +348,7 @@ void Hu3DAnimExec(void) { var_r31->unk34 += 360.0f; } } - MTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34)); + PSMTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34)); mtxTransCat(var_r31->unk3C, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z); } } @@ -405,7 +400,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { var_r31->unk00 = 0; var_r31->unk04.x = var_r31->unk04.y = var_r31->unk04.z = 0.0f; var_r31->unk34 = 0.0f; - MTXIdentity(var_r31->unk3C); + PSMTXIdentity(var_r31->unk3C); return var_r28; } @@ -691,16 +686,16 @@ static void particleFunc(ModelData *arg0, Mtx arg1) { temp_r31 = arg0->unk_120; temp_r22 = temp_r31->unk_44; if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - MTXIdentity(sp128); + PSMTXIdentity(sp128); } - MTXReorder(sp128, sp8); + PSMTXReorder(sp128, sp8); if ((Hu3DPauseF == 0 || (arg0->attr & HU3D_ATTR_NOPAUSE)) && temp_r31->unk_54 && temp_r31->unk_38 != GlobalCounter) { var_r17 = temp_r31->unk_54; var_r17(arg0, temp_r31, arg1); } var_r29 = temp_r31->unk_48; var_r30 = temp_r31->unk_4C; - MTXROMultVecArray(sp8, &basePos[0], sp38, 4); + PSMTXROMultVecArray(sp8, &basePos[0], sp38, 4); for (i = 0, var_r19 = 0; i < temp_r31->unk_30; i++, var_r29++) { if (var_r29->unk2C && (var_r29->unk06 & Hu3DCameraBit)) { if (!var_r29->unk30) { @@ -726,9 +721,9 @@ static void particleFunc(ModelData *arg0, Mtx arg1) { VECScale(&basePos[1], &sp98[1], var_r29->unk2C); VECScale(&basePos[2], &sp98[2], var_r29->unk2C); VECScale(&basePos[3], &sp98[3], var_r29->unk2C); - MTXRotRad(spC8, 'Z', var_r29->unk30); - MTXConcat(sp128, spC8, spF8); - MTXMultVecArray(spF8, sp98, sp68, 4); + PSMTXRotRad(spC8, 'Z', var_r29->unk30); + PSMTXConcat(sp128, spC8, spF8); + PSMTXMultVecArray(spF8, sp98, sp68, 4); VECAdd(&sp68[0], &var_r29->unk34, var_r30++); VECAdd(&sp68[1], &var_r29->unk34, var_r30++); VECAdd(&sp68[2], &var_r29->unk34, var_r30++); @@ -804,7 +799,7 @@ static void particleFunc(ModelData *arg0, Mtx arg1) { temp_r24 = &temp_r22->bmp[temp_r27->bmpNo]; temp_f29 = (float) temp_r27->sizeX / temp_r24->sizeX; temp_f30 = (float) temp_r27->sizeY / temp_r24->sizeY; - MTXScale(sp128, temp_f29, temp_f30, 1.0f); + PSMTXScale(sp128, temp_f29, temp_f30, 1.0f); temp_f29 = (float) temp_r27->startX / temp_r24->sizeX; temp_f30 = (float) temp_r27->startY / temp_r24->sizeY; mtxTransCat(sp128, temp_f29, temp_f30, 0.0f); @@ -828,15 +823,15 @@ static void particleFunc(ModelData *arg0, Mtx arg1) { } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r31->unk_4C, temp_r31->unk_30 * 4 * sizeof(Vec), sizeof(Vec)); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, temp_r31->unk_4C, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, &temp_r31->unk_48->unk40, temp_r31->unk_30 * sizeof(GXColor), 0x44); + GXSetArray(GX_VA_CLR0, &temp_r31->unk_48->unk40, 0x44); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, baseST, sizeof(baseST), 8); - GXCallDisplayListNative(temp_r31->unk_50, temp_r31->unk_40); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, baseST, 8); + GXCallDisplayList(temp_r31->unk_50, temp_r31->unk_40); } if (shadowModelDrawF == 0) { if (!(temp_r31->unk_2D & 2) && Hu3DPauseF == 0) { diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index e2280e0b..fce142dd 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -1,9 +1,9 @@ #include "game/hsfdraw.h" -#include "game/disp.h" #include "game/hsfanim.h" #include "game/hsfformat.h" #include "game/hsfload.h" #include "game/sprite.h" +#include "game/disp.h" #include "ext_math.h" #include "string.h" @@ -89,7 +89,7 @@ static u16 faceCnt; static u16 *faceNumBuf; static s32 DLTotalNum; static u32 totalSize; -static uintptr_t mallocNo; +static u32 mallocNo; static s32 curModelID; static s16 polySize; static s32 PGFinishF; @@ -97,19 +97,23 @@ static u8 *PGName; static s32 TL32F; static s32 CancelTRXF; -SHARED_SYM u8 texMtxTbl[] = { GX_TEXMTX0, GX_TEXMTX1, GX_TEXMTX2, GX_TEXMTX3, GX_TEXMTX4, GX_TEXMTX5, GX_TEXMTX6, GX_TEXMTX7, GX_TEXMTX8, GX_TEXMTX9 }; +u8 texMtxTbl[] = { + GX_TEXMTX0, GX_TEXMTX1, + GX_TEXMTX2, GX_TEXMTX3, + GX_TEXMTX4, GX_TEXMTX5, + GX_TEXMTX6, GX_TEXMTX7, + GX_TEXMTX8, GX_TEXMTX9 +}; static s16 oneceF = 1; static GXColor firstTev = { 0xFF, 0xFF, 0x00, 0x00 }; static GXColor secondTev = { 0x00, 0x00, 0xFF, 0xFF }; -void Hu3DDrawPreInit(void) -{ +void Hu3DDrawPreInit(void) { DrawObjIdx = 0; } -void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) -{ +void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) { HsfDrawObject *temp_r31; HsfData *temp_r28; float temp_f31; @@ -119,7 +123,7 @@ void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) temp_r28 = arg0->hsfData; if (arg0->attr & HU3D_ATTR_HOOKFUNC) { temp_r31 = &DrawObjData[DrawObjIdx]; - MTXCopy(arg1, temp_r31->matrix); + PSMTXCopy(arg1, temp_r31->matrix); sp8.x = temp_r31->matrix[0][3]; sp8.y = temp_r31->matrix[1][3]; sp8.z = temp_r31->matrix[2][3]; @@ -133,20 +137,19 @@ void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) modelObjNum = 0; GXSetCullMode(GX_CULL_BACK); for (i = 0; i < 8; i++) { - BmpPtrBak[i] = (HsfAttribute *)-1; + BmpPtrBak[i] = (HsfAttribute*) -1; } - MTXCopy(arg1, MTXBuf[0]); + PSMTXCopy(arg1, MTXBuf[0]); scaleBuf[0] = *arg2; MTXIdx = 1; CancelTRXF = 0; hookIdx = -1; shadingBak = -1; vtxModeBak = -1; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; if (arg0->unk_08 != -1) { attachMotionF = 1; - } - else { + } else { attachMotionF = 0; } objCall(arg0, temp_r28->root); @@ -154,8 +157,7 @@ void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) oneceF = 1; } -static void objCall(ModelData *arg0, HsfObject *arg1) -{ +static void objCall(ModelData *arg0, HsfObject *arg1) { modelObjNum++; switch (arg1->type) { case 2: @@ -186,8 +188,7 @@ static void objCall(ModelData *arg0, HsfObject *arg1) } } -static void objMesh(ModelData *arg0, HsfObject *arg1) -{ +static void objMesh(ModelData *arg0, HsfObject *arg1) { HsfDrawObject *temp_r29; HsfConstData *temp_r25; HsfTransform *var_r30; @@ -211,8 +212,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) temp_r20 = arg0->hsfData; if (attachMotionF == 0) { var_r30 = &arg1->data.base; - } - else { + } else { var_r30 = &arg1->data.curr; } temp_r25 = arg1->constData; @@ -220,13 +220,12 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (arg1->data.cenvCnt != 0 && hookIdx == -1) { temp_r21 = arg1 - temp_r20->object; - MTXConcat(MTXBuf[0], temp_r20->matrix->data[temp_r21 + temp_r20->matrix->base_idx], MTXBuf[MTXIdx]); - } - else { - MTXScale(sp1C, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + PSMTXConcat(MTXBuf[0], temp_r20->matrix->data[temp_r21 + temp_r20->matrix->base_idx], MTXBuf[MTXIdx]); + } else { + PSMTXScale(sp1C, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); mtxRotCat(sp1C, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); mtxTransCat(sp1C, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp1C, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp1C, MTXBuf[MTXIdx]); } temp_r28 = &scaleBuf[MTXIdx]; temp_r24 = temp_r28 - 1; @@ -235,49 +234,45 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) temp_r28->z = temp_r24->z * var_r30->scale.z; temp_r29->scale = *temp_r28; if (arg1->flags & 1) { - MTXInverse(MTXBuf[MTXIdx], sp1C); + PSMTXInverse(MTXBuf[MTXIdx], sp1C); sp1C[0][3] = sp1C[1][3] = sp1C[2][3] = 0.0f; - MTXConcat(MTXBuf[MTXIdx], sp1C, temp_r29->matrix); + PSMTXConcat(MTXBuf[MTXIdx], sp1C, temp_r29->matrix); mtxScaleCat(temp_r29->matrix, temp_r28->x, temp_r28->y, temp_r28->z); - } - else { - MTXCopy(MTXBuf[MTXIdx], temp_r29->matrix); + } else { + PSMTXCopy(MTXBuf[MTXIdx], temp_r29->matrix); } MTXIdx++; var_r18 = 1; - } - else { + } else { if (arg1->flags & 1) { - MTXInverse(MTXBuf[MTXIdx - 1], sp1C); + PSMTXInverse(MTXBuf[MTXIdx - 1], sp1C); sp1C[0][3] = sp1C[1][3] = sp1C[2][3] = 0.0f; - MTXConcat(MTXBuf[MTXIdx - 1], sp1C, temp_r29->matrix); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp1C, temp_r29->matrix); mtxScaleCat(temp_r29->matrix, scaleBuf[MTXIdx - 1].x, scaleBuf[MTXIdx - 1].y, scaleBuf[MTXIdx - 1].z); - } - else { - MTXCopy(MTXBuf[MTXIdx - 1], temp_r29->matrix); + } else { + PSMTXCopy(MTXBuf[MTXIdx - 1], temp_r29->matrix); } temp_r29->scale = scaleBuf[MTXIdx - 1]; CancelTRXF = 0; var_r18 = 0; } - MTXCopy(temp_r29->matrix, temp_r25->matrix); + PSMTXCopy(temp_r29->matrix, temp_r25->matrix); if (temp_r25->hook != -1) { temp_r31 = &Hu3DData[temp_r25->hook]; if (!(temp_r31->attr & HU3D_ATTR_DISPOFF)) { temp_r21 = attachMotionF; if (temp_r31->unk_08 != -1) { attachMotionF = 1; - } - else { + } else { attachMotionF = 0; } sp8 = hookIdx; hookIdx = temp_r25->hook; - MTXScale(sp1C, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + PSMTXScale(sp1C, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); mtxRotCat(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); mtxTransCat(sp1C, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); - MTXConcat(sp1C, temp_r31->unk_F0, sp1C); - MTXConcat(temp_r29->matrix, sp1C, MTXBuf[MTXIdx]); + PSMTXConcat(sp1C, temp_r31->unk_F0, sp1C); + PSMTXConcat(temp_r29->matrix, sp1C, MTXBuf[MTXIdx]); temp_r28 = &scaleBuf[MTXIdx]; temp_r24 = temp_r28 - 1; temp_r28->x = temp_r24->x * temp_r31->scale.x; @@ -289,12 +284,10 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) hookIdx = sp8; attachMotionF = temp_r21; } - } - else { + } else { if (arg0->attr & HU3D_ATTR_NOCULL) { var_r19 = ObjCullCheck(arg0->hsfData, arg1, temp_r29->matrix); - } - else { + } else { var_r19 = 1; } if ((temp_r25->flags & 0x2000) || (arg1->flags & HU3D_ATTR_CLUSTER_ON)) { @@ -310,8 +303,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) temp_f31 = VECMag(&sp10); if (temp_r25->flags & 0x10000) { temp_r29->z = -(900000.0f - temp_f31); - } - else { + } else { temp_r29->z = -(1000000.0f - temp_f31); } DrawObjIdx++; @@ -319,17 +311,15 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) OSReport("Error: DrawObjIdx Over\n"); DrawObjIdx--; } - } - else if (arg0->attr & HU3D_ATTR_ZCMP_OFF) { + } else if (arg0->attr & HU3D_ATTR_ZCMP_OFF) { temp_r29->z = -1000000.0f; DrawObjIdx++; if (DrawObjIdx > 0x200) { OSReport("Error: DrawObjIdx Over\n"); DrawObjIdx--; } - } - else { - materialBak = (HsfMaterial *)-1; + } else { + materialBak = (HsfMaterial*) -1; ObjDraw(temp_r29); } } @@ -343,8 +333,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) } } -s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) -{ +s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) { CameraData *temp_r30; HsfVector3f *temp_r29; HsfVector3f *temp_r31; @@ -373,33 +362,28 @@ s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) if (temp_f23 > temp_f22) { if (temp_f23 > temp_f25) { var_f26 = temp_f23; - } - else if (temp_f22 > temp_f25) { + } else if (temp_f22 > temp_f25) { var_f26 = temp_f22; - } - else { + } else { var_f26 = temp_f25; } - } - else if (temp_f22 > temp_f25) { + } else if (temp_f22 > temp_f25) { var_f26 = temp_f22; - } - else if (temp_f23 > temp_f25) { + } else if (temp_f23 > temp_f25) { var_f26 = temp_f23; - } - else { + } else { var_f26 = temp_f25; } temp_f31 = (temp_r29->x - temp_r31->x) * 0.5; temp_f30 = (temp_r29->y - temp_r31->y) * 0.5; temp_f29 = (temp_r29->z - temp_r31->z) * 0.5; - MTXTrans(sp28, temp_f31 + temp_r31->x, temp_f30 + temp_r31->y, temp_f29 + temp_r31->z); - MTXConcat(arg2, sp28, sp28); + PSMTXTrans(sp28, temp_f31 + temp_r31->x, temp_f30 + temp_r31->y, temp_f29 + temp_r31->z); + PSMTXConcat(arg2, sp28, sp28); temp_f21 = var_f26 * sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30 + temp_f29 * temp_f29); temp_f20 = sp28[0][3]; temp_f19 = sp28[1][3]; temp_f18 = -sp28[2][3]; - if (temp_f18 + temp_f21 < temp_r30->nnear || temp_f18 - temp_f21 > temp_r30->ffar) { + if (temp_f18 + temp_f21 < temp_r30->near || temp_f18 - temp_f21 > temp_r30->far) { return 0; } sp24 = sind(temp_r30->fov * 0.5) / cosd(temp_r30->fov * 0.5); @@ -414,22 +398,21 @@ s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) } // TODO: not matching (https://decomp.me/scratch/54Pjw) -static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) -{ +static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { GXColor sp2C; void *sp28; Hu3DTexAnimDataStruct *sp24; - s16 var_r31; - HsfMaterial *temp_r30; - ModelData *temp_r29; - HsfObject *temp_r28; - HsfBitmap *temp_r27; + s16 var_r31; + HsfMaterial *temp_r30; + ModelData *temp_r29; + HsfObject *temp_r28; + HsfBitmap *temp_r27; HsfAttribute *temp_r26; s16 var_r24; - HsfdrawStruct01 *temp_r23; + HsfdrawStruct01 *temp_r23; s16 var_r22; - s16 var_r21; - HsfConstData *temp_r20; + s16 var_r21; + HsfConstData *temp_r20; s16 var_r18; u32 temp_r19; s16 var_r17; @@ -443,12 +426,10 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) if (temp_r19 & 0x30) { if (temp_r19 & 0x10) { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - } - else { + } else { GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); } - } - else { + } else { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); } if (temp_r30 != materialBak) { @@ -466,30 +447,24 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) GXSetChanMatColor(GX_COLOR0A0, sp2C); if (temp_r29->attr & HU3D_ATTR_ZCMP_OFF) { var_r31 = GX_FALSE; - } - else { + } else { var_r31 = GX_TRUE; } - if ((temp_r30->invAlpha != 0.0f || (temp_r30->pass & 0xF) || (temp_r20->flags & 0x800)) - && !((temp_r29->attr & HU3D_ATTR_ZWRITE_OFF) | (temp_r19 & 0x1200))) { + if ((temp_r30->invAlpha != 0.0f || (temp_r30->pass & 0xF) || (temp_r20->flags & 0x800)) && !((temp_r29->attr & HU3D_ATTR_ZWRITE_OFF) | (temp_r19 & 0x1200))) { GXSetZMode(var_r31, GX_LEQUAL, GX_FALSE); - } - else { + } else { GXSetZMode(var_r31, GX_LEQUAL, GX_TRUE); } if (temp_r19 & 0x1200) { GXSetAlphaCompare(GX_GEQUAL, 0x80, GX_AOP_OR, GX_GEQUAL, 0x80); - } - else { + } else { GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); } if (temp_r29->attr & HU3D_ATTR_CULL_FRONT) { GXSetCullMode(GX_CULL_FRONT); - } - else if (temp_r19 & 2) { + } else if (temp_r19 & 2) { GXSetCullMode(GX_CULL_NONE); - } - else { + } else { GXSetCullMode(GX_CULL_BACK); } if (TL32F != 0) { @@ -508,30 +483,28 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r28->data.vertex->data, temp_r28->data.vertex->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); - GXSETARRAY(GX_VA_NRM, temp_r28->data.normal->data, temp_r28->data.normal->count * 3, 3); - } - else { + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); + } else { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r28->data.normal->data, temp_r28->data.normal->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r28->data.color->data, temp_r28->data.color->count * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r28->data.color->data, 4); } GXSetZCompLoc(1); } if (temp_r30->refAlpha != 0.0f) { reflectionMapNo = 0; - BmpPtrBak[0] = (HsfAttribute *)-1; + BmpPtrBak[0] = (HsfAttribute*) -1; if (temp_r29->unk_04 != -1) { var_r17 = temp_r29->unk_04; - } - else { + } else { var_r17 = reflectMapNo; } HuSprTexLoad(reflectAnim[var_r17], 0, reflectionMapNo, GX_REPEAT, GX_REPEAT, GX_LINEAR); @@ -539,12 +512,12 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { shadowMapNo = 1; SetShadowTex(); - BmpPtrBak[1] = (HsfAttribute *)-1; + BmpPtrBak[1] = (HsfAttribute*) -1; } if (temp_r29->attr & HU3D_ATTR_TOON_MAP) { toonMapNo = 2; HuSprTexLoad(toonAnim, 0, toonMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); - BmpPtrBak[2] = (HsfAttribute *)-1; + BmpPtrBak[2] = (HsfAttribute*) -1; } if (temp_r29->unk_02 != 0) { projectionMapNo = 3; @@ -552,32 +525,28 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) for (var_r31 = 0, var_r24 = 1; var_r31 < 4; var_r31++, var_r24 <<= 1) { if (var_r24 & temp_r29->unk_02) { HuSprTexLoad(Hu3DProjection[var_r31].unk_04, 0, projectionMapNo + var_r31, GX_CLAMP, GX_CLAMP, GX_LINEAR); - BmpPtrBak[projectionMapNo + var_r31] = (HsfAttribute *)-1; + BmpPtrBak[projectionMapNo + var_r31] = (HsfAttribute*) -1; hiliteMapNo++; } } - } - else { + } else { hiliteMapNo = 3; } if ((temp_r29->attr & HU3D_ATTR_HILITE) || (temp_r19 & 0x100)) { if (temp_r20->hiliteMap == 0) { if (temp_r30->flags != 0) { var_r18 = (temp_r30->pass >> 4) & 0xF; - } - else { + } else { var_r18 = (temp_r28->data.unk123 >> 4) & 0xF; } HuSprTexLoad(hiliteAnim[var_r18], 0, hiliteMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); - } - else { + } else { HuSprTexLoad(temp_r20->hiliteMap, 0, hiliteMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); } - BmpPtrBak[hiliteMapNo] = (HsfAttribute *)-1; + BmpPtrBak[hiliteMapNo] = (HsfAttribute*) -1; } SetTevStageNoTex(arg0, temp_r30); - } - else { + } else { var_r22 = (temp_r30->vtxMode == 5) ? 5 : 1; if (DrawData[drawCnt].flags & 2) { var_r22 |= 2; @@ -587,29 +556,27 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r28->data.vertex->data, temp_r28->data.vertex->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); if (var_r22 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); - } - else { + } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); - GXSETARRAY(GX_VA_NRM, temp_r28->data.normal->data, temp_r28->data.normal->count * 3, 3); - } - else { + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); + } else { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r28->data.normal->data, temp_r28->data.normal->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r28->data.st->data, temp_r28->data.st->count * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, temp_r28->data.st->data, 2 * sizeof(float)); if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r28->data.color->data, temp_r28->data.color->count * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r28->data.color->data, 4); } GXSetZCompLoc(0); } @@ -622,143 +589,126 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) temp_r23 = temp_r26->unk04; sp24 = &Hu3DTexAnimData[temp_r23->unk02]; if ((temp_r23->unk00 & 1) && !(sp24->unk00 & 4)) { - if (Hu3DAnimSet(arg0->model, temp_r26, (s16)var_r31) != 0) { - BmpPtrBak[var_r31] = (HsfAttribute *)-1; + if (Hu3DAnimSet(arg0->model, temp_r26, (s16) var_r31) != 0) { + BmpPtrBak[var_r31] = (HsfAttribute*) -1; totalTexCnt++; continue; } - } - else if (temp_r23->unk00 & 8) { + } else if (temp_r23->unk00 & 8) { temp_r27 = temp_r23->unk3C; if (temp_r27->dataFmt != 0xB) { - LoadTexture(arg0->model, temp_r27, temp_r26, (s16)var_r31); - } - else { - LoadTexture(arg0->model, temp_r23->unk3C, temp_r26, (s16)var_r31); + LoadTexture(arg0->model, temp_r27, temp_r26, (s16) var_r31); + } else { + LoadTexture(arg0->model, temp_r23->unk3C, temp_r26, (s16) var_r31); LoadTexture(arg0->model, temp_r23->unk3C, temp_r26, var_r21 | 0x8000); - texCol[var_r31].r = (s16)var_r21; + texCol[var_r31].r = (s16) var_r21; texCol[var_r31].a = 2; var_r21++; } if (temp_r27->sizeX * temp_r27->sizeY * temp_r27->pixSize > 0x40000) { for (var_r24 = 0; var_r24 < 8; var_r24++) { - BmpPtrBak[var_r24] = (HsfAttribute *)-1; + BmpPtrBak[var_r24] = (HsfAttribute*) -1; } - } - else { - BmpPtrBak[var_r31] = (HsfAttribute *)-1; + } else { + BmpPtrBak[var_r31] = (HsfAttribute*) -1; } totalTexCnt++; continue; } } if (BmpPtrBak[var_r31] != temp_r26) { - if (BmpPtrBak[var_r31] != (HsfAttribute *)-1 && BmpPtrBak[var_r31]->bitmap == temp_r27 - && temp_r26->wrap_s == BmpPtrBak[var_r31]->wrap_s && temp_r26->wrap_t == BmpPtrBak[var_r31]->wrap_t) { + if (BmpPtrBak[var_r31] != (HsfAttribute*) -1 && BmpPtrBak[var_r31]->bitmap == temp_r27 && temp_r26->wrap_s == BmpPtrBak[var_r31]->wrap_s && temp_r26->wrap_t == BmpPtrBak[var_r31]->wrap_t) { if (temp_r27->dataFmt == 0xB) { TL32F = 1; } totalTexCacheCnt++; - } - else { + } else { texCol[var_r31].a = 0; if (temp_r27->dataFmt != 0xB) { - LoadTexture(arg0->model, temp_r27, temp_r26, (s16)var_r31); - } - else { - LoadTexture(arg0->model, temp_r27, temp_r26, (s16)var_r31); + LoadTexture(arg0->model, temp_r27, temp_r26, (s16) var_r31); + } else { + LoadTexture(arg0->model, temp_r27, temp_r26, (s16) var_r31); LoadTexture(arg0->model, temp_r27, temp_r26, var_r21 | 0x8000); - texCol[var_r31].r = (s16)var_r21; + texCol[var_r31].r = (s16) var_r21; texCol[var_r31].a = 2; var_r21++; } if (temp_r27->sizeX * temp_r27->sizeY * temp_r27->pixSize > 0x40000) { for (var_r24 = 0; var_r24 < 8; var_r24++) { - BmpPtrBak[var_r24] = (HsfAttribute *)-1; + BmpPtrBak[var_r24] = (HsfAttribute*) -1; } - } - else { + } else { BmpPtrBak[var_r31] = temp_r26; } totalTexCnt++; } - } - else { + } else { totalTexCacheCnt++; } } if (temp_r30->refAlpha != 0.0f) { - reflectionMapNo = (s16)var_r21; + reflectionMapNo = (s16) var_r21; shadowMapNo = reflectionMapNo + 1; if (temp_r29->unk_04 != -1) { var_r17 = temp_r29->unk_04; - } - else { + } else { var_r17 = reflectMapNo; } HuSprTexLoad(reflectAnim[var_r17], 0, reflectionMapNo, GX_REPEAT, GX_REPEAT, GX_LINEAR); - BmpPtrBak[reflectionMapNo] = (HsfAttribute *)-1; - } - else { - shadowMapNo = (s16)var_r21; + BmpPtrBak[reflectionMapNo] = (HsfAttribute*) -1; + } else { + shadowMapNo = (s16) var_r21; } if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { toonMapNo = shadowMapNo + 1; SetShadowTex(); - BmpPtrBak[shadowMapNo] = (HsfAttribute *)-1; - } - else { + BmpPtrBak[shadowMapNo] = (HsfAttribute*) -1; + } else { toonMapNo = shadowMapNo; } if (temp_r29->attr & HU3D_ATTR_TOON_MAP) { HuSprTexLoad(toonAnim, 0, toonMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); - BmpPtrBak[toonMapNo] = (HsfAttribute *)-1; + BmpPtrBak[toonMapNo] = (HsfAttribute*) -1; projectionMapNo = toonMapNo + 1; - } - else { + } else { projectionMapNo = toonMapNo; } if (temp_r29->unk_02 != 0) { for (var_r31 = 0, var_r24 = 1; var_r31 < 4; var_r31++, var_r24 <<= 1) { if (var_r24 & temp_r29->unk_02) { HuSprTexLoad(Hu3DProjection[var_r31].unk_04, 0, projectionMapNo + var_r31, GX_CLAMP, GX_CLAMP, GX_LINEAR); - BmpPtrBak[projectionMapNo + var_r31] = (HsfAttribute *)-1; + BmpPtrBak[projectionMapNo + var_r31] = (HsfAttribute*) -1; hiliteMapNo = projectionMapNo + var_r31 + 1; } } - } - else { + } else { hiliteMapNo = projectionMapNo; } if ((temp_r29->attr & HU3D_ATTR_HILITE) || (temp_r19 & 0x100)) { if (temp_r20->hiliteMap == 0) { if (temp_r30->flags != 0) { var_r18 = (temp_r30->pass >> 4) & 0xF; - } - else { + } else { var_r18 = (temp_r28->data.unk123 >> 4) & 0xF; } HuSprTexLoad(hiliteAnim[var_r18], 0, hiliteMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); - } - else { + } else { HuSprTexLoad(temp_r20->hiliteMap, 0, hiliteMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); } - BmpPtrBak[toonMapNo] = (HsfAttribute *)-1; + BmpPtrBak[toonMapNo] = (HsfAttribute*) -1; } SetTevStageTex(arg0, temp_r30); } - sp28 = (u8 *)DLBufStartP + DrawData[drawCnt].dlOfs; - GXCallDisplayListNative(sp28, DrawData[drawCnt].dlSize); - } - else { - sp28 = (u8 *)DLBufStartP + DrawData[drawCnt].dlOfs; - GXCallDisplayListNative(sp28, DrawData[drawCnt].dlSize); + sp28 = (u8*) DLBufStartP + DrawData[drawCnt].dlOfs; + GXCallDisplayList(sp28, DrawData[drawCnt].dlSize); + } else { + sp28 = (u8*) DLBufStartP + DrawData[drawCnt].dlOfs; + GXCallDisplayList(sp28, DrawData[drawCnt].dlSize); } drawCnt++; } -static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) -{ +static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) { GXColor sp1C; ModelData *temp_r28; HsfObject *var_r21; @@ -785,13 +735,11 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (arg1->vtxMode == 2 || arg1->vtxMode == 3) { var_r26 = 1; var_r24 = 1; - } - else { + } else { var_r26 = 0; if (arg1->vtxMode == 0 || arg1->vtxMode == 5) { var_r24 = 0; - } - else { + } else { var_r24 = 1; } } @@ -799,8 +747,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) var_r19 = GX_COLOR0A0; var_r18 = GX_CA_RASA; var_r22 = 1; - } - else { + } else { var_r19 = GX_COLOR0; var_r18 = GX_CA_KONST; var_r22 = 0; @@ -818,8 +765,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r29++; - } - else { + } else { GXSetTevColor(GX_TEVREG0, sp1C); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, var_r19); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); @@ -828,12 +774,12 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); } if (arg1->refAlpha != 0.0f) { - SetReflect(arg0, var_r30, (s16)var_r29, arg1->refAlpha * 255.0f); + SetReflect(arg0, var_r30, (s16) var_r29, arg1->refAlpha * 255.0f); var_r30++; var_r29++; } if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { - SetShadow(arg0, var_r30, (s16)var_r29); + SetShadow(arg0, var_r30, (s16) var_r29); var_r30++; var_r29++; } @@ -849,15 +795,14 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - MTXCopy(hiliteMtx, sp20); + PSMTXCopy(hiliteMtx, sp20); mtxScaleCat(sp20, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp20, GX_TEXMTX7, GX_MTX2x4); var_r30++; var_r29++; var_r24 = 1; var_r26 = 0; - } - else { + } else { GXSetTevOrder(var_r30, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -865,8 +810,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r30++; } - } - else if (arg1->invAlpha != 0.0f) { + } else if (arg1->invAlpha != 0.0f) { GXSetTevOrder(var_r30, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_ONE, GX_CC_CPREV, GX_CC_ZERO); GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -877,7 +821,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (temp_r28->unk_02 != 0) { for (var_r25 = 0, var_r23 = 1; var_r25 < 4; var_r25++, var_r23 <<= 1) { if (var_r23 & temp_r28->unk_02) { - SetProjection(arg0, var_r30, var_r25, (GXTexMapID)var_r29, projectionMapNo + var_r25, texMtxTbl[var_r25 + 3]); + SetProjection(arg0, var_r30, var_r25, (GXTexMapID) var_r29, projectionMapNo + var_r25, texMtxTbl[var_r25 + 3]); var_r29++; var_r30 += 2; } @@ -891,8 +835,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) shadingBak = var_r20; if (var_r26 != 0) { var_f30 = arg1->hilite_scale; - } - else { + } else { var_f30 = 0.0f; } lightBit = Hu3DLightSet(arg0->model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, var_f30); @@ -905,31 +848,26 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (var_r22 != 0) { GXSetChanCtrl(GX_ALPHA0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPEC); - } - else { + } else { GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_COLOR1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_NONE, GX_AF_SPEC); GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetNumChans(1); if (arg1->vtxMode == 5) { GXSetChanCtrl(GX_COLOR0, var_r24, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPOT); if (var_r22 != 0) { GXSetChanCtrl(GX_ALPHA0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPOT); - } - else { + } else { GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetChanCtrl(GX_COLOR0, var_r24, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_CLAMP, GX_AF_SPOT); GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } @@ -937,10 +875,13 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) } } -static Mtx refMtx = { { 0.25f, 0.0f, 0.0f, -0.5f }, { 0.0f, -0.25f, 0.0f, -0.5f }, { 0.0f, 0.0f, 0.25f, -0.5f } }; +static Mtx refMtx = { + { 0.25f, 0.0f, 0.0f, -0.5f }, + { 0.0f, -0.25f, 0.0f, -0.5f }, + { 0.0f, 0.0f, 0.25f, -0.5f } +}; -static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) -{ +static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { GXColor sp50; GXTexMapID sp4C; GXTevStageID sp48; @@ -973,13 +914,11 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) sp40 = temp_r19->flags | arg1->flags; if (arg1->vtxMode == 2 || arg1->vtxMode == 3) { var_r21 = 1; - } - else { + } else { var_r21 = 0; if (arg1->vtxMode == 0 || arg1->vtxMode == 5) { var_r18 = 0; - } - else { + } else { var_r18 = 1; } } @@ -987,8 +926,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) sp3C = GX_COLOR0A0; var_r17 = GX_CA_RASA; sp38 = 1; - } - else { + } else { sp3C = GX_COLOR0; var_r17 = GX_CA_KONST; sp38 = 0; @@ -997,17 +935,15 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) var_r30 = var_r31 = 1; temp_r29 = &temp_r19->data.attribute[arg1->attrs[0]]; if (temp_r29->unk28 != 1.0f || temp_r29->unk2C != 1.0f) { - MTXScale(sp54, 1.0f / temp_r29->unk28, 1.0f / temp_r29->unk2C, 1.0f); + PSMTXScale(sp54, 1.0f / temp_r29->unk28, 1.0f / temp_r29->unk2C, 1.0f); mtxTransCat(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - } - else if (temp_r29->unk30 != 0.0f || temp_r29->unk34 != 0.0f) { - MTXTrans(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); + } else if (temp_r29->unk30 != 0.0f || temp_r29->unk34 != 0.0f) { + PSMTXTrans(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - } - else { + } else { GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); } if (temp_r29->unk20 == 1.0f) { @@ -1016,16 +952,14 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (temp_r28->unk00 & 2) { GXLoadTexMtxImm(Hu3DTexScrData[temp_r28->unk04].unk3C, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); - } - else if (temp_r28->unk00 & 4) { - MTXScale(sp54, 1.0f / temp_r28->unk20, 1.0f / temp_r28->unk24, 1.0f / temp_r28->unk28); + } else if (temp_r28->unk00 & 4) { + PSMTXScale(sp54, 1.0f / temp_r28->unk20, 1.0f / temp_r28->unk24, 1.0f / temp_r28->unk28); mtxRotCat(sp54, temp_r28->unk14, temp_r28->unk18, temp_r28->unk1C); mtxTransCat(sp54, -temp_r28->unk08, -temp_r28->unk0C, -temp_r28->unk10); GXLoadTexMtxImm(sp54, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); - } - else if (temp_r28->unk00 & 1) { - MTXScale(sp54, temp_r28->unk2C, temp_r28->unk30, 1.0f); + } else if (temp_r28->unk00 & 1) { + PSMTXScale(sp54, temp_r28->unk2C, temp_r28->unk30, 1.0f); mtxTransCat(sp54, temp_r28->unk34, temp_r28->unk38, 0.0f); GXLoadTexMtxImm(sp54, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); @@ -1039,8 +973,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; - } - else { + } else { GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0); if (!(temp_r25->attr & HU3D_ATTR_TOON_MAP)) { if (texCol[0].a == 1) { @@ -1057,8 +990,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_APREV, var_r17, GX_CA_ZERO); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; - } - else if (texCol[0].a == 2) { + } else if (texCol[0].a == 2) { GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_ALPHA, GX_CH_ALPHA, GX_CH_ALPHA); GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP1); @@ -1074,23 +1006,20 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevOrder(var_r31, GX_TEXCOORD0, texCol->r, GX_COLOR_NULL); var_r31++; - } - else { + } else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, var_r17, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); } - } - else { + } else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); } } - } - else { + } else { GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); } if (temp_r25->attr & HU3D_ATTR_TOON_MAP) { @@ -1106,12 +1035,12 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) sp50.a = 255.0f * (1.0f - arg1->invAlpha); GXSetTevColor(GX_TEVREG0, sp50); if (arg1->refAlpha != 0.0f) { - SetReflect(arg0, var_r31, (u16)var_r30, 255.0f * arg1->refAlpha); + SetReflect(arg0, var_r31, (u16) var_r30, 255.0f * arg1->refAlpha); var_r30++; var_r31++; } if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { - SetShadow(arg0, var_r31, (u16)var_r30); + SetShadow(arg0, var_r31, (u16) var_r30); var_r30++; var_r31++; } @@ -1127,20 +1056,18 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - MTXCopy(hiliteMtx, sp54); + PSMTXCopy(hiliteMtx, sp54); mtxScaleCat(sp54, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp54, GX_TEXMTX7, GX_MTX2x4); var_r31++; var_r30++; var_r21 = 0; var_r18 = 1; - } - else { + } else { if (temp_r29->unk20 == 1.0f) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } - else { + } else { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, GX_TEXMAP0, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_CPREV); @@ -1151,8 +1078,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; } - } - else if (arg1->invAlpha != 0.0f) { + } else if (arg1->invAlpha != 0.0f) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1163,14 +1089,13 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (temp_r25->unk_02 != 0) { for (i = 0, var_r22 = 1; i < 4; i++, var_r22 <<= 1) { if (var_r22 & temp_r25->unk_02) { - SetProjection(arg0, var_r31, i, (u16)var_r30, projectionMapNo + i, texMtxTbl[i + 3]); + SetProjection(arg0, var_r31, i, (u16) var_r30, projectionMapNo + i, texMtxTbl[i + 3]); var_r30++; var_r31 += 2; } } } - } - else { + } else { sp44 = 0; var_r30 = 0; sp4C = -1; @@ -1194,59 +1119,51 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); var_r30++; sp44 = 1; - } - else if (temp_r29->unk20 != 1.0f) { + } else if (temp_r29->unk20 != 1.0f) { var_r20 = i; continue; - } - else { + } else { if (temp_r29->unk04) { temp_r28 = temp_r29->unk04; if (temp_r28->unk00 & 2) { GXLoadTexMtxImm(Hu3DTexScrData[temp_r28->unk04].unk3C, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - temp_r23 = (u16)var_r30; + temp_r23 = (u16) var_r30; var_r30++; - } - else if (temp_r28->unk00 & 4) { - MTXScale(sp54, 1.0f / temp_r28->unk20, 1.0f / temp_r28->unk24, 1.0f / temp_r28->unk28); + } else if (temp_r28->unk00 & 4) { + PSMTXScale(sp54, 1.0f / temp_r28->unk20, 1.0f / temp_r28->unk24, 1.0f / temp_r28->unk28); mtxRotCat(sp54, temp_r28->unk14, temp_r28->unk18, temp_r28->unk1C); mtxTransCat(sp54, -temp_r28->unk08, -temp_r28->unk0C, -temp_r28->unk10); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - temp_r23 = (u16)var_r30; + temp_r23 = (u16) var_r30; var_r30++; - } - else if (temp_r28->unk00 & 1) { - MTXScale(sp54, temp_r28->unk2C, temp_r28->unk30, 1.0f); + } else if (temp_r28->unk00 & 1) { + PSMTXScale(sp54, temp_r28->unk2C, temp_r28->unk30, 1.0f); mtxTransCat(sp54, temp_r28->unk34, temp_r28->unk38, 0.0f); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - temp_r23 = (u16)var_r30; + temp_r23 = (u16) var_r30; var_r30++; - } - else { + } else { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); - temp_r23 = (u16)var_r30; + temp_r23 = (u16) var_r30; var_r30++; } - } - else { + } else { if (temp_r29->unk28 != 1.0f || temp_r29->unk2C != 1.0f) { - MTXScale(sp54, 1.0f / temp_r29->unk28, 1.0f / temp_r29->unk2C, 1.0f); + PSMTXScale(sp54, 1.0f / temp_r29->unk28, 1.0f / temp_r29->unk2C, 1.0f); mtxTransCat(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - } - else if (temp_r29->unk30 != 0.0f || temp_r29->unk34 != 0.0f) { - MTXTrans(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); + } else if (temp_r29->unk30 != 0.0f || temp_r29->unk34 != 0.0f) { + PSMTXTrans(sp54, -temp_r29->unk30, -temp_r29->unk34, 0.0f); GXLoadTexMtxImm(sp54, texMtxTbl[var_r30], GX_MTX2x4); GXSetTexCoordGen(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[var_r30]); - } - else { + } else { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); } - temp_r23 = (u16)var_r30; + temp_r23 = (u16) var_r30; var_r30++; } GXSetTevOrder(var_r31, temp_r23, i, GX_COLOR0A0); @@ -1264,8 +1181,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevOrder(var_r31, temp_r23, i, sp3C); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_KONST, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO); - } - else if (texCol[i].a == 2) { + } else if (texCol[i].a == 2) { GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_ALPHA, GX_CH_ALPHA, GX_CH_ALPHA); GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); GXSetTevSwapMode(var_r31, GX_TEV_SWAP0, GX_TEV_SWAP1); @@ -1279,18 +1195,15 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_KONST, GX_CC_C2); GXSetTevAlphaIn(var_r31, GX_CA_APREV, GX_CA_KONST, GX_CA_TEXA, GX_CA_ZERO); GXSetTevOrder(var_r31, GX_TEXCOORD0, texCol->r, GX_COLOR_NULL); - } - else { + } else { GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_TEXA, var_r17, GX_CA_ZERO); } - } - else if (sp44 != 0) { + } else if (sp44 != 0) { GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); sp44 = 0; - } - else if (temp_r29->unk8[2] == 0) { + } else if (temp_r29->unk8[2] == 0) { if (temp_r29->unk0C != 1.0f) { sp50.a = temp_r29->unk0C * 255.0f; SetKColorRGB(var_r31, &sp50); @@ -1302,8 +1215,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_C2, GX_CC_A2, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); - } - else { + } else { GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG2); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); @@ -1313,8 +1225,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_C2, GX_CC_TEXA, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); } - } - else if (texCol[i].a == 1) { + } else if (texCol[i].a == 1) { sp50 = texCol[i]; sp50.a = 0xFF; SetKColorRGB(var_r31, &sp50); @@ -1327,8 +1238,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) SetKColor(var_r31, temp_r29->unk0C * 255.0f); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_C2, GX_CC_KONST, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); - } - else if (texCol[i].a == 2) { + } else if (texCol[i].a == 2) { GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_ALPHA, GX_CH_ALPHA, GX_CH_ALPHA); GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); GXSetTevSwapMode(var_r31, GX_TEV_SWAP0, GX_TEV_SWAP1); @@ -1342,8 +1252,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_KONST, GX_CC_C2); GXSetTevAlphaIn(var_r31, GX_CA_APREV, GX_CA_KONST, GX_CA_TEXA, GX_CA_ZERO); GXSetTevOrder(var_r31, GX_TEXCOORD0, texCol->r, GX_COLOR_NULL); - } - else { + } else { SetKColor(var_r31, temp_r29->unk0C * 255.0f); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_KONST, GX_CC_ZERO); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); @@ -1380,8 +1289,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - } - else { + } else { SetKColor(var_r31, arg1->refAlpha * 255.0f); GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_NRM, GX_TEXMTX8, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, reflectionMapNo, GX_COLOR0A0); @@ -1390,17 +1298,17 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); } - MTXScale(sp54, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); - MTXConcat(arg0->matrix, sp54, sp54); + PSMTXScale(sp54, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); + PSMTXConcat(arg0->matrix, sp54, sp54); sp54[0][3] = sp54[1][3] = sp54[2][3] = 0.0f; - MTXConcat(sp54, Hu3DCameraMtxXPose, sp54); - MTXConcat(refMtx, sp54, sp54); + PSMTXConcat(sp54, Hu3DCameraMtxXPose, sp54); + PSMTXConcat(refMtx, sp54, sp54); GXLoadTexMtxImm(sp54, 0x36, GX_MTX2x4); var_r31++; var_r30++; } if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { - SetShadow(arg0, var_r31, (u16)var_r30); + SetShadow(arg0, var_r31, (u16) var_r30); var_r30++; var_r31++; } @@ -1412,7 +1320,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - MTXCopy(hiliteMtx, sp54); + PSMTXCopy(hiliteMtx, sp54); mtxScaleCat(sp54, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp54, 0x33, GX_MTX2x4); if (var_r20 == -1) { @@ -1422,8 +1330,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - } - else { + } else { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, var_r20, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_ZERO); @@ -1443,13 +1350,11 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) var_r30++; var_r21 = 0; var_r18 = 1; - } - else { + } else { if (var_r20 == -1) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } - else { + } else { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, var_r20, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_CPREV); @@ -1460,8 +1365,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; } - } - else if (arg1->invAlpha != 0.0f) { + } else if (arg1->invAlpha != 0.0f) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1472,7 +1376,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (temp_r25->unk_02 != 0) { for (i = 0, var_r22 = 1; i < 4; i++, var_r22 <<= 1) { if (var_r22 & temp_r25->unk_02) { - SetProjection(arg0, var_r31, i, (u16)var_r30, projectionMapNo + i, texMtxTbl[i + 3]); + SetProjection(arg0, var_r31, i, (u16) var_r30, projectionMapNo + i, texMtxTbl[i + 3]); var_r30++; var_r31 += 2; } @@ -1491,8 +1395,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) shadingBak = arg1->vtxMode; if (var_r21 != 0) { var_f30 = arg1->hilite_scale; - } - else { + } else { var_f30 = 0.0f; } lightBit = Hu3DLightSet(arg0->model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, var_f30); @@ -1505,31 +1408,26 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) if (sp38 != 0) { GXSetChanCtrl(GX_ALPHA0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPEC); - } - else { + } else { GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_COLOR1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_NONE, GX_AF_SPEC); GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); GXSetChanCtrl(GX_ALPHA1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetNumChans(1); if (arg1->vtxMode == 5) { GXSetChanCtrl(GX_COLOR0, var_r18, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPOT); if (sp38 != 0) { GXSetChanCtrl(GX_ALPHA0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_SPOT); - } - else { + } else { GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } - } - else { + } else { GXSetChanCtrl(GX_COLOR0, var_r18, GX_SRC_REG, GX_SRC_REG, lightBit, GX_DF_CLAMP, GX_AF_SPOT); GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, lightBit, GX_DF_CLAMP, GX_AF_NONE); } @@ -1537,17 +1435,43 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) } } -static s32 kColorSelTbl[] = { GX_TEV_KCSEL_K0_R, GX_TEV_KCSEL_K0_G, GX_TEV_KCSEL_K0_B, GX_TEV_KCSEL_K1_R, GX_TEV_KCSEL_K1_G, GX_TEV_KCSEL_K1_B, - GX_TEV_KCSEL_K2_R, GX_TEV_KCSEL_K2_G, GX_TEV_KCSEL_K2_B, GX_TEV_KCSEL_K3_R, GX_TEV_KCSEL_K3_G, GX_TEV_KCSEL_K3_B }; +static s32 kColorSelTbl[] = { + GX_TEV_KCSEL_K0_R, + GX_TEV_KCSEL_K0_G, + GX_TEV_KCSEL_K0_B, + GX_TEV_KCSEL_K1_R, + GX_TEV_KCSEL_K1_G, + GX_TEV_KCSEL_K1_B, + GX_TEV_KCSEL_K2_R, + GX_TEV_KCSEL_K2_G, + GX_TEV_KCSEL_K2_B, + GX_TEV_KCSEL_K3_R, + GX_TEV_KCSEL_K3_G, + GX_TEV_KCSEL_K3_B +}; -static s32 kColorTbl[] = { GX_KCOLOR0, GX_KCOLOR1, GX_KCOLOR2, GX_KCOLOR3 }; +static s32 kColorTbl[] = { + GX_KCOLOR0, + GX_KCOLOR1, + GX_KCOLOR2, + GX_KCOLOR3 +}; -static s32 kColorSelTbl2[] = { GX_TEV_KCSEL_K0, GX_TEV_KCSEL_K1, GX_TEV_KCSEL_K2, GX_TEV_KCSEL_K3 }; +static s32 kColorSelTbl2[] = { + GX_TEV_KCSEL_K0, + GX_TEV_KCSEL_K1, + GX_TEV_KCSEL_K2, + GX_TEV_KCSEL_K3 +}; -static s32 kColorSelATbl[] = { GX_TEV_KASEL_K0_A, GX_TEV_KASEL_K1_A, GX_TEV_KASEL_K2_A, GX_TEV_KASEL_K3_A }; +static s32 kColorSelATbl[] = { + GX_TEV_KASEL_K0_A, + GX_TEV_KASEL_K1_A, + GX_TEV_KASEL_K2_A, + GX_TEV_KASEL_K3_A +}; -static GXTevKColorSel SetKColor(GXTevStageID arg0, u8 arg1) -{ +static GXTevKColorSel SetKColor(GXTevStageID arg0, u8 arg1) { GXTevKColorSel temp_r30; switch (kColorIdx % 3) { @@ -1573,8 +1497,7 @@ static GXTevKColorSel SetKColor(GXTevStageID arg0, u8 arg1) return temp_r30; } -static GXTevKColorSel SetKColorRGB(GXTevStageID arg0, GXColor *arg1) -{ +static GXTevKColorSel SetKColorRGB(GXTevStageID arg0, GXColor *arg1) { GXTevKColorSel temp_r30; GXSetTevKColor(kColorTbl[kColorIdx / 3], kColor); @@ -1590,16 +1513,14 @@ static GXTevKColorSel SetKColorRGB(GXTevStageID arg0, GXColor *arg1) return temp_r30; } -static void FlushKColor(void) -{ +static void FlushKColor(void) { kColor.a = 0xFF; if (kColorIdx % 3 != 0) { GXSetTevKColor(kColorTbl[kColorIdx / 3], kColor); } } -static void SetReflect(HsfDrawObject *arg0, s16 arg1, s16 arg2, u8 arg3) -{ +static void SetReflect(HsfDrawObject *arg0, s16 arg1, s16 arg2, u8 arg3) { GXTevKColorSel var_r27; Mtx sp3C; Mtx spC; @@ -1630,16 +1551,15 @@ static void SetReflect(HsfDrawObject *arg0, s16 arg1, s16 arg2, u8 arg3) GXSetTevColorOp(arg1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(arg1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); GXSetTevAlphaOp(arg1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - MTXScale(sp3C, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); - MTXConcat(arg0->matrix, sp3C, spC); + PSMTXScale(sp3C, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); + PSMTXConcat(arg0->matrix, sp3C, spC); spC[0][3] = spC[1][3] = spC[2][3] = 0.0f; - MTXConcat(spC, Hu3DCameraMtxXPose, sp3C); - MTXConcat(refMtx, sp3C, spC); + PSMTXConcat(spC, Hu3DCameraMtxXPose, sp3C); + PSMTXConcat(refMtx, sp3C, spC); GXLoadTexMtxImm(spC, GX_TEXMTX8, GX_MTX2x4); } -static void SetProjection(HsfDrawObject *arg0, s16 arg1, s16 arg2, s16 arg3, GXTexMapID arg4, u32 arg5) -{ +static void SetProjection(HsfDrawObject *arg0, s16 arg1, s16 arg2, s16 arg3, GXTexMapID arg4, u32 arg5) { GXTevKColorSel var_r26; u8 temp_r30; @@ -1678,20 +1598,15 @@ static void SetProjection(HsfDrawObject *arg0, s16 arg1, s16 arg2, s16 arg3, GXT GXSetTevAlphaOp(arg1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); } -static s32 SetShadowTex(void) -{ +static s32 SetShadowTex(void) { GXTexObj sp8; GXInitTexObj(&sp8, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&sp8, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&sp8, shadowMapNo); -#ifdef TARGET_PC - GXDestroyTexObj(&sp8); -#endif } -static void SetShadow(HsfDrawObject *arg0, s16 arg1, s16 arg2) -{ +static void SetShadow(HsfDrawObject *arg0, s16 arg1, s16 arg2) { GXSetTexCoordGen2(arg2, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(arg1, arg2, shadowMapNo, GX_COLOR0A0); GXSetTevColorIn(arg1, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); @@ -1700,8 +1615,7 @@ static void SetShadow(HsfDrawObject *arg0, s16 arg1, s16 arg2) GXSetTevAlphaOp(arg1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); } -static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) -{ +static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) { HsfObject *temp_r31; ModelData *temp_r28; HsfConstData *temp_r27; @@ -1730,20 +1644,19 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r31->data.vertex->data, temp_r31->data.vertex->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); - GXSETARRAY(GX_VA_NRM, temp_r31->data.normal->data, temp_r31->data.normal->count * 3, 3); - } - else { + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); + } else { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r31->data.normal->data, temp_r31->data.normal->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r31->data.color->data, temp_r31->data.color->count * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r31->data.color->data, 4); } GXSetZCompLoc(1); } @@ -1754,8 +1667,7 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } - else { + } else { var_r30 = (temp_r29->vtxMode == 5) ? 5 : 1; if (DrawData[drawCnt].flags & 2) { var_r30 |= 2; @@ -1765,29 +1677,27 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_POS, temp_r31->data.vertex->data, temp_r31->data.vertex->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); if (var_r30 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); - } - else { + } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); - GXSETARRAY(GX_VA_NRM, temp_r31->data.normal->data, temp_r31->data.normal->count * 3, 3); - } - else { + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); + } else { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSETARRAY(GX_VA_NRM, temp_r31->data.normal->data, temp_r31->data.normal->count * sizeof(Vec), sizeof(Vec)); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_TEX0, temp_r31->data.st->data, temp_r31->data.st->count * sizeof(Vec2f), sizeof(Vec2f)); + GXSetArray(GX_VA_TEX0, temp_r31->data.st->data, 2 * sizeof(float)); if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSETARRAY(GX_VA_CLR0, temp_r31->data.color->data, temp_r31->data.color->count * sizeof(GXColor), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, temp_r31->data.color->data, 4); } GXSetZCompLoc(0); } @@ -1801,22 +1711,20 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) } GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); - var_r26 = (u8 *)DLBufStartP + DrawData[drawCnt].dlOfs; - //GXCallDisplayListNative(var_r26, DrawData[drawCnt].dlSize); - } - else { + var_r26 = (u8*) DLBufStartP + DrawData[drawCnt].dlOfs; + GXCallDisplayList(var_r26, DrawData[drawCnt].dlSize); + } else { if (!(temp_r27->flags & 0x400)) { drawCnt++; return; } - var_r26 = (u8 *)DLBufStartP + DrawData[drawCnt].dlOfs; - //GXCallDisplayListNative(var_r26, DrawData[drawCnt].dlSize); + var_r26 = (u8*) DLBufStartP + DrawData[drawCnt].dlOfs; + GXCallDisplayList(var_r26, DrawData[drawCnt].dlSize); } drawCnt++; } -static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) -{ +static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) { GXTexObj sp1C; GXTlutObj sp10; s16 var_r27; @@ -1828,11 +1736,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 if (arg1 == 0) { OSReport("Error: No Texture\n"); -#ifdef NON_MATCHING - return 0; -#else return; -#endif } var_r27 = arg1->sizeX; var_r26 = arg1->sizeY; @@ -1854,8 +1758,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C4, var_r22, var_r21, var_r20, arg3); - } - else { + } else { GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C8, var_r22, var_r21, var_r20, arg3); @@ -1866,15 +1769,14 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C4, var_r22, var_r21, var_r20, arg3); - } - else { + } else { GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C8, var_r22, var_r21, var_r20, arg3); } break; case 0: - var_r30 = (s16)arg3; + var_r30 = (s16) arg3; texCol[var_r30].r = arg1->tint.r; texCol[var_r30].g = arg1->tint.g; texCol[var_r30].b = arg1->tint.b; @@ -1882,7 +1784,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 GXInitTexObj(&sp1C, arg1->data, var_r27, var_r26, GX_TF_I4, var_r22, var_r21, var_r20); break; case 1: - var_r30 = (s16)arg3; + var_r30 = (s16) arg3; texCol[var_r30].r = arg1->tint.r; texCol[var_r30].g = arg1->tint.g; texCol[var_r30].b = arg1->tint.b; @@ -1890,7 +1792,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 GXInitTexObj(&sp1C, arg1->data, var_r27, var_r26, GX_TF_I8, var_r22, var_r21, var_r20); break; case 2: - var_r30 = (s16)arg3; + var_r30 = (s16) arg3; texCol[var_r30].r = arg1->tint.r; texCol[var_r30].g = arg1->tint.g; texCol[var_r30].b = arg1->tint.b; @@ -1898,7 +1800,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 GXInitTexObj(&sp1C, arg1->data, var_r27, var_r26, GX_TF_IA4, var_r22, var_r21, var_r20); break; case 3: - var_r30 = (s16)arg3; + var_r30 = (s16) arg3; texCol[var_r30].r = arg1->tint.r; texCol[var_r30].g = arg1->tint.g; texCol[var_r30].b = arg1->tint.b; @@ -1910,17 +1812,15 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 break; case 11: if (arg3 & 0x8000) { - GXInitTlutObj(&sp10, &((s16 *)arg1->palData)[(arg1->palSize + 0xF) & 0xFFF0], GX_TL_IA8, arg1->palSize); - } - else { + GXInitTlutObj(&sp10, &((s16*) arg1->palData)[(arg1->palSize + 0xF) & 0xFFF0], GX_TL_IA8, arg1->palSize); + } else { GXInitTlutObj(&sp10, arg1->palData, GX_TL_IA8, arg1->palSize); } arg3 &= 0x7FFF; if (arg1->pixSize < 8) { GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C4, var_r22, var_r21, var_r20, arg3); - } - else { + } else { GXLoadTlut(&sp10, arg3); GXInitTexObjCI(&sp1C, arg1->data, var_r27, var_r26, GX_TF_C8, var_r22, var_r21, var_r20, arg3); } @@ -1929,27 +1829,17 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 } if ((arg0->attr & HU3D_ATTR_TEX_NEAR) || (arg2->flag & 0x40)) { GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - else if (var_r20) { + } else if (var_r20) { GXInitTexObjLOD(&sp1C, GX_LIN_MIP_LIN, GX_LINEAR, 0.0f, arg2->unk78, 0.0f, GX_FALSE, GX_TRUE, GX_ANISO_2); - } - else if (arg1->maxLod == 0) { + } else if (arg1->maxLod == 0) { GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - else { + } else { GXInitTexObjLOD(&sp1C, GX_LIN_MIP_LIN, GX_LINEAR, 0.0f, arg1->maxLod - 1, 0.0f, GX_TRUE, GX_TRUE, GX_ANISO_1); } GXLoadTexObj(&sp1C, arg3); -#ifdef TARGET_PC - GXDestroyTexObj(&sp1C); - if (arg1->dataFmt == 9 || arg1->dataFmt == 10 || arg1->dataFmt == 11) { - GXDestroyTlutObj(&sp10); - } -#endif } -static void objNull(ModelData *arg0, HsfObject *arg1) -{ +static void objNull(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Vec *temp_r27; Vec *temp_r28; @@ -1960,15 +1850,14 @@ static void objNull(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } if (arg0->hsfData->cenvCnt == 0 || hookIdx != -1) { - MTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); mtxRotCat(sp8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); mtxTransCat(sp8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); } temp_r28 = &scaleBuf[MTXIdx]; temp_r27 = temp_r28 - 1; @@ -1977,8 +1866,7 @@ static void objNull(ModelData *arg0, HsfObject *arg1) temp_r28->z = temp_r27->z * var_r31->scale.z; MTXIdx++; var_r24 = 1; - } - else { + } else { CancelTRXF = 0; var_r24 = 0; } @@ -1990,8 +1878,7 @@ static void objNull(ModelData *arg0, HsfObject *arg1) } } -static void objRoot(ModelData *arg0, HsfObject *arg1) -{ +static void objRoot(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Vec *temp_r29; Vec *temp_r30; @@ -2002,15 +1889,14 @@ static void objRoot(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } if (arg0->hsfData->cenvCnt == 0 || hookIdx != -1) { - MTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); mtxRotCat(sp8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); mtxTransCat(sp8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); } temp_r30 = &scaleBuf[MTXIdx]; temp_r29 = temp_r30 - 1; @@ -2019,8 +1905,7 @@ static void objRoot(ModelData *arg0, HsfObject *arg1) temp_r30->z = temp_r29->z * var_r31->scale.z; MTXIdx++; var_r26 = 1; - } - else { + } else { CancelTRXF = 0; var_r26 = 0; } @@ -2032,8 +1917,7 @@ static void objRoot(ModelData *arg0, HsfObject *arg1) } } -static void objJoint(ModelData *arg0, HsfObject *arg1) -{ +static void objJoint(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Vec *temp_r27; Vec *temp_r28; @@ -2044,15 +1928,14 @@ static void objJoint(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } if (arg0->hsfData->cenvCnt == 0 || hookIdx != -1) { - MTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXScale(sp8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); mtxRotCat(sp8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); mtxTransCat(sp8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp8, MTXBuf[MTXIdx]); } temp_r28 = &scaleBuf[MTXIdx]; temp_r27 = temp_r28 - 1; @@ -2061,8 +1944,7 @@ static void objJoint(ModelData *arg0, HsfObject *arg1) temp_r28->z = temp_r27->z * var_r31->scale.z; MTXIdx++; var_r24 = 1; - } - else { + } else { CancelTRXF = 0; var_r24 = 0; } @@ -2074,8 +1956,7 @@ static void objJoint(ModelData *arg0, HsfObject *arg1) } } -static void objMap(ModelData *arg0, HsfObject *arg1) -{ +static void objMap(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Vec *temp_r29; Vec *temp_r30; @@ -2086,14 +1967,13 @@ static void objMap(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } - MTXScale(spC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXScale(spC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); mtxRotCat(spC, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); mtxTransCat(spC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], spC, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], spC, MTXBuf[MTXIdx]); temp_r30 = &scaleBuf[MTXIdx]; temp_r29 = temp_r30 - 1; temp_r30->x = temp_r29->x * var_r31->scale.x; @@ -2101,8 +1981,7 @@ static void objMap(ModelData *arg0, HsfObject *arg1) temp_r30->z = temp_r29->z * var_r31->scale.z; MTXIdx++; var_r26 = 1; - } - else { + } else { CancelTRXF = 0; var_r26 = 0; } @@ -2114,23 +1993,21 @@ static void objMap(ModelData *arg0, HsfObject *arg1) } } -static void objReplica(ModelData *arg0, HsfObject *arg1) -{ +static void objReplica(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Mtx sp3C; Mtx spC; if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } mtxRot(spC, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - MTXScale(sp3C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - MTXConcat(spC, sp3C, sp3C); + PSMTXScale(sp3C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXConcat(spC, sp3C, sp3C); mtxTransCat(sp3C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp3C, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp3C, MTXBuf[MTXIdx]); scaleBuf[MTXIdx].x = var_r31->scale.x * scaleBuf[MTXIdx - 1].x; scaleBuf[MTXIdx].y = var_r31->scale.y * scaleBuf[MTXIdx - 1].y; scaleBuf[MTXIdx].z = var_r31->scale.z * scaleBuf[MTXIdx - 1].z; @@ -2141,14 +2018,13 @@ static void objReplica(ModelData *arg0, HsfObject *arg1) MTXIdx--; } -void Hu3DDrawPost(void) -{ +void Hu3DDrawPost(void) { Vec sp54; Vec sp48; Vec sp3C; Vec sp30; GXColor sp2C; - void (*sp28)(ModelData *, Mtx); + void (*sp28)(ModelData*, Mtx); s16 spA; s16 sp8; HsfBuffer *temp_r24; @@ -2194,8 +2070,7 @@ void Hu3DDrawPost(void) if (DrawObjData[DrawObjNum[var_r26]].z < temp_f29) { DrawObjNum[var_r26 + var_r25] = DrawObjNum[var_r26]; var_r26 -= var_r25; - } - else { + } else { break; } } @@ -2217,49 +2092,47 @@ void Hu3DDrawPost(void) } GXInvalidateTexAll(); GXInvalidateVtxCache(); - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; for (i = 0; i < 8; i++) { - BmpPtrBak[i] = (HsfAttribute *)-1; + BmpPtrBak[i] = (HsfAttribute*) -1; } GXSetCullMode(GX_CULL_BACK); for (var_r23 = 0; var_r23 < DrawObjIdx; var_r23++) { temp_r28 = &DrawObjData[DrawObjNum[var_r23]]; if (temp_r28->model->attr & HU3D_ATTR_HOOKFUNC) { - sp28 = (void *)temp_r28->model->hsfData; + sp28 = (void*) temp_r28->model->hsfData; sp28(temp_r28->model, temp_r28->matrix); for (i = 0; i < 8; i++) { - BmpPtrBak[i] = (HsfAttribute *)-1; + BmpPtrBak[i] = (HsfAttribute*) -1; } - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; Hu3DCameraSet(Hu3DCameraNo, Hu3DCameraMtx); - } - else { + } else { Hu3DObjInfoP = temp_r28->object->constData; DLBufStartP = Hu3DObjInfoP->dlBuf; DrawData = Hu3DObjInfoP->drawData; GXLoadPosMtxImm(temp_r28->matrix, GX_PNMTX0); - MTXInvXpose(temp_r28->matrix, sp120); + PSMTXInvXpose(temp_r28->matrix, sp120); GXLoadNrmMtxImm(sp120, 0); if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { - MTXInverse(Hu3DCameraMtx, spF0); - MTXConcat(spF0, temp_r28->matrix, sp120); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp150); - MTXConcat(sp150, sp120, sp120); + PSMTXInverse(Hu3DCameraMtx, spF0); + PSMTXConcat(spF0, temp_r28->matrix, sp120); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp150); + PSMTXConcat(sp150, sp120, sp120); GXLoadTexMtxImm(sp120, GX_TEXMTX9, GX_MTX3x4); var_r19 = 1; - } - else { + } else { var_r19 = 0; } if (temp_r28->model->unk_02 != 0) { if (var_r19 == 0) { - MTXInverse(Hu3DCameraMtx, spF0); + PSMTXInverse(Hu3DCameraMtx, spF0); } for (i = 0, var_r21 = 1; i < 4; i++, var_r21 <<= 1) { if (var_r21 & temp_r28->model->unk_02) { - MTXConcat(spF0, temp_r28->matrix, sp120); - MTXConcat(Hu3DProjection[i].unk_68, Hu3DProjection[i].unk_38, sp150); - MTXConcat(sp150, sp120, sp120); + PSMTXConcat(spF0, temp_r28->matrix, sp120); + PSMTXConcat(Hu3DProjection[i].unk_68, Hu3DProjection[i].unk_38, sp150); + PSMTXConcat(sp150, sp120, sp120); GXLoadTexMtxImm(sp120, texMtxTbl[i + 3], GX_MTX3x4); } } @@ -2269,34 +2142,32 @@ void Hu3DDrawPost(void) temp_r22 = &Hu3DGlobalLight[temp_r28->model->unk_03]; sp30 = temp_r22->unk_28; if (temp_r22->unk_00 & 0x8000) { - MTXMultVecSR(Hu3DCameraMtx, &sp30, &sp30); + PSMTXMultVecSR(Hu3DCameraMtx, &sp30, &sp30); } temp_f30 = VECDotProduct(&sp30, &sp54); temp_f30 *= 10000.0f; OSf32tos16(&temp_f30, &sp8); if (sp8 == -10000) { - MTXScale(hiliteMtx, 0.0f, 0.0f, 0.0f); - } - else { + PSMTXScale(hiliteMtx, 0.0f, 0.0f, 0.0f); + } else { C_VECHalfAngle(&sp30, &sp54, &sp3C); sp3C.x = -sp3C.x; sp3C.y = -sp3C.y; sp3C.z = -sp3C.z; - MTXScale(sp60, 1.0f / temp_r28->scale.x, 1.0f / temp_r28->scale.y, 1.0f / temp_r28->scale.z); - MTXConcat(temp_r28->matrix, sp60, spC0); + PSMTXScale(sp60, 1.0f / temp_r28->scale.x, 1.0f / temp_r28->scale.y, 1.0f / temp_r28->scale.z); + PSMTXConcat(temp_r28->matrix, sp60, spC0); spC0[0][3] = spC0[1][3] = spC0[2][3] = 0.0f; - MTXInvXpose(spC0, sp90); + PSMTXInvXpose(spC0, sp90); if (sp8 == 10000) { - MTXIdentity(spC0); - } - else { + PSMTXIdentity(spC0); + } else { VECCrossProduct(&sp3C, &sp54, &sp48); temp_f28 = acosf(VECDotProduct(&sp54, &sp3C)); - MTXRotAxisRad(spC0, &sp48, temp_f28); + PSMTXRotAxisRad(spC0, &sp48, temp_f28); } - MTXConcat(spC0, sp90, sp60); - MTXTrans(spC0, 0.5f, 0.5f, 0.0f); - MTXConcat(spC0, sp60, hiliteMtx); + PSMTXConcat(spC0, sp90, sp60); + PSMTXTrans(spC0, 0.5f, 0.5f, 0.0f); + PSMTXConcat(spC0, sp60, hiliteMtx); } } temp_r24 = temp_r28->object->data.face; @@ -2304,7 +2175,7 @@ void Hu3DDrawPost(void) drawCnt = 0; shadingBak = -1; vtxModeBak = -1; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; if (shadowModelDrawF == 0) { for (i = 0; i < temp_r24->count;) { FaceDraw(temp_r28, var_r27); @@ -2312,15 +2183,13 @@ void Hu3DDrawPost(void) totalPolyCnt += DrawData[drawCnt - 1].polyCnt; i++; var_r27++; - } - else { + } else { totalPolyCnt += DrawData[drawCnt - 1].polyCnt * ((var_r27->type & 7) == 3 ? 2 : 1); i += DrawData[drawCnt - 1].polyCnt; var_r27 += DrawData[drawCnt - 1].polyCnt; } } - } - else { + } else { sp2C.a = 0xFF; GXSetChanAmbColor(GX_COLOR0A0, sp2C); GXSetChanMatColor(GX_COLOR0A0, sp2C); @@ -2332,8 +2201,7 @@ void Hu3DDrawPost(void) if (var_r27->type == 4) { i++; var_r27++; - } - else { + } else { i += DrawData[drawCnt - 1].polyCnt; var_r27 += DrawData[drawCnt - 1].polyCnt; } @@ -2351,8 +2219,7 @@ void Hu3DDrawPost(void) (void)var_r19; // required to match } -static void ObjDraw(HsfDrawObject *arg0) -{ +static void ObjDraw(HsfDrawObject *arg0) { Vec sp44; Vec sp38; Vec sp2C; @@ -2383,29 +2250,28 @@ static void ObjDraw(HsfDrawObject *arg0) DLBufStartP = Hu3DObjInfoP->dlBuf; DrawData = Hu3DObjInfoP->drawData; GXLoadPosMtxImm(arg0->matrix, GX_PNMTX0); - MTXInvXpose(arg0->matrix, sp110); + PSMTXInvXpose(arg0->matrix, sp110); GXLoadNrmMtxImm(sp110, 0); GXInvalidateVtxCache(); if (Hu3DShadowF != 0 && Hu3DShadowCamBit != 0 && (Hu3DObjInfoP->flags & 8)) { - MTXInverse(Hu3DCameraMtx, spE0); - MTXConcat(spE0, arg0->matrix, sp110); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp140); - MTXConcat(sp140, sp110, sp110); + PSMTXInverse(Hu3DCameraMtx, spE0); + PSMTXConcat(spE0, arg0->matrix, sp110); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp140); + PSMTXConcat(sp140, sp110, sp110); GXLoadTexMtxImm(sp110, GX_TEXMTX9, GX_MTX3x4); var_r22 = 1; - } - else { + } else { var_r22 = 0; } if (arg0->model->unk_02 != 0) { if (var_r22 == 0) { - MTXInverse(Hu3DCameraMtx, spE0); + PSMTXInverse(Hu3DCameraMtx, spE0); } for (i = 0, var_r23 = 1; i < 4; i++, var_r23 <<= 1) { if (var_r23 & arg0->model->unk_02) { - MTXConcat(spE0, arg0->matrix, sp110); - MTXConcat(Hu3DProjection[i].unk_68, Hu3DProjection[i].unk_38, sp140); - MTXConcat(sp140, sp110, sp110); + PSMTXConcat(spE0, arg0->matrix, sp110); + PSMTXConcat(Hu3DProjection[i].unk_68, Hu3DProjection[i].unk_38, sp140); + PSMTXConcat(sp140, sp110, sp110); GXLoadTexMtxImm(sp110, texMtxTbl[i + 3], GX_MTX3x4); } } @@ -2415,34 +2281,32 @@ static void ObjDraw(HsfDrawObject *arg0) temp_r24 = &Hu3DGlobalLight[arg0->model->unk_03]; sp20 = temp_r24->unk_28; if (temp_r24->unk_00 & 0x8000) { - MTXMultVecSR(Hu3DCameraMtx, &sp20, &sp20); + PSMTXMultVecSR(Hu3DCameraMtx, &sp20, &sp20); } temp_f30 = VECDotProduct(&sp20, &sp44); temp_f30 *= 10000.0f; OSf32tos16(&temp_f30, &var_r21); if (var_r21 == -10000) { - MTXScale(hiliteMtx, 0.0f, 0.0f, 0.0f); - } - else { + PSMTXScale(hiliteMtx, 0.0f, 0.0f, 0.0f); + } else { C_VECHalfAngle(&sp20, &sp44, &sp2C); sp2C.x = -sp2C.x; sp2C.y = -sp2C.y; sp2C.z = -sp2C.z; - MTXScale(sp50, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); - MTXConcat(arg0->matrix, sp50, spB0); + PSMTXScale(sp50, 1.0f / arg0->scale.x, 1.0f / arg0->scale.y, 1.0f / arg0->scale.z); + PSMTXConcat(arg0->matrix, sp50, spB0); spB0[0][3] = spB0[1][3] = spB0[2][3] = 0.0f; - MTXInvXpose(spB0, sp80); + PSMTXInvXpose(spB0, sp80); if (var_r21 == 10000) { - MTXIdentity(spB0); - } - else { + PSMTXIdentity(spB0); + } else { VECCrossProduct(&sp2C, &sp44, &sp38); temp_f29 = acosf(VECDotProduct(&sp44, &sp2C)); - MTXRotAxisRad(spB0, &sp38, temp_f29); + PSMTXRotAxisRad(spB0, &sp38, temp_f29); } - MTXConcat(spB0, sp80, sp50); - MTXTrans(spB0, 0.5f, 0.5f, 0.0f); - MTXConcat(spB0, sp50, hiliteMtx); + PSMTXConcat(spB0, sp80, sp50); + PSMTXTrans(spB0, 0.5f, 0.5f, 0.0f); + PSMTXConcat(spB0, sp50, hiliteMtx); } } temp_r26 = arg0->object->data.face; @@ -2450,7 +2314,7 @@ static void ObjDraw(HsfDrawObject *arg0) drawCnt = 0; shadingBak = -1; vtxModeBak = -1; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; if (shadowModelDrawF == 0) { for (i = 0; i < temp_r26->count;) { FaceDraw(arg0, var_r27); @@ -2458,13 +2322,11 @@ static void ObjDraw(HsfDrawObject *arg0) totalPolyCnt += DrawData[drawCnt - 1].polyCnt; i++; var_r27++; - } - else { + } else { temp_r25 = &DrawData[drawCnt - 1]; if ((var_r27->type & 7) == 3) { var_r20 = 2; - } - else { + } else { var_r20 = 1; } totalPolyCnt += temp_r25->polyCnt * var_r20; @@ -2472,8 +2334,7 @@ static void ObjDraw(HsfDrawObject *arg0) var_r27 += temp_r25->polyCnt; } } - } - else { + } else { sp1C.a = 0xFF; GXSetChanAmbColor(GX_COLOR0A0, sp1C); GXSetChanMatColor(GX_COLOR0A0, sp1C); @@ -2485,8 +2346,7 @@ static void ObjDraw(HsfDrawObject *arg0) if (var_r27->type == 4) { i++; var_r27++; - } - else { + } else { i += DrawData[drawCnt - 1].polyCnt; var_r27 += DrawData[drawCnt - 1].polyCnt; } @@ -2500,8 +2360,7 @@ static void ObjDraw(HsfDrawObject *arg0) } } -void MakeDisplayList(s16 arg0, uintptr_t arg1) -{ +void MakeDisplayList(s16 arg0, u32 arg1) { HsfData *temp_r31; ModelData *var_r30; @@ -2517,8 +2376,7 @@ void MakeDisplayList(s16 arg0, uintptr_t arg1) } } -static void MDObjCall(HsfData *arg0, HsfObject *arg1) -{ +static void MDObjCall(HsfData *arg0, HsfObject *arg1) { s16 i; switch (arg1->type) { @@ -2539,8 +2397,7 @@ static void MDObjCall(HsfData *arg0, HsfObject *arg1) } } -static void MDObjMesh(HsfData *arg0, HsfObject *arg1) -{ +static void MDObjMesh(HsfData *arg0, HsfObject *arg1) { HsfBuffer *temp_r29; HsfFace *var_r28; s16 i; @@ -2549,7 +2406,7 @@ static void MDObjMesh(HsfData *arg0, HsfObject *arg1) DLFirstF = 0; drawCnt = matChgCnt = triCnt = quadCnt = 0; faceNumBuf[0] = 0; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; polyTypeBak = 0xFF; DLTotalNum = 0; var_r28 = temp_r29->data; @@ -2563,7 +2420,7 @@ static void MDObjMesh(HsfData *arg0, HsfObject *arg1) DLBufP = DLBufStartP = HuMemDirectMallocNum(HEAP_DATA, DLTotalNum, mallocNo); DCInvalidateRange(DLBufStartP, DLTotalNum); DLFirstF = 0; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; polyTypeBak = 0xFF; totalSize = drawCnt = 0; var_r28 = temp_r29->data; @@ -2593,8 +2450,7 @@ static void MDObjMesh(HsfData *arg0, HsfObject *arg1) } } -HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1) -{ +HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1) { HsfConstData *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfConstData), arg1); @@ -2605,8 +2461,7 @@ HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1) return temp_r3; } -static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) -{ +static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) { HsfMaterial *temp_r30; s16 *var_r24; s16 var_r26; @@ -2621,13 +2476,12 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) if (temp_r30 != materialBak || polyTypeBak != (arg1->type & 7) || (arg1->type & 7) == 4) { polyTypeBak = arg1->type & 7; materialBak = temp_r30; - DrawData[drawCnt].dlOfs = (uintptr_t)DLBufP - (uintptr_t)DLBufStartP; + DrawData[drawCnt].dlOfs = (u32) DLBufP - (u32) DLBufStartP; GXBeginDisplayList(DLBufP, 0x20000); GXResetWriteGatherPipe(); if (temp_r30->numAttrs == 0) { var_r25 = 0; - } - else { + } else { var_r25 = 1; for (var_r27 = 0; var_r27 < temp_r30->numAttrs; var_r27++) { if (arg0->data.attribute[temp_r30->attrs[var_r27]].unk14 != 0.0) { @@ -2672,14 +2526,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[0][1]); - } - else { + } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2689,14 +2542,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[2][1]); - } - else { + } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2706,14 +2558,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[1][1]); - } - else { + } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2729,14 +2580,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[0][1]); - } - else { + } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2746,14 +2596,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[2][1]); - } - else { + } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2763,14 +2612,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[3][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[3][1]); - } - else { + } else { MakeNBT(arg0, arg1, 3, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[3][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2780,14 +2628,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[1][1]); - } - else { + } else { MakeNBT(arg0, arg1, 1, 3); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2802,14 +2649,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[0][1]); - } - else { + } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2819,14 +2665,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[2][1]); - } - else { + } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2836,14 +2681,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { GXNormal1x16(arg1->indices[1][1]); - } - else { + } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2855,14 +2699,13 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) GXPosition1x16(var_r24[0]); if (var_r26 == -1) { GXNormal1x16(var_r24[1]); - } - else { + } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = var_r24[2]; GXColor1x16(temp_r28); - if (((GXColor *)arg0->data.color->data)[temp_r28].a != 0xFF) { + if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } @@ -2878,16 +2721,15 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) DrawData[drawCnt].polyCnt = faceCnt; totalSize += temp_r3; drawCnt++; - DLBufP = (u8 *)DLBufP + temp_r3; + DLBufP = (u8*) DLBufP + temp_r3; } } -static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) -{ +static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { Vec sp10; Vec *temp_r29; Vec *temp_r31; - s8(*temp_r28)[3]; + s8 (*temp_r28)[3]; s16 temp_r25; s16 temp_r24; s16 temp_r27; @@ -2901,8 +2743,7 @@ static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) sp10.x = temp_r29[temp_r27].x; sp10.y = temp_r29[temp_r27].y; sp10.z = temp_r29[temp_r27].z; - } - else { + } else { temp_r28 = arg0->data.normal->data; sp10.x = temp_r28[temp_r27][0]; sp10.y = temp_r28[temp_r27][1]; @@ -2919,12 +2760,11 @@ static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } -static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) -{ +static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { Vec sp10; Vec *temp_r30; Vec *spC; - s8(*temp_r29)[3]; + s8 (*temp_r29)[3]; s16 temp_r28; spC = arg0->data.vertex->data; @@ -2934,8 +2774,7 @@ static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) sp10.x = temp_r30[temp_r28].x; sp10.y = temp_r30[temp_r28].y; sp10.z = temp_r30[temp_r28].z; - } - else { + } else { temp_r29 = arg0->data.normal->data; sp10.x = temp_r29[temp_r28][0]; sp10.y = temp_r29[temp_r28][1]; @@ -2947,8 +2786,7 @@ static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } -static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) -{ +static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) { HsfMaterial *temp_r30; s16 i; @@ -2963,8 +2801,7 @@ static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) drawCnt++; faceNumBuf[drawCnt] = 0; DLTotalNum = ((DLTotalNum + 0x20) & ~0x1F) + 0x20; - } - else { + } else { DLFirstF = 1; } if (temp_r30->numAttrs != 0) { @@ -3008,8 +2845,7 @@ static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) } } -void mtxTransCat(Mtx arg0, float arg1, float arg2, float arg3) -{ +void mtxTransCat(Mtx arg0, float arg1, float arg2, float arg3) { if (arg1 != 0.0f || arg2 != 0.0f || arg3 != 0.0f) { arg0[0][3] += arg1; arg0[1][3] += arg2; @@ -3017,47 +2853,43 @@ void mtxTransCat(Mtx arg0, float arg1, float arg2, float arg3) } } -void mtxRotCat(Mtx arg0, float arg1, float arg2, float arg3) -{ +void mtxRotCat(Mtx arg0, float arg1, float arg2, float arg3) { Mtx sp8; if (arg1 != 0.0f) { - MTXRotRad(sp8, 'X', MTXDegToRad(arg1)); - MTXConcat(sp8, arg0, arg0); + PSMTXRotRad(sp8, 'X', MTXDegToRad(arg1)); + PSMTXConcat(sp8, arg0, arg0); } if (arg2 != 0.0f) { - MTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); - MTXConcat(sp8, arg0, arg0); + PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); + PSMTXConcat(sp8, arg0, arg0); } if (arg3 != 0.0f) { - MTXRotRad(sp8, 'Z', MTXDegToRad(arg3)); - MTXConcat(sp8, arg0, arg0); + PSMTXRotRad(sp8, 'Z', MTXDegToRad(arg3)); + PSMTXConcat(sp8, arg0, arg0); } } -void mtxRot(Mtx arg0, float arg1, float arg2, float arg3) -{ +void mtxRot(Mtx arg0, float arg1, float arg2, float arg3) { Mtx sp38; Mtx sp8; if (arg1 != 0.0f) { - MTXRotRad(arg0, 'X', MTXDegToRad(arg1)); - } - else { - MTXIdentity(arg0); + PSMTXRotRad(arg0, 'X', MTXDegToRad(arg1)); + } else { + PSMTXIdentity(arg0); } if (arg2 != 0.0f) { - MTXRotRad(sp38, 'Y', MTXDegToRad(arg2)); - MTXConcat(sp38, arg0, arg0); + PSMTXRotRad(sp38, 'Y', MTXDegToRad(arg2)); + PSMTXConcat(sp38, arg0, arg0); } if (arg3 != 0.0f) { - MTXRotRad(sp8, 'Z', MTXDegToRad(arg3)); - MTXConcat(sp8, arg0, arg0); + PSMTXRotRad(sp8, 'Z', MTXDegToRad(arg3)); + PSMTXConcat(sp8, arg0, arg0); } } -void mtxScaleCat(Mtx arg0, float arg1, float arg2, float arg3) -{ +void mtxScaleCat(Mtx arg0, float arg1, float arg2, float arg3) { arg0[0][0] *= arg1; arg0[1][0] *= arg1; arg0[2][0] *= arg1; @@ -3069,8 +2901,7 @@ void mtxScaleCat(Mtx arg0, float arg1, float arg2, float arg3) arg0[2][2] *= arg3; } -s16 HmfInverseMtxF3X3(Mtx arg0, Mtx arg1) -{ +s16 HmfInverseMtxF3X3(Mtx arg0, Mtx arg1) { float temp_f30; float temp_f29; float temp_f28; @@ -3097,8 +2928,7 @@ s16 HmfInverseMtxF3X3(Mtx arg0, Mtx arg1) return 1; } -static inline void SetDefLightInlineFunc(GXLightObj *arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9) -{ +static inline void SetDefLightInlineFunc(GXLightObj *arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9) { GXColor spE; spE.r = arg1; @@ -3117,8 +2947,7 @@ static inline void SetDefLightInlineFunc(GXLightObj *arg0, u8 arg1, u8 arg2, u8 GXSetChanMatColor(GX_COLOR0A0, spE); } -void SetDefLight(Vec *arg0, Vec *arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9, u8 argA) -{ +void SetDefLight(Vec *arg0, Vec *arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9, u8 argA) { GXLightObj sp20; GXInitLightAttn(&sp20, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); @@ -3128,8 +2957,7 @@ void SetDefLight(Vec *arg0, Vec *arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, u8 ar SetDefLightInlineFunc(&sp20, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA); } -void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2) -{ +void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2) { Mtx spC; Hu3DModelObjMtxGet(arg0, arg1, spC); @@ -3142,8 +2970,7 @@ void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2) } } -void Hu3DModelObjMtxGet(s16 arg0, char *arg1, Mtx arg2) -{ +void Hu3DModelObjMtxGet(s16 arg0, char *arg1, Mtx arg2) { ModelData *temp_r31; HsfData *temp_r30; Mtx spA0; @@ -3153,8 +2980,8 @@ void Hu3DModelObjMtxGet(s16 arg0, char *arg1, Mtx arg2) temp_r31 = &Hu3DData[arg0]; temp_r30 = temp_r31->hsfData; mtxRot(sp70, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - MTXScale(spA0, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); - MTXConcat(sp70, spA0, MTXBuf[0]); + PSMTXScale(spA0, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + PSMTXConcat(sp70, spA0, MTXBuf[0]); mtxTransCat(MTXBuf[0], temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); PGMaxPos.x = PGMaxPos.y = PGMaxPos.z = -1000000.0f; PGMinPos.x = PGMinPos.y = PGMinPos.z = 1000000.0f; @@ -3163,24 +2990,22 @@ void Hu3DModelObjMtxGet(s16 arg0, char *arg1, Mtx arg2) PGFinishF = 0; hookIdx = -1; PGName = HuMemDirectMallocNum(HEAP_SYSTEM, 0x200, MEMORY_DEFAULT_NUM); - strcpy((char *)PGName, MakeObjectName(arg1)); + strcpy((char*) PGName, MakeObjectName(arg1)); if (temp_r31->unk_08 != -1) { attachMotionF = 1; - } - else { + } else { attachMotionF = 0; } PGObjCall(temp_r31, temp_r30->root); - MTXCopy(MTXBuf[MTXIdx - 1], arg2); + PSMTXCopy(MTXBuf[MTXIdx - 1], arg2); if (PGFinishF == 0 && *PGName != 0) { OSReport("Error: Not Found %s for ObjPosGet\n", arg1); - MTXIdentity(MTXBuf[MTXIdx]); + PSMTXIdentity(MTXBuf[MTXIdx]); } HuMemDirectFree(PGName); } -void PGObjCall(ModelData *arg0, HsfObject *arg1) -{ +void PGObjCall(ModelData *arg0, HsfObject *arg1) { switch (arg1->type) { case 0: case 2: @@ -3197,8 +3022,7 @@ void PGObjCall(ModelData *arg0, HsfObject *arg1) } } -void PGObjCalc(ModelData *arg0, HsfObject *arg1) -{ +void PGObjCalc(ModelData *arg0, HsfObject *arg1) { Vec sp8; s16 temp_r22; s16 var_r24; @@ -3214,23 +3038,21 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) if (CancelTRXF == 0) { if (attachMotionF == 0) { var_r30 = &arg1->data.base; - } - else { + } else { var_r30 = &arg1->data.curr; } mtxRot(spA4, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - MTXScale(spD4, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - MTXConcat(spA4, spD4, spD4); + PSMTXScale(spD4, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + PSMTXConcat(spA4, spD4, spD4); mtxTransCat(spD4, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], spD4, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], spD4, MTXBuf[MTXIdx]); MTXIdx++; var_r24 = 1; - } - else { + } else { CancelTRXF = 0; var_r24 = 0; } - if (strcmp((char *)PGName, arg1->name) == 0) { + if (strcmp((char*) PGName, arg1->name) == 0) { PGFinishF = 1; return; } @@ -3241,17 +3063,16 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) var_r27 = attachMotionF; if (temp_r31->unk_08 != -1) { attachMotionF = 1; - } - else { + } else { attachMotionF = 0; } temp_r22 = hookIdx; hookIdx = temp_r28->hook; - MTXScale(spD4, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + PSMTXScale(spD4, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); mtxRotCat(spD4, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); mtxTransCat(spD4, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); - MTXConcat(spD4, temp_r31->unk_F0, spD4); - MTXConcat(MTXBuf[MTXIdx - 1], spD4, MTXBuf[MTXIdx]); + PSMTXConcat(spD4, temp_r31->unk_F0, spD4); + PSMTXConcat(MTXBuf[MTXIdx - 1], spD4, MTXBuf[MTXIdx]); MTXIdx++; PGObjCall(temp_r31, temp_r31->hsfData->root); MTXIdx--; @@ -3261,7 +3082,7 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) } if (*PGName == 0 && arg1->type == 2) { var_r23 = arg1; - MTXMultVec(MTXBuf[MTXIdx - 1], (Vec *)&var_r23->data.mesh.min, &sp8); + PSMTXMultVec(MTXBuf[MTXIdx - 1], (Vec*) &var_r23->data.mesh.min, &sp8); if (sp8.x < PGMinPos.x) { PGMinPos.x = sp8.x; } @@ -3280,7 +3101,7 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) if (sp8.z > PGMaxPos.z) { PGMaxPos.z = sp8.z; } - MTXMultVec(MTXBuf[MTXIdx - 1], (Vec *)&var_r23->data.mesh.max, &sp8); + PSMTXMultVec(MTXBuf[MTXIdx - 1], (Vec*) &var_r23->data.mesh.max, &sp8); if (sp8.x < PGMinPos.x) { PGMinPos.x = sp8.x; } @@ -3311,23 +3132,21 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) } } -void PGObjReplica(ModelData *arg0, HsfObject *arg1) -{ +void PGObjReplica(ModelData *arg0, HsfObject *arg1) { HsfTransform *var_r31; Mtx sp1B8; Mtx sp188; if (attachMotionF == 0) { var_r31 = &arg1->data.base; - } - else { + } else { var_r31 = &arg1->data.curr; } mtxRot(sp188, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - MTXScale(sp1B8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - MTXConcat(sp188, sp1B8, sp1B8); + PSMTXScale(sp1B8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXConcat(sp188, sp1B8, sp1B8); mtxTransCat(sp1B8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(MTXBuf[MTXIdx - 1], sp1B8, MTXBuf[MTXIdx]); + PSMTXConcat(MTXBuf[MTXIdx - 1], sp1B8, MTXBuf[MTXIdx]); MTXIdx++; CancelTRXF = 1; PGObjCall(arg0, arg1->data.replica); @@ -3337,13 +3156,13 @@ void PGObjReplica(ModelData *arg0, HsfObject *arg1) } } -HsfObject *Hu3DObjDuplicate(HsfData *arg0, uintptr_t arg1) -{ +HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1) { HsfObject *temp_r27; HsfObject *var_r30; HsfObject *var_r31; s16 i; s16 j; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, arg0->objectCnt * sizeof(HsfObject), arg1); temp_r27 = var_r31; var_r30 = arg0->object; @@ -3351,7 +3170,7 @@ HsfObject *Hu3DObjDuplicate(HsfData *arg0, uintptr_t arg1) for (i = 0; i < arg0->objectCnt; i++, var_r31++, var_r30++) { if (var_r31->type != 8 && var_r31->type != 7) { if (var_r31->data.parent) { - var_r31->data.parent = (HsfObject *)((u8 *)temp_r27 + ((uintptr_t)var_r30->data.parent - (uintptr_t)arg0->object)); + var_r31->data.parent = (HsfObject*) ((u8*) temp_r27 + ((u32) var_r30->data.parent - (u32) arg0->object)); } var_r31->data.children = HuMemDirectMallocNum(HEAP_DATA, var_r30->data.childrenCount * 4, arg1); if (var_r30->constData) { @@ -3359,31 +3178,29 @@ HsfObject *Hu3DObjDuplicate(HsfData *arg0, uintptr_t arg1) memcpy(var_r31->constData, var_r30->constData, sizeof(HsfConstData)); } for (j = 0; j < var_r30->data.childrenCount; j++) { - var_r31->data.children[j] = (HsfObject *)((u8 *)temp_r27 + ((uintptr_t)var_r30->data.children[j] - (uintptr_t)arg0->object)); + var_r31->data.children[j] = (HsfObject*) ((u8*) temp_r27 + ((u32) var_r30->data.children[j] - (u32) arg0->object)); } } } return temp_r27; } -void Hu3DModelObjDrawInit(void) -{ +void Hu3DModelObjDrawInit(void) { s16 i; GXSetCullMode(GX_CULL_BACK); for (i = 0; i < 8; i++) { - BmpPtrBak[i] = (HsfAttribute *)-1; + BmpPtrBak[i] = (HsfAttribute*) -1; } CancelTRXF = 0; hookIdx = -1; shadingBak = -1; vtxModeBak = -1; - materialBak = (HsfMaterial *)-1; + materialBak = (HsfMaterial*) -1; attachMotionF = 0; } -void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2) -{ +void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2) { HsfDrawObject sp14; HsfConstData *sp10; HsfObject *temp_r3; @@ -3391,7 +3208,7 @@ void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2) sp14.model = &Hu3DData[arg0]; sp14.object = temp_r3 = Hu3DModelObjPtrGet(arg0, arg1); sp10 = temp_r3->constData; - MTXCopy(arg2, sp14.matrix); + PSMTXCopy(arg2, sp14.matrix); sp14.scale.x = sp14.scale.y = sp14.scale.z = 1.0f; ObjDraw(&sp14); } diff --git a/src/game/hsfex.c b/src/game/hsfex.c index beac8a84..490e19e3 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -2,11 +2,9 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/disp.h" -#include "game/process.h" #include "ext_math.h" - #define DISP_HALF_W (HU_DISP_WIDTH/2.0f) #define DISP_HALF_H (HU_DISP_HEIGHT/2.0f) @@ -61,7 +59,7 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5 temp_r23 = &Hu3DData[arg0]; temp_r19 = &Hu3DMotion[temp_r23->unk_08]; temp_r22 = temp_r23->hsfData; - temp_r18 = temp_r19->hsfData; + temp_r18 = temp_r19->unk_04; temp_r26 = temp_r18->motion; for (var_r25 = 0; var_r25 < HU3D_CAM_MAX; var_r25++) { if (arg1 & (1 << var_r25)) { @@ -443,8 +441,8 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) { arg2->y = -(temp_f27 - 0.5) * temp_f31; arg2->z = -arg0->z; C_MTXLookAt(spC, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - MTXInverse(spC, spC); - MTXMultVec(spC, arg2, arg2); + PSMTXInverse(spC, spC); + PSMTXMultVec(spC, arg2, arg2); } void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { @@ -462,7 +460,7 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - MTXMultVec(sp1C, arg0, &sp10); + PSMTXMultVec(sp1C, arg0, &sp10); temp_f31 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z * HU_DISP_ASPECT; temp_f30 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z; arg2->x = DISP_HALF_W + sp10.x * (DISP_HALF_W / -temp_f31); diff --git a/src/game/hsfload.c b/src/game/hsfload.c index 1d94cd3a..d5db2471 100644 --- a/src/game/hsfload.c +++ b/src/game/hsfload.c @@ -1,13 +1,6 @@ #include "game/hsfload.h" -#include "game/EnvelopeExec.h" -#include "ctype.h" #include "string.h" - - -#ifdef TARGET_PC -#include "game/memory.h" -#include "port/byteswap.h" -#endif +#include "ctype.h" #define AS_S16(field) (*((s16 *)&(field))) #define AS_U16(field) (*((u16 *)&(field))) @@ -29,15 +22,6 @@ HsfBuffer *vtxtop; HsfCluster *ClusterTop; HsfAttribute *AttributeTop; HsfMaterial *MaterialTop; -#ifdef TARGET_PC -HsfBuffer *NormalTop; -HsfBuffer *StTop; -HsfBuffer *ColorTop; -HsfBuffer *FaceTop; -HsfCenv *CenvTop; -HsfPart *PartTop; -HsfBitmap *BitmapTop; -#endif static void FileLoad(void *data); static HsfData *SetHsfModel(void); @@ -91,9 +75,7 @@ HsfData *LoadHSF(void *data) NormalLoad(); STLoad(); FaceLoad(); -#if __MWERKS__ ObjectLoad(); -#endif CenvLoad(); SkeletonLoad(); PartLoad(); @@ -102,10 +84,6 @@ HsfData *LoadHSF(void *data) MapAttrLoad(); MotionLoad(); MatrixLoad(); -#if TARGET_PC - // to properly set pointers - ObjectLoad(); -#endif hsf = SetHsfModel(); InitEnvelope(hsf); objtop = NULL; @@ -136,43 +114,14 @@ void ClusterAdjustObject(HsfData *model, HsfData *src_model) static void FileLoad(void *data) { -#ifdef TARGET_PC - s32 i; -#endif fileptr = data; memcpy(&head, fileptr, sizeof(HsfHeader)); memset(&Model, 0, sizeof(HsfData)); -#ifdef TARGET_PC - byteswap_hsfheader(&head); - NSymIndex = HuMemDirectMallocNum(HEAP_DATA, sizeof(void*) * head.symbol.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.symbol.count; i++) { - u32 *file_symbol_real = (u32 *)((uintptr_t)fileptr + head.symbol.ofs); - byteswap_u32(&file_symbol_real[i]); - NSymIndex[i] = (void *)file_symbol_real[i]; - } - StringTable = (char *)((uintptr_t)fileptr+head.string.ofs); - ClusterTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfCluster) * head.cluster.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.cluster.count; i++) { - HsfCluster32b *file_cluster_real = (HsfCluster32b *)((uintptr_t)fileptr + head.cluster.ofs); - byteswap_hsfcluster(&file_cluster_real[i], &ClusterTop[i]); - } - AttributeTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfAttribute) * head.attribute.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.attribute.count; i++) { - HsfAttribute32b *file_attribute_real = (HsfAttribute32b *)((uintptr_t)fileptr + head.attribute.ofs); - byteswap_hsfattribute(&file_attribute_real[i], &AttributeTop[i]); - } - MaterialTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfMaterial) * head.material.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.material.count; i++) { - HsfMaterial32b *file_material_real = (HsfMaterial32b *)((uintptr_t)fileptr + head.material.ofs); - byteswap_hsfmaterial(&file_material_real[i], &MaterialTop[i]); - } -#else - NSymIndex = (void **)((uintptr_t)fileptr+head.symbol.ofs); - StringTable = (char *)((uintptr_t)fileptr+head.string.ofs); - ClusterTop = (HsfCluster *)((uintptr_t)fileptr+head.cluster.ofs); - AttributeTop = (HsfAttribute *)((uintptr_t)fileptr + head.attribute.ofs); - MaterialTop = (HsfMaterial *)((uintptr_t)fileptr + head.material.ofs); -#endif + NSymIndex = (void **)((u32)fileptr+head.symbol.ofs); + StringTable = (char *)((u32)fileptr+head.string.ofs); + ClusterTop = (HsfCluster *)((u32)fileptr+head.cluster.ofs); + AttributeTop = (HsfAttribute *)((u32)fileptr+head.attribute.ofs); + MaterialTop = (HsfMaterial *)((u32)fileptr+head.material.ofs); } static HsfData *SetHsfModel(void) @@ -217,9 +166,6 @@ static HsfData *SetHsfModel(void) data->shapeCnt = Model.shapeCnt; data->mapAttr = Model.mapAttr; data->mapAttrCnt = Model.mapAttrCnt; -#ifdef TARGET_PC - data->symbol = NSymIndex; -#endif return data; } @@ -240,11 +186,7 @@ static void MaterialLoad(void) s32 i; s32 j; if(head.material.count) { -#ifdef TARGET_PC - HsfMaterial *file_mat = MaterialTop; -#else - HsfMaterial *file_mat = (HsfMaterial *)((uintptr_t)fileptr+head.material.ofs); -#endif + HsfMaterial *file_mat = (HsfMaterial *)((u32)fileptr+head.material.ofs); HsfMaterial *curr_mat; HsfMaterial *new_mat; for(i=0; iname = SetName((u32 *)&curr_mat->name); @@ -299,11 +237,7 @@ static void AttributeLoad(void) HsfAttribute *temp_attr; s32 i; if(head.attribute.count) { -#ifdef TARGET_PC - temp_attr = file_attr = AttributeTop; -#else temp_attr = file_attr = (HsfAttribute *)((u32)fileptr+head.attribute.ofs); -#endif new_attr = temp_attr; Model.attribute = new_attr; Model.attributeCnt = head.attribute.count; @@ -320,18 +254,10 @@ static void AttributeLoad(void) static void SceneLoad(void) { -#ifdef TARGET_PC - s32 i; -#endif HsfScene *file_scene; HsfScene *new_scene; if(head.scene.count) { - file_scene = (HsfScene *)((uintptr_t)fileptr+head.scene.ofs); -#ifdef TARGET_PC - for (i = 0; i < head.scene.count; i++) { - byteswap_hsfscene(&file_scene[i]); - } -#endif + file_scene = (HsfScene *)((u32)fileptr+head.scene.ofs); new_scene = file_scene; new_scene->end = file_scene->end; new_scene->start = file_scene->start; @@ -350,30 +276,18 @@ static void ColorLoad(void) HsfBuffer *temp_color; if(head.color.count) { -#ifdef TARGET_PC - HsfBuffer32b * file_color_real = (HsfBuffer32b *)((uintptr_t)fileptr + head.color.ofs); - temp_color = file_color = ColorTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBuffer) * head.color.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.color.count; i++) { - byteswap_hsfbuffer(&file_color_real[i], &file_color[i]); - } -#else temp_color = file_color = (HsfBuffer *)((u32)fileptr+head.color.ofs); data = &file_color[head.color.count]; for(i=0; idata; new_color->name = SetName((u32 *)&file_color->name); - new_color->data = (void *)((uintptr_t)data+(uintptr_t)color_data); + new_color->data = (void *)((u32)data+(u32)color_data); } } } @@ -388,40 +302,25 @@ static void VertexLoad(void) void *temp_data; if(head.vertex.count) { -#ifdef TARGET_PC - HsfBuffer32b *file_vertex_real = (HsfBuffer32b *)((uintptr_t)fileptr + head.vertex.ofs); - vtxtop = file_vertex = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBuffer) * head.vertex.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.vertex.count; i++) { - byteswap_hsfbuffer(&file_vertex_real[i], &file_vertex[i]); - } -#else vtxtop = file_vertex = (HsfBuffer *)((u32)fileptr+head.vertex.ofs); data = (void *)&file_vertex[head.vertex.count]; for(i=0; icount; j++) { - data_elem = (HsfVector3f *)(((uintptr_t)data)+((uintptr_t)file_vertex->data)+(j*sizeof(HsfVector3f))); + data_elem = (HsfVector3f *)(((u32)data)+((u32)file_vertex->data)+(j*sizeof(HsfVector3f))); } } -#endif new_vertex = vtxtop; Model.vertex = new_vertex; Model.vertexCnt = head.vertex.count; -#ifdef TARGET_PC - VertexDataTop = data = (void *)&file_vertex_real[head.vertex.count]; -#else file_vertex = (HsfBuffer *)((u32)fileptr+head.vertex.ofs); VertexDataTop = data = (void *)&file_vertex[head.vertex.count]; -#endif for(i=0; idata; new_vertex->count = file_vertex->count; new_vertex->name = SetName((u32 *)&file_vertex->name); - new_vertex->data = (void *)((uintptr_t)data + (uintptr_t)temp_data); + new_vertex->data = (void *)((u32)data+(u32)temp_data); for(j=0; jcount; j++) { - data_elem = (HsfVector3f *)((uintptr_t)data + (uintptr_t)temp_data + (j * sizeof(HsfVector3f))); -#ifdef TARGET_PC - byteswap_hsfvec3f(data_elem); -#endif + data_elem = (HsfVector3f *)(((u32)data)+((u32)temp_data)+(j*sizeof(HsfVector3f))); ((HsfVector3f *)new_vertex->data)[j].x = data_elem->x; ((HsfVector3f *)new_vertex->data)[j].y = data_elem->y; ((HsfVector3f *)new_vertex->data)[j].z = data_elem->z; @@ -442,38 +341,18 @@ static void NormalLoad(void) if(head.normal.count) { s32 cenv_count = head.cenv.count; -#ifdef TARGET_PC - HsfBuffer32b *file_normal_real = (HsfBuffer32b *)((uintptr_t)fileptr + head.normal.ofs); - temp_normal = file_normal = NormalTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBuffer) * head.normal.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.normal.count; i++) { - byteswap_hsfbuffer(&file_normal_real[i], &file_normal[i]); - } -#else temp_normal = file_normal = (HsfBuffer *)((u32)fileptr+head.normal.ofs); data = (void *)&file_normal[head.normal.count]; -#endif new_normal = temp_normal; Model.normal = new_normal; Model.normalCnt = head.normal.count; -#ifdef TARGET_PC - NormalDataTop = data = (void *)&file_normal_real[head.normal.count]; -#else file_normal = (HsfBuffer *)((u32)fileptr+head.normal.ofs); NormalDataTop = data = (void *)&file_normal[head.normal.count]; -#endif for(i=0; idata; new_normal->count = file_normal->count; new_normal->name = SetName((u32 *)&file_normal->name); - new_normal->data = (void *)((uintptr_t)data+(uintptr_t)temp_data); -#ifdef TARGET_PC - if (cenv_count != 0) { - for (j = 0; j < new_normal->count; j++) { - HsfVector3f *normalData = &((HsfVector3f *)new_normal->data)[j]; - byteswap_hsfvec3f(normalData); - } - } -#endif + new_normal->data = (void *)((u32)data+(u32)temp_data); } } } @@ -489,13 +368,6 @@ static void STLoad(void) void *temp_data; if(head.st.count) { -#ifdef TARGET_PC - HsfBuffer32b *file_st_real = (HsfBuffer32b *)((uintptr_t)fileptr + head.st.ofs); - temp_st = file_st = StTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBuffer) * head.st.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.st.count; i++) { - byteswap_hsfbuffer(&file_st_real[i], &file_st[i]); - } -#else temp_st = file_st = (HsfBuffer *)((u32)fileptr+head.st.ofs); data = (void *)&file_st[head.st.count]; for(i=0; idata)+(j*sizeof(HsfVector2f))); } } -#endif new_st = temp_st; Model.st = new_st; Model.stCnt = head.st.count; -#ifdef TARGET_PC - data = (void *)&file_st_real[head.st.count]; -#else file_st = (HsfBuffer *)((u32)fileptr+head.st.ofs); data = (void *)&file_st[head.st.count]; -#endif for(i=0; idata; new_st->count = file_st->count; new_st->name = SetName((u32 *)&file_st->name); - new_st->data = (void *)((uintptr_t)data + (uintptr_t)temp_data); + new_st->data = (void *)((u32)data+(u32)temp_data); for(j=0; jcount; j++) { - data_elem = (HsfVector2f *)((uintptr_t)data + (uintptr_t)temp_data + (j*sizeof(HsfVector2f))); -#ifdef TARGET_PC - byteswap_hsfvec2f(data_elem); -#endif + data_elem = (HsfVector2f *)(((u32)data)+((u32)temp_data)+(j*sizeof(HsfVector2f))); ((HsfVector2f *)new_st->data)[j].x = data_elem->x; ((HsfVector2f *)new_st->data)[j].y = data_elem->y; } @@ -544,57 +408,26 @@ static void FaceLoad(void) s32 j; if(head.face.count) { -#ifdef TARGET_PC - HsfBuffer32b *file_face_real = (HsfBuffer32b *)((uintptr_t)fileptr + head.face.ofs); - HsfFace32b *file_facedata_real = (HsfFace32b *)&file_face_real[head.face.count]; - temp_face = file_face = FaceTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBuffer) * head.face.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.face.count; i++) { - byteswap_hsfbuffer(&file_face_real[i], &file_face[i]); - } -#else temp_face = file_face = (HsfBuffer *)((u32)fileptr+head.face.ofs); data = (HsfFace *)&file_face[head.face.count]; -#endif new_face = temp_face; Model.face = new_face; Model.faceCnt = head.face.count; -#ifdef __MWERKS__ file_face = (HsfBuffer *)((u32)fileptr+head.face.ofs); data = (HsfFace *)&file_face[head.face.count]; -#endif for(i=0; idata; new_face->name = SetName((u32 *)&file_face->name); new_face->count = file_face->count; -#ifdef TARGET_PC - { - HsfFace32b *facedata_start = (HsfFace32b *)((uintptr_t)file_facedata_real + (uintptr_t)temp_data); - data = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfFace) * new_face->count, MEMORY_DEFAULT_NUM); - for (j = 0; j < new_face->count; j++) { - byteswap_hsfface(&facedata_start[j], &data[j]); - } - new_face->data = data; - strip = (u8 *)(&facedata_start[new_face->count]); - } -#else - new_face->data = (void *)((uintptr_t)data+(uintptr_t)temp_data); + new_face->data = (void *)((u32)data+(u32)temp_data); strip = (u8 *)(&((HsfFace *)new_face->data)[new_face->count]); -#endif } new_face = temp_face; for(i=0; idata; for(j=0; jcount; j++, new_face_strip++, file_face_strip++) { if(AS_U16(file_face_strip->type) == 4) { - new_face_strip->strip.data = (s16 *)(strip+(uintptr_t)file_face_strip->strip.data*(sizeof(s16)*4)); -#ifdef TARGET_PC - { - s32 k; - for (k = 0; k < new_face_strip->strip.count; k++) { - byteswap_s16(&new_face_strip->strip.data[k]); - } - } -#endif + new_face_strip->strip.data = (s16 *)(strip+(u32)file_face_strip->strip.data*(sizeof(s16)*4)); } } } @@ -623,9 +456,9 @@ static void DispObject(HsfObject *parent, HsfObject *object) data = &object->data; new_object = temp_object = object; new_object->data.childrenCount = data->childrenCount; - new_object->data.children = (HsfObject **)&NSymIndex[(uintptr_t)data->children]; + new_object->data.children = (HsfObject **)&NSymIndex[(u32)data->children]; for(i=0; idata.childrenCount; i++) { - child_obj = &objtop[(uintptr_t)new_object->data.children[i]]; + child_obj = &objtop[(u32)new_object->data.children[i]]; new_object->data.children[i] = child_obj; } new_object->data.parent = parent; @@ -638,14 +471,14 @@ static void DispObject(HsfObject *parent, HsfObject *object) new_object->data.st = SearchStPtr((s32)data->st); new_object->data.color = SearchColorPtr((s32)data->color); new_object->data.face = SearchFacePtr((s32)data->face); - new_object->data.vertexShape = (HsfBuffer **)&NSymIndex[(uintptr_t)data->vertexShape]; + new_object->data.vertexShape = (HsfBuffer **)&NSymIndex[(u32)data->vertexShape]; for(i=0; idata.vertexShapeCnt; i++) { - temp.shape = &vtxtop[(uintptr_t)new_object->data.vertexShape[i]]; + temp.shape = &vtxtop[(u32)new_object->data.vertexShape[i]]; new_object->data.vertexShape[i] = temp.shape; } - new_object->data.cluster = (HsfCluster **)&NSymIndex[(uintptr_t)data->cluster]; + new_object->data.cluster = (HsfCluster **)&NSymIndex[(u32)data->cluster]; for(i=0; idata.clusterCnt; i++) { - temp.cluster = &ClusterTop[(uintptr_t)new_object->data.cluster[i]]; + temp.cluster = &ClusterTop[(u32)new_object->data.cluster[i]]; new_object->data.cluster[i] = temp.cluster; } new_object->data.cenv = SearchCenvPtr((s32)data->cenv); @@ -655,16 +488,8 @@ static void DispObject(HsfObject *parent, HsfObject *object) } else { new_object->data.attribute = NULL; } - new_object->data.vtxtop = (void *)((uintptr_t)fileptr + (uintptr_t)data->vtxtop); - new_object->data.normtop = (void *)((uintptr_t)fileptr + (uintptr_t)data->normtop); -#ifdef TARGET_PC - for (i = 0; i < new_object->data.vertex->count; i++) { - byteswap_hsfvec3f(&new_object->data.vtxtop[i]); - } - for (i = 0; i < new_object->data.normal->count; i++) { - byteswap_hsfvec3f(&new_object->data.normtop[i]); - } -#endif + new_object->data.file[0] = (void *)((u32)fileptr+(u32)data->file[0]); + new_object->data.file[1] = (void *)((u32)fileptr+(u32)data->file[1]); new_object->data.base.pos.x = data->base.pos.x; new_object->data.base.pos.y = data->base.pos.y; new_object->data.base.pos.z = data->base.pos.z; @@ -694,9 +519,9 @@ static void DispObject(HsfObject *parent, HsfObject *object) new_object = temp_object = object; new_object->data.parent = parent; new_object->data.childrenCount = data->childrenCount; - new_object->data.children = (HsfObject **)&NSymIndex[(uintptr_t)data->children]; + new_object->data.children = (HsfObject **)&NSymIndex[(u32)data->children]; for(i=0; idata.childrenCount; i++) { - child_obj = &objtop[(uintptr_t)new_object->data.children[i]]; + child_obj = &objtop[(u32)new_object->data.children[i]]; new_object->data.children[i] = child_obj; } if(Model.root == NULL) { @@ -716,15 +541,15 @@ static void DispObject(HsfObject *parent, HsfObject *object) new_object = temp_object = object; new_object->data.parent = parent; new_object->data.childrenCount = data->childrenCount; - new_object->data.children = (HsfObject **)&NSymIndex[(uintptr_t)data->children]; + new_object->data.children = (HsfObject **)&NSymIndex[(u32)data->children]; for(i=0; idata.childrenCount; i++) { - child_obj = &objtop[(uintptr_t)new_object->data.children[i]]; + child_obj = &objtop[(u32)new_object->data.children[i]]; new_object->data.children[i] = child_obj; } if(Model.root == NULL) { Model.root = temp_object; } - new_object->data.replica = &objtop[(uintptr_t)new_object->data.replica]; + new_object->data.replica = &objtop[(u32)new_object->data.replica]; for(i=0; ichildrenCount; i++) { DispObject(new_object, new_object->data.children[i]); } @@ -859,15 +684,7 @@ static void ObjectLoad(void) s32 obj_type; if(head.object.count) { -#ifdef TARGET_PC - HsfObject32b *file_object_real = (HsfObject32b *)((uintptr_t)fileptr + head.object.ofs); - objtop = object = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfObject) * head.object.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.object.count; i++) { - byteswap_hsfobject(&file_object_real[i], &objtop[i]); - } -#else objtop = object = (HsfObject *)((u32)fileptr+head.object.ofs); -#endif for(i=0; iname = SetName((u32 *)&object->name); @@ -905,93 +722,50 @@ static void CenvLoad(void) s32 i; if(head.cenv.count) { -#ifdef TARGET_PC - HsfCenv32b *file_cenv_real = (HsfCenv32b *)((uintptr_t)fileptr + head.cenv.ofs); - cenv_file = CenvTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfCenv) * head.cenv.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.cenv.count; i++) { - byteswap_hsfcenv(&file_cenv_real[i], &cenv_file[i]); - } - data_base = &file_cenv_real[head.cenv.count]; -#else cenv_file = (HsfCenv *)((u32)fileptr+head.cenv.ofs); data_base = &cenv_file[head.cenv.count]; -#endif weight_base = data_base; cenv_new = cenv_file; Model.cenvCnt = head.cenv.count; Model.cenv = cenv_file; for(i=0; iname = SetName((u32 *)&part_file[i].name); part_new->count = part_file[i].count; - part_new->vertex = &data[(uintptr_t)part_file[i].vertex]; + part_new->vertex = &data[(u32)part_file[i].vertex]; for(j=0; jcount; j++) { part_new->vertex[j] = part_new->vertex[j]; -#ifdef TARGET_PC - byteswap_u16(&part_new->vertex[j]); -#endif } } } @@ -1087,11 +838,7 @@ static void ClusterLoad(void) s32 i, j; if(head.cluster.count) { -#ifdef TARGET_PC - cluster_new = cluster_file = ClusterTop; -#else cluster_new = cluster_file = (HsfCluster *)((u32)fileptr+head.cluster.ofs); -#endif Model.clusterCnt = head.cluster.count; Model.cluster = cluster_file; for(i=0; idata = &data[(u32)mapattr_file->data]; } @@ -1191,26 +918,14 @@ static void BitmapLoad(void) s32 i; if(head.bitmap.count) { -#ifdef TARGET_PC - HsfBitmap32b *file_bitmap_real = (HsfBitmap32b *)((uintptr_t)fileptr + head.bitmap.ofs); - bitmap_temp = bitmap_file = BitmapTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBitmap) * head.bitmap.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.bitmap.count; i++) { - byteswap_hsfbitmap(&file_bitmap_real[i], &bitmap_file[i]); - } -#else bitmap_temp = bitmap_file = (HsfBitmap *)((u32)fileptr+head.bitmap.ofs); data = &bitmap_file[head.bitmap.count]; for(i=0; iname = SetName((u32 *)&bitmap_file->name); bitmap_new->dataFmt = bitmap_file->dataFmt; @@ -1218,11 +933,11 @@ static void BitmapLoad(void) bitmap_new->sizeX = bitmap_file->sizeX; bitmap_new->sizeY = bitmap_file->sizeY; bitmap_new->palSize = bitmap_file->palSize; - palette = SearchPalettePtr((uintptr_t)bitmap_file->palData); + palette = SearchPalettePtr((u32)bitmap_file->palData); if(palette) { bitmap_new->palData = palette->data; } - bitmap_new->data = (void *)((uintptr_t)data+(uintptr_t)bitmap_file->data); + bitmap_new->data = (void *)((u32)data+(u32)bitmap_file->data); } } } @@ -1240,39 +955,24 @@ static void PaletteLoad(void) u16 *data; if(head.palette.count) { -#ifdef TARGET_PC - HsfPalette32b *file_palette_real = (HsfPalette32b *)((uintptr_t)fileptr + head.palette.ofs); - palette_temp = palette_file = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfPalette) * head.palette.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.palette.count; i++) { - byteswap_hsfpalette(&file_palette_real[i], &palette_file[i]); - } -#else palette_temp = palette_file = (HsfPalette *)((u32)fileptr+head.palette.ofs); data_base = (u16 *)&palette_file[head.palette.count]; for(i=0; idata); + temp_data = (u16 *)((u32)data_base+(u32)palette_file->data); } -#endif Model.palette = palette_temp; Model.paletteCnt = head.palette.count; palette_new = palette_temp; -#ifdef TARGET_PC - data_base = (u16 *)&file_palette_real[head.palette.count]; -#else palette_file = (HsfPalette *)((u32)fileptr+head.palette.ofs); data_base = (u16 *)&palette_file[head.palette.count]; -#endif for(i=0; idata); + temp_data = (u16 *)((u32)data_base+(u32)palette_file->data); data = temp_data; palette_new->name = SetName((u32 *)&palette_file->name); palette_new->data = data; palette_new->palSize = palette_file->palSize; for(j=0; jpalSize; j++) { data[j] = data[j]; -#ifdef TARGET_PC - byteswap_u16(&data[j]); -#endif } } } @@ -1419,21 +1119,21 @@ static inline void MotionLoadTransform(HsfTrack *track, void *data) switch(track->curveType) { case HSF_CURVE_STEP: { - step_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + step_data = (float *)((u32)data+(u32)track->data); out_track->data = step_data; } break; case HSF_CURVE_LINEAR: { - linear_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + linear_data = (float *)((u32)data+(u32)track->data); out_track->data = linear_data; } break; case HSF_CURVE_BEZIER: { - bezier_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + bezier_data = (float *)((u32)data+(u32)track->data); out_track->data = bezier_data; } break; @@ -1464,21 +1164,21 @@ static inline void MotionLoadCluster(HsfTrack *track, void *data) switch(track->curveType) { case HSF_CURVE_STEP: { - step_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + step_data = (float *)((u32)data+(u32)track->data); out_track->data = step_data; } break; case HSF_CURVE_LINEAR: { - linear_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + linear_data = (float *)((u32)data+(u32)track->data); out_track->data = linear_data; } break; case HSF_CURVE_BEZIER: { - bezier_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + bezier_data = (float *)((u32)data+(u32)track->data); out_track->data = bezier_data; } break; @@ -1509,21 +1209,21 @@ static inline void MotionLoadClusterWeight(HsfTrack *track, void *data) switch(track->curveType) { case HSF_CURVE_STEP: { - step_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + step_data = (float *)((u32)data+(u32)track->data); out_track->data = step_data; } break; case HSF_CURVE_LINEAR: { - linear_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + linear_data = (float *)((u32)data+(u32)track->data); out_track->data = linear_data; } break; case HSF_CURVE_BEZIER: { - bezier_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + bezier_data = (float *)((u32)data+(u32)track->data); out_track->data = bezier_data; } break; @@ -1545,21 +1245,21 @@ static inline void MotionLoadMaterial(HsfTrack *track, void *data) switch(track->curveType) { case HSF_CURVE_STEP: { - step_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + step_data = (float *)((u32)data+(u32)track->data); out_track->data = step_data; } break; case HSF_CURVE_LINEAR: { - linear_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + linear_data = (float *)((u32)data+(u32)track->data); out_track->data = linear_data; } break; case HSF_CURVE_BEZIER: { - bezier_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + bezier_data = (float *)((u32)data+(u32)track->data); out_track->data = bezier_data; } break; @@ -1592,38 +1292,30 @@ static inline void MotionLoadAttribute(HsfTrack *track, void *data) switch(track->curveType) { case HSF_CURVE_STEP: { - step_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + step_data = (float *)((u32)data+(u32)track->data); out_track->data = step_data; } break; case HSF_CURVE_LINEAR: { - linear_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + linear_data = (float *)((u32)data+(u32)track->data); out_track->data = linear_data; } break; case HSF_CURVE_BEZIER: { - bezier_data = (float *)((uintptr_t)data + (uintptr_t)track->data); + bezier_data = (float *)((u32)data+(u32)track->data); out_track->data = bezier_data; } break; case HSF_CURVE_BITMAP: { -#ifdef TARGET_PC - HsfBitmapKey32b *file_frame_real = (HsfBitmapKey32b *)((uintptr_t)data + (uintptr_t)track->data); - new_frame = file_frame = track->dataTop = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfBitmapKey) * track->numKeyframes, MEMORY_DEFAULT_NUM); -#else - new_frame = file_frame = (HsfBitmapKey *)((uintptr_t)data + (uintptr_t)track->data); + new_frame = file_frame = (HsfBitmapKey *)((u32)data+(u32)track->data); out_track->data = file_frame; -#endif for(i=0; inumKeyframes; i++, file_frame++, new_frame++) { -#ifdef TARGET_PC - byteswap_hsfbitmapkey(&file_frame_real[i], new_frame); -#endif new_frame->data = SearchBitmapPtr((s32)file_frame->data); } } @@ -1645,31 +1337,12 @@ static void MotionLoad(void) MotionOnly = FALSE; MotionModel = NULL; if(head.motion.count) { -#ifdef TARGET_PC - HsfMotion32b *file_motion_real = (HsfMotion32b *)((uintptr_t)fileptr + head.motion.ofs); - temp_motion = file_motion = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfMotion) * head.motion.count, MEMORY_DEFAULT_NUM); - for (i = 0; i < head.motion.count; i++) { - byteswap_hsfmotion(&file_motion_real[i], &file_motion[i]); - } -#else - temp_motion = file_motion = (HsfMotion *)((uintptr_t)fileptr+head.motion.ofs); -#endif + temp_motion = file_motion = (HsfMotion *)((u32)fileptr+head.motion.ofs); new_motion = temp_motion; Model.motion = new_motion; Model.motionCnt = file_motion->numTracks; -#ifdef TARGET_PC - { - HsfTrack32b *track_base_real = (HsfTrack32b *)&file_motion_real[head.motion.count]; - track_base = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfTrack) * file_motion->numTracks, MEMORY_DEFAULT_NUM); - track_data = &track_base_real[file_motion->numTracks]; - for (i = 0; i < file_motion->numTracks; i++) { - byteswap_hsftrack(&track_base_real[i], &track_base[i]); - } - } -#else track_base = (HsfTrack *)&file_motion[head.motion.count]; track_data = &track_base[file_motion->numTracks]; -#endif new_motion->track = track_base; for(i=0; i<(s32)file_motion->numTracks; i++) { switch(track_base[i].type) { @@ -1730,13 +1403,8 @@ static void MatrixLoad(void) HsfMatrix *matrix_file; if(head.matrix.count) { -#ifdef TARGET_PC - matrix_file = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfMatrix) * head.matrix.count, MEMORY_DEFAULT_NUM); - byteswap_hsfmatrix((HsfMatrix32b *)((uintptr_t)fileptr + head.matrix.ofs), matrix_file); -#else - matrix_file = (HsfMatrix *)((uintptr_t)fileptr+head.matrix.ofs); + matrix_file = (HsfMatrix *)((u32)fileptr+head.matrix.ofs); matrix_file->data = (Mtx *)((u32)fileptr+head.matrix.ofs+sizeof(HsfMatrix)); -#endif Model.matrix = matrix_file; Model.matrixCnt = head.matrix.count; } @@ -1761,11 +1429,7 @@ static HsfBuffer *SearchVertexPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - vertex = vtxtop; -#else - vertex = (HsfBuffer *)((uintptr_t)fileptr+head.vertex.ofs); -#endif + vertex = (HsfBuffer *)((u32)fileptr+head.vertex.ofs); vertex += id; return vertex; } @@ -1776,11 +1440,7 @@ static HsfBuffer *SearchNormalPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - normal = NormalTop; -#else - normal = (HsfBuffer *)((uintptr_t)fileptr+head.normal.ofs); -#endif + normal = (HsfBuffer *)((u32)fileptr+head.normal.ofs); normal += id; return normal; } @@ -1791,11 +1451,7 @@ static HsfBuffer *SearchStPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - st = StTop; -#else - st = (HsfBuffer *)((uintptr_t)fileptr+head.st.ofs); -#endif + st = (HsfBuffer *)((u32)fileptr+head.st.ofs); st += id; return st; } @@ -1806,11 +1462,7 @@ static HsfBuffer *SearchColorPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - color = ColorTop; -#else - color = (HsfBuffer *)((uintptr_t)fileptr+head.color.ofs); -#endif + color = (HsfBuffer *)((u32)fileptr+head.color.ofs); color += id; return color; } @@ -1821,11 +1473,7 @@ static HsfBuffer *SearchFacePtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - face = FaceTop; -#else - face = (HsfBuffer *)((uintptr_t)fileptr+head.face.ofs); -#endif + face = (HsfBuffer *)((u32)fileptr+head.face.ofs); face += id; return face; } @@ -1836,11 +1484,7 @@ static HsfCenv *SearchCenvPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - cenv = CenvTop; -#else - cenv = (HsfCenv *)((uintptr_t)fileptr + head.cenv.ofs); -#endif + cenv = (HsfCenv *)((u32)fileptr+head.cenv.ofs); cenv += id; return cenv; } @@ -1851,11 +1495,7 @@ static HsfPart *SearchPartPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - part = PartTop; -#else - part = (HsfPart *)((uintptr_t)fileptr+head.part.ofs); -#endif + part = (HsfPart *)((u32)fileptr+head.part.ofs); part += id; return part; } @@ -1877,11 +1517,7 @@ static HsfBitmap *SearchBitmapPtr(s32 id) if(id == -1) { return NULL; } -#ifdef TARGET_PC - bitmap = BitmapTop; -#else - bitmap = (HsfBitmap *)((uintptr_t)fileptr+head.bitmap.ofs); -#endif + bitmap = (HsfBitmap *)((u32)fileptr+head.bitmap.ofs); bitmap += id; return bitmap; } @@ -1896,66 +1532,4 @@ static char *GetMotionString(u16 *str_ofs) { char *ret = &StringTable[*str_ofs]; return ret; -} - -#ifdef TARGET_PC -void KillHSF(HsfData *data) -{ - s32 i, j; - // if (data->attributeCnt) - // HuMemDirectFree(data->attribute); - // if (data->bitmapCnt) - // HuMemDirectFree(data->bitmap); - // if (data->skeletonCnt) - // HuMemDirectFree(data->skeleton); - // if (data->faceCnt) { - // for (i = 0; i < data->faceCnt; i++) { - // HuMemDirectFree(data->face[i].data); - // } - // HuMemDirectFree(data->face); - // } - // if (data->materialCnt) - // HuMemDirectFree(data->material); - // if (data->motionCnt) { - // HsfMotion *motion = data->motion; - // for (j = 0; j < motion->numTracks; j++) { - // HsfTrack *track = motion->track; - // if (track->type == HSF_TRACK_ATTRIBUTE && track->curveType == HSF_CURVE_BITMAP) { - // // in this case we needed to allocate space for HsfBitmapKey structs - // HuMemDirectFree(track->dataTop); - // } - // } - // HuMemDirectFree(motion->track); - // HuMemDirectFree(data->motion); - // } - // if (data->normalCnt) - // HuMemDirectFree(data->normal); - // if (data->objectCnt) - // HuMemDirectFree(data->object); - // if (data->matrixCnt) - // HuMemDirectFree(data->matrix); - // if (data->paletteCnt) - // HuMemDirectFree(data->palette); - // if (data->stCnt) - // HuMemDirectFree(data->st); - // if (data->vertexCnt) - // HuMemDirectFree(data->vertex); - // if (data->cenvCnt) { - // for (i = 0; i < data->cenvCnt; i++) { - // HsfCenv *cenv = &data->cenv[i]; - // HuMemDirectFree(cenv->dualData); - // HuMemDirectFree(cenv->multiData); - // } - // HuMemDirectFree(data->cenv); - // } - // if (data->clusterCnt) - // HuMemDirectFree(data->cluster); - // if (data->partCnt) - // HuMemDirectFree(data->part); - // if (data->shapeCnt) - // HuMemDirectFree(data->shape); - // if (data->mapAttrCnt) - // HuMemDirectFree(data->mapAttr); - // HuMemDirectFree(data->symbol); -} -#endif +} \ No newline at end of file diff --git a/src/game/hsfman.c b/src/game/hsfman.c index 04820c45..243da902 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -14,39 +14,36 @@ #include "dolphin/gx/GXVert.h" +#include "math.h" #include "ext_math.h" -#ifndef __MWERKS__ -#include "string.h" -#endif - #define SHADOW_HEAP_SIZE 0x9000 -SHARED_SYM ModelData Hu3DData[HU3D_MODEL_MAX]; -SHARED_SYM CameraData Hu3DCamera[HU3D_CAM_MAX]; +ModelData Hu3DData[HU3D_MODEL_MAX]; +CameraData Hu3DCamera[HU3D_CAM_MAX]; static s16 layerNum[8]; static void (*layerHook[8])(s16); AnimData *reflectAnim[5]; -SHARED_SYM AnimData *hiliteAnim[4]; +AnimData *hiliteAnim[4]; ThreeDProjectionStruct Hu3DProjection[4]; -SHARED_SYM ShadowData Hu3DShadowData; +ShadowData Hu3DShadowData; HsfScene FogData; -SHARED_SYM Mtx Hu3DCameraMtx; -SHARED_SYM Mtx Hu3DCameraMtxXPose; -SHARED_SYM LightData Hu3DGlobalLight[0x8]; -SHARED_SYM LightData Hu3DLocalLight[0x20]; +Mtx Hu3DCameraMtx; +Mtx Hu3DCameraMtxXPose; +LightData Hu3DGlobalLight[0x8]; +LightData Hu3DLocalLight[0x20]; Mtx lbl_8018D39C; -SHARED_SYM GXColor BGColor; +GXColor BGColor; s16 reflectMapNo; AnimData *toonAnim; -SHARED_SYM s16 Hu3DShadowCamBit; -SHARED_SYM s32 Hu3DShadowF; -SHARED_SYM s32 shadowModelDrawF; +s16 Hu3DShadowCamBit; +s32 Hu3DShadowF; +s32 shadowModelDrawF; s16 Hu3DProjectionNum; -SHARED_SYM s16 Hu3DCameraNo; +s16 Hu3DCameraNo; s16 Hu3DCameraBit; -uintptr_t Hu3DMallocNo; +u32 Hu3DMallocNo; s16 Hu3DPauseF; u16 Hu3DCameraExistF; static u16 NoSyncF; @@ -181,19 +178,19 @@ void Hu3DExec(void) { HuSprExec(0x7F); } if (FogData.fogType != GX_FOG_NONE) { - GXSetFog(FogData.fogType, FogData.start, FogData.end, camera->nnear, camera->ffar, FogData.color); + GXSetFog(FogData.fogType, FogData.start, FogData.end, camera->near, camera->far, FogData.color); } for (j = 0; j < 8; j++) { if (layerHook[j] != 0) { Hu3DCameraSet(Hu3DCameraNo, Hu3DCameraMtx); - MTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose); + PSMTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose); temp = layerHook[j]; temp(j); } if (layerNum[j] != 0) { Hu3DDrawPreInit(); Hu3DCameraSet(Hu3DCameraNo, Hu3DCameraMtx); - MTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose); + PSMTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose); data = Hu3DData; for (i = 0, var_r23 = i; i < HU3D_MODEL_MAX; i++, data++) { if (data->hsfData != 0) { @@ -255,8 +252,8 @@ void Hu3DExec(void) { mtxRot(sp40, data->rot.x, data->rot.y, data->rot.z); mtxScaleCat(sp40, data->scale.x, data->scale.y, data->scale.z); mtxTransCat(sp40, data->pos.x, data->pos.y, data->pos.z); - MTXConcat(Hu3DCameraMtx, sp40, sp10); - MTXConcat(sp10, data->unk_F0, sp10); + PSMTXConcat(Hu3DCameraMtx, sp40, sp10); + PSMTXConcat(sp10, data->unk_F0, sp10); Hu3DDraw(data, sp10, &data->scale); } data->unk_00++; @@ -293,13 +290,10 @@ void Hu3DAllKill(void) { Hu3DCameraAllKill(); Hu3DLightAllKill(); Hu3DAnimAllKill(); -#if __MWERKS__ - // this causes anim to be reallocated, so we lose the old allocation if(reflectAnim[0] != (AnimData *)refMapData0) { HuMemDirectFree(reflectAnim[0]); } reflectAnim[0] = HuSprAnimRead(refMapData0); -#endif if(Hu3DShadowData.unk_04) { HuMemDirectFree(Hu3DShadowData.unk_04); Hu3DShadowCamBit = 0; @@ -356,7 +350,7 @@ s16 Hu3DModelCreate(void *arg0) { return -1; } var_r31->hsfData = LoadHSF(arg0); - var_r31->unk_48 = Hu3DMallocNo = (uintptr_t)var_r31->hsfData; + var_r31->unk_48 = Hu3DMallocNo = (u32)var_r31->hsfData; var_r31->attr = HU3D_ATTR_NONE; var_r31->motion_attr = HU3D_ATTR_NONE; var_r31->unk_02 = 0; @@ -404,7 +398,7 @@ s16 Hu3DModelCreate(void *arg0) { } var_r31->unk_01 = 0; var_r31->unk_00 = (u8) var_r30; - MTXIdentity(var_r31->unk_F0); + PSMTXIdentity(var_r31->unk_F0); layerNum[0] += 1; HuMemDCFlush(HEAP_DATA); if ((var_r31->hsfData->sceneCnt != 0) && ((var_r31->hsfData->scene->start) || (var_r31->hsfData->scene->end))) { @@ -419,6 +413,12 @@ s16 Hu3DModelLink(s16 arg0) { ModelData* var_r31; s16 var_r28; s16 i; + s32 temp_r0; + s32 temp_r3; + s32 temp_r5; + s32 var_ctr; + HsfData* var_r4; + HsfData* var_r5; temp_r30 = &Hu3DData[arg0]; var_r31 = Hu3DData; @@ -431,11 +431,11 @@ s16 Hu3DModelLink(s16 arg0) { return -1; } var_r31->unk_C8 = temp_r30->hsfData; - var_r31->hsfData = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfData), var_r31->unk_4C); - var_r31->unk_4C = (uintptr_t)var_r31->hsfData; + var_r31->hsfData = HuMemDirectMallocNum(HEAP_DATA, 0x80, var_r31->unk_4C); + var_r31->unk_4C = (u32)var_r31->hsfData; *var_r31->hsfData = *temp_r30->hsfData; temp_r3_2 = Hu3DObjDuplicate(var_r31->hsfData, var_r31->unk_4C); - var_r31->hsfData->root = (HsfObject*)((uintptr_t)temp_r3_2 + ((uintptr_t)var_r31->hsfData->root - (uintptr_t)var_r31->hsfData->object)); + var_r31->hsfData->root = (HsfObject*)((u32)temp_r3_2 + ((u32)var_r31->hsfData->root - (u32)var_r31->hsfData->object)); var_r31->hsfData->object = temp_r3_2; var_r31->unk_48 = temp_r30->unk_48; var_r31->attr = temp_r30->attr; @@ -453,7 +453,7 @@ s16 Hu3DModelLink(s16 arg0) { for (i = 0; i < 4; i++) { var_r31->unk_10[i] = temp_r30->unk_10[i]; if (var_r31->unk_10[i] != -1) { - ClusterAdjustObject(var_r31->hsfData, Hu3DMotion[var_r31->unk_10[i]].hsfData); + ClusterAdjustObject(var_r31->hsfData, Hu3DMotion[var_r31->unk_10[i]].unk_04); var_r31->attr |= HU3D_ATTR_CLUSTER_ON; } } @@ -473,7 +473,7 @@ s16 Hu3DModelLink(s16 arg0) { var_r31->unk_38[i] = -1; } var_r31->unk_01 = 0; - MTXIdentity(var_r31->unk_F0); + PSMTXIdentity(var_r31->unk_F0); layerNum[0] += 1; return var_r28; } @@ -521,7 +521,7 @@ s16 Hu3DHookFuncCreate(ModelHookFunc hook) { var_r31->unk_38[i] = -1; } var_r31->unk_01 = 0; - MTXIdentity(var_r31->unk_F0); + PSMTXIdentity(var_r31->unk_F0); layerNum[0] += 1; return var_r29; } @@ -564,9 +564,6 @@ void Hu3DModelKill(s16 arg0) { } Hu3DAnimModelKill(arg0); if (temp_r31->unk_24 != -1) { -#ifdef TARGET_PC - KillHSF(temp_r31->hsfData); -#endif HuMemDirectFree(temp_r31->hsfData); HuMemDirectFreeNum(HEAP_DATA, temp_r31->unk_4C); var_r28 = temp_r31->unk_C8; @@ -584,7 +581,7 @@ void Hu3DModelKill(s16 arg0) { if (temp_r31->unk_20 != -1) { for (i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) { if (var_r30->hsfData != 0 && var_r30->unk_24 != -1 && var_r30->unk_C8 == var_r28) { - Hu3DMotion[temp_r31->unk_20].modelId = i; + Hu3DMotion[temp_r31->unk_20].unk_02 = i; break; } } @@ -595,7 +592,7 @@ void Hu3DModelKill(s16 arg0) { return; } if (temp_r31->unk_20 != -1 && Hu3DMotionKill(temp_r31->unk_20) == 0) { - Hu3DMotion[temp_r31->unk_20].modelId = -1; + Hu3DMotion[temp_r31->unk_20].unk_02 = -1; HuMemDirectFreeNum(HEAP_DATA, temp_r31->unk_48); temp_r31->hsfData = NULL; if (modelKillAllF == 0) { @@ -603,9 +600,6 @@ void Hu3DModelKill(s16 arg0) { } return; } -#ifdef TARGET_PC - KillHSF(temp_r31->hsfData); -#endif HuMemDirectFree(temp_r31->hsfData); HuMemDirectFreeNum(HEAP_DATA, temp_r31->unk_48); for (i = 0; i < temp_r31->unk_26; i++) { @@ -1121,7 +1115,7 @@ void Hu3DCameraCreate(s32 cam) { } } -void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 nnear, f32 ffar, f32 aspect) { +void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 near, f32 far, f32 aspect) { s16 mask; s16 i; CameraData* cam_ptr; @@ -1130,8 +1124,8 @@ void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 nnear, f32 ffar, f32 aspect) if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->fov = fov; - cam_ptr->nnear = nnear; - cam_ptr->ffar = ffar; + cam_ptr->near = near; + cam_ptr->far = far; cam_ptr->aspect = aspect; } } @@ -1248,7 +1242,7 @@ void Hu3DCameraSet(s32 arg0, Mtx arg1) { CameraData* temp_r31; temp_r31 = &Hu3DCamera[arg0]; - C_MTXPerspective(sp10, temp_r31->fov, temp_r31->aspect, temp_r31->nnear, temp_r31->ffar); + C_MTXPerspective(sp10, temp_r31->fov, temp_r31->aspect, temp_r31->near, temp_r31->far); GXSetProjection(sp10, GX_PERSPECTIVE); if (RenderMode->field_rendering != 0) { GXSetViewportJitter(temp_r31->viewport_x, temp_r31->viewport_y, temp_r31->viewport_w, temp_r31->viewport_h, temp_r31->near_z, temp_r31->far_z, VIGetNextField()); @@ -1299,7 +1293,7 @@ BOOL Hu3DModelCameraInfoSet(s16 arg0, u16 arg1) { sp8.x, sp8.y, sp8.z, obj_copy->camera.pos.x, obj_copy->camera.pos.y, obj_copy->camera.pos.z); - Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.nnear, obj_copy->camera.ffar, HU_DISP_ASPECT); + Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.near, obj_copy->camera.far, HU_DISP_ASPECT); temp_r28->unk_01 = arg1; temp_r24 = &Hu3DData[arg0]; @@ -1836,8 +1830,8 @@ void lightSet(LightData* arg0, s16 arg1, Mtx *arg2, Mtx *arg3, f32 arg8) { break; } if ((arg0->unk_00 & 0x8000) != 0) { - MTXMultVec(*arg2, &arg0->unk_28, &sp24); - MTXMultVec(*arg3, &arg0->unk_1C, &sp18); + PSMTXMultVec(*arg2, &arg0->unk_28, &sp24); + PSMTXMultVec(*arg3, &arg0->unk_1C, &sp18); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); } else { GXInitLightPos(&sp30, arg0->unk_1C.x, arg0->unk_1C.y, arg0->unk_1C.z); @@ -1945,7 +1939,7 @@ void Hu3DShadowExec(void) { test = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; } C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20); - MTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); + PSMTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); var_r31 = Hu3DData; shadowModelDrawF = 1; GXInvalidateTexAll(); @@ -1992,11 +1986,11 @@ void Hu3DShadowExec(void) { var_r31->attr |= HU3D_ATTR_MOT_EXEC; } mtxRot(sp58, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - MTXScale(spB8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - MTXConcat(sp58, spB8, spB8); + PSMTXScale(spB8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXConcat(sp58, spB8, spB8); mtxTransCat(spB8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - MTXConcat(Hu3DCameraMtx, spB8, sp88); - MTXConcat(sp88, var_r31->unk_F0, sp88); + PSMTXConcat(Hu3DCameraMtx, spB8, sp88); + PSMTXConcat(sp88, var_r31->unk_F0, sp88); Hu3DDraw(var_r31, sp88, &var_r31->scale); } } @@ -2026,20 +2020,17 @@ void Hu3DShadowExec(void) { GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1U, GX_TEVPREV); GXSetNumChans(0); - MTXIdentity(sp88); + PSMTXIdentity(sp88); GXLoadPosMtxImm(sp88, 0); GXSetZMode(0, GX_ALWAYS, 1); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3u8(0, 0, 0); - GXPosition3u8(1, 0, 0); - GXPosition3u8(1, 1, 0); - GXPosition3u8(0, 1, 0); -#ifdef TARGET_PC - GXEnd(); -#endif + GXColor3u8(0, 0, 0); + GXColor3u8(1, 0, 0); + GXColor3u8(1, 1, 0); + GXColor3u8(0, 1, 0); } s16 Hu3DProjectionCreate(void *arg0, f32 arg8, f32 arg9, f32 argA) { diff --git a/src/game/hsfmotion.c b/src/game/hsfmotion.c index 37d1f98a..e21ad90f 100644 --- a/src/game/hsfmotion.c +++ b/src/game/hsfmotion.c @@ -1,46 +1,43 @@ #include "game/hsfmotion.h" #include "game/ClusterExec.h" #include "game/EnvelopeExec.h" -#include "game/ShapeExec.h" #include "game/hsfdraw.h" #include "game/hsfload.h" #include "game/hsfman.h" #include "game/init.h" - +#include "game/ShapeExec.h" #include "ext_math.h" #include "string.h" -#define HU3D_MOTATTR_SHIFT_ALL (HU3D_MOTATTR_SHIFT_LOOP | HU3D_MOTATTR_SHIFT_PAUSE | HU3D_MOTATTR_SHIFT_REV) -#define HU3D_MOTATTR_NOSHIFT_ALL (HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV) -#define HU3D_MOTATTR_ALL (HU3D_MOTATTR_SHIFT_ALL | HU3D_MOTATTR_NOSHIFT_ALL) +#define HU3D_MOTATTR_SHIFT_ALL (HU3D_MOTATTR_SHIFT_LOOP|HU3D_MOTATTR_SHIFT_PAUSE|HU3D_MOTATTR_SHIFT_REV) +#define HU3D_MOTATTR_NOSHIFT_ALL (HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE|HU3D_MOTATTR_REV) +#define HU3D_MOTATTR_ALL (HU3D_MOTATTR_SHIFT_ALL|HU3D_MOTATTR_NOSHIFT_ALL) static s32 SearchObjectIndex(HsfData *arg0, u32 arg1); static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1); -SHARED_SYM MotionData Hu3DMotion[HU3D_MOTION_MAX]; +MotionData Hu3DMotion[HU3D_MOTION_MAX]; static HsfBitmap *bitMapPtr; -void Hu3DMotionInit(void) -{ +void Hu3DMotionInit(void) { MotionData *var_r31; s16 i; - var_r31 = (MotionData *)Hu3DData; + var_r31 = (MotionData*) Hu3DData; for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { - var_r31->hsfData = 0; + var_r31->unk_04 = 0; } } -s16 Hu3DMotionCreate(void *arg0) -{ +s16 Hu3DMotionCreate(void *arg0) { MotionData *var_r31; s16 i; var_r31 = Hu3DMotion; for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { - if (var_r31->hsfData == 0) { + if (var_r31->unk_04 == 0) { break; } } @@ -48,21 +45,20 @@ s16 Hu3DMotionCreate(void *arg0) OSReport("Error: Create Motion Over!\n"); return -1; } - var_r31->hsfData = LoadHSF(arg0); - var_r31->attr = 0; - var_r31->modelId = -1; + var_r31->unk_04 = LoadHSF(arg0); + var_r31->unk_00 = 0; + var_r31->unk_02 = -1; return i; } -s16 Hu3DMotionModelCreate(s16 arg0) -{ +s16 Hu3DMotionModelCreate(s16 arg0) { ModelData *temp_r29 = &Hu3DData[arg0]; MotionData *var_r31; s16 i; var_r31 = Hu3DMotion; for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { - if (var_r31->hsfData == 0) { + if (var_r31->unk_04 == 0) { break; } } @@ -70,60 +66,53 @@ s16 Hu3DMotionModelCreate(s16 arg0) OSReport("Error: Create Motion Over!\n"); return -1; } - var_r31->hsfData = temp_r29->hsfData; - var_r31->attr = 0; - var_r31->modelId = arg0; + var_r31->unk_04 = temp_r29->hsfData; + var_r31->unk_00 = 0; + var_r31->unk_02 = arg0; temp_r29->unk_20 = i; return i; } -s32 Hu3DMotionKill(s16 arg0) -{ +s32 Hu3DMotionKill(s16 arg0) { ModelData *var_r30; MotionData *temp_r31; s16 i; temp_r31 = &Hu3DMotion[arg0]; - if (temp_r31->hsfData == 0) { + if (temp_r31->unk_04 == 0) { return 0; } var_r30 = Hu3DData; for (i = 0; i < 512; i++, var_r30++) { - if (var_r30->hsfData && var_r30->unk_08 == arg0 && temp_r31->modelId != i) { + if (var_r30->hsfData && var_r30->unk_08 == arg0 && temp_r31->unk_02 != i) { break; } } if (i != 512) { return 0; } - if (temp_r31->modelId == -1) { -#ifdef TARGET_PC - KillHSF(temp_r31->hsfData); -#endif - HuMemDirectFree(temp_r31->hsfData); + if (temp_r31->unk_02 == -1) { + HuMemDirectFree(temp_r31->unk_04); + } else { + Hu3DData[temp_r31->unk_02].unk_20 = -1; } - else { - Hu3DData[temp_r31->modelId].unk_20 = -1; - } - temp_r31->hsfData = NULL; + temp_r31->unk_04 = NULL; return 1; } -void Hu3DMotionAllKill(void) -{ +void Hu3DMotionAllKill(void) { MotionData *var_r27; s16 i; var_r27 = Hu3DMotion; for (i = 0; i < HU3D_MOTION_MAX; i++, var_r27++) { - if (var_r27->hsfData) { + if (var_r27->unk_04) { Hu3DMotionKill(i); } } } -void Hu3DMotionSet(s16 arg0, s16 arg1) -{ +void Hu3DMotionSet(s16 arg0, s16 arg1) { Hu3DData[arg0].unk_0C = -1; Hu3DData[arg0].unk_08 = arg1; Hu3DData[arg0].unk_64 = 0.0f; @@ -131,35 +120,29 @@ void Hu3DMotionSet(s16 arg0, s16 arg1) Hu3DData[arg0].unk_70 = Hu3DMotionMaxTimeGet(arg0); } -void Hu3DMotionOverlaySet(s16 arg0, s16 arg1) -{ +void Hu3DMotionOverlaySet(s16 arg0, s16 arg1) { Hu3DData[arg0].unk_0A = arg1; Hu3DData[arg0].unk_74 = 0.0f; Hu3DData[arg0].unk_78 = 1.0f; } -void Hu3DMotionOverlayReset(s16 arg0) -{ +void Hu3DMotionOverlayReset(s16 arg0) { Hu3DData[arg0].unk_0A = -1; } -float Hu3DMotionOverlayTimeGet(s16 arg0) -{ +float Hu3DMotionOverlayTimeGet(s16 arg0) { return Hu3DData[arg0].unk_74; } -void Hu3DMotionOverlayTimeSet(s16 arg0, float arg1) -{ +void Hu3DMotionOverlayTimeSet(s16 arg0, float arg1) { Hu3DData[arg0].unk_74 = arg1; } -void Hu3DMotionOverlaySpeedSet(s16 arg0, float arg1) -{ +void Hu3DMotionOverlaySpeedSet(s16 arg0, float arg1) { Hu3DData[arg0].unk_78 = arg1; } -void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) -{ +void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) { ModelData *temp_r31 = &Hu3DData[arg0]; MotionData *sp10 = &Hu3DMotion[arg1]; s32 var_r30; @@ -184,8 +167,7 @@ void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) temp_r31->motion_attr &= ~HU3D_MOTATTR_ALL; temp_r31->motion_attr |= var_r30; temp_r31->motion_attr &= ~HU3D_MOTATTR; - } - else { + } else { temp_r31->motion_attr &= ~HU3D_MOTATTR_SHIFT_ALL; } temp_r31->unk_0C = arg1; @@ -209,8 +191,7 @@ void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) temp_r31->motion_attr &= ~HU3D_MOTATTR; } -void Hu3DMotionShapeSet(s16 arg0, s16 arg1) -{ +void Hu3DMotionShapeSet(s16 arg0, s16 arg1) { Hu3DData[arg0].unk_0E = arg1; Hu3DData[arg0].unk_94 = 0.0f; Hu3DData[arg0].unk_98 = 1.0f; @@ -218,40 +199,34 @@ void Hu3DMotionShapeSet(s16 arg0, s16 arg1) Hu3DData[arg0].unk_A0 = Hu3DMotionShapeMaxTimeGet(arg0); } -s16 Hu3DMotionShapeIDGet(s16 arg0) -{ +s16 Hu3DMotionShapeIDGet(s16 arg0) { return Hu3DData[arg0].unk_0E; } -void Hu3DMotionShapeSpeedSet(s16 arg0, float arg1) -{ +void Hu3DMotionShapeSpeedSet(s16 arg0, float arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_98 = arg1; } -void Hu3DMotionShapeTimeSet(s16 arg0, float arg1) -{ +void Hu3DMotionShapeTimeSet(s16 arg0, float arg1) { Hu3DData[arg0].unk_94 = arg1; } -float Hu3DMotionShapeMaxTimeGet(s16 arg0) -{ +float Hu3DMotionShapeMaxTimeGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; return Hu3DMotionMotionMaxTimeGet(temp_r31->unk_0E); } -void Hu3DMotionShapeStartEndSet(s16 arg0, float arg1, float arg2) -{ +void Hu3DMotionShapeStartEndSet(s16 arg0, float arg1, float arg2) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_9C = arg1; temp_r31->unk_A0 = arg2; } -s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1) -{ +s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; s16 i; @@ -262,7 +237,7 @@ s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1) temp_r31->unk_B4[i] = 1.0f; temp_r31->cluster_attr[i] = HU3D_ATTR_NONE; temp_r31->attr |= HU3D_ATTR_CLUSTER_ON; - ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].hsfData); + ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].unk_04); return i; } } @@ -270,8 +245,7 @@ s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1) return -1; } -s16 Hu3DMotionClusterNoSet(s16 arg0, s16 arg1, s16 arg2) -{ +s16 Hu3DMotionClusterNoSet(s16 arg0, s16 arg1, s16 arg2) { ModelData *temp_r31 = &Hu3DData[arg0]; Hu3DMotionClusterReset(arg0, arg2); @@ -279,17 +253,15 @@ s16 Hu3DMotionClusterNoSet(s16 arg0, s16 arg1, s16 arg2) temp_r31->unk_A4[arg2] = 0.0f; temp_r31->unk_B4[arg2] = 1.0f; temp_r31->attr |= HU3D_ATTR_CLUSTER_ON; - ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].hsfData); + ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].unk_04); return arg2; } -void Hu3DMotionShapeReset(s16 arg0) -{ +void Hu3DMotionShapeReset(s16 arg0) { Hu3DData[arg0].unk_0E = -1; } -void Hu3DMotionClusterReset(s16 arg0, s16 arg1) -{ +void Hu3DMotionClusterReset(s16 arg0, s16 arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; s16 i; @@ -298,8 +270,7 @@ void Hu3DMotionClusterReset(s16 arg0, s16 arg1) temp_r31->unk_10[i] = -1; } temp_r31->attr &= ~HU3D_ATTR_CLUSTER_ON; - } - else { + } else { temp_r31->unk_10[arg1] = -1; for (i = 0; i < 4; i++) { if (temp_r31->unk_10[i] != -1) { @@ -310,22 +281,19 @@ void Hu3DMotionClusterReset(s16 arg0, s16 arg1) } } -s16 Hu3DMotionIDGet(s16 arg0) -{ +s16 Hu3DMotionIDGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; return temp_r31->unk_08; } -s16 Hu3DMotionShiftIDGet(s16 arg0) -{ +s16 Hu3DMotionShiftIDGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; return temp_r31->unk_0C; } -void Hu3DMotionTimeSet(s16 arg0, float arg1) -{ +void Hu3DMotionTimeSet(s16 arg0, float arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; if (Hu3DMotionMaxTimeGet(arg0) <= arg1) { @@ -335,7 +303,7 @@ void Hu3DMotionTimeSet(s16 arg0, float arg1) arg1 = 0.0f; } temp_r31->unk_64 = arg1; - if (temp_r31->hsfData != (HsfData *)-1 && temp_r31->hsfData->cenvCnt != 0 && (temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { + if (temp_r31->hsfData != (HsfData*) -1 && temp_r31->hsfData->cenvCnt != 0 && (temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { Hu3DMotionExec(arg0, temp_r31->unk_08, arg1, 0); if (temp_r31->unk_0C != -1) { Hu3DSubMotionExec(arg0); @@ -344,22 +312,19 @@ void Hu3DMotionTimeSet(s16 arg0, float arg1) } } -float Hu3DMotionTimeGet(s16 arg0) -{ +float Hu3DMotionTimeGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; return temp_r31->unk_64; } -float Hu3DMotionShiftTimeGet(s16 arg0) -{ +float Hu3DMotionShiftTimeGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; return temp_r31->unk_84; } -float Hu3DMotionMaxTimeGet(s16 arg0) -{ +float Hu3DMotionMaxTimeGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; MotionData *temp_r30; HsfMotion *temp_r29; @@ -369,13 +334,12 @@ float Hu3DMotionMaxTimeGet(s16 arg0) return 0.0f; } temp_r30 = &Hu3DMotion[temp_r31->unk_08]; - temp_r29 = temp_r30->hsfData->motion; + temp_r29 = temp_r30->unk_04->motion; temp_r28 = 0.0001 + temp_r29->len; return temp_r28; } -float Hu3DMotionShiftMaxTimeGet(s16 arg0) -{ +float Hu3DMotionShiftMaxTimeGet(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; MotionData *temp_r30; HsfMotion *temp_r29; @@ -385,75 +349,66 @@ float Hu3DMotionShiftMaxTimeGet(s16 arg0) return 0.0f; } temp_r30 = &Hu3DMotion[temp_r31->unk_0C]; - temp_r29 = temp_r30->hsfData->motion; + temp_r29 = temp_r30->unk_04->motion; temp_r28 = 0.0001 + temp_r29->len; return temp_r28; } -void Hu3DMotionShiftStartEndSet(s16 arg0, float arg1, float arg2) -{ +void Hu3DMotionShiftStartEndSet(s16 arg0, float arg1, float arg2) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_8C = arg1; temp_r31->unk_90 = arg2; } -float Hu3DMotionMotionMaxTimeGet(s16 arg0) -{ +float Hu3DMotionMotionMaxTimeGet(s16 arg0) { MotionData *temp_r31 = &Hu3DMotion[arg0]; HsfMotion *temp_r30; s16 temp_r29; - if (temp_r31->hsfData == 0) { + if (temp_r31->unk_04 == 0) { return 0.0f; } - temp_r30 = temp_r31->hsfData->motion; + temp_r30 = temp_r31->unk_04->motion; temp_r29 = 0.0001 + temp_r30->len; return temp_r29; } -void Hu3DMotionStartEndSet(s16 arg0, float arg1, float arg2) -{ +void Hu3DMotionStartEndSet(s16 arg0, float arg1, float arg2) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_6C = arg1; temp_r31->unk_70 = arg2; } -s32 Hu3DMotionEndCheck(s16 arg0) -{ +s32 Hu3DMotionEndCheck(s16 arg0) { if (!(Hu3DData[arg0].motion_attr & HU3D_MOTATTR_REV)) { return (Hu3DMotionMaxTimeGet(arg0) <= Hu3DMotionTimeGet(arg0)); - } - else { + } else { return (Hu3DMotionTimeGet(arg0) <= 0.0f); } } -void Hu3DMotionSpeedSet(s16 arg0, float arg1) -{ +void Hu3DMotionSpeedSet(s16 arg0, float arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_68 = arg1; } -void Hu3DMotionShiftSpeedSet(s16 arg0, float arg1) -{ +void Hu3DMotionShiftSpeedSet(s16 arg0, float arg1) { ModelData *temp_r31 = &Hu3DData[arg0]; temp_r31->unk_88 = arg1; } -void Hu3DMotionNoMotSet(s16 arg0, char *arg1, u32 arg2) -{ +void Hu3DMotionNoMotSet(s16 arg0, char *arg1, u32 arg2) { HsfConstData *var_r29; HsfObject *temp_r3; temp_r3 = Hu3DModelObjPtrGet(arg0, arg1); if (temp_r3->constData == 0) { - var_r29 = ObjConstantMake(temp_r3, (u32)Hu3DData[arg0].unk_48); - } - else { + var_r29 = ObjConstantMake(temp_r3, (u32) Hu3DData[arg0].unk_48); + } else { var_r29 = temp_r3->constData; } var_r29->flags |= arg2; @@ -477,8 +432,7 @@ void Hu3DMotionNoMotSet(s16 arg0, char *arg1, u32 arg2) } } -void Hu3DMotionNoMotReset(s16 arg0, char *arg1, u32 arg2) -{ +void Hu3DMotionNoMotReset(s16 arg0, char *arg1, u32 arg2) { HsfObject *temp_r31; HsfConstData *temp_r30; @@ -487,16 +441,14 @@ void Hu3DMotionNoMotReset(s16 arg0, char *arg1, u32 arg2) temp_r30->flags &= ~arg2; } -void Hu3DMotionForceSet(s16 arg0, char *arg1, u32 arg2, float arg3) -{ +void Hu3DMotionForceSet(s16 arg0, char *arg1, u32 arg2, float arg3) { HsfConstData *var_r29; HsfObject *temp_r3; temp_r3 = Hu3DModelObjPtrGet(arg0, arg1); if (temp_r3->constData == 0) { - var_r29 = ObjConstantMake(temp_r3, (u32)Hu3DData[arg0].unk_48); - } - else { + var_r29 = ObjConstantMake(temp_r3, (u32) Hu3DData[arg0].unk_48); + } else { var_r29 = temp_r3->constData; } var_r29->flags |= arg2; @@ -520,8 +472,7 @@ void Hu3DMotionForceSet(s16 arg0, char *arg1, u32 arg2, float arg3) } } -void Hu3DMotionNext(s16 arg0) -{ +void Hu3DMotionNext(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; HsfMotion *temp_r29; MotionData *temp_r27; @@ -529,55 +480,47 @@ void Hu3DMotionNext(s16 arg0) s16 i; temp_r27 = &Hu3DMotion[temp_r31->unk_08]; - temp_r29 = temp_r27->hsfData->motion; + temp_r29 = temp_r27->unk_04->motion; temp_r28 = temp_r31->motion_attr; if (temp_r31->unk_08 != -1) { temp_r27 = &Hu3DMotion[temp_r31->unk_08]; if (!(temp_r28 & HU3D_MOTATTR_PAUSE)) { if (!(temp_r28 & HU3D_MOTATTR_REV)) { temp_r31->unk_64 += temp_r31->unk_68 * minimumVcountf; - } - else { + } else { temp_r31->unk_64 -= temp_r31->unk_68 * minimumVcountf; } if (temp_r28 & HU3D_MOTATTR_LOOP) { if (temp_r31->unk_64 < temp_r31->unk_6C) { temp_r31->unk_64 = temp_r31->unk_70 - (temp_r31->unk_6C - temp_r31->unk_64); - } - else if (temp_r31->unk_64 >= temp_r31->unk_70) { + } else if (temp_r31->unk_64 >= temp_r31->unk_70) { temp_r31->unk_64 = temp_r31->unk_6C + (temp_r31->unk_64 - temp_r31->unk_70); } - } - else if (temp_r31->unk_64 < 0.0f) { + } else if (temp_r31->unk_64 < 0.0f) { temp_r31->unk_64 = 0.0f; - } - else if (temp_r31->unk_64 >= temp_r31->unk_70) { + } else if (temp_r31->unk_64 >= temp_r31->unk_70) { temp_r31->unk_64 = temp_r31->unk_70; } } } if (temp_r31->unk_0A != -1) { temp_r27 = &Hu3DMotion[temp_r31->unk_0A]; - temp_r29 = temp_r27->hsfData->motion; + temp_r29 = temp_r27->unk_04->motion; if (!(temp_r28 & HU3D_MOTATTR_OVL_PAUSE)) { if (!(temp_r28 & HU3D_MOTATTR_OVL_REV)) { temp_r31->unk_74 += temp_r31->unk_78 * minimumVcountf; - } - else { + } else { temp_r31->unk_74 -= temp_r31->unk_78 * minimumVcountf; } if (temp_r28 & HU3D_MOTATTR_OVL_LOOP) { if (temp_r31->unk_74 < 0.0f) { temp_r31->unk_74 = temp_r29->len; - } - else if (temp_r31->unk_74 >= temp_r29->len) { + } else if (temp_r31->unk_74 >= temp_r29->len) { temp_r31->unk_74 = 0.0f; } - } - else if (temp_r31->unk_74 < 0.0f) { + } else if (temp_r31->unk_74 < 0.0f) { temp_r31->unk_74 = 0.0f; - } - else if (temp_r31->unk_74 >= temp_r29->len) { + } else if (temp_r31->unk_74 >= temp_r29->len) { temp_r31->unk_74 = temp_r29->len; } } @@ -610,47 +553,39 @@ void Hu3DMotionNext(s16 arg0) temp_r27 = &Hu3DMotion[temp_r31->unk_0C]; if (!(temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_REV)) { temp_r31->unk_84 += temp_r31->unk_88 * minimumVcountf; - } - else { + } else { temp_r31->unk_84 -= temp_r31->unk_88 * minimumVcountf; } if (temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_LOOP) { if (temp_r31->unk_84 < temp_r31->unk_8C) { temp_r31->unk_84 = temp_r31->unk_90; - } - else if (temp_r31->unk_84 >= temp_r31->unk_90) { + } else if (temp_r31->unk_84 >= temp_r31->unk_90) { temp_r31->unk_84 = temp_r31->unk_8C; } - } - else if (temp_r31->unk_84 < temp_r31->unk_8C) { + } else if (temp_r31->unk_84 < temp_r31->unk_8C) { temp_r31->unk_84 = temp_r31->unk_8C; - } - else if (temp_r31->unk_84 >= temp_r31->unk_90) { + } else if (temp_r31->unk_84 >= temp_r31->unk_90) { temp_r31->unk_84 = temp_r31->unk_90; } } } if (temp_r31->unk_0E != -1 && !(temp_r28 & HU3D_MOTATTR_SHAPE_PAUSE)) { temp_r27 = &Hu3DMotion[temp_r31->unk_0E]; - temp_r29 = temp_r27->hsfData->motion; + temp_r29 = temp_r27->unk_04->motion; if (!(temp_r28 & HU3D_MOTATTR_SHAPE_REV)) { temp_r31->unk_94 += temp_r31->unk_98 * minimumVcountf; - } - else { + } else { temp_r31->unk_94 -= temp_r31->unk_98 * minimumVcountf; } if (temp_r28 & HU3D_MOTATTR_SHAPE_LOOP) { if (temp_r31->unk_94 < temp_r31->unk_9C) { temp_r31->unk_94 = temp_r31->unk_A0; - } - else if (temp_r31->unk_94 >= temp_r31->unk_A0) { + } else if (temp_r31->unk_94 >= temp_r31->unk_A0) { temp_r31->unk_94 = temp_r31->unk_9C; } - } - else if (temp_r31->unk_94 < temp_r31->unk_9C) { + } else if (temp_r31->unk_94 < temp_r31->unk_9C) { temp_r31->unk_94 = temp_r31->unk_9C; - } - else if (temp_r31->unk_94 >= temp_r31->unk_A0) { + } else if (temp_r31->unk_94 >= temp_r31->unk_A0) { temp_r31->unk_94 = temp_r31->unk_A0; } } @@ -658,25 +593,21 @@ void Hu3DMotionNext(s16 arg0) for (i = 0; i < 4; i++) { if (temp_r31->unk_10[i] != -1 && !(temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_PAUSE)) { temp_r27 = &Hu3DMotion[temp_r31->unk_10[i]]; - temp_r29 = temp_r27->hsfData->motion; + temp_r29 = temp_r27->unk_04->motion; if (!(temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_REV)) { temp_r31->unk_A4[i] += temp_r31->unk_B4[i] * minimumVcountf; - } - else { + } else { temp_r31->unk_A4[i] -= temp_r31->unk_B4[i] * minimumVcountf; } if (temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_LOOP) { if (temp_r31->unk_A4[i] < 0.0f) { temp_r31->unk_A4[i] = temp_r29->len; - } - else if (temp_r31->unk_A4[i] >= temp_r29->len) { + } else if (temp_r31->unk_A4[i] >= temp_r29->len) { temp_r31->unk_A4[i] = 0.0f; } - } - else if (temp_r31->unk_A4[i] < 0.0f) { + } else if (temp_r31->unk_A4[i] < 0.0f) { temp_r31->unk_A4[i] = 0.0f; - } - else if (temp_r31->unk_A4[i] >= temp_r29->len) { + } else if (temp_r31->unk_A4[i] >= temp_r29->len) { temp_r31->unk_A4[i] = temp_r29->len; } } @@ -684,8 +615,7 @@ void Hu3DMotionNext(s16 arg0) } } -void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) -{ +void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) { MotionData *sp18; HsfData *sp14; HsfTrack *sp10; @@ -695,7 +625,7 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) HsfObject *temp_r31; HsfObject *var_r19; HsfCluster *var_r23; - HsfTrack *track; + HsfTrack *var_r30; HsfTrack *temp_r25; HsfTrack *temp_r22; HsfTrack *var_r26; @@ -707,9 +637,9 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) temp_r27 = &Hu3DData[arg0]; sp18 = &Hu3DMotion[arg1]; temp_r29 = temp_r27->hsfData; - sp14 = sp18->hsfData; + sp14 = sp18->unk_04; temp_r21 = sp14->motion; - track = temp_r21->track; + var_r30 = temp_r21->track; var_r19 = temp_r29->object; if (arg3 == 0) { for (var_r18 = 0; var_r18 < temp_r29->objectCnt; var_r19++, var_r18++) { @@ -736,92 +666,83 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) if (!(temp_r24 & 0x200)) { temp_r31->data.curr.rot.z = temp_r31->data.base.rot.z; } - } - else { + } else { temp_r31->data.curr = temp_r31->data.base; } - } - else { + } else { temp_r31->data.curr = temp_r31->data.base; } } } - sp10 = &track[temp_r21->numTracks]; - for (; track < sp10; track++) { - switch (track->type) { - case HSF_TRACK_TRANSFORM: - if (track->target < temp_r29->objectCnt && track->target != -1) { - temp_r31 = &temp_r29->object[track->target]; - if (track->channel == 0x28) { - temp_r31->data.mesh.baseMorph = GetCurve(track, arg2); - } - else if (temp_r31->type == 7) { + sp10 = &var_r30[temp_r21->numTracks]; + for (; var_r30 < sp10; var_r30++) { + switch (var_r30->type) { + case 2: + if (var_r30->target < temp_r29->objectCnt && var_r30->target != -1) { + temp_r31 = &temp_r29->object[var_r30->target]; + if (var_r30->channel == 0x28) { + temp_r31->data.mesh.baseMorph = GetCurve(var_r30, arg2); + } else if (temp_r31->type == 7) { if (temp_r27->attr & HU3D_ATTR_CAMERA_MOTON) { - SetObjCameraMotion(arg0, track, GetCurve(track, arg2)); + SetObjCameraMotion(arg0, var_r30, GetCurve(var_r30, arg2)); } - } - else if (temp_r31->type == 8) { - SetObjLightMotion(arg0, track, GetCurve(track, arg2)); - } - else if (track->channel == 0x18) { + } else if (temp_r31->type == 8) { + SetObjLightMotion(arg0, var_r30, GetCurve(var_r30, arg2)); + } else if (var_r30->channel == 0x18) { if (temp_r31->constData) { temp_r28 = temp_r31->constData; - if (GetCurve(track, arg2) == 1.0f) { + if (GetCurve(var_r30, arg2) == 1.0f) { temp_r28->flags &= ~0x1000; - } - else { + } else { temp_r28->flags |= 0x1000; } } - } - else if (track->channel == 0x1A) { + } else if (var_r30->channel == 0x1A) { if (temp_r31->constData) { temp_r28 = temp_r31->constData; - if (GetCurve(track, arg2) == 1.0f) { + if (GetCurve(var_r30, arg2) == 1.0f) { temp_r28->flags &= ~0x2000; - } - else { + } else { temp_r28->flags |= 0x2000; } } - } - else { - temp_r17 = GetObjTRXPtr(temp_r31, track->channel); - if (temp_r17 != (float *)-1) { - *temp_r17 = GetCurve(track, arg2); + } else { + temp_r17 = GetObjTRXPtr(temp_r31, var_r30->channel); + if (temp_r17 != (float*) -1) { + *temp_r17 = GetCurve(var_r30, arg2); } } } break; - case HSF_TRACK_MORPH: - temp_r25 = track; + case 3: + temp_r25 = var_r30; if (temp_r25->target < temp_r29->objectCnt) { temp_r31 = &temp_r29->object[temp_r25->target]; temp_r31->data.mesh.morphWeight[temp_r25->channel_s16] = GetCurve(temp_r25, arg2); } break; - case HSF_TRACK_MATERIAL: + case 9: if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { - if (track->param < temp_r29->materialCnt) { - SetObjMatMotion(arg0, track, GetCurve(track, arg2)); + if (var_r30->param < temp_r29->materialCnt) { + SetObjMatMotion(arg0, var_r30, GetCurve(var_r30, arg2)); } } break; - case HSF_TRACK_CLUSTER: + case 5: if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { - var_r23 = &temp_r29->cluster[track->target_s16]; - var_r23->index = GetClusterCurve(track, arg2); + var_r23 = &temp_r29->cluster[var_r30->target_s16]; + var_r23->unk10 = GetClusterCurve(var_r30, arg2); } break; - case HSF_TRACK_CLUSTER_WEIGHT: + case 6: if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { - temp_r22 = track; + temp_r22 = var_r30; var_r23 = &temp_r29->cluster[temp_r22->target_s16]; - var_r23->weight[temp_r22->unk04] = GetClusterWeightCurve(temp_r22, arg2); + var_r23->unk14[temp_r22->unk04] = GetClusterWeightCurve(temp_r22, arg2); } break; - case HSF_TRACK_ATTRIBUTE: - var_r26 = track; + case 10: + var_r26 = var_r30; if (var_r26->target_s16 != -1 || !(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { if (var_r26->param != -1 && var_r26->param < temp_r29->attributeCnt) { SetObjAttrMotion(arg0, var_r26, GetCurve(var_r26, arg2)); @@ -832,38 +753,36 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) } } -void Hu3DCameraMotionExec(s16 arg0) -{ +void Hu3DCameraMotionExec(s16 arg0) { ModelData *temp_r30; MotionData *temp_r28; HsfData *temp_r27; - HsfMotion *motion; - HsfTrack *track; + HsfMotion *temp_r29; + HsfTrack *var_r31; HsfTrack *temp_r26; temp_r30 = &Hu3DData[arg0]; temp_r28 = &Hu3DMotion[temp_r30->unk_08]; - temp_r27 = temp_r28->hsfData; - motion = temp_r27->motion; - track = motion->track; + temp_r27 = temp_r28->unk_04; + temp_r29 = temp_r27->motion; + var_r31 = temp_r29->track; if (temp_r30->attr & HU3D_ATTR_CAMERA_MOTON) { - temp_r26 = &track[motion->numTracks]; - for (; track < temp_r26; track++) { - if (track->type == HSF_TRACK_TRANSFORM && track->param_u16 == 7) { - SetObjCameraMotion(arg0, track, GetCurve(track, temp_r30->unk_64)); + temp_r26 = &var_r31[temp_r29->numTracks]; + for (; var_r31 < temp_r26; var_r31++) { + if (var_r31->type == 2 && var_r31->param_u16 == 7) { + SetObjCameraMotion(arg0, var_r31, GetCurve(var_r31, temp_r30->unk_64)); } } } } -void Hu3DSubMotionExec(s16 arg0) -{ +void Hu3DSubMotionExec(s16 arg0) { ModelData *temp_r30; MotionData *temp_r22; HsfData *temp_r28; HsfData *temp_r21; - HsfMotion *motion; - HsfTrack *track; + HsfMotion *temp_r25; + HsfTrack *var_r29; HsfObject *var_r23; HsfObject *temp_r26; float *temp_r31; @@ -875,9 +794,9 @@ void Hu3DSubMotionExec(s16 arg0) temp_r30 = &Hu3DData[arg0]; temp_r22 = &Hu3DMotion[temp_r30->unk_0C]; temp_r28 = temp_r30->hsfData; - temp_r21 = temp_r22->hsfData; - motion = temp_r21->motion; - track = motion->track; + temp_r21 = temp_r22->unk_04; + temp_r25 = temp_r21->motion; + var_r29 = temp_r25->track; var_r23 = temp_r28->object; if (temp_r30->unk_08 == -1) { for (var_r27 = 0; var_r27 < temp_r28->objectCnt; var_r23++, var_r27++) { @@ -887,20 +806,19 @@ void Hu3DSubMotionExec(s16 arg0) } if (temp_r30->unk_80) { var_f30 = temp_r30->unk_7C / temp_r30->unk_80; - } - else { + } else { var_f30 = 1.0f; } - for (var_r27 = 0; var_r27 < motion->numTracks; var_r27++, track++) { - switch (track->type) { - case HSF_TRACK_TRANSFORM: - if (track->target < temp_r28->objectCnt && track->target != -1) { - temp_r26 = &temp_r28->object[track->target]; - temp_r24 = track->channel; + for (var_r27 = 0; var_r27 < temp_r25->numTracks; var_r27++, var_r29++) { + switch (var_r29->type) { + case 2: + if (var_r29->target < temp_r28->objectCnt && var_r29->target != -1) { + temp_r26 = &temp_r28->object[var_r29->target]; + temp_r24 = var_r29->channel; temp_r31 = GetObjTRXPtr(temp_r26, temp_r24); - if (temp_r31 != (float *)-1) { + if (temp_r31 != (float*) -1) { if (temp_r24 == 0x1C || temp_r24 == 0x1D || temp_r24 == 0x1E) { - var_f31 = GetCurve(track, temp_r30->unk_84); + var_f31 = GetCurve(var_r29, temp_r30->unk_84); if (var_f31 < 0.0f) { var_f31 += 360.0f; } @@ -911,14 +829,12 @@ void Hu3DSubMotionExec(s16 arg0) if (*temp_r31 > (180.0f + var_f31)) { *temp_r31 -= 360.0f; } - } - else if (*temp_r31 < (var_f31 - 180.0f)) { + } else if (*temp_r31 < (var_f31 - 180.0f)) { var_f31 -= 360.0f; } *temp_r31 = (1.0f - var_f30) * *temp_r31 + var_f30 * var_f31; - } - else { - *temp_r31 = (1.0f - var_f30) * *temp_r31 + var_f30 * GetCurve(track, temp_r30->unk_84); + } else { + *temp_r31 = (1.0f - var_f30) * *temp_r31 + var_f30 * GetCurve(var_r29, temp_r30->unk_84); } } } @@ -927,44 +843,38 @@ void Hu3DSubMotionExec(s16 arg0) } } -#ifdef __MWERKS__ -__declspec(weak) float *GetObjTRXPtr(HsfObject *arg0, u16 arg1) -{ -#else -float *GetObjTRXPtr(HsfObject *arg0, u16 arg1) -{ -#endif +__declspec(weak) float *GetObjTRXPtr(HsfObject *arg0, u16 arg1) { HsfConstData *temp_r31 = arg0->constData; switch (arg1) { case 8: if (temp_r31 && (temp_r31->flags & 0x10)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.pos.x; case 9: if (temp_r31 && (temp_r31->flags & 0x20)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.pos.y; case 10: if (temp_r31 && (temp_r31->flags & 0x40)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.pos.z; case 28: if (temp_r31 && (temp_r31->flags & 0x80)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.rot.x; case 29: if (temp_r31 && (temp_r31->flags & 0x100)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.rot.y; case 30: if (temp_r31 && (temp_r31->flags & 0x200)) { - return (float *)-1; + return (float*) -1; } return &arg0->data.curr.rot.z; case 31: @@ -974,12 +884,11 @@ float *GetObjTRXPtr(HsfObject *arg0, u16 arg1) case 33: return &arg0->data.curr.scale.z; default: - return (float *)-1; + return (float*) -1; } } -void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2) -{ +void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2) { HsfMaterial *temp_r31; HsfData *temp_r29; ModelData *temp_r30; @@ -991,8 +900,7 @@ void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2) var_f31 = arg2; if (arg2 > 1.0f) { var_f31 = 1.0f; - } - else if (arg2 < 0.0f) { + } else if (arg2 < 0.0f) { var_f31 = 0.0f; } switch (arg1->channel) { @@ -1034,8 +942,7 @@ void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2) } } -void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2) -{ +void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2) { ModelData *temp_r28; HsfData *temp_r27; HsfAttribute *temp_r30; @@ -1048,8 +955,7 @@ void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2) var_f30 = arg2; if (arg2 > 1.0f) { var_f30 = 1.0f; - } - else if (arg2 < 0.0f) { + } else if (arg2 < 0.0f) { var_f30 = 0.0f; } switch (arg1->channel) { @@ -1064,20 +970,18 @@ void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2) case 0x21: case 0x43: if (temp_r30->unk04 == 0) { - var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfdrawStruct01), (u32)Hu3DData[arg0].unk_48); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfdrawStruct01), (u32) Hu3DData[arg0].unk_48); temp_r30->unk04 = var_r31; var_r31->unk00 = 0; var_r31->unk08 = var_r31->unk0C = var_r31->unk10 = 0.0f; var_r31->unk14 = var_r31->unk18 = var_r31->unk1C = 0.0f; var_r31->unk20 = var_r31->unk24 = var_r31->unk28 = 1.0f; - } - else { + } else { var_r31 = temp_r30->unk04; } if (arg1->channel != 0x43) { var_r31->unk00 |= 4; - } - else { + } else { var_r31->unk00 |= 8; } break; @@ -1125,8 +1029,7 @@ void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2) } } -void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) -{ +void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { ModelData *temp_r29; Vec sp18; Vec spC; @@ -1142,8 +1045,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) var_f31 = arg2; if (arg2 > 1.0f) { var_f31 = 1.0f; - } - else if (arg2 < 0.0f) { + } else if (arg2 < 0.0f) { var_f31 = 0.0f; } switch (arg1->channel) { @@ -1219,8 +1121,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) } } -void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2) -{ +void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2) { s16 var_r29; ModelData *temp_r30; HsfData *temp_r28; @@ -1235,11 +1136,10 @@ void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2) var_r26 = temp_r28->object; for (i = var_r29 = 0; i < temp_r28->objectCnt; i++, var_r26++) { var_r24 = var_r26; - if (var_r24->type == HSF_OBJ_NONE2) { + if (var_r24->type == 8) { if (i != arg1->target) { var_r29++; - } - else { + } else { break; } } @@ -1249,8 +1149,7 @@ void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2) var_f30 = arg2; if (arg2 > 1.0f) { var_f30 = 1.0f; - } - else if (arg2 < 0.0f) { + } else if (arg2 < 0.0f) { var_f30 = 0.0f; } switch (arg1->channel) { @@ -1279,29 +1178,27 @@ void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2) } } -float GetCurve(HsfTrack *track, float arg1) -{ +float GetCurve(HsfTrack *arg0, float arg1) { float *var_r30; - switch (track->curveType) { - case HSF_CURVE_LINEAR: - return GetLinear(track->numKeyframes, track->data, arg1); - case HSF_CURVE_BEZIER: - return GetBezier(track->numKeyframes, track, arg1); - case HSF_CURVE_BITMAP: - bitMapPtr = GetBitMap(track->numKeyframes, track->data, arg1); + switch (arg0->curveType) { + case 1: + return GetLinear(arg0->numKeyframes, arg0->data, arg1); + case 2: + return GetBezier(arg0->numKeyframes, arg0, arg1); + case 3: + bitMapPtr = GetBitMap(arg0->numKeyframes, arg0->data, arg1); break; - case HSF_CURVE_CONST: - var_r30 = &track->value; + case 4: + var_r30 = &arg0->value; return *var_r30; - case HSF_CURVE_STEP: - return GetConstant(track->numKeyframes, track->data, arg1); + case 0: + return GetConstant(arg0->numKeyframes, arg0->data, arg1); } return 0.0f; } -float GetConstant(s32 arg0, float *arg1, float arg2) -{ +float GetConstant(s32 arg0, float *arg1, float arg2) { float *var_r31; s16 i; @@ -1317,8 +1214,7 @@ float GetConstant(s32 arg0, float *arg1, float arg2) return var_r31[-1]; } -float GetLinear(s32 arg0, float arg1[][2], float arg2) -{ +float GetLinear(s32 arg0, float arg1[][2], float arg2) { float var_f31; float var_f30; s16 temp_r30; @@ -1338,13 +1234,7 @@ float GetLinear(s32 arg0, float arg1[][2], float arg2) return arg1[arg0 - 1][1]; } -#ifdef __MWERKS__ -__declspec(weak) float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) -{ -#else -float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) -{ -#endif +__declspec(weak) float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) { float temp_f24; float temp_f29; float temp_f28; @@ -1353,8 +1243,8 @@ float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) float temp_f25; float temp_f30; float temp_f31; - float(*var_r31)[4]; - float(*var_r29)[4]; + float (*var_r31)[4]; + float (*var_r29)[4]; s32 i; var_r31 = arg1->data; @@ -1366,7 +1256,7 @@ float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) i = 0; } if (i == -1) { - var_r31 = (float(*)[4])arg1->data + arg1->start; + var_r31 = (float(*)[4]) arg1->data + arg1->start; var_r29 = var_r31 - 1; for (i = arg1->start; i < arg0; i++, var_r31++) { if (arg2 >= var_r29[0][0] && arg2 < var_r31[0][0]) { @@ -1396,12 +1286,13 @@ float GetBezier(s32 arg0, HsfTrack *arg1, float arg2) temp_f27 = 3.0f * temp_f30; temp_f26 = temp_f31 * temp_f30; temp_f25 = temp_f31 * temp_f28; - return var_r31[0][1] * (temp_f25 - temp_f27 + 1.0f) + var_r31[1][1] * (-temp_f25 + temp_f27) + var_r31[0][2] * (temp_f26 - temp_f28 + temp_f31) + return var_r31[0][1] * (temp_f25 - temp_f27 + 1.0f) + + var_r31[1][1] * (-temp_f25 + temp_f27) + + var_r31[0][2] * (temp_f26 - temp_f28 + temp_f31) + var_r31[1][3] * (temp_f26 - temp_f30); } -HsfBitmap *GetBitMap(s32 arg0, UnknownHsfMotionStruct01 *arg1, float arg2) -{ +HsfBitmap *GetBitMap(s32 arg0, UnknownHsfMotionStruct01 *arg1, float arg2) { s16 var_r31; if (arg2 == 0.0f || arg0 == 1) { @@ -1415,8 +1306,7 @@ HsfBitmap *GetBitMap(s32 arg0, UnknownHsfMotionStruct01 *arg1, float arg2) return arg1[-1].unk04; } -s16 Hu3DJointMotion(s16 arg0, void *arg1) -{ +s16 Hu3DJointMotion(s16 arg0, void *arg1) { s16 var_r29; var_r29 = Hu3DMotionCreate(arg1); @@ -1424,14 +1314,13 @@ s16 Hu3DJointMotion(s16 arg0, void *arg1) return var_r29; } -void JointModel_Motion(s16 arg0, s16 arg1) -{ +void JointModel_Motion(s16 arg0, s16 arg1) { ModelData *temp_r24; MotionData *temp_r23; HsfData *temp_r26; HsfData *temp_r22; - HsfMotion *motion; - HsfTrack *track; + HsfMotion *temp_r29; + HsfTrack *var_r30; HsfTrack *var_r28; HsfTrack *var_r27; HsfTrack *var_r31; @@ -1441,27 +1330,26 @@ void JointModel_Motion(s16 arg0, s16 arg1) temp_r24 = &Hu3DData[arg0]; temp_r23 = &Hu3DMotion[arg1]; temp_r26 = temp_r24->hsfData; - temp_r22 = temp_r23->hsfData; - motion = temp_r22->motion; - track = motion->track; - for (i = 0; i < motion->numTracks; i++, track++) { - switch (track->type) { - case HSF_TRACK_TRANSFORM: - var_r28 = track; + temp_r22 = temp_r23->unk_04; + temp_r29 = temp_r22->motion; + var_r30 = temp_r29->track; + for (i = 0; i < temp_r29->numTracks; i++, var_r30++) { + switch (var_r30->type) { + case 2: + var_r28 = var_r30; var_r28->target = SearchObjectIndex(temp_r26, var_r28->target); break; - case HSF_TRACK_MORPH: - var_r27 = track; + case 3: + var_r27 = var_r30; var_r27->target = SearchObjectIndex(temp_r26, var_r27->target); break; - case HSF_TRACK_ATTRIBUTE: - var_r31 = track; + case 10: + var_r31 = var_r30; if (var_r31->param == -1) { temp_r21 = SearchAttributeIndex(temp_r26, var_r31->target_s16); if (temp_r21 != -1) { var_r31->param = temp_r21; - } - else { + } else { var_r31->param = -1; } } @@ -1470,8 +1358,7 @@ void JointModel_Motion(s16 arg0, s16 arg1) } } -void Hu3DMotionCalc(s16 arg0) -{ +void Hu3DMotionCalc(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; if ((temp_r31->attr & HU3D_ATTR_DISPOFF) || (temp_r31->attr & HU3D_ATTR_HOOK)) { @@ -1492,12 +1379,11 @@ void Hu3DMotionCalc(s16 arg0) if (temp_r31->unk_0E != -1) { if (temp_r31->unk_08 == -1) { Hu3DMotionExec(arg0, temp_r31->unk_0E, temp_r31->unk_94, 0); - } - else { + } else { Hu3DMotionExec(arg0, temp_r31->unk_0E, temp_r31->unk_94, 1); } } - if (!(temp_r31->attr & (HU3D_ATTR_ENVELOPE_OFF | HU3D_ATTR_HOOKFUNC)) || !(temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { + if (!(temp_r31->attr & (HU3D_ATTR_ENVELOPE_OFF|HU3D_ATTR_HOOKFUNC)) || !(temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { InitVtxParm(temp_r31->hsfData); if (temp_r31->unk_0E != -1) { ShapeProc(temp_r31->hsfData); @@ -1513,8 +1399,7 @@ void Hu3DMotionCalc(s16 arg0) temp_r31->attr |= HU3D_ATTR_MOT_EXEC; } -static s32 SearchObjectIndex(HsfData *arg0, u32 arg1) -{ +static s32 SearchObjectIndex(HsfData *arg0, u32 arg1) { s32 i; char *temp_r28; HsfObject *var_r30; @@ -1529,8 +1414,7 @@ static s32 SearchObjectIndex(HsfData *arg0, u32 arg1) return -1; } -static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1) -{ +static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1) { HsfAttribute *var_r31; size_t temp_r28; char *temp_r27; diff --git a/src/game/init.c b/src/game/init.c index fdd5d55c..61315c66 100644 --- a/src/game/init.c +++ b/src/game/init.c @@ -1,8 +1,5 @@ #include "game/init.h" -#include "game/memory.h" #include "game/fault.h" -#include "game/sreset.h" -#include "dolphin/demo/DEMOStats.h" #include "dolphin/os.h" #include "dolphin/gx.h" #include "dolphin/dvd.h" @@ -22,7 +19,7 @@ extern u32 frand(); static GXRenderModeObj rmodeobj; static BOOL FirstFrame = TRUE; -SHARED_SYM GXRenderModeObj *RenderMode; +GXRenderModeObj *RenderMode; OSHeapHandle currentHeapHandle; static void *DefaultFifo; static GXFifoObj *DefaultFifoObj; @@ -31,7 +28,7 @@ void *DemoFrameBuffer2; void *DemoCurrentBuffer; u32 minimumVcount; float minimumVcountf; -SHARED_SYM u32 worstVcount; +u32 worstVcount; static BOOL DemoStatEnable; @@ -50,11 +47,7 @@ void HuSysInit(GXRenderModeObj *mode) OSInit(); DVDInit(); VIInit(); - #ifdef TARGET_PC - VISetWindowTitle("Mario Party 4"); - #endif PADInit(); - #ifdef __MWERKS__ #if VERSION_NTSC if(OSGetProgressiveMode() == 1 && VIGetDTVStatus() == 1) { mode = &GXNtsc480Prog; @@ -62,7 +55,6 @@ void HuSysInit(GXRenderModeObj *mode) #else mode->efbHeight = 480; #endif - #endif InitRenderMode(mode); InitMem(); VIConfigure(RenderMode); @@ -140,12 +132,12 @@ static void InitMem() { void *arena_lo = OSGetArenaLo(); void *arena_hi = OSGetArenaHi(); - uintptr_t fb_size = (u16)(((u16)RenderMode->fbWidth+15) & ~15)*RenderMode->xfbHeight*2; - uintptr_t *fb1; - uintptr_t *fb2; + u32 fb_size = (u16)(((u16)RenderMode->fbWidth+15) & ~15)*RenderMode->xfbHeight*2; + u32 *fb1; + u32 *fb2; u32 i; - DemoFrameBuffer1 = (void *)OSRoundUp32B((uintptr_t)arena_lo); - DemoFrameBuffer2 = (void *)OSRoundUp32B((uintptr_t)DemoFrameBuffer1 + fb_size); + DemoFrameBuffer1 = (void *)OSRoundUp32B((u32)arena_lo); + DemoFrameBuffer2 = (void *)OSRoundUp32B((u32)DemoFrameBuffer1+fb_size); DemoCurrentBuffer = DemoFrameBuffer2; #if VERSION_PAL fb1 = DemoFrameBuffer1; @@ -156,7 +148,7 @@ static void InitMem() DCStoreRangeNoSync(DemoFrameBuffer1, fb_size); DCStoreRangeNoSync(DemoFrameBuffer2, fb_size); #endif - arena_lo = (void *)OSRoundUp32B((uintptr_t)DemoFrameBuffer2 + fb_size); + arena_lo = (void *)OSRoundUp32B((u32)DemoFrameBuffer2+fb_size); OSSetArenaLo(arena_lo); if(OSGetConsoleType() == OS_CONSOLE_DEVHW1 && OSGetPhysicalMemSize() != 0x400000 && OSGetConsoleSimulatedMemSize() < 0x1800000) { LoadMemInfo(); @@ -165,8 +157,8 @@ static void InitMem() arena_hi = OSGetArenaHi(); arena_lo = OSInitAlloc(arena_lo, arena_hi, 1); OSSetArenaLo(arena_lo); - arena_lo = (void *)OSRoundUp32B((uintptr_t)arena_lo); - arena_hi = (void *)OSRoundDown32B((uintptr_t)arena_hi); + arena_lo = (void *)OSRoundUp32B((u32)arena_lo); + arena_hi = (void *)OSRoundDown32B((u32)arena_hi); OSSetCurrentHeap(currentHeapHandle = OSCreateHeap(arena_lo, arena_hi)); arena_lo = arena_hi; OSSetArenaLo(arena_lo); @@ -303,4 +295,4 @@ static void LoadMemInfo() DVDClose(&file); OSDumpHeap(__OSCurrHeap); } -} +} \ No newline at end of file diff --git a/src/game/jmp.c b/src/game/jmp.c index 4da43088..8313bd8c 100755 --- a/src/game/jmp.c +++ b/src/game/jmp.c @@ -1,7 +1,6 @@ #include "game/jmp.h" -s32 gcsetjmp(register jmp_buf *jump) -{ +s32 gcsetjmp(register jmp_buf *jump) { // clang-format off asm { mflr r5 diff --git a/src/game/main.c b/src/game/main.c index 3831d60f..59390f8b 100644 --- a/src/game/main.c +++ b/src/game/main.c @@ -1,36 +1,20 @@ -#include "game/data.h" -#include "game/dvd.h" -#include "game/gamework.h" #include "game/gamework_data.h" +#include "game/dvd.h" +#include "game/printfunc.h" +#include "game/object.h" +#include "game/wipe.h" +#include "game/init.h" +#include "game/process.h" +#include "game/pad.h" +#include "game/data.h" +#include "game/sprite.h" #include "game/hsfformat.h" #include "game/hsfman.h" -#include "game/init.h" -#include "game/minigame_seq.h" -#include "game/msm.h" -#include "game/object.h" -#include "game/pad.h" #include "game/perf.h" -#include "game/printfunc.h" -#include "game/process.h" -#include "game/sprite.h" -#include "game/sreset.h" -#include "game/wipe.h" -#include "version.h" - -#ifdef TARGET_PC -#include "port/imgui.h" -#include -#include -#include - -const char *__asan_default_options() -{ - return "new_delete_type_mismatch=0,sleep_before_dying=5,allocator_may_return_null=1"; -} -#endif +#include "game/gamework.h" extern FileListEntry _ovltbl[]; -SHARED_SYM u32 GlobalCounter; +u32 GlobalCounter; static u32 vcheck; static u32 vmiss; static u32 vstall; @@ -51,74 +35,25 @@ static u32 pe_req; static u32 rf_req; static u32 fi_req; s32 HuDvdErrWait; -SHARED_SYM s32 SystemInitF; +s32 SystemInitF; -#ifdef TARGET_PC -#include -void aurora_log_callback(AuroraLogLevel level, const char* module, const char *message, unsigned int len) -{ - const char *levelStr = "??"; - FILE *out = stdout; - switch (level) { - case LOG_DEBUG: - levelStr = "DEBUG"; - break; - case LOG_INFO: - levelStr = "INFO"; - break; - case LOG_WARNING: - levelStr = "WARNING"; - break; - case LOG_ERROR: - levelStr = "ERROR"; - out = stderr; - break; - case LOG_FATAL: - levelStr = "FATAL"; - out = stderr; - break; - } - fprintf(out, "[%s | %s] %s\n", levelStr, module, message); - if (level == LOG_FATAL) { - fflush(out); - abort(); - } -} -#endif - -#ifdef TARGET_PC -int game_main(int argc, char *argv[]) -#else void main(void) -#endif { -#ifdef TARGET_PC - const AuroraInfo auroraInfo = aurora_initialize(argc, argv, - &(AuroraConfig) { - .appName = "Mario Party 4", - .logCallback = &aurora_log_callback, - .desiredBackend = BACKEND_VULKAN, - .windowPosX = 100, - .windowPosY = 100, - .windowWidth = 640, - .windowHeight = 480, - }); -#endif u32 met0; u32 met1; s16 i; s32 retrace; -#if VERSION_PAL + #if VERSION_PAL s16 temp = 0; -#endif - + #endif + HuDvdErrWait = 0; SystemInitF = 0; -#if VERSION_NTSC + #if VERSION_NTSC HuSysInit(&GXNtsc480IntDf); -#else + #else HuSysInit(&GXPal528IntDf); -#endif + #endif HuPrcInit(); HuPadInit(); GWInit(); @@ -131,43 +66,25 @@ void main(void) HuPerfCreate("USR0", 0xFF, 0xFF, 0xFF, 0xFF); HuPerfCreate("USR1", 0, 0xFF, 0xFF, 0xFF); WipeInit(RenderMode); - + for (i = 0; i < 4; i++) { GWPlayerCfg[i].character = -1; } - + omMasterInit(0, _ovltbl, OVL_COUNT, OVL_BOOT); VIWaitForRetrace(); - + if (VIGetNextField() == 0) { OSReport("VI_FIELD_BELOW\n"); VIWaitForRetrace(); } while (1) { -#ifdef TARGET_PC - const AuroraEvent *event = aurora_update(); - bool exiting = false; - while (event != NULL && event->type != AURORA_NONE) { - if (event->type == AURORA_EXIT) { - exiting = true; - break; - } - ++event; - } - if (exiting) { - break; - } -#endif retrace = VIGetRetraceCount(); if (HuSoftResetButtonCheck() != 0 || HuDvdErrWait != 0) { continue; } HuPerfZero(); - HuPerfBegin(2); -#ifdef TARGET_PC - aurora_begin_frame(); -#endif HuSysBeforeRender(); GXSetGPMetric(GX_PERF0_CLIP_VTX, GX_PERF1_VERTICES); GXClearGPMetric(); @@ -175,12 +92,10 @@ void main(void) GXClearVCacheMetric(); GXClearPixMetric(); GXClearMemMetric(); - HuPerfBegin(0); Hu3DPreProc(); HuPadRead(); pfClsScr(); - HuPrcCall(1); MGSeqMain(); HuPerfBegin(1); @@ -188,10 +103,8 @@ void main(void) HuDvdErrorWatch(); WipeExecAlways(); HuPerfEnd(0); - pfDrawFonts(); HuPerfEnd(1); - msmMusFdoutEnd(); HuSysDoneRender(retrace); GXReadGPMetric(&met0, &met1); @@ -200,17 +113,7 @@ void main(void) GXReadMemMetric(&cp_req, &tc_req, &cpu_rd_req, &cpu_wr_req, &dsp_req, &io_req, &vi_req, &pe_req, &rf_req, &fi_req); HuPerfEnd(2); GlobalCounter++; - -#ifdef TARGET_PC - imgui_main(&auroraInfo); - aurora_end_frame(); - frame_limiter(); -#endif } - -#ifdef TARGET_PC - aurora_shutdown(); -#endif } void HuSysVWaitSet(s16 vcount) @@ -221,7 +124,7 @@ void HuSysVWaitSet(s16 vcount) s16 HuSysVWaitGet(s16 param) { - return (s16)minimumVcount; + return (s16) minimumVcount; } s32 rnd_seed = 0x0000D9ED; diff --git a/src/game/malloc.c b/src/game/malloc.c index 9c112cc7..863f8c57 100644 --- a/src/game/malloc.c +++ b/src/game/malloc.c @@ -11,9 +11,6 @@ void HuMemInitAll(void) void *ptr; u32 free_size; for(i=0; i<4; i++) { -#ifdef TARGET_PC - HeapSizeTbl[i] *= 2; -#endif ptr = OSAlloc(HeapSizeTbl[i]); if(ptr == NULL) { OSReport("HuMem> Failed OSAlloc Size:%d\n", HeapSizeTbl[i]); @@ -50,55 +47,39 @@ void HuMemDCFlush(HeapID heap) void *HuMemDirectMalloc(HeapID heap, s32 size) { -#ifdef TARGET_PC - u32 retaddr = 0; -#else register u32 retaddr; asm { mflr retaddr } -#endif - size = (size + 31) & ~0x1F; + size = (size+31) & 0xFFFFFFE0; return HuMemMemoryAlloc(HeapTbl[heap], size, retaddr); } -void *HuMemDirectMallocNum(HeapID heap, s32 size, uintptr_t num) +void *HuMemDirectMallocNum(HeapID heap, s32 size, u32 num) { -#ifdef TARGET_PC - u32 retaddr = 0; -#else register u32 retaddr; asm { mflr retaddr } -#endif - size = (size + 31) & ~0x1F; + size = (size+31) & 0xFFFFFFE0; return HuMemMemoryAllocNum(HeapTbl[heap], size, num, retaddr); } void HuMemDirectFree(void *ptr) { -#ifdef TARGET_PC - u32 retaddr = 0; -#else register u32 retaddr; asm { mflr retaddr } -#endif HuMemMemoryFree(ptr, retaddr); } -void HuMemDirectFreeNum(HeapID heap, uintptr_t num) +void HuMemDirectFreeNum(HeapID heap, u32 num) { -#ifdef TARGET_PC - u32 retaddr = 0; -#else register u32 retaddr; asm { mflr retaddr } -#endif HuMemMemoryFreeNum(HeapTbl[heap], num, retaddr); } @@ -120,4 +101,4 @@ u32 HuMemHeapSizeGet(HeapID heap) void *HuMemHeapPtrGet(HeapID heap) { return HeapTbl[heap]; -} +} \ No newline at end of file diff --git a/src/game/mapspace.c b/src/game/mapspace.c index aec2cd17..f04e7c16 100755 --- a/src/game/mapspace.c +++ b/src/game/mapspace.c @@ -1,11 +1,9 @@ #include "game/mapspace.h" #include "game/hsfman.h" -#include +#include "math.h" -#ifdef __MWERKS__ extern void HuSetVecF(Vec*, double, double, double); -#endif static BOOL PolygonRangeCheck(HsfMapAttr *arg0, float arg1, float arg2, float *arg3, float arg4); static s32 DefIfnnerMapCircle(Vec *arg0, s16 *arg1, Vec *arg2, Vec *arg3); @@ -19,7 +17,7 @@ static BOOL GetPolygonCircleMtx(s16 *arg0, Vec *arg1, float *arg2, float *arg3); static s32 PrecalcPntToTriangle(Vec *arg0, Vec *arg1, Vec *arg2, Vec* arg3, Vec *arg4, Vec *arg5); static void DefSetHitFace(float arg0, float arg1, float arg2); -SHARED_SYM omObjData *MapObject[16]; +omObjData *MapObject[16]; Mtx MapMT; Mtx MapMTR; static Vec MTRAdd; @@ -30,10 +28,10 @@ static Vec OldXYZ; Vec HitFace[32]; u8 CharObject[0x30]; -SHARED_SYM float AddX; -SHARED_SYM float AddZ; -SHARED_SYM s32 nMap; -SHARED_SYM s32 nChar; +float AddX; +float AddZ; +s32 nMap; +s32 nChar; s32 HitFaceCount; static HsfData *AttrHsf; static Vec *topvtx; @@ -96,8 +94,8 @@ void MapWallCheck(float *arg0, float *arg1, HsfMapAttr *arg2) { MTRAdd.x = AddX; MTRAdd.z = AddZ; MTRAdd.y = 0.0f; - MTXInvXpose(MapMT, sp10); - MTXMultVec(sp10, &MTRAdd, &MTRAdd); + PSMTXInvXpose(MapMT, sp10); + PSMTXMultVec(sp10, &MTRAdd, &MTRAdd); for (var_r30 = 0; var_r30 < arg2->dataLen;) { temp_r29 = *var_r31; if (temp_r29 & 0x8000) { @@ -144,7 +142,7 @@ float MapPos(float arg0, float arg1, float arg2, float arg3, Vec *arg4) { sp14.x = var_f29; sp14.y = sp10; sp14.z = var_f28; - MTXMultVec(MapMT, &sp14, &sp14); + PSMTXMultVec(MapMT, &sp14, &sp14); sp10 = sp14.y; if (sp10 > arg1 + arg3 || fabs(arg1 - sp10) > fabs(arg1 - var_f31)) { continue; @@ -153,8 +151,8 @@ float MapPos(float arg0, float arg1, float arg2, float arg3, Vec *arg4) { arg4->x = FieldVec.x; arg4->y = FieldVec.y; arg4->z = FieldVec.z; - MTXInvXpose(MapMT, sp20); - MTXMultVec(sp20, arg4, arg4); + PSMTXInvXpose(MapMT, sp20); + PSMTXMultVec(sp20, arg4, arg4); var_f31 = sp14.y; } } @@ -207,7 +205,7 @@ BOOL PolygonRangeCheck(HsfMapAttr *arg0, float arg1, float arg2, float *arg3, fl sp20.x = arg1; sp20.y = temp_f29; sp20.z = arg2; - MTXMultVec(MapMT, &sp20, &sp20); + PSMTXMultVec(MapMT, &sp20, &sp20); if (arg4 > sp20.y && var_f27 > fabs(arg4 - sp20.y)) { var_f27 = fabs(arg4 - sp20.y); *arg3 = temp_f29; @@ -226,7 +224,7 @@ BOOL PolygonRangeCheck(HsfMapAttr *arg0, float arg1, float arg2, float *arg3, fl sp20.x = arg1; sp20.y = temp_f29; sp20.z = arg2; - MTXMultVec(MapMT, &sp20, &sp20); + PSMTXMultVec(MapMT, &sp20, &sp20); if (arg4 > sp20.y) { if (var_f27 > fabs(arg4 - sp20.y)) { var_f27 = fabs(arg4 - sp20.y); @@ -713,7 +711,7 @@ static BOOL GetPolygonCircleMtx(s16 *arg0, Vec *arg1, float *arg2, float *arg3) spD0[0] = arg2[0] + AddX; spD0[1] = arg2[1]; spD0[2] = arg2[2] + AddZ; - MTXMultVec(MapMT, &spC4, &spC4); + PSMTXMultVec(MapMT, &spC4, &spC4); DefSetHitFace(spC4.x, spC4.y, spC4.z); temp_r29 = &HitFaceVec[HitFaceCount]; MapspaceInlineFunc01(temp_r29, &arg1[arg0[0]], &arg1[arg0[1]], &arg1[arg0[2]]); @@ -726,7 +724,7 @@ static BOOL GetPolygonCircleMtx(s16 *arg0, Vec *arg1, float *arg2, float *arg3) spE0[0] = OldXYZ.x; spE0[1] = OldXYZ.y; spE0[2] = OldXYZ.z; - MTXMultVec(MapMTR, (Vec*) &spE0, (Vec*) &spE0); + PSMTXMultVec(MapMTR, (Vec*) &spE0, (Vec*) &spE0); if (MapspaceInlineFunc03(spE0, temp_r31, arg1) < 0) { spB8.x = spE0[0] - spD0[0]; spB8.y = spE0[1] - spD0[1]; @@ -744,8 +742,8 @@ static BOOL GetPolygonCircleMtx(s16 *arg0, Vec *arg1, float *arg2, float *arg3) MTRAdd.x = AddX; MTRAdd.z = AddZ; MTRAdd.y = 0.0f; - MTXInvXpose(MapMT, spF0); - MTXMultVec(spF0, &MTRAdd, &MTRAdd); + PSMTXInvXpose(MapMT, spF0); + PSMTXMultVec(spF0, &MTRAdd, &MTRAdd); } } return var_r17; @@ -895,19 +893,19 @@ void AppendAddXZ(float arg0, float arg1, float arg2) { void CharRotInv(Mtx arg0, Mtx arg1, Vec *arg2, omObjData *arg3) { Mtx sp8; - MTXTrans(arg0, arg3->trans.x, arg3->trans.y, arg3->trans.z); + PSMTXTrans(arg0, arg3->trans.x, arg3->trans.y, arg3->trans.z); if (arg3->rot.z) { - MTXRotRad(sp8, 'z', MTXDegToRad(arg3->rot.z)); - MTXConcat(arg0, sp8, arg0); + PSMTXRotRad(sp8, 'z', MTXDegToRad(arg3->rot.z)); + PSMTXConcat(arg0, sp8, arg0); } if (arg3->rot.y) { - MTXRotRad(sp8, 'y', MTXDegToRad(arg3->rot.y)); - MTXConcat(arg0, sp8, arg0); + PSMTXRotRad(sp8, 'y', MTXDegToRad(arg3->rot.y)); + PSMTXConcat(arg0, sp8, arg0); } if (arg3->rot.x) { - MTXRotRad(sp8, 'x', MTXDegToRad(arg3->rot.x)); - MTXConcat(arg0, sp8, arg0); + PSMTXRotRad(sp8, 'x', MTXDegToRad(arg3->rot.x)); + PSMTXConcat(arg0, sp8, arg0); } - MTXInverse(arg0, arg1); - MTXMultVec(arg1, arg2, arg2); + PSMTXInverse(arg0, arg1); + PSMTXMultVec(arg1, arg2, arg2); } diff --git a/src/game/memory.c b/src/game/memory.c index eb8c001b..d7c0374d 100644 --- a/src/game/memory.c +++ b/src/game/memory.c @@ -1,30 +1,22 @@ #include "game/memory.h" #include "dolphin/os.h" +#define DATA_GET_BLOCK(ptr) ((struct memory_block *)(((char *)(ptr))-32)) +#define BLOCK_GET_DATA(block) (((char *)(block))+32) -#if INTPTR_MAX == INT32_MAX -#define MEM_ALLOC_SIZE(size) (((size) + 63) & ~0x1F) -#define DATA_GET_BLOCK(ptr) ((struct memory_block *)(((char *)(ptr)) - 32)) -#define BLOCK_GET_DATA(block) (((char *)(block)) + 32) -#define BLOCK_ALIGNMENT 32u -#else -#define MEM_ALLOC_SIZE(size) (((size - 1) / 32 + 1) * 32 + 64) -#define DATA_GET_BLOCK(ptr) ((struct memory_block *)(((char *)(ptr)) - 64)) -#define BLOCK_GET_DATA(block) (((char *)(block)) + 64) -#define BLOCK_ALIGNMENT 64u -#endif +#define MEM_ALLOC_SIZE(size) (((size)+63) & 0xFFFFFFE0) -struct memory_block { +struct memory_block { s32 size; u8 magic; u8 flag; struct memory_block *prev; struct memory_block *next; - uintptr_t num; - uintptr_t retaddr; + u32 num; + u32 retaddr; }; -static void *HuMemMemoryAlloc2(void *heap_ptr, s32 size, uintptr_t num, uintptr_t retaddr); +static void *HuMemMemoryAlloc2(void *heap_ptr, s32 size, u32 num, u32 retaddr); void *HuMemHeapInit(void *ptr, s32 size) { @@ -39,29 +31,25 @@ void *HuMemHeapInit(void *ptr, s32 size) return block; } -void *HuMemMemoryAllocNum(void *heap_ptr, s32 size, uintptr_t num, uintptr_t retaddr) +void *HuMemMemoryAllocNum(void *heap_ptr, s32 size, u32 num, u32 retaddr) { return HuMemMemoryAlloc2(heap_ptr, size, num, retaddr); } -void *HuMemMemoryAlloc(void *heap_ptr, s32 size, uintptr_t retaddr) +void *HuMemMemoryAlloc(void *heap_ptr, s32 size, u32 retaddr) { return HuMemMemoryAlloc2(heap_ptr, size, -256, retaddr); } -static void *HuMemMemoryAlloc2(void *heap_ptr, s32 size, uintptr_t num, uintptr_t retaddr) +static void *HuMemMemoryAlloc2(void *heap_ptr, s32 size, u32 num, u32 retaddr) { s32 alloc_size = MEM_ALLOC_SIZE(size); struct memory_block *block = heap_ptr; do { - if (!block->flag && block->size >= alloc_size) { - if (block->size - alloc_size > BLOCK_ALIGNMENT) { -#ifdef TARGET_PC - struct memory_block *new_block = (struct memory_block *)((char *)block + alloc_size); -#else - struct memory_block *new_block = (struct memory_block *)(((u32)block) + alloc_size); -#endif - new_block->size = block->size - alloc_size; + if(!block->flag && block->size >= alloc_size) { + if(block->size-alloc_size > 32u) { + struct memory_block *new_block = (struct memory_block *)(((u32)block)+alloc_size); + new_block->size = block->size-alloc_size; new_block->magic = 205; new_block->flag = 0; new_block->retaddr = retaddr; @@ -78,49 +66,50 @@ static void *HuMemMemoryAlloc2(void *heap_ptr, s32 size, uintptr_t num, uintptr_ return BLOCK_GET_DATA(block); } block = block->next; - } while (block != heap_ptr); + } while(block != heap_ptr); OSReport("HuMem>memory alloc error %08x(%08X): Call %08x\n", size, num, retaddr); HuMemHeapDump(heap_ptr, -1); return NULL; } -void HuMemMemoryFreeNum(void *heap_ptr, uintptr_t num, uintptr_t retaddr) +void HuMemMemoryFreeNum(void *heap_ptr, u32 num, u32 retaddr) { struct memory_block *block = heap_ptr; do { struct memory_block *block_next = block->next; - if (block->flag && block->num == num) { + if(block->flag && block->num == num) { HuMemMemoryFree(BLOCK_GET_DATA(block), retaddr); } block = block_next; - } while (block != heap_ptr); + } while(block != heap_ptr); + } -static void HuMemTailMemoryAlloc2() // Required for string literal +static void HuMemTailMemoryAlloc2() //Required for string literal { OSReport("memory allocation(tail) error.\n"); } -void HuMemMemoryFree(void *ptr, uintptr_t retaddr) +void HuMemMemoryFree(void *ptr, u32 retaddr) { struct memory_block *block; - if (!ptr) { + if(!ptr) { return; } block = DATA_GET_BLOCK(ptr); - if (block->magic != 165) { + if(block->magic != 165) { OSReport("HuMem>memory free error. %08x( call %08x)\n", ptr, retaddr); return; } - if (block->prev < block && !block->prev->flag) { - block->flag = 0; + if(block->prev < block && !block->prev->flag) { + block->flag = 0; block->magic = 205; block->next->prev = block->prev; block->prev->next = block->next; block->prev->size += block->size; block = block->prev; } - if (block->next > block && !block->next->flag) { + if(block->next > block && !block->next->flag) { block->next->next->prev = block; block->size += block->next->size; block->next = block->next->next; @@ -135,11 +124,11 @@ s32 HuMemUsedMemorySizeGet(void *heap_ptr) struct memory_block *block = heap_ptr; s32 size = 0; do { - if (block->flag == 1) { + if(block->flag == 1) { size += block->size; } block = block->next; - } while (block != heap_ptr); + } while(block != heap_ptr); return size; } @@ -148,11 +137,11 @@ s32 HuMemUsedMemoryBlockGet(void *heap_ptr) struct memory_block *block = heap_ptr; s32 num_blocks = 0; do { - if (block->flag == 1) { + if(block->flag == 1) { num_blocks++; } block = block->next; - } while (block != heap_ptr); + } while(block != heap_ptr); return num_blocks; } @@ -170,49 +159,45 @@ void HuMemHeapDump(void *heap_ptr, s16 status) s32 num_unused_blocks = 0; u8 dump_type; - if (status < 0) { + if(status < 0) { dump_type = 10; - } - else if (status == 0) { + } else if(status == 0) { dump_type = 0; - } - else { + } else { dump_type = 1; } OSReport("======== HuMem heap dump %08x ========\n", heap_ptr); OSReport("MCB-----+Size----+MG+FL+Prev----+Next----+UNum----+Body----+Call----\n"); do { - if (dump_type == 10 || block->flag == dump_type) { - OSReport("%08x %08x %02x %02x %08x %08x %08x %08x %08x\n", block, block->size, block->magic, block->flag, block->prev, block->next, - block->num, BLOCK_GET_DATA(block), block->retaddr); + if(dump_type == 10 || block->flag == dump_type) { + OSReport("%08x %08x %02x %02x %08x %08x %08x %08x %08x\n", block, block->size, block->magic, block->flag, + block->prev, block->next, block->num, BLOCK_GET_DATA(block), block->retaddr); } - if (block->flag == 1) { + if(block->flag == 1) { size += block->size; num_blocks++; - } - else { + } else { inactive_size += block->size; num_unused_blocks++; } - + block = block->next; - } while (block != heap_ptr); - OSReport("MCB:%d(%d/%d) MEM:%08x(%08x/%08x)\n", num_blocks + num_unused_blocks, num_blocks, num_unused_blocks, size + inactive_size, size, - inactive_size); + } while(block != heap_ptr); + OSReport("MCB:%d(%d/%d) MEM:%08x(%08x/%08x)\n", num_blocks+num_unused_blocks, num_blocks, num_unused_blocks, + size+inactive_size, size, inactive_size); OSReport("======== HuMem heap dump %08x end =====\n", heap_ptr); } s32 HuMemMemorySizeGet(void *ptr) { struct memory_block *block; - if (!ptr) { + if(!ptr) { return 0; } block = DATA_GET_BLOCK(ptr); - if (block->flag == 1 && block->magic == 165) { - return block->size - BLOCK_ALIGNMENT; - } - else { + if(block->flag == 1 && block->magic == 165) { + return block->size-32; + } else { return 0; } } diff --git a/src/game/messdata.c b/src/game/messdata.c index b106d259..b2d2c25a 100644 --- a/src/game/messdata.c +++ b/src/game/messdata.c @@ -1,7 +1,5 @@ #include "dolphin.h" -#include - static void *MessData_MesDataGet(void *messdata, u32 id) { s32 i; @@ -9,50 +7,22 @@ static void *MessData_MesDataGet(void *messdata, u32 id) u16 *banks; u16 bank; s32 *data; -#ifdef TARGET_PC - s32 ofs; - u16 bank_pc; -#endif bank = id >> 16; data = messdata; max_bank = *data; -#ifdef TARGET_PC - byteswap_s32(&max_bank); -#endif data++; -#ifdef TARGET_PC - ofs = *data; - byteswap_s32(&ofs); - banks = (u16 *)(((u8 *)messdata) + ofs); -#else banks = (u16 *)(((u8 *)messdata)+(*data)); -#endif - for(i = max_bank; i != 0; i--, banks += 2) { -#ifdef TARGET_PC - bank_pc = *banks; - byteswap_u16(&bank_pc); - if(bank_pc == bank) { - break; - } -#else + for(i=max_bank; i != 0; i--, banks += 2) { if(*banks == bank) { break; } -#endif } - if (i == 0) { + if(i == 0) { return NULL; + } else { + data += banks[1]; + return (((u8 *)messdata)+(*data)); } -#ifdef TARGET_PC - bank_pc = banks[1]; - byteswap_u16(&bank_pc); - ofs = data[bank_pc]; - byteswap_s32(&ofs); - return (((u8 *)messdata) + ofs); -#else - data += banks[1]; - return (((u8 *)messdata) + (*data)); -#endif } static void *_MessData_MesPtrGet(void *messbank, u32 id) @@ -60,28 +30,16 @@ static void *_MessData_MesPtrGet(void *messbank, u32 id) u16 index; s32 max_index; s32 *data; -#ifdef TARGET_PC - s32 ofs; -#endif - + index = id & 0xFFFF; data = messbank; max_index = *data; -#if TARGET_PC - byteswap_s32(&max_index); -#endif data++; if(max_index <= index) { return NULL; } else { data = data+index; -#ifdef TARGET_PC - ofs = *data; - byteswap_s32(&ofs); - return (((u8 *)messbank)+(ofs)); -#else return (((u8 *)messbank)+(*data)); -#endif } } diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index c0dd07a7..f74d4bf4 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -1,5 +1,4 @@ #include "game/armem.h" -#include "game/audio.h" #include "game/disp.h" #include "game/gamework_data.h" #include "game/hsfman.h" @@ -34,7 +33,7 @@ typedef struct seq_info { s32 time_max; } SeqInfo; -SHARED_SYM OverlayID mgSeqOvlPrev = OVL_INVALID; +OverlayID mgSeqOvlPrev = OVL_INVALID; static SeqInfo seqInfoTbl[] = { { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, @@ -753,7 +752,7 @@ static char seqFontKanaTbl[] = { "アイウエオカキク" static char seqFontNumTbl[] = "0123456789"; -static s32 *letterBufTbl[5] = {NULL, NULL, NULL, NULL, NULL}; +static s32 *letterBufTbl[5] = {}; static char wordStartE[] = "START!"; diff --git a/src/game/objdll.c b/src/game/objdll.c index 4ba3a938..c1414129 100644 --- a/src/game/objdll.c +++ b/src/game/objdll.c @@ -5,10 +5,6 @@ typedef s32 (*DLLProlog)(void); typedef void (*DLLEpilog)(void); -#ifdef TARGET_PC -typedef void (*DLLObjectSetup)(void); -#endif - omDllData *omDLLinfoTbl[OM_DLL_MAX]; static FileListEntry *omDLLFileList; @@ -35,9 +31,6 @@ s32 omDLLStart(s16 overlay, s16 flag) dllno = omDLLSearch(overlay); if(dllno >= 0 && !flag) { omDllData *dll = omDLLinfoTbl[dllno]; -#ifdef TARGET_PC - OSReport("objdll>Already Loaded %s\n", dll->name); -#else OSReport("objdll>Already Loaded %s(%08x %08x)\n", dll->name, dll->module, dll->bss); omDLLInfoDump(&dll->module->info); @@ -45,7 +38,6 @@ s32 omDLLStart(s16 overlay, s16 flag) memset(dll->bss, 0, dll->module->bssSize); HuMemDCFlushAll(); dll->ret = ((DLLProlog)dll->module->prolog)(); -#endif OSReport("objdll> %s prolog end\n", dll->name); return dllno; } else { @@ -88,10 +80,8 @@ void omDLLEnd(s16 dllno, s16 flag) } else { omDllData *dll; dll = omDLLinfoTbl[dllno]; -#ifdef __MWERKS__ OSReport("objdll>Call Epilog\n"); ((DLLEpilog)dll->module->epilog)(); -#endif OSReport("objdll>End DLL stayed:%s\n", omDLLinfoTbl[dllno]->name); } OSReport("objdll>End DLL finish\n"); @@ -105,12 +95,6 @@ omDllData *omDLLLink(omDllData **dll_ptr, s16 overlay, s16 flag) dll = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(omDllData)); *dll_ptr = dll; dll->name = dllFile->name; -#ifdef _WIN32 - dll->hModule = LoadLibrary(dllFile->name); - if (dll->hModule == NULL) { - OSReport("objdll>++++++++++++++++ DLL Link Failed\n"); - } -#else dll->module = HuDvdDataReadDirect(dllFile->name, HEAP_SYSTEM); dll->bss = HuMemDirectMalloc(HEAP_SYSTEM, dll->module->bssSize); if(OSLink(&dll->module->info, dll->bss) != TRUE) { @@ -119,17 +103,9 @@ omDllData *omDLLLink(omDllData **dll_ptr, s16 overlay, s16 flag) omDLLInfoDump(&dll->module->info); omDLLHeaderDump(dll->module); OSReport("objdll>LinkOK %08x %08x\n", dll->module, dll->bss); -#endif if(flag == 1) { OSReport("objdll> %s prolog start\n", dllFile->name); -#ifdef _WIN32 - { - DLLObjectSetup objectSetup = (DLLObjectSetup)GetProcAddress(dll->hModule, "ObjectSetup"); - objectSetup(); - } -#else dll->ret = ((DLLProlog)dll->module->prolog)(); -#endif OSReport("objdll> %s prolog end\n", dllFile->name); } return dll; @@ -138,9 +114,6 @@ omDllData *omDLLLink(omDllData **dll_ptr, s16 overlay, s16 flag) void omDLLUnlink(omDllData *dll_ptr, s16 flag) { OSReport("odjdll>Unlink DLL:%s\n", dll_ptr->name); -#ifdef _WIN32 - FreeLibrary(dll_ptr->hModule); -#else if(flag == 1) { OSReport("objdll>Unlink DLL epilog\n"); ((DLLEpilog)dll_ptr->module->epilog)(); @@ -151,7 +124,6 @@ void omDLLUnlink(omDllData *dll_ptr, s16 flag) } HuMemDirectFree(dll_ptr->bss); HuMemDirectFree(dll_ptr->module); -#endif HuMemDirectFree(dll_ptr); } @@ -197,4 +169,4 @@ void omDLLHeaderDump(OSModuleHeader *module) OSReport(" epilog func:0x%08x\n", module->epilog); OSReport(" unresolved func:0x%08x\n", module->unresolved); OSReport("================================\n"); -} +} \ No newline at end of file diff --git a/src/game/objmain.c b/src/game/objmain.c index 55abeee3..39bc9e12 100644 --- a/src/game/objmain.c +++ b/src/game/objmain.c @@ -1,16 +1,12 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/esprite.h" -#include "game/flag.h" #include "game/hsfdraw.h" #include "game/hsfman.h" -#include "game/object.h" -#include -#include "game/pad.h" #include "game/printfunc.h" -#include "game/minigame_seq.h" -#include "game/window.h" - +#include "game/object.h" +#include "game/pad.h" +#include "game/flag.h" #define OM_OVL_HIS_MAX 16 #define OM_MAX_GROUPS 10 @@ -37,22 +33,17 @@ typedef struct om_obj_man { omObjData *omDBGSysKeyObj; Process *omwatchproc; OverlayID omnextovl; -SHARED_SYM OverlayID omcurovl; +OverlayID omcurovl; s32 omcurdll; -SHARED_SYM s32 omovlhisidx; -SHARED_SYM s32 omovlevtno; +s32 omovlhisidx; +s32 omovlevtno; s32 omnextovlevtno; -SHARED_SYM u32 omovlstat; +u32 omovlstat; static s32 omnextovlstat; char omUPauseFlag; -SHARED_SYM s16 omSysExitReq; +s16 omSysExitReq; s16 omdispinfo; -#ifdef TARGET_PC -OverlayID pcOvlToKill = OVL_INVALID; -s16 pcOvlKillArg = 0; -#endif - static omOvlHisData omovlhis[OM_OVL_HIS_MAX]; u8 omSysPauseEnableFlag = TRUE; @@ -75,15 +66,9 @@ void omMasterInit(s32 prio, FileListEntry *ovl_list, s32 ovl_count, OverlayID st static void omWatchOverlayProc(void) { - while (1) { - if (omcurovl == OVL_INVALID) { -#ifdef TARGET_PC - if (pcOvlToKill >= 0) { - omDLLNumEnd(pcOvlToKill, pcOvlKillArg); - pcOvlToKill = OVL_INVALID; - } -#endif - if (omnextovl >= 0 && fadeStat == 0) { + while(1) { + if(omcurovl == OVL_INVALID) { + if(omnextovl >= 0 && fadeStat == 0) { HuPrcSleep(0); OSReport("++++++++++++++++++++ Start New OVL %d (EVT:%d STAT:0x%08x) ++++++++++++++++++\n", omnextovl, omnextovlevtno, omnextovlstat); HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); @@ -100,25 +85,22 @@ static void omWatchOverlayProc(void) omovlevtno = omnextovlevtno; omovlstat = omnextovlstat; omnextovl = OVL_INVALID; - if (_CheckFlag(FLAG_ID_MAKE(1, 12))) { + if(_CheckFlag(FLAG_ID_MAKE(1, 12))) { MGSeqPracticeInit(); } omSysPauseEnable(TRUE); omcurdll = omDLLStart(omcurovl, 0); OSReport("objman>ObjectSetup end\n"); - if (omcurovl != OVL_INVALID) { + if(omcurovl != OVL_INVALID) { goto watch_child; - } - else { + } else { continue; } - } - else { + } else { HuPrcVSleep(); } - } - else { - watch_child: + } else { + watch_child: HuPrcChildWatch(); } } @@ -127,21 +109,20 @@ static void omWatchOverlayProc(void) void omOvlCallEx(OverlayID overlay, s16 arg2, s32 event, s32 stat) { OSReport("objman>Call New Ovl %d(%d)\n", overlay, arg2); - if (omovlhisidx >= OM_OVL_HIS_MAX) { + if(omovlhisidx >= OM_OVL_HIS_MAX) { OSReport("objman>OVL Call over error\n"); return; } omovlhis[++omovlhisidx].overlay = overlay; omovlhis[omovlhisidx].event = event; omovlhis[omovlhisidx].stat = stat; - omOvlGotoEx(overlay, arg2, event, stat); } void omOvlGotoEx(OverlayID overlay, s16 arg2, s32 event, s32 stat) { omprevovl = omcurovl; - if (omcurovl >= 0) { + if(omcurovl >= 0) { omOvlKill(arg2); } omnextovl = overlay; @@ -153,7 +134,7 @@ void omOvlReturnEx(s16 level, s16 arg2) { omovlhisidx -= level; OSReport("objman>Ovl Return %d=%d(%d)\n", level, omovlhisidx, arg2); - if (omovlhisidx < 0) { + if(omovlhisidx < 0) { OSReport("objman>OVL under error\n"); omovlhisidx = 0; } @@ -176,13 +157,7 @@ void omOvlKill(s16 arg) HuAudFXListnerKill(); OSReport("OvlKill %d\n", arg); omSysExitReq = FALSE; -#ifdef TARGET_PC - // this function is called from the DLL, we can't kill it directly here - pcOvlToKill = omcurovl; - pcOvlKillArg = arg; -#else omDLLNumEnd(omcurovl, arg); -#endif omcurovl = OVL_INVALID; omDBGSysKeyObj = NULL; } @@ -190,11 +165,11 @@ void omOvlKill(s16 arg) void omOvlHisChg(s32 level, OverlayID overlay, s32 event, s32 stat) { omOvlHisData *history; - if (omovlhisidx - level < 0 || omovlhisidx - level >= OM_OVL_HIS_MAX) { + if(omovlhisidx-level < 0 || omovlhisidx-level >= OM_OVL_HIS_MAX) { OSReport("objman> omOvlHisChg: overlay 実行履歴の範囲外を変更しようとしました\n"); return; } - history = &omovlhis[omovlhisidx - level]; + history = &omovlhis[omovlhisidx-level]; history->overlay = overlay; history->event = event; history->stat = stat; @@ -202,11 +177,11 @@ void omOvlHisChg(s32 level, OverlayID overlay, s32 event, s32 stat) omOvlHisData *omOvlHisGet(s32 level) { - if (omovlhisidx - level < 0 || omovlhisidx - level >= OM_OVL_HIS_MAX) { + if(omovlhisidx-level < 0 || omovlhisidx-level >= OM_OVL_HIS_MAX) { OSReport("objman> omOvlHisGet: overlay 実行履歴の範囲外を参照しようとしました\n"); return NULL; } - return &omovlhis[omovlhisidx - level]; + return &omovlhis[omovlhisidx-level]; } Process *omInitObjMan(s16 max_objs, s32 prio) @@ -221,7 +196,7 @@ Process *omInitObjMan(s16 max_objs, s32 prio) max_objs += 2; omSysExitReq = FALSE; process = HuPrcChildCreate(omMain, prio, 16384, 0, omwatchproc); - HuPrcSetStat(process, PROCESS_STAT_PAUSE_EN | PROCESS_STAT_UPAUSE_EN); + HuPrcSetStat(process, PROCESS_STAT_PAUSE_EN|PROCESS_STAT_UPAUSE_EN); objman = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(omObjMan), MEMORY_DEFAULT_NUM); objman->max_objs = max_objs; process->user_data = objman; @@ -230,24 +205,24 @@ Process *omInitObjMan(s16 max_objs, s32 prio) objman->next_idx = 0; objman->obj_last = -1; objman->obj_first = -1; - obj_all = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs * sizeof(omObjData), MEMORY_DEFAULT_NUM); - objman->obj = obj_all; - group_all = HuMemDirectMallocNum(HEAP_SYSTEM, OM_MAX_GROUPS * sizeof(omObjGroup), MEMORY_DEFAULT_NUM); + obj_all = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs*sizeof(omObjData), MEMORY_DEFAULT_NUM); + objman->obj = obj_all; + group_all = HuMemDirectMallocNum(HEAP_SYSTEM, OM_MAX_GROUPS*sizeof(omObjGroup), MEMORY_DEFAULT_NUM); objman->group = group_all; - for (i = 0; i < max_objs; i++) { + for(i=0; istat = 1; - obj->prio = obj->prev = obj->next = -1; + obj->prio = obj->prev =obj->next = -1; obj->unk10 = 0; obj->trans.x = obj->trans.y = obj->trans.z = obj->rot.x = obj->rot.y = obj->rot.z = 0.0f; obj->scale.x = obj->scale.y = obj->scale.z = 1.0f; obj->model = obj->motion = NULL; obj->func = obj->data = NULL; - obj->next_idx = i + 1; + obj->next_idx = i+1; obj->mtncnt = 0; obj->motion = NULL; } - for (i = 0; i < OM_MAX_GROUPS; i++) { + for(i=0; iDestory ObjMan\n"); } -omObjData *omAddObjEx(Process *objman_process, s16 prio, u16 mdlcnt, u16 mtncnt, s16 group, omObjFunc func) +omObjData *omAddObjEx(Process *objman_process, s16 prio, u16 mdlcnt, u16 mtncnt, s16 group, void (*func)(omObjData *)) { s32 i; omObjData *object; s16 next_idx; omObjMan *objman = objman_process->user_data; omObjData *obj_base = objman->obj; - if (objman->num_objs == objman->max_objs) { + if(objman->num_objs == objman->max_objs) { return NULL; } next_idx = objman->next_idx; @@ -283,29 +258,26 @@ omObjData *omAddObjEx(Process *objman_process, s16 prio, u16 mdlcnt, u16 mtncnt, object->next_idx_alloc = next_idx; object->prio = prio; omInsertObj(objman_process, object); - if (mdlcnt) { - object->model = HuMemDirectMallocNum(HEAP_SYSTEM, mdlcnt * sizeof(s16), MEMORY_DEFAULT_NUM); + if(mdlcnt) { + object->model = HuMemDirectMallocNum(HEAP_SYSTEM, mdlcnt*sizeof(s16), MEMORY_DEFAULT_NUM); object->mdlcnt = mdlcnt; - for (i = 0; i < mdlcnt; i++) { + for(i=0; imodel[i] = -1; } - } - else { + } else { object->model = NULL; object->mdlcnt = 0; } - if (mtncnt) { - object->motion = HuMemDirectMallocNum(HEAP_SYSTEM, mtncnt * sizeof(s16), MEMORY_DEFAULT_NUM); + if(mtncnt) { + object->motion = HuMemDirectMallocNum(HEAP_SYSTEM, mtncnt*sizeof(s16), MEMORY_DEFAULT_NUM); object->mtncnt = mtncnt; - } - else { + } else { object->motion = NULL; object->mtncnt = 0; } - if (group >= 0) { + if(group >= 0) { omAddMember(objman_process, group, object); - } - else { + } else { object->group = group; object->group_idx = 0; } @@ -330,33 +302,31 @@ static void omInsertObj(Process *objman_process, omObjData *object) s16 prio = object->prio; s16 obj_idx; s16 prev_idx; - if (objman->obj_first == -1) { + if(objman->obj_first == -1) { object->prev = -1; object->next = -1; objman->obj_first = next_idx_alloc; objman->obj_last = next_idx_alloc; - (void)objman; // HACK for matching + (void)objman; //HACK for matching return; } - for (obj_idx = objman->obj_first; obj_idx != -1; obj_idx = obj_new->next) { + for(obj_idx = objman->obj_first; obj_idx != -1; obj_idx = obj_new->next) { obj_new = &obj_all[obj_idx]; - if (obj_new->prio <= prio) { + if(obj_new->prio <= prio) { break; } prev_idx = obj_idx; } - if (obj_idx != -1) { + if(obj_idx != -1) { object->prev = obj_new->prev; object->next = obj_idx; - if (obj_new->prev != -1) { + if(obj_new->prev != -1) { obj_all[obj_new->prev].next = next_idx_alloc; - } - else { + } else { objman->obj_first = next_idx_alloc; } obj_new->prev = next_idx_alloc; - } - else { + } else { object->next = -1; object->prev = prev_idx; obj_new->next = next_idx_alloc; @@ -368,7 +338,7 @@ void omAddMember(Process *objman_process, u16 group, omObjData *object) { omObjMan *objman = objman_process->user_data; omObjGroup *group_ptr = &objman->group[group]; - if (group_ptr->num_objs != group_ptr->max_objs) { + if(group_ptr->num_objs != group_ptr->max_objs) { object->group = group; object->group_idx = group_ptr->next_idx; group_ptr->obj[group_ptr->next_idx] = object; @@ -382,41 +352,40 @@ void omDelObjEx(Process *objman_process, omObjData *object) omObjMan *objman = objman_process->user_data; omObjData *obj_all = objman->obj; s16 next_idx_alloc = object->next_idx_alloc; - if (objman->num_objs == 0 || object->stat == 1) { + if(objman->num_objs == 0 || object->stat == 1) { return; } objman->num_objs--; - if (object->group >= 0) { + if(object->group >= 0) { omDelMember(objman_process, object); } - if (object->motion != NULL) { + if(object->motion != NULL) { HuMemDirectFree(object->motion); object->motion = NULL; } - if (object->model != NULL) { + if(object->model != NULL) { HuMemDirectFree(object->model); object->model = NULL; } - if (object->data != NULL) { + if(object->data != NULL) { HuMemDirectFree(object->data); object->data = NULL; } object->stat = OM_STAT_DELETED; - if (object->next >= 0) { + if(object->next >= 0) { obj_all[object->next].prev = object->prev; } - if (object->prev >= 0) { + if(object->prev >= 0) { obj_all[object->prev].next = object->next; } - if (objman->num_objs != 0) { - if (object->prev < 0) { + if(objman->num_objs != 0) { + if(object->prev < 0) { objman->obj_first = obj_all[object->next].next_idx_alloc; } - if (object->next < 0) { + if(object->next < 0) { objman->obj_last = obj_all[object->prev].next_idx_alloc; } - } - else { + } else { objman->obj_first = objman->obj_last = -1; } object->next_idx = objman->next_idx; @@ -425,7 +394,7 @@ void omDelObjEx(Process *objman_process, omObjData *object) void omDelMember(Process *objman_process, omObjData *object) { - if (object->group != -1) { + if(object->group != -1) { omObjMan *objman = objman_process->user_data; omObjData *obj_all = objman->obj; omObjGroup *group = &objman->group[object->group]; @@ -442,20 +411,20 @@ void omMakeGroupEx(Process *objman_process, u16 group, u16 max_objs) s32 i; omObjMan *objman = objman_process->user_data; omObjGroup *group_ptr = &objman->group[group]; - if (group_ptr->obj != NULL) { + if(group_ptr->obj != NULL) { HuMemDirectFree(group_ptr->obj); } - if (group_ptr->next != NULL) { + if(group_ptr->next != NULL) { HuMemDirectFree(group_ptr->next); } group_ptr->next_idx = 0; group_ptr->max_objs = max_objs; group_ptr->num_objs = 0; - group_ptr->obj = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs * sizeof(omObjData *), MEMORY_DEFAULT_NUM); - group_ptr->next = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs * sizeof(u16), MEMORY_DEFAULT_NUM); - for (i = 0; i < max_objs; i++) { + group_ptr->obj = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs*sizeof(omObjData *), MEMORY_DEFAULT_NUM); + group_ptr->next = HuMemDirectMallocNum(HEAP_SYSTEM, max_objs*sizeof(u16), MEMORY_DEFAULT_NUM); + for(i=0; iobj[i] = NULL; - group_ptr->next[i] = i + 1; + group_ptr->next[i] = i+1; } } @@ -504,38 +473,38 @@ void omMain(void) omObjData *object; s16 obj_index; omDLLDBGOut(); - while (1) { - if (omdispinfo) { + while(1) { + if(omdispinfo) { float scale = 1.5f; GXColor color; color.a = 96; color.r = 0; color.g = 0; color.b = 255; - printWin(7, 23, 128 * scale, 40 * scale, &color); + printWin(7, 23, 128*scale, 40*scale, &color); fontcolor = FONT_COLOR_YELLOW; print8(8, 24, scale, "\xFD\x01H:%08lX(%ld)", HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemUsedMallocBlockGet(HEAP_SYSTEM)); - print8(8, 24 + (8 * scale), scale, "\xFD\x01M:%08lX(%ld)", HuMemUsedMallocSizeGet(HEAP_DATA), HuMemUsedMallocBlockGet(HEAP_DATA)); - print8(8, 24 + (16 * scale), scale, "\xFD\x01OBJ:%d/%d", objman->num_objs, objman->max_objs); - print8(8, 24 + (24 * scale), scale, "\xFD\x01OVL:%ld(%ld<%ld)", omovlhisidx, omcurovl, omprevovl); - print8(8, 24 + (32 * scale), scale, "\xFD\x01POL:%ld", totalPolyCnted); + print8(8, 24+(8*scale), scale, "\xFD\x01M:%08lX(%ld)", HuMemUsedMallocSizeGet(HEAP_DATA), HuMemUsedMallocBlockGet(HEAP_DATA)); + print8(8, 24+(16*scale), scale, "\xFD\x01OBJ:%d/%d", objman->num_objs, objman->max_objs); + print8(8, 24+(24*scale), scale, "\xFD\x01OVL:%ld(%ld<%ld)", omovlhisidx, omcurovl, omprevovl); + print8(8, 24+(32*scale), scale, "\xFD\x01POL:%ld", totalPolyCnted); } obj_index = objman->obj_last; - while (obj_index != -1) { + while(obj_index != -1) { object = &obj_all[obj_index]; obj_index = object->prev; - if ((object->stat & (OM_STAT_DELETED | OM_STAT_DISABLED)) == 0) { - if (object->func != NULL && (object->stat & (0x40 | 0x8 | OM_STAT_PAUSED)) == 0) { + if((object->stat & (OM_STAT_DELETED|OM_STAT_DISABLED)) == 0) { + if(object->func != NULL && (object->stat & (0x40|0x8|OM_STAT_PAUSED)) == 0) { object->func(object); } - if (omcurovl == -1 || objman->obj_last == -1) { + if(omcurovl == -1 || objman->obj_last == -1) { break; } - if ((object->stat & (OM_STAT_DELETED | OM_STAT_DISABLED)) == 0) { - if ((obj_all[obj_index].stat & (OM_STAT_DELETED | OM_STAT_DISABLED)) != 0) { + if((object->stat & (OM_STAT_DELETED|OM_STAT_DISABLED)) == 0) { + if((obj_all[obj_index].stat & (OM_STAT_DELETED|OM_STAT_DISABLED)) != 0) { obj_index = object->prev; } - if (object->model != NULL && object->model[0] != -1 && !(object->stat & OM_STAT_MODEL_PAUSED)) { + if(object->model != NULL && object->model[0] != -1 && !(object->stat & OM_STAT_MODEL_PAUSED)) { Hu3DModelPosSet(object->model[0], object->trans.x, object->trans.y, object->trans.z); Hu3DModelRotSet(object->model[0], object->rot.x, object->rot.y, object->rot.z); Hu3DModelScaleSet(object->model[0], object->scale.x, object->scale.y, object->scale.z); @@ -547,7 +516,7 @@ void omMain(void) } } -// Dummy function to force string literals in binary +//Dummy function to force string literals in binary static void omDumpObj(Process *objman_process) { omObjMan *objman = objman_process->user_data; @@ -555,12 +524,14 @@ static void omDumpObj(Process *objman_process) s32 i; OSReport("=================== 現在登録されている OBJECT ==================\n"); OSReport("STAT PRI GRPN MEMN PROG (TRA) (ROT) (SCA) mdlcnt mtncnt work[0] work[1] work[2] work[3] *data\n"); - for (i = 0; i < objman->max_objs; i++) { + for(i=0; imax_objs; i++) { omObjData *object = &obj_all[i]; - OSReport("%04d:%04X %04X %d %d %08X (%.2f %.2f %.2f) (%.2f %.2f %.2f) (%.2f %.2f %.2f) %d %d %08X %08X %08X %08X %08X\n", object->stat, - object->stat, object->prio, object->group, object->unk10, object->func, object->trans.x, object->trans.y, object->trans.z, object->rot.x, - object->rot.y, object->rot.z, object->scale.x, object->scale.y, object->scale.z, object->mdlcnt, object->mtncnt, object->work[0], - object->work[1], object->work[2], object->work[3], object->data); + OSReport("%04d:%04X %04X %d %d %08X (%.2f %.2f %.2f) (%.2f %.2f %.2f) (%.2f %.2f %.2f) %d %d %08X %08X %08X %08X %08X\n", + object->stat, object->stat, object->prio, object->group, object->unk10, object->func, + object->trans.x, object->trans.y, object->trans.z, + object->rot.x, object->rot.y, object->rot.z, + object->scale.x, object->scale.y, object->scale.z, + object->mdlcnt, object->mtncnt, object->work[0], object->work[1], object->work[2], object->work[3], object->data); } OSReport("================================================================\n"); } @@ -570,16 +541,15 @@ void omAllPause(BOOL pause) Process *objman_process = HuPrcCurrentGet(); omObjMan *objman = objman_process->user_data; s32 i; - if (pause) { - for (i = 0; i < objman->max_objs; i++) { - if ((objman->obj[i].stat & (OM_STAT_DELETED | OM_STAT_NOPAUSE)) == 0) { + if(pause) { + for(i=0; imax_objs; i++) { + if((objman->obj[i].stat & (OM_STAT_DELETED|OM_STAT_NOPAUSE)) == 0) { omSetStatBit(&objman->obj[i], OM_STAT_PAUSED); } } - } - else { - for (i = 0; i < objman->max_objs; i++) { - if ((objman->obj[i].stat & (OM_STAT_DELETED | OM_STAT_NOPAUSE)) == 0) { + } else { + for(i=0; imax_objs; i++) { + if((objman->obj[i].stat & (OM_STAT_DELETED|OM_STAT_NOPAUSE)) == 0) { omResetStatBit(&objman->obj[i], OM_STAT_PAUSED); } } @@ -588,10 +558,9 @@ void omAllPause(BOOL pause) char omPauseChk(void) { - if (omDBGSysKeyObj == NULL) { + if(omDBGSysKeyObj == NULL) { return 0; - } - else { + } else { return omDBGSysKeyObj->work[0] & 0x1; } } diff --git a/src/game/objsub.c b/src/game/objsub.c index faf45970..b00631c4 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1,13 +1,11 @@ #include "game/objsub.h" #include "game/data.h" #include "game/gamework_data.h" -#include "game/hsfman.h" #include "game/object.h" -#include "game/pad.h" #include "game/window.h" -SHARED_SYM MgInfo mgInfoTbl[] = { +MgInfo mgInfoTbl[] = { { OVL_M401, // ovl 0, // type @@ -1164,19 +1162,19 @@ SHARED_SYM MgInfo mgInfoTbl[] = { void MGSeqPracticeExitCheck(omObjData *); -SHARED_SYM s16 mgTypeCurr; -SHARED_SYM s16 mgBattleStar[4]; -SHARED_SYM s16 mgBattleStarMax; -SHARED_SYM u8 lbl_801D3E94; -SHARED_SYM u32 mgRecordExtra; -SHARED_SYM s32 mgQuitExtraF; -SHARED_SYM s32 mgPracticeEnableF; -SHARED_SYM s32 mgInstExitEnableF; -SHARED_SYM u8 mgBoardHostEnableF; +s16 mgTypeCurr; +s16 mgBattleStar[4]; +s16 mgBattleStarMax; +u8 lbl_801D3E94; +u32 mgRecordExtra; +s32 mgQuitExtraF; +s32 mgPracticeEnableF; +s32 mgInstExitEnableF; +u8 mgBoardHostEnableF; -SHARED_SYM s16 mgTicTacToeGrid[3][3]; -SHARED_SYM u8 mgIndexList[256]; -SHARED_SYM GameStat mgGameStatBackup; +s16 mgTicTacToeGrid[3][3]; +u8 mgIndexList[256]; +GameStat mgGameStatBackup; s32 omMgIndexGet(s16 overlay) { diff --git a/src/game/objsysobj.c b/src/game/objsysobj.c index 438a05df..210bdbfd 100644 --- a/src/game/objsysobj.c +++ b/src/game/objsysobj.c @@ -1,20 +1,16 @@ -#include "game/audio.h" #include "game/object.h" #include "game/hsfman.h" #include "game/pad.h" #include "game/objsub.h" #include "game/minigame_seq.h" #include "game/sprite.h" +#include "game/hsfman.h" +#include "game/audio.h" #include "ext_math.h" -#ifndef __MWERKS__ -void MGSeqPauseKill(void); -#include "game/wipe.h" -#endif - -SHARED_SYM Vec CRot; -SHARED_SYM Vec Center; -SHARED_SYM float CZoom; +Vec CRot; +Vec Center; +float CZoom; Vec CRotM[16]; Vec CenterM[16]; float CZoomM[16]; diff --git a/src/game/ovllist.c b/src/game/ovllist.c index b03102e9..e64fdd34 100644 --- a/src/game/ovllist.c +++ b/src/game/ovllist.c @@ -1,22 +1,11 @@ #include "game/dvd.h" #include "game/object.h" -#ifdef TARGET_PC - -#ifdef _WIN32 -#define OVL_DEFINE(name, path) { path ".dll", 0 }, -#else -#define OVL_DEFINE(name, path) { path ".so", 0 }, -#endif - -#else - -#define OVL_DEFINE(name, path) { "dll/" path ".rel", 0 }, -#endif +#define OVL_DEFINE(name, path) { path, 0 }, FileListEntry _ovltbl[OVL_COUNT+1] = { #include "ovl_table.h" { NULL, -1 } }; -#undef OVL_DEFINE +#undef OVL_DEFINE \ No newline at end of file diff --git a/src/game/pad.c b/src/game/pad.c index 1b828789..cded2f4f 100644 --- a/src/game/pad.c +++ b/src/game/pad.c @@ -2,9 +2,6 @@ #include "game/msm.h" #include "game/pad.h" -#ifdef TARGET_PC -#include -#endif typedef struct pad_rumble { s16 duration; @@ -19,17 +16,17 @@ static void PadADConv(s16 pad, PADStatus *status); static int padStatErrOld[4]; static PadRumble rumbleData[4]; -SHARED_SYM u16 HuPadBtn[4]; -SHARED_SYM u16 HuPadBtnDown[4]; -SHARED_SYM u16 HuPadBtnRep[4]; -SHARED_SYM s8 HuPadStkX[4]; -SHARED_SYM s8 HuPadStkY[4]; -SHARED_SYM s8 HuPadSubStkX[4]; -SHARED_SYM s8 HuPadSubStkY[4]; -SHARED_SYM u8 HuPadTrigL[4]; -SHARED_SYM u8 HuPadTrigR[4]; -SHARED_SYM u8 HuPadDStk[4]; -SHARED_SYM u8 HuPadDStkRep[4]; +u16 HuPadBtn[4]; +u16 HuPadBtnDown[4]; +u16 HuPadBtnRep[4]; +s8 HuPadStkX[4]; +s8 HuPadStkY[4]; +s8 HuPadSubStkX[4]; +s8 HuPadSubStkY[4]; +u8 HuPadTrigL[4]; +u8 HuPadTrigR[4]; +u8 HuPadDStk[4]; +u8 HuPadDStkRep[4]; s8 HuPadErr[4]; u16 _PadBtn[4]; u16 _PadBtnDown[4]; @@ -257,4 +254,4 @@ s16 HuPadStatGet(s16 pad) u32 HuPadRumbleGet(void) { return RumbleBit; -} +} \ No newline at end of file diff --git a/src/game/printfunc.c b/src/game/printfunc.c index a63b3c8b..4f85f5a9 100644 --- a/src/game/printfunc.c +++ b/src/game/printfunc.c @@ -1,10 +1,10 @@ -#include "game/printfunc.h" #include "dolphin.h" -#include "game/disp.h" +#include "game/printfunc.h" #include "game/init.h" +#include "game/disp.h" -#include "stdarg.h" #include "stdio.h" +#include "stdarg.h" extern u8 ank8x8_4b[]; @@ -24,23 +24,38 @@ struct strline_data { static struct strline_data strline[256]; static char pfStrBuf[256]; -SHARED_SYM int fontcolor; +int fontcolor; u16 empstrline; u16 strlinecnt; BOOL saftyFrameF; static void WireDraw(void); -static GXColor ATTRIBUTE_ALIGN(32) fcoltbl[16] = { { 0, 0, 0, 255 }, { 0, 0, 128, 255 }, { 128, 0, 0, 255 }, { 128, 0, 128, 255 }, { 0, 128, 0, 255 }, - { 0, 128, 128, 255 }, { 128, 128, 0, 255 }, { 128, 128, 128, 255 }, { 128, 128, 128, 128 }, { 0, 0, 255, 255 }, { 255, 0, 0, 255 }, - { 255, 0, 255, 255 }, { 0, 255, 0, 255 }, { 0, 255, 255, 255 }, { 255, 255, 0, 255 }, { 255, 255, 255, 255 } }; +static GXColor ATTRIBUTE_ALIGN(32) fcoltbl[16] = { + { 0, 0, 0, 255 }, + { 0, 0, 128, 255 }, + { 128, 0, 0, 255 }, + { 128, 0, 128, 255 }, + { 0, 128, 0, 255 }, + { 0, 128, 128, 255 }, + { 128, 128, 0, 255 }, + { 128, 128, 128, 255 }, + { 128, 128, 128, 128 }, + { 0, 0, 255, 255 }, + { 255, 0, 0, 255 }, + { 255, 0, 255, 255 }, + { 0, 255, 0, 255 }, + { 0, 255, 255, 255 }, + { 255, 255, 0, 255 }, + { 255, 255, 255, 255 } +}; void pfInit(void) { int i; fontcolor = 15; empstrline = 0; - + for (i = 0; i < 256; i++) { strline[i].str[0] = 0; } @@ -53,7 +68,7 @@ void pfClsScr(void) empstrline = 0; strlinecnt = 0; for (i = 0; i < 256; i++) { - strline[i].empstrline_next = i + 1; + strline[i].empstrline_next = i+1; strline[i].type = 0; if (strline[i].str[0] != 0) { strline[i].str[0] = 0; @@ -69,7 +84,7 @@ s16 print8(s16 x, s16 y, float scale, char *str, ...) s16 ret; va_list list; strline_curr = &strline[empstrline]; - if (strlinecnt >= 256) { + if(strlinecnt >= 256) { return -1; } va_start(list, str); @@ -83,7 +98,7 @@ s16 print8(s16 x, s16 y, float scale, char *str, ...) strline_curr->y = y; strline_curr->scale = scale; dst = strline_curr->str; - while (*src) { + while(*src) { *dst++ = *src++; } *dst = 0; @@ -97,7 +112,7 @@ s16 printWin(s16 x, s16 y, s16 w, s16 h, GXColor *color) s16 ret; char *src = pfStrBuf; strline_curr = &strline[empstrline]; - if (strlinecnt >= 256) { + if(strlinecnt >= 256) { return -1; } strlinecnt++; @@ -122,9 +137,9 @@ void pfDrawFonts(void) Mtx modelview; int i; s16 x, y, w, h; - + u16 strline_count = strlinecnt; - if (saftyFrameF) { + if(saftyFrameF) { WireDraw(); } MTXOrtho(proj, 0, HU_FB_HEIGHT, 0, HU_FB_WIDTH, 0, 10); @@ -141,7 +156,7 @@ void pfDrawFonts(void) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_CLR0, fcoltbl, sizeof(fcoltbl), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, fcoltbl, sizeof(GXColor)); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); GXInvalidateTexAll(); GXInitTexObj(&font_tex, ank8x8_4b, 128, 128, GX_TF_I4, GX_CLAMP, GX_CLAMP, GX_FALSE); @@ -158,10 +173,10 @@ void pfDrawFonts(void) GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetAlphaUpdate(GX_TRUE); - for (i = 0; i < 256; i++) { + for(i=0; i<256; i++) { x = strline[i].x; y = strline[i].y; - if (strline[i].type == 1) { + if(strline[i].type == 1) { w = strline[i].w; h = strline[i].h; GXClearVtxDesc(); @@ -177,9 +192,9 @@ void pfDrawFonts(void) GXSetNumTexGens(0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition2s16(x, y); - GXPosition2s16(x + w, y); - GXPosition2s16(x + w, y + h); - GXPosition2s16(x, y + h); + GXPosition2s16(x+w, y); + GXPosition2s16(x+w, y+h); + GXPosition2s16(x, y+h); GXEnd(); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -188,15 +203,14 @@ void pfDrawFonts(void) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSETARRAY(GX_VA_CLR0, fcoltbl, sizeof(fcoltbl), sizeof(GXColor)); + GXSetArray(GX_VA_CLR0, fcoltbl, sizeof(GXColor)); GXSetNumTevStages(1); GXSetNumTexGens(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); GXSetTevOp(GX_TEVSTAGE0, GX_MODULATE); - } - else { - if (strline[i].str[0] != '\0') { + } else { + if(strline[i].str[0] != '\0') { float shadow_ofs_x, shadow_ofs_y; float char_w; float char_h; @@ -205,80 +219,79 @@ void pfDrawFonts(void) u16 color; s16 shadow_color; float scale; - char_w = char_h = 8.0f * strline[i].scale; + char_w = char_h = 8.0f*strline[i].scale; str = strline[i].str; color = strline[i].color; shadow_color = -1; scale = 1.0f; - while (*str) { + while(*str) { char c = *str++; - switch (c) { + switch(c) { case 255: c = *str++; - scale = c / 16.0f; - char_w = 8.0f * strline[i].scale * scale; - char_h = 8.0f * strline[i].scale * scale; + scale = c/16.0f; + char_w = 8.0f*strline[i].scale*scale; + char_h = 8.0f*strline[i].scale*scale; break; - + case 254: - color = (*str++) - 1; + color = (*str++)-1; break; - + case 253: - shadow_color = (*str++) - 1; - shadow_ofs_x = 1.3333333f * strline[i].scale * scale; - shadow_ofs_y = 1.3333333f * strline[i].scale * scale; + shadow_color = (*str++)-1; + shadow_ofs_x = 1.3333333f*strline[i].scale*scale; + shadow_ofs_y = 1.3333333f*strline[i].scale*scale; break; - + default: - texcoord_x = (c % 16) / 16.0f; - texcoord_y = ((c / 16) / 16.0f) + (1 / 128.0f); - if (shadow_color < 0) { + texcoord_x = (c%16)/16.0f; + texcoord_y = ((c/16)/16.0f)+(1/128.0f); + if(shadow_color < 0) { GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3s16(x, y, 0); GXColor1x8(color); GXTexCoord2f32(texcoord_x, texcoord_y); - GXPosition3s16(x + char_w, y, 0); + GXPosition3s16(x+char_w, y, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y); - GXPosition3s16(x + char_w, y + char_h, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y); + GXPosition3s16(x+char_w, y+char_h, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y + (1 / 16.0f)); - GXPosition3s16(x, y + char_h, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y+(1/16.0f)); + GXPosition3s16(x, y+char_h, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x, texcoord_y + (1 / 16.0f)); + GXTexCoord2f32(texcoord_x, texcoord_y+(1/16.0f)); GXEnd(); - } - else { + } else { GXBegin(GX_QUADS, GX_VTXFMT0, 8); - GXPosition3s16(x + shadow_ofs_x, y + shadow_ofs_y, 0); + GXPosition3s16(x+shadow_ofs_x, y+shadow_ofs_y, 0); GXColor1x8(shadow_color); GXTexCoord2f32(texcoord_x, texcoord_y); - GXPosition3s16(x + char_w + shadow_ofs_x, y + shadow_ofs_y, 0); + GXPosition3s16(x+char_w+shadow_ofs_x, y+shadow_ofs_y, 0); GXColor1x8(shadow_color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y); - GXPosition3s16(x + char_w + shadow_ofs_x, y + char_h + shadow_ofs_y, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y); + GXPosition3s16(x+char_w+shadow_ofs_x, y+char_h+shadow_ofs_y, 0); GXColor1x8(shadow_color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y + (1 / 16.0f)); - GXPosition3s16(x + shadow_ofs_x, y + char_h + shadow_ofs_y, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y+(1/16.0f)); + GXPosition3s16(x+shadow_ofs_x, y+char_h+shadow_ofs_y, 0); GXColor1x8(shadow_color); - GXTexCoord2f32(texcoord_x, texcoord_y + (1 / 16.0f)); + GXTexCoord2f32(texcoord_x, texcoord_y+(1/16.0f)); GXPosition3s16(x, y, 0); GXColor1x8(color); GXTexCoord2f32(texcoord_x, texcoord_y); - GXPosition3s16(x + char_w, y, 0); + GXPosition3s16(x+char_w, y, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y); - GXPosition3s16(x + char_w, y + char_h, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y); + GXPosition3s16(x+char_w, y+char_h, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x + (1 / 16.0f), texcoord_y + (1 / 16.0f)); - GXPosition3s16(x, y + char_h, 0); + GXTexCoord2f32(texcoord_x+(1/16.0f), texcoord_y+(1/16.0f)); + GXPosition3s16(x, y+char_h, 0); GXColor1x8(color); - GXTexCoord2f32(texcoord_x, texcoord_y + (1 / 16.0f)); + GXTexCoord2f32(texcoord_x, texcoord_y+(1/16.0f)); GXEnd(); } x += char_w; - if (x > HU_FB_WIDTH) { + if(x > HU_FB_WIDTH) { x = 0; y += char_h; } @@ -288,9 +301,6 @@ void pfDrawFonts(void) } } } -#ifdef TARGET_PC - GXDestroyTexObj(&font_tex); -#endif } #define SAFETY_W 16 @@ -302,10 +312,9 @@ static void WireDraw(void) Mtx modelview; MTXOrtho(proj, 0, HU_DISP_HEIGHT, 0, HU_DISP_WIDTH, 0, 10); GXSetProjection(proj, GX_ORTHOGRAPHIC); - if (RenderMode->field_rendering) { + if(RenderMode->field_rendering) { GXSetViewportJitter(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1, VIGetNextField()); - } - else { + } else { GXSetViewport(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1); } GXSetScissor(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT); @@ -329,19 +338,19 @@ static void WireDraw(void) GXBegin(GX_LINES, 0, 8); GXPosition2f32(SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT - SAFETY_H); + GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); GXPosition2f32(SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(HU_DISP_WIDTH - SAFETY_W, SAFETY_H); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(HU_DISP_WIDTH - SAFETY_W, HU_DISP_HEIGHT - SAFETY_H); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(HU_DISP_WIDTH - SAFETY_W, SAFETY_H); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(HU_DISP_WIDTH - SAFETY_W, HU_DISP_HEIGHT - SAFETY_H); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT - SAFETY_H); + GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); GXEnd(); } diff --git a/src/game/process.c b/src/game/process.c index 902eea3d..b62b74fc 100644 --- a/src/game/process.c +++ b/src/game/process.c @@ -1,10 +1,6 @@ #include "game/process.h" -#include "dolphin/os.h" #include "game/memory.h" - -#ifdef __MWERKS__ -#include "game/jmp.h" -#endif +#include "dolphin/os.h" #define FAKE_RETADDR 0xA5A5A5A5 @@ -13,12 +9,7 @@ #define EXEC_CHILDWATCH 2 #define EXEC_KILLED 3 -#ifdef TARGET_PC -static cothread_t processthread; -static u8 thread_arg; -#else static jmp_buf processjmpbuf; -#endif static Process *processtop; static Process *processcur; static u16 processcnt; @@ -30,9 +21,8 @@ void HuPrcInit(void) processtop = NULL; } -static void LinkProcess(Process **root, Process *process) -{ - Process *src_process = *root; +static void LinkProcess(Process** root, Process* process) { + Process* src_process = *root; if (src_process && (src_process->prio >= process->prio)) { while (src_process->next && src_process->next->prio >= process->prio) { @@ -45,8 +35,7 @@ static void LinkProcess(Process **root, Process *process) if (process->next) { process->next->prev = process; } - } - else { + } else { process->next = (*root); process->prev = NULL; *root = process; @@ -55,15 +44,13 @@ static void LinkProcess(Process **root, Process *process) } } } -static void UnlinkProcess(Process **root, Process *process) -{ +static void UnlinkProcess(Process **root, Process *process) { if (process->next) { process->next->prev = process->prev; } if (process->prev) { process->prev->next = process->next; - } - else { + } else { *root = process->next; } } @@ -73,16 +60,13 @@ Process *HuPrcCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extra_siz Process *process; s32 alloc_size; void *heap; - if (stack_size == 0) { + if(stack_size == 0) { stack_size = 2048; } -#ifdef TARGET_PC - stack_size *= 2; - alloc_size = HuMemMemoryAllocSizeGet(sizeof(Process)) + HuMemMemoryAllocSizeGet(extra_size); -#else - alloc_size = HuMemMemoryAllocSizeGet(sizeof(Process)) + HuMemMemoryAllocSizeGet(stack_size) + HuMemMemoryAllocSizeGet(extra_size); -#endif - if (!(heap = HuMemDirectMalloc(HEAP_SYSTEM, alloc_size))) { + alloc_size = HuMemMemoryAllocSizeGet(sizeof(Process)) + +HuMemMemoryAllocSizeGet(stack_size) + +HuMemMemoryAllocSizeGet(extra_size); + if(!(heap = HuMemDirectMalloc(HEAP_SYSTEM, alloc_size))) { OSReport("process> malloc error size %d\n", alloc_size); return NULL; } @@ -93,14 +77,10 @@ Process *HuPrcCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extra_siz process->stat = 0; process->prio = prio; process->sleep_time = 0; -#ifdef TARGET_PC - process->thread = co_create(stack_size, func); -#else - process->base_sp = ((uintptr_t)HuMemMemoryAlloc(heap, stack_size, FAKE_RETADDR)) + stack_size - 8; + process->base_sp = ((u32)HuMemMemoryAlloc(heap, stack_size, FAKE_RETADDR))+stack_size-8; gcsetjmp(&process->jump); process->jump.lr = (u32)func; process->jump.sp = process->base_sp; -#endif process->dtor = NULL; process->user_data = NULL; LinkProcess(&processtop, process); @@ -113,7 +93,7 @@ Process *HuPrcCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extra_siz void HuPrcChildLink(Process *parent, Process *child) { HuPrcChildUnlink(child); - if (parent->child) { + if(parent->child) { parent->child->first_child = child; } child->next_child = parent->child; @@ -124,14 +104,13 @@ void HuPrcChildLink(Process *parent, Process *child) void HuPrcChildUnlink(Process *process) { - if (process->parent) { - if (process->next_child) { + if(process->parent) { + if(process->next_child) { process->next_child->first_child = process->first_child; } - if (process->first_child) { + if(process->first_child) { process->first_child->next_child = process->next_child; - } - else { + } else { process->parent->child = process->next_child; } process->parent = NULL; @@ -148,18 +127,11 @@ Process *HuPrcChildCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extr void HuPrcChildWatch() { Process *curr = HuPrcCurrentGet(); - if (curr->child) { + if(curr->child) { curr->exec = EXEC_CHILDWATCH; - -#ifdef TARGET_PC - thread_arg = 1; - co_switch(processthread); -#else - if (gcsetjmp(&curr->jump) == 0) - { + if(!gcsetjmp(&curr->jump)) { gclongjmp(&processjmpbuf, 1); } -#endif } } @@ -170,19 +142,18 @@ Process *HuPrcCurrentGet() static s32 SetKillStatusProcess(Process *process) { - if (process->exec != EXEC_KILLED) { + if(process->exec != EXEC_KILLED) { HuPrcWakeup(process); process->exec = EXEC_KILLED; return 0; - } - else { + } else { return -1; } } s32 HuPrcKill(Process *process) { - if (process == NULL) { + if(process == NULL) { process = HuPrcCurrentGet(); } HuPrcChildKill(process); @@ -193,8 +164,8 @@ s32 HuPrcKill(Process *process) void HuPrcChildKill(Process *process) { Process *child = process->child; - while (child) { - if (child->child) { + while(child) { + if(child->child) { HuPrcChildKill(child); } SetKillStatusProcess(child); @@ -205,16 +176,12 @@ void HuPrcChildKill(Process *process) static void gcTerminateProcess(Process *process) { - if (process->dtor) { + if(process->dtor) { process->dtor(); } UnlinkProcess(&processtop, process); processcnt--; -#ifdef TARGET_PC - thread_arg = 2; -#else gclongjmp(&processjmpbuf, 2); -#endif } void HuPrcEnd() @@ -228,18 +195,13 @@ void HuPrcEnd() void HuPrcSleep(s32 time) { Process *process = HuPrcCurrentGet(); - if (time != 0 && process->exec != EXEC_KILLED) { + if(time != 0 && process->exec != EXEC_KILLED) { process->exec = EXEC_SLEEP; process->sleep_time = time; } -#ifdef TARGET_PC - thread_arg = 1; - co_switch(processthread); -#else - if (gcsetjmp(&process->jump) == 0) { + if(!gcsetjmp(&process->jump)) { gclongjmp(&processjmpbuf, 1); } -#endif } void HuPrcVSleep() @@ -268,98 +230,54 @@ void HuPrcCall(s32 tick) Process *process; s32 ret; processcur = processtop; -#ifdef TARGET_PC - thread_arg = ret = 0; - processthread = co_active(); - while (1) { - ret = thread_arg; - switch (ret) { - case 2: - co_delete(processcur->thread); -#else ret = gcsetjmp(&processjmpbuf); - while (1) { - switch (ret) { + while(1) { + switch(ret) { case 2: -#endif HuMemDirectFree(processcur->heap); case 1: - #ifdef NON_MATCHING - // avoid dereferencing NULL - if (!processcur) { - break; - } - #endif - // memory_block->magic - if (((u8 *)(processcur->heap))[4] != 165) { + if(((u8 *)(processcur->heap))[4] != 165) { printf("stack overlap error.(process pointer %x)\n", processcur); - while (1) - ; - } - else { + while(1); + } else { processcur = processcur->next; } break; } process = processcur; - if (!process) { + if(!process) { return; } -#ifdef __MWERKS__ - // unused procfunc = process->jump.lr; -#endif - if ((process->stat & (PROCESS_STAT_PAUSE | PROCESS_STAT_UPAUSE)) && process->exec != EXEC_KILLED) { -#ifdef TARGET_PC - thread_arg = 1; -#endif + if((process->stat & (PROCESS_STAT_PAUSE|PROCESS_STAT_UPAUSE)) && process->exec != EXEC_KILLED) { ret = 1; continue; } - switch (process->exec) { + switch(process->exec) { case EXEC_SLEEP: - if (process->sleep_time > 0) { + if(process->sleep_time > 0) { process->sleep_time -= tick; - if (process->sleep_time <= 0) { + if(process->sleep_time <= 0) { process->sleep_time = 0; process->exec = EXEC_NORMAL; } } -#ifdef TARGET_PC - thread_arg = 1; -#endif ret = 1; break; - + case EXEC_CHILDWATCH: - if (process->child) { -#ifdef TARGET_PC - thread_arg = 1; -#endif + if(process->child) { ret = 1; - } - else { + } else { process->exec = EXEC_NORMAL; -#ifdef TARGET_PC - thread_arg = 0; -#endif ret = 0; } break; - + case EXEC_KILLED: -#ifdef TARGET_PC - HuPrcEnd(); - break; -#else process->jump.lr = (u32)HuPrcEnd; -#endif case EXEC_NORMAL: -#ifdef TARGET_PC - co_switch(process->thread); -#else gclongjmp(&process->jump, 1); -#endif break; } } @@ -389,21 +307,20 @@ void HuPrcResetStat(Process *process, u16 value) void HuPrcAllPause(s32 flag) { Process *process = processtop; - if (flag) { - while (process != NULL) { - if (!(process->stat & PROCESS_STAT_PAUSE_EN)) { + if(flag) { + while(process != NULL) { + if(!(process->stat & PROCESS_STAT_PAUSE_EN)) { HuPrcSetStat(process, PROCESS_STAT_PAUSE); } - + process = process->next; } - } - else { - while (process != NULL) { - if (process->stat & PROCESS_STAT_PAUSE) { + } else { + while(process != NULL) { + if(process->stat & PROCESS_STAT_PAUSE) { HuPrcResetStat(process, PROCESS_STAT_PAUSE); } - + process = process->next; } } @@ -412,22 +329,21 @@ void HuPrcAllPause(s32 flag) void HuPrcAllUPause(s32 flag) { Process *process = processtop; - if (flag) { - while (process != NULL) { - if (!(process->stat & PROCESS_STAT_UPAUSE_EN)) { + if(flag) { + while(process != NULL) { + if(!(process->stat & PROCESS_STAT_UPAUSE_EN)) { HuPrcSetStat(process, PROCESS_STAT_UPAUSE); } - + process = process->next; } - } - else { - while (process != NULL) { - if (process->stat & PROCESS_STAT_UPAUSE) { + } else { + while(process != NULL) { + if(process->stat & PROCESS_STAT_UPAUSE) { HuPrcResetStat(process, PROCESS_STAT_UPAUSE); } - + process = process->next; } } -} \ No newline at end of file +} diff --git a/src/game/saveload.c b/src/game/saveload.c index b267efc6..df1e5d6e 100644 --- a/src/game/saveload.c +++ b/src/game/saveload.c @@ -5,14 +5,12 @@ #include "game/flag.h" #include "game/gamework_data.h" #include "game/pad.h" -#include "game/process.h" #include "game/sprite.h" #include "game/window.h" #include "stddef.h" #include "string.h" - #if VERSION_ENG #define SAVE_WRITE_BEGIN _SetFlag(FLAG_ID_MAKE(3, 0)); #define SAVE_WRITE_END _ClearFlag(FLAG_ID_MAKE(3, 0)); @@ -29,13 +27,13 @@ static void SLKillSaveWin(void); extern u8 UnMountCnt; -SHARED_SYM CARDFileInfo curFileInfo; -SHARED_SYM SaveBufAll saveBuf; +CARDFileInfo curFileInfo; +SaveBufAll saveBuf; u64 SLSerialNo; -SHARED_SYM s32 saveExecF; +s32 saveExecF; u8 curBoxNo; -SHARED_SYM s16 curSlotNo; +s16 curSlotNo; #if VERSION_JP static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; @@ -44,7 +42,7 @@ static u8 sjisNumTbl[20] = "0123456789"; static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" }; #endif -SHARED_SYM char *SaveFileNameTbl[] = { "MARIPA4BOX0", "MARIPA4BOX1", "MARIPA4BOX2" }; +char *SaveFileNameTbl[] = { "MARIPA4BOX0", "MARIPA4BOX1", "MARIPA4BOX2" }; s32 SaveEnableF = 1; diff --git a/src/game/sprman.c b/src/game/sprman.c index 1a656295..159b0f47 100644 --- a/src/game/sprman.c +++ b/src/game/sprman.c @@ -4,11 +4,6 @@ #include "dolphin/mtx.h" -#include "port/byteswap.h" -#ifndef __MWERKS__ -#include "game/hsfdraw.h" -#endif - #define SPRITE_DIRTY_ATTR 0x1 #define SPRITE_DIRTY_XFORM 0x2 #define SPRITE_DIRTY_COLOR 0x4 @@ -217,64 +212,27 @@ AnimData *HuSprAnimRead(void *data) AnimBmpData *bmp; AnimBankData *bank; AnimPatData *pat; - - AnimData *anim = data; -#ifdef TARGET_PC - s16 j; - if (anim->valid == ANIM_DATA_ALLOCATION_VALID) { + + AnimData *anim = (AnimData *)data; + if((u32)anim->bank & 0xFFFF0000) { anim->useNum++; return anim; } - anim = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimData)); - byteswap_animdata(data, anim); - anim->valid = ANIM_DATA_ALLOCATION_VALID; -#else - if((uintptr_t)anim->bank & ~0xFFFF) { - anim->useNum++; - return anim; - } -#endif - bank = (void *)((uintptr_t)anim->bank+(uintptr_t)data); -#ifdef TARGET_PC - bank = HuMemDirectMalloc(HEAP_DATA, anim->bankNum * sizeof(AnimBankData)); - for(i=0; ibankNum; i++) { - byteswap_animbankdata(&((AnimBankData32b*)((uintptr_t)anim->bank+(uintptr_t)data))[i], &bank[i]); - } -#endif + bank = (AnimBankData *)((u32)anim->bank+(u32)data); anim->bank = bank; - pat = (void *)((uintptr_t)anim->pat+(uintptr_t)data); -#ifdef TARGET_PC - pat = HuMemDirectMalloc(HEAP_DATA, anim->patNum * sizeof(AnimPatData)); - for(i=0; ipatNum; i++) { - byteswap_animpatdata(&((AnimPatData32b*)((uintptr_t)anim->pat+(uintptr_t)data))[i], &pat[i]); - } -#endif + pat = (AnimPatData *)((u32)anim->pat+(u32)data); anim->pat = pat; - bmp = (void *)((uintptr_t)anim->bmp+(uintptr_t)data); -#ifdef TARGET_PC - bmp = HuMemDirectMalloc(HEAP_DATA, anim->bmpNum * sizeof(AnimBmpData)); - for(i=0; ibmpNum; i++) { - byteswap_animbmpdata(&((AnimBmpData32b*)((uintptr_t)anim->bmp+(uintptr_t)data))[i], &bmp[i]); - } -#endif + bmp = (AnimBmpData *)((u32)anim->bmp+(u32)data); anim->bmp = bmp; for(i=0; ibankNum; i++, bank++) { - bank->frame = (AnimFrameData *)((uintptr_t)bank->frame+(uintptr_t)data); -#ifdef TARGET_PC - byteswap_animframedata(bank->frame); -#endif + bank->frame = (AnimFrameData *)((u32)bank->frame+(u32)data); } for(i=0; ipatNum; i++, pat++) { - pat->layer = (AnimLayerData *)((uintptr_t)pat->layer+(uintptr_t)data); -#ifdef TARGET_PC - for (j = 0; j < pat->layerNum; j++) { - byteswap_animlayerdata(&pat->layer[j]); - } -#endif + pat->layer = (AnimLayerData *)((u32)pat->layer+(u32)data); } for(i=0; ibmpNum; i++, bmp++) { - bmp->palData = (void *)((uintptr_t)bmp->palData+(uintptr_t)data); - bmp->data = (void *)((uintptr_t)bmp->data+(uintptr_t)data); + bmp->palData = (void *)((u32)bmp->palData+(u32)data); + bmp->data = (void *)((u32)bmp->data+(u32)data); } anim->useNum = 0; return anim; @@ -443,11 +401,6 @@ void HuSprAnimKill(AnimData *anim) HuMemDirectFree(anim->bmp->palData); } } -#ifdef TARGET_PC - HuMemDirectFree(anim->bank); - HuMemDirectFree(anim->pat); - HuMemDirectFree(anim->bmp); -#endif HuMemDirectFree(anim); } } @@ -657,15 +610,6 @@ AnimData *HuSprAnimMake(s16 sizeX, s16 sizeY, s16 dataFmt) AnimBankData *bank; AnimData *new_anim; -#ifdef TARGET_PC - // as these are allocated in HuSprAnimRead, we need to do so here too so we don't get issues when freeing - anim = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimData)); - anim->bank = bank = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimBankData)); - bank->frame = frame = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimFrameData)); - anim->pat = pat = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimPatData)); - pat->layer = layer = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimLayerData)); - anim->bmp = bmp = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimBmpData)); -#else anim = new_anim = HuMemDirectMalloc(HEAP_DATA, sizeof(AnimData)+sizeof(AnimBankData)+sizeof(AnimFrameData) +sizeof(AnimPatData)+sizeof(AnimLayerData)+sizeof(AnimBmpData)); @@ -679,7 +623,6 @@ AnimData *HuSprAnimMake(s16 sizeX, s16 sizeY, s16 dataFmt) pat->layer = layer; bmp = temp = ((char *)temp+sizeof(AnimLayerData)); anim->bmp = bmp; -#endif anim->useNum = 0; anim->bankNum = 1; anim->patNum = 1; @@ -772,9 +715,9 @@ void AnimDebug(AnimData *anim) bank++; } bmp = anim->bmp; - for(i = 0; i < anim->bmpNum & ANIM_BMP_NUM_MASK; i++) { + for(i=0; ibmpNum & ANIM_BMP_NUM_MASK; i++) { OSReport("BMP%d:\n", i); OSReport("\tpixSize %d,palNum %d,size (%d,%d)\n", bmp->pixSize, bmp->palNum, bmp->sizeX, bmp->sizeY); bmp++; } -} +} \ No newline at end of file diff --git a/src/game/sprput.c b/src/game/sprput.c index 0bd57167..c2b061b1 100644 --- a/src/game/sprput.c +++ b/src/game/sprput.c @@ -202,18 +202,12 @@ void HuSprTexLoad(AnimData *anim, short bmp, short slot, GXTexWrapMode wrap_s, G case ANIM_BMP_C8: GXInitTlutObj(&tlut_obj, bmp_ptr->palData, GX_TL_RGB5A3, bmp_ptr->palNum); GXLoadTlut(&tlut_obj, slot); -#ifdef TARGET_PC - GXDestroyTlutObj(&tlut_obj); -#endif GXInitTexObjCI(&tex_obj,bmp_ptr->data, sizeX, sizeY, GX_TF_C8, wrap_s, wrap_t, GX_FALSE, slot); break; case ANIM_BMP_C4: GXInitTlutObj(&tlut_obj, bmp_ptr->palData, GX_TL_RGB5A3, bmp_ptr->palNum); GXLoadTlut(&tlut_obj, slot); -#ifdef TARGET_PC - GXDestroyTlutObj(&tlut_obj); -#endif GXInitTexObjCI(&tex_obj,bmp_ptr->data, sizeX, sizeY, GX_TF_C4, wrap_s, wrap_t, GX_FALSE, slot); break; @@ -246,9 +240,6 @@ void HuSprTexLoad(AnimData *anim, short bmp, short slot, GXTexWrapMode wrap_s, G } GXInitTexObjLOD(&tex_obj, filter, filter, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex_obj, slot); -#ifdef TARGET_PC - GXDestroyTexObj(&tex_obj); -#endif } void HuSprExecLayerSet(short draw_no, short layer) @@ -261,4 +252,4 @@ static void HuSprLayerHook(short layer) { HuSprDispInit(); HuSprExec(HuSprLayerDrawNo[layer]); -} +} \ No newline at end of file diff --git a/src/game/sreset.c b/src/game/sreset.c index 36b5810b..10d49ef4 100644 --- a/src/game/sreset.c +++ b/src/game/sreset.c @@ -20,10 +20,10 @@ extern s32 HuDvdErrWait; -static s32 SR_PreRstChk[4] = {0, 0, 0, 0}; +static s32 SR_PreRstChk[4] = {}; #if VERSION_JP -static s32 padding[4] = {0, 0, 0, 0}; +static s32 padding[4] = {}; #endif #if VERSION_ENG diff --git a/src/game/thpmain.c b/src/game/thpmain.c index f9cf8d1a..082eb281 100755 --- a/src/game/thpmain.c +++ b/src/game/thpmain.c @@ -243,15 +243,15 @@ static void THPViewSprFunc(HuSprite *arg0) sp8.b = arg0->b; sp8.a = arg0->a; if (arg0->z_rot != 0.0f) { - MTXRotAxisRad(sp18, &spC, MTXDegToRad(arg0->z_rot)); - MTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); - MTXConcat(sp18, sp48, sp48); + PSMTXRotAxisRad(sp18, &spC, MTXDegToRad(arg0->z_rot)); + PSMTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); + PSMTXConcat(sp18, sp48, sp48); } else { - MTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); + PSMTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); } mtxTransCat(sp48, arg0->x, arg0->y, 0.0f); - MTXConcat(*arg0->group_mtx, sp48, sp48); + PSMTXConcat(*arg0->group_mtx, sp48, sp48); temp_r30 = -((s32)audioTrack.unk00 / 2); temp_r29 = -((s32)audioTrack.unk04 / 2); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); diff --git a/src/game/window.c b/src/game/window.c index 43d56855..ac3be92e 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -45,8 +45,8 @@ static void GetMesMaxSizeSub(u32 mess); static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data); void mtxTransCat(Mtx, float, float, float); -SHARED_SYM WindowData ATTRIBUTE_ALIGN(32) winData[32]; -static u32 winKey[4]; +WindowData ATTRIBUTE_ALIGN(32) winData[32]; +u32 winKey[4]; keyBufData winComKeyBuf[256]; static AnimData *iconAnim; @@ -54,7 +54,7 @@ static AnimData *cursorAnim; static AnimData *cardAnimA; static AnimData *cardAnimB; static Process *winProc; -SHARED_SYM void *messDataPtr; +void *messDataPtr; static s32 messDataNo; static s16 winMaxWidth; static s16 winMaxHeight; @@ -402,14 +402,9 @@ static void MesDispFunc(HuSprite *sprite) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); -#ifdef TARGET_PC - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); -#else - //@bug: this passes GX_CLR_RGB but then uses GX_RGBA8 (should use either alpha variants of both or neither) + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_RGBA8, 0); -#endif GXSetCullMode(GX_CULL_NONE); GXSetNumTexGens(1); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); @@ -458,16 +453,16 @@ static void MesDispFunc(HuSprite *sprite) } GXPosition3f32(char_x + 1.0f, char_y, 0.0f); GXColor4u8(window->mess_pal[color][0], window->mess_pal[color][1], window->mess_pal[color][2], alpha); - GXTexCoord2f32(uv_minx, uv_miny); + GXPosition2f32(uv_minx, uv_miny); GXPosition3f32(char_x + char_w, char_y, 0.0f); GXColor4u8(window->mess_pal[color][0], window->mess_pal[color][1], window->mess_pal[color][2], alpha); - GXTexCoord2f32(uv_maxx, uv_miny); + GXPosition2f32(uv_maxx, uv_miny); GXPosition3f32(char_x + char_w, char_y + 24.0f, 0.0f); GXColor4u8(window->mess_pal[color][0], window->mess_pal[color][1], window->mess_pal[color][2], alpha); - GXTexCoord2f32(uv_maxx, uv_maxy); + GXPosition2f32(uv_maxx, uv_maxy); GXPosition3f32(char_x + 1.0f, char_y + 24.0f, 0.0f); GXColor4u8(window->mess_pal[color][0], window->mess_pal[color][1], window->mess_pal[color][2], alpha); - GXTexCoord2f32(uv_minx, uv_maxy); + GXPosition2f32(uv_minx, uv_maxy); } GXEnd(); mesCharCnt++; @@ -1903,7 +1898,7 @@ static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) WindowData *window_ptr; void *data; - data = HuAR_ARAMtoMRAMFileRead(winPortraitTbl[portrait], MEMORY_DEFAULT_NUM, HEAP_DATA); + data = HuAR_ARAMtoMRAMFileRead(winPortraitTbl[portrait], MEMORY_DEFAULT_NUM, 2); anim = HuSprAnimRead(data); window_ptr = &winData[window]; sprite = HuSprCreate(anim, window_ptr->prio - 1, 0); diff --git a/src/game/wipe.c b/src/game/wipe.c index 9ed4ffa3..aa7c1d9a 100644 --- a/src/game/wipe.c +++ b/src/game/wipe.c @@ -9,7 +9,7 @@ s16 HuSysVWaitGet(s16 old); typedef s32 (*fadeFunc)(void); -SHARED_SYM WipeState wipeData; +WipeState wipeData; BOOL wipeFadeInF; static void WipeColorFill(GXColor color); @@ -330,7 +330,4 @@ static void WipeFrameStill(GXColor color) GXTexCoord2f32(0, 1); GXEnd(); GXSetChanMatColor(GX_COLOR0A0, colorN); -#ifdef TARGET_PC - GXDestroyTexObj(&tex); -#endif } diff --git a/src/port/OS.c b/src/port/OS.c deleted file mode 100644 index 2040968f..00000000 --- a/src/port/OS.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include - -#include - -#ifndef _WIN32 -#include -#include -#include -#if __APPLE__ -#include -#endif -#endif - -#ifdef _WIN32 -#include -#endif - -#if __APPLE__ -static u64 MachToDolphinNum; -static u64 MachToDolphinDenom; -#elif _WIN32 -static LARGE_INTEGER PerfFrequency; -#endif - -// Credits: Super Monkey Ball - -#define MEM_SIZE (64 * 1024 * 1024) - -u8 LC_CACHE_BASE[4096]; - -static u64 GetGCTicks() -{ -#if __APPLE__ - return mach_absolute_time() * MachToDolphinNum / MachToDolphinDenom; -#elif __linux__ || __FreeBSD__ - struct timespec tp; - clock_gettime(CLOCK_MONOTONIC, &tp); - - return ((tp.tv_sec * 1000000000ull) + tp.tv_nsec) * OS_CORE_CLOCK / 1000000000ull; -#elif _WIN32 - LARGE_INTEGER perf; - QueryPerformanceCounter(&perf); - perf.QuadPart *= OS_CORE_CLOCK; - perf.QuadPart /= PerfFrequency.QuadPart; - return perf.QuadPart; -#else - return 0; -#endif -} - -void OSInit() -{ - puts("OSInit is a stub"); - u8 *arena = malloc(MEM_SIZE); - - OSSetArenaLo(arena); - OSSetArenaHi(arena + MEM_SIZE); - - #if __APPLE__ - mach_timebase_info_data_t timebase; - mach_timebase_info(&timebase); - MachToDolphinNum = OS_CORE_CLOCK * timebase.numer; - MachToDolphinDenom = 1000000000ull * timebase.denom; -#elif _WIN32 - QueryPerformanceFrequency(&PerfFrequency); -#endif -} - -OSTime OSGetTime(void) -{ - return (OSTime)GetGCTicks(); -} - -OSTick OSGetTick(void) -{ - return (OSTick)GetGCTicks(); -} - -u32 OSGetPhysicalMemSize(void) -{ - puts("OSGetPhysicalMemSize is a stub"); - return MEM_SIZE; -} - -u32 OSGetConsoleSimulatedMemSize(void) -{ - puts("OSGetSimulatedMemSize is a stub"); - return MEM_SIZE; -} diff --git a/src/port/ar.c b/src/port/ar.c deleted file mode 100644 index 10c2fc37..00000000 --- a/src/port/ar.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include - -u8 ARAM[16 * 1024 * 1024]; - -u32 ARInit(u32 *stack_index_addr, u32 num_entries) -{ - puts("ARInit"); - return 0x4000; -} - -BOOL ARCheckInit() -{ - return TRUE; -} - -u32 ARGetSize() -{ - return sizeof(ARAM); -} - -void ARStartDMA(u32 type, uintptr_t mainmem_addr, u32 aram_addr, u32 length) -{ - switch (type) - { - case ARAM_DIR_MRAM_TO_ARAM: - memcpy(ARAM + aram_addr, (void *)mainmem_addr, length); - break; - case ARAM_DIR_ARAM_TO_MRAM: - memcpy((void *)mainmem_addr, ARAM + aram_addr, length); - break; - } -} - -u32 ARGetDMAStatus(void) -{ - puts("ARGetDMAStatus"); - return 0; -} diff --git a/src/port/arq.c b/src/port/arq.c deleted file mode 100644 index c95bfbd1..00000000 --- a/src/port/arq.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -#include - -extern u8 ARAM[16 * 1024 * 1024]; - -void ARQPostRequest(ARQRequest *task, u32 owner, u32 type, u32 priority, - uintptr_t source, uintptr_t dest, u32 length, ARQCallback callback) -{ - printf("ARQPostRequest: 0x%X, 0x%X, 0x%X\n", - (unsigned int)source, (unsigned int)dest, (unsigned int)length); - switch (type) - { - case ARQ_TYPE_MRAM_TO_ARAM: - memcpy(ARAM + dest, (void *)source, length); - callback((uintptr_t)task); - break; - case ARQ_TYPE_ARAM_TO_MRAM: - memcpy((void *)dest, ARAM + source, length); - callback((uintptr_t)task); - break; - } -} diff --git a/src/port/audio.c b/src/port/audio.c deleted file mode 100644 index 07a9dfcb..00000000 --- a/src/port/audio.c +++ /dev/null @@ -1,677 +0,0 @@ -#include "game/audio.h" -#include "game/memory.h" -#include "game/msm.h" -#include "game/object.h" -#include "game/wipe.h" -#include "game/gamework_data.h" - -static int HuSePlay(int seId, MSM_SEPARAM *param); - -extern s16 omSysExitReq; - -s32 charVoiceGroupStat[8]; -static s32 sndFXBuf[64][2]; - -static s16 Hu3DAudVol; -static s16 sndGroupBak; -static s32 auxANoBak; -static s32 auxBNoBak; -static s8 HuAuxAVol; -static s8 HuAuxBVol; -float Snd3DBackSurDisOffset; -float Snd3DFrontSurDisOffset; -float Snd3DStartDisOffset; -float Snd3DSpeedOffset; -float Snd3DDistOffset; -s32 musicOffF; -u8 fadeStat; - -static char *lbl_8012E9AC[] = { - "sound/MPNGC02.son", - "sound/MPNGC16.son", - "" -}; - - -void HuAudInit(void) -{ - MSM_INIT msmInit; - MSM_ARAM msmAram; - - s32 result; - s16 i; - - msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00); - msmInit.heapSize = 0x13FC00; - msmInit.msmPath = "/sound/mpgcsnd.msm"; - msmInit.pdtPath = "/sound/mpgcstr.pdt"; - msmInit.open = NULL; - msmInit.read = NULL; - msmInit.close = NULL; - msmAram.skipARInit = TRUE; - msmAram.aramEnd = 0x808000; - // result = msmSysInit(&msmInit, &msmAram); - - // if (result < 0) { - // OSReport("MSM(Sound Manager) Error:Error Code %d\n", result); - // while (1); - // } - if (OSGetSoundMode() == OS_SOUND_MODE_MONO) { - // msmSysSetOutputMode(SND_OUTPUTMODE_MONO); - } else { - // msmSysSetOutputMode(SND_OUTPUTMODE_SURROUND); - } - for (i = 0; i < 64; i++) { - sndFXBuf[i][0] = -1; - } - for (i = 0; i < 8; i++) { - charVoiceGroupStat[i] = 0; - } - sndGroupBak = -1; - auxANoBak = auxBNoBak = -1; - fadeStat = 0; - musicOffF = 0; -} - -s32 HuAudStreamPlay(char *name, BOOL flag) { - return 0; -} - -void HuAudStreamVolSet(s16 vol) { - // AISetStreamVolLeft(vol); - // AISetStreamVolRight(vol); - Hu3DAudVol = vol; -} - -void HuAudStreamPauseOn(void) { - // AISetStreamPlayState(0); -} - -void HuAudStreamPauseOff(void) { - // AISetStreamPlayState(1); -} - -void HuAudStreamFadeOut(s32 arg0) { -} - -void HuAudAllStop(void) { - HuAudSeqAllStop(); - HuAudFXAllStop(); - HuAudSStreamAllStop(); -} - -void HuAudFadeOut(s32 speed) { - HuAudFXAllStop(); - HuAudSeqAllFadeOut(speed); - HuAudSStreamAllFadeOut(speed); -} - -int HuAudFXPlay(int seId) -{ - return 5; -} - -int HuAudFXPlayVol(int seId, s16 vol) { - if (omSysExitReq != 0) { - return 0; - } - return HuAudFXPlayVolPan(seId, vol, MSM_PAN_CENTER); -} - -int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan) -{ - MSM_SEPARAM seParam; - - if (omSysExitReq != 0) { - return 0; - } - seParam.flag = MSM_SEPARAM_VOL|MSM_SEPARAM_PAN; - seParam.vol = vol; - seParam.pan = pan; - return HuSePlay(seId, &seParam); -} - -void HuAudFXStop(int seNo) { - // msmSeStop(seNo, 0); -} - -void HuAudFXAllStop(void) { - // msmSeStopAll(0, 0); -} - -void HuAudFXFadeOut(int seNo, s32 speed) { - // msmSeStop(seNo, speed); -} - -void HuAudFXPanning(int seNo, s16 pan) { - MSM_SEPARAM seParam; - - if (omSysExitReq == 0) { - seParam.flag = MSM_SEPARAM_PAN; - seParam.pan = pan; - // msmSeSetParam(seNo, &seParam); - } -} - -void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed) -{ - if(omSysExitReq) { - return; - } - HuAudFXListnerSetEX(pos, heading, - sndDist + Snd3DDistOffset, - sndSpeed + Snd3DSpeedOffset, - Snd3DStartDisOffset, - Snd3DFrontSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset), - Snd3DBackSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset)); -} - -void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis) -{ - MSM_SELISTENER listener; - if(omSysExitReq) { - return; - } - listener.flag = MSM_LISTENER_STARTDIS|MSM_LISTENER_FRONTSURDIS|MSM_LISTENER_BACKSURDIS; - listener.startDis = startDis + Snd3DStartDisOffset; - listener.frontSurDis = frontSurDis + Snd3DFrontSurDisOffset; - listener.backSurDis = backSurDis + Snd3DBackSurDisOffset; - // msmSeSetListener(pos, heading, sndDist + Snd3DDistOffset, sndSpeed + Snd3DSpeedOffset, &listener); - OSReport("//////////////////////////////////\n"); - OSReport("sndDist %f\n", sndDist); - OSReport("sndSpeed %f\n", sndSpeed); - OSReport("startDis %f\n", listener.startDis); - OSReport("frontSurDis %f\n", listener.frontSurDis); - OSReport("backSurDis %f\n", listener.backSurDis); - OSReport("//////////////////////////////////\n"); -} - -void HuAudFXListnerUpdate(Vec *pos, Vec *heading) -{ - if (omSysExitReq == 0) { - // msmSeUpdataListener(pos, heading); - } -} - -int HuAudFXEmiterPlay(int seId, Vec *pos) -{ - MSM_SEPARAM seParam; - if(omSysExitReq) { - return 0; - } - seParam.flag = MSM_SEPARAM_POS; - seParam.pos.x = pos->x; - seParam.pos.y = pos->y; - seParam.pos.z = pos->z; - // return HuSePlay(seId, &seParam); - return 12; -} - -void HuAudFXEmiterUpDate(int seNo, Vec *pos) -{ - MSM_SEPARAM param; - if(omSysExitReq) { - return; - } - param.flag = MSM_SEPARAM_POS; - param.pos.x = pos->x; - param.pos.y = pos->y; - param.pos.z = pos->z; - // msmSeSetParam(seNo, ¶m); -} - -void HuAudFXListnerKill(void) { - // msmSeDelListener(); -} - -void HuAudFXPauseAll(s32 pause) { - // msmSePauseAll(pause, 0x64); -} - -s32 HuAudFXStatusGet(int seNo) { - // return msmSeGetStatus(seNo); - return 12; -} - -s32 HuAudFXPitchSet(int seNo, s16 pitch) -{ - MSM_SEPARAM param; - if(omSysExitReq) { - return 0; - } - param.flag = MSM_SEPARAM_PITCH; - param.pitch = pitch; - // return msmSeSetParam(seNo, ¶m); - return 12; -} - -s32 HuAudFXVolSet(int seNo, s16 vol) -{ - MSM_SEPARAM param; - - if(omSysExitReq) { - return 0; - } - param.flag = MSM_SEPARAM_VOL; - param.vol = vol; - // return msmSeSetParam(seNo, ¶m); - return 12; -} - -s32 HuAudSeqPlay(s16 musId) { - s32 channel = 0; - - if (musicOffF != 0 || omSysExitReq != 0) { - return 0; - } - // channel = msmMusPlay(musId, NULL); - return channel; -} - -void HuAudSeqStop(s32 musNo) { - if (musicOffF != 0 || omSysExitReq != 0) { - return; - } - // msmMusStop(musNo, 0); -} - -void HuAudSeqFadeOut(s32 musNo, s32 speed) { - if (musicOffF == 0) { - // msmMusStop(musNo, speed); - } -} - -void HuAudSeqAllFadeOut(s32 speed) { - s16 i; - - for (i = 0; i < 4; i++) { - // if (msmMusGetStatus(i) == 2) { - // msmMusStop(i, speed); - // } - } -} - -void HuAudSeqAllStop(void) { - // msmMusStopAll(0, 0); -} - -void HuAudSeqPauseAll(s32 pause) { - // msmMusPauseAll(pause, 0x64); -} - -void HuAudSeqPause(s32 musNo, s32 pause, s32 speed) { - if (musicOffF != 0 || omSysExitReq != 0) { - return; - } - // msmMusPause(musNo, pause, speed); -} - -s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl) { - if (musicOffF != 0 || omSysExitReq != 0) { - return 0; - } - // return msmMusGetMidiCtrl(musNo, channel, ctrl); - return 12; -} - -s32 HuAudSStreamPlay(s16 streamId) { - MSM_STREAMPARAM param; - s32 result = 0; - - if (musicOffF != 0 || omSysExitReq != 0) { - return 0; - } - param.flag = MSM_STREAMPARAM_NONE ; - // result = msmStreamPlay(streamId, ¶m); - return result; -} - -void HuAudSStreamStop(s32 seNo) { - if (musicOffF == 0) { - // msmStreamStop(seNo, 0); - } -} - -void HuAudSStreamFadeOut(s32 seNo, s32 speed) { - if (musicOffF == 0) { - // msmStreamStop(seNo, speed); - } -} - -void HuAudSStreamAllFadeOut(s32 speed) { - // msmStreamStopAll(speed); -} - -void HuAudSStreamAllStop(void) { - // msmStreamStopAll(0); -} - -s32 HuAudSStreamStatGet(s32 seNo) { - return 12; - // return msmStreamGetStatus(seNo); -} - -SHARED_SYM SNDGRPTBL sndGrpTable[] = { - { OVL_BOOT, -1, 0, 1, -1, -1 }, - { OVL_INST, -1, 0, 1, -1, -1 }, - { OVL_M401, 18, 0, 2, 64, 64 }, - { OVL_M402, 19, 0, 3, 48, 32 }, - { OVL_M403, 20, 0, 1, -1, -1 }, - { OVL_M404, 21, 0, 1, -1, -1 }, - { OVL_M405, 22, 0, 1, 64, 32 }, - { OVL_M406, 23, 0, 1, -1, -1 }, - { OVL_M407, 24, 0, 1, -1, -1 }, - { OVL_M408, 25, 0, 1, -1, -1 }, - { OVL_M409, 26, 0, 4, -1, -1 }, - { OVL_M410, 27, 0, 1, -1, -1 }, - { OVL_M411, 28, 0, 1, -1, -1 }, - { OVL_M412, 29, 0, 1, -1, -1 }, - { OVL_M413, 30, 0, 1, -1, -1 }, - { OVL_M414, 31, 0, 1, -1, -1 }, - { OVL_M415, 32, 0, 1, -1, -1 }, - { OVL_M416, 33, 0, 1, -1, -1 }, - { OVL_M417, 34, 0, 1, -1, -1 }, - { OVL_M418, 35, 0, 1, 64, 64 }, - { OVL_M419, 36, 0, 6, -1, -1 }, - { OVL_M420, 37, 0, 1, -1, -1 }, - { OVL_M421, 38, 0, 1, -1, -1 }, - { OVL_M422, 39, 0, 1, -1, -1 }, - { OVL_M423, 40, 0, 1, -1, -1 }, - { OVL_M424, 41, 0, 1, -1, -1 }, - { OVL_M425, 42, 0, 1, -1, -1 }, - { OVL_M426, 43, 0, 1, -1, -1 }, - { OVL_M427, 44, 0, 1, 64, 72 }, - { OVL_M428, 45, 0, 1, -1, -1 }, - { OVL_M429, 46, 0, 1, -1, -1 }, - { OVL_M430, 47, 0, 1, -1, -1 }, - { OVL_M431, 48, 0, 1, -1, -1 }, - { OVL_M432, 49, 0, 1, 48, 32 }, - { OVL_M433, 50, 0, 1, -1, -1 }, - { OVL_M434, 51, 0, 1, -1, -1 }, - { OVL_M435, 52, 0, 9, 32, 64 }, - { OVL_M436, 53, 0, 10, 32, 64 }, - { OVL_M437, 54, 0, 1, 32, 64 }, - { OVL_M438, 55, 0, 11, -1, -1 }, - { OVL_M439, 56, 0, 12, 48, 32 }, - { OVL_M440, 57, 0, 1, -1, -1 }, - { OVL_M441, 58, 0, 1, -1, -1 }, - { OVL_M442, 59, 0, 1, -1, -1 }, - { OVL_M443, 60, 0, 1, -1, -1 }, - { OVL_M444, 61, 0, 1, -1, -1 }, - { OVL_M445, 62, 0, 1, -1, -1 }, - { OVL_M446, 63, 0, 1, -1, -1 }, - { OVL_M447, 64, 0, 1, -1, -1 }, - { OVL_M448, 65, 0, 1, -1, -1 }, - { OVL_M449, 66, 0, 1, -1, -1 }, - { OVL_M450, 67, 0, 13, 64, 64 }, - { OVL_M451, 68, 0, 1, -1, -1 }, - { OVL_M453, 69, 0, 1, -1, -1 }, - { OVL_M455, 70, 0, 1, -1, -1 }, - { OVL_M456, 71, 0, 1, -1, -1 }, - { OVL_M457, 72, 0, 14, 64, 32 }, - { OVL_M458, 73, 0, 15, 64, 32 }, - { OVL_M459, 74, 0, 1, -1, -1 }, - { OVL_M460, 75, 0, 1, -1, -1 }, - { OVL_M461, 76, 0, 1, -1, -1 }, - { OVL_M462, 77, 0, 1, -1, -1 }, - { OVL_M463, 78, 0, 1, -1, -1 }, - { OVL_MENT, -1, 0, 1, -1, -1 }, - { OVL_MGMODE, 1, 0, 1, -1, -1 }, - { OVL_MODESEL, 0, 0, 1, -1, -1 }, - { OVL_MODELTEST, 18, 0, 1, -1, -1 }, - { OVL_MSETUP, 0, 0, 1, -1, -1 }, - { OVL_MSTORY, 5, 0, 1, -1, -1 }, - { OVL_MSTORY2, 5, 0, 1, -1, -1 }, - { OVL_MSTORY3, 8, 0, 1, -1, -1 }, - { OVL_NIS, 9, 0, 1, -1, -1 }, - { OVL_OPTION, -1, 0, 1, -1, -1 }, - { OVL_PRESENT, -1, 0, 1, -1, -1 }, - { OVL_RESULT, -1, 0, 1, -1, -1 }, - { OVL_SAF, 0, 0, 2, 127, 127 }, - { OVL_SELMENU, 0, 0, 1, -1, -1 }, - { OVL_W01, 9, 0, 1, -1, -1 }, - { OVL_W02, 10, 0, 1, -1, -1 }, - { OVL_W03, 11, 0, 1, -1, -1 }, - { OVL_W04, 12, 0, 1, -1, -1 }, - { OVL_W05, 13, 0, 1, -1, -1 }, - { OVL_W06, 14, 0, 1, -1, -1 }, - { OVL_W10, 15, 0, 1, -1, -1 }, - { OVL_W20, 16, 0, 1, -1, -1 }, - { OVL_W21, 17, 0, 1, -1, -1 }, - { OVL_MPEX, 4, 0, 1, -1, -1 }, - { OVL_ZTAR, -1, 0, 1, -1, -1 }, - { OVL_E3SETUP, 0, 0, 1, -1, -1 }, - { OVL_STAFF, -1, 0, 1, -1, -1 }, - { OVL_INVALID, -1, 0, 1, 0, 0 } -}; - -void HuAudDllSndGrpSet(u16 ovl) { - SNDGRPTBL *sndGrp; - s16 grpSet; - - sndGrp = sndGrpTable; - while (1) { - if (sndGrp->ovl == ovl) { - grpSet = sndGrp->grpSet; - break; - } - if (sndGrp->ovl == OVL_INVALID) { - grpSet = 0x12; - break; - } - sndGrp++; - } - if (grpSet != -1) { - OSReport("SOUND ##########################\n"); - HuAudSndGrpSetSet(grpSet); - if (sndGrp->auxANo != auxANoBak || sndGrp->auxBNo != auxBNoBak) { - // msmSysSetAux(sndGrp->auxANo, sndGrp->auxBNo); - OSReport("Change AUX %d,%d\n", sndGrp->auxANo, sndGrp->auxBNo); - auxANoBak = sndGrp->auxANo; - auxBNoBak = sndGrp->auxBNo; - HuPrcVSleep(); - } - HuAudAUXVolSet(sndGrp->auxAVol, sndGrp->auxBVol); - OSReport("##########################\n"); - } -} - -void HuAudSndGrpSetSet(s16 dataSize) { -} - -void HuAudSndGrpSet(s16 grpId) { - void *buf; - - // buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); - // msmSysLoadGroup(grpId, buf, 0); - HuMemDirectFree(buf); -} - -void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck) { - s16 err; - OSTick osTick; - void *buf; - s16 i; - - for (i = 0; i < 8; i++) { - charVoiceGroupStat[i] = 0; - } - // msmMusStopAll(1, 0); - // msmSeStopAll(1, 0); - osTick = OSGetTick(); - // while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - // && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); - OSReport("CommonGrpSet %d\n", grpId); - // if (groupCheck != 0) { - // // err = msmSysDelGroupBase(0); - // if (err < 0) { - // OSReport("Del Group Error %d\n", err); - // } - // } - // buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); - // msmSysLoadGroupBase(grpId, buf); - // HuMemDirectFree(buf); - sndGroupBak = -1; -} - -void HuAudAUXSet(s32 auxA, s32 auxB) { - if (auxA == -1) { - auxA = 0; - } - if (auxB == -1) { - auxB = 1; - } - // msmSysSetAux(auxA, auxB); -} - -void HuAudAUXVolSet(s8 auxA, s8 auxB) { - HuAuxAVol = auxA; - HuAuxBVol = auxB; -} - -void HuAudVoiceInit(s16 ovl) { - SNDGRPTBL *sndGrp; - OSTick osTick; - s16 numNotChars; - s16 grpId; - s16 temp_r25; - s16 character; - - void *buf; - s16 i; - - if (ovl != OVL_INVALID) { - sndGrp = sndGrpTable; - while (1) { - if (sndGrp->ovl == ovl && sndGrp->grpSet == -1) { - return; - } - if (sndGrp->ovl == OVL_INVALID) { - break; - } - sndGrp++; - } - } - for (i = numNotChars = 0; i < 4; i++) { - character = GWPlayerCfg[i].character; - if (character < 0 || character >= 8 || character == 0xFF || charVoiceGroupStat[character] != 0) { - numNotChars++; - } - } - if (numNotChars < 4) { - for (i = 0; i < 8; i++) { - charVoiceGroupStat[i] = 0; - } - // msmMusStopAll(1, 0); - // msmSeStopAll(1, 0); - osTick = OSGetTick(); - // while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - // && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); - OSReport("############CharGrpSet\n"); - // temp_r25 = msmSysDelGroupBase(0); - if (temp_r25 < 0) { - OSReport("Del Group Error %d\n", temp_r25); - } else { - OSReport("Del Group OK\n"); - } - for (i = 0; i < 4; i++) { - character = GWPlayerCfg[i].character; - if (character >= 0 && character < 8 && character != 0xFF) { - charVoiceGroupStat[character] = 1; - grpId = character + 10; - // buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); - #if VERSION_NTSC - // msmSysLoadGroupBase(grpId, buf); - #else - temp_r25 = msmSysLoadGroupBase(grpId, buf); - #endif - // HuMemDirectFree(buf); - } - } - sndGroupBak = -1; - } -} - -s32 HuAudPlayerVoicePlay(s16 player, s16 seId) { - s16 charNo = GWPlayerCfg[player].character; - - return HuAudCharVoicePlay(charNo, seId); -} - -s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos) { - s16 charNo = GWPlayerCfg[player].character; - - return HuAudCharVoicePlayPos(charNo, seId, pos); -} - -void HuAudPlayerVoicePlayEntry(s16 player, s16 seId) { - s16 charNo = GWPlayerCfg[player].character; - - HuAudCharVoicePlayEntry(charNo, seId); -} - -s32 HuAudCharVoicePlay(s16 charNo, s16 seId) -{ - MSM_SEPARAM param; - - // if (omSysExitReq != 0) { - // return 0; - // } - // seId += (charNo << 6); - // param.flag = MSM_SEPARAM_NONE; - // if (HuAuxAVol != -1) { - // param.flag |= MSM_SEPARAM_AUXVOLA; - // } - // if (HuAuxBVol != -1) { - // param.flag |= MSM_SEPARAM_AUXVOLB; - // } - // param.auxAVol = HuAuxAVol; - // param.auxBVol = HuAuxBVol; - return HuSePlay(seId, ¶m); -} - -s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) { - MSM_SEPARAM param; - - // if (omSysExitReq != 0) { - // return 0; - // } - // seId += (charNo << 6); - // param.flag = MSM_SEPARAM_POS; - // if (HuAuxAVol != -1) { - // param.flag |= MSM_SEPARAM_AUXVOLA; - // } - // if (HuAuxBVol != -1) { - // param.flag |= MSM_SEPARAM_AUXVOLB; - // } - // param.auxAVol = HuAuxAVol; - // param.auxBVol = HuAuxBVol; - // param.pos.x = pos->x; - // param.pos.y = pos->y; - // param.pos.z = pos->z; - return HuSePlay(seId, ¶m); -} - -void HuAudCharVoicePlayEntry(s16 charNo, s16 seId) { - // int seNoTbl[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) - // u16 id; - // u16 i; - - // seId += (charNo << 6); - // id = msmSeGetEntryID(seId, seNoTbl); - // for (i = 0; i < id; i++) { - // msmSeStop(seNoTbl[i], 0); - // } -} - -static int HuSePlay(int seId, MSM_SEPARAM *param) -{ - s32 result; - - // result = msmSePlay(seId, param); - // if (result < 0) { - // OSReport("#########SE Entry Error\n", seId, result); - // } - return 12; - // return result; -} diff --git a/src/port/byteswap.cpp b/src/port/byteswap.cpp deleted file mode 100644 index d9fec8e0..00000000 --- a/src/port/byteswap.cpp +++ /dev/null @@ -1,989 +0,0 @@ -#include "game/hsfformat.h" -#include "game/hsfformat.h" -#include -#include -#include -#include -#include -#include - -extern "C" { -#include "port/byteswap.h" -} - -template [[nodiscard]] constexpr T bswap16(T val) noexcept -{ - static_assert(sizeof(T) == sizeof(u16)); - union { - u16 u; - T t; - } v { .t = val }; -#if __GNUC__ - v.u = __builtin_bswap16(v.u); -#elif _WIN32 - v.u = _byteswap_ushort(v.u); -#else - v.u = (v.u << 8) | ((v.u >> 8) & 0xFF); -#endif - return v.t; -} - -template [[nodiscard]] constexpr T bswap32(T val) noexcept -{ - static_assert(sizeof(T) == sizeof(u32)); - union { - u32 u; - T t; - } v { .t = val }; -#if __GNUC__ - v.u = __builtin_bswap32(v.u); -#elif _WIN32 - v.u = _byteswap_ulong(v.u); -#else - v.u = ((v.u & 0x0000FFFF) << 16) | ((v.u & 0xFFFF0000) >> 16) | ((v.u & 0x00FF00FF) << 8) | ((v.u & 0xFF00FF00) >> 8); - v.u = ((v.u & 0x0000FFFF) << 16) | ((v.u & 0xFFFF0000) >> 16) | ((v.u & 0x00FF00FF) << 8) | ((v.u & 0xFF00FF00) >> 8); -#endif - return v.t; -} - -static void bswap16_unaligned(u8 *ptr) -{ - u8 temp = ptr[0]; - ptr[0] = ptr[1]; - ptr[1] = temp; -} - -static void bswap32_unaligned(u8 *ptr) -{ - u8 temp = ptr[0]; - ptr[0] = ptr[3]; - ptr[3] = temp; - temp = ptr[1]; - ptr[1] = ptr[2]; - ptr[2] = temp; -} - -static std::unordered_set sVisitedPtrs; - -template T *offset_ptr(B &base, T *ptr) -{ - return reinterpret_cast(reinterpret_cast(&base) + reinterpret_cast(ptr)); - return reinterpret_cast(reinterpret_cast(&base) + reinterpret_cast(ptr)); -} -template T *offset_ptr(B &base, T *ptr, void *extra) -{ - return reinterpret_cast(reinterpret_cast(&base) + reinterpret_cast(ptr) + reinterpret_cast(extra)); - return reinterpret_cast(reinterpret_cast(&base) + reinterpret_cast(ptr) + reinterpret_cast(extra)); -} - -// template static inline void bswap(B &base, T &data); -// template void bswap(B &base, P *&ptr) -// { -// ptr = bswap32(ptr); -// } -// template void bswap(B &base, T *&ptr, s32 count) -// { -// ptr = bswap32(ptr); -// if (ptr == nullptr) { -// return; -// } -// T *objBase = offset_ptr(base, ptr); -// for (s32 i = 0; i < count; ++i) { -// if (sVisitedPtrs.contains(objBase)) { -// continue; -// } -// sVisitedPtrs.insert(objBase); -// bswap(base, *objBase); -// ++objBase; -// } -// } -// template void bswap_list(B &base, T **&ptr) -// { -// ptr = bswap32(ptr); -// if (ptr == nullptr) { -// return; -// } -// T **objBase = offset_ptr(base, ptr); -// while (*objBase != nullptr) { -// bswap(base, *objBase, 1); -// ++objBase; -// } -// } -// template void bswap_list(B &base, T *(&ptr)[]) -// { -// T **objBase = ptr; -// while (*objBase != nullptr) { -// bswap(base, *objBase, 1); -// ++objBase; -// } -// } -template void bswap_flat(B &base, T *start, s32 count) -{ - T *objBase = start; - for (s32 i = 0; i < count; ++i) { - bswap(base, objBase[i]); - } -} -template void bswap(B &base, f32 &v) -{ - v = bswap32(v); -} -template void bswap(B &base, s32 &v) -{ - v = bswap32(v); -} -template void bswap(B &base, u32 &v) -{ - v = bswap32(v); -} -template void bswap(B &base, s16 &v) -{ - v = bswap16(v); -} -template void bswap(B &base, u16 &v) -{ - v = bswap16(v); -} -template void bswap(B &base, u8 &v) -{ - // no-op -} -template void bswap(B &base, s8 &v) -{ - // no-op -} -template void bswap(B &base, char &v) -{ - // no-op -} -template void bswap(B &base, Vec &vec) -{ - bswap(base, vec.x); - bswap(base, vec.y); - bswap(base, vec.z); -} -template void bswap(B &base, S16Vec &vec) -{ - bswap(base, vec.x); - bswap(base, vec.y); - bswap(base, vec.z); -} -template void bswap(B &base, Vec2f &vec) -{ - bswap(base, vec.x); - bswap(base, vec.y); -} - -template void bswap(B &base, HsfVector3f &vec) -{ - bswap(base, vec.x); - bswap(base, vec.y); - bswap(base, vec.z); -} - -template void bswap(B &base, AnimData32b &obj, AnimData &dest) -{ - bswap(base, obj.bankNum); - bswap(base, obj.patNum); - bswap(base, obj.bmpNum); - bswap(base, obj.useNum); - bswap(base, obj.bank); - bswap(base, obj.pat); - bswap(base, obj.bmp); - - dest.bankNum = obj.bankNum; - dest.patNum = obj.patNum; - dest.bmpNum = obj.bmpNum; - dest.useNum = obj.useNum; - dest.bank = reinterpret_cast(static_cast(obj.bank)); - dest.pat = reinterpret_cast(static_cast(obj.pat)); - dest.bmp = reinterpret_cast(static_cast(obj.bmp)); -} - -template void bswap(B &base, AnimBankData32b &obj, AnimBankData &dest) -{ - bswap(base, obj.timeNum); - bswap(base, obj.unk); - bswap(base, obj.frame); - - dest.timeNum = obj.timeNum; - dest.unk = obj.unk; - dest.frame = reinterpret_cast(static_cast(obj.frame)); -} - -template void bswap(B &base, AnimPatData32b &obj, AnimPatData &dest) -{ - bswap(base, obj.layerNum); - bswap(base, obj.centerX); - bswap(base, obj.centerY); - bswap(base, obj.sizeX); - bswap(base, obj.sizeY); - bswap(base, obj.layer); - - dest.layerNum = obj.layerNum; - dest.centerX = obj.centerX; - dest.centerY = obj.centerY; - dest.sizeX = obj.sizeX; - dest.sizeY = obj.sizeY; - dest.layer = reinterpret_cast(static_cast(obj.layer)); -} - -template void bswap(B &base, AnimBmpData32b &obj, AnimBmpData &dest) -{ - bswap(base, obj.pixSize); - bswap(base, obj.dataFmt); - bswap(base, obj.palNum); - bswap(base, obj.sizeX); - bswap(base, obj.sizeY); - bswap(base, obj.dataSize); - bswap(base, obj.palData); - bswap(base, obj.data); - - dest.pixSize = obj.pixSize; - dest.dataFmt = obj.dataFmt; - dest.palNum = obj.palNum; - dest.sizeX = obj.sizeX; - dest.sizeY = obj.sizeY; - dest.dataSize = obj.dataSize; - dest.palData = reinterpret_cast(static_cast(obj.palData)); - dest.data = reinterpret_cast(static_cast(obj.data)); -} - -template void bswap(B &base, AnimFrameData &obj) -{ - bswap(base, obj.pat); - bswap(base, obj.time); - bswap(base, obj.shiftX); - bswap(base, obj.shiftY); - bswap(base, obj.flip); - bswap(base, obj.pad); -} - -template void bswap(B &base, AnimLayerData &obj) -{ - bswap(base, obj.alpha); - bswap(base, obj.flip); - bswap(base, obj.bmpNo); - bswap(base, obj.startX); - bswap(base, obj.startY); - bswap(base, obj.sizeX); - bswap(base, obj.sizeY); - bswap(base, obj.shiftX); - bswap(base, obj.shiftY); - bswap_flat(base, obj.vtx, sizeof(obj.vtx) / sizeof(s16)); -} - -template void bswap(B &base, HsfSection &obj) -{ - bswap(base, obj.ofs); - bswap(base, obj.count); -} - -template void bswap(B &base, HsfHeader &obj) -{ - bswap(base, obj.scene); - bswap(base, obj.color); - bswap(base, obj.material); - bswap(base, obj.attribute); - bswap(base, obj.vertex); - bswap(base, obj.normal); - bswap(base, obj.st); - bswap(base, obj.face); - bswap(base, obj.object); - bswap(base, obj.bitmap); - bswap(base, obj.palette); - bswap(base, obj.motion); - bswap(base, obj.cenv); - bswap(base, obj.skeleton); - bswap(base, obj.part); - bswap(base, obj.cluster); - bswap(base, obj.shape); - bswap(base, obj.mapAttr); - bswap(base, obj.matrix); - bswap(base, obj.symbol); - bswap(base, obj.string); -} - -template void bswap(B &base, HsfCluster32b &obj, HsfCluster &dest) -{ - bswap(base, obj.name[0]); - bswap(base, obj.name[1]); - bswap(base, obj.targetName); - bswap(base, obj.part); - bswap(base, obj.index); - bswap_flat(base, obj.weight, sizeof(obj.weight) / sizeof(float)); - bswap(base, obj.type); - bswap(base, obj.vertexCnt); - bswap(base, obj.vertex); - - dest.name[0] = reinterpret_cast(static_cast(obj.name[0])); - dest.name[1] = reinterpret_cast(static_cast(obj.name[1])); - - dest.targetName = reinterpret_cast(static_cast(obj.targetName)); - dest.index = obj.index; - std::copy(std::begin(obj.weight), std::end(obj.weight), dest.weight); - - dest.adjusted = obj.adjusted; - dest.unk95 = obj.unk95; - dest.type = obj.type; - dest.vertexCnt = obj.vertexCnt; - dest.vertex = reinterpret_cast(static_cast(obj.vertex)); -} - -template void bswap(B &base, HsfAttribute32b &obj, HsfAttribute &dest) -{ - bswap(base, obj.name); - bswap(base, obj.unk04); - bswap(base, obj.unk0C); - bswap(base, obj.unk14); - bswap(base, obj.unk20); - bswap(base, obj.unk28); - bswap(base, obj.unk2C); - bswap(base, obj.unk30); - bswap(base, obj.unk34); - bswap(base, obj.wrap_s); - bswap(base, obj.wrap_t); - bswap(base, obj.unk78); - bswap(base, obj.flag); - bswap(base, obj.bitmap); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.unk04 = reinterpret_cast(static_cast(obj.unk04)); - std::copy(std::begin(obj.unk8), std::end(obj.unk8), dest.unk8); - dest.unk0C = obj.unk0C; - std::copy(std::begin(obj.unk10), std::end(obj.unk10), dest.unk10); - dest.unk14 = obj.unk14; - std::copy(std::begin(obj.unk18), std::end(obj.unk18), dest.unk18); - dest.unk20 = obj.unk20; - std::copy(std::begin(obj.unk24), std::end(obj.unk24), dest.unk24); - dest.unk28 = obj.unk28; - dest.unk2C = obj.unk2C; - dest.unk30 = obj.unk30; - dest.unk34 = obj.unk34; - std::copy(std::begin(obj.unk38), std::end(obj.unk38), dest.unk38); - dest.wrap_s = obj.wrap_s; - dest.wrap_t = obj.wrap_t; - std::copy(std::begin(obj.unk6C), std::end(obj.unk6C), dest.unk6C); - dest.unk78 = obj.unk78; - dest.flag = obj.flag; - dest.bitmap = reinterpret_cast(static_cast(obj.bitmap)); -} - -template void bswap(B &base, HsfMaterial32b &obj, HsfMaterial &dest) -{ - bswap(base, obj.name); - bswap(base, obj.pass); - bswap(base, obj.hilite_scale); - bswap(base, obj.unk18); - bswap(base, obj.invAlpha); - bswap_flat(base, obj.unk20, sizeof(obj.unk20) / sizeof(float)); - bswap(base, obj.refAlpha); - bswap(base, obj.unk2C); - bswap(base, obj.flags); - bswap(base, obj.numAttrs); - bswap(base, obj.attrs); - - dest.name = reinterpret_cast(static_cast(obj.name)); - std::copy(std::begin(obj.unk4), std::end(obj.unk4), dest.unk4); - dest.pass = obj.pass; - dest.vtxMode = obj.vtxMode; - std::copy(std::begin(obj.litColor), std::end(obj.litColor), dest.litColor); - std::copy(std::begin(obj.color), std::end(obj.color), dest.color); - std::copy(std::begin(obj.shadowColor), std::end(obj.shadowColor), dest.shadowColor); - dest.hilite_scale = obj.hilite_scale; - dest.unk18 = obj.unk18; - dest.invAlpha = obj.invAlpha; - std::copy(std::begin(obj.unk20), std::end(obj.unk20), dest.unk20); - dest.refAlpha = obj.refAlpha; - dest.unk2C = obj.unk2C; - dest.flags = obj.flags; - dest.numAttrs = obj.numAttrs; - dest.attrs = reinterpret_cast(static_cast(obj.attrs)); -} - -template void bswap(B &base, HsfScene &obj) -{ - u32 fogType = static_cast(obj.fogType); - fogType = bswap32(fogType); - obj.fogType = static_cast(fogType); - bswap(base, obj.start); - bswap(base, obj.end); -} - -template void bswap(B &base, HsfBuffer32b &obj, HsfBuffer &dest) -{ - bswap(base, obj.name); - bswap(base, obj.count); - bswap(base, obj.data); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.count = obj.count; - dest.data = reinterpret_cast(static_cast(obj.data)); -} - -template void bswap(B &base, HsfMatrix32b &obj, HsfMatrix &dest) -{ - bswap(base, obj.base_idx); - bswap(base, obj.count); - - dest.base_idx = obj.base_idx; - dest.count = obj.count; - - dest.data = reinterpret_cast(&obj + 1); - for (s32 i = 0; i < obj.count; i++) { - for (s32 j = 0; j < 3; j++) { - bswap_flat(base, dest.data[i][j], 4); - } - } -} - -template void bswap(B &base, HsfPalette32b &obj, HsfPalette &dest) -{ - bswap(base, obj.name); - bswap(base, obj.unk); - bswap(base, obj.palSize); - bswap(base, obj.data); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.unk = obj.unk; - dest.palSize = obj.palSize; - dest.data = reinterpret_cast(static_cast(obj.data)); -} - -template void bswap(B &base, HsfPart32b &obj, HsfPart &dest) -{ - bswap(base, obj.name); - bswap(base, obj.count); - bswap(base, obj.vertex); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.count = obj.count; - dest.vertex = reinterpret_cast(static_cast(obj.vertex)); -} - -template void bswap(B &base, HsfBitmap32b &obj, HsfBitmap &dest) -{ - bswap(base, obj.name); - bswap(base, obj.maxLod); - bswap(base, obj.sizeX); - bswap(base, obj.sizeY); - bswap(base, obj.palSize); - bswap(base, obj.palData); - bswap(base, obj.unk); - bswap(base, obj.data); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.maxLod = obj.maxLod; - dest.dataFmt = obj.dataFmt; - dest.pixSize = obj.pixSize; - dest.sizeX = obj.sizeX; - dest.sizeY = obj.sizeY; - dest.palSize = obj.palSize; - dest.tint = obj.tint; - dest.palData = reinterpret_cast(static_cast(obj.palData)); - dest.unk = obj.unk; - dest.data = reinterpret_cast(static_cast(obj.data)); -} - -template void bswap(B &base, HsfMapAttr32b &obj, HsfMapAttr &dest) -{ - bswap(base, obj.minX); - bswap(base, obj.minZ); - bswap(base, obj.maxX); - bswap(base, obj.maxZ); - bswap(base, obj.data); - bswap(base, obj.dataLen); - - dest.minX = obj.minX; - dest.minZ = obj.minZ; - dest.maxX = obj.maxZ; - dest.data = reinterpret_cast(static_cast(obj.data)); - dest.dataLen = obj.dataLen; -} - -template void bswap(B &base, HsfTransform &obj) -{ - bswap(base, obj.pos); - bswap(base, obj.rot); - bswap(base, obj.scale); -} - -template void bswap(B &base, HsfSkeleton32b &obj, HsfSkeleton &dest) -{ - bswap(base, obj.name); - bswap(base, obj.transform); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.transform = obj.transform; -} - -template void bswap(B &base, HsfShape32b &obj, HsfShape &dest) -{ - bswap(base, obj.name); - bswap(base, obj.vertex); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.vertex = reinterpret_cast(static_cast(obj.vertex)); -} - -template void bswap(B &base, HsfCenvSingle &obj) -{ - bswap(base, obj.target); - bswap(base, obj.pos); - bswap(base, obj.posCnt); - bswap(base, obj.normal); - bswap(base, obj.normalCnt); -} - -template void bswap(B &base, HsfCenvDualWeight &obj) -{ - bswap(base, obj.weight); - bswap(base, obj.pos); - bswap(base, obj.posCnt); - bswap(base, obj.normal); - bswap(base, obj.normalCnt); -} - -template void bswap(B &base, HsfCenvDual32b &obj, HsfCenvDual &dest) -{ - bswap(base, obj.target1); - bswap(base, obj.target2); - bswap(base, obj.weightCnt); - bswap(base, obj.weight); - - dest.target1 = obj.target1; - dest.target2 = obj.target2; - dest.weightCnt = obj.weightCnt; - dest.weight = reinterpret_cast(static_cast(obj.weight)); -} - -template void bswap(B &base, HsfCenvMultiWeight &obj) -{ - bswap(base, obj.target); - bswap(base, obj.value); -} - -template void bswap(B &base, HsfCenvMulti32b &obj, HsfCenvMulti &dest) -{ - bswap(base, obj.weightCnt); - bswap(base, obj.pos); - bswap(base, obj.posCnt); - bswap(base, obj.normal); - bswap(base, obj.normalCnt); - bswap(base, obj.weight); - - dest.weightCnt = obj.weightCnt; - dest.pos = obj.pos; - dest.posCnt = obj.posCnt; - dest.normal = obj.normal; - dest.normalCnt = obj.normalCnt; - dest.weight = reinterpret_cast(static_cast(obj.weight)); -} - -template void bswap(B &base, HsfCenv32b &obj, HsfCenv &dest) -{ - bswap(base, obj.name); - bswap(base, obj.singleData); - bswap(base, obj.dualData); - bswap(base, obj.multiData); - bswap(base, obj.singleCount); - bswap(base, obj.dualCount); - bswap(base, obj.multiCount); - bswap(base, obj.vtxCount); - bswap(base, obj.copyCount); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.singleData = reinterpret_cast(static_cast(obj.singleData)); - dest.dualData = reinterpret_cast(static_cast(obj.dualData)); - dest.multiData = reinterpret_cast(static_cast(obj.multiData)); - dest.singleCount = obj.singleCount; - dest.dualCount = obj.dualCount; - dest.multiCount = obj.multiCount; - dest.vtxCount = obj.vtxCount; - dest.copyCount = obj.copyCount; -} - -template void bswap(B &base, HsfObjectData32b &obj, HsfObjectData &dest, u32 type) -{ - bswap(base, obj.parent); - bswap(base, obj.childrenCount); - bswap(base, obj.children); - bswap(base, obj.base); - bswap(base, obj.curr); - bswap(base, obj.face); - bswap(base, obj.vertex); - bswap(base, obj.normal); - bswap(base, obj.color); - bswap(base, obj.st); - bswap(base, obj.material); - bswap(base, obj.attribute); - bswap(base, obj.vertexShapeCnt); - bswap(base, obj.vertexShape); - bswap(base, obj.clusterCnt); - bswap(base, obj.cluster); - bswap(base, obj.cenvCnt); - bswap(base, obj.cenv); - bswap(base, obj.vtxtop); - bswap(base, obj.normtop); - - dest.parent = reinterpret_cast(static_cast(obj.parent)); - dest.childrenCount = obj.childrenCount; - dest.children = reinterpret_cast(static_cast(obj.children)); - dest.base = obj.base; - dest.curr = obj.curr; - dest.face = reinterpret_cast(static_cast(obj.face)); - dest.vertex = reinterpret_cast(static_cast(obj.vertex)); - dest.normal = reinterpret_cast(static_cast(obj.normal)); - dest.color = reinterpret_cast(static_cast(obj.color)); - dest.st = reinterpret_cast(static_cast(obj.st)); - dest.material = reinterpret_cast(static_cast(obj.material)); - dest.attribute = reinterpret_cast(static_cast(obj.attribute)); - std::copy(std::begin(obj.unk120), std::end(obj.unk120), dest.unk120); - dest.shapeType = obj.shapeType; - dest.unk123 = obj.unk123; - dest.vertexShapeCnt = obj.vertexShapeCnt; - dest.vertexShape = reinterpret_cast(static_cast(obj.vertexShape)); - dest.clusterCnt = obj.clusterCnt; - dest.cluster = reinterpret_cast(static_cast(obj.cluster)); - dest.cenvCnt = obj.cenvCnt; - dest.cenv = reinterpret_cast(static_cast(obj.cenv)); - dest.vtxtop = reinterpret_cast(static_cast(obj.vtxtop)); - dest.normtop = reinterpret_cast(static_cast(obj.normtop)); - - switch (type) { - case HSF_OBJ_MESH: - bswap(base, obj.mesh.min); - bswap(base, obj.mesh.max); - bswap(base, obj.mesh.baseMorph); - bswap_flat(base, obj.mesh.morphWeight, std::size(obj.mesh.morphWeight)); - - dest.mesh.min = obj.mesh.min; - dest.mesh.max = obj.mesh.max; - dest.mesh.baseMorph = obj.mesh.baseMorph; - std::copy(std::begin(obj.mesh.morphWeight), std::end(obj.mesh.morphWeight), dest.mesh.morphWeight); - break; - case HSF_OBJ_REPLICA: - bswap(base, obj.replica); - - dest.replica = reinterpret_cast(static_cast(obj.replica)); - break; - default: - break; - } -} - -template void bswap(B &base, HsfObject32b &obj, HsfObject &dest) -{ - bswap(base, obj.name); - bswap(base, obj.type); - bswap(base, obj.constData); - bswap(base, obj.flags); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.type = obj.type; - dest.constData = reinterpret_cast(static_cast(obj.constData)); - dest.flags = obj.flags; - - bswap(base, obj.data, dest.data, obj.type); -} - -template void bswap(B &base, HsfBitmapKey32b &obj, HsfBitmapKey &dest) -{ - bswap(base, obj.time); - bswap(base, obj.data); - - dest.time = obj.time; - dest.data = reinterpret_cast(static_cast(obj.data)); -} - -template void bswap(B &base, HsfTrack32b &obj, HsfTrack &dest) -{ - bswap(base, obj.target); - bswap(base, obj.curveType); - bswap(base, obj.numKeyframes); - - dest.type = obj.type; - dest.start = obj.start; - dest.target = obj.target; - dest.curveType = obj.curveType; - dest.numKeyframes = obj.numKeyframes; - - if (obj.curveType == HSF_CURVE_CONST) { - bswap(base, obj.value); - dest.value = obj.value; - } - else { - bswap(base, obj.data); - dest.data = reinterpret_cast(static_cast(obj.data)); - } - - if (obj.type == HSF_TRACK_CLUSTER_WEIGHT) { - bswap(base, obj.unk04); - dest.unk04 = obj.unk04; - } - else { - bswap(base, obj.param); - bswap(base, obj.channel); - - dest.param = obj.param; - dest.channel = obj.channel; - } -} - -template void bswap(B &base, HsfMotion32b &obj, HsfMotion &dest) -{ - bswap(base, obj.name); - bswap(base, obj.numTracks); - bswap(base, obj.track); - bswap(base, obj.len); - - dest.name = reinterpret_cast(static_cast(obj.name)); - dest.numTracks = obj.numTracks; - dest.track = reinterpret_cast(static_cast(obj.track)); - dest.len = obj.len; -} - -template void bswap(B &base, HsfFace32b &obj, HsfFace &dest) -{ - bswap(base, obj.type); - bswap(base, obj.mat); - bswap(base, obj.nbt); - - dest.type = obj.type; - dest.mat = obj.mat; - dest.nbt = obj.nbt; - - if (obj.type == 4) { - bswap(base, obj.strip.count); - bswap(base, obj.strip.data); - bswap_flat(base, obj.strip.indices[0], 3 * 4); - - dest.strip.count = obj.strip.count; - dest.strip.data = reinterpret_cast(static_cast(obj.strip.data)); - std::copy(&obj.strip.indices[0][0], &obj.strip.indices[0][0] + 3 * 4, &dest.strip.indices[0][0]); - } - else { - bswap_flat(base, obj.indices[0], 4 * 4); - std::copy(&obj.indices[0][0], &obj.indices[0][0] + 4 * 4, &dest.indices[0][0]); - } -} - -void byteswap_u16(u16 *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_s16(s16 *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_u32(u32 *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_s32(s32 *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfvec3f(HsfVector3f *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfvec2f(HsfVector2f *src) -{ - auto *vec = reinterpret_cast(src); - bswap(*vec, *vec); - sVisitedPtrs.clear(); -} - -void byteswap_animdata(void *src, AnimData *dest) -{ - auto *anim = reinterpret_cast(src); - bswap(*anim, *anim, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_animbankdata(AnimBankData32b *src, AnimBankData *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_animpatdata(AnimPatData32b *src, AnimPatData *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_animbmpdata(AnimBmpData32b *src, AnimBmpData *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_animframedata(AnimFrameData *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_animlayerdata(AnimLayerData *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfheader(HsfHeader *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcluster(HsfCluster32b *src, HsfCluster *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfattribute(HsfAttribute32b *src, HsfAttribute *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfmaterial(HsfMaterial32b *src, HsfMaterial *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfscene(HsfScene *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfbuffer(HsfBuffer32b *src, HsfBuffer *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfmatrix(HsfMatrix32b *src, HsfMatrix *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfpalette(HsfPalette32b *src, HsfPalette *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfpart(HsfPart32b *src, HsfPart *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfbitmap(HsfBitmap32b *src, HsfBitmap *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfmapattr(HsfMapAttr32b *src, HsfMapAttr *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfskeleton(HsfSkeleton32b *src, HsfSkeleton *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfshape(HsfShape32b *src, HsfShape *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv_single(HsfCenvSingle *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv_dual_weight(HsfCenvDualWeight *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv_dual(HsfCenvDual32b *src, HsfCenvDual *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv_multi_weight(HsfCenvMultiWeight *src) -{ - bswap(*src, *src); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv_multi(HsfCenvMulti32b *src, HsfCenvMulti *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfcenv(HsfCenv32b *src, HsfCenv *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfobject(HsfObject32b *src, HsfObject *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - - -void byteswap_hsfbitmapkey(HsfBitmapKey32b *src, HsfBitmapKey *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - - -void byteswap_hsftrack(HsfTrack32b *src, HsfTrack *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfmotion(HsfMotion32b *src, HsfMotion *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} - -void byteswap_hsfface(HsfFace32b *src, HsfFace *dest) -{ - bswap(*src, *src, *dest); - sVisitedPtrs.clear(); -} \ No newline at end of file diff --git a/src/port/dvd.c b/src/port/dvd.c deleted file mode 100644 index 31795f2d..00000000 --- a/src/port/dvd.c +++ /dev/null @@ -1,168 +0,0 @@ -// Credits: Super Monkey Ball - -#include -#include -#include -#include -#ifdef _WIN32 -#include -#include - -#else -#include -#endif -#include - -#ifndef PATH_MAX -#define PATH_MAX 256 -#endif - -static char (*s_pathEntries)[PATH_MAX] = NULL; -static int s_pathEntriesCount = 0; -static char s_rootDir[PATH_MAX]; - -void DVDInit(void) -{ - chdir("GMPE01_00/files"); - if (getcwd(s_rootDir, sizeof(s_rootDir)) == NULL) - exit(1); -} - -BOOL DVDChangeDir(char *dir) -{ - printf("DVDChangeDir: %s\n", dir); - if (dir[0] == '/') { - char path[PATH_MAX]; - if (snprintf(path, sizeof(path), "%s/%s", s_rootDir, dir) >= PATH_MAX) - return FALSE; - return chdir(path) == 0; - } - else - return chdir(dir) == 0; -} - -s32 DVDConvertPathToEntrynum(char *pathPtr) -{ - int i; - FILE *f; - char absolute[PATH_MAX]; - - printf("DVDConvertPathToEntrynum: %s\n", pathPtr); -#ifdef _WIN32 - if (GetFullPathNameA(pathPtr, sizeof(absolute), absolute, NULL) == 0) - return -1; -#else - if (realpath(pathPtr, absolute) == NULL) - return -1; -#endif - for (i = 0; i < s_pathEntriesCount; i++) { - if (strcmp(absolute, s_pathEntries[i]) == 0) - return i; - } - - if (strlen(absolute) + 1 > PATH_MAX) - return -1; - - // check if file exists - f = fopen(absolute, "rb"); - if (f == NULL) - return -1; - fclose(f); - - // add new entry - printf("size = %i\n", sizeof(*s_pathEntries)); - s_pathEntries = realloc(s_pathEntries, (s_pathEntriesCount + 1) * sizeof(*s_pathEntries)); - strcpy(s_pathEntries[s_pathEntriesCount], absolute); - return s_pathEntriesCount++; -} - -BOOL DVDOpen(char *fileName, DVDFileInfo *fileInfo) -{ - FILE *f; - - printf("DVDOpen: %s\n", fileName); - f = fopen(fileName, "rb"); - if (f == NULL) { - puts("open failed\n"); - return FALSE; - } - fileInfo->cb.addr = f; - fseek(f, 0, SEEK_END); - fileInfo->length = ftell(f); - return TRUE; -} - -BOOL DVDFastOpen(s32 entrynum, DVDFileInfo *fileInfo) -{ - printf("DVDFastOpen: %li\n", entrynum); - if (entrynum < s_pathEntriesCount) - return DVDOpen(s_pathEntries[entrynum], fileInfo); - return FALSE; -} - -BOOL DVDClose(DVDFileInfo *fileInfo) -{ - FILE *f = fileInfo->cb.addr; - - if (f != NULL) - fclose(f); - fileInfo->cb.addr = NULL; - return TRUE; -} - -BOOL DVDReadPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, s32 prio) -{ - FILE *f = fileInfo->cb.addr; - BOOL success; - - printf("DVDReadPrio: length %li, offset %li\n", length, offset); - fseek(f, offset, SEEK_SET); - success = (fread(addr, length, 1, f) == 1) || feof(f); - if (!success) - puts("read failed"); - return TRUE; -} - -BOOL DVDReadAsyncPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, DVDCallback callback, s32 prio) -{ - FILE *f = fileInfo->cb.addr; - BOOL success; - - printf("DVDReadAsyncPrio: length %li, offset %li\n", length, offset); - fseek(f, offset, SEEK_SET); - success = (fread(addr, length, 1, f) == 1) || feof(f); - if (!success) - puts("read failed"); - callback(success ? 0 : -1, fileInfo); - return TRUE; -} - -BOOL DVDOpenDir(char *dirName, DVDDir *dir) -{ - puts("DVDOpenDir is a stub"); - return FALSE; -} - -BOOL DVDCloseDir(DVDDir *dir) -{ - puts("DVDCloseDir is a stub"); - return FALSE; -} - -BOOL DVDReadDir(DVDDir *dir, DVDDirEntry *dirent) -{ - puts("DVDReadDir is a stub"); - return FALSE; -} - -s32 DVDGetDriveStatus(void) -{ - // puts("DVDGetDriveStatus is a stub"); - return 0; -} - -s32 DVDGetCommandBlockStatus(const DVDCommandBlock *block) -{ - // TODO - return 0; -} diff --git a/src/port/imgui.cpp b/src/port/imgui.cpp deleted file mode 100644 index 2b70dc04..00000000 --- a/src/port/imgui.cpp +++ /dev/null @@ -1,268 +0,0 @@ -#include "port/imgui.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#if _WIN32 -#include "Windows.h" -#endif - -static bool m_frameRate = true; -static bool m_pipelineInfo = true; -static bool m_graphicsBackend = true; -static int m_debugOverlayCorner = 0; // top-left - -using namespace std::string_literals; -using namespace std::string_view_literals; - -namespace aurora::gfx -{ -extern std::atomic_uint32_t queuedPipelines; -extern std::atomic_uint32_t createdPipelines; - -extern size_t g_drawCallCount; -extern size_t g_mergedDrawCallCount; -extern size_t g_lastVertSize; -extern size_t g_lastUniformSize; -extern size_t g_lastIndexSize; -extern size_t g_lastStorageSize; -} // namespace aurora::gfx - -static void SetOverlayWindowLocation(int corner) -{ - const ImGuiViewport *viewport = ImGui::GetMainViewport(); - ImVec2 workPos = viewport->WorkPos; // Use work area to avoid menu-bar/task-bar, if any! - ImVec2 workSize = viewport->WorkSize; - ImVec2 windowPos; - ImVec2 windowPosPivot; - constexpr float padding = 10.0f; - windowPos.x = (corner & 1) != 0 ? (workPos.x + workSize.x - padding) : (workPos.x + padding); - windowPos.y = (corner & 2) != 0 ? (workPos.y + workSize.y - padding) : (workPos.y + padding); - windowPosPivot.x = (corner & 1) != 0 ? 1.0f : 0.0f; - windowPosPivot.y = (corner & 2) != 0 ? 1.0f : 0.0f; - ImGui::SetNextWindowPos(windowPos, ImGuiCond_Always, windowPosPivot); -} - -static void ImGuiStringViewText(std::string_view text) -{ - // begin()/end() do not work on MSVC - ImGui::TextUnformatted(text.data(), text.data() + text.size()); -} - -static std::string BytesToString(size_t bytes) -{ - constexpr std::array suffixes{"B"sv, "KB"sv, "MB"sv, "GB"sv, "TB"sv, "PB"sv, "EB"sv}; - uint32_t s = 0; - auto count = static_cast(bytes); - while (count >= 1024.0 && s < 7) - { - s++; - count /= 1024.0; - } - if (count - floor(count) == 0.0) - { - return fmt::format(FMT_STRING("{}{}"), static_cast(count), suffixes[s]); - } - return fmt::format(FMT_STRING("{:.1f}{}"), count, suffixes[s]); -} - -void imgui_main(const AuroraInfo *info) -{ - - ImGuiIO &io = ImGui::GetIO(); - ImGuiWindowFlags windowFlags = ImGuiWindowFlags_NoDecoration | - ImGuiWindowFlags_AlwaysAutoResize | - ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav; - if (m_debugOverlayCorner != -1) - { - SetOverlayWindowLocation(m_debugOverlayCorner); - windowFlags |= ImGuiWindowFlags_NoMove; - } - ImGui::SetNextWindowBgAlpha(0.65f); - if (ImGui::Begin("Debug Overlay", nullptr, windowFlags)) - { - bool hasPrevious = false; - if (m_frameRate) - { - if (hasPrevious) - { - ImGui::Separator(); - } - hasPrevious = true; - - ImGuiStringViewText(fmt::format(FMT_STRING("FPS: {:.1f}\n"), io.Framerate)); - } - if (m_graphicsBackend) - { - if (hasPrevious) - { - ImGui::Separator(); - } - hasPrevious = true; - - std::string_view backendString = "Unknown"sv; - switch (info->backend) - { - case BACKEND_D3D12: - backendString = "D3D12"sv; - break; - case BACKEND_METAL: - backendString = "Metal"sv; - break; - case BACKEND_VULKAN: - backendString = "Vulkan"sv; - break; - case BACKEND_OPENGL: - backendString = "OpenGL"sv; - break; - case BACKEND_OPENGLES: - backendString = "OpenGL ES"sv; - break; - case BACKEND_WEBGPU: - backendString = "WebGPU"sv; - break; - case BACKEND_NULL: - backendString = "Null"sv; - break; - } - ImGuiStringViewText(fmt::format(FMT_STRING("Backend: {}\n"), backendString)); - } - if (m_pipelineInfo) - { - if (hasPrevious) - { - ImGui::Separator(); - } - hasPrevious = true; - - ImGuiStringViewText( - fmt::format(FMT_STRING("Queued pipelines: {}\n"), aurora::gfx::queuedPipelines.load())); - ImGuiStringViewText( - fmt::format(FMT_STRING("Done pipelines: {}\n"), aurora::gfx::createdPipelines.load())); - ImGuiStringViewText( - fmt::format(FMT_STRING("Draw call count: {}\n"), aurora::gfx::g_drawCallCount)); - ImGuiStringViewText(fmt::format(FMT_STRING("Merged draw calls: {}\n"), - aurora::gfx::g_mergedDrawCallCount)); - ImGuiStringViewText(fmt::format(FMT_STRING("Vertex size: {}\n"), - BytesToString(aurora::gfx::g_lastVertSize))); - ImGuiStringViewText(fmt::format(FMT_STRING("Uniform size: {}\n"), - BytesToString(aurora::gfx::g_lastUniformSize))); - ImGuiStringViewText(fmt::format(FMT_STRING("Index size: {}\n"), - BytesToString(aurora::gfx::g_lastIndexSize))); - ImGuiStringViewText(fmt::format(FMT_STRING("Storage size: {}\n"), - BytesToString(aurora::gfx::g_lastStorageSize))); - ImGuiStringViewText(fmt::format( - FMT_STRING("Total: {}\n"), - BytesToString(aurora::gfx::g_lastVertSize + aurora::gfx::g_lastUniformSize + - aurora::gfx::g_lastIndexSize + aurora::gfx::g_lastStorageSize))); - } - } - ImGui::End(); -} - -class Limiter -{ - using delta_clock = std::chrono::high_resolution_clock; - using duration_t = std::chrono::nanoseconds; - - public: - void Reset() - { - m_oldTime = delta_clock::now(); - } - - void Sleep(duration_t targetFrameTime) - { - if (targetFrameTime.count() == 0) - { - return; - } - - auto start = delta_clock::now(); - duration_t adjustedSleepTime = SleepTime(targetFrameTime); - if (adjustedSleepTime.count() > 0) - { - NanoSleep(adjustedSleepTime); - duration_t overslept = TimeSince(start) - adjustedSleepTime; - if (overslept < duration_t{targetFrameTime}) - { - m_overheadTimes[m_overheadTimeIdx] = overslept; - m_overheadTimeIdx = (m_overheadTimeIdx + 1) % m_overheadTimes.size(); - } - } - Reset(); - } - - duration_t SleepTime(duration_t targetFrameTime) - { - const auto sleepTime = duration_t{targetFrameTime} - TimeSince(m_oldTime); - m_overhead = std::accumulate(m_overheadTimes.begin(), m_overheadTimes.end(), duration_t{}) / - m_overheadTimes.size(); - if (sleepTime > m_overhead) - { - return sleepTime - m_overhead; - } - return duration_t{0}; - } - - private: - delta_clock::time_point m_oldTime; - std::array m_overheadTimes{}; - size_t m_overheadTimeIdx = 0; - duration_t m_overhead = duration_t{0}; - - duration_t TimeSince(delta_clock::time_point start) - { - return std::chrono::duration_cast(delta_clock::now() - start); - } - -#if _WIN32 - bool m_initialized; - double m_countPerNs; - - void NanoSleep(const duration_t duration) - { - if (!m_initialized) - { - LARGE_INTEGER freq; - QueryPerformanceFrequency(&freq); - m_countPerNs = static_cast(freq.QuadPart) / 1000000000.0; - m_initialized = true; - } - - DWORD ms = std::chrono::duration_cast(duration).count(); - auto tickCount = - static_cast(static_cast(duration.count()) * m_countPerNs); - LARGE_INTEGER count; - QueryPerformanceCounter(&count); - if (ms > 10) - { - // Adjust for Sleep overhead - ::Sleep(ms - 10); - } - auto end = count.QuadPart + tickCount; - do - { - QueryPerformanceCounter(&count); - } while (count.QuadPart < end); - } -#else - void NanoSleep(const duration_t duration) - { - std::this_thread::sleep_for(duration); - } -#endif -}; - -static Limiter g_frameLimiter; -void frame_limiter() -{ - g_frameLimiter.Sleep( - std::chrono::duration_cast(std::chrono::seconds{1}) / 60); -} diff --git a/src/port/portmain.c b/src/port/portmain.c deleted file mode 100644 index c024bd18..00000000 --- a/src/port/portmain.c +++ /dev/null @@ -1,7 +0,0 @@ -int game_main(int argc, char *argv[]); - - -int main(int argc, char *argv[]) -{ - game_main(argc, argv); -} diff --git a/src/port/stubs.c b/src/port/stubs.c deleted file mode 100644 index e5442505..00000000 --- a/src/port/stubs.c +++ /dev/null @@ -1,800 +0,0 @@ -#include "dolphin/gx/GXVert.h" -#include -#include -#include -#include - -#include -#include -#include - -// Credits: Super Monkey Ball - -static VIRetraceCallback sVIRetraceCallback = NULL; - -void OSReport(const char *msg, ...) -{ - va_list args; - va_start(args, msg); - vprintf(msg, args); - va_end(args); -} - -u32 OSGetConsoleType() -{ - return OS_CONSOLE_RETAIL1; -} - -u32 OSGetSoundMode() -{ - return 2; -} - -s32 CARDCancel(CARDFileInfo *fileInfo) -{ - puts("CARDCancel is a stub"); - return 0; -} - -s32 CARDCheck(s32 chan) -{ - puts("CARDCheck is a stub"); - return 0; -} - -s32 CARDCheckAsync(s32 chan, CARDCallback callback) -{ - puts("CARDCheckAsync is a stub"); - return 0; -} - -s32 CARDClose(CARDFileInfo *fileInfo) -{ - puts("CARDClose is a stub"); - return 0; -} - -s32 CARDCreate(s32 chan, const char *fileName, u32 size, CARDFileInfo *fileInfo) -{ - puts("CARDCreate is a stub"); - return 0; -} - -s32 CARDCreateAsync(s32 chan, const char *fileName, u32 size, CARDFileInfo *fileInfo, CARDCallback callback) -{ - puts("CARDCreateAsync is a stub"); - return 0; -} - -s32 CARDDelete(s32 chan, const char *fileName) -{ - puts("CARDDelete is a stub"); - return 0; -} - -s32 CARDDeleteAsync(s32 chan, const char *fileName, CARDCallback callback) -{ - puts("CARDDeleteAsync is a stub"); - return 0; -} - -s32 CARDFastDeleteAsync(s32 chan, s32 fileNo, CARDCallback callback) -{ - puts("CARDFastDeleteAsync is a stub"); - return 0; -} - -s32 CARDFastOpen(s32 chan, s32 fileNo, CARDFileInfo *fileInfo) -{ - puts("CARDFastOpen is a stub"); - return 0; -} - -s32 CARDFormat(s32 chan) -{ - puts("CARDFormat is a stub"); - return 0; -} - -s32 CARDFreeBlocks(s32 chan, s32 *byteNotUsed, s32 *filesNotUsed) -{ - puts("CARDFreeBlocks is a stub"); - return 0; -} - -s32 CARDGetResultCode(s32 chan) -{ - puts("CARDGetResultCode is a stub"); - return 0; -} - -s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat *stat) -{ - puts("CARDGetStatus is a stub"); - return 0; -} - -s32 CARDGetSectorSize(s32 chan, u32 *size) -{ - puts("CARDGetSectorSize is a stub"); - return 0; -} - -void CARDInit() -{ - puts("CARDInit is a stub"); -} - -s32 CARDMount(s32 chan, void *workArea, CARDCallback detachCallback) -{ - puts("CARDMount is a stub"); - return 0; -} - -s32 CARDMountAsync(s32 chan, void *workArea, CARDCallback detachCallback, CARDCallback attachCallback) -{ - puts("CARDMountAsync is a stub"); - return 0; -} - -s32 CARDOpen(s32 chan, const char *fileName, CARDFileInfo *fileInfo) -{ - puts("CARDOpen is a stub"); - return 0; -} - -s32 CARDProbeEx(s32 chan, s32 *memSize, s32 *sectorSize) -{ - puts("CARDProbeEx is a stub"); - return 0; -} - -s32 CARDRead(CARDFileInfo *fileInfo, void *addr, s32 length, s32 offset) -{ - puts("CARDRead is a stub"); - return 0; -} - -s32 CARDReadAsync(CARDFileInfo *fileInfo, void *addr, s32 length, s32 offset, CARDCallback callback) -{ - puts("CARDReadAsync is a stub"); - return 0; -} - -s32 CARDRename(s32 chan, const char *oldName, const char *newName) -{ - puts("CARDRename is a stub"); - return 0; -} - -s32 CARDRenameAsync(s32 chan, const char *oldName, const char *newName, CARDCallback callback) -{ - puts("CARDRenameAsync is a stub"); - return 0; -} - -s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat *stat, CARDCallback callback) -{ - puts("CARDSetStatusAsync is a stub"); - return 0; -} - -s32 CARDUnmount(s32 chan) -{ - puts("CARDUnmount is a stub"); - return 0; -} - -s32 CARDWrite(CARDFileInfo *fileInfo, const void *addr, s32 length, s32 offset) -{ - puts("CARDWrite is a stub"); - return 0; -} - -s32 CARDWriteAsync(CARDFileInfo *fileInfo, const void *addr, s32 length, s32 offset, CARDCallback callback) -{ - puts("CARDWriteAsync is a stub"); - return 0; -} - -s32 CARDGetSerialNo(s32 chan, u64* serialNo) -{ - return 0; -} - -s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat* stat) -{ - return 0; -} - -void DCFlushRange(void *addr, u32 nBytes) -{ - //puts("DCFlushRange is a stub"); -} - -void DCFlushRangeNoSync(void *addr, u32 nBytes) -{ - //puts("DCFlushRangeNoSync is a stub"); -} - -void DCInvalidateRange(void *addr, u32 nBytes) -{ - //puts("DCInvalidateRange is a stub"); -} - -void DCStoreRange(void *addr, u32 nBytes) -{ - //puts("DCStoreRange is a stub"); -} - -void DCStoreRangeNoSync(void *addr, u32 nBytes) -{ - //puts("DCStoreRangeNoSync is a stub"); -} - -void DEMOUpdateStats(unsigned char inc) -{ - puts("DEMOUpdateStats is a stub"); -} - -void DEMOPrintStats(void) -{ - puts("DEMOPrintStats is a stub"); -} - -s32 DVDCancel(DVDCommandBlock *block) -{ - puts("DVDCancel is a stub"); - return 0; -} - -void DVDReadAbsAsyncForBS(void *a, struct bb2struct *b, int c, int d, void (*e)()) -{ - puts("DVDReadAbsAsyncForBS is a stub"); -} - -void DVDReadDiskID(void *a, DVDDiskID *b, void (*c)()) -{ - puts("DVDReadDiskID is a stub"); -} - -void DVDReset() -{ - puts("DVDReset is a stub"); -} - -BOOL EXIDeselect(int chan) -{ - puts("EXIDeselect is a stub"); - return FALSE; -} - -BOOL EXIDma(int chan, void *buffer, s32 size, int d, int e) -{ - puts("EXIDma is a stub"); - return FALSE; -} - -BOOL EXIImm(int chan, u32 *b, int c, int d, int e) -{ - puts("EXIImm is a stub"); - return FALSE; -} - -BOOL EXILock(int chan, int b, int c) -{ - puts("EXILock is a stub"); - return FALSE; -} - -BOOL EXISelect(int chan, int b, int c) -{ - puts("EXISelect is a stub"); - return FALSE; -} - -BOOL EXISync(int chan) -{ - puts("EXISync is a stub"); - return FALSE; -} - -BOOL EXIUnlock(int chan) -{ - puts("EXIUnlock is a stub"); - return FALSE; -} - -void LCEnable() -{ - puts("LCEnable is a stub"); -} - -void OSClearContext(OSContext *context) -{ - puts("OSClearContext is a stub"); -} - -BOOL OSDisableInterrupts() -{ - puts("OSDisableInterrupts is a stub"); - return FALSE; -} - -void OSDumpContext(OSContext *context) -{ - puts("OSDumpContext is a stub"); -} - -OSThread *OSGetCurrentThread() -{ - puts("OSGetCurrentThread is a stub"); - return 0; -} - -u16 OSGetFontEncode() -{ - puts("OSGetFontEncode is a stub"); - return 0; -} - -char *OSGetFontTexture(char *string, void **image, s32 *x, s32 *y, s32 *width) -{ - puts("OSGetFontTexture is a stub"); - return 0; -} - -char *OSGetFontWidth(char *string, s32 *width) -{ - puts("OSGetFontWidth is a stub"); - return 0; -} - -BOOL OSGetResetButtonState() -{ - puts("OSGetResetButtonState is a stub"); - return FALSE; -} - -u32 OSGetStackPointer() -{ - puts("OSGetStackPointer is a stub"); - return 0; -} - -BOOL OSInitFont(OSFontHeader *fontData) -{ - puts("OSInitFont is a stub"); - return FALSE; -} - -BOOL OSLink(OSModuleInfo *newModule, void *bss) -{ - puts("OSLink is a stub"); - return TRUE; -} - -void OSLoadContext(OSContext *context) -{ - puts("OSLoadContext is a stub"); -} - -void OSResetSystem(int reset, u32 resetCode, BOOL forceMenu) -{ - puts("OSResetSystem is a stub"); -} - -BOOL OSRestoreInterrupts(BOOL level) -{ - puts("OSRestoreInterrupts is a stub"); - return FALSE; -} - -s32 OSResumeThread(OSThread *thread) -{ - puts("OSResumeThread is a stub"); - return 0; -} - -void OSSetCurrentContext(OSContext *context) -{ - puts("OSSetCurrentContext is a stub"); -} - -void OSSetStringTable(const void *stringTable) -{ - puts("OSSetStringTable is a stub"); -} - -s32 OSSuspendThread(OSThread *thread) -{ - puts("OSSuspendThread is a stub"); - return 0; -} - -void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime *td) -{ - puts("OSTicksToCalendarTime is a stub"); -} - -BOOL OSUnlink(OSModuleInfo *oldModule) -{ - puts("OSUnlink is a stub"); - return FALSE; -} - -void OSWakeupThread(OSThreadQueue *queue) -{ - puts("OSWakeupThread is a stub"); -} - -void PPCHalt() -{ - puts("PPCHalt is a stub"); -} - -void SoundChoID(int a, int b) -{ - puts("SoundChoID is a stub"); -} - -void SoundPan(int a, int b, int c) -{ - puts("SoundPan is a stub"); -} - -void SoundPitch(u16 a, int b) -{ - puts("SoundPitch is a stub"); -} - -void SoundRevID(int a, int b) -{ - puts("SoundRevID is a stub"); -} - -void VIConfigure(const GXRenderModeObj *rm) -{ - puts("VIConfigure is a stub"); -} - -void VIConfigurePan(u16 xOrg, u16 yOrg, u16 width, u16 height) -{ - puts("VIConfigurePan is a stub"); -} - -u32 VIGetRetraceCount() -{ - // puts("VIGetRetraceCount is a stub"); - return 0; // TODO this might be important -} - -u32 VIGetNextField() -{ - puts("VIGetNextField is a stub"); - return 0; -} - -void VISetBlack(BOOL black) -{ - puts("VISetBlack is a stub"); -} - -void VISetNextFrameBuffer(void *fb) -{ - // puts("VISetNextFrameBuffer is a stub"); -} - -void VIWaitForRetrace() -{ -if (sVIRetraceCallback) -{ - sVIRetraceCallback(0); -} -} - -s32 __CARDFormatRegionAsync(int a, int b) -{ - puts("__CARDFormatRegionAsync is a stub"); - return 0; -} - -void __GXSetSUTexSize() -{ - puts("__GXSetSUTexSize is a stub"); -} - -void __GXSetVAT() -{ - puts("__GXSetVAT is a stub"); -} - -void __GXSetVCD() -{ - puts("__GXSetVCD is a stub"); -} - -void __GXUpdateBPMask() -{ - puts("__GXUpdateBPMask is a stub"); -} - -u32 __OSGetDIConfig() -{ - puts("__OSGetDIConfig is a stub"); - return 0; -} - -__OSInterruptHandler __OSSetInterruptHandler(__OSInterrupt interrupt, __OSInterruptHandler handler) -{ - puts("__OSSetInterruptHandler is a stub"); - return 0; -} - -OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask mask) -{ - puts("__OSUnmaskInterrupts is a stub"); - return 0; -} - -void SISetSamplingRate(u32 msec) -{ - // Maybe we could include SI later - puts("SISetSamplingRate is a stub"); -} - -VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback callback) -{ -sVIRetraceCallback = callback; - return callback; -} - -void GXSetGPMetric(GXPerf0 perf0, GXPerf1 perf1) -{ - // puts("GXSetGPMetric is a stub"); -} - -void GXReadGPMetric(u32 *cnt0, u32 *cnt1) -{ - // puts("GXReadGPMetric is a stub"); -} - -void GXClearGPMetric(void) -{ - // puts("GXClearGPMetric is a stub"); -} - -void GXReadMemMetric( - u32 *cp_req, u32 *tc_req, u32 *cpu_rd_req, u32 *cpu_wr_req, u32 *dsp_req, u32 *io_req, u32 *vi_req, u32 *pe_req, u32 *rf_req, u32 *fi_req) -{ - // puts("GXReadMemMetric is a stub"); -} - -void GXClearMemMetric(void) -{ - // puts("GXClearMemMetric is a stub"); -} - -void GXClearVCacheMetric(void) -{ - // puts("GXClearVCacheMetric is a stub"); -} - -void GXReadPixMetric(u32 *top_pixels_in, u32 *top_pixels_out, u32 *bot_pixels_in, u32 *bot_pixels_out, u32 *clr_pixels_in, u32 *copy_clks) -{ - // puts("GXReadPixMetric is a stub"); -} - -void GXClearPixMetric(void) -{ - // puts("GXClearPixMetric is a stub"); -} - -void GXSetVCacheMetric(GXVCachePerf attr) -{ - // puts("GXSetVCacheMetric is a stub"); -} - -void GXReadVCacheMetric(u32 *check, u32 *miss, u32 *stall) -{ - // puts("GXReadVCacheMetric is a stub"); -} - -void GXSetDrawSync(u16 token) -{ - // puts("GXSetDrawSync is a stub"); -} - -GXDrawSyncCallback GXSetDrawSyncCallback(GXDrawSyncCallback cb) -{ - puts("GXSetDrawSyncCallback is a stub"); - // TODO - return cb; -} - -void PPCSync(void) -{ - //puts("PPCSync is a stub"); -} - -void GXUnknownu16(const u16 x) -{ - puts("GXUnknownu16 is a stub"); -} - -void GXWaitDrawDone(void) -{ - // puts("GXWaitDrawDone is a stub"); -} - -void GXSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, u16 tilespacing_t, - GXIndTexFormat format, GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel) -{ - // TODO - // puts("GXSetTevIndTile is a stub"); -} - -void GXResetWriteGatherPipe(void) -{ - // puts("GXResetWriteGatherPipe is a stub"); -} - -void ARQInit(void) { - puts("ARQInit is a stub"); -} - -void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz) -{ - Vec peye; - f32 xc; - f32 yc; - f32 zc; - f32 wc; - - peye.x = mtx[0][3] + ((mtx[0][2] * z) + ((mtx[0][0] * x) + (mtx[0][1] * y))); - peye.y = mtx[1][3] + ((mtx[1][2] * z) + ((mtx[1][0] * x) + (mtx[1][1] * y))); - peye.z = mtx[2][3] + ((mtx[2][2] * z) + ((mtx[2][0] * x) + (mtx[2][1] * y))); - if (pm[0] == 0.0f) { - xc = (peye.x * pm[1]) + (peye.z * pm[2]); - yc = (peye.y * pm[3]) + (peye.z * pm[4]); - zc = pm[6] + (peye.z * pm[5]); - wc = 1.0f / -peye.z; - } - else { - xc = pm[2] + (peye.x * pm[1]); - yc = pm[4] + (peye.y * pm[3]); - zc = pm[6] + (peye.z * pm[5]); - wc = 1.0f; - } - *sx = (vp[2] / 2.0f) + (vp[0] + (wc * (xc * vp[2] / 2.0f))); - *sy = (vp[3] / 2.0f) + (vp[1] + (wc * (-yc * vp[3] / 2.0f))); - *sz = vp[5] + (wc * (zc * (vp[5] - vp[4]))); -} - -void GXGetViewportv(f32 *vp) -{ - // TODO -} - -// Hudson -void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) { } - -void msmSysRegularProc(void) -{ -} - -void msmMusFdoutEnd(void) -{ -} - -int msmMusPlay(int musId, MSM_MUSPARAM *musParam) -{ - // TODO - return 0; -} - -s32 msmMusGetStatus(int musNo) -{ - // TODO - return 0; -} - -s32 msmStreamGetStatus(int streamNo) -{ - // TODO - return 0; -} - -s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) -{ - return 0; -} - -s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) -{ - return 0; -} - -void msmMusSetMasterVolume(s32 vol) -{ -} - -s32 msmSysGetOutputMode(void) -{ - return 0; -} - -s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) -{ - return 0; -} - -void msmSeStopAll(BOOL checkGrp, s32 speed) -{ -} - -BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode) -{ - return TRUE; -} - -void OSSetSoundMode(u32 mode) -{ -} - -s32 HuSoftResetButtonCheck(void) -{ - //puts("HuSoftResetButtonCheck is a stub"); - return 0; -} - -s16 HuTHPSprCreateVol(char *path, s16 loop, s16 prio, float volume) -{ - return 0; -} - -s16 HuTHPSprCreate(char *path, s16 loop, s16 prio) -{ - return 0; -} - -s16 HuTHP3DCreateVol(char *path, s16 loop, float volume) -{ - return 0; -} - -s16 HuTHP3DCreate(char *path, s16 loop) -{ - return 0; -} - -void HuTHPStop(void) -{ -} - -void HuTHPClose(void) -{ -} - -void HuTHPRestart(void) -{ -} - -BOOL HuTHPEndCheck(void) -{ - return TRUE; -} - -s32 HuTHPFrameGet(void) -{ - return 0; -} - -s32 HuTHPTotalFrameGet(void) -{ - return 0; -} - -void HuTHPSetVolume(s32 left, s32 right) -{ -} diff --git a/tools/extract_includes.py b/tools/extract_includes.py deleted file mode 100644 index 92e6d7ab..00000000 --- a/tools/extract_includes.py +++ /dev/null @@ -1,101 +0,0 @@ -from dataclasses import dataclass -from pathlib import Path -from enum import Enum -import shutil - - -class BinaryType(Enum): - DOL = 0 - REL = 1 - - -@dataclass -class ExtractedInclude: - name: str - binary_type: BinaryType - from_file: Path - address: int - size: int - alignment: int - - -version = "GMPE01_00" - -assets_path = Path("assets") / version -build_path = Path("build") / version -orig_path = Path("orig") / version - -include_path = build_path / "include" -dol_path = orig_path / "sys" / "main.dol" -rels_path = orig_path / "files" / "dll" - -DOL_SHIFT = 0x80003000 -REL_SHIFT = -0x2B80 - -includes = [ - ExtractedInclude("ank8x8_4b", BinaryType.DOL, dol_path, 0x8011FE00, 0x2000, 32), - ExtractedInclude("Ascii8x8_1bpp", BinaryType.DOL, dol_path, 0x8012DCD7, 0x800, 1), - ExtractedInclude("coveropen_en", BinaryType.DOL, dol_path, 0x80132208, 0x1384, 4), - ExtractedInclude("fatalerror_en", BinaryType.DOL, dol_path, 0x8013358C, 0x1384, 4), - ExtractedInclude("hiliteData", BinaryType.DOL, dol_path, 0x8012C360, 0x480, 32), - ExtractedInclude("hiliteData2", BinaryType.DOL, dol_path, 0x8012C7E0, 0x480, 32), - ExtractedInclude("hiliteData3", BinaryType.DOL, dol_path, 0x8012CC60, 0x480, 32), - ExtractedInclude("hiliteData4", BinaryType.DOL, dol_path, 0x8012D0E0, 0x480, 32), - ExtractedInclude("loading_en", BinaryType.DOL, dol_path, 0x80134910, 0x1384, 4), - ExtractedInclude( - "nintendoData", BinaryType.REL, rels_path / "bootDll.rel", 0xA0, 0x307D, 32 - ), - ExtractedInclude("nodisc_en", BinaryType.DOL, dol_path, 0x80135C94, 0x1384, 4), - ExtractedInclude("refMapData0", BinaryType.DOL, dol_path, 0x801225A0, 0x1240, 32), - ExtractedInclude("refMapData1", BinaryType.DOL, dol_path, 0x801237E0, 0x1100, 32), - ExtractedInclude("refMapData2", BinaryType.DOL, dol_path, 0x801248E0, 0x2080, 32), - ExtractedInclude("refMapData3", BinaryType.DOL, dol_path, 0x80126960, 0x2080, 32), - ExtractedInclude("refMapData4", BinaryType.DOL, dol_path, 0x801289E0, 0x2080, 32), - ExtractedInclude("retryerror_en", BinaryType.DOL, dol_path, 0x80137018, 0x1384, 4), - ExtractedInclude("toonMapData", BinaryType.DOL, dol_path, 0x8012AA60, 0x880, 32), - ExtractedInclude("toonMapData2", BinaryType.DOL, dol_path, 0x8012B2E0, 0x1080, 32), - ExtractedInclude("wrongdisc_en", BinaryType.DOL, dol_path, 0x8013839C, 0x1384, 4), -] - -INCLUDE_PREAMBLE = """#ifndef ATTRIBUTE_ALIGN -#if defined(__MWERKS__) || defined(__GNUC__) -#define ATTRIBUTE_ALIGN(num) __attribute__((aligned(num))) -#elif defined(_MSC_VER) || defined(__INTELLISENSE__) -#define ATTRIBUTE_ALIGN(num) -#else -#error unknown compiler -#endif -#endif - -""" - - -if __name__ == "__main__": - Path(include_path).mkdir(parents=True, exist_ok=True) - # shutil.copyfile(assets_path / "include" / "macros.inc", include_path / "macros.inc") - # shutil.copyfile(assets_path / "config.json", build_path / "config.json") - for include in includes: - with open(include.from_file, "rb") as f_in: - with open(include_path / (include.name + ".inc"), "w+") as f_out: - n = include.size - addr = include.address - ( - DOL_SHIFT if include.binary_type == BinaryType.DOL else REL_SHIFT - ) - f_in.seek(addr) - f_out.write(INCLUDE_PREAMBLE) - f_out.write( - f"unsigned char {include.name}[] ATTRIBUTE_ALIGN({include.alignment}) = {{\n" - ) - - while n > 0: - chunk = f_in.read(min(16, n)) - f_out.write( - " " - + ", ".join( - [f"0x{val.upper()}" for val in chunk.hex(" ", 1).split()] - ) - + ",\n" - ) - n -= len(chunk) - - f_out.write("};\n")