x64 and hsfload improvements, build every REL (#582)
* Port some of hsfload.c * More byteswaps in hsfload.c * Finish hsfload besides cenv * hsfload fixes * Some x64 improvements * More x64 improvements * 64 bit improvements * Link in lots of files * Fix armem bug * Fix dll killing, load modeseldll * Fixes, clearing TODOs * Tons of warning/error fixes * Linux build fixes * Add -fPIC flag to fix build on x64 linux * GXSETARRAY sizes and misc fixes * More fixes * Build all RELs * Implement C_Quat functions * Fix PAL build
This commit is contained in:
parent
bc19d2263b
commit
34cf507e3f
186 changed files with 3256 additions and 1540 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -4,3 +4,6 @@
|
|||
[submodule "extern/aurora"]
|
||||
path = extern/aurora
|
||||
url = https://github.com/dbalatoni13/aurora.git
|
||||
[submodule "extern/longjmp_win64"]
|
||||
path = extern/longjmp_win64
|
||||
url = https://github.com/GlinkieGamesInc/longjmp_win64.git
|
||||
|
|
|
|||
241
CMakeLists.txt
241
CMakeLists.txt
|
|
@ -1,8 +1,8 @@
|
|||
cmake_minimum_required(VERSION 3.13)
|
||||
if (APPLE)
|
||||
project(marioparty4 LANGUAGES C CXX OBJC)
|
||||
project(marioparty4 LANGUAGES C CXX OBJC)
|
||||
else ()
|
||||
project(marioparty4 LANGUAGES C CXX)
|
||||
project(marioparty4 LANGUAGES C CXX)
|
||||
endif ()
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
|
@ -11,88 +11,126 @@ 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} -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-parameter")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -fsanitize=address -fsanitize-address-use-after-scope")
|
||||
set(CMAKE_PREFIX_PATH /usr)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE i386-linux-gnu)
|
||||
set(CMAKE_LIBRARY_PATH "/usr/lib32" CACHE PATH "")
|
||||
set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX 32)
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
endif ()
|
||||
|
||||
if(APPLE)
|
||||
add_compile_options(-Wno-declaration-after-statement)
|
||||
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)
|
||||
|
||||
if (MSVC)
|
||||
add_compile_options(/bigobj)
|
||||
endif ()
|
||||
|
||||
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/os/OSAlloc.c
|
||||
src/dolphin/os/OSArena.c
|
||||
src/dolphin/os/OSStopwatch.c
|
||||
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/armem.c
|
||||
src/game/card.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/memory.c
|
||||
src/game/objdll.c
|
||||
src/game/objmain.c
|
||||
src/game/ovllist.c
|
||||
src/game/ShapeExec.c
|
||||
src/game/sprman.c
|
||||
src/game/sprput.c
|
||||
src/game/pad.c
|
||||
src/game/perf.c
|
||||
src/game/printfunc.c
|
||||
src/game/process.c
|
||||
src/game/window.c
|
||||
src/game/wipe.c
|
||||
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
|
||||
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})
|
||||
|
|
@ -100,37 +138,62 @@ 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 "-std=c89 -Dinline=")
|
||||
endforeach()
|
||||
foreach(file ${GAME_FILES})
|
||||
set_source_files_properties(${file} PROPERTIES COMPILE_FLAGS "-std=c89 -Dinline=")
|
||||
endforeach()
|
||||
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})
|
||||
target_compile_definitions(dol PRIVATE TARGET_PC TARGET_DOL VERSION=${VERSION} MUSY_VERSION_MAJOR=1 MUSY_VERSION_MINOR=5 MUSY_VERSION_PATCH=4)
|
||||
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)
|
||||
target_link_libraries(dol PRIVATE aurora::core aurora::gx aurora::vi musyx)
|
||||
if (MSVC)
|
||||
target_link_options(dol PRIVATE "/DEF:${CMAKE_SOURCE_DIR}/dol.def")
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
enable_language(ASM_MASM)
|
||||
target_sources(dol PRIVATE extern/longjmp_win64/longjmp_win64.asm)
|
||||
set_source_files_properties(extern/longjmp_win64/longjmp_win64.asm PROPERTIES LANGUAGE ASM_MASM)
|
||||
endif ()
|
||||
target_link_options(dol PRIVATE "/DEF:${CMAKE_SOURCE_DIR}/dol.def")
|
||||
else ()
|
||||
target_compile_options(dol PRIVATE "-fvisibility=default")
|
||||
endif()
|
||||
# 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 VERSION=${VERSION})
|
||||
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)
|
||||
|
||||
add_library(bootDll SHARED src/REL/bootDll/main.c src/REL/bootDll/language.c)
|
||||
target_compile_definitions(bootDll PRIVATE TARGET_PC VERSION=${VERSION})
|
||||
target_include_directories(bootDll PRIVATE include build/GMPE01_00/include)
|
||||
if (MSVC)
|
||||
set_target_properties(bootDll PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup")
|
||||
else ()
|
||||
endif()
|
||||
set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
|
||||
target_link_libraries(bootDll PRIVATE dol musyx)
|
||||
add_dependencies(marioparty4 bootDll)
|
||||
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})
|
||||
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)
|
||||
if (MSVC)
|
||||
set_target_properties(${dir} PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup")
|
||||
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 ()
|
||||
|
|
|
|||
|
|
@ -98,4 +98,4 @@ After you got the GameCube build up and running for `GMPE01_00`:
|
|||
```
|
||||
Linux and MacOS, and x64 support is coming later.
|
||||
|
||||
- Open the solution in Visual Studio and build. [Fix for UtilsVulkan.h](https://github.com/encounter/dawn-cmake/blob/f10e70a26db00bb89f88be4204cf49ffc869e194/src/dawn/native/vulkan/UtilsVulkan.h#L128-L132)
|
||||
- Open the solution in Visual Studio and build.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
fn_1_144 = .text:0x00000144; // type:function size:0xC8
|
||||
ObjectSetup = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8
|
||||
ObjectSetup = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local
|
||||
OptionPlaySound = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local
|
||||
PresentGetCursorPos = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
fn_1_144 = .text:0x00000144; // type:function size:0xC8
|
||||
ObjectSetup = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8
|
||||
ObjectSetup = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
fn_1_144 = .text:0x00000144; // type:function size:0xC8
|
||||
ObjectSetup = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local
|
||||
OptionPlaySound = .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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local
|
||||
PresentGetCursorPos = .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
|
||||
|
|
|
|||
2
extern/aurora
vendored
2
extern/aurora
vendored
|
|
@ -1 +1 @@
|
|||
Subproject commit 3b56e337c08a1dd4946c226298011364c319c7a2
|
||||
Subproject commit a18cdf3b599b482c850096994cef09ba3920851b
|
||||
1
extern/longjmp_win64
vendored
Submodule
1
extern/longjmp_win64
vendored
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit d04c5b7b486dbd2b80610fe2a5880e833933807f
|
||||
2
extern/musyx
vendored
2
extern/musyx
vendored
|
|
@ -1 +1 @@
|
|||
Subproject commit a579f4d4abbac1c67fddf0d361291320f81a7b6c
|
||||
Subproject commit 37e8ecd4e6503e90b97ea81cd7d669357861d501
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
|
||||
extern u8 texMtxTbl[];
|
||||
SHARED_SYM extern u8 texMtxTbl[];
|
||||
|
||||
#define FABS(x) ((x < 0.0f) ? -(x) : (x))
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ typedef struct _unkStruct6 {
|
|||
m440Func6 unk38;
|
||||
s16 unk3C;
|
||||
s16 unk3E;
|
||||
} unkStruct6; // sizeof 0x40
|
||||
} unkStruct6; // sizeof 0x40 // TODO same as unkStruct14?
|
||||
|
||||
typedef struct _unkStruct7 {
|
||||
GXColor unk0;
|
||||
|
|
@ -178,7 +178,8 @@ typedef struct _unkStruct13 {
|
|||
typedef struct _unkStruct14 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
char unk4[0x8];
|
||||
char unk4[4];
|
||||
s32 unk8;
|
||||
void *unkC;
|
||||
char unk10[0x4];
|
||||
void *unk14;
|
||||
|
|
|
|||
|
|
@ -29,9 +29,6 @@ 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 *);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,9 @@ typedef struct datalist_sprite {
|
|||
GXColor color;
|
||||
} DataListSprite;
|
||||
|
||||
// void fn_1_1EC0(s16 view);
|
||||
#ifndef __MWERKS__
|
||||
void fn_1_1EC0(s16 view);
|
||||
#endif
|
||||
|
||||
s32 fn_1_2490(void);
|
||||
s32 fn_1_37DC(void);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ typedef struct tutorial_scene {
|
|||
TutorialSceneFunc func;
|
||||
} TutorialScene;
|
||||
|
||||
extern s32 boardTutorialData[4];
|
||||
SHARED_SYM extern s32 boardTutorialData[4];
|
||||
|
||||
void HostPosSet(s16);
|
||||
void fn_1_1FB0(void);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ extern "C" {
|
|||
#define ARQ_PRIORITY_LOW 0
|
||||
#define ARQ_PRIORITY_HIGH 1
|
||||
|
||||
typedef void (*ARQCallback)(u32 pointerToARQRequest);
|
||||
typedef void (*ARQCallback)(uintptr_t 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, u32 source, u32 dest,
|
||||
void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, uintptr_t source, uintptr_t dest,
|
||||
u32 length, ARQCallback callback);
|
||||
void ARQRemoveRequest(ARQRequest* task);
|
||||
void ARQRemoveOwnerRequest(u32 owner);
|
||||
|
|
|
|||
|
|
@ -20,9 +20,10 @@ 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
|
||||
//void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets,
|
||||
// GXBool replace_mode, GXIndTexMtxID matrix_sel);
|
||||
|
||||
#ifndef __MWERKS__
|
||||
void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets,
|
||||
GXBool replace_mode, GXIndTexMtxID matrix_sel);
|
||||
#endif
|
||||
void GXSetTevIndTile (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
|
||||
u16 tilesize_s, u16 tilesize_t,
|
||||
u16 tilespacing_s, u16 tilespacing_t,
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ 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);
|
||||
|
|
@ -46,6 +47,8 @@ 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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
#include "math.h"
|
||||
#include "dolphin/mtx.h"
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.141592653589793
|
||||
#endif
|
||||
|
||||
typedef struct vec2f {
|
||||
float x;
|
||||
|
|
@ -36,6 +38,7 @@ typedef struct vec2f {
|
|||
|
||||
#ifndef __MWERKS__
|
||||
void HuSetVecF(Vec *arg0, f32 arg8, f32 arg9, f32 argA);
|
||||
void HuSubVecF(Vec* out, Vec* in, Vec* sub);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _GAME_AUDIO_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct sndGrpTbl_s {
|
||||
s16 ovl;
|
||||
|
|
@ -74,6 +75,6 @@ extern float Snd3DDistOffset;
|
|||
extern s32 musicOffF;
|
||||
extern u8 fadeStat;
|
||||
|
||||
extern SNDGRPTBL sndGrpTable[];
|
||||
SHARED_SYM extern SNDGRPTBL sndGrpTable[];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#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);
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@ 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);
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ void BoardBooHouseHostSet(s16);
|
|||
s16 BoardBooHouseHostGet(void);
|
||||
void BoardBooHouseCreate(void);
|
||||
void BoardBooHouseExec(s32);
|
||||
void BoardBooHouseKill(void);
|
||||
|
||||
s32 BoardBooComUseCheck(s32);
|
||||
void BoardBooHouseTutorialExec(void);
|
||||
|
|
|
|||
8
include/game/board/bowser.h
Normal file
8
include/game/board/bowser.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef _BOARD_BOWSER_H
|
||||
#define _BOARD_BOWSER_H
|
||||
|
||||
#include "game/process.h"
|
||||
|
||||
void BoardBowserExec(s32 player, s32 space);
|
||||
|
||||
#endif
|
||||
8
include/game/board/fortune.h
Normal file
8
include/game/board/fortune.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef _BOARD_FORTUNE_H
|
||||
#define _BOARD_FORTUNE_H
|
||||
|
||||
#include "game/process.h"
|
||||
|
||||
void BoardFortuneExec(s32 player, s32 space);
|
||||
|
||||
#endif
|
||||
|
|
@ -6,5 +6,8 @@
|
|||
void BoardItemStart(s32 arg0, s32 arg1);
|
||||
BOOL BoardItemDoneCheck(void);
|
||||
void BoardItemBagItemSet(s16 *arg0);
|
||||
#ifndef __MWERKS__
|
||||
void BoardItemPlayerRestore(s32 arg0, s32 arg1);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,72 +1,73 @@
|
|||
#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 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;
|
||||
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;
|
||||
} BoardCameraData;
|
||||
|
||||
extern BoardCameraData boardCamera;
|
||||
extern Process *boardObjMan;
|
||||
extern Process *boardMainProc;
|
||||
extern u32 boardRandSeed;
|
||||
SHARED_SYM extern Process *boardObjMan;
|
||||
SHARED_SYM extern Process *boardMainProc;
|
||||
SHARED_SYM extern u32 boardRandSeed;
|
||||
extern omObjData *boardMainObj;
|
||||
|
||||
typedef void (*BoardFunc)(void);
|
||||
|
|
@ -78,11 +79,11 @@ typedef void (*BoardCameraPosCalcFunc)(BoardCameraData *camera);
|
|||
|
||||
typedef void (*BoardTurnStartHook)(s32 player, s32 space);
|
||||
|
||||
extern BoardTurnStartHook boardTurnStartFunc;
|
||||
extern void (*boardStarShowNextHook)(void);
|
||||
extern void (*boardStarGiveHook)(void);
|
||||
extern BoardBowserHook boardBowserHook;
|
||||
extern BoardFunc boardTurnFunc;
|
||||
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 BoardLightHook boardLightResetHook;
|
||||
extern BoardLightHook boardLightSetHook;
|
||||
|
||||
|
|
@ -119,12 +120,15 @@ 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 near, float far);
|
||||
void BoardCameraNearFarGet(float *near, float *far);
|
||||
void BoardCameraNearFarSet(float nnear, float ffar);
|
||||
void BoardCameraNearFarGet(float *nnear, float *ffar);
|
||||
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);
|
||||
|
|
@ -166,4 +170,4 @@ void BoardTauntKill(void);
|
|||
s32 BoardDataDirReadAsync(s32 data_num);
|
||||
void BoardDataAsyncWait(s32 status);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ 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);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
#include "game/board/space.h"
|
||||
#include "game/board/ui.h"
|
||||
|
||||
extern s16 boardPlayerMdl[4];
|
||||
SHARED_SYM extern s16 boardPlayerMdl[4];
|
||||
|
||||
static inline s32 BoardPlayerHandicapGet(s32 player)
|
||||
{
|
||||
|
|
@ -97,6 +97,9 @@ 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);
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ 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);
|
||||
|
|
@ -27,6 +28,7 @@ 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);
|
||||
|
|
@ -40,6 +42,7 @@ 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);
|
||||
|
|
@ -49,6 +52,7 @@ 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);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _BOARD_TUTORIAL_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "version.h"
|
||||
|
||||
void BoardTutorialInit(void);
|
||||
void BoardTutorialKill(void);
|
||||
|
|
@ -16,7 +17,7 @@ void BoardTutorialItemSet(s8 arg0);
|
|||
void BoardTutorialHostSet(s16 arg0);
|
||||
void BoardTutorialHostHide(s8 arg0);
|
||||
|
||||
extern s32 boardTutorialData[4];
|
||||
SHARED_SYM extern s32 boardTutorialData[4];
|
||||
extern s8 boardTutorialDirInputX;
|
||||
extern s8 boardTutorialDirInputY;
|
||||
extern s16 boardTutorialDirInputTime;
|
||||
|
|
@ -24,6 +25,6 @@ extern s32 boardTutorialBlockPos;
|
|||
extern s8 boardTutorialBlockItem;
|
||||
extern s8 boardTutorialBlockF;
|
||||
extern s8 boardTutorialUseItem;
|
||||
extern s8 boardTutorialF;
|
||||
SHARED_SYM extern s8 boardTutorialF;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
#define _GAME_CARD_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
extern u8 UnMountCnt;
|
||||
SHARED_SYM extern u8 UnMountCnt;
|
||||
|
||||
void HuCardInit(void);
|
||||
s32 HuCardCheck(void);
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ 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);
|
||||
|
|
|
|||
|
|
@ -197,7 +197,6 @@ static inline void GWRumbleSet(s32 value)
|
|||
{
|
||||
GWGameStat.rumble = value;
|
||||
if (value == 0) {
|
||||
// TODO PC: get rumble working
|
||||
HuPadRumbleAllStop();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#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;
|
||||
|
|
@ -138,7 +139,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);
|
||||
|
||||
extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256];
|
||||
extern Hu3DTexScrDataStruct Hu3DTexScrData[16];
|
||||
SHARED_SYM extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256];
|
||||
SHARED_SYM extern Hu3DTexScrDataStruct Hu3DTexScrData[16];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -285,8 +285,8 @@ typedef struct hsf_camera {
|
|||
HsfVector3f pos;
|
||||
float aspect_dupe;
|
||||
float fov;
|
||||
float near;
|
||||
float far;
|
||||
float nnear;
|
||||
float ffar;
|
||||
} HsfCamera;
|
||||
|
||||
typedef struct hsf_light {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#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
|
||||
|
|
@ -104,7 +105,7 @@ struct model_data {
|
|||
u16 unk_26;
|
||||
u16 unk_28[8];
|
||||
s16 unk_38[8];
|
||||
u32 unk_48;
|
||||
uintptr_t unk_48;
|
||||
u32 unk_4C;
|
||||
u32 attr;
|
||||
u32 motion_attr;
|
||||
|
|
@ -140,8 +141,8 @@ struct model_data {
|
|||
}; // sizeof 0x124
|
||||
typedef struct camera_data {
|
||||
float fov;
|
||||
float near;
|
||||
float far;
|
||||
float nnear;
|
||||
float ffar;
|
||||
float aspect;
|
||||
float aspect_dupe;
|
||||
Vec pos;
|
||||
|
|
@ -297,23 +298,23 @@ void Hu3DProjectionPosSet(s16, Vec *, Vec *, Vec *);
|
|||
void Hu3DProjectionTPLvlSet(s16, float);
|
||||
void Hu3DMipMapSet(char *, s16, s32, float);
|
||||
|
||||
extern ModelData Hu3DData[0x200];
|
||||
extern CameraData Hu3DCamera[0x10];
|
||||
SHARED_SYM extern ModelData Hu3DData[0x200];
|
||||
SHARED_SYM extern CameraData Hu3DCamera[0x10];
|
||||
extern AnimData *reflectAnim[5];
|
||||
extern AnimData *hiliteAnim[4];
|
||||
SHARED_SYM extern AnimData *hiliteAnim[4];
|
||||
extern ThreeDProjectionStruct Hu3DProjection[4];
|
||||
extern ShadowData Hu3DShadowData;
|
||||
extern Mtx Hu3DCameraMtx;
|
||||
extern Mtx Hu3DCameraMtxXPose;
|
||||
extern LightData Hu3DGlobalLight[0x8];
|
||||
SHARED_SYM extern ShadowData Hu3DShadowData;
|
||||
SHARED_SYM extern Mtx Hu3DCameraMtx;
|
||||
SHARED_SYM extern Mtx Hu3DCameraMtxXPose;
|
||||
SHARED_SYM extern LightData Hu3DGlobalLight[0x8];
|
||||
extern s16 reflectMapNo;
|
||||
extern AnimData *toonAnim;
|
||||
extern s16 Hu3DShadowCamBit;
|
||||
extern s32 Hu3DShadowF;
|
||||
extern s32 shadowModelDrawF;
|
||||
extern s16 Hu3DCameraNo;
|
||||
SHARED_SYM extern s16 Hu3DShadowCamBit;
|
||||
SHARED_SYM extern s32 Hu3DShadowF;
|
||||
SHARED_SYM extern s32 shadowModelDrawF;
|
||||
SHARED_SYM extern s16 Hu3DCameraNo;
|
||||
extern s16 Hu3DCameraBit;
|
||||
extern s16 Hu3DPauseF;
|
||||
extern GXColor BGColor;
|
||||
SHARED_SYM extern GXColor BGColor;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "game/hsfformat.h"
|
||||
#include "version.h"
|
||||
|
||||
#define Hu3DMotionCreateFile(data_id) (Hu3DMotionCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
||||
|
||||
|
|
@ -76,6 +77,6 @@ s16 Hu3DJointMotion(s16 arg0, void *arg1);
|
|||
void JointModel_Motion(s16 arg0, s16 arg1);
|
||||
void Hu3DMotionCalc(s16 arg0);
|
||||
|
||||
extern MotionData Hu3DMotion[256];
|
||||
SHARED_SYM extern MotionData Hu3DMotion[256];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
#define _GAME_INIT_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
extern GXRenderModeObj *RenderMode;
|
||||
SHARED_SYM extern GXRenderModeObj *RenderMode;
|
||||
extern OSHeapHandle currentHeapHandle;
|
||||
|
||||
extern void *DemoFrameBuffer1;
|
||||
|
|
@ -11,7 +12,7 @@ extern void *DemoFrameBuffer2;
|
|||
extern void *DemoCurrentBuffer;
|
||||
extern u32 minimumVcount;
|
||||
extern float minimumVcountf;
|
||||
extern u32 worstVcount;
|
||||
SHARED_SYM extern u32 worstVcount;
|
||||
|
||||
void HuSysInit(GXRenderModeObj *mode);
|
||||
void HuSysBeforeRender();
|
||||
|
|
|
|||
|
|
@ -2,15 +2,23 @@
|
|||
#define _GAME_JMP_H
|
||||
|
||||
#ifdef TARGET_PC
|
||||
#include <setjmp.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
#ifdef _M_X64
|
||||
#include "../extern/longjmp_win64/longjmp_win64.h"
|
||||
#define SETJMP setjmp_win64
|
||||
#define LONGJMP longjmp_win64
|
||||
#define JMPBUF JMP_BUF_WIN64
|
||||
#else
|
||||
#include <setjmp.h>
|
||||
#define SETJMP setjmp
|
||||
#define LONGJMP longjmp
|
||||
#define JMPBUF jmp_buf
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _JMP_BUF_DEFINED
|
||||
#if defined(_M_IX86) || defined(__i386__)
|
||||
#if defined(_M_IX86)
|
||||
typedef struct __JUMP_BUFFER {
|
||||
uint32_t Ebp;
|
||||
uint32_t Ebx;
|
||||
|
|
@ -24,41 +32,27 @@ typedef struct __JUMP_BUFFER {
|
|||
uint32_t UnwindFunc;
|
||||
uint32_t UnwindData[6];
|
||||
} _JUMP_BUFFER;
|
||||
#elif defined(_M_X64) || defined(__x86_64__)
|
||||
#ifndef SETJMP_FLOAT128
|
||||
// TODO do we need to align this?
|
||||
typedef struct _SETJMP_FLOAT128 {
|
||||
uint64_t Part[2];
|
||||
} SETJMP_FLOAT128;
|
||||
#endif
|
||||
typedef struct _JUMP_BUFFER {
|
||||
uint64_t Frame;
|
||||
#elif defined(__i386__)
|
||||
typedef struct __JUMP_BUFFER {
|
||||
uint32_t Bx;
|
||||
uint32_t Si;
|
||||
uint32_t Di;
|
||||
uint32_t Bp;
|
||||
uint32_t Sp;
|
||||
uint32_t Pc;
|
||||
} _JUMP_BUFFER;
|
||||
#elif defined(__x86_64__)
|
||||
typedef struct __JUMP_BUFFER {
|
||||
uint64_t Rbx;
|
||||
uint64_t Rsp;
|
||||
uint64_t Rbp;
|
||||
uint64_t Rsi;
|
||||
uint64_t Rdi;
|
||||
uint64_t R12;
|
||||
uint64_t R13;
|
||||
uint64_t R14;
|
||||
uint64_t R15;
|
||||
uint64_t Rip;
|
||||
uint32_t MxCsr;
|
||||
uint16_t FpCsr;
|
||||
uint16_t Spare;
|
||||
|
||||
SETJMP_FLOAT128 Xmm6;
|
||||
SETJMP_FLOAT128 Xmm7;
|
||||
SETJMP_FLOAT128 Xmm8;
|
||||
SETJMP_FLOAT128 Xmm9;
|
||||
SETJMP_FLOAT128 Xmm10;
|
||||
SETJMP_FLOAT128 Xmm11;
|
||||
SETJMP_FLOAT128 Xmm12;
|
||||
SETJMP_FLOAT128 Xmm13;
|
||||
SETJMP_FLOAT128 Xmm14;
|
||||
SETJMP_FLOAT128 Xmm15;
|
||||
uint64_t Rsp;
|
||||
uint64_t Pc;
|
||||
} _JUMP_BUFFER;
|
||||
#elif defined(_M_ARM) || defined(__arm__)
|
||||
#elif defined(_M_ARM)
|
||||
typedef struct _JUMP_BUFFER {
|
||||
uint32_t Frame;
|
||||
|
||||
|
|
@ -76,7 +70,7 @@ typedef struct _JUMP_BUFFER {
|
|||
uint32_t Fpscr;
|
||||
uint32_t long D[8]; // D8-D15 VFP/NEON regs
|
||||
} _JUMP_BUFFER;
|
||||
#elif defined(_M_ARM64) || defined(__aarch64__)
|
||||
#elif defined(_M_ARM64)
|
||||
typedef struct _JUMP_BUFFER {
|
||||
uint64_t Frame;
|
||||
uint64_t Reserved;
|
||||
|
|
@ -133,21 +127,27 @@ typedef struct _JUMP_BUFFER {
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_M_IX86) || defined(__i386__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Eip = (size_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Esp = (size_t)sp
|
||||
#elif defined(_M_X64) || defined(__x86_64__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Rip = (size_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Rsp = (size_t)sp
|
||||
#if defined(_M_IX86)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Eip = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Esp = (uintptr_t)sp
|
||||
#elif defined(__i386__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Pc = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Sp = (uintptr_t)sp
|
||||
#elif defined(__x86_64__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Pc = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Rsp = (uintptr_t)sp
|
||||
#elif defined(_M_X64)
|
||||
#define SETJMP_SET_IP(jump, func) (jump)->rip_getjmp = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) (jump)->rsp_getjmp = (uintptr_t)sp
|
||||
#elif defined(_M_ARM) || defined(__arm__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Pc = (size_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Sp = (size_t)sp
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Pc = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Sp = (uintptr_t)sp
|
||||
#elif defined(_M_ARM64) || defined(__aarch64__)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Lr = (size_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Sp = (size_t)sp
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->Lr = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->Sp = (uintptr_t)sp
|
||||
#elif defined(__riscv)
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->ra = (size_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->sp = (size_t)sp
|
||||
#define SETJMP_SET_IP(jump, func) ((_JUMP_BUFFER *)((jump)))->ra = (uintptr_t)func
|
||||
#define SETJMP_SET_SP(jump, sp) ((_JUMP_BUFFER *)((jump)))->sp = (uintptr_t)sp
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
|
@ -166,6 +166,7 @@ typedef struct jmp_buf {
|
|||
s32 gcsetjmp(jmp_buf *jump);
|
||||
s32 gclongjmp(jmp_buf *jump, s32 status);
|
||||
|
||||
#define JMPBUF jmp_buf
|
||||
#define SETJMP(jump) gcsetjmp(&(jump))
|
||||
#define LONGJMP(jump, status) gclongjmp(&(jump), (status))
|
||||
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ void CharRotInv(Mtx arg0, Mtx arg1, Vec *arg2, omObjData *arg3);
|
|||
|
||||
extern Mtx MapMT;
|
||||
extern Mtx MapMTR;
|
||||
extern float AddX;
|
||||
extern float AddZ;
|
||||
extern s32 nMap;
|
||||
extern s32 nChar;
|
||||
SHARED_SYM extern float AddX;
|
||||
SHARED_SYM extern float AddZ;
|
||||
SHARED_SYM extern s32 nMap;
|
||||
SHARED_SYM extern s32 nChar;
|
||||
extern s32 HitFaceCount;
|
||||
extern omObjData *MapObject[16];
|
||||
SHARED_SYM extern omObjData *MapObject[16];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -117,6 +117,6 @@ s32 MGSeqUpdateRecord(SeqWork *work);
|
|||
s32 MGSeqInitFlip(SeqWork *work, va_list params);
|
||||
s32 MGSeqUpdateFlip(SeqWork *work);
|
||||
|
||||
extern OverlayID mgSeqOvlPrev;
|
||||
SHARED_SYM extern OverlayID mgSeqOvlPrev;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/process.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct mg_info {
|
||||
u16 ovl;
|
||||
|
|
@ -22,20 +23,20 @@ void omGameSysInit(Process *objman);
|
|||
void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on);
|
||||
|
||||
|
||||
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 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 mgTicTacToeGrid[3][3];
|
||||
extern u8 mgIndexList[256];
|
||||
extern GameStat mgGameStatBackup;
|
||||
SHARED_SYM extern s16 mgTicTacToeGrid[3][3];
|
||||
SHARED_SYM extern u8 mgIndexList[256];
|
||||
SHARED_SYM extern GameStat mgGameStatBackup;
|
||||
|
||||
extern MgInfo mgInfoTbl[];
|
||||
SHARED_SYM extern MgInfo mgInfoTbl[];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _GAME_PRINTFUNC_H
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "version.h"
|
||||
|
||||
#define FONT_COLOR_BLACK 0
|
||||
#define FONT_COLOR_DARK_BLUE 1
|
||||
|
|
@ -29,7 +30,7 @@ void pfDrawFonts(void);
|
|||
extern BOOL saftyFrameF;
|
||||
extern u16 strlinecnt;
|
||||
extern u16 empstrline;
|
||||
extern int fontcolor;
|
||||
SHARED_SYM extern int fontcolor;
|
||||
extern u32 procfunc;
|
||||
|
||||
#endif
|
||||
|
|
@ -26,8 +26,8 @@ typedef struct process {
|
|||
u16 stat;
|
||||
u16 prio;
|
||||
s32 sleep_time;
|
||||
u32 base_sp;
|
||||
jmp_buf jump;
|
||||
uintptr_t base_sp;
|
||||
JMPBUF jump;
|
||||
void (*dtor)(void);
|
||||
void *user_data;
|
||||
} Process;
|
||||
|
|
|
|||
|
|
@ -24,13 +24,13 @@ typedef union save_buf_all {
|
|||
u8 ATTRIBUTE_ALIGN(32) buf[SAVE_BUF_SIZE];
|
||||
} SaveBufAll;
|
||||
|
||||
extern char *SaveFileNameTbl[];
|
||||
extern CARDFileInfo curFileInfo;
|
||||
extern SaveBufAll saveBuf;
|
||||
SHARED_SYM extern char *SaveFileNameTbl[];
|
||||
SHARED_SYM extern CARDFileInfo curFileInfo;
|
||||
SHARED_SYM extern SaveBufAll saveBuf;
|
||||
extern u64 SLSerialNo;
|
||||
extern s32 saveExecF;
|
||||
SHARED_SYM extern s32 saveExecF;
|
||||
extern u8 curBoxNo;
|
||||
extern s16 curSlotNo;
|
||||
SHARED_SYM extern s16 curSlotNo;
|
||||
|
||||
s32 SLFileOpen(char *fileName);
|
||||
s32 SLFileCreate(char *fileName, u32 size, void *addr);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
#ifndef HUSPR_USE_OLD_DEFS
|
||||
#if !defined(HUSPR_USE_OLD_DEFS) || !defined(__MWERKS__)
|
||||
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);
|
||||
#ifndef HUSPR_USE_OLD_DEFS
|
||||
#if !defined(HUSPR_USE_OLD_DEFS) || !defined(__MWERKS__)
|
||||
void HuSprTexLoad(AnimData *anim, s16 bmp, s16 slot, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXTexFilter filter);
|
||||
#endif
|
||||
void HuSprExecLayerSet(s16 draw_no, s16 layer);
|
||||
|
|
|
|||
|
|
@ -2,13 +2,49 @@
|
|||
#define _SRC_BYTESWAP_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
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;
|
||||
|
|
@ -145,7 +181,7 @@ typedef struct HsfObjectData32b {
|
|||
float baseMorph;
|
||||
float morphWeight[33];
|
||||
} mesh;
|
||||
struct hsf_object *replica;
|
||||
u32 replica;
|
||||
};
|
||||
|
||||
u32 face;
|
||||
|
|
@ -236,10 +272,10 @@ 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(void *src, AnimBankData *dest);
|
||||
void byteswap_animpatdata(void *src, AnimPatData *dest);
|
||||
void byteswap_animbmpdata(void *src, AnimBmpData *dest);
|
||||
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);
|
||||
|
||||
|
|
@ -263,6 +299,25 @@ 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_hsfmatrix(HsfMatrix *src);
|
||||
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);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
6
rel.map
Normal file
6
rel.map
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
global:
|
||||
ObjectSetup;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
|
@ -1,10 +1,17 @@
|
|||
#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) {
|
||||
|
|
@ -21,4 +28,5 @@ void _epilog(void) {
|
|||
(**dtors)();
|
||||
dtors++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include "game/wipe.h"
|
||||
#include "math.h"
|
||||
|
||||
#include "port/byteswap.h"
|
||||
|
||||
#include "data_num/title.h"
|
||||
|
||||
|
|
@ -125,10 +126,7 @@ void ObjectSetup(void)
|
|||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuWinInit(1);
|
||||
#endif
|
||||
BootTitleCreate();
|
||||
SystemInitF = 1;
|
||||
}
|
||||
|
|
@ -161,13 +159,10 @@ void ObjectSetup(void)
|
|||
WipeColorSet(255, 255, 255);
|
||||
if (!SystemInitF) {
|
||||
tick_prev = OSGetTick();
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
CharManInit();
|
||||
HuWindowInit();
|
||||
MGSeqInit();
|
||||
HuWinInit(1);
|
||||
#endif
|
||||
BootTitleCreate();
|
||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
|
|
@ -269,8 +264,6 @@ void ObjectSetup(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
skip_wait = FALSE;
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
while (!HuTHPEndCheck()) {
|
||||
UpdateDemoMess();
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||
|
|
@ -279,21 +272,14 @@ void ObjectSetup(void)
|
|||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
#endif
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuWinKill(demoWinId);
|
||||
HuTHPClose();
|
||||
#endif
|
||||
HuPrcVSleep();
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuSprGrpKill(group_thp);
|
||||
#endif
|
||||
if (!skip_wait) {
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
|
|
@ -346,16 +332,10 @@ void ObjectSetup(void)
|
|||
int i;
|
||||
for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) {
|
||||
if (frame == demoMessTimeTbl[i * 2]) {
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
|
||||
#endif
|
||||
}
|
||||
if (frame == demoMessTimeTbl[(i * 2) + 1]) {
|
||||
#ifdef __MWERKS__
|
||||
// TODO PC
|
||||
HuWinHomeClear(demoWinId);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@
|
|||
#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 };
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@
|
|||
|
||||
#include "REL/m401Dll.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
extern s32 rand8(void);
|
||||
#endif
|
||||
|
||||
struct Bss13EData {
|
||||
s16 unk0;
|
||||
s16 unk2[3];
|
||||
|
|
@ -43,7 +47,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->near, camera->far);
|
||||
MTXPerspective(proj, camera->fov, camera->aspect, camera->nnear, camera->ffar);
|
||||
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];
|
||||
|
|
@ -319,7 +323,6 @@ 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;
|
||||
|
|
@ -564,7 +567,6 @@ 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;
|
||||
|
|
|
|||
|
|
@ -682,7 +682,9 @@ 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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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->near, var_r30->far);
|
||||
Hu3DShadowCreate(45.0f, var_r30->nnear, var_r30->ffar);
|
||||
Hu3DShadowTPLvlSet(0.625f);
|
||||
Hu3DShadowPosSet(&lbl_1_data_78C, &lbl_1_data_798, &lbl_1_data_77C);
|
||||
HuAudSndGrpSet(29);
|
||||
|
|
@ -471,7 +471,12 @@ 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:
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/hsfdraw.h"
|
||||
#include <game/hsfex.h>
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/memory.h"
|
||||
|
|
@ -23,6 +24,11 @@
|
|||
#include "dolphin.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/audio.h"
|
||||
#endif
|
||||
|
||||
#undef ABS
|
||||
#define ABS(x) ((0 > (x)) ? -(x) : (x))
|
||||
|
||||
|
|
@ -1277,7 +1283,9 @@ 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 };
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@
|
|||
|
||||
#include "REL/m406Dll.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include <game/frand.h>
|
||||
#endif
|
||||
|
||||
typedef struct UnkM406Struct {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
|
|
@ -222,7 +226,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);
|
||||
|
||||
extern u32 GlobalCounter;
|
||||
SHARED_SYM extern u32 GlobalCounter;
|
||||
|
||||
Vec lbl_1_data_F0[0x46] = {
|
||||
{ -495.876f, 50.005f, -0.0f },
|
||||
|
|
@ -455,7 +459,7 @@ UnkM406Struct5 lbl_1_bss_48;
|
|||
Vec lbl_1_bss_3C;
|
||||
s32 lbl_1_bss_30[3];
|
||||
|
||||
extern LightData Hu3DLocalLight[0x20];
|
||||
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
|
||||
|
||||
omObjData *fn_1_2308(Process *arg0)
|
||||
{
|
||||
|
|
@ -1250,7 +1254,11 @@ 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) {
|
||||
|
|
@ -2946,13 +2954,13 @@ 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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, 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, 0x44);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
if (HmfInverseMtxF3X3(arg1, sp128) == 0) {
|
||||
MTXIdentity(sp128);
|
||||
}
|
||||
|
|
@ -3162,10 +3170,10 @@ 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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, 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, 0x44);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(GXColor), 0x44);
|
||||
if (HmfInverseMtxF3X3(arg1, sp9C) == 0) {
|
||||
MTXIdentity(sp9C);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ ObjFuncs lbl_1_data_258[] = {
|
|||
|
||||
void fn_1_2354(Process *arg0)
|
||||
{
|
||||
Process *sp8;
|
||||
u32 i;
|
||||
u32 j;
|
||||
|
||||
|
|
@ -123,7 +122,7 @@ void fn_1_2564(void)
|
|||
|
||||
void fn_1_25C0(void)
|
||||
{
|
||||
u32 i, j;
|
||||
u32 i;
|
||||
|
||||
lbl_1_bss_38 = 0;
|
||||
|
||||
|
|
@ -371,7 +370,7 @@ void fn_1_31F8(omObjData *arg0)
|
|||
}
|
||||
}
|
||||
|
||||
void fn_1_3360(omObjData *) { }
|
||||
void fn_1_3360(omObjData *arg0) { }
|
||||
|
||||
void fn_1_3364(omObjData *arg0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1042,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, sizeof(HsfVector3f));
|
||||
GXSETARRAY(GX_VA_POS, temp_r30->data.vertex->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), sizeof(HsfVector3f));
|
||||
if (temp_r25 & 0x2) {
|
||||
GXSetVtxDesc(GX_VA_NBT, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8);
|
||||
|
|
@ -1050,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, sizeof(HsfVector3f));
|
||||
GXSETARRAY(GX_VA_NRM, temp_r30->data.normal->data, temp_r30->data.vertex->count * sizeof(HsfVector3f), 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, sizeof(HsfVector2f));
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r30->data.st->data, temp_r30->data.vertex->count * sizeof(HsfVector2f), 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, sizeof(GXColor));
|
||||
GXSETARRAY(GX_VA_CLR0, arg3, arg0->unk4->data.color->count * sizeof(GXColor), sizeof(GXColor));
|
||||
}
|
||||
GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1);
|
||||
GXSetZCompLoc(GX_FALSE);
|
||||
|
|
@ -1150,7 +1150,7 @@ void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3)
|
|||
GXSetTevColor(reg, color_var); \
|
||||
}
|
||||
|
||||
extern u32 texMtxTbl[];
|
||||
SHARED_SYM extern u32 texMtxTbl[];
|
||||
|
||||
void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@
|
|||
|
||||
void fn_1_BF88(s16 arg0, s16 arg1)
|
||||
{
|
||||
s32 var_r31;
|
||||
s32 var_r31_2;
|
||||
s32 i;
|
||||
unkStruct8 *var_r29;
|
||||
unkStruct9Sub *var_r30;
|
||||
|
||||
|
|
@ -20,11 +19,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 (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) {
|
||||
for (i = 0; i < arg0; i++, var_r29++) {
|
||||
var_r29->unk8 = 0;
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) {
|
||||
for (i = 0; i < arg1; i++, var_r30++) {
|
||||
var_r30->unk6 = 0;
|
||||
var_r30->unk8 = 0;
|
||||
}
|
||||
|
|
@ -48,7 +47,7 @@ void fn_1_C0C0(void)
|
|||
Hu3DModelKill(lbl_1_bss_F0.unk4);
|
||||
}
|
||||
|
||||
extern u8 texMtxTbl[];
|
||||
SHARED_SYM extern u8 texMtxTbl[];
|
||||
|
||||
void fn_1_C164(unkStruct8 *arg0)
|
||||
{
|
||||
|
|
@ -214,18 +213,18 @@ 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, 12);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk40, sizeof(Vec[4]), 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->unk44, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, var_r31->unk44, sizeof(GXColor[4]), sizeof(GXColor));
|
||||
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, 8);
|
||||
GXSETARRAY(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, sizeof(HsfVector2f[4]), sizeof(HsfVector2f));
|
||||
}
|
||||
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, 12);
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec));
|
||||
GXCallDisplayList(var_r31->unk3C, var_r31->unk38);
|
||||
}
|
||||
}
|
||||
|
|
@ -745,7 +744,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, 0x30, MEMORY_DEFAULT_NUM);
|
||||
var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct11), MEMORY_DEFAULT_NUM);
|
||||
|
||||
for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) {
|
||||
var_r29->unk0.x = (-0.5f * temp_f31);
|
||||
|
|
|
|||
|
|
@ -212,12 +212,7 @@ void fn_1_DDC(omObjData *object)
|
|||
|
||||
void fn_1_F70(omObjData *object)
|
||||
{
|
||||
s16 *sp8;
|
||||
s16 temp_r3;
|
||||
s16 temp_r3_2;
|
||||
s32 var_r31;
|
||||
|
||||
sp8 = (s16 *)object->data;
|
||||
s16 *sp8 = (s16 *)object->data;
|
||||
switch (fn_1_2454(7)) {
|
||||
case 1:
|
||||
if (lbl_1_bss_6 == 0) {
|
||||
|
|
@ -225,10 +220,11 @@ 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 (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
omVibrate(var_r31, 0xC8, 6, 6);
|
||||
for (i = 0; i < 4; i++) {
|
||||
omVibrate(i, 0xC8, 6, 6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -382,13 +378,7 @@ s8 fn_1_10E8(omObjData *object)
|
|||
|
||||
s8 fn_1_1B74(omObjData *object)
|
||||
{
|
||||
f32 temp_f30;
|
||||
f32 temp_f31;
|
||||
s16 temp_r27;
|
||||
s32 temp_r28;
|
||||
unkStruct4 *temp_r30;
|
||||
|
||||
temp_r30 = (unkStruct4 *)object->data;
|
||||
unkStruct4 *temp_r30 = object->data;
|
||||
switch (lbl_1_bss_8) {
|
||||
case 0:
|
||||
temp_r30->unk2 = MGSeqCreate(3, 1);
|
||||
|
|
@ -440,14 +430,12 @@ 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;
|
||||
|
||||
temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]];
|
||||
ModelData *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) {
|
||||
|
|
@ -584,10 +572,6 @@ 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;
|
||||
|
|
@ -597,8 +581,6 @@ 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)) {
|
||||
|
|
@ -991,7 +973,6 @@ 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;
|
||||
|
|
@ -1179,7 +1160,6 @@ 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;
|
||||
|
|
@ -1377,13 +1357,13 @@ 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, 12);
|
||||
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, 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, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
fn_1_40A4(arg1, sp128);
|
||||
MTXReorder(sp128, spF8);
|
||||
if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) {
|
||||
|
|
|
|||
|
|
@ -174,17 +174,11 @@ 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;
|
||||
|
|
@ -379,23 +373,15 @@ 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;
|
||||
|
||||
temp_r31 = (unkStruct7 *)arg0->data;
|
||||
sp10 = arg0->model[0];
|
||||
sp8 = temp_r31->unk1C;
|
||||
unkStruct7 *temp_r31 = (unkStruct7 *)arg0->data;
|
||||
s32 sp10 = arg0->model[0];
|
||||
s16 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;
|
||||
|
|
@ -1023,10 +1009,8 @@ 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;
|
||||
|
|
@ -1080,8 +1064,6 @@ 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) {
|
||||
|
|
|
|||
|
|
@ -535,7 +535,6 @@ 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;
|
||||
|
|
@ -777,19 +776,6 @@ 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) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
#include "REL/m410Dll.h"
|
||||
|
||||
#include <game/audio.h>
|
||||
|
||||
Process *lbl_1_bss_28;
|
||||
omObjData *lbl_1_bss_24;
|
||||
omObjData *lbl_1_bss_20;
|
||||
|
|
@ -223,11 +225,7 @@ void fn_1_DEC(omObjData *object)
|
|||
|
||||
void fn_1_FF0(omObjData *object)
|
||||
{
|
||||
void *var_r31;
|
||||
UnkM410Struct *var_r29;
|
||||
void *var_r28;
|
||||
|
||||
var_r29 = object->data;
|
||||
UnkM410Struct *var_r29 = object->data;
|
||||
|
||||
fn_1_5A8(object);
|
||||
switch (var_r29->unk_14) {
|
||||
|
|
@ -265,11 +263,8 @@ void fn_1_FF0(omObjData *object)
|
|||
|
||||
void fn_1_139C(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r29;
|
||||
s32 var_r27;
|
||||
|
||||
var_r29 = object->data;
|
||||
var_r27 = 0;
|
||||
UnkM410Struct *var_r29 = object->data;
|
||||
s32 var_r27 = 0;
|
||||
fn_1_5A8(object);
|
||||
|
||||
if (!--var_r29->unk_20) {
|
||||
|
|
@ -470,9 +465,6 @@ 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;
|
||||
|
|
|
|||
|
|
@ -259,14 +259,8 @@ void fn_1_8414(omObjData *object)
|
|||
|
||||
void fn_1_8678(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
UnkM410Struct5 *var_r31;
|
||||
s32 var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = 0;
|
||||
UnkM410Struct5 *var_r31 = object->data;
|
||||
s32 var_r29 = 0;
|
||||
var_r31->unk_10 = 0;
|
||||
if (fn_1_281C() == 2) {
|
||||
var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx];
|
||||
|
|
@ -465,8 +459,6 @@ void fn_1_9040(omObjData *object)
|
|||
Mtx sp38;
|
||||
Vec sp2C;
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
|
@ -475,18 +467,11 @@ 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);
|
||||
|
|
@ -1117,9 +1102,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, 12);
|
||||
GXSetArray(GX_VA_CLR0, var_r30->unk_120.unk_E40, 4);
|
||||
GXSetArray(GX_VA_TEX0, var_r30->unk_120.unk_940, 8);
|
||||
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));
|
||||
var_r31 = var_r30->unk_120.unk_00;
|
||||
|
||||
for (var_r29 = 0; var_r29 < 16; var_r29++, var_r31++) {
|
||||
|
|
|
|||
|
|
@ -377,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->near, var_r31->far);
|
||||
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar);
|
||||
GXSetProjection(sp64, GX_PERSPECTIVE);
|
||||
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, 640, 480);
|
||||
|
|
|
|||
|
|
@ -569,8 +569,6 @@ void fn_1_2064(void)
|
|||
Vec sp28;
|
||||
Vec sp1C;
|
||||
Vec sp10;
|
||||
f32 spC;
|
||||
f32 sp8;
|
||||
Process *temp_r26;
|
||||
s32 var_r30;
|
||||
unkStruct *temp_r28;
|
||||
|
|
@ -701,10 +699,6 @@ 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);
|
||||
|
|
@ -922,18 +916,11 @@ 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;
|
||||
|
|
@ -1269,9 +1256,6 @@ void fn_1_5838(unkStruct3 *arg0)
|
|||
Vec spA8;
|
||||
Vec sp9C;
|
||||
Vec sp90;
|
||||
Vec sp84;
|
||||
Vec sp78;
|
||||
Vec sp6C;
|
||||
s32 sp68;
|
||||
f32 sp64;
|
||||
f32 sp60;
|
||||
|
|
@ -1593,13 +1577,6 @@ 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;
|
||||
|
|
@ -2020,8 +1997,6 @@ 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;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
#include "game/hsfex.h"
|
||||
#endif
|
||||
|
||||
s32 rand8(void);
|
||||
extern s32 rand8(void);
|
||||
|
||||
typedef struct struct_bss_2A6C StructBss2A6C;
|
||||
|
||||
|
|
@ -2011,7 +2011,11 @@ 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);
|
||||
|
|
|
|||
|
|
@ -421,8 +421,11 @@ 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);
|
||||
DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29);
|
||||
#endif
|
||||
DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29);
|
||||
break;
|
||||
case 2:
|
||||
Hu3DModelShadowMapObjSet(object->model[0], "kyanbasu");
|
||||
|
|
|
|||
|
|
@ -241,19 +241,19 @@ 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, 12);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk40, 4 * sizeof(Vec), 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->unk44, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, var_r31->unk44, 4 * sizeof(GXColor), sizeof(GXColor));
|
||||
|
||||
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, 8);
|
||||
GXSETARRAY(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 4 * sizeof(HsfVector2f), 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, 12);
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk48, sizeof(Vec), sizeof(Vec));
|
||||
GXCallDisplayList(var_r31->unk3C, var_r31->unk38);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,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, 1080 * sizeof(GXColor), 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_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);
|
||||
|
|
@ -856,10 +856,10 @@ 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], 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);
|
||||
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));
|
||||
GXCallDisplayList(lbl_1_bss_178.unk_6E0[0], lbl_1_bss_178.unk_6E8[0]);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetTevDirect(GX_TEVSTAGE0);
|
||||
|
|
|
|||
|
|
@ -2857,7 +2857,9 @@ void fn_1_9F94(omObjData *object)
|
|||
object->func = fn_1_9BA4;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include "src/REL/executor.c"
|
||||
#endif
|
||||
|
||||
void fn_1_A1F0(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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], 0xC);
|
||||
GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4);
|
||||
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));
|
||||
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], 0xC);
|
||||
GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4);
|
||||
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));
|
||||
GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE);
|
||||
GXPosition1x8(0);
|
||||
GXPosition1x8(0);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#define frand7() (frand() & 0x7F)
|
||||
|
||||
extern u32 GlobalCounter;
|
||||
SHARED_SYM extern u32 GlobalCounter;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
|
|
@ -874,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, 12);
|
||||
GXSETARRAY(GX_VA_POS, lbl_1_data_29C, sizeof(lbl_1_data_29C), 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_30C, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, lbl_1_data_30C, sizeof(lbl_1_data_30C), 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_2CC, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, lbl_1_data_2CC, sizeof(lbl_1_data_2CC), sizeof(Vec2f));
|
||||
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, 8);
|
||||
GXSETARRAY(GX_VA_TEX1, lbl_1_data_2EC, sizeof(lbl_1_data_2EC), sizeof(Vec2f));
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
for (i = 0; i < 4; i++) {
|
||||
GXPosition1x16(i);
|
||||
|
|
@ -1255,8 +1255,8 @@ 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, sizeof(*temp_r31->unk14));
|
||||
GXSetArray(GX_VA_CLR0, temp_r31->unk1C, sizeof(*temp_r31->unk1C));
|
||||
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));
|
||||
GXCallDisplayList(temp_r31->unk38, temp_r31->unk34);
|
||||
}
|
||||
}
|
||||
|
|
@ -4471,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, 12);
|
||||
GXSetArray(GX_VA_CLR0, temp_r30->unk214, 4);
|
||||
GXSetArray(GX_VA_TEX0, temp_r30->unk210, 8);
|
||||
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));
|
||||
var_r31 = temp_r30->unk00;
|
||||
for (i = 0; i < 16; i++, var_r31++) {
|
||||
if (var_r31->unk00 == 0) {
|
||||
|
|
@ -4864,7 +4864,7 @@ void fn_1_10BC8(void)
|
|||
if (var_r31->fov <= 0.0f) {
|
||||
return;
|
||||
}
|
||||
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far);
|
||||
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->nnear, var_r31->ffar);
|
||||
GXSetProjection(sp64, GX_PERSPECTIVE);
|
||||
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, 640, 480);
|
||||
|
|
@ -5227,13 +5227,13 @@ 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, 12);
|
||||
GXSETARRAY(GX_VA_POS, temp_r31->unk40, temp_r31->unk26 * sizeof(Vec) * 4, 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_r31->unk3C->unk44, 76);
|
||||
GXSETARRAY(GX_VA_CLR0, &temp_r31->unk3C->unk44, sizeof(GXColor), 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r31->unk44, temp_r31->unk26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
GXCallDisplayList(temp_r31->unk48, temp_r31->unk34);
|
||||
if (shadowModelDrawF == 0) {
|
||||
if (!(temp_r31->unk21 & 2)) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include "REL/m425Dll.h"
|
||||
|
||||
extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h?
|
||||
SHARED_SYM extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h?
|
||||
|
||||
typedef struct M425DllWork {
|
||||
u8 unk_00;
|
||||
|
|
@ -1628,19 +1628,19 @@ 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_TEX_ST, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC);
|
||||
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));
|
||||
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_18, 4);
|
||||
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));
|
||||
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_RGBA6, 0);
|
||||
GXSetArray(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, 8);
|
||||
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));
|
||||
}
|
||||
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_NRM, var_r31->unk_1C, 0xC);
|
||||
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));
|
||||
GXCallDisplayList(var_r31->unk_10, var_r31->unk_0C);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
|
||||
#include "REL/m425Dll.h"
|
||||
|
||||
extern u32 GlobalCounter;
|
||||
extern LightData Hu3DLocalLight[0x20];
|
||||
SHARED_SYM extern u32 GlobalCounter;
|
||||
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
|
||||
|
||||
typedef struct M425DllUnkStruct4 {
|
||||
s16 unk_00;
|
||||
|
|
@ -431,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 * 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_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_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 * 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_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_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++) {
|
||||
|
|
@ -2135,16 +2135,16 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
|
|||
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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), 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_188, 0xC);
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), 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_23A, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor));
|
||||
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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f));
|
||||
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) {
|
||||
GXCallDisplayList(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]);
|
||||
|
|
@ -2181,16 +2181,16 @@ 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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_180, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
|
||||
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, 0xC);
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk_188, var_r31->unk_110 * sizeof(Vec), sizeof(Vec));
|
||||
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, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_23A, var_r31->unk_110 * sizeof(GXColor), sizeof(GXColor));
|
||||
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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_184, var_r31->unk_110 * sizeof(Vec2f), sizeof(Vec2f));
|
||||
if (var_r31->unk_2A8[1] && (var_r31->unk_244[1] != 0)) {
|
||||
GXCallDisplayList(var_r31->unk_2A8[1], var_r31->unk_244[1]);
|
||||
}
|
||||
|
|
@ -2684,13 +2684,13 @@ 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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, sizeof(Vec));
|
||||
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, 0x44);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(var_r31->unk_3C->unk_3C), 0x44);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
|
||||
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));
|
||||
if (HmfInverseMtxF3X3(var_r21, sp128) == 0) {
|
||||
MTXIdentity(sp128);
|
||||
}
|
||||
|
|
@ -2748,8 +2748,8 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
|
|||
}
|
||||
}
|
||||
}
|
||||
DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * 0xC * 4);
|
||||
DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * 8 * 4);
|
||||
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();
|
||||
GXCallDisplayList(var_r31->unk_48, var_r31->unk_34);
|
||||
if (shadowModelDrawF == 0) {
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ void fn_1_DB8(omObjData *object);
|
|||
void fn_1_E18(omObjData *object);
|
||||
void fn_1_EB8(void);
|
||||
|
||||
extern u32 GlobalCounter;
|
||||
SHARED_SYM extern u32 GlobalCounter;
|
||||
|
||||
Vec lbl_1_data_0[4] = {
|
||||
{ -600.0f, 0.0f, -285.0f },
|
||||
|
|
@ -3035,13 +3035,13 @@ 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, 12);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_24 * sizeof(Vec) * 4, 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, 68);
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, sizeof(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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_24 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
if (!HmfInverseMtxF3X3(arg1, sp128)) {
|
||||
MTXIdentity(sp128);
|
||||
}
|
||||
|
|
@ -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, 12);
|
||||
GXSETARRAY(GX_VA_POS, lbl_1_data_27C, sizeof(lbl_1_data_27C), 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_2AC, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, lbl_1_data_2AC, sizeof(lbl_1_data_2AC), 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_2BC, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, lbl_1_data_2BC, sizeof(lbl_1_data_2BC), sizeof(Vec2f));
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
|
||||
GXPosition1x16(0);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#include "string.h"
|
||||
|
||||
extern s32 rand8(void);
|
||||
extern LightData Hu3DLocalLight[0x20];
|
||||
SHARED_SYM extern LightData Hu3DLocalLight[0x20];
|
||||
|
||||
#define FABS(value) ((value < 0) ? -(value) : (value))
|
||||
|
||||
|
|
@ -837,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 * sizeof(Vec), temp_r28->unk_48);
|
||||
var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * (3 * sizeof(GXColor)), 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);
|
||||
|
|
@ -1013,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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk4, var_r31->unk14 * sizeof(Vec), 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->unk8, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk8, var_r31->unk14 * sizeof(Vec2f), sizeof(Vec2f));
|
||||
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, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, var_r31->unk10, var_r31->unk14 * 3 * sizeof(GXColor), sizeof(GXColor));
|
||||
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);
|
||||
|
|
@ -1978,13 +1978,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(Vec));
|
||||
GXSETARRAY(GX_VA_POS, &var_r31->unkC, sizeof(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(Vec2f));
|
||||
GXSETARRAY(GX_VA_TEX0, &var_r31->unk3C, sizeof(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(Vec2f));
|
||||
GXSETARRAY(GX_VA_TEX1, var_r31->unk5C, sizeof(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);
|
||||
|
|
@ -2351,13 +2351,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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_2C, var_r31->unk_38 * sizeof(Vec), 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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk_34, var_r31->unk_38 * sizeof(Vec), 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_30, var_r31->unk_38 * sizeof(Vec2f), sizeof(Vec2f));
|
||||
if (var_r31->unk_00 == 0) {
|
||||
GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0);
|
||||
}
|
||||
|
|
@ -3015,13 +3015,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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4, 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_r30->unk_24, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, var_r30->unk_24, var_r30->unk_00 * sizeof(GXColor), sizeof(GXColor));
|
||||
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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
sp128[0][0] = matrix[0][0];
|
||||
sp128[1][0] = matrix[0][1];
|
||||
sp128[2][0] = matrix[0][2];
|
||||
|
|
@ -3057,20 +3057,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);
|
||||
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++);
|
||||
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++);
|
||||
}
|
||||
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);
|
||||
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++);
|
||||
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++);
|
||||
}
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -1666,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(Vec));
|
||||
GXSETARRAY(GX_VA_POS, lbl_1_data_260, sizeof(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(GXColor));
|
||||
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor));
|
||||
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D);
|
||||
for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) {
|
||||
GXPosition1x16(var_r29);
|
||||
|
|
@ -1678,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(Vec));
|
||||
GXSETARRAY(GX_VA_POS, &lbl_1_data_3BC, sizeof(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(GXColor));
|
||||
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_648, sizeof(lbl_1_data_648), sizeof(GXColor));
|
||||
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D);
|
||||
for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) {
|
||||
GXPosition1x16(var_r29);
|
||||
|
|
@ -1690,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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_POS, lbl_1_bss_584, lbl_1_bss_580 * sizeof(Vec), 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(GXColor));
|
||||
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_650, sizeof(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);
|
||||
|
|
|
|||
|
|
@ -239,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);
|
||||
|
||||
extern u32 GlobalCounter;
|
||||
SHARED_SYM extern u32 GlobalCounter;
|
||||
|
||||
Vec lbl_1_data_150[4] = {
|
||||
{ -140.0f, -400.0f, 0.0f },
|
||||
|
|
@ -2120,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++) {
|
||||
PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24);
|
||||
VECSubtract(&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;
|
||||
|
|
@ -2137,7 +2137,7 @@ void fn_1_FE98(M428DllPlayerUnk120Struct *arg0)
|
|||
}
|
||||
}
|
||||
|
||||
s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF };
|
||||
GXColor lbl_1_data_694[2] = { { 0xFF, 0xA0, 0x40, 0xFF }, { 0x00, 0xC8, 0xFF, 0xFF } };
|
||||
s16 lbl_1_data_69C[2] = { -0x10, 0x10 };
|
||||
s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 };
|
||||
Vec lbl_1_data_6A4[4] = {
|
||||
|
|
@ -2181,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(M428DllPlayerUnkStruct));
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(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], 4);
|
||||
GXSETARRAY(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], sizeof(GXColor), sizeof(GXColor));
|
||||
GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02);
|
||||
for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) {
|
||||
GXPosition1x16(var_r30);
|
||||
|
|
@ -3182,13 +3182,13 @@ 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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_POS, var_r31->unk_40, var_r31->unk_26 * sizeof(Vec) * 4, 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(M428DllPlayerUnkStruct2)); // bug?
|
||||
GXSETARRAY(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(GXColor), 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, sizeof(Vec2f));
|
||||
GXSETARRAY(GX_VA_TEX0, var_r31->unk_44, var_r31->unk_26 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
GXCallDisplayList(var_r31->unk_48, var_r31->unk_34);
|
||||
if (shadowModelDrawF == 0) {
|
||||
if ((var_r31->unk_21 & 2) == 0) {
|
||||
|
|
|
|||
|
|
@ -1323,7 +1323,9 @@ void fn_1_3DCC(Work8F68 *arg0)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include "src/REL/executor.c"
|
||||
#endif
|
||||
|
||||
void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1493,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, 0xC0, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM);
|
||||
memset(var_r31->unk_4C, 0, 0xC0);
|
||||
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec), MEMORY_DEFAULT_NUM);
|
||||
memset(var_r31->unk_50, 0, 0xC0);
|
||||
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x80, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(Vec2f), 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);
|
||||
|
|
@ -1639,14 +1639,14 @@ 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_TEX_ST, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_POS, var_r31->unk_50, 0xC);
|
||||
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));
|
||||
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_308, 4);
|
||||
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));
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_TEX0, var_r31->unk_54, 8);
|
||||
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));
|
||||
GXCallDisplayList(var_r31->unk_60, var_r31->unk_5C);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1276,8 +1276,8 @@ 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], sizeof(Vec));
|
||||
GXSetArray(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], sizeof(GXColor));
|
||||
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));
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXCallDisplayList(var_r31->unk_60, var_r31->unk_64);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
|
|
@ -1372,8 +1372,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(Vec));
|
||||
GXSetArray(GX_VA_CLR0, lbl_1_data_A8, sizeof(GXColor));
|
||||
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));
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
|
||||
GXPosition1x8(0);
|
||||
GXColor1x8(3);
|
||||
|
|
@ -1490,8 +1490,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, 0xC);
|
||||
GXSetArray(GX_VA_CLR0, lbl_1_data_A8, 4);
|
||||
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));
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8);
|
||||
for (var_r30 = 0; var_r30 < 8; var_r30++) {
|
||||
GXPosition1x8(var_r30);
|
||||
|
|
@ -1579,8 +1579,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, 0xC);
|
||||
GXSetArray(GX_VA_CLR0, lbl_1_data_168, 4);
|
||||
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));
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6);
|
||||
GXPosition1x8(0);
|
||||
GXColor1x8(0);
|
||||
|
|
|
|||
|
|
@ -2087,13 +2087,13 @@ 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, sizeof(Vec));
|
||||
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, 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, sizeof(GXColor));
|
||||
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), 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, sizeof(HsfVector2f));
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(HsfVector2f) * 4, sizeof(HsfVector2f));
|
||||
fn_1_79FC(mtx, sp128);
|
||||
MTXReorder(sp128, spF8);
|
||||
if (!omPauseChk() && temp_r30->unkC) {
|
||||
|
|
|
|||
|
|
@ -2238,7 +2238,9 @@ 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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ 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(Vec));
|
||||
GXSETARRAY(GX_VA_POS, lbl_1_bss_2868, sizeof(lbl_1_bss_2868), sizeof(Vec));
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4);
|
||||
GXSetNumIndStages(0);
|
||||
|
|
|
|||
|
|
@ -4252,7 +4252,9 @@ 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);
|
||||
|
|
|
|||
|
|
@ -3280,7 +3280,9 @@ void fn_1_10670(omObjData *arg0)
|
|||
arg0->func = fn_1_1026C;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include "src/REL/executor.c"
|
||||
#endif
|
||||
|
||||
void fn_1_108DC(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3443,7 +3443,9 @@ void fn_1_108A4(omObjData *arg0)
|
|||
arg0->func = fn_1_1043C;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include "src/REL/executor.c"
|
||||
#endif
|
||||
|
||||
void fn_1_10B30(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
#define HUSPR_USE_OLD_DEFS
|
||||
#include "game/sprite.h"
|
||||
|
||||
extern u8 texMtxTbl[];
|
||||
#include <ext_math.h>
|
||||
|
||||
SHARED_SYM extern u8 texMtxTbl[];
|
||||
|
||||
// PROTO
|
||||
void fn_1_E790(M438UnkStruct2 *);
|
||||
|
|
@ -264,19 +266,19 @@ void fn_1_E790(M438UnkStruct2 *arg0)
|
|||
}
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0);
|
||||
GXSetArray(GX_VA_POS, var_r31->unk_44, 12);
|
||||
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));
|
||||
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);
|
||||
GXSETARRAY(GX_VA_CLR0, var_r31->unk_48, 4 * sizeof(GXColor), sizeof(GXColor));
|
||||
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_RGBA6, 0);
|
||||
GXSetArray(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 8);
|
||||
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));
|
||||
}
|
||||
GXSetVtxDesc(GX_VA_NRM, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0U);
|
||||
GXSetArray(GX_VA_NRM, var_r31->unk_4C, 12);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U);
|
||||
GXSETARRAY(GX_VA_NRM, var_r31->unk_4C, sizeof(Vec), sizeof(Vec));
|
||||
GXCallDisplayList(var_r31->unk_40, var_r31->unk_3C);
|
||||
}
|
||||
}
|
||||
|
|
@ -593,15 +595,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 * 0x98, 0x10000000);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_3C = var_r30;
|
||||
var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000);
|
||||
var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_48 = 0;
|
||||
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);
|
||||
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), MEMORY_DEFAULT_NUM);
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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 * 0xC, var_r29->unk_48);
|
||||
arg2->unk18 = HuMemDirectMallocNum(HEAP_DATA, arg1->data.vertex->count * sizeof(Vec), var_r29->unk_48);
|
||||
fn_1_6554(arg2, arg1);
|
||||
fn_1_6B58(arg2, arg1);
|
||||
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);
|
||||
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);
|
||||
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;
|
||||
|
|
@ -1879,10 +1879,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, 12);
|
||||
GXSETARRAY(GX_VA_POS, temp_r31->unkC, temp_r31->unk8 * sizeof(Vec), sizeof(Vec));
|
||||
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, 12);
|
||||
GXSETARRAY(GX_VA_NRM, temp_r31->unk14, temp_r31->unk8 * sizeof(Vec), sizeof(Vec));
|
||||
lbl_1_bss_C = temp_r31->unk3C;
|
||||
if (temp_r31->unk28->unk34 == 0) {
|
||||
GXSetNumTevStages(1);
|
||||
|
|
@ -1897,7 +1897,7 @@ 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r31->unk1C, sizeof(Vec2f), sizeof(Vec2f)); // TODO PC
|
||||
temp_r29 = &temp_r31->unk2C[temp_r31->unk28->unk38[0]];
|
||||
fn_1_7D60(temp_r29->unk80, temp_r29, 0);
|
||||
lbl_1_bss_2C = 1;
|
||||
|
|
@ -2269,19 +2269,19 @@ s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4)
|
|||
var_r24->unk60 = -1;
|
||||
var_r24->unk62 = 0;
|
||||
}
|
||||
var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0xC * 4, temp_r28->unk_48);
|
||||
var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 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 * 4, temp_r28->unk_48);
|
||||
var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), 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 * 8 * 4, temp_r28->unk_48);
|
||||
var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, temp_r28->unk_48);
|
||||
var_r31->unk20 = var_r29;
|
||||
|
||||
for (var_r30 = 0; var_r30 < arg1; var_r30++) {
|
||||
|
|
@ -2458,13 +2458,13 @@ 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, 0xC);
|
||||
GXSETARRAY(GX_VA_POS, temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4, 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, 4);
|
||||
GXSETARRAY(GX_VA_CLR0, temp_r30->unk24, temp_r30->unk0 * sizeof(GXColor), 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, 8);
|
||||
GXSETARRAY(GX_VA_TEX0, temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4, sizeof(Vec2f));
|
||||
fn_1_9344(arg1, sp128);
|
||||
MTXReorder(sp128, spF8);
|
||||
if (((u8)omPauseChk() == 0) && (temp_r30->unkC)) {
|
||||
|
|
@ -2510,8 +2510,8 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1)
|
|||
}
|
||||
}
|
||||
}
|
||||
DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * 0xC * 4);
|
||||
DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * 8 * 4);
|
||||
DCFlushRangeNoSync(temp_r30->unk1C, temp_r30->unk0 * sizeof(Vec) * 4);
|
||||
DCFlushRangeNoSync(temp_r30->unk20, temp_r30->unk0 * sizeof(Vec2f) * 4);
|
||||
GXCallDisplayList(temp_r30->unk28, temp_r30->unk4);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,12 @@
|
|||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include <game/hsfex.h>
|
||||
#include <game/audio.h>
|
||||
#endif
|
||||
|
||||
#undef ABS
|
||||
#define ABS(x) ((0 > (x)) ? -(x) : (x))
|
||||
|
||||
|
|
@ -700,7 +706,9 @@ 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)
|
||||
{
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue