[WIP] Implemented GeoLayout loading and moved to otr every actor (#53)

* Fixed GeoLayout loading and implemented mario loading from otr

* Ported bobomb and coins

* Ported cannon barrel

* Ported blue_coin_switch

* Fixed collision loading

* Ported checkerboard_platform

* Ported most of common0 to otr

* Fixed amp on jp

* Fixed some wrong yamls

* Fixed faulty snow interpolation

* Bump LUS

* Extracted 99.99999% actors to be loaded from otr

* Removed unnessesary print and added o2r mod support

* Fixed headers

* Added us support into geolayout parser

* Fixed conflicts

* Removed done indicators

* Remove duplicated headers

* Added bbh, bitdw, bitfs, bits, bob and lll loaded from otr

* Bump torch

* Fixed linux compilation

* Pushed header generation

* Got compiling on Linux working. (#59)

* Added more data and hopefully fix more issues

* Updated libultraship

* bin dls and vtxs (#60)

* Fixed master volume

* Updated torch

* Renamed otr files

* Renamed otr en cmakelists

* Updated libultraship and torch

* Removed actors code

* [WIP] The big one that removes almost all hardcoded assets from levels and actors

* Updating cmake to match Starship

* Updated more references

* Updated cmake to add more targets

* Updated o2r name

* Removed unnecesary dma call

* Updated gitmodules

* Bump LUS, fixed cmake and fixed audio on windows

* Update torch and wdw

* Fixed some corrupted ptrs, cleaned up jp support and fixed bully

* Added USE_GBI_TRACE

* Fixed packaging.cmake and audio fixes

* Removed old LUS

* Updated torch and readded LUS

* More compilation issues

* Removed interpolation to use on the future the new system

* Bump libs

* Reimplemented skybox, and added synthesis overflow fix

* Removed prints to use SPDLOG

* This should had been on another branch but fuck it

* Added more interpolation stuff

* Fixed interpolation, fixed some random things and ported from GameInteractor to Lwyx's EventSystem

* Removed some FrameInterpolation changes

* Fixed gitignore and implemented PortEnhancements

* Fixed interpolation crashes, WIP implemented reset among other fixes

* Bump torch to fix paintings

* Moved log to be a trace

* Readded some frame tagging

* Fixed rumble

* Fixed skybox crashes

* Bump LUS

* Moved skybox and floats to float for better precision

* Moved to health change and created lives change event

* Fixed bubbles being broken

* Fixed lives event not being registered

* Fixed skybox crashes

* Initialized mixer variables

* Fixed some memory leaks

* Fixed trajectory being exported incorrectly

* Hopefully fixed us yamls

* Fixed remaining us issues

* Implemented o2r generation among some other things

---------

Co-authored-by: KiritoDv <KiritoDv>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
This commit is contained in:
Lywx
2026-01-07 01:37:43 -06:00
committed by GitHub
co-authored by KiritoDv <KiritoDv> sitton76 inspectredc
parent 51989c6061
commit 20674529ab
3103 changed files with 17481 additions and 385224 deletions
+7 -1
View File
@@ -49,6 +49,8 @@ build/*
*.mio0
*.z64
*.otr
*.sav
*.o2r
*.map
.assets-local.txt
@@ -87,4 +89,8 @@ code/
# Torch hash
torch.hash.yml
merge/
.vs/
.vs/
include/assets/*
modifications/
modding/
*.log
+3 -4
View File
@@ -1,7 +1,6 @@
[submodule "libultraship"]
path = libultraship
url = https://github.com/KiritoDv/libultraship
branch = version/pu
[submodule "Torch"]
path = Torch
url = https://github.com/HarbourMasters/Torch.git
[submodule "libultraship"]
path = libultraship
url = https://github.com/Kenix3/libultraship
+211 -126
View File
@@ -13,32 +13,28 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment ve
# Set the C++ standard and enable the MSVC parallel build option
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_C_STANDARD 11 CACHE STRING "The C standard to use")
#add_compile_options(-fsanitize=address)
#add_link_options(-fsanitize=address)
# add_compile_options(-fsanitize=address)
# add_link_options(-fsanitize=address)
# Add a custom module path to locate additional CMake modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
include(FindFontconfig)
set(YAML_CPP_STATIC_DEFINE ON)
add_compile_definitions(YAML_CPP_STATIC_DEFINE)
if (WIN32)
include(cmake/automate-vcpkg.cmake)
# Forced to use MSVC
set(MSVC ON)
if(MSVC)
set(VCPKG_TRIPLET x64-windows-static)
set(VCPKG_TARGET_TRIPLET x64-windows-static)
else()
set(VCPKG_TRIPLET x64-mingw-static)
set(VCPKG_TARGET_TRIPLET x64-mingw-static)
endif()
if(NOT CMAKE_BUILD_TYPE )
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
endif()
vcpkg_bootstrap()
vcpkg_install_packages(fontconfig sdl2 zlib bzip2 libzip libpng getopt dirent libusb pthread glew glfw3 nlohmann-json tinyxml2 spdlog)
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 glew glfw3 nlohmann-json tinyxml2 spdlog)
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME})
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endif()
if(NOT EXISTS ${CMAKE_BINARY_DIR}/config.yml)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "${CMAKE_BINARY_DIR}/config.yml")
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/assets/" "${CMAKE_BINARY_DIR}/assets/")
endif()
if (MSVC)
@@ -47,6 +43,16 @@ else()
set(CPP "${CMAKE_C_COMPILER}" "-E" "-P" "-Wno-trigraphs" "-x" "c")
endif()
if(IOS)
set(PLATFORM "OS64")
include(cmake/ios.toolchain.cmake)
add_compile_definitions(
PLATFORM_IOS=1
)
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "YOUR_TEAM_ID")
set(PROJECT_ID "dev.net64.game")
endif()
################################################################################
# Set target arch type if empty. Visual studio solution generator provides it.
################################################################################
@@ -65,6 +71,7 @@ endif()
# Set game compilation version
set(VERSION us)
set(USE_NETWORKING OFF)
set(SKIP_XCODE_VERSION_CHECK ON)
# Add compile definitions for the target
add_compile_definitions(
@@ -112,6 +119,7 @@ file(GLOB_RECURSE ALL_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"lib/src/guPerspectiveF.c"
"lib/src/guRotateF.c"
"lib/src/guScaleF.c"
"lib/src/guLookAtF.c"
"lib/src/guTranslateF.c"
"sound/*.c"
"src/audio/*.h"
@@ -149,7 +157,27 @@ list(FILTER ALL_FILES EXCLUDE REGEX "bin/eu/.*.c")
list(FILTER ALL_FILES EXCLUDE REGEX "src/game/main.c")
list(FILTER ALL_FILES EXCLUDE REGEX "src/pc/dlmalloc.c")
add_executable(${PROJECT_NAME} ${ALL_FILES} ${GENERATED_SOURCES})
if (CMAKE_SYSTEM_NAME STREQUAL "iOS")
set(IOS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/ios)
set(STORYBOARD_FILE ${IOS_DIR}/Launch.storyboard)
set(IMAGE_FILES ${IOS_DIR}/PoweredBy.png)
set(ICON_FILES ${IOS_DIR}/Icon.png)
list(APPEND ALL_FILES ${STORYBOARD_FILE} ${IMAGE_FILES} ${ICON_FILES})
add_executable(${PROJECT_NAME} ${ALL_FILES})
set_xcode_property(${PROJECT_NAME} PRODUCT_BUNDLE_IDENTIFIER ${PROJECT_ID} All)
set_target_properties(
${PROJECT_NAME}
PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST ${IOS_DIR}/plist.in
RESOURCE "${IMAGE_FILES};${STORYBOARD_FILE};${ICON_FILES}"
)
else()
add_executable(${PROJECT_NAME} ${ALL_FILES})
endif()
################################################################################
# MSVC runtime library
@@ -183,78 +211,36 @@ if (MSVC)
endif()
#==============================================================================#
# Libultraship Integration #
# Libultraship Integration #
#==============================================================================#
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include/libultraship
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/log
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/debug
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/menu
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/utils
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/utils/binarytools
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/config
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/resource
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/resource/type
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/resource/factory
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/audio
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/window
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/window/gui
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/config
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/public
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/public/libultra
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/public/bridge
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/extern
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/extern/tinyxml2
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/libultraship/Lib/
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/libultraship/Lib/libjpeg/include/
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/libultraship/Lib/spdlog/include/
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/U64/PR
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic
${SDL2_INCLUDE_DIRS}
${GLEW_INCLUDE_DIRS}
add_subdirectory(libultraship ${CMAKE_CURRENT_SOURCE_DIR}/libultraship)
add_dependencies(${PROJECT_NAME} libultraship)
target_link_libraries(${PROJECT_NAME} PRIVATE libultraship)
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include/libultraship
)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
"_DEBUG;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_DX11;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG"
">"
"INCLUDE_GAME_PRINTF;"
"UNICODE;"
"_UNICODE"
STORMLIB_NO_AUTO_LINK
"_CRT_SECURE_NO_WARNINGS;"
)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
"NOINCLUDE_GAME_PRINTF;"
"_DEBUG;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_OPENGL"
">"
"$<$<CONFIG:Release>:"
"NDEBUG;"
">"
"INCLUDE_GAME_PRINTF;"
"WIN32;"
"UNICODE;"
"_UNICODE"
STORMLIB_NO_AUTO_LINK
)
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
"_DEBUG;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_DX11;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG"
">"
"INCLUDE_GAME_PRINTF;"
"UNICODE;"
"_UNICODE;"
"_CRT_SECURE_NO_WARNINGS;"
"_SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS;"
)
add_compile_definitions(STORMLIB_NO_AUTO_LINK)
set(STORMLIB_NO_AUTO_LINK ON)
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
@@ -280,16 +266,32 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
"SPDLOG_ACTIVE_LEVEL=0;"
"_CONSOLE;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_OPENGL;"
"UNICODE;"
"_UNICODE"
)
endif()
add_subdirectory(libultraship ${CMAKE_CURRENT_SOURCE_DIR}/libultraship)
add_dependencies(${PROJECT_NAME} libultraship)
target_link_libraries(${PROJECT_NAME} PRIVATE libultraship)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<BOOL:${USE_NETWORKING}>:SDL2_net::SDL2_net-static>"
)
elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
-lglad
)
elseif(CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<CONFIG:Debug>:-Wl,--wrap=abort>"
)
target_include_directories(${PROJECT_NAME} PRIVATE
${DEVKITPRO}/portlibs/wiiu/include/
)
else()
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<BOOL:${USE_NETWORKING}>:SDL2_net::SDL2_net>"
)
endif()
if(USE_NETWORKING)
if(MSVC)
@@ -301,6 +303,30 @@ if(USE_NETWORKING)
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_NETWORKING)
endif()
option(USE_STANDALONE "Build as a standalone executable" OFF)
option(BUILD_STORMLIB "Build with StormLib support" OFF)
option(BUILD_SM64 "Build with Super Mario 64 support" OFF)
option(BUILD_MK64 "Build with Mario Kart 64 support" OFF)
option(BUILD_FZERO "Build with F-Zero X support" OFF)
add_subdirectory(Torch)
target_link_libraries(${PROJECT_NAME} PRIVATE torch "${ADDITIONAL_LIBRARY_DEPENDENCIES}")
if(CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch")
nx_generate_nacp(${PROJECT_NAME}.nacp
NAME "${PROJECT_NAME}"
AUTHOR "${PROJECT_TEAM}"
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
)
nx_create_nro(${PROJECT_NAME}
NACP ${PROJECT_NAME}.nacp
)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.nro DESTINATION . COMPONENT ${PROJECT_NAME})
endif()
################################################################################
# Compile and link options
################################################################################
@@ -324,6 +350,7 @@ if(MSVC)
${DEFAULT_CXX_EXCEPTION_HANDLING}
)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:/ZI;>)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Release>:/Zi;>)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
@@ -384,7 +411,35 @@ if(MSVC)
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wno-return-type
-Wno-unused-parameter
-Wno-unused-function
-Wno-unused-variable
-Wno-missing-field-initializers
-Wno-parentheses
-Wno-narrowing
-Wno-missing-braces
-Wno-int-conversion
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-incompatible-pointer-types
-fpermissive
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:
-Wno-c++11-narrowing
-Wno-deprecated-enum-enum-conversion
>
-pthread
)
target_link_options(${PROJECT_NAME} PRIVATE
-pthread
)
elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wno-return-type
@@ -399,32 +454,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-incompatible-pointer-types
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:
-Wno-c++11-narrowing
-Wno-deprecated-enum-enum-conversion
>
-pthread
)
target_link_options(${PROJECT_NAME} PRIVATE
-pthread
)
elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wno-return-type
-Wno-unused-parameter
-Wno-unused-function
-Wno-unused-variable
-Wno-missing-field-initializers
-Wno-parentheses
-Wno-narrowing
-Wno-missing-braces
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-incompatible-pointer-types
-fpermissive
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:
@@ -459,7 +489,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
)
else()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(CPU_OPTION -msse2 -mfpmath=sse)
set(CPU_OPTION -msse2 -mfpmath=sse)
endif()
target_compile_options(${PROJECT_NAME} PRIVATE
@@ -471,9 +501,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
-Wno-parentheses
-Wno-narrowing
-Wno-missing-braces
-Wno-int-conversion
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-incompatible-pointer-types
-fpermissive
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-enum-enum-conversion>
@@ -489,19 +521,72 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
endif()
include(ExternalProject)
ExternalProject_Add(Torch
PREFIX Torch
ExternalProject_Add(TorchExternal
PREFIX TorchExternal
SOURCE_DIR ${CMAKE_SOURCE_DIR}/Torch
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Torch
)
ExternalProject_Get_Property(Torch install_dir)
set(TORCH_EXECUTABLE ${install_dir}/src/Torch-build/$<CONFIGURATION>/torch)
ExternalProject_Get_Property(TorchExternal install_dir)
if (MSVC)
set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/$<CONFIGURATION>/torch)
else()
set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/torch)
endif()
add_custom_target(
ExtractAssets
DEPENDS Torch
DEPENDS TorchExternal
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${TORCH_EXECUTABLE} otr baserom.us.z64
COMMAND ${TORCH_EXECUTABLE} pack assets sm64.otr
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/smcube.otr" "${CMAKE_BINARY_DIR}/smcube.otr"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/sm64.otr" "${CMAKE_BINARY_DIR}/sm64.otr"
COMMAND ${TORCH_EXECUTABLE} o2r baserom.jp.z64
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/sm64.o2r" "${CMAKE_BINARY_DIR}/sm64.o2r"
)
add_custom_target(
ExtractHeaders
DEPENDS TorchExternal
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${TORCH_EXECUTABLE} header -o baserom.jp.z64
)
add_custom_target(
GeneratePortOTR
DEPENDS TorchExternal
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${TORCH_EXECUTABLE} pack port ghostship.o2r o2r
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/ghostship.o2r" "${CMAKE_BINARY_DIR}/ghostship.o2r"
)
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_custom_target(CreateOSXIcons
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset
COMMAND sips -z 16 16 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_16x16.png
COMMAND sips -z 32 32 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_16x16@2x.png
COMMAND sips -z 32 32 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_32x32.png
COMMAND sips -z 64 64 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_32x32@2x.png
COMMAND sips -z 128 128 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_128x128.png
COMMAND sips -z 256 256 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_128x128@2x.png
COMMAND sips -z 256 256 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_256x256.png
COMMAND sips -z 512 512 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_256x256@2x.png
COMMAND sips -z 512 512 logo.png --out ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_512x512.png
COMMAND cp logo.png ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset/icon_512x512@2x.png
COMMAND iconutil -c icns -o ${CMAKE_BINARY_DIR}/macosx/ghostship.icns ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "Creating OSX icons ..."
)
add_dependencies(${PROJECT_NAME} CreateOSXIcons)
configure_file("${CMAKE_SOURCE_DIR}/Info.plist" "${CMAKE_BINARY_DIR}/Info.plist" COPYONLY)
endif()
set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE_TERMINAL YES)
set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.desktop")
set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_ICON_FILE "${CMAKE_SOURCE_DIR}/logo.png")
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(CPACK_GENERATOR "External")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows|NintendoSwitch|CafeOS")
set(CPACK_GENERATOR "ZIP")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(CPACK_GENERATOR "Bundle")
endif()
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_SOURCE_DIR}/cmake/configure-packaging.cmake)
include(cmake/packaging.cmake)
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Ghostship
Exec=Ghostship
Terminal=false
Icon=logo
Type=Application
Categories=Game;
X-AppImage-Integrate=false
+42
View File
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleName</key>
<string>Ghostship</string>
<key>CFBundleExecutable</key>
<string>Ghostship</string>
<key>CFBundleGetInfoString</key>
<string>0.1.0</string>
<key>CFBundleIconFile</key>
<string>Ghostship.icns</string>
<key>CFBundleIdentifier</key>
<string>com.ghostship</string>
<key>CFBundleDocumentTypes</key>
<array>
</array>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.1.0</string>
<key>CFBundleSignature</key>
<string>ZMM</string>
<key>CFBundleVersion</key>
<string>0.1.0</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2024 HarbourMasters.</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>LSArchitecturePriority</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
</dict>
</plist>
+214
View File
@@ -0,0 +1,214 @@
# =============================================================================
# Cool Makefile for CMake Projects
# =============================================================================
#
# A Makefile that makes configuring and building CMake projects really simple.
# =============================================================================
# Functions
# =============================================================================
define to_lower_case
$(shell echo $(1) | tr '[:upper:]' '[:lower:]')
endef
define find_in_list
$(shell resolved_value=$$(for candidate in $(2); do \
if [ "$(call to_lower_case,$(1))" = "$$(echo $$candidate | tr '[:upper:]' '[:lower:]')" ]; then \
echo $$candidate; \
fi; \
done); \
echo "$${resolved_value:-$(1)}";)
endef
define exists_in_list
$(shell resolved_value=$$(for candidate in $(2); do \
if [ "$(call to_lower_case,$(1))" = "$$(echo $$candidate | tr '[:upper:]' '[:lower:]')" ]; then \
echo true; \
fi; \
done); \
echo "$${resolved_value:-false}";)
endef
# =============================================================================
# Variables
# =============================================================================
project_name:=?
project_lang:=?
type:=debug
generator:=$(shell if [ -x "$$(which ninja)" ]; then echo "Ninja"; else echo "Unix Makefiles"; fi)
build_path:=$(shell if [ "$(call to_lower_case,$(generator))" = "xcode" ]; then echo "xcode-build"; else echo "cmake-build-$(call to_lower_case,$(type))"; fi)
# =============================================================================
# Constants
# =============================================================================
override cores:=$(shell if [ "$$(uname)" = "Darwin" ]; then sysctl -n hw.ncpu; elif [ "$$(uname)" = "Linux" ]; then nproc --all; else echo 1; fi)
override valid_generators:="Unix Makefiles" "Ninja" "Xcode"
override valid_types:=Release Debug RelWithDebInfo MinSizeRel
override debug_types:=Debug RelWithDebInfo
override cmake_build_type_arg:=$(call find_in_list,$(type),$(valid_types))
override cmake_generator_arg:=$(call find_in_list,$(generator),$(valid_generators))
override is_debug:=$(call exists_in_list,$(type),$(debug_types))
# =============================================================================
# Utility targets
# =============================================================================
# All targets are phony in this Makefile
.PHONY : $(shell egrep "^[A-Za-z0-9_-]+\:([^\=]|$$)" $(lastword $(MAKEFILE_LIST)) | sed -E 's/(.*):.*/\1/g')
# Default target is build
all: build
#: Displays this message
help:
@echo "Usage:"
@echo
@echo " make type=<build type> generator=<generator> <target>"
@echo
@echo "Targets:"
@egrep -B1 "^[A-Za-z0-9_-]+\:([^\=]|$$)" $(lastword $(MAKEFILE_LIST)) \
| grep -v -- -- \
| sed 'N;s/\n/###/' \
| sed -n 's/^#: \(.*\)###\(.*\):.*/ \2###\1/p' \
| column -t -s '###'
#: List available build types
list-types:
@for type in $(valid_types); do echo $$type; done
#: List available generators
list-generators:
@for generator in $(valid_generators); do echo $$generator; done;
validate-type:
ifneq ($(cmake_build_type_arg),$(filter $(cmake_build_type_arg),$(valid_types)))
@echo "Invalid build type: $(cmake_build_type_arg). Valid types are:" >&2;
@for type in $(valid_types); do echo - $$type >&2; done
@exit 1;
else ifeq ($(strip $(cmake_build_type_arg)),)
@echo "Empty build type. Valid types are:" >&2;
@for type in $(valid_types); do echo - $$type >&2; done
@exit 1;
else
@:
endif
validate-generator:
ifneq ("$(cmake_generator_arg)",$(filter "$(cmake_generator_arg)",$(valid_generators)))
@echo "Unsupported generator: $(cmake_generator_arg). Valid generators are:" >&2;
@for generator in $(valid_generators); do echo - $$generator >&2; done;
@exit 1;
else ifeq ($(strip $(cmake_generator_arg)),)
@echo "Empty CMake generator. Valid generators are:" >&2;
@for generator in $(valid_generators); do echo - $$generator >&2; done;
@exit 1;
else
@:
endif
# =============================================================================
# Build targets
# =============================================================================
#: Delete the build path for the currently selected type and generator
clean: validate-type
@rm -rf "./$(build_path)";
#: Delete all build paths for all types and generators
clean-all:
@for generator in $(valid_generators); do \
for type in $(valid_types); do \
$(MAKE) generator="$$generator" type=$$type clean; \
done; \
done;
#: Initialise an empty CMake project
init:
@if [ ! -f CMakeLists.txt ]; then \
project_name=$(project_name); \
if [ "$$project_name" = "?" ]; then \
read -p "Enter project name: " project_name; \
fi; \
project_lang=$(project_lang); \
if [ "$$project_lang" = "?" ]; then \
read -p "Enter project language (c|cpp): " project_lang; \
fi; \
project_lang=$$(echo $$project_lang | tr '[:upper:]' '[:lower:]' | sed -E -e 's/^(c\+\+|cxx)$$/cpp/'); \
if [ "$$project_lang" = "c" ]; then \
echo "#include \"stdio.h\"\n\nint main() {\n\tprintf(\"%s\", \"hello, world!\");\n\treturn 0;\n}\n" >$$project_name.$$project_lang; \
elif [ "$$project_lang" = "cpp" ]; then \
echo "#include <iostream>\n\nint main() {\n\tstd::cout << \"hello, world!\" << std::endl;\n\treturn 0;\n}\n" >$$project_name.$$project_lang; \
else \
echo "Unsupported language type" >&2; \
exit 1; \
fi; \
echo "project($$project_name)\n\nadd_executable($$project_name $$project_name.$$project_lang)\n\n" >CMakeLists.txt; \
fi;
#: Configure the project for the selected type and generator
configure: validate-type validate-generator init
ifeq ($(cmake_generator_arg), Xcode)
@cmake -S . -B $(build_path) \
-G "$(cmake_generator_arg)";
else
@cmake -S . -B $(build_path) \
-DCMAKE_BUILD_TYPE=$(cmake_build_type_arg) \
-G "$(cmake_generator_arg)";
endif
#: Build the project for the selected type and generator
build: configure
ifeq ($(cmake_generator_arg), Xcode)
@cmake --build $(build_path) --config $(cmake_build_type_arg);
else
@cmake --build $(build_path) -- -j$(cores);
endif
#: Install the project for the selected type and generator
install: build
ifeq ($(cmake_generator_arg), Xcode)
@cmake --install $(build_path) --config $(cmake_build_type_arg);
else
@cmake --install $(build_path);
endif
#: Run the application
run: build
@app_name=$$(cmake -S . -B "$(build_path)" --trace 2>&1 \
| egrep -i add_executable \
| sort -r \
| head -n 1 \
| sed -E 's/.*add_executable.[[:space:]]*([A-Za-z0-9\\"_\.+-]+)[[:space:]].*/\1/'); \
if [ "$(call to_lower_case,$(generator))" = "xcode" ]; then \
cd $(build_path)/$(cmake_build_type_arg) && ./$$app_name; \
else \
cd $(build_path) && ./$$app_name; \
fi
@echo "\nProcessed finished with exit code $$?"
# =============================================================================
# Makefile debugging targets
# =============================================================================
list-variables:
@echo $(foreach \
v, \
$(.VARIABLES), \
$(if \
$(filter file, $(origin $(v))), \
\\n$(v)=$($(v)), \
$(if \
$(filter command line, $(origin $(v))), \
\\n$(v)=$($(v)), \
$(if \
$(filter override, $(origin $(v))), \
\\n$(v)=$($(v)))))) | egrep -v '^$$' | egrep -v '=\s*$$' | sort
list-targets:
@egrep "^[A-Za-z0-9_-]+\:([^\=]|$$)" $(lastword $(MAKEFILE_LIST)) | sed -E 's/(.*):.*/\1/g' | sort
+1 -1
Submodule Torch updated: 84266f9049...b5ed22ae83
-51
View File
@@ -1,51 +0,0 @@
static const s16 dAmpAnimValue[] = {
0x0000, 0x0000, 0x0D79, 0x1AF2, 0x286B, 0x35E4, 0x435D, 0x50D6,
0x5E50, 0x6BC9, 0x7942, 0x86BE, 0x9437, 0xA1B0, 0xAF2A, 0xBCA3,
0xCA1C, 0xD795, 0xE50E, 0xF287, 0x1872, 0x0000, 0x1AF2, 0x35E4,
0x50D6, 0x6BC9, 0x86BE, 0xA1B0, 0xBCA3, 0xD795, 0xF287, 0x0D79,
0x286B, 0x435D, 0x5E50, 0x7942, 0x9437, 0xAF2A, 0xCA1C, 0xE50E,
0x0000, 0x1AF2, 0x35E4, 0x50D6, 0x6BC9, 0x86BE, 0xA1B0, 0xBCA3,
0xD795, 0xF287, 0x0D79, 0x286B, 0x435D, 0x5E50, 0x7942, 0x9437,
0xAF2A, 0xCA1C, 0xE50E, 0x8001, 0x5793, 0x2F28, 0x06BC, 0xDE52,
0xB5E6, 0x8D7B, 0x650C, 0x3CA1, 0x1435, 0xEBCB, 0xC35F, 0x9AF4,
0x7285, 0x4A1A, 0x21AE, 0xF944, 0xD0D8, 0xA86D, 0x3FFF, 0x0000,
0x0D7C, 0x1AF9, 0x2876, 0x35F3, 0x4370, 0x50ED, 0x5E6A, 0x6BE7,
0x7964, 0x86E3, 0x9460, 0xA1DD, 0xAF5A, 0xBCD7, 0xCA54, 0xD7D1,
0xE54E, 0xF2CB, 0xC001, 0x3FFF, 0x0000, 0x0D7B, 0x1AF7, 0x2873,
0x35EF, 0x436B, 0x50E6, 0x5E62, 0x6BDE, 0x795A, 0x86D9, 0x9455,
0xA1D0, 0xAF4C, 0xBCC8, 0xCA44, 0xD7C0, 0xE53B, 0xF2B7, 0xC001,
0x3FFF, 0xC001, 0xCD7A, 0xDAF2, 0xE86B, 0xF5E3, 0x035B, 0x10D3,
0x1E4C, 0x2BC4, 0x393D, 0x46B5, 0x542E, 0x61A6, 0x6F1F, 0x7C97,
0x8A13, 0x978B, 0xA504, 0xB27D, 0xC001, 0x3FFF, 0x4D79, 0x5AF2,
0x686C, 0x75E5, 0x8362, 0x90DB, 0x9E55, 0xABCF, 0xB948, 0xC6C2,
0xD43B, 0xE1B5, 0xEF2F, 0xFCA8, 0x0A21, 0x179A, 0x2514, 0x328D,
0xC001, 0x3FFF,
};
static const u16 dAmpAnimIndex[] = {
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00A1,
0x0001, 0x0000, 0x0013, 0x008D, 0x0001, 0x00A0,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x0001,
0x0001, 0x0000, 0x0013, 0x0079, 0x0001, 0x008C,
0x0001, 0x0014, 0x0001, 0x0000, 0x0013, 0x0015,
0x0001, 0x0000, 0x0013, 0x0064, 0x0001, 0x0077,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x0028,
0x0001, 0x0000, 0x0013, 0x004F, 0x0001, 0x0062,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x003B,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0078,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0063,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x004E,
};
static const struct Animation dAmpAnimation = {
0,
0,
0,
0,
0x13,
ANIMINDEX_NUMPARTS(dAmpAnimIndex),
dAmpAnimValue,
dAmpAnimIndex,
0,
};
-1
View File
@@ -1 +0,0 @@
#include "animation.inc.c"
-3
View File
@@ -1,3 +0,0 @@
const struct Animation *const dAmpAnimsList[] = {
&dAmpAnimation,
};
-55
View File
@@ -1,55 +0,0 @@
const GeoLayout dAmpGeo[] = {
GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0xC8, 100),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpEyeDl),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpMouthDl),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_BILLBOARD(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, dAmpBodyDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
-491
View File
@@ -1,491 +0,0 @@
// Amp
ALIGNED8 static const Texture dAmpElectricityTexture[] = "__OTR__actors/amp/amp_electricity";
ALIGNED8 static const Texture dAmpEyesTexture[] = "__OTR__actors/amp/amp_eyes";
ALIGNED8 static const Texture dAmpBodyTexture[] = "__OTR__actors/amp/amp_body";
ALIGNED8 static const Texture dAmpMouthTexture[] = "__OTR__actors/amp/amp_mouth";
static const Vtx dAmpElectricityVertices[] = {
{{{ 224, 0, -89}, 0, { 0, 480}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 187, 149, 0}, 0, { 223, 1078}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 224, 0, 90}, 0, { 479, 478}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 187, -148, 0}, 0, { 224, -122}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 224, 0, -89}, 0, { 0, 478}, {0xff, 0xff, 0xff, 0xff}}},
};
const Gfx dAmpElectricitySubDl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpElectricityTexture),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
gsSPVertex(dAmpElectricityVertices, 5, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
gsSPEndDisplayList(),
};
const Gfx dAmpElectricityDl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 4, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(dAmpElectricitySubDl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
static const Vtx dAmpEyeVertices[] = {
{{{ 68, 72, 158}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -27, -71, 164}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 68, -71, 158}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -27, 72, 164}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
};
const Gfx dAmpEyeSubDl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpEyesTexture),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(dAmpEyeVertices, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSPEndDisplayList(),
};
const Gfx dAmpEyeDl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(dAmpEyeSubDl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
static const Vtx dAmpMouthVertices[] = {
{{{ -29, 72, 164}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -124, -71, 121}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -29, -71, 164}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -124, 72, 121}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
};
const Gfx dAmpMouthSubDl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpMouthTexture),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(dAmpMouthVertices, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSPEndDisplayList(),
};
const Gfx dAmpMouthDl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(dAmpMouthSubDl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
static const Vtx dAmpBodyVertices[] = {
{{{ -39, -39, 0}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 40, 40, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -39, 40, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 40, -39, 0}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
};
const Gfx dAmpBodySubDl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpBodyTexture),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(dAmpBodyVertices, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSPEndDisplayList(),
};
const Gfx dAmpBodyDl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(dAmpBodySubDl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
/**
* Everything beyond this point is unused, and seems to be an attempt at a 3D modelled
* amp. The model and attempt are overall slightly buggy, with misread lights and a slightly
* broken model.
*/
UNUSED static const Lights1 dAmpUnused3DLights = gdSPDefLights1(
0x33, 0x3f, 0x00,
0xcf, 0xff, 0x00, 0x28, 0x28, 0x28
);
UNUSED static const Vtx dAmpUnused3DVtx01[] = {
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 240, -160, 0}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 240, 160, 0}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx02[] = {
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 240, -160, 0}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 240, 160, 0}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx03[] = {
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 240, -160, 0}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0x00}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 240, 160, 0}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx04[] = {
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0x00}}},
{{{ 240, 160, 0}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0x00}}},
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0x1e, 0x00, 0x00}}},
{{{ 280, 0, 35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}},
{{{ 240, -160, 0}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}},
{{{ 280, 0, -35}, 0, { 0, 0}, {0x7b, 0xe2, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx05[] = {
{{{ -184, -54, -54}, 0, { 0, 0}, {0x8b, 0xde, 0xde, 0x00}}},
{{{ -184, -76, 0}, 0, { 0, 0}, {0x8b, 0xd0, 0x00, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, -100, -100}, 0, { 0, 0}, {0xa6, 0xc1, 0xc1, 0xff}}},
{{{ -141, -141, 0}, 0, { 0, 0}, {0xa6, 0xa7, 0x00, 0xff}}},
{{{ -76, -130, -130}, 0, { 0, 0}, {0xd0, 0xae, 0xae, 0xff}}},
{{{ -76, -184, 0}, 0, { 0, 0}, {0xd0, 0x8b, 0x00, 0xff}}},
{{{ 0, -141, -141}, 0, { 0, 0}, {0x00, 0xa7, 0xa7, 0xff}}},
{{{ 0, -200, 0}, 0, { 0, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 76, -130, -130}, 0, { 0, 0}, {0x30, 0xae, 0xae, 0xff}}},
{{{ 76, -184, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}},
{{{ 141, -100, -100}, 0, { 0, 0}, {0x5a, 0xc1, 0xc1, 0xff}}},
{{{ 141, -141, 0}, 0, { 0, 0}, {0x5a, 0xa7, 0x00, 0xff}}},
{{{ 184, -54, -54}, 0, { 0, 0}, {0x75, 0xde, 0xde, 0xff}}},
{{{ 184, -76, 0}, 0, { 0, 0}, {0x75, 0xd0, 0x00, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx06[] = {
{{{ -184, 0, -76}, 0, { 0, 0}, {0x8b, 0x00, 0xd0, 0xff}}},
{{{ -184, -54, -54}, 0, { 0, 0}, {0x8b, 0xde, 0xde, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, 0, -141}, 0, { 0, 0}, {0xa6, 0x00, 0xa7, 0xff}}},
{{{ -141, -100, -100}, 0, { 0, 0}, {0xa6, 0xc1, 0xc1, 0xff}}},
{{{ -76, 0, -184}, 0, { 0, 0}, {0xd0, 0x00, 0x8b, 0xff}}},
{{{ -76, -130, -130}, 0, { 0, 0}, {0xd0, 0xae, 0xae, 0xff}}},
{{{ 0, 0, -200}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 0, -141, -141}, 0, { 0, 0}, {0x00, 0xa7, 0xa7, 0xff}}},
{{{ 76, 0, -184}, 0, { 0, 0}, {0x30, 0x00, 0x8b, 0xff}}},
{{{ 76, -130, -130}, 0, { 0, 0}, {0x30, 0xae, 0xae, 0xff}}},
{{{ 141, 0, -141}, 0, { 0, 0}, {0x5a, 0x00, 0xa7, 0xff}}},
{{{ 141, -100, -100}, 0, { 0, 0}, {0x5a, 0xc1, 0xc1, 0xff}}},
{{{ 184, 0, -76}, 0, { 0, 0}, {0x75, 0x00, 0xd0, 0xff}}},
{{{ 184, -54, -54}, 0, { 0, 0}, {0x75, 0xde, 0xde, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx07[] = {
{{{ -184, 54, -54}, 0, { 0, 0}, {0x8b, 0x22, 0xde, 0xff}}},
{{{ -184, 0, -76}, 0, { 0, 0}, {0x8b, 0x00, 0xd0, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, 100, -100}, 0, { 0, 0}, {0xa6, 0x3f, 0xc1, 0xff}}},
{{{ -141, 0, -141}, 0, { 0, 0}, {0xa6, 0x00, 0xa7, 0xff}}},
{{{ -76, 130, -130}, 0, { 0, 0}, {0xd0, 0x52, 0xae, 0xff}}},
{{{ -76, 0, -184}, 0, { 0, 0}, {0xd0, 0x00, 0x8b, 0xff}}},
{{{ 0, 141, -141}, 0, { 0, 0}, {0x00, 0x59, 0xa7, 0xff}}},
{{{ 0, 0, -200}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 76, 130, -130}, 0, { 0, 0}, {0x30, 0x52, 0xae, 0xff}}},
{{{ 76, 0, -184}, 0, { 0, 0}, {0x30, 0x00, 0x8b, 0xff}}},
{{{ 141, 100, -100}, 0, { 0, 0}, {0x5a, 0x3f, 0xc1, 0xff}}},
{{{ 141, 0, -141}, 0, { 0, 0}, {0x5a, 0x00, 0xa7, 0xff}}},
{{{ 184, 54, -54}, 0, { 0, 0}, {0x75, 0x22, 0xde, 0xff}}},
{{{ 184, 0, -76}, 0, { 0, 0}, {0x75, 0x00, 0xd0, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx08[] = {
{{{ -184, 76, 0}, 0, { 0, 0}, {0x8b, 0x30, 0x00, 0xff}}},
{{{ -184, 54, -54}, 0, { 0, 0}, {0x8b, 0x22, 0xde, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, 141, 0}, 0, { 0, 0}, {0xa6, 0x59, 0x00, 0xff}}},
{{{ -141, 100, -100}, 0, { 0, 0}, {0xa6, 0x3f, 0xc1, 0xff}}},
{{{ -76, 184, 0}, 0, { 0, 0}, {0xd0, 0x75, 0x00, 0xff}}},
{{{ -76, 130, -130}, 0, { 0, 0}, {0xd0, 0x52, 0xae, 0xff}}},
{{{ 0, 200, 0}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 0, 141, -141}, 0, { 0, 0}, {0x00, 0x59, 0xa7, 0xff}}},
{{{ 76, 184, 0}, 0, { 0, 0}, {0x30, 0x75, 0x00, 0xff}}},
{{{ 76, 130, -130}, 0, { 0, 0}, {0x30, 0x52, 0xae, 0xff}}},
{{{ 141, 141, 0}, 0, { 0, 0}, {0x5a, 0x59, 0x00, 0xff}}},
{{{ 141, 100, -100}, 0, { 0, 0}, {0x5a, 0x3f, 0xc1, 0xff}}},
{{{ 184, 76, 0}, 0, { 0, 0}, {0x75, 0x30, 0x00, 0xff}}},
{{{ 184, 54, -54}, 0, { 0, 0}, {0x75, 0x22, 0xde, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx09[] = {
{{{ -184, 54, 54}, 0, { 0, 0}, {0x8b, 0x22, 0x22, 0xff}}},
{{{ -184, 76, 0}, 0, { 0, 0}, {0x8b, 0x30, 0x00, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, 100, 100}, 0, { 0, 0}, {0xa6, 0x3f, 0x3f, 0xff}}},
{{{ -141, 141, 0}, 0, { 0, 0}, {0xa6, 0x59, 0x00, 0xff}}},
{{{ -76, 130, 130}, 0, { 0, 0}, {0xd0, 0x52, 0x52, 0xff}}},
{{{ -76, 184, 0}, 0, { 0, 0}, {0xd0, 0x75, 0x00, 0xff}}},
{{{ 0, 141, 141}, 0, { 0, 0}, {0x00, 0x59, 0x59, 0xff}}},
{{{ 0, 200, 0}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 76, 130, 130}, 0, { 0, 0}, {0x30, 0x52, 0x52, 0xff}}},
{{{ 76, 184, 0}, 0, { 0, 0}, {0x30, 0x75, 0x00, 0xff}}},
{{{ 141, 100, 100}, 0, { 0, 0}, {0x5a, 0x3f, 0x3f, 0xff}}},
{{{ 141, 141, 0}, 0, { 0, 0}, {0x5a, 0x59, 0x00, 0xff}}},
{{{ 184, 54, 54}, 0, { 0, 0}, {0x75, 0x22, 0x22, 0xff}}},
{{{ 184, 76, 0}, 0, { 0, 0}, {0x75, 0x30, 0x00, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx10[] = {
{{{ -184, 0, 76}, 0, { 0, 0}, {0x8b, 0x00, 0x30, 0xff}}},
{{{ -184, 54, 54}, 0, { 0, 0}, {0x8b, 0x22, 0x22, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, 0, 141}, 0, { 0, 0}, {0xa6, 0x00, 0x59, 0xff}}},
{{{ -141, 100, 100}, 0, { 0, 0}, {0xa6, 0x3f, 0x3f, 0xff}}},
{{{ -76, 0, 184}, 0, { 0, 0}, {0xd0, 0x00, 0x75, 0xff}}},
{{{ -76, 130, 130}, 0, { 0, 0}, {0xd0, 0x52, 0x52, 0xff}}},
{{{ 0, 0, 200}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 0, 141, 141}, 0, { 0, 0}, {0x00, 0x59, 0x59, 0xff}}},
{{{ 76, 0, 184}, 0, { 0, 0}, {0x30, 0x00, 0x75, 0xff}}},
{{{ 76, 130, 130}, 0, { 0, 0}, {0x30, 0x52, 0x52, 0xff}}},
{{{ 141, 0, 141}, 0, { 0, 0}, {0x5a, 0x00, 0x59, 0xff}}},
{{{ 141, 100, 100}, 0, { 0, 0}, {0x5a, 0x3f, 0x3f, 0xff}}},
{{{ 184, 0, 76}, 0, { 0, 0}, {0x75, 0x00, 0x30, 0xff}}},
{{{ 184, 54, 54}, 0, { 0, 0}, {0x75, 0x22, 0x22, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx11[] = {
{{{ -184, -54, 54}, 0, { 0, 0}, {0x8b, 0xde, 0x22, 0xff}}},
{{{ -184, 0, 76}, 0, { 0, 0}, {0x8b, 0x00, 0x30, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, -100, 100}, 0, { 0, 0}, {0xa6, 0xc1, 0x3f, 0xff}}},
{{{ -141, 0, 141}, 0, { 0, 0}, {0xa6, 0x00, 0x59, 0xff}}},
{{{ -76, -130, 130}, 0, { 0, 0}, {0xd0, 0xae, 0x52, 0xff}}},
{{{ -76, 0, 184}, 0, { 0, 0}, {0xd0, 0x00, 0x75, 0xff}}},
{{{ 0, -141, 141}, 0, { 0, 0}, {0x00, 0xa7, 0x59, 0xff}}},
{{{ 0, 0, 200}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 76, -130, 130}, 0, { 0, 0}, {0x30, 0xae, 0x52, 0xff}}},
{{{ 76, 0, 184}, 0, { 0, 0}, {0x30, 0x00, 0x75, 0xff}}},
{{{ 141, -100, 100}, 0, { 0, 0}, {0x5a, 0xc1, 0x3f, 0xff}}},
{{{ 141, 0, 141}, 0, { 0, 0}, {0x5a, 0x00, 0x59, 0xff}}},
{{{ 184, -54, 54}, 0, { 0, 0}, {0x75, 0xde, 0x22, 0xff}}},
{{{ 184, 0, 76}, 0, { 0, 0}, {0x75, 0x00, 0x30, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx12[] = {
{{{ -184, -76, 0}, 0, { 0, 0}, {0x8b, 0xd0, 0x00, 0xff}}},
{{{ -184, -54, 54}, 0, { 0, 0}, {0x8b, 0xde, 0x22, 0x00}}},
{{{ -200, 0, 0}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0x00}}},
{{{ -141, -141, 0}, 0, { 0, 0}, {0xa6, 0xa7, 0x00, 0xff}}},
{{{ -141, -100, 100}, 0, { 0, 0}, {0xa6, 0xc1, 0x3f, 0xff}}},
{{{ -76, -184, 0}, 0, { 0, 0}, {0xd0, 0x8b, 0x00, 0xff}}},
{{{ -76, -130, 130}, 0, { 0, 0}, {0xd0, 0xae, 0x52, 0xff}}},
{{{ 0, -200, 0}, 0, { 0, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 0, -141, 141}, 0, { 0, 0}, {0x00, 0xa7, 0x59, 0xff}}},
{{{ 76, -184, 0}, 0, { 0, 0}, {0x30, 0x8b, 0x00, 0xff}}},
{{{ 76, -130, 130}, 0, { 0, 0}, {0x30, 0xae, 0x52, 0xff}}},
{{{ 141, -141, 0}, 0, { 0, 0}, {0x5a, 0xa7, 0x00, 0xff}}},
{{{ 141, -100, 100}, 0, { 0, 0}, {0x5a, 0xc1, 0x3f, 0xff}}},
{{{ 184, -76, 0}, 0, { 0, 0}, {0x75, 0xd0, 0x00, 0xff}}},
{{{ 184, -54, 54}, 0, { 0, 0}, {0x75, 0xde, 0x22, 0xff}}},
{{{ 200, 0, 0}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx13[] = {
{{{ -37, 90, 205}, 0, { 0, 0}, {0xcc, 0x00, 0x73, 0x00}}},
{{{ -129, 90, 163}, 0, { 0, 0}, {0xcc, 0x00, 0x73, 0x00}}},
{{{ -129, -90, 163}, 0, { 0, 0}, {0xcc, 0x00, 0x73, 0x00}}},
{{{ -37, -90, 205}, 0, { 0, 0}, {0xcc, 0x00, 0x73, 0xff}}},
};
UNUSED static const Vtx dAmpUnused3DVtx14[] = {
{{{ 112, -7, 182}, 0, { 0, 0}, {0x4c, 0xd8, 0x5c, 0x00}}},
{{{ 66, -139, 162}, 0, { 0, 0}, {0x4c, 0xd8, 0x5c, 0x00}}},
{{{ 175, -77, 98}, 0, { 0, 0}, {0x4c, 0xd8, 0x5c, 0x00}}},
};
UNUSED static const Vtx dAmpUnused3DVtx15[] = {
{{{ 63, 90, 198}, 0, { 0, 0}, {0x08, 0x00, 0x7e, 0x00}}},
{{{ -35, 90, 205}, 0, { 0, 0}, {0x08, 0x00, 0x7e, 0x00}}},
{{{ -35, -90, 205}, 0, { 0, 0}, {0x08, 0x00, 0x7e, 0x00}}},
{{{ 63, -90, 198}, 0, { 0, 0}, {0x08, 0x00, 0x7e, 0xff}}},
};
UNUSED const Gfx dAmpUnused3DElectricDl1[] = {
gsSPLight(&dAmpUnused3DLights.l, 1),
gsSPLight(&dAmpUnused3DLights.a, 2),
gsSPVertex(dAmpUnused3DVtx01, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl2[] = {
gsSPLight(&dAmpUnused3DLights.l, 1),
gsSPLight(&dAmpUnused3DLights.a, 2),
gsSPVertex(dAmpUnused3DVtx02, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl3[] = {
gsSPLight(&dAmpUnused3DLights.l, 1),
gsSPLight(&dAmpUnused3DLights.a, 2),
gsSPVertex(dAmpUnused3DVtx03, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl4[] = {
gsSPLight(&dAmpUnused3DLights.l, 1),
gsSPLight(&dAmpUnused3DLights.a, 2),
gsSPVertex(dAmpUnused3DVtx04, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DModelDl[] = {
//! Vertex interpreted as light
gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
gsSPVertex(dAmpUnused3DVtx05, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx06, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx07, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx08, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx09, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx10, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx11, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPVertex(dAmpUnused3DVtx12, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 7, 9, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 10, 9, 11, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl5[] = {
//! Vertex interpreted as light
gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
gsSPVertex(dAmpUnused3DVtx13, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl6[] = {
//! Vertex interpreted as light
gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
gsSPVertex(dAmpUnused3DVtx14, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPEndDisplayList(),
};
UNUSED const Gfx dAmpUnused3DElectricDl7[] = {
//! Vertex interpreted as light
gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
gsSPVertex(dAmpUnused3DVtx15, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
};
-36
View File
@@ -1,36 +0,0 @@
// 0x050007E0
static const s16 birds_seg5_animvalue_050007E0[] = {
0x0000, 0x0013, 0x0017, 0x001A, 0x001E, 0x0022, 0x0020, 0x001A,
0xFFFF, 0x3FFF, 0x0888, 0x0695, 0x024C, 0xFE04, 0xFC12, 0xFF4D,
0x054D, 0x0000, 0xFF6C, 0xFE24, 0xFCDD, 0xFC48, 0xFD3F, 0xFF0A,
0x31C6, 0x228D, 0x010E, 0xDF90, 0xD056, 0xE999, 0x1883, 0x8001,
0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8, 0xF778, 0xF8AE,
0xFB59, 0xFE04, 0xFF3A, 0xFD37, 0xF97B, 0x0000, 0x0098, 0x01E8,
0x0339, 0x03D1, 0x02D4, 0x00FD, 0x31C6, 0x22A8, 0x0165, 0xE023,
0xD104, 0xEA1A, 0x18B0, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF, 0xC001,
0x3FFF, 0x8001, 0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8,
};
// 0x05000870
static const u16 birds_seg5_animindex_5000870[] = {
0x0001, 0x0000, 0x0007, 0x0001, 0x0001, 0x0008, 0x0001, 0x0000, 0x0001, 0x0009, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0007, 0x0041,
0x0001, 0x003E, 0x0001, 0x003F, 0x0001, 0x0040,
0x0007, 0x000A, 0x0007, 0x0011, 0x0007, 0x0018,
0x0001, 0x003B, 0x0001, 0x003C, 0x0001, 0x003D,
0x0007, 0x0026, 0x0007, 0x002D, 0x0007, 0x0034,
0x0001, 0x0000, 0x0001, 0x0000, 0x0007, 0x001F,
};
// 0x050008D0
static const struct Animation birds_seg5_anim_050008D0 = {
0,
0,
0,
0,
0x07,
ANIMINDEX_NUMPARTS(birds_seg5_animindex_5000870),
birds_seg5_animvalue_050007E0,
birds_seg5_animindex_5000870,
0,
};
-36
View File
@@ -1,36 +0,0 @@
// 0x050008E8
static const s16 birds_seg5_animvalue_050008E8[] = {
0x0000, 0x001A, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B,
0x001A, 0xFFFF, 0x3FFF, 0x024C, 0x0246, 0x023A, 0x0234, 0x0238,
0x0240, 0x0249, 0x024C, 0xFE24, 0xFE1D, 0xFE0F, 0xFE07, 0xFE0C,
0xFE16, 0xFE20, 0xFE24, 0x010E, 0x0195, 0x0290, 0x0317, 0x02C6,
0x0212, 0x015F, 0x010E, 0x7EC6, 0xFB59, 0xFB5E, 0xFB68, 0xFB6D,
0xFB6A, 0xFB63, 0xFB5C, 0xFB59, 0x01E8, 0x01F5, 0x020B, 0x0218,
0x0210, 0x0200, 0x01F0, 0x01E8, 0x0165, 0x01D1, 0x0299, 0x0304,
0x02C3, 0x0235, 0x01A6, 0x0165, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF,
0xC001, 0x3FFF, 0x7EC6, 0x0000,
};
// 0x05000970
static const u16 birds_seg5_animindex_5000970[] = {
0x0001, 0x0000, 0x0008, 0x0001, 0x0001, 0x0009, 0x0001, 0x0000, 0x0001, 0x000A, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0042,
0x0001, 0x003F, 0x0001, 0x0040, 0x0001, 0x0041,
0x0008, 0x000B, 0x0008, 0x0013, 0x0008, 0x001B,
0x0001, 0x003C, 0x0001, 0x003D, 0x0001, 0x003E,
0x0008, 0x0024, 0x0008, 0x002C, 0x0008, 0x0034,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023,
};
// 0x050009D0
static const struct Animation birds_seg5_anim_050009D0 = {
0,
0,
0,
0,
0x08,
ANIMINDEX_NUMPARTS(birds_seg5_animindex_5000970),
birds_seg5_animvalue_050008E8,
birds_seg5_animindex_5000970,
0,
};
-2
View File
@@ -1,2 +0,0 @@
#include "anim_050008D0.inc.c"
#include "anim_050009D0.inc.c"
-5
View File
@@ -1,5 +0,0 @@
// 0x050009E8
const struct Animation *const birds_seg5_anims_050009E8[] = {
&birds_seg5_anim_050008D0,
&birds_seg5_anim_050009D0,
};
-25
View File
@@ -1,25 +0,0 @@
// 0x0C000000
const GeoLayout birds_geo[] = {
GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0x96, 100),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000670),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 1, -12, 37, NULL),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000528),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 1, -12, -37, NULL),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000600),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000598),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
-215
View File
@@ -1,215 +0,0 @@
// Birds
// 0x05000000
static const Lights1 birds_seg5_lights_05000000 = gdSPDefLights1(
0x07, 0x24, 0x2c,
0x1d, 0x91, 0xb0, 0x28, 0x28, 0x28
);
// 0x05000018
static const Lights1 birds_seg5_lights_05000018 = gdSPDefLights1(
0x33, 0x27, 0x0d,
0xce, 0x9d, 0x34, 0x28, 0x28, 0x28
);
// 0x05000030
static const Lights1 birds_seg5_lights_05000030 = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x05000048
static const Vtx birds_seg5_vertex_05000048[] = {
{{{ 178, 2, 39}, 0, { 0, 0}, {0x0d, 0x7e, 0x00, 0x00}}},
{{{ 122, -4, -33}, 0, { 0, 0}, {0x10, 0x79, 0xde, 0x00}}},
{{{ 97, 10, 13}, 0, { 0, 0}, {0x0b, 0x7e, 0xff, 0x00}}},
{{{ 47, 4, 47}, 0, { 0, 0}, {0xfe, 0x7c, 0x1b, 0xff}}},
{{{ 53, 14, 7}, 0, { 0, 0}, {0xfe, 0x7e, 0xf8, 0xff}}},
{{{ 0, 5, 32}, 0, { 0, 0}, {0xf0, 0x7d, 0x03, 0xff}}},
{{{ 27, 9, 16}, 0, { 0, 0}, {0xee, 0x7d, 0x05, 0xff}}},
{{{ 53, -8, -58}, 0, { 0, 0}, {0x0a, 0x78, 0xd8, 0xff}}},
{{{ -4, -6, -64}, 0, { 0, 0}, {0xf1, 0x7b, 0xe9, 0xff}}},
};
// 0x050000D8
static const Vtx birds_seg5_vertex_050000D8[] = {
{{{ -143, -7, -29}, 0, { 0, 0}, {0x16, 0x94, 0xc2, 0x00}}},
{{{ -86, -11, -2}, 0, { 0, 0}, {0x16, 0x94, 0xc2, 0x00}}},
{{{ -154, -21, -9}, 0, { 0, 0}, {0x16, 0x94, 0xc2, 0x00}}},
};
// 0x05000108
static const Vtx birds_seg5_vertex_05000108[] = {
{{{ -154, -21, 9}, 0, { 0, 0}, {0x16, 0x94, 0x3e, 0x00}}},
{{{ -86, -11, 2}, 0, { 0, 0}, {0x16, 0x94, 0x3e, 0x00}}},
{{{ -143, -7, 29}, 0, { 0, 0}, {0x16, 0x94, 0x3e, 0x00}}},
};
// 0x05000138
static const Vtx birds_seg5_vertex_05000138[] = {
{{{ -152, -30, -17}, 0, { 0, 0}, {0x26, 0x87, 0x00, 0x00}}},
{{{ -80, -7, 0}, 0, { 0, 0}, {0x26, 0x87, 0x00, 0x00}}},
{{{ -152, -30, 17}, 0, { 0, 0}, {0x26, 0x87, 0x00, 0x00}}},
};
// 0x05000168
static const Vtx birds_seg5_vertex_05000168[] = {
{{{ 97, 10, -13}, 0, { 0, 0}, {0x0b, 0x7e, 0x01, 0x00}}},
{{{ 122, -4, 33}, 0, { 0, 0}, {0x10, 0x79, 0x22, 0x00}}},
{{{ 178, 2, -39}, 0, { 0, 0}, {0x0d, 0x7e, 0x00, 0x00}}},
{{{ 47, 4, -47}, 0, { 0, 0}, {0xfe, 0x7c, 0xe5, 0xff}}},
{{{ 53, 14, -7}, 0, { 0, 0}, {0xff, 0x7f, 0x02, 0xff}}},
{{{ 27, 9, -16}, 0, { 0, 0}, {0xf1, 0x7d, 0x06, 0xff}}},
{{{ 0, 5, -32}, 0, { 0, 0}, {0xf0, 0x7d, 0xfd, 0xff}}},
{{{ -4, -6, 64}, 0, { 0, 0}, {0xf7, 0x7c, 0x14, 0xff}}},
{{{ 53, -8, 58}, 0, { 0, 0}, {0xfa, 0x79, 0x25, 0xff}}},
};
// 0x050001F8
static const Vtx birds_seg5_vertex_050001F8[] = {
{{{ 69, 4, -40}, 0, { 0, 0}, {0x40, 0x26, 0x9a, 0x00}}},
{{{ 78, -51, -21}, 0, { 0, 0}, {0x27, 0xae, 0xa8, 0x00}}},
{{{ -1, 0, -56}, 0, { 0, 0}, {0xf4, 0xc6, 0x90, 0x00}}},
{{{ 69, 4, 40}, 0, { 0, 0}, {0x40, 0x26, 0x66, 0xff}}},
{{{ 10, 48, 56}, 0, { 0, 0}, {0xef, 0x41, 0x6b, 0xff}}},
{{{ -1, 0, 56}, 0, { 0, 0}, {0xf4, 0xc6, 0x70, 0xff}}},
{{{ -88, 21, 0}, 0, { 0, 0}, {0xaa, 0x5d, 0x00, 0xff}}},
{{{ -103, -10, -11}, 0, { 0, 0}, {0xa7, 0x30, 0xb4, 0xff}}},
{{{ -103, -10, 11}, 0, { 0, 0}, {0xa7, 0x30, 0x4c, 0xff}}},
{{{ 83, -57, 0}, 0, { 0, 0}, {0xdd, 0x87, 0x00, 0xff}}},
{{{ -9, -30, 0}, 0, { 0, 0}, {0xe0, 0x86, 0x00, 0xff}}},
{{{ 113, 0, -10}, 0, { 0, 0}, {0x4e, 0x32, 0xab, 0xff}}},
{{{ 113, 0, 10}, 0, { 0, 0}, {0x4e, 0x32, 0x55, 0xff}}},
{{{ 78, -51, 21}, 0, { 0, 0}, {0x27, 0xae, 0x58, 0xff}}},
{{{ -103, -10, 11}, 0, { 0, 0}, {0xea, 0x88, 0x1f, 0xff}}},
{{{ 113, -23, 0}, 0, { 0, 0}, {0x62, 0xb0, 0x00, 0xff}}},
};
// 0x050002F8
static const Vtx birds_seg5_vertex_050002F8[] = {
{{{ 83, -57, 0}, 0, { 0, 0}, {0x60, 0xad, 0x00, 0xff}}},
{{{ 113, -23, 0}, 0, { 0, 0}, {0x62, 0xb0, 0x00, 0x00}}},
{{{ 78, -51, 21}, 0, { 0, 0}, {0x27, 0xae, 0x58, 0x00}}},
{{{ 78, -51, -21}, 0, { 0, 0}, {0x27, 0xae, 0xa8, 0xff}}},
{{{ -103, -10, -11}, 0, { 0, 0}, {0xa7, 0x30, 0xb4, 0xff}}},
{{{ -88, 21, 0}, 0, { 0, 0}, {0xaa, 0x5d, 0x00, 0xff}}},
{{{ 10, 48, -56}, 0, { 0, 0}, {0xef, 0x41, 0x95, 0xff}}},
{{{ -1, 0, -56}, 0, { 0, 0}, {0xf4, 0xc6, 0x90, 0xff}}},
{{{ 10, 48, 56}, 0, { 0, 0}, {0xef, 0x41, 0x6b, 0xff}}},
{{{ -103, -10, 11}, 0, { 0, 0}, {0xa7, 0x30, 0x4c, 0xff}}},
{{{ -103, -10, -11}, 0, { 0, 0}, {0xea, 0x88, 0xe1, 0xff}}},
{{{ -9, -30, 0}, 0, { 0, 0}, {0xe0, 0x86, 0x00, 0xff}}},
{{{ -103, -10, 11}, 0, { 0, 0}, {0xea, 0x88, 0x1f, 0xff}}},
{{{ 83, -57, 0}, 0, { 0, 0}, {0xdd, 0x87, 0x00, 0xff}}},
{{{ -1, 0, 56}, 0, { 0, 0}, {0xf4, 0xc6, 0x70, 0xff}}},
{{{ 69, 4, -40}, 0, { 0, 0}, {0x40, 0x26, 0x9a, 0xff}}},
};
// 0x050003F8
static const Vtx birds_seg5_vertex_050003F8[] = {
{{{ -1, 0, 56}, 0, { 0, 0}, {0xf4, 0xc6, 0x70, 0xff}}},
{{{ 78, -51, 21}, 0, { 0, 0}, {0x27, 0xae, 0x58, 0x00}}},
{{{ 69, 4, 40}, 0, { 0, 0}, {0x40, 0x26, 0x66, 0x00}}},
};
// 0x05000428
static const Vtx birds_seg5_vertex_05000428[] = {
{{{ 69, 4, -40}, 0, { 0, 0}, {0x40, 0x26, 0x9a, 0x00}}},
{{{ 10, 48, -56}, 0, { 0, 0}, {0xef, 0x41, 0x95, 0x00}}},
{{{ 18, 78, 0}, 0, { 0, 0}, {0x54, 0x5e, 0x00, 0x00}}},
{{{ 10, 48, 56}, 0, { 0, 0}, {0xef, 0x41, 0x6b, 0xff}}},
{{{ 18, 78, 0}, 0, { 0, 0}, {0xc4, 0x6f, 0x00, 0xff}}},
{{{ -88, 21, 0}, 0, { 0, 0}, {0xaa, 0x5d, 0x00, 0xff}}},
{{{ 113, 0, -10}, 0, { 0, 0}, {0x4e, 0x32, 0xab, 0xff}}},
{{{ 69, 33, 0}, 0, { 0, 0}, {0x4b, 0x65, 0x00, 0xff}}},
{{{ 113, 0, 10}, 0, { 0, 0}, {0x4e, 0x32, 0x55, 0xff}}},
{{{ 69, 4, 40}, 0, { 0, 0}, {0x40, 0x26, 0x66, 0xff}}},
};
// 0x050004C8
static const Vtx birds_seg5_vertex_050004C8[] = {
{{{ 113, -23, 0}, 0, { 0, 0}, {0x62, 0xb0, 0x00, 0x00}}},
{{{ 113, 0, -10}, 0, { 0, 0}, {0x4e, 0x32, 0xab, 0x00}}},
{{{ 143, -2, 0}, 0, { 0, 0}, {0x24, 0xcb, 0x93, 0x00}}},
{{{ 113, 0, 10}, 0, { 0, 0}, {0x4e, 0x32, 0x55, 0xff}}},
{{{ 143, -2, 0}, 0, { 0, 0}, {0x24, 0xcb, 0x6d, 0xff}}},
{{{ 143, -2, 0}, 0, { 0, 0}, {0x07, 0x7e, 0x00, 0xff}}},
};
// 0x05000528 - 0x05000598
const Gfx birds_seg5_dl_05000528[] = {
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000048, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 4, 3, 2, 0x0, 5, 3, 6, 0x0),
gsSP2Triangles( 4, 7, 8, 0x0, 4, 8, 6, 0x0),
gsSP2Triangles( 6, 8, 5, 0x0, 6, 3, 4, 0x0),
gsSP2Triangles( 2, 1, 7, 0x0, 2, 7, 4, 0x0),
gsSPEndDisplayList(),
};
// 0x05000598 - 0x05000600
const Gfx birds_seg5_dl_05000598[] = {
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_050000D8, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000108, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000138, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPEndDisplayList(),
};
// 0x05000600 - 0x05000670
const Gfx birds_seg5_dl_05000600[] = {
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000168, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 0, 3, 4, 0x0, 5, 3, 6, 0x0),
gsSP2Triangles( 5, 7, 8, 0x0, 5, 8, 4, 0x0),
gsSP2Triangles( 6, 7, 5, 0x0, 4, 3, 5, 0x0),
gsSP2Triangles( 4, 8, 1, 0x0, 4, 1, 0, 0x0),
gsSPEndDisplayList(),
};
// 0x05000670 - 0x050007E0
const Gfx birds_seg5_dl_05000670[] = {
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_050001F8, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 1, 9, 10, 0x0),
gsSP2Triangles( 1, 0, 11, 0x0, 12, 3, 13, 0x0),
gsSP2Triangles( 8, 5, 4, 0x0, 5, 14, 10, 0x0),
gsSP2Triangles(13, 15, 12, 0x0, 11, 15, 1, 0x0),
gsSPVertex(birds_seg5_vertex_050002F8, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 4, 0x0),
gsSP2Triangles( 8, 5, 9, 0x0, 10, 7, 11, 0x0),
gsSP2Triangles(11, 12, 10, 0x0, 11, 13, 2, 0x0),
gsSP2Triangles( 2, 14, 11, 0x0, 11, 7, 3, 0x0),
gsSP1Triangle( 7, 6, 15, 0x0),
gsSPVertex(birds_seg5_vertex_050003F8, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLight(&birds_seg5_lights_05000030.l, 1),
gsSPLight(&birds_seg5_lights_05000030.a, 2),
gsSPVertex(birds_seg5_vertex_05000428, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 0, 7, 0x0, 7, 8, 6, 0x0),
gsSP2Triangles( 9, 7, 2, 0x0, 2, 7, 0, 0x0),
gsSP2Triangles( 2, 3, 9, 0x0, 7, 9, 8, 0x0),
gsSP1Triangle( 5, 4, 1, 0x0),
gsSPLight(&birds_seg5_lights_05000018.l, 1),
gsSPLight(&birds_seg5_lights_05000018.a, 2),
gsSPVertex(birds_seg5_vertex_050004C8, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
gsSP1Triangle( 1, 3, 5, 0x0),
gsSPEndDisplayList(),
};
-48
View File
@@ -1,48 +0,0 @@
// 0x05005EB8
static const s16 blargg_seg5_animvalue_05005EB8[] = {
0x0000, 0x0016, 0xFFFC, 0xFFB9, 0xFF61, 0xFF08, 0xFEC0, 0xFE9F,
0xFEAC, 0xFED8, 0xFF16, 0xFF59, 0xFF95, 0xFFBB, 0xFFD4, 0xFFED,
0x0005, 0x001C, 0x0031, 0x0042, 0x004D, 0x0052, 0x004E, 0x0042,
0x002B, 0xFFED, 0xFF79, 0xFEEE, 0xFE68, 0xFE02, 0xFDD9, 0xFDDF,
0xFDF3, 0xFE13, 0xFE3C, 0xFE6C, 0xFEA1, 0xFED9, 0xFF13, 0xFF4C,
0xFF81, 0xFFB2, 0xFFDB, 0xFFFB, 0x000F, 0x0016, 0x3FFF, 0x8785,
0x8785, 0x8785, 0x8785, 0x8785, 0x8785, 0x8785, 0x8A1E, 0x909B,
0x990A, 0xA17A, 0xA7F7, 0xAA8F, 0xAA75, 0xAA2A, 0xA9B1, 0xA90E,
0xA843, 0xA753, 0xA643, 0xA516, 0xA3CE, 0xA26F, 0xA0FC, 0x9F79,
0x9DE9, 0x9C4F, 0x9AAE, 0x990A, 0x9766, 0x95C6, 0x942C, 0x929B,
0x9118, 0x8FA6, 0x8E47, 0x8CFF, 0x8BD1, 0x8AC1, 0x89D2, 0x8907,
0x8863, 0x87EA, 0x879F, 0x8785, 0x804C, 0x0BCD, 0x0D29, 0x106F,
0x1461, 0x17C8, 0x1967, 0x1806, 0x1248, 0x08E6, 0xFDBD, 0xF2AB,
0xE990, 0xE448, 0xE1F8, 0xE072, 0xDFA4, 0xDF79, 0xDFDD, 0xE0BB,
0xE1FF, 0xE394, 0xE567, 0xE762, 0xE972, 0xEE5F, 0xF6AA, 0xFED8,
0x036F, 0x04F7, 0x064D, 0x0774, 0x086F, 0x0941, 0x09EF, 0x0A7C,
0x0AEA, 0x0B3F, 0x0B7C, 0x0BA6, 0x0BC1, 0x0BCE, 0x0BD3, 0x0BD2,
0x0BCE, 0x0BCD, 0x76C1, 0x76C1, 0x76C1, 0x76C1, 0x76C1, 0x76C1,
0x76C1, 0x7543, 0x7181, 0x6C93, 0x678D, 0x6385, 0x6191, 0x613B,
0x614D, 0x61BA, 0x627B, 0x6384, 0x64CA, 0x6645, 0x67E8, 0x69AB,
0x6B83, 0x6D65, 0x7027, 0x7426, 0x78A4, 0x7CE5, 0x802E, 0x81BB,
0x81FB, 0x81DE, 0x8172, 0x80C4, 0x7FDE, 0x7ED2, 0x7DAC, 0x7C77,
0x7B41, 0x7A17, 0x7907, 0x781C, 0x7764, 0x76EC, 0x76C1, 0x0000,
};
// 0x05006028
static const u16 blargg_seg5_animindex_05006028[] = {
0x0001, 0x0000, 0x002D, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x002E, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x002D, 0x008A,
0x0001, 0x0000, 0x0001, 0x0000, 0x002D, 0x005D,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x005C,
0x0001, 0x0000, 0x0001, 0x0000, 0x002D, 0x002F,
};
// 0x05006070
static const struct Animation blargg_seg5_anim_05006070 = {
0,
0,
0,
0,
0x2D,
ANIMINDEX_NUMPARTS(blargg_seg5_animindex_05006028),
blargg_seg5_animvalue_05005EB8,
blargg_seg5_animindex_05006028,
0,
};
-34
View File
@@ -1,34 +0,0 @@
// 0x05006088
static const s16 blargg_seg5_animvalue_05006088[] = {
0x0000, 0x0016, 0x0018, 0x001C, 0x0022, 0x002A, 0x0033, 0x003D,
0x0047, 0x0052, 0x005C, 0x0065, 0x006D, 0x0073, 0x0077, 0x0078,
0x0077, 0x0074, 0x0070, 0x006B, 0x0064, 0x005C, 0x0054, 0x004C,
0x0043, 0x003A, 0x0031, 0x0029, 0x0022, 0x001C, 0x0016, 0x3FFF,
0x8785, 0x804C, 0x0BCD, 0x0BF1, 0x0C51, 0x0CD8, 0x0D72, 0x0E0C,
0x0E91, 0x0EEE, 0x0F0F, 0x0EFC, 0x0ED0, 0x0E8F, 0x0E3C, 0x0DDE,
0x0D78, 0x0D10, 0x0CA9, 0x0C48, 0x0BF2, 0x0BAB, 0x0B77, 0x0B5A,
0x0B50, 0x0B55, 0x0B64, 0x0B7B, 0x0B94, 0x0BAD, 0x0BC1, 0x0BCD,
0x76C1, 0x0000,
};
// 0x0500610C
static const u16 blargg_seg5_animindex_0500610C[] = {
0x0001, 0x0000, 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0040,
0x0001, 0x0000, 0x0001, 0x0000, 0x001E, 0x0022,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0021,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0020,
};
// 0x05006154
static const struct Animation blargg_seg5_anim_05006154 = {
0,
0,
0,
0,
0x1E,
ANIMINDEX_NUMPARTS(blargg_seg5_animindex_0500610C),
blargg_seg5_animvalue_05006088,
blargg_seg5_animindex_0500610C,
0,
};

Some files were not shown because too many files have changed in this diff Show More