mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-08 19:03:11 -04:00
@@ -56,6 +56,8 @@ xml/*
|
||||
# Torch
|
||||
include/assets/*
|
||||
tools/torch/*
|
||||
debug/*
|
||||
/debug/*
|
||||
|
||||
# no context header for now, until it's greenlit for the repo
|
||||
context_gen_header.h
|
||||
|
||||
+5
-1
@@ -13,6 +13,7 @@ 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")
|
||||
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Spaghettify)
|
||||
#add_compile_options(-fsanitize=address)
|
||||
#add_link_options(-fsanitize=address)
|
||||
|
||||
@@ -34,7 +35,10 @@ set(VCPKG_TARGET_TRIPLET x64-mingw-static)
|
||||
endif()
|
||||
|
||||
vcpkg_bootstrap()
|
||||
vcpkg_install_packages(fontconfig sdl2 zlib bzip2 libzip libpng getopt dirent libusb pthread glew glfw3)
|
||||
vcpkg_install_packages(fontconfig sdl2 zlib bzip2 libzip libpng getopt dirent libusb pthread glew glfw3 spdlog)
|
||||
|
||||
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2)
|
||||
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "courses/skyscraper/course_data.h"
|
||||
#include "courses/choco_mountain/course_data.h"
|
||||
#include "courses/frappe_snowland/course_data.h"
|
||||
#include "courses/mario_raceway/course_data.h"
|
||||
#include "courses/toads_turnpike/course_data.h"
|
||||
#include "courses/kalimari_desert/course_data.h"
|
||||
#include "courses/koopa_troopa_beach/course_data.h"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,108 +0,0 @@
|
||||
#ifndef MARIO_RACEWAY_COURSE_DATA_H
|
||||
#define MARIO_RACEWAY_COURSE_DATA_H
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include <actor_types.h>
|
||||
#include <waypoints.h>
|
||||
#include <course.h>
|
||||
|
||||
extern Gfx d_course_mario_raceway_dl_0[];
|
||||
extern Gfx d_course_mario_raceway_dl_E8[];
|
||||
extern Gfx d_course_mario_raceway_dl_1D0[];
|
||||
extern Gfx d_course_mario_raceway_dl_2C8[];
|
||||
extern Gfx d_course_mario_raceway_dl_3A8[];
|
||||
extern Gfx d_course_mario_raceway_dl_478[];
|
||||
extern Gfx d_course_mario_raceway_dl_568[];
|
||||
extern Gfx d_course_mario_raceway_dl_668[];
|
||||
extern Gfx d_course_mario_raceway_dl_750[];
|
||||
extern Gfx d_course_mario_raceway_dl_828[];
|
||||
extern Gfx d_course_mario_raceway_dl_928[];
|
||||
extern Gfx d_course_mario_raceway_dl_A00[];
|
||||
extern Gfx d_course_mario_raceway_dl_B08[];
|
||||
extern Gfx d_course_mario_raceway_dl_C20[];
|
||||
extern Gfx d_course_mario_raceway_dl_DC8[];
|
||||
extern Gfx d_course_mario_raceway_dl_F60[];
|
||||
extern Gfx d_course_mario_raceway_dl_10A8[];
|
||||
extern Gfx d_course_mario_raceway_dl_1210[];
|
||||
extern Gfx d_course_mario_raceway_dl_1408[];
|
||||
extern Gfx d_course_mario_raceway_dl_15C8[];
|
||||
extern Gfx d_course_mario_raceway_dl_1740[];
|
||||
extern Gfx d_course_mario_raceway_dl_1850[];
|
||||
extern Gfx d_course_mario_raceway_dl_1A30[];
|
||||
extern Gfx d_course_mario_raceway_dl_1B70[];
|
||||
extern Gfx d_course_mario_raceway_dl_1CF8[];
|
||||
extern Gfx d_course_mario_raceway_dl_1DE0[];
|
||||
extern Gfx d_course_mario_raceway_dl_1F68[];
|
||||
extern Gfx d_course_mario_raceway_dl_20A0[];
|
||||
extern Gfx d_course_mario_raceway_dl_21E8[];
|
||||
extern Gfx d_course_mario_raceway_dl_22E0[];
|
||||
extern Gfx d_course_mario_raceway_dl_2418[];
|
||||
extern Gfx d_course_mario_raceway_dl_2558[];
|
||||
extern Gfx d_course_mario_raceway_dl_2680[];
|
||||
extern Gfx d_course_mario_raceway_dl_2790[];
|
||||
extern Gfx d_course_mario_raceway_dl_28B0[];
|
||||
extern Gfx d_course_mario_raceway_dl_2A10[];
|
||||
extern Gfx d_course_mario_raceway_dl_2B40[];
|
||||
extern Gfx d_course_mario_raceway_dl_2C98[];
|
||||
extern Gfx d_course_mario_raceway_dl_2DC0[];
|
||||
extern Gfx d_course_mario_raceway_dl_2EF8[];
|
||||
extern Gfx d_course_mario_raceway_dl_3038[];
|
||||
extern Gfx d_course_mario_raceway_dl_31F0[];
|
||||
extern Gfx d_course_mario_raceway_dl_32D8[];
|
||||
extern Gfx d_course_mario_raceway_dl_3458[];
|
||||
extern Gfx d_course_mario_raceway_dl_35D0[];
|
||||
extern Gfx d_course_mario_raceway_dl_3748[];
|
||||
extern Gfx d_course_mario_raceway_dl_3830[];
|
||||
extern Gfx d_course_mario_raceway_dl_3960[];
|
||||
extern Gfx d_course_mario_raceway_dl_3AA0[];
|
||||
extern Gfx d_course_mario_raceway_dl_3C08[];
|
||||
extern Gfx d_course_mario_raceway_dl_3D68[];
|
||||
extern Gfx d_course_mario_raceway_dl_3EB8[];
|
||||
extern Gfx d_course_mario_raceway_dl_4038[];
|
||||
extern Gfx d_course_mario_raceway_dl_4150[];
|
||||
extern Gfx d_course_mario_raceway_dl_42A0[];
|
||||
extern Gfx d_course_mario_raceway_dl_43D8[];
|
||||
extern Gfx d_course_mario_raceway_dl_44F8[];
|
||||
extern Gfx d_course_mario_raceway_dl_4610[];
|
||||
extern Gfx d_course_mario_raceway_dl_4738[];
|
||||
extern Gfx d_course_mario_raceway_dl_4840[];
|
||||
extern Gfx d_course_mario_raceway_dl_4910[];
|
||||
extern Gfx d_course_mario_raceway_dl_4A60[];
|
||||
extern Gfx d_course_mario_raceway_dl_4B78[];
|
||||
extern Gfx d_course_mario_raceway_dl_4CD8[];
|
||||
extern Gfx d_course_mario_raceway_dl_4DC8[];
|
||||
extern Gfx d_course_mario_raceway_dl_4ED0[];
|
||||
extern Gfx d_course_mario_raceway_dl_4FF0[];
|
||||
extern Gfx d_course_mario_raceway_dl_5150[];
|
||||
extern Gfx d_course_mario_raceway_dl_5228[];
|
||||
extern TrackWaypoint d_course_mario_raceway_unknown_waypoints[];
|
||||
extern TrackWaypoint d_course_mario_raceway_track_waypoints[];
|
||||
extern u8 d_course_mario_raceway_piranha_plant_tlut[];
|
||||
extern Vtx d_course_mario_raceway_piranha_plant_model[];
|
||||
extern Gfx d_course_mario_raceway_dl_piranha_plant[];
|
||||
extern Vtx d_course_mario_raceway_tree_model[];
|
||||
extern Gfx d_course_mario_raceway_dl_tree[];
|
||||
extern Vtx d_course_mario_sign_model[];
|
||||
extern Vtx d_course_mario_raceway_06006B88[];
|
||||
extern Vtx d_course_mario_raceway_06006D68[];
|
||||
extern Vtx d_course_mario_raceway_06006EE8[];
|
||||
extern Vtx d_course_mario_raceway_06006F48[];
|
||||
extern Vtx d_course_mario_raceway_06006FA8[];
|
||||
extern Vtx d_course_mario_raceway_06007008[];
|
||||
extern u8 d_course_mario_sign_left[];
|
||||
extern u8 d_course_mario_sign_right[];
|
||||
extern Gfx d_course_mario_raceway_dl_9068[];
|
||||
extern Gfx d_course_mario_raceway_dl_90B0[];
|
||||
extern Gfx d_course_mario_raceway_dl_90C0[];
|
||||
extern Gfx d_course_mario_raceway_dl_9190[];
|
||||
extern Gfx d_course_mario_raceway_dl_9250[];
|
||||
extern Gfx d_course_mario_raceway_dl_9310[];
|
||||
extern Gfx d_course_mario_raceway_dl_sign[];
|
||||
extern Gfx d_course_mario_raceway_dl_9348[];
|
||||
extern struct ActorSpawnData d_course_mario_raceway_item_box_spawns[];
|
||||
extern struct ActorSpawnData d_course_mario_raceway_piranha_plant_spawns[];
|
||||
extern struct ActorSpawnData d_course_mario_raceway_tree_spawns[];
|
||||
extern TrackSections d_course_mario_raceway_addr[];
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,179 +4,6 @@
|
||||
#include <libultra/gbi.h>
|
||||
#include "macros.h"
|
||||
|
||||
extern Gfx d_course_mario_raceway_packed_dl_0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_70[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_E0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_F8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_160[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_170[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1D8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_240[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_258[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_328[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3D8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_450[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_478[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4A0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_588[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_8E8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_900[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_A08[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_B10[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_C18[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_D20[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_E28[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_F30[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1038[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1140[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1188[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1348[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_13C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1438[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_14A0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_14C8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1500[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1550[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1600[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1668[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_16D8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1770[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_17D8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1850[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1890[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_18B8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_18E0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1950[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1988[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1A08[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1A80[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1AF8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1B28[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1BB8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1C48[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1CF8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1DA8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1E30[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1EA8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1F30[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_1FB0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2038[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_20B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2138[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_21C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2248[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_22B8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2340[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_23B8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2420[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2498[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2510[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2588[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2600[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2680[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_26F8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2760[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_27E8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2870[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_28F8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_29B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2A28[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2B10[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2B98[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2D68[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_2D80[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3050[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3060[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3150[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3240[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3258[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_32F0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3388[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3460[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3508[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3530[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_35A8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3630[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_36B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3728[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3798[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3818[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_38B8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3950[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_39E8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3AB8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3BB0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3C28[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3CD8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3D50[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3E00[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3E78[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3EF8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_3F80[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4028[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_40D8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4188[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4210[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4290[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4348[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_43C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4458[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_44C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4540[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_45B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_46A0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4780[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4870[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4950[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_49E8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4A68[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4AD8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4B50[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4BB8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4C28[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4CB8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4D48[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4E20[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4EE8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_4F90[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_50E8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5218[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_52B8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5368[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5408[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_54B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5550[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5608[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_56F0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5768[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5870[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5970[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5A48[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5AE0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5BC8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5C80[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5CE8[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5D70[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5DF0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5E58[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5ED0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_5F88[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6068[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_60F0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6198[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6240[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_62A0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6308[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_63B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6490[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6528[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6598[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6710[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_68B0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_68C0[];
|
||||
extern Gfx d_course_mario_raceway_packed_dl_6928[2];
|
||||
|
||||
#define d_course_mario_raceway_packed_end GET_PACKED_END(d_course_mario_raceway_packed_dl_6928)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <libultra/types.h>
|
||||
#include "course_offsets.h"
|
||||
#include "course_data.h"
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
const course_texture mario_raceway_textures[] = {
|
||||
{gTextureCheckerboardYellowPink, 0x0149, 0x0800, 0x0},
|
||||
|
||||
+1
-1
Submodule libultraship updated: c62fe02994...3018f1e755
@@ -1,6 +1,6 @@
|
||||
#include <actors.h>
|
||||
#include <main.h>
|
||||
#include "courses/mario_raceway/course_data.h"
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
/**
|
||||
* @brief Renders the Mario sign actor.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#include <actors.h>
|
||||
#include <main.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include "courses/mario_raceway/course_data.h"
|
||||
#include "courses/royal_raceway/course_data.h"
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
/**
|
||||
* @brief Renders the piranha plant actor.
|
||||
@@ -110,7 +110,7 @@ void render_actor_piranha_plant(Camera *arg0, Mat4 arg1, struct PiranhaPlant *ar
|
||||
|
||||
|
||||
if (gCurrentCourseId == COURSE_MARIO_RACEWAY) {
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_mario_raceway_dl_piranha_plant);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_mario_raceway_dl_piranha_plant);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_royal_raceway_dl_piranha_plant);
|
||||
}
|
||||
|
||||
@@ -8,4 +8,4 @@
|
||||
* Memory pool variable prevents code segments flowing into the memory pool
|
||||
* for easier portability.
|
||||
*/
|
||||
u8 memoryPool[MEMORY_POOL_SIZE];
|
||||
u8 gMemoryPool[MEMORY_POOL_SIZE];
|
||||
|
||||
+3
-1
@@ -24,6 +24,7 @@
|
||||
#include "courses/all_course_packed.h"
|
||||
#include "menus.h"
|
||||
#include <assets/other_textures.h>
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
extern s32 D_802BA038;
|
||||
extern s16 D_802BA048;
|
||||
@@ -308,8 +309,9 @@ void func_80003040(void) {
|
||||
destroy_all_actors();
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
struct ActorSpawnData *a_d_course_mario_raceway_tree_spawns = (struct ActorSpawnData *) LOAD_ASSET(d_course_mario_raceway_tree_spawns);
|
||||
dma_textures(gTextureTrees1, 0x35B, 0x800);
|
||||
spawn_foliage(d_course_mario_raceway_tree_spawns);
|
||||
spawn_foliage(a_d_course_mario_raceway_tree_spawns);
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
// d_course_bowsers_castle_packed_dl_1350
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <defines.h>
|
||||
#include <stubs.h>
|
||||
#include "course_metadata.h"
|
||||
#include <align_asset_macro.h>
|
||||
|
||||
#include "code_80005FD0.h"
|
||||
#include "math_util.h"
|
||||
|
||||
+14
-12
@@ -7,6 +7,7 @@
|
||||
#include <macros.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include <mk64.h>
|
||||
#include <align_asset_macro.h>
|
||||
|
||||
#include "camera.h"
|
||||
#include "code_80057C60.h"
|
||||
@@ -35,6 +36,7 @@
|
||||
#include "spawn_players.h"
|
||||
#include "sounds.h"
|
||||
#include "data/some_data.h"
|
||||
#include <assets/some_data.h>
|
||||
|
||||
|
||||
//! @warning this macro is undef'd at the end of this file
|
||||
@@ -493,7 +495,7 @@ void func_80057FC4(u32 arg0) {
|
||||
if ((gHUDDisable != 0)) {
|
||||
return;
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
set_matrix_hud_screen();
|
||||
|
||||
if ((D_801657C8 != 0)){
|
||||
@@ -527,7 +529,7 @@ void render_object(u32 arg0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
|
||||
if (D_8018D22C != 0) {
|
||||
return;
|
||||
@@ -636,7 +638,7 @@ void render_player_snow_effect(u32 arg0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
|
||||
if (D_8018D22C != 0) {
|
||||
return;
|
||||
@@ -818,13 +820,13 @@ void render_snowing_effect(s32 arg0) {
|
||||
}
|
||||
|
||||
void func_80058BF4(void) {
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
}
|
||||
|
||||
void func_80058C20(u32 arg0) {
|
||||
|
||||
D_8018D21C = arg0;
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
|
||||
if (D_8018D22C == 0) {
|
||||
switch (arg0) {
|
||||
@@ -892,7 +894,7 @@ void func_80058C20(u32 arg0) {
|
||||
void render_hud(u32 arg0) {
|
||||
|
||||
D_8018D21C = arg0;
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
if (D_8018D22C == 0) {
|
||||
switch (arg0) {
|
||||
case RENDER_SCREEN_MODE_1P_PLAYER_ONE:
|
||||
@@ -1040,7 +1042,7 @@ void func_800591B4(void) {
|
||||
|
||||
if ((gHUDDisable == 0) && (D_800DC5B8 != 0)) {
|
||||
func_80057C60();
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
|
||||
|
||||
if (gIsHUDVisible != 0) {
|
||||
if (D_801657D8 == 0) {
|
||||
@@ -5228,7 +5230,7 @@ void func_80067964(Player *player, UNUSED s8 arg1, f32 arg2, UNUSED s8 arg3, s8
|
||||
func_800652D4(sp9C, sp94, player->size * arg2);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008C90);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4AC, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, D_800E8840, 4, 0);
|
||||
@@ -5308,7 +5310,7 @@ void func_80068310(Player *player, UNUSED s8 arg1, UNUSED f32 arg2, s8 arg3, s8
|
||||
sp94[2] = 0;
|
||||
func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->size);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008C90);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4B4, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, D_800E8880, 4, 0);
|
||||
@@ -5382,7 +5384,7 @@ void func_80068DA0(Player *player, UNUSED s8 arg1, UNUSED f32 arg2, s8 arg3, s8
|
||||
sp94[2] = 0;
|
||||
func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->size);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008C90);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4A4, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, D_800E8B80, 4, 0);
|
||||
@@ -5788,7 +5790,7 @@ void render_battle_balloon(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
|
||||
func_8004B614(primRed, primGreen, primBlue, envRed, envGreen, envBlue, 0x000000D8);
|
||||
@@ -5902,7 +5904,7 @@ void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) {
|
||||
convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], sp108);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
func_8004B614(primRed, primGreen, primBlue, envRed, envGreen, envBlue, 0x000000D8);
|
||||
gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
|
||||
+2
-1
@@ -119,7 +119,8 @@ u8 *func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset)
|
||||
}
|
||||
|
||||
void func_8006EE44(void) {
|
||||
D_8018D1E0 = func_8006ED94((u8 *)&gTextureLogoMarioKart64, (u8 *) D_8018D9B0, 0x79E1, 0x20000);
|
||||
u8 *d_gTextureLogoMarioKart64 = LOAD_ASSET(gTextureLogoMarioKart64);
|
||||
D_8018D1E0 = func_8006ED94((u8 *)d_gTextureLogoMarioKart64, (u8 *) D_8018D9B0, 0x79E1, 0x20000);
|
||||
}
|
||||
|
||||
// Some kind of initalization for the Item Window part of the HUD
|
||||
|
||||
+59
-49
@@ -1152,10 +1152,6 @@ s32 D_800E84A0[] = {
|
||||
0x13, 0x13, 0x13, 0x13,
|
||||
};
|
||||
|
||||
Vtx *D_800E84C0[] = {
|
||||
&D_02007BB8[0], &D_02007BB8[18], &D_02007BB8[36],
|
||||
};
|
||||
|
||||
Gfx *D_800E84CC[] = {
|
||||
D_02007838, D_02007858, D_02007878, D_02007898,
|
||||
D_020078B8, D_020078D8, D_020078F8, D_02007918,
|
||||
@@ -1609,6 +1605,16 @@ void func_80092290(s32 arg0, s32 *arg1, s32 *arg2) {
|
||||
s32 a, b, c, d;
|
||||
Vtx *vtx;
|
||||
|
||||
Vtx *v1 = (Vtx *) LOAD_ASSET(D_02007BB8);
|
||||
//Vtx *v2 = (Vtx *) LOAD_ASSET(D_02007CD8);
|
||||
//Vtx *v3 = (Vtx *) LOAD_ASSET(D_02007DF8);
|
||||
|
||||
Vtx *D_800E84C0[] = {
|
||||
&v1[0],
|
||||
&v1[18],
|
||||
&v1[36],
|
||||
};
|
||||
|
||||
if ((arg0 < 4) || (arg0 >= 6)) { return; }
|
||||
|
||||
idx = (((arg0 * 4) + ((gGlobalTimer % 2) * 2)) - 6);
|
||||
@@ -1620,7 +1626,14 @@ void func_80092290(s32 arg0, s32 *arg1, s32 *arg2) {
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
vtx = (Vtx *) segmented_to_virtual_dupe_2(D_800E84C0[i]);
|
||||
if (i == 0) {
|
||||
vtx = (Vtx *) &v1[0];
|
||||
} else if (i == 1) {
|
||||
vtx = (Vtx *) &v1[18];
|
||||
} else if (i == 2) {
|
||||
vtx = (Vtx *) &v1[36];
|
||||
}
|
||||
//vtx = (Vtx *) segmented_to_virtual_dupe_2(&v1[0]);
|
||||
|
||||
temp_v1 = (*arg1 * 2) + 2;
|
||||
|
||||
@@ -2391,6 +2404,7 @@ void func_800942D0(void) {
|
||||
s32 var_s2;
|
||||
s32 thing;
|
||||
test = &gGfxPool->mtxObject[0];
|
||||
Gfx * a_D_02007F60 = LOAD_ASSET(D_02007F60);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxScreen, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxLookAt[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
guRotate(test, D_8018EDC8, 1.0f, 0.0f, 0.0f);
|
||||
@@ -2401,7 +2415,7 @@ void func_800942D0(void) {
|
||||
gSPMatrix(gDisplayListHead++, test++, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gDPSetEnvColor(gDisplayListHead++, 0x00, 0x00, 0x00, 0x00);
|
||||
gSPDisplayList(gDisplayListHead++, D_02007F60);
|
||||
gSPDisplayList(gDisplayListHead++, a_D_02007F60);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
if (D_800E8530 > 0) {
|
||||
var_f26 = D_800E8534;
|
||||
@@ -2462,14 +2476,14 @@ void func_800947B4(struct GfxPool *arg0, UNUSED s32 arg1) {
|
||||
void func_80094A64(struct GfxPool *pool) {
|
||||
gMatrixHudCount = 0;
|
||||
gMatrixEffectCount = 0;
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_802B8880));
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
|
||||
guOrtho(&pool->mtxScreen, 0.0f, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0.0f, -100.0f, 100.0f, 1.0f);
|
||||
gSPMatrix(gDisplayListHead++, &pool->mtxScreen, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPDisplayList(gDisplayListHead++, D_02007650);
|
||||
func_80094C60();
|
||||
func_80092290(4, D_8018E850, D_8018E858);
|
||||
func_80092290(5, &D_8018E850[1], &D_8018E858[1]);
|
||||
func_80092290(5, (s32 *) &D_8018E850[1], (s32 *) &D_8018E858[1]);
|
||||
func_80099A70();
|
||||
func_8009C918();
|
||||
switch (gMenuSelection) {
|
||||
@@ -2554,7 +2568,6 @@ void func_80094C60(void) {
|
||||
add_8018D9E0_entry(0x000000D9, 0, 0, 0x0A);
|
||||
break;
|
||||
case START_MENU:
|
||||
// todo: figure this out.
|
||||
add_8018D9E0_entry(2, 0, 0, 4);
|
||||
add_8018D9E0_entry(1, 0, 0, 0);
|
||||
add_8018D9E0_entry(0x000000FB, 0, 0, 0);
|
||||
@@ -2758,29 +2771,22 @@ Gfx *draw_flash_select_case_fast(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx
|
||||
|
||||
Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) {
|
||||
s32 index;
|
||||
Vtx *a_D_02007BB8 = (Vtx *) LOAD_ASSET(D_02007BB8);
|
||||
//Vtx *a_D_02007CD8 = (Vtx *) LOAD_ASSET(D_02007CD8);
|
||||
// Vtx *a_D_02007DF8 = (Vtx *) LOAD_ASSET(D_02007DF8);
|
||||
|
||||
if ((s32) gTextColor < TEXT_BLUE_GREEN_RED_CYCLE_1) {
|
||||
index = gTextColor;
|
||||
} else {
|
||||
index = ((gTextColor * 2) + ((s32) gGlobalTimer % 2)) - 4;
|
||||
}
|
||||
#ifdef AVOID_UB
|
||||
if (arg1 == D_02007BB8) {
|
||||
if (arg1 == &a_D_02007BB8[0]) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == &D_02007BB8[18]) {
|
||||
} else if (arg1 == &a_D_02007BB8[18]) {
|
||||
gSPDisplayList(displayListHead++, D_800E84EC[index]);
|
||||
} else if (arg1 == &D_02007BB8[36]) {
|
||||
} else if (arg1 == &a_D_02007BB8[36]) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#else
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == D_02007CD8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84EC[index]);
|
||||
} else if (arg1 == D_02007DF8) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
return displayListHead;
|
||||
@@ -2845,6 +2851,10 @@ Gfx *func_80095BD0(Gfx *displayListHead, u8 *arg1, f32 arg2, f32 arg3, u32 arg4,
|
||||
Vtx *var_a1;
|
||||
Mtx *sp28;
|
||||
|
||||
Vtx *a_D_02007BB8 = (Vtx *) LOAD_ASSET(D_02007BB8);
|
||||
//Vtx *a_D_02007CD8 = (Vtx *) LOAD_ASSET(D_02007CD8);
|
||||
//Vtx *a_D_02007DF8 = (Vtx *) LOAD_ASSET(D_02007DF8);
|
||||
|
||||
// A match is a match, but why are goto's required here?
|
||||
if (gMatrixEffectCount >= 0x2F7) {
|
||||
goto func_80095BD0_label1;
|
||||
@@ -2864,16 +2874,16 @@ func_80095BD0_label2:
|
||||
gDPLoadTextureTile_4b(displayListHead++, arg1, G_IM_FMT_I, arg4, 0, 0, 0, arg4, arg5, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
switch (arg4) {
|
||||
default:
|
||||
var_a1 = &D_02007BB8[18];
|
||||
var_a1 = &a_D_02007BB8[18];
|
||||
break;
|
||||
case 16:
|
||||
var_a1 = &D_02007BB8[18];
|
||||
var_a1 = &a_D_02007BB8[18];
|
||||
break;
|
||||
case 26:
|
||||
var_a1 = D_02007BB8;
|
||||
var_a1 = &a_D_02007BB8[0];
|
||||
break;
|
||||
case 30:
|
||||
var_a1 = &D_02007BB8[36];
|
||||
var_a1 = &a_D_02007BB8[36];
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3809,7 +3819,7 @@ void func_80099A94(MkTexture *arg0, s32 arg1) {
|
||||
// Something's up with the handling of `_textures_0aSegmentRomStart`, I don't know how to fix it
|
||||
void func_80099AEC(void) {
|
||||
s8 var_s4;
|
||||
s32 var_s0;
|
||||
s32 size;
|
||||
UNUSED s32 stackPadding0;
|
||||
UNUSED s32 stackPadding1;
|
||||
s32 huh;
|
||||
@@ -3820,29 +3830,29 @@ void func_80099AEC(void) {
|
||||
MkTexture *temp_s2;
|
||||
struct_8018E060_entry *var_s1;
|
||||
|
||||
if (gGamestate == 4) {
|
||||
if (gGamestate == RACING) {
|
||||
sp60 = 0x00000500;
|
||||
} else {
|
||||
sp60 = 0x00001000;
|
||||
}
|
||||
|
||||
var_s4 = 0;
|
||||
var_s1 = D_8018E060;
|
||||
var_s1 = &D_8018E060[0];
|
||||
temp_s2 = var_s1->texture;
|
||||
|
||||
if (temp_s2 == NULL) return;
|
||||
|
||||
huh = temp_s2->size;
|
||||
if (huh != 0) {
|
||||
var_s0 = huh;
|
||||
size = huh;
|
||||
} else {
|
||||
var_s0 = 0x1400;
|
||||
size = 0x1400;
|
||||
}
|
||||
if (var_s0 % 8) {
|
||||
var_s0 = ((var_s0 / 8) * 8) + 8;
|
||||
if (size % 8) {
|
||||
size = ((size / 8) * 8) + 8;
|
||||
}
|
||||
osInvalDCache(D_8018D9B4, var_s0);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
|
||||
osInvalDCache(D_8018D9B4, size);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, size, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
|
||||
while (1) {
|
||||
if ((var_s1 + 1)->texture == NULL) {
|
||||
@@ -3851,18 +3861,18 @@ void func_80099AEC(void) {
|
||||
temp_s2 = (var_s1 + 1)->texture;
|
||||
huh = (var_s1 + 1)->texture->size;
|
||||
if (huh != 0) {
|
||||
var_s0 = huh;
|
||||
size = huh;
|
||||
} else {
|
||||
var_s0 = 0x1400;
|
||||
size = 0x1400;
|
||||
}
|
||||
if (var_s0 % 8) {
|
||||
var_s0 = ((var_s0 / 8) * 8) + 8;
|
||||
if (size % 8) {
|
||||
size = ((size / 8) * 8) + 8;
|
||||
}
|
||||
osInvalDCache(D_8018D9B4 + sp60*4, var_s0);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + sp60*4, var_s0, &gDmaMesgQueue);
|
||||
osInvalDCache(D_8018D9B4 + sp60*4, size);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + sp60*4, size, &gDmaMesgQueue);
|
||||
}
|
||||
//mio0decode(D_8018D9B4, (u8*)&D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
|
||||
memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], temp_s2->textureData, temp_s2->width * temp_s2->height * 2);
|
||||
memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], var_s1->texture->textureData, var_s1->texture->width * var_s1->texture->height * 2);
|
||||
|
||||
var_s1->texture = NULL;
|
||||
var_s1++;
|
||||
@@ -3874,18 +3884,18 @@ void func_80099AEC(void) {
|
||||
temp_s2 = (var_s1 + 1)->texture;
|
||||
huh = (var_s1 + 1)->texture->size;
|
||||
if (huh != 0) {
|
||||
var_s0 = huh;
|
||||
size = huh;
|
||||
} else {
|
||||
var_s0 = 0x1400;
|
||||
size = 0x1400;
|
||||
}
|
||||
if (var_s0 % 8) {
|
||||
var_s0 = ((var_s0 / 8) * 8) + 8;
|
||||
if (size % 8) {
|
||||
size = ((size / 8) * 8) + 8;
|
||||
}
|
||||
osInvalDCache(D_8018D9B4, var_s0);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
|
||||
osInvalDCache(D_8018D9B4, size);
|
||||
//osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, size, &gDmaMesgQueue);
|
||||
}
|
||||
//mio0decode(D_8018D9B4 + sp60*4, (u8*)&D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
|
||||
memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], temp_s2->textureData, temp_s2->width * temp_s2->height * 2);
|
||||
memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], var_s1->texture->textureData, var_s1->texture->width * var_s1->texture->height * 2);
|
||||
var_s1->texture = NULL;
|
||||
var_s1++;
|
||||
if (var_s4 != 0) break;
|
||||
|
||||
@@ -1,540 +0,0 @@
|
||||
#include <macros.h>
|
||||
#include <libultra/types.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include "data_segment2.h"
|
||||
#include <assets/startup_logo.h>
|
||||
#include <assets/common_data.h>
|
||||
|
||||
Gfx D_02007650[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPSetRenderMode(G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH),
|
||||
gsDPSetTexturePersp(G_TP_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetPrimColor(0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
|
||||
gsDPSetTextureFilter(G_TF_BILERP),
|
||||
gsDPSetAlphaCompare(G_AC_NONE),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020076B0[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsSPSetGeometryMode(G_ZBUFFER),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020076E0[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007708[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007728[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007748[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_MODULATEI_PRIM, G_CC_MODULATEI_PRIM),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007768[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007788[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020077A8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_SHADE | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020077D8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPSetTexturePersp(G_TP_NONE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020077F8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineLERP(0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007818[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineLERP(0, 0, 0, SHADE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, SHADE, TEXEL0, 0, PRIMITIVE, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007838[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[2], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007858[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[4], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007878[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[6], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007898[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[8], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078B8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[10], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078D8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[12], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078F8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[14], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007918[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(&D_02007BB8[16], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007938[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[20], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007958[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[22], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007978[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[24], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007998[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[26], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079B8[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[28], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079D8[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[30], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079F8[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[32], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A18[] = {
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[34], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A38[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[38], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A58[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[40], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A78[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[42], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A98[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[44], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AB8[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[46], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AD8[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[48], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AF8[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[50], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007B18[] = {
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[52], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
UNUSED Vtx D_02007B38[] = {
|
||||
{{{ 0, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 16, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 16, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 0, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 0, -8, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 8, -8, 0}, 0, {448, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 8, 0, 0}, 0, {448, 448}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 448}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
#ifdef AVOID_UB
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 65520, 0}, 0, {960, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65504, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 65504, 0}, 0, {1856, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#else
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007BD8[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007BF8[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007C18[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007C38[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007C58[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007C78[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007C98[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007CB8[] = {
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007CD8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 65520, 0}, 0, {960, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007CF8[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007D18[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007D38[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007D58[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007D78[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007D98[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007DB8[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007DD8[] = {
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007DF8[] = {
|
||||
{{{ 0, 65504, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 65504, 0}, 0, {1856, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007E18[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007E38[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007E58[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007E78[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007E98[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007EB8[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007ED8[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
Vtx D_02007EF8[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#endif
|
||||
|
||||
Gfx D_02007F18[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTexturePersp(G_TP_NONE),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsDPSetTextureFilter(G_TF_BILERP),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007F48[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007F60[] = {
|
||||
gsDPSetCycleType(G_CYC_FILL),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_CULL_BACK | G_LIGHTING),
|
||||
gsDPSetFillColor(0x00010001),
|
||||
gsDPFillRectangle(0, 0, 319, 239),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_CULL_BACK | G_LIGHTING),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
|
||||
gsDPPipeSync(),
|
||||
gsSPDisplayList(startup_texture_dl3),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007FC8[] = {
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_CULL_BACK | G_LIGHTING),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02008008[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02008030[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_FILL),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02008058[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "data/path_spawn_metadata.h"
|
||||
#include "courses/all_course_data.h"
|
||||
#include <assets/ceremony_data.h>
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
// @warning Array contains an extra zero element at the end.
|
||||
KartAIBehaviour *gKartAIBehaviourLUT[] = {
|
||||
|
||||
@@ -184,9 +184,12 @@ Vtx gBalloonVertexPlane2[] = {
|
||||
{{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}},
|
||||
};
|
||||
|
||||
u8 D_800E52D0[] = {
|
||||
#include "assets/code/some_data/gTLUTOnomatopoeia.rgba16.inc.c"
|
||||
};
|
||||
// Moved to OTR asset see some_data.yml
|
||||
// Symbol renamed to gTLUTOnomatopoeia
|
||||
//
|
||||
// u8 D_800E52D0[] = {
|
||||
// #include "assets/code/some_data/gTLUTOnomatopoeia.rgba16.inc.c"
|
||||
// };
|
||||
|
||||
u8 *gCourseOutlineTextures[] = {
|
||||
gTextureCourseOutlineMarioRaceway, gTextureCourseOutlineChocoMountain, gTextureCourseOutlineBowsersCastle, gTextureCourseOutlineBansheeBoardwalk,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#ifndef SOME_DATA_H
|
||||
#define SOME_DATA_H
|
||||
#ifndef SOME_DATA_HH
|
||||
#define SOME_DATA_HH
|
||||
// SOME_DATA_HH named this way prevent conflict with <assets/some_data.h>
|
||||
|
||||
#include <libultra/gbi.h>
|
||||
#include "spline.h"
|
||||
@@ -18,7 +19,6 @@ extern Vtx D_800E51D0[];
|
||||
extern Vtx D_800E5210[];
|
||||
extern Vtx gBalloonVertexPlane1[];
|
||||
extern Vtx gBalloonVertexPlane2[];
|
||||
extern u8 D_800E52D0[];
|
||||
extern u8 *gCourseOutlineTextures[];
|
||||
extern s16 D_800E5520[];
|
||||
extern s16 D_800E5548[];
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
#ifndef DATA_SEGMENT2_H
|
||||
#define DATA_SEGMENT2_H
|
||||
|
||||
#include <libultra/gbi.h>
|
||||
|
||||
extern Vtx D_02007B38[];
|
||||
|
||||
extern Gfx D_02007650[];
|
||||
extern Gfx D_020076B0[];
|
||||
extern Gfx D_020076E0[];
|
||||
extern Gfx D_02007708[];
|
||||
extern Gfx D_02007728[];
|
||||
extern Gfx D_02007748[];
|
||||
extern Gfx D_02007768[];
|
||||
extern Gfx D_02007788[];
|
||||
extern Gfx D_020077A8[];
|
||||
extern Gfx D_020077D8[];
|
||||
extern Gfx D_020077F8[];
|
||||
extern Gfx D_02007818[];
|
||||
extern Gfx D_02007838[];
|
||||
extern Gfx D_02007858[];
|
||||
extern Gfx D_02007878[];
|
||||
extern Gfx D_02007898[];
|
||||
extern Gfx D_020078B8[];
|
||||
extern Gfx D_020078D8[];
|
||||
extern Gfx D_020078F8[];
|
||||
extern Gfx D_02007918[];
|
||||
extern Gfx D_02007938[];
|
||||
extern Gfx D_02007958[];
|
||||
extern Gfx D_02007978[];
|
||||
extern Gfx D_02007998[];
|
||||
extern Gfx D_020079B8[];
|
||||
extern Gfx D_020079D8[];
|
||||
extern Gfx D_020079F8[];
|
||||
extern Gfx D_02007A18[];
|
||||
extern Gfx D_02007A38[];
|
||||
extern Gfx D_02007A58[];
|
||||
extern Gfx D_02007A78[];
|
||||
extern Gfx D_02007A98[];
|
||||
extern Gfx D_02007AB8[];
|
||||
extern Gfx D_02007AD8[];
|
||||
extern Gfx D_02007AF8[];
|
||||
extern Gfx D_02007B18[];
|
||||
extern Gfx D_02007F18[];
|
||||
extern Gfx D_02007F48[];
|
||||
extern Gfx D_02007F60[];
|
||||
extern Gfx D_02007FC8[];
|
||||
extern Gfx D_02008008[];
|
||||
extern Gfx D_02008030[];
|
||||
extern Gfx D_02008058[];
|
||||
|
||||
extern Vtx D_02007BB8[];
|
||||
#ifndef AVOID_UB
|
||||
extern Vtx D_02007BD8[];
|
||||
extern Vtx D_02007BF8[];
|
||||
extern Vtx D_02007C18[];
|
||||
extern Vtx D_02007C38[];
|
||||
extern Vtx D_02007C58[];
|
||||
extern Vtx D_02007C78[];
|
||||
extern Vtx D_02007C98[];
|
||||
extern Vtx D_02007CB8[];
|
||||
extern Vtx D_02007CD8[];
|
||||
extern Vtx D_02007CF8[];
|
||||
extern Vtx D_02007D18[];
|
||||
extern Vtx D_02007D38[];
|
||||
extern Vtx D_02007D58[];
|
||||
extern Vtx D_02007D78[];
|
||||
extern Vtx D_02007D98[];
|
||||
extern Vtx D_02007DB8[];
|
||||
extern Vtx D_02007DD8[];
|
||||
extern Vtx D_02007DF8[];
|
||||
extern Vtx D_02007E18[];
|
||||
extern Vtx D_02007E38[];
|
||||
extern Vtx D_02007E58[];
|
||||
extern Vtx D_02007E78[];
|
||||
extern Vtx D_02007E98[];
|
||||
extern Vtx D_02007EB8[];
|
||||
extern Vtx D_02007ED8[];
|
||||
extern Vtx D_02007EF8[];
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
@@ -53,9 +53,9 @@ void func_80280038(void) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
|
||||
guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], gScreenAspect, D_80150150, D_8015014C, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, perspNorm);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, (&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
guLookAt(&gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, (&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
|
||||
gCurrentCourseId = gCreditsCourseId;
|
||||
mtxf_identity(matrix);
|
||||
render_set_position(matrix, 0);
|
||||
|
||||
@@ -234,7 +234,7 @@ void func_80280A28(Vec3f arg0, Vec3s arg1, f32 arg2) {
|
||||
mtx[2][1] = D_80287500[1][2] * arg2;
|
||||
mtx[2][2] = D_80287500[2][2] * arg2;
|
||||
convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], mtx);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxEffect[gMatrixEffectCount], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
void render_fireworks(Vec3f arg0, f32 arg1, s32 rgb, s16 alpha) {
|
||||
|
||||
+8
-12
@@ -508,12 +508,6 @@ void dma_copy(u8 *dest, u8 *romAddr, size_t size) {
|
||||
}
|
||||
}
|
||||
|
||||
static u8 memoryPool[0xAB630];
|
||||
|
||||
#define PRINT_MEMPOOL \
|
||||
printf("\nPool Start: 0x%llX, Pool End: 0x%llX, size: 0x%llX\ngNextFreeMemoryAddress: 0x%llX\n\n", memoryPool, \
|
||||
memoryPool + sizeof(memoryPool), (memoryPool + sizeof(memoryPool)) - memoryPool, gNextFreeMemoryAddress)
|
||||
|
||||
/**
|
||||
* Setup main segments and framebuffers.
|
||||
*/
|
||||
@@ -530,13 +524,10 @@ void setup_game_memory(void) {
|
||||
// set_segment_base_addr(0, (void *) SEG_START);
|
||||
|
||||
// // Memory pool size of 0xAB630
|
||||
bzero(memoryPool, sizeof(memoryPool));
|
||||
initialize_memory_pool(memoryPool, memoryPool + sizeof(memoryPool));
|
||||
initialize_memory_pool();
|
||||
|
||||
func_80000BEC();
|
||||
|
||||
PRINT_MEMPOOL;
|
||||
|
||||
// // Initialize trig tables segment
|
||||
// osInvalDCache((void *) TRIG_TABLES, TRIG_TABLES_SIZE);
|
||||
// osPiStartDma(&gDmaIoMesg, 0, 0, TRIG_TABLES_ROM_START, (void *) TRIG_TABLES, TRIG_TABLES_SIZE, &gDmaMesgQueue);
|
||||
@@ -1165,7 +1156,7 @@ void update_gamestate(void) {
|
||||
* @bug Reloading this segment makes random_u16() deterministic for player spawn order.
|
||||
* In laymens terms, random_u16() outputs the same value every time.
|
||||
*/
|
||||
init_segment_racing();
|
||||
//init_segment_racing();
|
||||
setup_race();
|
||||
break;
|
||||
case ENDING:
|
||||
@@ -1175,7 +1166,7 @@ void update_gamestate(void) {
|
||||
break;
|
||||
case CREDITS_SEQUENCE:
|
||||
gCurrentlyLoadedCourseId = COURSE_NULL;
|
||||
init_segment_racing();
|
||||
//init_segment_racing();
|
||||
init_segment_ending_sequences();
|
||||
load_credits();
|
||||
break;
|
||||
@@ -1183,6 +1174,11 @@ void update_gamestate(void) {
|
||||
}
|
||||
|
||||
void thread5_game_loop(void) {
|
||||
|
||||
// if (GfxDebuggerIsDebugging()) {
|
||||
// Graphics_PushFrame(gGfxPool->gfxPool);
|
||||
// return;
|
||||
// }
|
||||
setup_game_memory();
|
||||
osCreateMesgQueue(&gGfxVblankQueue, gGfxMesgBuf, 1);
|
||||
osCreateMesgQueue(&gGameVblankQueue, &gGameMesgBuf, 1);
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ f32 D_8018EDD8;
|
||||
f32 D_8018EDDC;
|
||||
s32 D_8018EDE0;
|
||||
s8 gCharacterGridSelections[4]; // map from player id to current grid position
|
||||
bool D_8018EDE8[4]; // map player id to isCharSelected on CSS
|
||||
s8 D_8018EDE8[4]; // map player id to isCharSelected on CSS
|
||||
s8 D_8018EDEC;
|
||||
s8 gMainMenuSelectionDepth;
|
||||
s8 D_8018EDEE; // grid screen state?
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ extern f32 D_8018EDDC;
|
||||
extern s32 D_8018EDE0;
|
||||
|
||||
extern s8 gCharacterGridSelections[];
|
||||
extern bool D_8018EDE8[];
|
||||
extern s8 D_8018EDE8[];
|
||||
extern s8 D_8018EDEC;
|
||||
extern s8 gMainMenuSelectionDepth;
|
||||
extern s8 D_8018EDEE;
|
||||
|
||||
+34
-9
@@ -7,6 +7,11 @@
|
||||
#include "resource/importers/GenericArrayFactory.h"
|
||||
#include "resource/importers/Vec3fFactory.h"
|
||||
#include "resource/importers/Vec3sFactory.h"
|
||||
#include "resource/importers/KartAIFactory.h"
|
||||
#include "resource/importers/TrackSectionsFactory.h"
|
||||
#include "resource/importers/TrackWaypointFactory.h"
|
||||
#include "resource/importers/ActorSpawnDataFactory.h"
|
||||
#include <Fast3D/Fast3dWindow.h>
|
||||
|
||||
#include <Fast3D/gfx_pc.h>
|
||||
#include <Fast3D/gfx_rendering_api.h>
|
||||
@@ -17,6 +22,12 @@
|
||||
extern "C" {
|
||||
float gInterpolationStep = 0.0f;
|
||||
#include <macros.h>
|
||||
#include <DisplayListFactory.h>
|
||||
#include <TextureFactory.h>
|
||||
#include <MatrixFactory.h>
|
||||
#include <ArrayFactory.h>
|
||||
#include <BlobFactory.h>
|
||||
#include <VertexFactory.h>
|
||||
}
|
||||
|
||||
GameEngine* GameEngine::Instance;
|
||||
@@ -45,6 +56,18 @@ GameEngine::GameEngine() {
|
||||
loader->RegisterResourceFactory(std::make_shared<SF64::ResourceFactoryBinaryVec3fV0>(), RESOURCE_FORMAT_BINARY, "Vec3f", static_cast<uint32_t>(SF64::ResourceType::Vec3f), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<SF64::ResourceFactoryBinaryVec3sV0>(), RESOURCE_FORMAT_BINARY, "Vec3s", static_cast<uint32_t>(SF64::ResourceType::Vec3s), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<SF64::ResourceFactoryBinaryGenericArrayV0>(), RESOURCE_FORMAT_BINARY, "GenericArray", static_cast<uint32_t>(SF64::ResourceType::GenericArray), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryTextureV0>(), RESOURCE_FORMAT_BINARY, "Texture", static_cast<uint32_t>(LUS::ResourceType::Texture), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryTextureV1>(), RESOURCE_FORMAT_BINARY, "Texture", static_cast<uint32_t>(LUS::ResourceType::Texture), 1);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryVertexV0>(), RESOURCE_FORMAT_BINARY, "Vertex", static_cast<uint32_t>(LUS::ResourceType::Vertex), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryDisplayListV0>(), RESOURCE_FORMAT_BINARY, "DisplayList", static_cast<uint32_t>(LUS::ResourceType::DisplayList), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryMatrixV0>(), RESOURCE_FORMAT_BINARY, "Matrix", static_cast<uint32_t>(LUS::ResourceType::Matrix), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryArrayV0>(), RESOURCE_FORMAT_BINARY, "Array", static_cast<uint32_t>(LUS::ResourceType::Array), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<LUS::ResourceFactoryBinaryBlobV0>(), RESOURCE_FORMAT_BINARY, "Blob", static_cast<uint32_t>(LUS::ResourceType::Blob), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<MK64::ResourceFactoryBinaryKartAIV0>(), RESOURCE_FORMAT_BINARY, "KartAI", static_cast<uint32_t>(MK64::ResourceType::KartAI), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<MK64::ResourceFactoryBinaryTrackSectionsV0>(), RESOURCE_FORMAT_BINARY, "TrackSections", static_cast<uint32_t>(MK64::ResourceType::TrackSection), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<MK64::ResourceFactoryBinaryTrackWaypointsV0>(), RESOURCE_FORMAT_BINARY, "Waypoints", static_cast<uint32_t>(MK64::ResourceType::Waypoints), 0);
|
||||
loader->RegisterResourceFactory(std::make_shared<MK64::ResourceFactoryBinaryActorSpawnDataV0>(), RESOURCE_FORMAT_BINARY, "SpawnData", static_cast<uint32_t>(MK64::ResourceType::SpawnData), 0);
|
||||
|
||||
}
|
||||
|
||||
void GameEngine::Create(){
|
||||
@@ -79,9 +102,10 @@ void GameEngine::StartFrame() const{
|
||||
this->context->GetWindow()->StartFrame();
|
||||
}
|
||||
|
||||
void GameEngine::ProcessFrame(void (*run_one_game_iter)()) const {
|
||||
this->context->GetWindow()->MainLoop(run_one_game_iter);
|
||||
}
|
||||
// void GameEngine::ProcessFrame(void (*run_one_game_iter)()) const {
|
||||
// //this->context->GetWindow()->MainLoop(run_one_game_iter);
|
||||
// Instance->context->GetWindow()->MainLoop(run_one_game_iter);
|
||||
// }
|
||||
|
||||
void GameEngine::RunCommands(Gfx* Commands) {
|
||||
gfx_run(Commands, {});
|
||||
@@ -95,8 +119,11 @@ void GameEngine::RunCommands(Gfx* Commands) {
|
||||
|
||||
void GameEngine::ProcessGfxCommands(Gfx* commands) {
|
||||
RunCommands(commands);
|
||||
Instance->context->GetWindow()->SetTargetFps(30);
|
||||
Instance->context->GetWindow()->SetMaximumFrameLatency(1);
|
||||
auto wnd = std::dynamic_pointer_cast<Fast::Fast3dWindow>(Ship::Context::GetInstance()->GetWindow());
|
||||
if (wnd != nullptr) {
|
||||
wnd->SetTargetFps(30);
|
||||
wnd->SetMaximumFrameLatency(1);
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" uint32_t GameEngine_GetSampleRate() {
|
||||
@@ -129,10 +156,8 @@ extern "C" uint32_t GameEngine_GetGameVersion() {
|
||||
static const char* sOtrSignature = "__OTR__";
|
||||
|
||||
extern "C" uint8_t GameEngine_OTRSigCheck(const char* data) {
|
||||
if(data == nullptr) {
|
||||
return 0;
|
||||
}
|
||||
return strncmp(data, sOtrSignature, strlen(sOtrSignature)) == 0;
|
||||
static const char* sOtrSignaturea = "__OTR__";
|
||||
return strncmp(data, sOtrSignaturea, strlen(sOtrSignaturea)) == 0;
|
||||
}
|
||||
|
||||
// struct TimedEntry {
|
||||
|
||||
@@ -13,9 +13,9 @@ extern "C" void gSPDisplayList(Gfx* pkt, Gfx* dl) {
|
||||
auto resource = Ship::Context::GetInstance()->GetResourceManager()->LoadResource(imgData);
|
||||
auto res = std::static_pointer_cast<LUS::DisplayList>(resource);
|
||||
dl = &res->Instructions[0];
|
||||
// dl->words.trace.file = imgData;
|
||||
// dl->words.trace.idx = 0;
|
||||
// dl->words.trace.valid = true;
|
||||
dl->words.trace.file = imgData;
|
||||
dl->words.trace.idx = 0;
|
||||
dl->words.trace.valid = true;
|
||||
}
|
||||
|
||||
__gSPDisplayList(pkt, dl);
|
||||
|
||||
+4
-1
@@ -38,7 +38,10 @@ int main(int argc, char *argv[]) {
|
||||
// audio_init();
|
||||
// sound_init();
|
||||
thread5_game_loop();
|
||||
GameEngine::Instance->ProcessFrame(push_frame);
|
||||
while (WindowIsRunning()) {
|
||||
push_frame();
|
||||
}
|
||||
//GameEngine::Instance->ProcessFrame(push_frame);
|
||||
GameEngine::Instance->Destroy();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#include "ActorSpawnDataFactory.h"
|
||||
#include "../type/SpawnData.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
#include <common_structs.h>
|
||||
|
||||
namespace MK64 {
|
||||
std::shared_ptr<Ship::IResource> ResourceFactoryBinaryActorSpawnDataV0::ReadResource(std::shared_ptr<Ship::File> file) {
|
||||
if (!FileHasValidFormatAndReader(file)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto section = std::make_shared<ActorSpawn>(file->InitData);
|
||||
auto reader = std::get<std::shared_ptr<Ship::BinaryReader>>(file->Reader);
|
||||
|
||||
uint32_t count = reader->ReadUInt32();
|
||||
section->ActorSpawnDataList.reserve(count);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
ActorSpawnData data;
|
||||
data.pos[0] = reader->ReadInt16();
|
||||
data.pos[1] = reader->ReadInt16();
|
||||
data.pos[2] = reader->ReadInt16();
|
||||
data.signedSomeId = reader->ReadUByte();
|
||||
|
||||
section->ActorSpawnDataList.push_back(data);
|
||||
}
|
||||
|
||||
return section;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Resource.h"
|
||||
#include "ResourceFactoryBinary.h"
|
||||
|
||||
namespace MK64 {
|
||||
class ResourceFactoryBinaryActorSpawnDataV0 : public Ship::ResourceFactoryBinary {
|
||||
public:
|
||||
std::shared_ptr<Ship::IResource> ReadResource(std::shared_ptr<Ship::File> file) override;
|
||||
};
|
||||
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,29 @@
|
||||
#include "KartAIFactory.h"
|
||||
#include "../type/KartAI.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
std::shared_ptr<Ship::IResource> ResourceFactoryBinaryKartAIV0::ReadResource(std::shared_ptr<Ship::File> file) {
|
||||
if (!FileHasValidFormatAndReader(file)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ai = std::make_shared<KartAI>(file->InitData);
|
||||
auto reader = std::get<std::shared_ptr<Ship::BinaryReader>>(file->Reader);
|
||||
|
||||
uint32_t count = reader->ReadUInt32();
|
||||
ai->KartAIList.reserve(count);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
KartAIBehaviour data;
|
||||
data.waypointStart = reader->ReadInt16();
|
||||
data.waypointEnd = reader->ReadInt16();
|
||||
data.type = reader->ReadInt32();
|
||||
|
||||
ai->KartAIList.push_back(data);
|
||||
}
|
||||
|
||||
return ai;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Resource.h"
|
||||
#include "ResourceFactoryBinary.h"
|
||||
|
||||
namespace MK64 {
|
||||
class ResourceFactoryBinaryKartAIV0 : public Ship::ResourceFactoryBinary {
|
||||
public:
|
||||
std::shared_ptr<Ship::IResource> ReadResource(std::shared_ptr<Ship::File> file) override;
|
||||
};
|
||||
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,30 @@
|
||||
#include "TrackSectionsFactory.h"
|
||||
#include "../type/TrackSections.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
std::shared_ptr<Ship::IResource> ResourceFactoryBinaryTrackSectionsV0::ReadResource(std::shared_ptr<Ship::File> file) {
|
||||
if (!FileHasValidFormatAndReader(file)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto section = std::make_shared<TrackSectionsClass>(file->InitData);
|
||||
auto reader = std::get<std::shared_ptr<Ship::BinaryReader>>(file->Reader);
|
||||
|
||||
uint32_t count = reader->ReadUInt32();
|
||||
section->TrackSectionsList.reserve(count);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
TrackSectionsI data;
|
||||
data.addr = reader->ReadUInt32();
|
||||
data.surfaceType = reader->ReadUByte();
|
||||
data.sectionId = reader->ReadUByte();
|
||||
data.flags = reader->ReadUInt16();
|
||||
|
||||
section->TrackSectionsList.push_back(data);
|
||||
}
|
||||
|
||||
return section;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Resource.h"
|
||||
#include "ResourceFactoryBinary.h"
|
||||
|
||||
namespace MK64 {
|
||||
class ResourceFactoryBinaryTrackSectionsV0 : public Ship::ResourceFactoryBinary {
|
||||
public:
|
||||
std::shared_ptr<Ship::IResource> ReadResource(std::shared_ptr<Ship::File> file) override;
|
||||
};
|
||||
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,30 @@
|
||||
#include "TrackWaypointFactory.h"
|
||||
#include "../type/TrackWaypoint.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
std::shared_ptr<Ship::IResource> ResourceFactoryBinaryTrackWaypointsV0::ReadResource(std::shared_ptr<Ship::File> file) {
|
||||
if (!FileHasValidFormatAndReader(file)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto section = std::make_shared<TrackWaypoints>(file->InitData);
|
||||
auto reader = std::get<std::shared_ptr<Ship::BinaryReader>>(file->Reader);
|
||||
|
||||
uint32_t count = reader->ReadUInt32();
|
||||
section->TrackWaypointList.reserve(count);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
TrackWaypoint data;
|
||||
data.posX = reader->ReadInt16();
|
||||
data.posY = reader->ReadInt16();
|
||||
data.posZ = reader->ReadInt16();
|
||||
data.trackSegment = reader->ReadUInt16();
|
||||
|
||||
section->TrackWaypointList.push_back(data);
|
||||
}
|
||||
|
||||
return section;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Resource.h"
|
||||
#include "ResourceFactoryBinary.h"
|
||||
|
||||
namespace MK64 {
|
||||
class ResourceFactoryBinaryTrackWaypointsV0 : public Ship::ResourceFactoryBinary {
|
||||
public:
|
||||
std::shared_ptr<Ship::IResource> ReadResource(std::shared_ptr<Ship::File> file) override;
|
||||
};
|
||||
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,15 @@
|
||||
#include "KartAI.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
KartAI::KartAI() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {
|
||||
}
|
||||
|
||||
KartAIBehaviour* KartAI::GetPointer() {
|
||||
return KartAIList.data();
|
||||
}
|
||||
|
||||
size_t KartAI::GetPointerSize() {
|
||||
return KartAIList.size() * sizeof(KartAIBehaviour);
|
||||
}
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource/Resource.h"
|
||||
#include <vector>
|
||||
|
||||
struct KartAIBehaviour {
|
||||
/* 0x0 */ int16_t waypointStart;
|
||||
/* 0x2 */ int16_t waypointEnd;
|
||||
/* 0x4 */ int32_t type;
|
||||
}; // size = 0x8
|
||||
|
||||
namespace MK64 {
|
||||
class KartAI : public Ship::Resource<KartAIBehaviour> {
|
||||
public:
|
||||
using Resource::Resource;
|
||||
|
||||
KartAI();
|
||||
|
||||
KartAIBehaviour* GetPointer() override;
|
||||
size_t GetPointerSize() override;
|
||||
|
||||
std::vector<KartAIBehaviour> KartAIList;
|
||||
};
|
||||
} // namespace LUS
|
||||
@@ -1,21 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
namespace SF64 {
|
||||
enum class ResourceType {
|
||||
enum class ResourceType {
|
||||
// SF64
|
||||
AnimData = 0x414E494D, // ANIM
|
||||
ColPoly = 0x43504C59, // CPLY
|
||||
EnvSettings = 0x454E5653, // ENVS
|
||||
Limb = 0x4C494D42, // LIMB
|
||||
Message = 0x4D534720, // MSG
|
||||
MessageTable = 0x4D534754, // MSGT
|
||||
Skeleton = 0x534B454C, // SKEL
|
||||
Script = 0x53435250, // SCRP
|
||||
ScriptCmd = 0x53434D44, // SCMD
|
||||
Hitbox = 0x48544258, // HTBX
|
||||
ObjectInit = 0x4F42494E, // OBIN
|
||||
Vec3f = 0x56433346, // VC3F
|
||||
Vec3s = 0x56433353, // VC3S
|
||||
GenericArray = 0x47415252, // GARR
|
||||
};
|
||||
AnimData = 0x414E494D, // ANIM
|
||||
ColPoly = 0x43504C59, // CPLY
|
||||
EnvSettings = 0x454E5653, // ENVS
|
||||
Limb = 0x4C494D42, // LIMB
|
||||
Message = 0x4D534720, // MSG
|
||||
MessageTable = 0x4D534754, // MSGT
|
||||
Skeleton = 0x534B454C, // SKEL
|
||||
Script = 0x53435250, // SCRP
|
||||
ScriptCmd = 0x53434D44, // SCMD
|
||||
Hitbox = 0x48544258, // HTBX
|
||||
ObjectInit = 0x4F42494E, // OBIN
|
||||
Vec3f = 0x56433346, // VC3F
|
||||
Vec3s = 0x56433353, // VC3S
|
||||
GenericArray = 0x47415252, // GARR
|
||||
};
|
||||
} // namespace SOH
|
||||
|
||||
namespace MK64 {
|
||||
enum class ResourceType {
|
||||
CourseVertex = 0x43565458, // CVTX
|
||||
TrackSection = 0x5343544E, // SCTN
|
||||
Waypoints = 0x57505453, // WPTS
|
||||
Metadata = 0x4D444154, // MDAT
|
||||
SpawnData = 0x53444154, // SDAT
|
||||
KartAI = 0x44424856, // DBHV
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#include "SpawnData.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
ActorSpawn::ActorSpawn() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {
|
||||
}
|
||||
|
||||
ActorSpawnData* ActorSpawn::GetPointer() {
|
||||
return ActorSpawnDataList.data();
|
||||
}
|
||||
|
||||
size_t ActorSpawn::GetPointerSize() {
|
||||
return ActorSpawnDataList.size() * sizeof(ActorSpawnData);
|
||||
}
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource/Resource.h"
|
||||
#include <vector>
|
||||
#include <libultra/gbi.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
struct ActorSpawnData {
|
||||
/* 0x00 */ Vec3s pos;
|
||||
union {
|
||||
/* 0x06 */ u16 someId; // Usually populated, but not necessarily used by all actors types
|
||||
/* 0x06 */ s16 signedSomeId;
|
||||
};
|
||||
};
|
||||
|
||||
namespace MK64 {
|
||||
class ActorSpawn : public Ship::Resource<ActorSpawnData> {
|
||||
public:
|
||||
using Resource::Resource;
|
||||
|
||||
ActorSpawn();
|
||||
|
||||
ActorSpawnData* GetPointer() override;
|
||||
size_t GetPointerSize() override;
|
||||
|
||||
std::vector<ActorSpawnData> ActorSpawnDataList;
|
||||
};
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,15 @@
|
||||
#include "TrackSections.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
TrackSectionsClass::TrackSectionsClass() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {
|
||||
}
|
||||
|
||||
TrackSectionsI* TrackSectionsClass::GetPointer() {
|
||||
return TrackSectionsList.data();
|
||||
}
|
||||
|
||||
size_t TrackSectionsClass::GetPointerSize() {
|
||||
return TrackSectionsList.size() * sizeof(TrackSectionsI);
|
||||
}
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource/Resource.h"
|
||||
#include <vector>
|
||||
#include <libultra/gbi.h>
|
||||
|
||||
typedef struct {
|
||||
uintptr_t addr;
|
||||
uint8_t surfaceType;
|
||||
uint8_t sectionId;
|
||||
uint16_t flags;
|
||||
} TrackSectionsI;
|
||||
|
||||
namespace MK64 {
|
||||
class TrackSectionsClass : public Ship::Resource<TrackSectionsI> {
|
||||
public:
|
||||
using Resource::Resource;
|
||||
|
||||
TrackSectionsClass();
|
||||
|
||||
TrackSectionsI* GetPointer() override;
|
||||
size_t GetPointerSize() override;
|
||||
|
||||
std::vector<TrackSectionsI> TrackSectionsList;
|
||||
};
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,15 @@
|
||||
#include "TrackWaypoint.h"
|
||||
#include "libultraship/libultra/gbi.h"
|
||||
|
||||
namespace MK64 {
|
||||
TrackWaypoints::TrackWaypoints() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {
|
||||
}
|
||||
|
||||
TrackWaypoint* TrackWaypoints::GetPointer() {
|
||||
return TrackWaypointList.data();
|
||||
}
|
||||
|
||||
size_t TrackWaypoints::GetPointerSize() {
|
||||
return TrackWaypointList.size() * sizeof(TrackWaypoint);
|
||||
}
|
||||
} // namespace LUS
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource/Resource.h"
|
||||
#include <vector>
|
||||
#include <libultra/gbi.h>
|
||||
|
||||
struct TrackWaypoint {
|
||||
int16_t posX;
|
||||
int16_t posY;
|
||||
int16_t posZ;
|
||||
uint16_t trackSegment;
|
||||
};
|
||||
|
||||
namespace MK64 {
|
||||
class TrackWaypoints : public Ship::Resource<TrackWaypoint> {
|
||||
public:
|
||||
using Resource::Resource;
|
||||
|
||||
TrackWaypoints();
|
||||
|
||||
TrackWaypoint* GetPointer() override;
|
||||
size_t GetPointerSize() override;
|
||||
|
||||
std::vector<TrackWaypoint> TrackWaypointList;
|
||||
};
|
||||
} // namespace LUS
|
||||
+9
-3
@@ -3,6 +3,7 @@
|
||||
#include <course_offsets.h>
|
||||
#include <macros.h>
|
||||
#include <mk64.h>
|
||||
#include <align_asset_macro.h>
|
||||
#include <sounds.h>
|
||||
#include <common_structs.h>
|
||||
#include <actor_types.h>
|
||||
@@ -25,6 +26,7 @@
|
||||
#include "courses/all_course_data.h"
|
||||
#include "main.h"
|
||||
#include <assets/other_textures.h>
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
// Appears to be textures
|
||||
// or tluts
|
||||
@@ -1022,9 +1024,13 @@ void spawn_course_actors(void) {
|
||||
gNumPermanentActors = 0;
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
spawn_foliage(d_course_mario_raceway_tree_spawns);
|
||||
spawn_piranha_plants(d_course_mario_raceway_piranha_plant_spawns);
|
||||
spawn_all_item_boxes(d_course_mario_raceway_item_box_spawns);
|
||||
struct ActorSpawnData *a_d_course_mario_raceway_tree_spawns = (struct ActorSpawnData *) LOAD_ASSET(d_course_mario_raceway_tree_spawns);
|
||||
struct ActorSpawnData *a_d_course_mario_raceway_piranha_plant_spawns = (struct ActorSpawnData *) LOAD_ASSET(d_course_mario_raceway_piranha_plant_spawns);
|
||||
struct ActorSpawnData *a_d_course_mario_raceway_item_box_spawns = (struct ActorSpawnData *) LOAD_ASSET(d_course_mario_raceway_item_box_spawns);
|
||||
|
||||
spawn_foliage(a_d_course_mario_raceway_tree_spawns);
|
||||
spawn_piranha_plants(a_d_course_mario_raceway_piranha_plant_spawns);
|
||||
spawn_all_item_boxes(a_d_course_mario_raceway_item_box_spawns);
|
||||
vec3f_set(position, 150.0f, 40.0f, -1300.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
add_actor_to_empty_slot(position, rotation, velocity, ACTOR_MARIO_SIGN);
|
||||
|
||||
+25
-4
@@ -1986,22 +1986,43 @@ void find_and_set_vertex_data(Gfx *addr, s8 surfaceType, u16 sectionId) {
|
||||
uintptr_t lo;
|
||||
uintptr_t hi;
|
||||
s32 i;
|
||||
|
||||
//printf("Initial\n");
|
||||
//printf("ptr 0x%llX\n", &addr);
|
||||
//printf("w0 0x%llX\n", addr->words.w0);
|
||||
//printf("w1 0x%llX\n", addr->words.w1);
|
||||
//printf("----loop----\n");
|
||||
Gfx *gfx = (Gfx *) addr;
|
||||
D_8015F6FA = 0;
|
||||
D_8015F6FC = 0;
|
||||
|
||||
//u8 *orig = segmented_gfx_to_virtual(0x07000000);
|
||||
|
||||
// printf("\n\nORIG:\n");
|
||||
// for (size_t i = 0; i < 100; i++) {
|
||||
// printf(" 0x%X ", orig[i]);
|
||||
// }
|
||||
|
||||
for (i = 0; i < 0x1FFF; i++) {
|
||||
lo = gfx->words.w0;
|
||||
hi = gfx->words.w1;
|
||||
opcode = GFX_GET_OPCODE(lo);
|
||||
|
||||
// printf("ptr 0x%llX\n", &addr);
|
||||
// printf("op 0x%llX\n", opcode);
|
||||
// printf("w0 0x%X\n", lo);
|
||||
// printf("w1 0x%X\n", hi);
|
||||
|
||||
if (opcode == (G_DL << 24)) {
|
||||
// G_DL's hi contains an addr to another DL.
|
||||
find_and_set_vertex_data((Gfx *) hi, surfaceType, sectionId);
|
||||
Gfx *dl = segmented_gfx_to_virtual(hi);
|
||||
// printf("DL: 0x%llX\n", &dl);
|
||||
// printf(" w0 0x%X\n", dl->words.w0);
|
||||
// printf(" w1 0x%X\n", dl->words.w1);
|
||||
|
||||
find_and_set_vertex_data((Gfx *) (dl), surfaceType, sectionId);
|
||||
|
||||
} else if (opcode == (G_VTX << 24)) {
|
||||
set_vtx_buffer(hi, (lo >> 10) & 0x3F, ((lo >> 16) & 0xFF) >> 1);
|
||||
set_vtx_buffer(segmented_gfx_to_virtual(hi), (lo >> 10) & 0x3F, ((lo >> 16) & 0xFF) >> 1);
|
||||
|
||||
} else if (opcode == (G_TRI1 << 24)) {
|
||||
D_8015F58C += 1;
|
||||
@@ -2015,7 +2036,7 @@ void find_and_set_vertex_data(Gfx *addr, s8 surfaceType, u16 sectionId) {
|
||||
D_8015F58C += 2;
|
||||
set_vtx_from_quadrangle(hi, surfaceType, sectionId);
|
||||
|
||||
} else if (opcode == (G_ENDDL << 24)) {
|
||||
} else if (opcode == (int32_t)(G_ENDDL << 24)) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -52,16 +52,16 @@ s32 render_set_position(Mat4 arg0, s32 arg1) {
|
||||
mtxf_to_mtx(&gGfxPool->mtxObject[gMatrixObjectCount], arg0);
|
||||
switch (arg1) { /* irregular */
|
||||
case 0:
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxObject[gMatrixObjectCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxObject[gMatrixObjectCount++], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
break;
|
||||
case 1:
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxObject[gMatrixObjectCount++]), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxObject[gMatrixObjectCount++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
break;
|
||||
case 3:
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxObject[gMatrixObjectCount++]), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxObject[gMatrixObjectCount++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
break;
|
||||
case 2:
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxObject[gMatrixObjectCount++]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxObject[gMatrixObjectCount++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
|
||||
+96
-24
@@ -1,5 +1,6 @@
|
||||
#include <libultraship.h>
|
||||
#include <libultra/types.h>
|
||||
#include <align_asset_macro.h>
|
||||
#include <macros.h>
|
||||
#include <common_structs.h>
|
||||
#include <segments.h>
|
||||
@@ -12,10 +13,16 @@
|
||||
#include "math_util.h"
|
||||
#include "courses/courseTable.h"
|
||||
#include "defines.h"
|
||||
#include <assets/mario_raceway_displaylists.h>
|
||||
#include <assets/mario_raceway_vertices.h>
|
||||
#include <assert.h>
|
||||
|
||||
s32 sGfxSeekPosition;
|
||||
s32 sPackedSeekPosition;
|
||||
|
||||
static u8 sMemoryPool[0xFFFFF]; // Stock memory pool size: 0xAB630
|
||||
uintptr_t sPoolEnd = sMemoryPool + sizeof(sMemoryPool);
|
||||
|
||||
uintptr_t sPoolFreeSpace;
|
||||
struct MainPoolBlock *sPoolListHeadL;
|
||||
struct MainPoolBlock *sPoolListHeadR;
|
||||
@@ -28,6 +35,11 @@ struct UnkStruct_802B8CD4 D_802B8CD4[] = {
|
||||
s32 D_802B8CE4 = 0; // pad
|
||||
s32 memoryPadding[2];
|
||||
|
||||
#define PRINT_MEMPOOL \
|
||||
printf("\nPool Start: 0x%llX, Pool End: 0x%llX, size: 0x%llX\ngNextFreeMemoryAddress: 0x%llX\n\n", sMemoryPool, \
|
||||
sMemoryPool + sizeof(sMemoryPool), (sMemoryPool + sizeof(sMemoryPool)) - sMemoryPool, gNextFreeMemoryAddress)
|
||||
|
||||
|
||||
/**
|
||||
* @brief Returns the address of the next available memory location and updates the memory pointer
|
||||
* to reference the next location of available memory based provided size to allocate.
|
||||
@@ -38,6 +50,13 @@ void *get_next_available_memory_addr(uintptr_t size) {
|
||||
uintptr_t freeSpace = (uintptr_t) gNextFreeMemoryAddress;
|
||||
size = ALIGN16(size);
|
||||
gNextFreeMemoryAddress += size;
|
||||
|
||||
if (gNextFreeMemoryAddress > sPoolEnd) {
|
||||
printf("[memory.c] get_next_available_memory_addr(): Memory Pool Out of Bounds! Out of memory!\n");
|
||||
PRINT_MEMPOOL;
|
||||
assert(false);
|
||||
}
|
||||
|
||||
//printf("\nNEXT MEM ADDR 0x%llX\n\n", freeSpace[0]);
|
||||
return (void *) freeSpace;
|
||||
}
|
||||
@@ -73,7 +92,22 @@ void *segmented_to_virtual(const void *addr) {
|
||||
size_t segment = (uintptr_t) addr >> 24;
|
||||
size_t offset = (uintptr_t) addr & 0x00FFFFFF;
|
||||
|
||||
return (void *) ((gSegmentTable[segment] + offset) | 0x80000000);
|
||||
return (void *) ((gSegmentTable[segment] + offset));
|
||||
}
|
||||
|
||||
void *segment_offset_to_virtual(uint32_t segment, uint32_t offset) {
|
||||
return (void *) (gSegmentTable[segment] + ( (offset / 8) * sizeof(Gfx) ) );
|
||||
}
|
||||
|
||||
void *segmented_gfx_to_virtual(const void *addr) {
|
||||
size_t segment = (uintptr_t) addr >> 24;
|
||||
size_t offset = (uintptr_t) addr & 0x00FFFFFF;
|
||||
|
||||
offset = (offset / 8) * sizeof(Gfx);
|
||||
|
||||
printf("seg_gfx_to_virt: 0x%llX\n",addr);
|
||||
|
||||
return (void *) ((gSegmentTable[segment] + offset));
|
||||
}
|
||||
|
||||
void move_segment_table_to_dmem(void) {
|
||||
@@ -89,15 +123,21 @@ void move_segment_table_to_dmem(void) {
|
||||
*
|
||||
* Default memory size, 701.984 Kilobytes.
|
||||
*/
|
||||
void initialize_memory_pool(uintptr_t poolStart, uintptr_t poolEnd) {
|
||||
void initialize_memory_pool() {
|
||||
|
||||
uintptr_t poolStart = sMemoryPool;
|
||||
//uintptr_t sPoolEnd = sMemoryPool + sizeof(sMemoryPool);
|
||||
|
||||
bzero(sMemoryPool, sizeof(sMemoryPool));
|
||||
|
||||
poolStart = ALIGN16(poolStart);
|
||||
// Truncate to a 16-byte boundary.
|
||||
poolEnd &= ~0xF;
|
||||
sPoolEnd &= ~0xF;
|
||||
|
||||
gFreeMemorySize = (poolEnd - poolStart) - 0x10;
|
||||
gFreeMemorySize = (sPoolEnd - poolStart) - 0x10;
|
||||
gNextFreeMemoryAddress = poolStart;
|
||||
int bp = 0;
|
||||
|
||||
PRINT_MEMPOOL;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -108,9 +148,23 @@ void *allocate_memory(uintptr_t size) {
|
||||
|
||||
size = ALIGN16(size);
|
||||
gFreeMemorySize -= size;
|
||||
|
||||
if (gFreeMemorySize < 0) {
|
||||
printf("[memory.c] allocate_memory(): gFreeMemorySize below zero!\n");
|
||||
printf("gFreeMemorySize: 0x%X", gFreeMemorySize);
|
||||
PRINT_MEMPOOL;
|
||||
assert(false);
|
||||
}
|
||||
|
||||
freeSpace = (uintptr_t ) gNextFreeMemoryAddress;
|
||||
gNextFreeMemoryAddress += size;
|
||||
|
||||
if (gNextFreeMemoryAddress > sPoolEnd) {
|
||||
printf("[memory.c] allocate_memory(): Memory Pool Out of Bounds! Out of memory!\n");
|
||||
PRINT_MEMPOOL;
|
||||
assert(false);
|
||||
}
|
||||
|
||||
return (void *) freeSpace;
|
||||
}
|
||||
|
||||
@@ -415,21 +469,15 @@ uintptr_t MIO0_0F(u8 *arg0, uintptr_t arg1, uintptr_t arg2) {
|
||||
return oldHeapEndPtr;
|
||||
}
|
||||
|
||||
void func_802A86A8(CourseVtx *data, uintptr_t arg1) {
|
||||
CourseVtx *courseVtx = data;
|
||||
Vtx *vtx;
|
||||
void func_802A86A8(CourseVtx *courseVtx, Vtx *vtx, size_t arg1) {
|
||||
s32 tmp = ALIGN16(arg1 * 0x10);
|
||||
#ifdef AVOID_UB
|
||||
uintptr_t i;
|
||||
#else
|
||||
s32 i;
|
||||
#endif
|
||||
size_t i;
|
||||
s8 temp_a0;
|
||||
s8 temp_a3;
|
||||
s8 flags;
|
||||
|
||||
gHeapEndPtr -= tmp;
|
||||
vtx = (Vtx *) gHeapEndPtr;
|
||||
//gHeapEndPtr -= tmp;
|
||||
//vtx = (Vtx *) gHeapEndPtr;
|
||||
|
||||
// s32 to uintptr_t comparison required for matching.
|
||||
for (i = 0; i < arg1; i++) {
|
||||
@@ -469,7 +517,7 @@ void decompress_vtx(CourseVtx *arg0, uintptr_t vertexCount) {
|
||||
gNextFreeMemoryAddress += size;
|
||||
|
||||
mio0decode(vtxCompressed, (u8 *) freeSpace);
|
||||
func_802A86A8((CourseVtx *) freeSpace, vertexCount);
|
||||
//func_802A86A8((CourseVtx *) freeSpace, vertexCount);
|
||||
set_segment_base_addr(4, (void *) gHeapEndPtr);
|
||||
}
|
||||
|
||||
@@ -961,18 +1009,19 @@ UNUSED void func_802A9AEC(void) {
|
||||
* This issue is prevented so long as the packed file adheres to correct opcodes and unpack code
|
||||
* increments the file pointer the correct number of times.
|
||||
*/
|
||||
void displaylist_unpack(uintptr_t *data, uintptr_t finalDisplaylistOffset, uintptr_t arg2) {
|
||||
|
||||
void displaylist_unpack(Gfx *gfx, u8 *data, uintptr_t arg2) {
|
||||
u8 *packed_dl = data;
|
||||
|
||||
Gfx *gfx;
|
||||
uintptr_t addr;
|
||||
//uintptr_t addr;
|
||||
|
||||
u8 opcode;
|
||||
|
||||
finalDisplaylistOffset = ALIGN16(finalDisplaylistOffset) + 8;
|
||||
gHeapEndPtr -= finalDisplaylistOffset;
|
||||
addr = gHeapEndPtr;
|
||||
gfx = (Gfx *) gHeapEndPtr;
|
||||
// finalDisplaylistOffset = ALIGN16(finalDisplaylistOffset) + 8;
|
||||
// gHeapEndPtr -= finalDisplaylistOffset;
|
||||
// addr = gHeapEndPtr;
|
||||
// gfx = (Gfx *) gHeapEndPtr;
|
||||
|
||||
sGfxSeekPosition = 0;
|
||||
sPackedSeekPosition = 0;
|
||||
|
||||
@@ -1251,7 +1300,7 @@ void displaylist_unpack(uintptr_t *data, uintptr_t finalDisplaylistOffset, uintp
|
||||
break;
|
||||
}
|
||||
}
|
||||
set_segment_base_addr(0x7, (void *) addr);
|
||||
//set_segment_base_addr(0x7, (void *) addr);
|
||||
}
|
||||
|
||||
struct UnkStr_802AA7C8 {
|
||||
@@ -1323,6 +1372,29 @@ void *decompress_segments(u8 *start, u8 *end) {
|
||||
* @param courseId
|
||||
*/
|
||||
void load_course(s32 courseId) {
|
||||
printf("Loading Course Data\n");
|
||||
|
||||
// Extract packed DLs
|
||||
u8 *packed = (u8 *) LOAD_ASSET(d_course_mario_raceway_packed_dls);
|
||||
Gfx *gfx = (Gfx *) allocate_memory(sizeof(Gfx) * 3366); // Size of unpacked DLs
|
||||
displaylist_unpack(gfx, packed, 0);
|
||||
|
||||
gSegmentTable[7] = &gfx[0];
|
||||
|
||||
// Convert course vtx to vtx
|
||||
CourseVtx *cvtx = (CourseVtx *) LOAD_ASSET(d_course_mario_raceway_vertex);
|
||||
Vtx *vtx = (Vtx *) allocate_memory(sizeof(Vtx) * 5757);
|
||||
func_802A86A8(cvtx, vtx, 5757);
|
||||
gSegmentTable[4] = &vtx[0];
|
||||
|
||||
|
||||
|
||||
|
||||
// __gSPSegment(gDisplayListHead++, 7, &gfx);
|
||||
|
||||
|
||||
//printf("Course Data Loaded!\n");
|
||||
|
||||
// Future implementation for Extra mode and course stretching.
|
||||
|
||||
// if (gIsMirrorMode) {
|
||||
|
||||
+3
-1
@@ -45,8 +45,10 @@ void *get_next_available_memory_addr(uintptr_t);
|
||||
uintptr_t set_segment_base_addr(s32, void*);
|
||||
void *get_segment_base_addr(s32);
|
||||
void *segmented_to_virtual(const void *);
|
||||
void *segment_offset_to_virtual(uint32_t, uint32_t);
|
||||
void *segmented_gfx_to_virtual(const void *);
|
||||
void move_segment_table_to_dmem(void);
|
||||
void initialize_memory_pool(uintptr_t, uintptr_t);
|
||||
void initialize_memory_pool(void);
|
||||
void *decompress_segments(u8*, u8*);
|
||||
void *allocate_memory(uintptr_t);
|
||||
void *load_data(uintptr_t, uintptr_t);
|
||||
|
||||
+53
-17
@@ -19,6 +19,7 @@
|
||||
#include "courses/all_course_data.h"
|
||||
#include "courses/all_course_packed.h"
|
||||
#include "courses/all_course_offsets.h"
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
s16 D_802B87B0 = 995;
|
||||
s16 D_802B87B4 = 1000;
|
||||
@@ -45,8 +46,19 @@ s32 func_80290C20(Camera *camera) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void parse_course_displaylists(uintptr_t addr) {
|
||||
TrackSections *section = (TrackSections *) addr;
|
||||
void parse_course_displaylists(TrackSections *addr) {
|
||||
TrackSections *first = addr;
|
||||
TrackSections *section = addr;
|
||||
|
||||
while (addr->addr != 0) {
|
||||
section->addr = segmented_gfx_to_virtual(addr->addr);
|
||||
addr++;
|
||||
section++;
|
||||
}
|
||||
section = first;
|
||||
//section->surfaceType = addr->surfaceType;
|
||||
//section->flags = addr->flags;
|
||||
//section->sectionId = addr->sectionId;
|
||||
|
||||
while(section->addr != 0) {
|
||||
if (section->flags & 0x8000) {
|
||||
@@ -183,14 +195,17 @@ void load_surface_map(Gfx *addr[], struct UnkStruct_800DC5EC *arg1) {
|
||||
}
|
||||
|
||||
void func_80291198(void) {
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)d_course_mario_raceway_packed_dl_1140));
|
||||
// d_course_mario_raceway_packed_dl_1140
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07001140))); //
|
||||
}
|
||||
|
||||
void func_802911C4(void) {
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)d_course_mario_raceway_packed_dl_8E8));
|
||||
// d_course_mario_raceway_packed_dl_8E8
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x070008E8)));
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)d_course_mario_raceway_packed_dl_2D68));
|
||||
// d_course_mario_raceway_packed_dl_2D68
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07002D68)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -512,7 +527,8 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
if (func_80290C20(arg0->camera) == 1) {
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_3050));
|
||||
// d_course_mario_raceway_packed_dl_3050
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07003050)));
|
||||
}
|
||||
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
@@ -595,19 +611,26 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
}
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_3508));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_3240));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_14A0));
|
||||
// d_course_mario_raceway_packed_dl_3508
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07003508)));
|
||||
// d_course_mario_raceway_packed_dl_3240
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07003240)));
|
||||
// d_course_mario_raceway_packed_dl_14A0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x070014A0)));
|
||||
printf("LOADING SURFACE MAP\n");
|
||||
load_surface_map(&mario_raceway_dls, arg0);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_450));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_240));
|
||||
// d_course_mario_raceway_packed_dl_450
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07000450)));
|
||||
// d_course_mario_raceway_packed_dl_240
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07000240)));
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_E0));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_160));
|
||||
// d_course_mario_raceway_packed_dl_E0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x070000E0)));
|
||||
// d_course_mario_raceway_packed_dl_160
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) segmented_gfx_to_virtual(0x07000160)));
|
||||
printf("SURFACE MAP LOADED\n");
|
||||
}
|
||||
|
||||
@@ -1390,6 +1413,14 @@ void func_80295D6C(void) {
|
||||
D_8015F6F6 = -3000;
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
uint16_t segment;
|
||||
uint16_t offset;
|
||||
uint8_t surfaceType;
|
||||
uint8_t sectionId;
|
||||
uint16_t flags;
|
||||
} TrackSectionsI;
|
||||
|
||||
void func_80295D88(void) {
|
||||
gNumActors = 0;
|
||||
|
||||
@@ -1411,13 +1442,18 @@ void func_80295D88(void) {
|
||||
D_800DC5C8 = 0;
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
set_vertex_data_with_defaults((Gfx *) d_course_mario_raceway_packed_dl_1140);
|
||||
// d_course_mario_raceway_packed_dl_1140
|
||||
set_vertex_data_with_defaults((Gfx *) segmented_gfx_to_virtual(0x07001140));
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
set_vertex_data_with_defaults((Gfx *) d_course_mario_raceway_packed_dl_8E8);
|
||||
// d_course_mario_raceway_packed_dl_8E8
|
||||
set_vertex_data_with_defaults((Gfx *) segmented_gfx_to_virtual(0x070008E8));
|
||||
} else {
|
||||
set_vertex_data_with_defaults((Gfx *) d_course_mario_raceway_packed_dl_2D68);
|
||||
// d_course_mario_raceway_packed_dl_2D68
|
||||
set_vertex_data_with_defaults((Gfx *) segmented_gfx_to_virtual(0x07002D68));
|
||||
}
|
||||
parse_course_displaylists((uintptr_t) d_course_mario_raceway_addr);
|
||||
TrackSections *section = (TrackSections *) LOAD_ASSET(d_course_mario_raceway_addr);
|
||||
|
||||
parse_course_displaylists(section);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = gCourseMinY - 10.0f;
|
||||
break;
|
||||
|
||||
@@ -248,7 +248,7 @@ UNUSED s32 set_viewport2(void) {
|
||||
}
|
||||
|
||||
void set_viewport(void) {
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_802B8880));
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CLEAR_ALL_MODES);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
|
||||
}
|
||||
@@ -279,7 +279,7 @@ void func_802A4300(void) {
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
|
||||
gDPSetColorImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, VIRTUAL_TO_PHYSICAL(gPhysicalFramebuffers[sRenderingFramebuffer]));
|
||||
gDPSetFillColor(gDisplayListHead++, 0x00010001);
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_802B8880));
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "courses/all_course_data.h"
|
||||
#include <vehicles.h>
|
||||
#include "data/some_data.h"
|
||||
#include <assets/some_data.h>
|
||||
|
||||
void func_800431B0(Vec3f pos, Vec3su orientation, f32 scale, Vtx *vtx) {
|
||||
rsp_set_matrix_transformation(pos, orientation, scale);
|
||||
@@ -3554,7 +3555,7 @@ void func_80053E6C(s32 arg0) {
|
||||
s32 objectIndex;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007E98);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
|
||||
func_8004B614(0, 0, 0, 0, 0, 0, 0);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[1] = 0x8000;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_banshee_boardwalk_vertex:
|
||||
symbol: d_course_banshee_boardwalk_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
bowser_kart_frame000:
|
||||
symbol: gKartBowser000
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_bowsers_castle_vertex:
|
||||
symbol: d_course_bowsers_castle_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <waypoints.h>'
|
||||
|
||||
- '#include <align_asset_macro.h>'
|
||||
silver_trophy_dl:
|
||||
symbol: silver_trophy_dl
|
||||
type: gfx
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_choco_mountain_vertex:
|
||||
symbol: d_course_choco_mountain_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
tables:
|
||||
common_texture_hud_place:
|
||||
range: [0xD258, 0x14258]
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
tables:
|
||||
D_800E45C0:
|
||||
range: [0x800E45C0, 0x800E4608]
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- '#include <assets/data_800E8700.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
tables:
|
||||
D_800E8900:
|
||||
range: [0x800E8900, 0x800E89C0]
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x02, 0x12AAE0]
|
||||
- [0x0D, 0x132B50]
|
||||
header:
|
||||
code:
|
||||
- '#include <macros.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <assets/data_segment2.h>'
|
||||
- '#include <assets/startup_logo.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
D_02007650:
|
||||
symbol: D_02007650
|
||||
type: gfx
|
||||
offset: 0x7650
|
||||
D_020076B0:
|
||||
symbol: D_020076B0
|
||||
type: Gfx
|
||||
offset: 0x76B0
|
||||
D_020076E0:
|
||||
symbol: D_020076E0
|
||||
type: Gfx
|
||||
offset: 0x76E0
|
||||
D_02007708:
|
||||
symbol: D_02007708
|
||||
type: Gfx
|
||||
offset: 0x7708
|
||||
D_02007728:
|
||||
symbol: D_02007728
|
||||
type: Gfx
|
||||
offset: 0x7728
|
||||
D_02007748:
|
||||
symbol: D_02007748
|
||||
type: Gfx
|
||||
offset: 0x7748
|
||||
D_02007768:
|
||||
symbol: D_02007768
|
||||
type: Gfx
|
||||
offset: 0x7768
|
||||
D_02007788:
|
||||
symbol: D_02007788
|
||||
type: Gfx
|
||||
offset: 0x7788
|
||||
D_020077A8:
|
||||
symbol: D_020077A8
|
||||
type: Gfx
|
||||
offset: 0x77A8
|
||||
D_020077D8:
|
||||
symbol: D_020077D8
|
||||
type: Gfx
|
||||
offset: 0x77D8
|
||||
D_020077F8:
|
||||
symbol: D_020077F8
|
||||
type: Gfx
|
||||
offset: 0x77F8
|
||||
D_02007818:
|
||||
symbol: D_02007818
|
||||
type: Gfx
|
||||
offset: 0x7818
|
||||
D_02007838:
|
||||
symbol: D_02007838
|
||||
type: Gfx
|
||||
offset: 0x7838
|
||||
D_02007858:
|
||||
symbol: D_02007858
|
||||
type: Gfx
|
||||
offset: 0x7858
|
||||
D_02007878:
|
||||
symbol: D_02007878
|
||||
type: Gfx
|
||||
offset: 0x7878
|
||||
D_02007898:
|
||||
symbol: D_02007898
|
||||
type: Gfx
|
||||
offset: 0x7898
|
||||
D_020078B8:
|
||||
symbol: D_020078B8
|
||||
type: Gfx
|
||||
offset: 0x78B8
|
||||
D_020078D8:
|
||||
symbol: D_020078D8
|
||||
type: Gfx
|
||||
offset: 0x78D8
|
||||
D_020078F8:
|
||||
symbol: D_020078F8
|
||||
type: Gfx
|
||||
offset: 0x78F8
|
||||
D_02007918:
|
||||
symbol: D_02007918
|
||||
type: Gfx
|
||||
offset: 0x7918
|
||||
D_02007938:
|
||||
symbol: D_02007938
|
||||
type: Gfx
|
||||
offset: 0x7938
|
||||
D_02007958:
|
||||
symbol: D_02007958
|
||||
type: Gfx
|
||||
offset: 0x7958
|
||||
D_02007978:
|
||||
symbol: D_02007978
|
||||
type: Gfx
|
||||
offset: 0x7978
|
||||
D_02007998:
|
||||
symbol: D_02007998
|
||||
type: Gfx
|
||||
offset: 0x7998
|
||||
D_020079B8:
|
||||
symbol: D_020079B8
|
||||
type: Gfx
|
||||
offset: 0x79B8
|
||||
D_020079D8:
|
||||
symbol: D_020079D8
|
||||
type: Gfx
|
||||
offset: 0x79D8
|
||||
D_020079F8:
|
||||
symbol: D_020079F8
|
||||
type: Gfx
|
||||
offset: 0x79F8
|
||||
D_02007A18:
|
||||
symbol: D_02007A18
|
||||
type: Gfx
|
||||
offset: 0x7A18
|
||||
D_02007A38:
|
||||
symbol: D_02007A38
|
||||
type: Gfx
|
||||
offset: 0x7A38
|
||||
D_02007A58:
|
||||
symbol: D_02007A58
|
||||
type: Gfx
|
||||
offset: 0x7A58
|
||||
D_02007A78:
|
||||
symbol: D_02007A78
|
||||
type: Gfx
|
||||
offset: 0x7A78
|
||||
D_02007A98:
|
||||
symbol: D_02007A98
|
||||
type: Gfx
|
||||
offset: 0x7A98
|
||||
D_02007AB8:
|
||||
symbol: D_02007AB8
|
||||
type: Gfx
|
||||
offset: 0x7AB8
|
||||
D_02007AD8:
|
||||
symbol: D_02007AD8
|
||||
type: Gfx
|
||||
offset: 0x7AD8
|
||||
D_02007AF8:
|
||||
symbol: D_02007AF8
|
||||
type: Gfx
|
||||
offset: 0x7AF8
|
||||
D_02007B18:
|
||||
symbol: D_02007B18
|
||||
type: Gfx
|
||||
offset: 0x7B18
|
||||
D_02007B38: # unused
|
||||
symbol: D_02007B38
|
||||
type: vtx
|
||||
offset: 0x7B38
|
||||
count: 8
|
||||
D_02007BB8:
|
||||
symbol: D_02007BB8
|
||||
type: vtx
|
||||
offset: 0x7BB8
|
||||
count: 52
|
||||
D_02007F18:
|
||||
symbol: D_02007F18
|
||||
type: gfx
|
||||
offset: 0x7F18
|
||||
D_02007F48:
|
||||
symbol: D_02007F48
|
||||
type: gfx
|
||||
offset: 0x7F48
|
||||
D_02007F60:
|
||||
symbol: D_02007F60
|
||||
type: gfx
|
||||
offset: 0x7F60
|
||||
D_02007FC8:
|
||||
symbol: D_02007FC8
|
||||
type: gfx
|
||||
offset: 0x7FC8
|
||||
D_02008008:
|
||||
symbol: D_02008008
|
||||
type: gfx
|
||||
offset: 0x8008
|
||||
D_02008030:
|
||||
symbol: D_02008030
|
||||
type: gfx
|
||||
offset: 0x8030
|
||||
D_02008058:
|
||||
symbol: D_02008058
|
||||
type: gfx
|
||||
offset: 0x8058
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
donkeykong_kart_frame000:
|
||||
symbol: gKartDK000
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_frappe_snowland_vertex:
|
||||
symbol: d_course_frappe_snowland_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_koopa_troopa_beach_vertex:
|
||||
symbol: d_course_koopa_troopa_beach_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
luigi_kart_frame000:
|
||||
symbol: gKartLuigi000
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_luigi_raceway_vertex:
|
||||
symbol: d_course_luigi_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
mario_kart_frame000:
|
||||
symbol: gKartMario000
|
||||
type: texture
|
||||
|
||||
@@ -0,0 +1,430 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x06, 0x8284D0]
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_mario_raceway_vertex:
|
||||
symbol: d_course_mario_raceway_data
|
||||
type: blob
|
||||
size: 0x13AD6
|
||||
offset: 0x0
|
||||
d_course_mario_raceway_dl_0:
|
||||
symbol: d_course_mario_raceway_dl_0
|
||||
type: gfx
|
||||
offset: 0x0
|
||||
d_course_mario_raceway_dl_E8:
|
||||
symbol: d_course_mario_raceway_dl_E8
|
||||
type: gfx
|
||||
offset: 0xE8
|
||||
d_course_mario_raceway_dl_1D0:
|
||||
symbol: d_course_mario_raceway_dl_1D0
|
||||
type: gfx
|
||||
offset: 0x1D0
|
||||
d_course_mario_raceway_dl_2C8:
|
||||
symbol: d_course_mario_raceway_dl_2C8
|
||||
type: gfx
|
||||
offset: 0x2C8
|
||||
d_course_mario_raceway_dl_3A8:
|
||||
symbol: d_course_mario_raceway_dl_3A8
|
||||
type: gfx
|
||||
offset: 0x3A8
|
||||
d_course_mario_raceway_dl_478:
|
||||
symbol: d_course_mario_raceway_dl_478
|
||||
type: gfx
|
||||
offset: 0x478
|
||||
d_course_mario_raceway_dl_568:
|
||||
symbol: d_course_mario_raceway_dl_568
|
||||
type: gfx
|
||||
offset: 0x568
|
||||
d_course_mario_raceway_dl_668:
|
||||
symbol: d_course_mario_raceway_dl_668
|
||||
type: gfx
|
||||
offset: 0x668
|
||||
d_course_mario_raceway_dl_750:
|
||||
symbol: d_course_mario_raceway_dl_750
|
||||
type: gfx
|
||||
offset: 0x750
|
||||
d_course_mario_raceway_dl_828:
|
||||
symbol: d_course_mario_raceway_dl_828
|
||||
type: gfx
|
||||
offset: 0x828
|
||||
d_course_mario_raceway_dl_928:
|
||||
symbol: d_course_mario_raceway_dl_928
|
||||
type: gfx
|
||||
offset: 0x928
|
||||
d_course_mario_raceway_dl_A00:
|
||||
symbol: d_course_mario_raceway_dl_A00
|
||||
type: gfx
|
||||
offset: 0xA00
|
||||
d_course_mario_raceway_dl_B08:
|
||||
symbol: d_course_mario_raceway_dl_B08
|
||||
type: gfx
|
||||
offset: 0xB08
|
||||
d_course_mario_raceway_dl_C20:
|
||||
symbol: d_course_mario_raceway_dl_C20
|
||||
type: gfx
|
||||
offset: 0xC20
|
||||
d_course_mario_raceway_dl_DC8:
|
||||
symbol: d_course_mario_raceway_dl_DC8
|
||||
type: gfx
|
||||
offset: 0xDC8
|
||||
d_course_mario_raceway_dl_F60:
|
||||
symbol: d_course_mario_raceway_dl_F60
|
||||
type: gfx
|
||||
offset: 0xF60
|
||||
d_course_mario_raceway_dl_10A8:
|
||||
symbol: d_course_mario_raceway_dl_10A8
|
||||
type: gfx
|
||||
offset: 0x10A8
|
||||
d_course_mario_raceway_dl_1210:
|
||||
symbol: d_course_mario_raceway_dl_1210
|
||||
type: gfx
|
||||
offset: 0x1210
|
||||
d_course_mario_raceway_dl_1408:
|
||||
symbol: d_course_mario_raceway_dl_1408
|
||||
type: gfx
|
||||
offset: 0x1408
|
||||
d_course_mario_raceway_dl_15C8:
|
||||
symbol: d_course_mario_raceway_dl_15C8
|
||||
type: gfx
|
||||
offset: 0x15C8
|
||||
d_course_mario_raceway_dl_1740:
|
||||
symbol: d_course_mario_raceway_dl_1740
|
||||
type: gfx
|
||||
offset: 0x1740
|
||||
d_course_mario_raceway_dl_1850:
|
||||
symbol: d_course_mario_raceway_dl_1850
|
||||
type: gfx
|
||||
offset: 0x1850
|
||||
d_course_mario_raceway_dl_1A30:
|
||||
symbol: d_course_mario_raceway_dl_1A30
|
||||
type: gfx
|
||||
offset: 0x1A30
|
||||
d_course_mario_raceway_dl_1B70:
|
||||
symbol: d_course_mario_raceway_dl_1B70
|
||||
type: gfx
|
||||
offset: 0x1B70
|
||||
d_course_mario_raceway_dl_1CF8:
|
||||
symbol: d_course_mario_raceway_dl_1CF8
|
||||
type: gfx
|
||||
offset: 0x1CF8
|
||||
d_course_mario_raceway_dl_1DE0:
|
||||
symbol: d_course_mario_raceway_dl_1DE0
|
||||
type: gfx
|
||||
offset: 0x1DE0
|
||||
d_course_mario_raceway_dl_1F68:
|
||||
symbol: d_course_mario_raceway_dl_1F68
|
||||
type: gfx
|
||||
offset: 0x1F68
|
||||
d_course_mario_raceway_dl_20A0:
|
||||
symbol: d_course_mario_raceway_dl_20A0
|
||||
type: gfx
|
||||
offset: 0x20A0
|
||||
d_course_mario_raceway_dl_21E8:
|
||||
symbol: d_course_mario_raceway_dl_21E8
|
||||
type: gfx
|
||||
offset: 0x21E8
|
||||
d_course_mario_raceway_dl_22E0:
|
||||
symbol: d_course_mario_raceway_dl_22E0
|
||||
type: gfx
|
||||
offset: 0x22E0
|
||||
d_course_mario_raceway_dl_2418:
|
||||
symbol: d_course_mario_raceway_dl_2418
|
||||
type: gfx
|
||||
offset: 0x2418
|
||||
d_course_mario_raceway_dl_2558:
|
||||
symbol: d_course_mario_raceway_dl_2558
|
||||
type: gfx
|
||||
offset: 0x2558
|
||||
d_course_mario_raceway_dl_2680:
|
||||
symbol: d_course_mario_raceway_dl_2680
|
||||
type: gfx
|
||||
offset: 0x2680
|
||||
d_course_mario_raceway_dl_2790:
|
||||
symbol: d_course_mario_raceway_dl_2790
|
||||
type: gfx
|
||||
offset: 0x2790
|
||||
d_course_mario_raceway_dl_28B0:
|
||||
symbol: d_course_mario_raceway_dl_28B0
|
||||
type: gfx
|
||||
offset: 0x28B0
|
||||
d_course_mario_raceway_dl_2A10:
|
||||
symbol: d_course_mario_raceway_dl_2A10
|
||||
type: gfx
|
||||
offset: 0x2A10
|
||||
d_course_mario_raceway_dl_2B40:
|
||||
symbol: d_course_mario_raceway_dl_2B40
|
||||
type: gfx
|
||||
offset: 0x2B40
|
||||
d_course_mario_raceway_dl_2C98:
|
||||
symbol: d_course_mario_raceway_dl_2C98
|
||||
type: gfx
|
||||
offset: 0x2C98
|
||||
d_course_mario_raceway_dl_2DC0:
|
||||
symbol: d_course_mario_raceway_dl_2DC0
|
||||
type: gfx
|
||||
offset: 0x2DC0
|
||||
d_course_mario_raceway_dl_2EF8:
|
||||
symbol: d_course_mario_raceway_dl_2EF8
|
||||
type: gfx
|
||||
offset: 0x2EF8
|
||||
d_course_mario_raceway_dl_3038:
|
||||
symbol: d_course_mario_raceway_dl_3038
|
||||
type: gfx
|
||||
offset: 0x3038
|
||||
d_course_mario_raceway_dl_31F0:
|
||||
symbol: d_course_mario_raceway_dl_31F0
|
||||
type: gfx
|
||||
offset: 0x31F0
|
||||
d_course_mario_raceway_dl_32D8:
|
||||
symbol: d_course_mario_raceway_dl_32D8
|
||||
type: gfx
|
||||
offset: 0x32D8
|
||||
d_course_mario_raceway_dl_3458:
|
||||
symbol: d_course_mario_raceway_dl_3458
|
||||
type: gfx
|
||||
offset: 0x3458
|
||||
d_course_mario_raceway_dl_35D0:
|
||||
symbol: d_course_mario_raceway_dl_35D0
|
||||
type: gfx
|
||||
offset: 0x35D0
|
||||
d_course_mario_raceway_dl_3748:
|
||||
symbol: d_course_mario_raceway_dl_3748
|
||||
type: gfx
|
||||
offset: 0x3748
|
||||
d_course_mario_raceway_dl_3830:
|
||||
symbol: d_course_mario_raceway_dl_3830
|
||||
type: gfx
|
||||
offset: 0x3830
|
||||
d_course_mario_raceway_dl_3960:
|
||||
symbol: d_course_mario_raceway_dl_3960
|
||||
type: gfx
|
||||
offset: 0x3960
|
||||
d_course_mario_raceway_dl_3AA0:
|
||||
symbol: d_course_mario_raceway_dl_3AA0
|
||||
type: gfx
|
||||
offset: 0x3AA0
|
||||
d_course_mario_raceway_dl_3C08:
|
||||
symbol: d_course_mario_raceway_dl_3C08
|
||||
type: gfx
|
||||
offset: 0x3C08
|
||||
d_course_mario_raceway_dl_3D68:
|
||||
symbol: d_course_mario_raceway_dl_3D68
|
||||
type: gfx
|
||||
offset: 0x3D68
|
||||
d_course_mario_raceway_dl_3EB8:
|
||||
symbol: d_course_mario_raceway_dl_3EB8
|
||||
type: gfx
|
||||
offset: 0x3EB8
|
||||
d_course_mario_raceway_dl_4038:
|
||||
symbol: d_course_mario_raceway_dl_4038
|
||||
type: gfx
|
||||
offset: 0x4038
|
||||
d_course_mario_raceway_dl_4150:
|
||||
symbol: d_course_mario_raceway_dl_4150
|
||||
type: gfx
|
||||
offset: 0x4150
|
||||
d_course_mario_raceway_dl_42A0:
|
||||
symbol: d_course_mario_raceway_dl_42A0
|
||||
type: gfx
|
||||
offset: 0x42A0
|
||||
d_course_mario_raceway_dl_43D8:
|
||||
symbol: d_course_mario_raceway_dl_43D8
|
||||
type: gfx
|
||||
offset: 0x43D8
|
||||
d_course_mario_raceway_dl_44F8:
|
||||
symbol: d_course_mario_raceway_dl_44F8
|
||||
type: gfx
|
||||
offset: 0x44F8
|
||||
d_course_mario_raceway_dl_4610:
|
||||
symbol: d_course_mario_raceway_dl_4610
|
||||
type: gfx
|
||||
offset: 0x4610
|
||||
d_course_mario_raceway_dl_4738:
|
||||
symbol: d_course_mario_raceway_dl_4738
|
||||
type: gfx
|
||||
offset: 0x4738
|
||||
d_course_mario_raceway_dl_4840:
|
||||
symbol: d_course_mario_raceway_dl_4840
|
||||
type: gfx
|
||||
offset: 0x4840
|
||||
d_course_mario_raceway_dl_4910:
|
||||
symbol: d_course_mario_raceway_dl_4910
|
||||
type: gfx
|
||||
offset: 0x4910
|
||||
d_course_mario_raceway_dl_4A60:
|
||||
symbol: d_course_mario_raceway_dl_4A60
|
||||
type: gfx
|
||||
offset: 0x4A60
|
||||
d_course_mario_raceway_dl_4B78:
|
||||
symbol: d_course_mario_raceway_dl_4B78
|
||||
type: gfx
|
||||
offset: 0x4B78
|
||||
d_course_mario_raceway_dl_4CD8:
|
||||
symbol: d_course_mario_raceway_dl_4CD8
|
||||
type: gfx
|
||||
offset: 0x4CD8
|
||||
d_course_mario_raceway_dl_4DC8:
|
||||
symbol: d_course_mario_raceway_dl_4DC8
|
||||
type: gfx
|
||||
offset: 0x4DC8
|
||||
d_course_mario_raceway_dl_4ED0:
|
||||
symbol: d_course_mario_raceway_dl_4ED0
|
||||
type: gfx
|
||||
offset: 0x4ED0
|
||||
d_course_mario_raceway_dl_4FF0:
|
||||
symbol: d_course_mario_raceway_dl_4FF0
|
||||
type: gfx
|
||||
offset: 0x4FF0
|
||||
d_course_mario_raceway_dl_5150:
|
||||
symbol: d_course_mario_raceway_dl_5150
|
||||
type: gfx
|
||||
offset: 0x5150
|
||||
d_course_mario_raceway_dl_5228:
|
||||
symbol: d_course_mario_raceway_dl_5228
|
||||
type: gfx
|
||||
offset: 0x5228
|
||||
d_course_mario_raceway_unknown_waypoints:
|
||||
symbol: d_course_mario_raceway_unknown_waypoints
|
||||
offset: 0x5568
|
||||
count: 73
|
||||
type: mk64:TRACK_WAYPOINTS
|
||||
d_course_mario_raceway_track_waypoints:
|
||||
symbol: d_course_mario_raceway_track_waypoints
|
||||
offset: 0x57B0
|
||||
count: 500
|
||||
type: mk64:TRACK_WAYPOINTS
|
||||
d_course_mario_raceway_piranha_plant_tlut:
|
||||
symbol: d_course_mario_raceway_piranha_plant_tlut
|
||||
type: texture
|
||||
offset: 0x6750
|
||||
width: 16
|
||||
height: 16
|
||||
format: rgba16
|
||||
ctype: u16
|
||||
d_course_mario_raceway_piranha_plant_model:
|
||||
symbol: d_course_mario_raceway_piranha_plant_model
|
||||
type: vtx
|
||||
offset: 0x6950
|
||||
count: 4
|
||||
d_course_mario_raceway_dl_piranha_plant:
|
||||
symbol: d_course_mario_raceway_dl_piranha_plant
|
||||
type: gfx
|
||||
offset: 0x6990
|
||||
d_course_mario_raceway_tree_model:
|
||||
symbol: d_course_mario_raceway_tree_model
|
||||
type: vtx
|
||||
offset: 0x6A28
|
||||
count: 4
|
||||
d_course_mario_raceway_dl_tree:
|
||||
symbol: d_course_mario_raceway_dl_tree
|
||||
type: gfx
|
||||
offset: 0x6A68
|
||||
d_course_mario_sign_model:
|
||||
symbol: d_course_mario_sign_model
|
||||
type: vtx
|
||||
offset: 0x6B08
|
||||
count: 8
|
||||
d_course_mario_raceway_06006B88:
|
||||
symbol: d_course_mario_raceway_06006B88
|
||||
type: vtx
|
||||
offset: 0x6B88
|
||||
count: 30
|
||||
d_course_mario_raceway_06006D68:
|
||||
symbol: d_course_mario_raceway_06006D68
|
||||
type: vtx
|
||||
offset: 0x6D68
|
||||
count: 24
|
||||
d_course_mario_raceway_06006EE8:
|
||||
symbol: d_course_mario_raceway_06006EE8
|
||||
type: vtx
|
||||
offset: 0x6EE8
|
||||
count: 6
|
||||
d_course_mario_raceway_06006F48:
|
||||
symbol: d_course_mario_raceway_06006F48
|
||||
type: vtx
|
||||
offset: 0x6F48
|
||||
count: 6
|
||||
d_course_mario_raceway_06006FA8:
|
||||
symbol: d_course_mario_raceway_06006FA8
|
||||
type: vtx
|
||||
offset: 0x6FA8
|
||||
count: 6
|
||||
d_course_mario_raceway_06007008:
|
||||
symbol: d_course_mario_raceway_06007008
|
||||
type: vtx
|
||||
offset: 0x7008
|
||||
count: 6
|
||||
d_course_mario_sign_left:
|
||||
symbol: d_course_mario_sign_left
|
||||
type: texture
|
||||
offset: 0x7068
|
||||
width: 32
|
||||
height: 64
|
||||
format: rgba16
|
||||
ctype: u16
|
||||
d_course_mario_sign_right:
|
||||
symbol: d_course_mario_sign_right
|
||||
type: texture
|
||||
offset: 0x8068
|
||||
width: 32
|
||||
height: 64
|
||||
format: rgba16
|
||||
ctype: u16
|
||||
d_course_mario_raceway_dl_9068:
|
||||
symbol: d_course_mario_raceway_dl_9068
|
||||
type: gfx
|
||||
offset: 0x9068
|
||||
d_course_mario_raceway_dl_90B0:
|
||||
symbol: d_course_mario_raceway_dl_90B0
|
||||
type: gfx
|
||||
offset: 0x90B0
|
||||
d_course_mario_raceway_dl_90C0:
|
||||
symbol: d_course_mario_raceway_dl_90C0
|
||||
type: gfx
|
||||
offset: 0x90C0
|
||||
d_course_mario_raceway_dl_9190:
|
||||
symbol: d_course_mario_raceway_dl_9190
|
||||
type: gfx
|
||||
offset: 0x9190
|
||||
d_course_mario_raceway_dl_9250:
|
||||
symbol: d_course_mario_raceway_dl_9250
|
||||
type: gfx
|
||||
offset: 0x9250
|
||||
d_course_mario_raceway_dl_9310:
|
||||
symbol: d_course_mario_raceway_dl_9310
|
||||
type: gfx
|
||||
offset: 0x9310
|
||||
d_course_mario_raceway_dl_sign:
|
||||
symbol: d_course_mario_raceway_dl_sign
|
||||
type: gfx
|
||||
offset: 0x9330
|
||||
d_course_mario_raceway_dl_9348:
|
||||
symbol: d_course_mario_raceway_dl_9348
|
||||
type: gfx
|
||||
offset: 0x9348
|
||||
d_course_mario_raceway_item_box_spawns:
|
||||
symbol: d_course_mario_raceway_item_box_spawns
|
||||
type: mk64:spawn_data
|
||||
count: 16
|
||||
offset: 0x9498
|
||||
d_course_mario_raceway_piranha_plant_spawns:
|
||||
symbol: d_course_mario_raceway_piranha_plant_spawns
|
||||
type: mk64:spawn_data
|
||||
count: 11
|
||||
offset: 0x9518
|
||||
d_course_mario_raceway_tree_spawns:
|
||||
symbol: d_course_mario_raceway_tree_spawns
|
||||
type: mk64:spawn_data
|
||||
count: 28
|
||||
offset: 0x9570
|
||||
d_course_mario_raceway_addr:
|
||||
symbol: d_course_mario_raceway_addr
|
||||
type: mk64:track_sections
|
||||
offset: 0x9650
|
||||
count: 53
|
||||
@@ -0,0 +1,17 @@
|
||||
:config:
|
||||
vram:
|
||||
addr: 0x800E8700 # not used for anything
|
||||
offset: 0x899104
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_mario_raceway_packed_dls:
|
||||
symbol: d_course_mario_raceway_packed_dls
|
||||
type: blob
|
||||
offset: 0x899104
|
||||
size: 0x23FD
|
||||
@@ -8,8 +8,9 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_mario_raceway_vertex:
|
||||
symbol: d_course_mario_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 5757
|
||||
type: blob
|
||||
size: 0x13AD6
|
||||
offset: 0x0
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_moo_moo_farm_vertex:
|
||||
symbol: d_course_moo_moo_farm_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
sign_shell_shot_0:
|
||||
symbol: gTextureSignShellShot0
|
||||
type: texture
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
peach_kart_frame000:
|
||||
symbol: gKartPeach000
|
||||
type: texture
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
mario_face_00:
|
||||
symbol: gTextureMarioFace00
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_royal_raceway_vertex:
|
||||
symbol: d_course_royal_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
gTLUTOnomatopoeia:
|
||||
symbol: gTLUTOnomatopoeia
|
||||
type: texture
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
|
||||
- '#include <align_asset_macro.h>'
|
||||
dl1:
|
||||
symbol: startup_logo_dl
|
||||
type: gfx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
small_letter_0:
|
||||
symbol: gTextureSmallFont0
|
||||
type: texture
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
gTexturePlayerSelect:
|
||||
symbol: gTexturePlayerSelect
|
||||
type: texture
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
toad_kart_frame000:
|
||||
symbol: gKartToad000
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_toads_turnpike_vertex:
|
||||
symbol: d_course_toads_turnpike_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
wario_kart_frame000:
|
||||
symbol: gKartWario000
|
||||
type: texture
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- '#include <defines.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
yoshi_kart_frame000:
|
||||
symbol: gKartYoshi000
|
||||
type: texture
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include <align_asset_macro.h>'
|
||||
d_course_yoshi_valley_vertex:
|
||||
symbol: d_course_yoshi_valley_vertex
|
||||
type: mk64:course_vtx
|
||||
|
||||
Reference in New Issue
Block a user