update with the decomp (#97)
* Update menus.c (#634) * Update common_data.yml (#635) * Renames for screenId and other changes (#636) * screenId renames * Rename surface map to collision mesh (#637) * Rename some stack vars (#638) * Fix syntax error (#639) * Rename some stack vars * Update collision.c * Collision Documentation (#640) * Collision related renames * update doxygen (#649) * change bool (#644) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Update (#642) * Delete trig_tables_bss.c (#650) * fix typo audio (#656) * fix typo src actor (#657) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo include (#658) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix course (#659) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo debug (#660) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo data (#661) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * replace number with const (#665) * fix typo buffers (#655) * fix typo buffers * tweak ld file * rename to sMemoryPool * add a warning --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo src (#654) * fix typo src * fix non matcing * Update code_80091750.c --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo racing (#653) * fix typo racing * get it match * replace G_LINE3D to G_QUAD --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo src (#652) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix ending typo (#651) * Action more info when it doesn't match and fix first diff (#662) * Update linux-compile.yml * fix first-diff * Update first-diff.py --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * document texture of kart (#663) * document texture of kart * change screenPlayerId to screenId * some documentation around object * Revert "some documentation around object" This reverts commit cbb39078e036bf2a417bed67359e910213acab28. * more rename --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Make evaluate_collision_players_palm_tree better (#667) This matches just the same as before, but using those two casts instead of shifts seems more likely to be accurate to the original source code Signed-off-by: Gabriel Ravier <gabravier@gmail.com> * add fedora instruciton (#666) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * start documenting animation (#668) * start documenting animation * Update course_data.c * change comment * update libultra asm (#648) * update libultra asm * fix gcc __osThreadTail --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Document Vehicles (#641) * start doc collision * fix merge * finish rename fonction related to vehicle * document around waypoint of vehicle * make some modification * make some change and rename one * copy_ to oldPos * doc smoke ferry and train * some rename * fix some renaming * precise index * rename a funciton * simplify waypoint_vehicles * change some name * change some name * rename move_to_point_direction * fix some conflict * Update code_80005FD0.c * Update code_80005FD0.h --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Label a save info loop (#645) * save info * more gcc progress * fix a value and do a rename (#669) * update clang and add action (#664) * update clang and add action * try clang on course folder only * forget two file * Update course_displaylists.inc.c * forget few other file * Update course_vertices.inc.c * format all code while get it match * second pass * format other dir * disable clang format on bad ido code * fix some tabulation * revert format on tool dir * Update clang-format.yml * ignore gbi.h * add some read me instruction * fix error * format and fixing error * Update README.md --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Update linkonly_generator.py (#670) * some rename for torch (#588) * rename gBombKartSpawns, and fix cup ID * Update doxygen_syms.md * rename for gCourseIndexInCup and his constant * rename to gCupSelectedCourseIndex * forget a change in constant * fix compilation issue * Update Dockerfile to latest Ubuntu LTS + fixed missing cmake (#674) * Fix color font matrix function (#676) * Fix label variables used in menus (#675) * Fix label variables used in menus * split D_800F2BDC and clang format menu.c --------- Co-authored-by: coco875 <pereira.jannin@gmail.com> * Fix some libultra struct types (#677) * Uintptr (#671) * Update render_courses.c * Update math_util.c * Update math_util.c * Update math_util.h * Update render_courses.c * Clang suggest (#678) * add clang suggestion * Update clang-format-suggest.yml * Update clang-format-suggest.yml * simplify * switch to ubuntu * Update clang-format-suggest.yml * update ubuntu --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Clang pr (#679) * Create clang-pr.yml * Update clang-pr.yml * Update osCreateMesgQueue.c * Update osCreateMesgQueue.c * Update clang-pr.yml * Update clang-pr.yml * Update clang-format.yml * clang format (#680) Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> * some rename in ceremony (#647) * rename ceremony * apply some suggestion * some rename --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * clang format (#681) Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> * Rename Object Timing Related Code (#673) * start making models extraction with blender * finishing extract model * Update fast64 * extract course * Update fast64 * Update fast64 * simplify import of course_displaylists and course_textures and remplace adress with texture * Update fast64 * change data format and simplify the thread queue * move in a blender folder * remove fast64 * re add fast64 * add model_extract and fast64_blender in makefile * multithread with make file split the models into multiple json and add course segment * Update fast64 * remove old model_extract * remove the error when he don't find blender * start rename around course section * rename around object * update submodule fast64 * fix compilation issue and add some model to extract * Update fast64 * remove fast64 * re add fast64 * update submodule * fix compilation issue * add other collision gfx and prepare reorganise file * re arrange json * Create README.MD * Update README.MD * Update README.MD * update fast64 * rename to initiate_next_state * Revert "Merge branch '3d-objects' into general-object" This reverts commit f5347b38cc75af4d10ee3726dc1524c1c71d6849, reversing changes made to a353c4d954fb5b50c8b48fe3f9d67c95ccaab299. * revert the revert... * revert 3d-models PR * finish some revert * Update code_80005FD0.c * fix code_80091750.c * Update code_80091750.c * rename isTimerRunning to isTimerActive and set_object_timer_running to set_object_timer_state * rename to initialize_next_state * rename to object_next_state --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * extract models with blender (#577) * start making models extraction with blender * finishing extract model * Update fast64 * extract course * Update fast64 * Update fast64 * simplify import of course_displaylists and course_textures and remplace adress with texture * Update fast64 * change data format and simplify the thread queue * move in a blender folder * remove fast64 * re add fast64 * add model_extract and fast64_blender in makefile * multithread with make file split the models into multiple json and add course segment * Update fast64 * remove old model_extract * remove the error when he don't find blender * start rename around course section * update submodule fast64 * fix compilation issue and add some model to extract * Update fast64 * remove fast64 * re add fast64 * update submodule * fix compilation issue * add other collision gfx and prepare reorganise file * re arrange json * Create README.MD * Update README.MD * Update README.MD * update fast64 --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * other * fix some error of compilation * finish fix all error --------- Signed-off-by: Gabriel Ravier <gabravier@gmail.com> Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> Co-authored-by: Gabriel Ravier <gabravier@gmail.com> Co-authored-by: MisterSheeple <27652712+MisterSheeple@users.noreply.github.com> Co-authored-by: AloXado320 <38191089+AloXado320@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
This commit is contained in:
parent
d36d7dcd60
commit
203090e591
|
|
@ -0,0 +1,17 @@
|
|||
name: clang-format Suggest
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
formatting-check:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependance
|
||||
run: |
|
||||
sudo apt install clang-format make
|
||||
- name: Run clang-format style check for C/C++/Protobuf programs.
|
||||
run: |
|
||||
clang-format --version
|
||||
python tools/format.py
|
||||
- uses: parkerbxyz/suggest-changes@v1
|
||||
with:
|
||||
comment: 'Please commit the suggested changes from clang-format.'
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
name: clang-format Check
|
||||
on: [push, pull_request]
|
||||
on: [push]
|
||||
jobs:
|
||||
formatting-check:
|
||||
name: Formatting Check
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
path:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
name: clang-format PR
|
||||
on: [push]
|
||||
jobs:
|
||||
formatting-check:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Dependance
|
||||
run: |
|
||||
sudo apt install clang-format make
|
||||
- name: Run clang-format style check for C/C++/Protobuf programs.
|
||||
run: |
|
||||
clang-format --version
|
||||
python tools/format.py
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
commit-message: clang format
|
||||
title: Applid Clang format on the branch
|
||||
branch: clang-format
|
||||
|
|
@ -104,6 +104,9 @@ mingw64/
|
|||
.ash_history
|
||||
!tools/ido-recomp/*/*
|
||||
|
||||
# models
|
||||
*.blend
|
||||
|
||||
# torch
|
||||
torch.hash.yml
|
||||
build*
|
||||
|
|
|
|||
|
|
@ -16,3 +16,6 @@
|
|||
[submodule "libultraship"]
|
||||
path = libultraship
|
||||
url = https://github.com/Kenix3/libultraship
|
||||
[submodule "tools/blender/fast64"]
|
||||
path = tools/blender/fast64
|
||||
url = https://github.com/Fast-64/fast64.git
|
||||
|
|
|
|||
11
Dockerfile
11
Dockerfile
|
|
@ -1,19 +1,20 @@
|
|||
FROM ubuntu:22.04 as build
|
||||
FROM ubuntu:24.04 as build
|
||||
|
||||
RUN apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y \
|
||||
binutils-mips-linux-gnu \
|
||||
build-essential \
|
||||
cmake \
|
||||
git \
|
||||
libaudiofile-dev \
|
||||
libcapstone-dev \
|
||||
git \
|
||||
pkg-config \
|
||||
python3 \
|
||||
wget \
|
||||
zlib1g-dev
|
||||
|
||||
RUN mkdir /mk64
|
||||
WORKDIR /mk64
|
||||
|
||||
CMD echo 'Usage: docker run -it --rm -v ${PWD}:/mk64 mk64 make\n'\
|
||||
CMD echo 'Usage: docker run --rm -v ${PWD}:/mk64 mk64 make\n'\
|
||||
'See https://github.com/n64decomp/mk64/blob/master/README.md for more information'
|
||||
|
|
|
|||
29
Makefile
29
Makefile
|
|
@ -271,7 +271,18 @@ GLOBAL_ASM_OS_O_FILES = $(foreach file,$(GLOBAL_ASM_OS_FILES),$(BUILD_DIR)/$(fil
|
|||
GLOBAL_ASM_AUDIO_O_FILES = $(foreach file,$(GLOBAL_ASM_AUDIO_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_RACING_O_FILES = $(foreach file,$(GLOBAL_ASM_RACING_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
ifneq ($(BLENDER),)
|
||||
else ifneq ($(call find-command,blender),)
|
||||
BLENDER := blender
|
||||
else ifeq ($(DETECTED_OS), windows)
|
||||
BLENDER := "C:\Program Files\Blender Foundation\Blender 3.6\blender.exe"
|
||||
endif
|
||||
|
||||
MODELS_JSON := $(call rwildcard,models,*.json)
|
||||
MODELS_PROC := $(MODELS_JSON:%.json=%)
|
||||
|
||||
models/%: models/%.json
|
||||
$(PYTHON) tools/blender/extract_models.py $(BLENDER) $<
|
||||
|
||||
#==============================================================================#
|
||||
# Compiler Options #
|
||||
|
|
@ -279,12 +290,18 @@ GLOBAL_ASM_RACING_O_FILES = $(foreach file,$(GLOBAL_ASM_RACING_C_FILES),$(BUILD_
|
|||
|
||||
# detect prefix for MIPS toolchain
|
||||
ifneq ($(CROSS),)
|
||||
else ifneq ($(call find-command,mips64-elf-ld),)
|
||||
CROSS := mips64-elf-
|
||||
# else ifneq ($(call find-command,mips-n64-ld),)
|
||||
# CROSS := mips-n64-
|
||||
else ifneq ($(call find-command,mips64-ld),)
|
||||
CROSS := mips64-
|
||||
else ifneq ($(call find-command,mips-linux-gnu-ld),)
|
||||
CROSS := mips-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
|
||||
CROSS := mips64-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-elf-ld),)
|
||||
CROSS := mips64-elf-
|
||||
else ifneq ($(call find-command,mips-ld),)
|
||||
CROSS := mips-
|
||||
else
|
||||
$(error Unable to detect a suitable MIPS toolchain installed)
|
||||
endif
|
||||
|
|
@ -440,6 +457,11 @@ format:
|
|||
clean:
|
||||
$(RM) -r $(BUILD_DIR)
|
||||
|
||||
model_extract: $(MODELS_PROC)
|
||||
|
||||
fast64_blender:
|
||||
$(BLENDER) --python tools/blender/fast64_run.py
|
||||
|
||||
distclean: distclean_assets
|
||||
$(RM) -r $(BUILD_DIR_BASE)
|
||||
$(PYTHON) extract_assets.py --clean
|
||||
|
|
@ -585,6 +607,9 @@ LDFLAGS += $(foreach elf,$(COURSE_DATA_ELFS),-R $(elf))
|
|||
|
||||
COURSE_DATA_TARGETS := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/course_data.mio0.o)
|
||||
|
||||
COURSE_DISPLAYLIST_OFILES := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/course_data.o)
|
||||
$(COURSE_DISPLAYLIST_OFILES): $(BUILD_DIR)/%/course_data.o: %/course_textures.linkonly.h
|
||||
|
||||
%/course_data.elf: %/course_data.o %/course_displaylists.inc.elf
|
||||
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $@.map -R $*/course_displaylists.inc.elf -o $@ $< --no-check-sections
|
||||
|
||||
|
|
|
|||
|
|
@ -1025,8 +1025,8 @@ glabel L8009F388
|
|||
/* 0A000C 8009F40C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0A0010 8009F410 804F0000 */ lb $t7, ($v0)
|
||||
.L8009F414:
|
||||
/* 0A0014 8009F414 3C198019 */ lui $t9, %hi(gCupCourseSelection) # $t9, 0x8019
|
||||
/* 0A0018 8009F418 8339EE0B */ lb $t9, %lo(gCupCourseSelection)($t9)
|
||||
/* 0A0014 8009F414 3C198019 */ lui $t9, %hi(gCourseIndexInCup) # $t9, 0x8019
|
||||
/* 0A0018 8009F418 8339EE0B */ lb $t9, %lo(gCourseIndexInCup)($t9)
|
||||
/* 0A001C 8009F41C 000F7080 */ sll $t6, $t7, 2
|
||||
/* 0A0020 8009F420 0C02D567 */ jal func_800B559C
|
||||
/* 0A0024 8009F424 01D92021 */ addu $a0, $t6, $t9
|
||||
|
|
|
|||
|
|
@ -732,7 +732,7 @@ glabel L8009FE9C
|
|||
/* 0A0AC4 8009FEC4 01625823 */ subu $t3, $t3, $v0
|
||||
/* 0A0AC8 8009FEC8 00037080 */ sll $t6, $v1, 2
|
||||
/* 0A0ACC 8009FECC 01AE7821 */ addu $t7, $t5, $t6
|
||||
/* 0A0AD0 8009FED0 3C05800F */ lui $a1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0A0AD0 8009FED0 3C05800F */ lui $a1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0A0AD4 8009FED4 2518FFEE */ addiu $t8, $t0, -0x12
|
||||
/* 0A0AD8 8009FED8 01636021 */ addu $t4, $t3, $v1
|
||||
/* 0A0ADC 8009FEDC 00CC3021 */ addu $a2, $a2, $t4
|
||||
|
|
@ -740,7 +740,7 @@ glabel L8009FE9C
|
|||
/* 0A0AE4 8009FEE4 2F010008 */ sltiu $at, $t8, 8
|
||||
/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((D_800E86B0 - 3))($a2) # -0x7953($a2)
|
||||
/* 0A0AEC 8009FEEC 10200037 */ beqz $at, .L8009FFCC
|
||||
/* 0A0AF0 8009FEF0 8CA52B70 */ lw $a1, %lo(gGameModeFromNumPlayersAndRowSelection)($a1) # 0x2b70($a1)
|
||||
/* 0A0AF0 8009FEF0 8CA52B70 */ lw $a1, %lo((gGameModePlayerSelection - 0xC))($a1) # 0x2b70($a1)
|
||||
/* 0A0AF4 8009FEF4 0018C080 */ sll $t8, $t8, 2
|
||||
/* 0A0AF8 8009FEF8 3C01800F */ lui $at, %hi(jpt_800F1AD0)
|
||||
/* 0A0AFC 8009FEFC 00380821 */ addu $at, $at, $t8
|
||||
|
|
|
|||
|
|
@ -27,10 +27,10 @@ glabel func_800AB314
|
|||
/* 0ABF74 800AB374 24040001 */ li $a0, 1
|
||||
/* 0ABF78 800AB378 24030003 */ li $v1, 3
|
||||
/* 0ABF7C 800AB37C 108F003A */ beq $a0, $t7, .L800AB468
|
||||
/* 0ABF80 800AB380 3C028019 */ lui $v0, %hi(gCupCourseSelection) # $v0, 0x8019
|
||||
/* 0ABF80 800AB380 3C028019 */ lui $v0, %hi(gCourseIndexInCup) # $v0, 0x8019
|
||||
/* 0ABF84 800AB384 ACC00004 */ sw $zero, 4($a2)
|
||||
/* 0ABF88 800AB388 ACC00020 */ sw $zero, 0x20($a2)
|
||||
/* 0ABF8C 800AB38C 2442EE0B */ addiu $v0, %lo(gCupCourseSelection) # addiu $v0, $v0, -0x11f5
|
||||
/* 0ABF8C 800AB38C 2442EE0B */ addiu $v0, %lo(gCourseIndexInCup) # addiu $v0, $v0, -0x11f5
|
||||
/* 0ABF90 800AB390 80580000 */ lb $t8, ($v0)
|
||||
/* 0ABF94 800AB394 8FB90024 */ lw $t9, 0x24($sp)
|
||||
/* 0ABF98 800AB398 8FAB0024 */ lw $t3, 0x24($sp)
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ glabel L800AC7CC
|
|||
/* 0AD3DC 800AC7DC ACEF001C */ sw $t7, 0x1c($a3)
|
||||
/* 0AD3E0 800AC7E0 8318D9D8 */ lb $t8, %lo(D_8018D9D8)($t8)
|
||||
/* 0AD3E4 800AC7E4 25EAFFFB */ addiu $t2, $t7, -5
|
||||
/* 0AD3E8 800AC7E8 3C0D8019 */ lui $t5, %hi(gCupCourseSelection) # $t5, 0x8019
|
||||
/* 0AD3E8 800AC7E8 3C0D8019 */ lui $t5, %hi(gCourseIndexInCup) # $t5, 0x8019
|
||||
/* 0AD3EC 800AC7EC 53000003 */ beql $t8, $zero, .L800AC7FC
|
||||
/* 0AD3F0 800AC7F0 8CEB001C */ lw $t3, 0x1c($a3)
|
||||
/* 0AD3F4 800AC7F4 ACEA001C */ sw $t2, 0x1c($a3)
|
||||
|
|
@ -265,7 +265,7 @@ glabel L800AC7CC
|
|||
/* 0AD400 800AC800 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0AD404 800AC804 ACEC0004 */ sw $t4, 4($a3)
|
||||
/* 0AD408 800AC808 ACE0001C */ sw $zero, 0x1c($a3)
|
||||
/* 0AD40C 800AC80C 81ADEE0B */ lb $t5, %lo(gCupCourseSelection)($t5)
|
||||
/* 0AD40C 800AC80C 81ADEE0B */ lb $t5, %lo(gCourseIndexInCup)($t5)
|
||||
/* 0AD410 800AC810 24010003 */ li $at, 3
|
||||
/* 0AD414 800AC814 00002825 */ move $a1, $zero
|
||||
/* 0AD418 800AC818 15A10053 */ bne $t5, $at, .L800AC968
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ glabel L800B2A6C # case 0
|
|||
/* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
|
||||
/* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
|
||||
/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3678 800B2A78 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3678 800B2A78 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5
|
||||
/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
|
||||
/* 0B3684 800B2A84 000D7080 */ sll $t6, $t5, 2
|
||||
|
|
@ -60,7 +60,7 @@ glabel L800B2A6C # case 0
|
|||
/* 0B3694 800B2A94 01D8C821 */ addu $t9, $t6, $t8
|
||||
/* 0B3698 800B2A98 00791821 */ addu $v1, $v1, $t9
|
||||
/* 0B369C 800B2A9C 1000028C */ b .L800B34D0
|
||||
/* 0B36A0 800B2AA0 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B36A0 800B2AA0 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
glabel L800B2AA4 # case 3
|
||||
/* 0B36A4 800B2AA4 30690100 */ andi $t1, $v1, 0x100
|
||||
/* 0B36A8 800B2AA8 11200010 */ beqz $t1, .L800B2AEC
|
||||
|
|
@ -145,7 +145,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
|
||||
/* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
|
||||
/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
|
||||
/* 0B37E0 800B2BE0 000F7080 */ sll $t6, $t7, 2
|
||||
|
|
@ -155,7 +155,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B37F0 800B2BF0 01D94821 */ addu $t1, $t6, $t9
|
||||
/* 0B37F4 800B2BF4 00691821 */ addu $v1, $v1, $t1
|
||||
/* 0B37F8 800B2BF8 10000235 */ b .L800B34D0
|
||||
/* 0B37FC 800B2BFC 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B37FC 800B2BFC 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2C00:
|
||||
/* 0B3800 800B2C00 11400015 */ beqz $t2, .L800B2C58
|
||||
/* 0B3804 800B2C04 30D90020 */ andi $t9, $a2, 0x20
|
||||
|
|
@ -168,7 +168,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019
|
||||
/* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
|
||||
/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4
|
||||
/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
|
||||
/* 0B3838 800B2C38 000C6880 */ sll $t5, $t4, 2
|
||||
|
|
@ -178,7 +178,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B3848 800B2C48 01B87021 */ addu $t6, $t5, $t8
|
||||
/* 0B384C 800B2C4C 006E1821 */ addu $v1, $v1, $t6
|
||||
/* 0B3850 800B2C50 1000021F */ b .L800B34D0
|
||||
/* 0B3854 800B2C54 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3854 800B2C54 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2C58:
|
||||
/* 0B3858 800B2C58 13200014 */ beqz $t9, .L800B2CAC
|
||||
/* 0B385C 800B2C5C 30CD0010 */ andi $t5, $a2, 0x10
|
||||
|
|
@ -190,7 +190,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
|
||||
/* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
|
||||
/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3880 800B2C80 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3880 800B2C80 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1
|
||||
/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3)
|
||||
/* 0B388C 800B2C8C 00095080 */ sll $t2, $t1, 2
|
||||
|
|
@ -200,7 +200,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B389C 800B2C9C 014C7821 */ addu $t7, $t2, $t4
|
||||
/* 0B38A0 800B2CA0 006F1821 */ addu $v1, $v1, $t7
|
||||
/* 0B38A4 800B2CA4 1000020A */ b .L800B34D0
|
||||
/* 0B38A8 800B2CA8 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B38A8 800B2CA8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2CAC:
|
||||
/* 0B38AC 800B2CAC 11A00015 */ beqz $t5, .L800B2D04
|
||||
/* 0B38B0 800B2CB0 00026080 */ sll $t4, $v0, 2
|
||||
|
|
@ -213,7 +213,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
|
||||
/* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
|
||||
/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6
|
||||
/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1)
|
||||
/* 0B38E4 800B2CE4 000EC880 */ sll $t9, $t6, 2
|
||||
|
|
@ -223,7 +223,7 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B38F4 800B2CF4 032B5021 */ addu $t2, $t9, $t3
|
||||
/* 0B38F8 800B2CF8 006A1821 */ addu $v1, $v1, $t2
|
||||
/* 0B38FC 800B2CFC 100001F4 */ b .L800B34D0
|
||||
/* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2D04:
|
||||
/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3908 800B2D08 01E27821 */ addu $t7, $t7, $v0
|
||||
|
|
@ -232,10 +232,10 @@ glabel L800B2AA4 # case 3
|
|||
/* 0B3914 800B2D14 000C6080 */ sll $t4, $t4, 2
|
||||
/* 0B3918 800B2D18 000F6880 */ sll $t5, $t7, 2
|
||||
/* 0B391C 800B2D1C 018DC021 */ addu $t8, $t4, $t5
|
||||
/* 0B3920 800B2D20 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3920 800B2D20 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3924 800B2D24 00781821 */ addu $v1, $v1, $t8
|
||||
/* 0B3928 800B2D28 100001E9 */ b .L800B34D0
|
||||
/* 0B392C 800B2D2C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B392C 800B2D2C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
glabel L800B2D30 # case 4
|
||||
/* 0B3930 800B2D30 306E0400 */ andi $t6, $v1, 0x400
|
||||
/* 0B3934 800B2D34 11C00017 */ beqz $t6, .L800B2D94
|
||||
|
|
@ -244,11 +244,11 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(D_800E86AC) # $t1, 0x800f
|
||||
/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(D_800E86AC) # addiu $t1, $t1, -0x7954
|
||||
/* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((D_800F2B58 + 7)) # 0x800f
|
||||
/* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((gPlayerModeSelection - 1)) # 0x800f
|
||||
/* 0B3950 800B2D50 0322C821 */ addu $t9, $t9, $v0
|
||||
/* 0B3954 800B2D54 00491821 */ addu $v1, $v0, $t1
|
||||
/* 0B3958 800B2D58 8064FFFF */ lb $a0, -1($v1)
|
||||
/* 0B395C 800B2D5C 83392B5F */ lb $t9, %lo((D_800F2B58 + 7))($t9) # 0x2b5f($t9)
|
||||
/* 0B395C 800B2D5C 83392B5F */ lb $t9, %lo((gPlayerModeSelection - 1))($t9) # 0x2b5f($t9)
|
||||
/* 0B3960 800B2D60 248B0001 */ addiu $t3, $a0, 1
|
||||
/* 0B3964 800B2D64 0099082A */ slt $at, $a0, $t9
|
||||
/* 0B3968 800B2D68 5020000B */ beql $at, $zero, .L800B2D98
|
||||
|
|
@ -296,7 +296,7 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
|
||||
/* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
|
||||
/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6
|
||||
/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9)
|
||||
/* 0B3A1C 800B2E1C 000E4880 */ sll $t1, $t6, 2
|
||||
|
|
@ -306,7 +306,7 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3A2C 800B2E2C 012B5021 */ addu $t2, $t1, $t3
|
||||
/* 0B3A30 800B2E30 006A1821 */ addu $v1, $v1, $t2
|
||||
/* 0B3A34 800B2E34 100001A6 */ b .L800B34D0
|
||||
/* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2E3C:
|
||||
/* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
|
||||
|
|
@ -319,9 +319,9 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3A5C 800B2E5C 000C6080 */ sll $t4, $t4, 2
|
||||
/* 0B3A60 800B2E60 00046880 */ sll $t5, $a0, 2
|
||||
/* 0B3A64 800B2E64 018DC021 */ addu $t8, $t4, $t5
|
||||
/* 0B3A68 800B2E68 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3A68 800B2E68 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3A6C 800B2E6C 00781821 */ addu $v1, $v1, $t8
|
||||
/* 0B3A70 800B2E70 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3A70 800B2E70 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
/* 0B3A74 800B2E74 3C044900 */ lui $a0, (0x4900900A >> 16) # lui $a0, 0x4900
|
||||
/* 0B3A78 800B2E78 24190005 */ li $t9, 5
|
||||
/* 0B3A7C 800B2E7C 1060000D */ beqz $v1, .L800B2EB4
|
||||
|
|
@ -368,7 +368,7 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
|
||||
/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
|
||||
/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7
|
||||
/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5)
|
||||
/* 0B3B24 800B2F24 000F6080 */ sll $t4, $t7, 2
|
||||
|
|
@ -380,17 +380,17 @@ glabel L800B2D30 # case 4
|
|||
/* 0B3B3C 800B2F3C 006E1821 */ addu $v1, $v1, $t6
|
||||
/* 0B3B40 800B2F40 AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at)
|
||||
/* 0B3B44 800B2F44 10000162 */ b .L800B34D0
|
||||
/* 0B3B48 800B2F48 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3B48 800B2F48 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B2F4C:
|
||||
/* 0B3B4C 800B2F4C 0002C880 */ sll $t9, $v0, 2
|
||||
/* 0B3B50 800B2F50 0322C823 */ subu $t9, $t9, $v0
|
||||
/* 0B3B54 800B2F54 0019C880 */ sll $t9, $t9, 2
|
||||
/* 0B3B58 800B2F58 00044880 */ sll $t1, $a0, 2
|
||||
/* 0B3B5C 800B2F5C 03295821 */ addu $t3, $t9, $t1
|
||||
/* 0B3B60 800B2F60 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3B60 800B2F60 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3B64 800B2F64 006B1821 */ addu $v1, $v1, $t3
|
||||
/* 0B3B68 800B2F68 10000159 */ b .L800B34D0
|
||||
/* 0B3B6C 800B2F6C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3B6C 800B2F6C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
glabel L800B2F70 # case 5, 8
|
||||
/* 0B3B70 800B2F70 14A00023 */ bnez $a1, .L800B3000
|
||||
/* 0B3B74 800B2F74 00603025 */ move $a2, $v1
|
||||
|
|
@ -410,7 +410,7 @@ glabel L800B2F70 # case 5, 8
|
|||
.L800B2FAC:
|
||||
/* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0
|
||||
/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
|
||||
/* 0B3BC0 800B2FC0 00026080 */ sll $t4, $v0, 2
|
||||
|
|
@ -419,7 +419,7 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3BCC 800B2FCC 00187080 */ sll $t6, $t8, 2
|
||||
/* 0B3BD0 800B2FD0 018EC821 */ addu $t9, $t4, $t6
|
||||
/* 0B3BD4 800B2FD4 00791821 */ addu $v1, $v1, $t9
|
||||
/* 0B3BD8 800B2FD8 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3BD8 800B2FD8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
/* 0B3BDC 800B2FDC 3C044900 */ lui $a0, (0x4900900E >> 16) # lui $a0, 0x4900
|
||||
/* 0B3BE0 800B2FE0 24010002 */ li $at, 2
|
||||
/* 0B3BE4 800B2FE4 10600003 */ beqz $v1, .L800B2FF4
|
||||
|
|
@ -472,14 +472,14 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
|
||||
/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((D_800F2B60 + 0xD)) # 0x800f
|
||||
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((gGameModePlayerColumnExtra - 3)) # 0x800f
|
||||
/* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0
|
||||
/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
|
||||
/* 0B3CAC 800B30AC 00027080 */ sll $t6, $v0, 2
|
||||
/* 0B3CB0 800B30B0 01C27023 */ subu $t6, $t6, $v0
|
||||
/* 0B3CB4 800B30B4 01C4C821 */ addu $t9, $t6, $a0
|
||||
/* 0B3CB8 800B30B8 01394821 */ addu $t1, $t1, $t9
|
||||
/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((D_800F2B60 + 0xD))($t1) # 0x2b6d($t1)
|
||||
/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((gGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1)
|
||||
/* 0B3CC0 800B30C0 00A9082A */ slt $at, $a1, $t1
|
||||
/* 0B3CC4 800B30C4 10200012 */ beqz $at, .L800B3110
|
||||
/* 0B3CC8 800B30C8 00000000 */ nop
|
||||
|
|
@ -489,14 +489,14 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
|
||||
/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((D_800F2B60 + 1)) # 0x800f
|
||||
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((gGameModePlayerColumnDefault - 3)) # 0x800f
|
||||
/* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0
|
||||
/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0)
|
||||
/* 0B3CEC 800B30EC 00025880 */ sll $t3, $v0, 2
|
||||
/* 0B3CF0 800B30F0 01625823 */ subu $t3, $t3, $v0
|
||||
/* 0B3CF4 800B30F4 01645021 */ addu $t2, $t3, $a0
|
||||
/* 0B3CF8 800B30F8 01EA7821 */ addu $t7, $t7, $t2
|
||||
/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((D_800F2B60 + 1))($t7) # 0x2b61($t7)
|
||||
/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((gGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7)
|
||||
/* 0B3D00 800B3100 00AF082A */ slt $at, $a1, $t7
|
||||
/* 0B3D04 800B3104 10200002 */ beqz $at, .L800B3110
|
||||
/* 0B3D08 800B3108 00000000 */ nop
|
||||
|
|
@ -543,7 +543,7 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
|
||||
/* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
|
||||
/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5
|
||||
/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4)
|
||||
/* 0B3DBC 800B31BC 000DC080 */ sll $t8, $t5, 2
|
||||
|
|
@ -553,7 +553,7 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3DCC 800B31CC 030EC821 */ addu $t9, $t8, $t6
|
||||
/* 0B3DD0 800B31D0 00791821 */ addu $v1, $v1, $t9
|
||||
/* 0B3DD4 800B31D4 100000BE */ b .L800B34D0
|
||||
/* 0B3DD8 800B31D8 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3DD8 800B31D8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B31DC:
|
||||
/* 0B3DDC 800B31DC 30C98000 */ andi $t1, $a2, 0x8000
|
||||
/* 0B3DE0 800B31E0 1120002C */ beqz $t1, .L800B3294
|
||||
|
|
@ -593,7 +593,7 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
|
||||
/* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
|
||||
/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3E68 800B3268 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3E68 800B3268 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7
|
||||
/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4)
|
||||
/* 0B3E74 800B3274 000F6880 */ sll $t5, $t7, 2
|
||||
|
|
@ -603,16 +603,16 @@ glabel L800B2F70 # case 5, 8
|
|||
/* 0B3E84 800B3284 01B87021 */ addu $t6, $t5, $t8
|
||||
/* 0B3E88 800B3288 006E1821 */ addu $v1, $v1, $t6
|
||||
/* 0B3E8C 800B328C 10000090 */ b .L800B34D0
|
||||
/* 0B3E90 800B3290 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3E90 800B3290 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B3294:
|
||||
/* 0B3E94 800B3294 0322C823 */ subu $t9, $t9, $v0
|
||||
/* 0B3E98 800B3298 0019C880 */ sll $t9, $t9, 2
|
||||
/* 0B3E9C 800B329C 00044880 */ sll $t1, $a0, 2
|
||||
/* 0B3EA0 800B32A0 03295821 */ addu $t3, $t9, $t1
|
||||
/* 0B3EA4 800B32A4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3EA4 800B32A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3EA8 800B32A8 006B1821 */ addu $v1, $v1, $t3
|
||||
/* 0B3EAC 800B32AC 10000088 */ b .L800B34D0
|
||||
/* 0B3EB0 800B32B0 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3EB0 800B32B0 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
glabel L800B32B4 # case 6, 7
|
||||
/* 0B3EB4 800B32B4 14A00014 */ bnez $a1, .L800B3308
|
||||
/* 0B3EB8 800B32B8 00603025 */ move $a2, $v1
|
||||
|
|
@ -644,7 +644,7 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
|
||||
/* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
|
||||
/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3F20 800B3320 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3F20 800B3320 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0
|
||||
/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((D_800E86AC - 1))($t6) # -0x7955($t6)
|
||||
/* 0B3F2C 800B332C 0002C080 */ sll $t8, $v0, 2
|
||||
|
|
@ -653,7 +653,7 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B3F38 800B3338 000EC880 */ sll $t9, $t6, 2
|
||||
/* 0B3F3C 800B333C 03194821 */ addu $t1, $t8, $t9
|
||||
/* 0B3F40 800B3340 00691821 */ addu $v1, $v1, $t1
|
||||
/* 0B3F44 800B3344 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3F44 800B3344 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
/* 0B3F48 800B3348 24070001 */ li $a3, 1
|
||||
/* 0B3F4C 800B334C 240B0005 */ li $t3, 5
|
||||
/* 0B3F50 800B3350 10600009 */ beqz $v1, .L800B3378
|
||||
|
|
@ -680,7 +680,7 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
|
||||
/* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
|
||||
/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7
|
||||
/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5)
|
||||
/* 0B3FB0 800B33B0 000F6080 */ sll $t4, $t7, 2
|
||||
|
|
@ -692,7 +692,7 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B3FC8 800B33C8 00781821 */ addu $v1, $v1, $t8
|
||||
/* 0B3FCC 800B33CC AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at)
|
||||
/* 0B3FD0 800B33D0 1000003F */ b .L800B34D0
|
||||
/* 0B3FD4 800B33D4 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B3FD4 800B33D4 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B33D8:
|
||||
/* 0B3FD8 800B33D8 13200016 */ beqz $t9, .L800B3434
|
||||
/* 0B3FDC 800B33DC 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019
|
||||
|
|
@ -706,7 +706,7 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
|
||||
/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
|
||||
/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B4008 800B3408 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B4008 800B3408 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1
|
||||
/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((D_800E86AC - 1))($t2) # -0x7955($t2)
|
||||
/* 0B4014 800B3414 00095880 */ sll $t3, $t1, 2
|
||||
|
|
@ -716,11 +716,11 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B4024 800B3424 016F6821 */ addu $t5, $t3, $t7
|
||||
/* 0B4028 800B3428 006D1821 */ addu $v1, $v1, $t5
|
||||
/* 0B402C 800B342C 10000028 */ b .L800B34D0
|
||||
/* 0B4030 800B3430 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B4030 800B3430 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B3434:
|
||||
/* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
|
||||
/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B403C 800B343C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B403C 800B343C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4
|
||||
/* 0B4044 800B3444 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8)
|
||||
/* 0B4048 800B3448 000C7080 */ sll $t6, $t4, 2
|
||||
|
|
@ -730,12 +730,12 @@ glabel L800B32B4 # case 6, 7
|
|||
/* 0B4058 800B3458 01D94821 */ addu $t1, $t6, $t9
|
||||
/* 0B405C 800B345C 00691821 */ addu $v1, $v1, $t1
|
||||
/* 0B4060 800B3460 1000001B */ b .L800B34D0
|
||||
/* 0B4064 800B3464 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B4064 800B3464 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
glabel L800B3468 # case 1, 2
|
||||
/* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019
|
||||
/* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2)
|
||||
/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B4074 800B3474 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B4074 800B3474 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2
|
||||
/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7)
|
||||
/* 0B4080 800B3480 000A5880 */ sll $t3, $t2, 2
|
||||
|
|
@ -745,11 +745,11 @@ glabel L800B3468 # case 1, 2
|
|||
/* 0B4090 800B3490 016D6021 */ addu $t4, $t3, $t5
|
||||
/* 0B4094 800B3494 006C1821 */ addu $v1, $v1, $t4
|
||||
/* 0B4098 800B3498 1000000D */ b .L800B34D0
|
||||
/* 0B409C 800B349C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B409C 800B349C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B34A0: # default
|
||||
/* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(gPlayerCount)($t8) # -0x120d($t8)
|
||||
/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f
|
||||
/* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f
|
||||
/* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
|
||||
/* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9)
|
||||
/* 0B40B4 800B34B4 00187080 */ sll $t6, $t8, 2
|
||||
|
|
@ -758,7 +758,7 @@ glabel L800B3468 # case 1, 2
|
|||
/* 0B40C0 800B34C0 00194880 */ sll $t1, $t9, 2
|
||||
/* 0B40C4 800B34C4 01C95021 */ addu $t2, $t6, $t1
|
||||
/* 0B40C8 800B34C8 006A1821 */ addu $v1, $v1, $t2
|
||||
/* 0B40CC 800B34CC 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1)
|
||||
/* 0B40CC 800B34CC 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
|
||||
.L800B34D0:
|
||||
/* 0B40D0 800B34D0 3C01800E */ lui $at, %hi(gModeSelection) # $at, 0x800e
|
||||
/* 0B40D4 800B34D4 AC23C53C */ sw $v1, %lo(gModeSelection)($at)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
glabel func_800B5218
|
||||
/* 0B5E18 800B5218 3C0E8019 */ lui $t6, %hi(gCupSelection) # $t6, 0x8019
|
||||
/* 0B5E1C 800B521C 81CEEE09 */ lb $t6, %lo(gCupSelection)($t6)
|
||||
/* 0B5E20 800B5220 3C188019 */ lui $t8, %hi(gCupCourseSelection) # $t8, 0x8019
|
||||
/* 0B5E24 800B5224 8318EE0B */ lb $t8, %lo(gCupCourseSelection)($t8)
|
||||
/* 0B5E20 800B5220 3C188019 */ lui $t8, %hi(gCourseIndexInCup) # $t8, 0x8019
|
||||
/* 0B5E24 800B5224 8318EE0B */ lb $t8, %lo(gCourseIndexInCup)($t8)
|
||||
/* 0B5E28 800B5228 3C09800F */ lui $t1, %hi(gCharacterSelections) # $t1, 0x800f
|
||||
/* 0B5E2C 800B522C 812986A8 */ lb $t1, %lo(gCharacterSelections)($t1)
|
||||
/* 0B5E30 800B5230 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ glabel func_80082F1C
|
|||
/* 083B5C 80082F5C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 083B60 80082F60 00808025 */ move $s0, $a0
|
||||
/* 083B64 80082F64 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 083B68 80082F68 0C01C922 */ jal func_80072488
|
||||
/* 083B68 80082F68 0C01C922 */ jal object_next_state
|
||||
/* 083B6C 80082F6C E4440000 */ swc1 $f4, ($v0)
|
||||
/* 083B70 80082F70 8FA9002C */ lw $t1, 0x2c($sp)
|
||||
/* 083B74 80082F74 3C0B800E */ lui $t3, %hi(D_800E5DF4) # $t3, 0x800e
|
||||
|
|
|
|||
|
|
@ -3,11 +3,12 @@
|
|||
|
||||
#include "course_offsets.h"
|
||||
|
||||
#ifndef TARGET_N64
|
||||
extern const char* rainbow_road_dls[];
|
||||
extern const char* yoshi_valley_dls[];
|
||||
extern const char* toads_turnpike_dls[];
|
||||
extern const char* d_course_yoshi_valley_dl_list[];
|
||||
extern const char* d_course_toads_turnpike_dl_list[];
|
||||
extern const char* banshee_boardwalk_dls[];
|
||||
extern const char* frappe_snowland_dls[];
|
||||
extern const char* d_course_frappe_snowland_dl_list[];
|
||||
extern const char* bowsers_castle_dls[];
|
||||
extern const char* choco_mountain_dls[];
|
||||
extern const char* kalimari_desert_dls[];
|
||||
|
|
@ -18,7 +19,20 @@ extern const char* royal_raceway_dls[];
|
|||
extern const char* sherbet_land_dls[];
|
||||
extern const char* sherbet_land_dls_2[];
|
||||
extern const char* wario_stadium_dls[];
|
||||
extern const char* dks_jungle_parkway_dls[];
|
||||
extern const char* d_course_dks_jungle_parkway_unknown_dl_list[];
|
||||
#else
|
||||
extern Gfx* banshee_boardwalk_dls[];
|
||||
extern Gfx* bowsers_castle_dls[];
|
||||
extern Gfx* choco_mountain_dls[];
|
||||
extern Gfx* kalimari_desert_dls[];
|
||||
extern Gfx* luigi_raceway_dls[];
|
||||
extern Gfx* mario_raceway_dls[];
|
||||
extern Gfx* moo_moo_farm_dls[];
|
||||
extern Gfx* royal_raceway_dls[];
|
||||
extern Gfx* sherbet_land_dls[];
|
||||
extern Gfx* sherbet_land_dls_2[];
|
||||
extern Gfx* wario_stadium_dls[];
|
||||
#endif
|
||||
|
||||
extern const course_texture banshee_boardwalk_textures[];
|
||||
extern const course_texture big_donut_textures[];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
#ifndef TARGET_N64
|
||||
#include <libultra/types.h>
|
||||
#include <libultra/gbi.h>
|
||||
#else
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
#endif
|
||||
#include "course_offsets.h"
|
||||
#include <assets/banshee_boardwalk_data.h>
|
||||
#include <libultra/gbi.h>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ const course_texture dks_jungle_parkway_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
const Gfx* dks_jungle_parkway_dls[] = {
|
||||
const Gfx* d_course_dks_jungle_parkway_unknown_dl_list[] = {
|
||||
d_course_dks_jungle_parkway_dl_20, d_course_dks_jungle_parkway_dl_210, d_course_dks_jungle_parkway_dl_180,
|
||||
d_course_dks_jungle_parkway_dl_310, d_course_dks_jungle_parkway_dl_400, d_course_dks_jungle_parkway_dl_628,
|
||||
d_course_dks_jungle_parkway_dl_560, d_course_dks_jungle_parkway_dl_750, d_course_dks_jungle_parkway_dl_888,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ const course_texture frappe_snowland_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
const Gfx* frappe_snowland_dls[] = {
|
||||
const Gfx* d_course_frappe_snowland_dl_list[] = {
|
||||
d_course_frappe_snowland_dl_0, d_course_frappe_snowland_dl_1B8, d_course_frappe_snowland_dl_C8,
|
||||
d_course_frappe_snowland_dl_298, d_course_frappe_snowland_dl_398, d_course_frappe_snowland_dl_540,
|
||||
d_course_frappe_snowland_dl_458, d_course_frappe_snowland_dl_610, d_course_frappe_snowland_dl_728,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ const course_texture koopa_troopa_beach_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
Gfx* koopa_troopa_beach_dls1[] = {
|
||||
Gfx* d_course_koopa_troopa_beach_dl_list1[] = {
|
||||
d_course_koopa_troopa_beach_dl_90, d_course_koopa_troopa_beach_dl_278, d_course_koopa_troopa_beach_dl_188,
|
||||
d_course_koopa_troopa_beach_dl_3C0, d_course_koopa_troopa_beach_dl_4B0, d_course_koopa_troopa_beach_dl_6E0,
|
||||
d_course_koopa_troopa_beach_dl_5A0, d_course_koopa_troopa_beach_dl_828, d_course_koopa_troopa_beach_dl_960,
|
||||
|
|
|
|||
|
|
@ -36,7 +36,11 @@ const course_texture mario_raceway_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
#ifndef TARGET_N64
|
||||
const char* mario_raceway_dls[] = {
|
||||
#else
|
||||
const Gfx* mario_raceway_dls[] = {
|
||||
#endif
|
||||
d_course_mario_raceway_dl_0, d_course_mario_raceway_dl_1D0, d_course_mario_raceway_dl_E8,
|
||||
d_course_mario_raceway_dl_2C8, d_course_mario_raceway_dl_3A8, d_course_mario_raceway_dl_568,
|
||||
d_course_mario_raceway_dl_478, d_course_mario_raceway_dl_668, d_course_mario_raceway_dl_750,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const course_texture toads_turnpike_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
Gfx* toads_turnpike_dls[] = {
|
||||
Gfx* d_course_toads_turnpike_dl_list[] = {
|
||||
d_course_toads_turnpike_dl_80, d_course_toads_turnpike_dl_1F8, d_course_toads_turnpike_dl_158,
|
||||
d_course_toads_turnpike_dl_2D0, d_course_toads_turnpike_dl_380, d_course_toads_turnpike_dl_4E8,
|
||||
d_course_toads_turnpike_dl_438, d_course_toads_turnpike_dl_5B8, d_course_toads_turnpike_dl_668,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,24 @@
|
|||
#include <assets/other_textures.h>
|
||||
#include <assets/yoshi_valley_data.h>
|
||||
|
||||
course_texture yoshi_valley_textures[] = {
|
||||
#ifdef TARGET_N64
|
||||
extern u8 gTexture66EBF0[];
|
||||
extern u8 gTextureWoodBridgeSlats[];
|
||||
extern u8 gTexture65E2EC[];
|
||||
extern u8 gTexture6846DC[];
|
||||
extern u8 gTextureFenceRope[];
|
||||
extern u8 gTexture685108[];
|
||||
extern u8 gTexture64CC20[];
|
||||
extern u8 gTextureGrass4[];
|
||||
extern u8 gTexture6775EC[];
|
||||
extern u8 gTexture68E2D0[];
|
||||
extern u8 gTextureCheckerboardBlackWhite[];
|
||||
extern u8 gTexture643B3C[];
|
||||
extern u8 gTextureSignWoodRedArrow[];
|
||||
extern u8 gTexture68DEC0[];
|
||||
#endif
|
||||
|
||||
const course_texture yoshi_valley_textures[] = {
|
||||
{ gTexture66EBF0, 0x0146, 0x0800, 0x0 },
|
||||
{ gTextureWoodBridgeSlats, 0x0DAB, 0x1000, 0x0 },
|
||||
{ gTexture65E2EC, 0x02B0, 0x0800, 0x0 },
|
||||
|
|
@ -21,7 +38,7 @@ course_texture yoshi_valley_textures[] = {
|
|||
{ 0x00000000, 0x0000, 0x0000, 0x0 },
|
||||
};
|
||||
|
||||
Gfx* yoshi_valley_dls[] = {
|
||||
Gfx* d_course_yoshi_valley_dl_list[] = {
|
||||
d_course_yoshi_valley_dl_40, d_course_yoshi_valley_dl_3F0, d_course_yoshi_valley_dl_290,
|
||||
d_course_yoshi_valley_dl_4E8, d_course_yoshi_valley_dl_7A0, d_course_yoshi_valley_dl_BC0,
|
||||
d_course_yoshi_valley_dl_9C8, d_course_yoshi_valley_dl_CC0, // <- No idea what this is supposed to be a pointer to
|
||||
|
|
|
|||
|
|
@ -0,0 +1,87 @@
|
|||
|
||||
/*====================================================================
|
||||
* os_rdp.h
|
||||
*
|
||||
* Copyright 1995, Silicon Graphics, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
||||
* Inc.; the contents of this file may not be disclosed to third
|
||||
* parties, copied or duplicated in any form, in whole or in part,
|
||||
* without the prior written permission of Silicon Graphics, Inc.
|
||||
*
|
||||
* RESTRICTED RIGHTS LEGEND:
|
||||
* Use, duplication or disclosure by the Government is subject to
|
||||
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
||||
* in Technical Data and Computer Software clause at DFARS
|
||||
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
||||
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
||||
* Copyright Laws of the United States.
|
||||
*====================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------*
|
||||
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
||||
|
||||
$RCSfile: os_rdp.h,v $
|
||||
$Revision: 1.1 $
|
||||
$Date: 1998/10/09 08:01:16 $
|
||||
*---------------------------------------------------------------------*/
|
||||
|
||||
#ifndef _OS_RDP_H_
|
||||
#define _OS_RDP_H_
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Type definitions
|
||||
*
|
||||
*/
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Global definitions
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Macro definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Extern variables
|
||||
*
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Function prototypes
|
||||
*
|
||||
*/
|
||||
|
||||
/* Display processor interface (Dp) */
|
||||
extern u32 osDpGetStatus(void);
|
||||
extern void osDpSetStatus(u32);
|
||||
extern void osDpGetCounters(u32*);
|
||||
extern s32 osDpSetNextBuffer(void*, u64);
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_OS_RDP_H_ */
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
#ifndef _ULTRA64_THREAD_H_
|
||||
#define _ULTRA64_THREAD_H_
|
||||
#include "ultratypes.h"
|
||||
/* Recommended priorities for system threads */
|
||||
#define OS_PRIORITY_MAX 255
|
||||
#define OS_PRIORITY_VIMGR 254
|
||||
#define OS_PRIORITY_RMON 250
|
||||
#define OS_PRIORITY_RMONSPIN 200
|
||||
#define OS_PRIORITY_PIMGR 150
|
||||
#define OS_PRIORITY_SIMGR 140
|
||||
#define OS_PRIORITY_APPMAX 127
|
||||
#define OS_PRIORITY_IDLE 0
|
||||
|
||||
#define OS_STATE_STOPPED 1
|
||||
#define OS_STATE_RUNNABLE 2
|
||||
#define OS_STATE_RUNNING 4
|
||||
#define OS_STATE_WAITING 8
|
||||
|
||||
/* Types */
|
||||
|
||||
typedef s32 OSPri;
|
||||
typedef s32 OSId;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
f32 f_odd;
|
||||
f32 f_even;
|
||||
} f;
|
||||
} __OSfp;
|
||||
|
||||
typedef struct {
|
||||
/* registers */
|
||||
/*0x20*/ u64 at, v0, v1, a0, a1, a2, a3;
|
||||
/*0x58*/ u64 t0, t1, t2, t3, t4, t5, t6, t7;
|
||||
/*0x98*/ u64 s0, s1, s2, s3, s4, s5, s6, s7;
|
||||
/*0xD8*/ u64 t8, t9, gp, sp, s8, ra;
|
||||
/*0x108*/ u64 lo, hi;
|
||||
/*0x118*/ u32 sr, pc, cause, badvaddr, rcp;
|
||||
/*0x12C*/ u32 fpcsr;
|
||||
__OSfp fp0, fp2, fp4, fp6, fp8, fp10, fp12, fp14;
|
||||
__OSfp fp16, fp18, fp20, fp22, fp24, fp26, fp28, fp30;
|
||||
} __OSThreadContext;
|
||||
|
||||
typedef struct {
|
||||
u32 flag;
|
||||
u32 count;
|
||||
u64 time;
|
||||
} __OSThreadprofile_s;
|
||||
|
||||
typedef struct OSThread_s {
|
||||
/*0x00*/ struct OSThread_s* next;
|
||||
/*0x04*/ OSPri priority;
|
||||
/*0x08*/ struct OSThread_s** queue;
|
||||
/*0x0C*/ struct OSThread_s* tlnext;
|
||||
/*0x10*/ u16 state;
|
||||
/*0x12*/ u16 flags;
|
||||
/*0x14*/ OSId id;
|
||||
/*0x18*/ int fp;
|
||||
/*0x1C*/ __OSThreadprofile_s* thprof;
|
||||
/*0x20*/ __OSThreadContext context;
|
||||
} OSThread;
|
||||
|
||||
/* Functions */
|
||||
|
||||
void osCreateThread(OSThread* thread, OSId id, void (*entry)(void*), void* arg, void* sp, OSPri pri);
|
||||
OSId osGetThreadId(OSThread* thread);
|
||||
OSPri osGetThreadPri(OSThread* thread);
|
||||
void osSetThreadPri(OSThread* thread, OSPri pri);
|
||||
void osStartThread(OSThread* thread);
|
||||
void osStopThread(OSThread* thread);
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef _ULTRA64_TIME_H_
|
||||
#define _ULTRA64_TIME_H_
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/os_message.h>
|
||||
|
||||
/* Types */
|
||||
|
||||
typedef struct OSTimer_str {
|
||||
struct OSTimer_str* next;
|
||||
struct OSTimer_str* prev;
|
||||
u64 interval;
|
||||
u64 remaining;
|
||||
OSMesgQueue* mq;
|
||||
OSMesg* msg;
|
||||
} OSTimer;
|
||||
|
||||
typedef u64 OSTime;
|
||||
|
||||
/* Functions */
|
||||
|
||||
OSTime osGetTime(void);
|
||||
void osSetTime(OSTime time);
|
||||
u32 osSetTimer(OSTimer*, OSTime, u64, OSMesgQueue*, OSMesg);
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
/*====================================================================
|
||||
* os_tlb.h
|
||||
*
|
||||
* Copyright 1995, Silicon Graphics, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
||||
* Inc.; the contents of this file may not be disclosed to third
|
||||
* parties, copied or duplicated in any form, in whole or in part,
|
||||
* without the prior written permission of Silicon Graphics, Inc.
|
||||
*
|
||||
* RESTRICTED RIGHTS LEGEND:
|
||||
* Use, duplication or disclosure by the Government is subject to
|
||||
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
||||
* in Technical Data and Computer Software clause at DFARS
|
||||
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
||||
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
||||
* Copyright Laws of the United States.
|
||||
*====================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------*
|
||||
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
||||
|
||||
$RCSfile: os_tlb.h,v $
|
||||
$Revision: 1.1 $
|
||||
$Date: 1998/10/09 08:01:20 $
|
||||
*---------------------------------------------------------------------*/
|
||||
|
||||
#ifndef _OS_TLB_H_
|
||||
#define _OS_TLB_H_
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Type definitions
|
||||
*
|
||||
*/
|
||||
|
||||
typedef u32 OSPageMask;
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Global definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Page size argument for TLB routines
|
||||
*/
|
||||
#define OS_PM_4K 0x0000000
|
||||
#define OS_PM_16K 0x0006000
|
||||
#define OS_PM_64K 0x001e000
|
||||
#define OS_PM_256K 0x007e000
|
||||
#define OS_PM_1M 0x01fe000
|
||||
#define OS_PM_4M 0x07fe000
|
||||
#define OS_PM_16M 0x1ffe000
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Macro definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Extern variables
|
||||
*
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Function prototypes
|
||||
*
|
||||
*/
|
||||
|
||||
/* TLB management routines */
|
||||
|
||||
extern void osMapTLB(s32, OSPageMask, void*, u32, u32, s32);
|
||||
extern void osMapTLBRdb(void);
|
||||
extern void osUnmapTLB(s32);
|
||||
extern void osUnmapTLBAll(void);
|
||||
extern void osSetTLBASID(s32);
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_OS_TLB_H_ */
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef _COMMON_STRUCTS_H_
|
||||
#define _COMMON_STRUCTS_H_
|
||||
|
||||
#ifndef TARGET_N64
|
||||
#include <libultraship.h>
|
||||
#else
|
||||
#include <ultra64.h>
|
||||
#endif
|
||||
|
||||
typedef f32 Vec3f[3];
|
||||
typedef f32 Vec4f[4];
|
||||
|
|
@ -375,6 +379,7 @@ typedef struct {
|
|||
/* 0x0DD0 */ // s16 unk_DD0;
|
||||
/* 0x0DD2 */ // s16 unk_DD2;
|
||||
/* 0x0DD4 */ // s16 unk_DD4;
|
||||
|
||||
u32 nControlFlags; // Is racer human, ai, or networked controlled?
|
||||
s32 nCharacter; // Networked character choice
|
||||
s32 nStartingRank;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
*/
|
||||
|
||||
typedef struct {
|
||||
uintptr_t addr;
|
||||
Gfx* addr;
|
||||
u8 surfaceType;
|
||||
u8 sectionId;
|
||||
u16 flags;
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ extern Animation d_rainbow_road_unk2;
|
|||
extern Animation* d_rainbow_road_unk3[];
|
||||
extern u32 d_rainbow_road_unk5[];
|
||||
|
||||
extern Gfx* koopa_troopa_beach_dls1[];
|
||||
extern Gfx* d_course_koopa_troopa_beach_dl_list1[];
|
||||
extern Gfx* koopa_troopa_beach_dls2[];
|
||||
extern uintptr_t d_course_koopa_troopa_beach_unk_data1[];
|
||||
extern s16 d_course_koopa_troopa_beach_unk_data2[];
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
#define _FUNCTIONS_H_
|
||||
|
||||
#include <common_structs.h>
|
||||
#ifdef TARGET_N64
|
||||
void mio0decode(u8* arg0, u8* arg1);
|
||||
#endif
|
||||
|
||||
// Unused mio0decode function.
|
||||
void func_80040030(u8* arg0, u8* arg1);
|
||||
|
|
|
|||
|
|
@ -165,12 +165,14 @@ enum PlayerId {
|
|||
* the battle courses could be displayed in the same
|
||||
* way race courses are.
|
||||
*/
|
||||
#define MUSHROOM_CUP 0
|
||||
#define FLOWER_CUP 1
|
||||
#define STAR_CUP 2
|
||||
#define SPECIAL_CUP 3
|
||||
#define BATTLE_CUP 4
|
||||
#define NUM_CUPS 5
|
||||
enum { MUSHROOM_CUP, FLOWER_CUP, STAR_CUP, SPECIAL_CUP, BATTLE_CUP, NUM_CUPS };
|
||||
|
||||
#define NUM_COURSES_PER_CUP 4
|
||||
|
||||
/**
|
||||
* @brief Options for gCourseIndexInCup
|
||||
*/
|
||||
enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
|
||||
|
||||
/**
|
||||
* @brief Character IDs
|
||||
|
|
@ -297,12 +299,6 @@ enum PlayerId {
|
|||
#define DEMO_SIX 5 // Mario Luigi Peach Toad, Sherbert Land, Versus
|
||||
#define NUM_DEMOS 6
|
||||
|
||||
#define CUP_COURSE_ONE 0
|
||||
#define CUP_COURSE_TWO 1
|
||||
#define CUP_COURSE_THREE 2
|
||||
#define CUP_COURSE_FOUR 3
|
||||
#define NUM_COURSES_PER_CUP 4
|
||||
|
||||
/**
|
||||
* @brief Item IDs
|
||||
*/
|
||||
|
|
@ -341,6 +337,13 @@ enum KART_AI_BEHAVIOURS {
|
|||
BEHAVIOUR_MAX_SPEED
|
||||
};
|
||||
|
||||
enum DIRECTION {
|
||||
NORTH,
|
||||
EAST,
|
||||
SOUTH,
|
||||
WEST
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Balloon status
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef STDDEF_H
|
||||
#define STDDEF_H
|
||||
|
||||
#ifndef TARGET_N64
|
||||
#include <libultra/types.h>
|
||||
#else
|
||||
#include <PR/ultratypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef offsetof
|
||||
#define offsetof(st, m) ((size_t) & (((st*) 0)->m))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef STRING_H
|
||||
#define STRING_H
|
||||
|
||||
#ifndef TARGET_N64
|
||||
#include <libultra/types.h>
|
||||
#else
|
||||
#include <PR/ultratypes.h>
|
||||
#endif
|
||||
|
||||
void* memcpy(void* dst, const void* src, size_t size);
|
||||
size_t strlen(const char* str);
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@
|
|||
}
|
||||
|
||||
// convert a virtual address to physical.
|
||||
#ifndef TARGET_N64
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) (addr)
|
||||
|
||||
// convert a physical address to virtual.
|
||||
|
|
@ -94,6 +95,15 @@
|
|||
|
||||
// another way of converting virtual to physical
|
||||
#define VIRTUAL_TO_PHYSICAL2(addr) (addr)
|
||||
#else
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t) (addr) & 0x1FFFFFFF)
|
||||
|
||||
// convert a physical address to virtual.
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t) (addr) | 0x80000000)
|
||||
|
||||
// another way of converting virtual to physical
|
||||
#define VIRTUAL_TO_PHYSICAL2(addr) ((u8*) (addr) - 0x80000000U)
|
||||
#endif
|
||||
|
||||
// aligns an address to the next 16 bytes
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
|
|
|
|||
|
|
@ -18,26 +18,35 @@ typedef struct {
|
|||
/* 0x44 */ f32 surfaceHeight;
|
||||
/* 0x48 */ s32 unk_048;
|
||||
/* 0x4C */ s32 unk_04C;
|
||||
/* 0x50 */ s32 unk_050;
|
||||
/* 0x50 */ s32 timer;
|
||||
/* 0x54 */ s32 status;
|
||||
/* 0x58 */ s32 unk_058;
|
||||
/* 0x5C */ s32 unk_05C;
|
||||
#ifndef TARGET_N64
|
||||
/* 0x60 */ const char* activeTLUT;
|
||||
/* 0x64 */ const char* activeTexture;
|
||||
#else
|
||||
/* 0x60 */ u8* activeTLUT;
|
||||
/* 0x64 */ u8* activeTexture;
|
||||
#endif
|
||||
/**
|
||||
* "list" is something of a misnomer for the names here
|
||||
* they can be pointers to just 1 tlut/texture, but it is common for one or the other
|
||||
* to be a pointer to an array of tluts/textures.
|
||||
**/
|
||||
/* 0x68 */ u8* tlutList; // I feel like this should actually be `u8 (*tlutList)[512]`, but that causes mismatches
|
||||
#ifndef TARGET_N64
|
||||
/* 0x6C */ const char** textureList;
|
||||
#else
|
||||
/* 0x6C */ u8* textureList;
|
||||
#endif
|
||||
/* 0x70 */ Gfx* model;
|
||||
/* 0x74 */ Vtx* vertex;
|
||||
/* 0x78 */ s8 unk_078[0x04];
|
||||
/* 0x7C */ SplineControlPoint* controlPoints;
|
||||
/* 0x80 */ SplineData* spline;
|
||||
/* 0x84 */ s16 unk_084[0xA];
|
||||
/* 0x98 */ u16 timer;
|
||||
/* 0x98 */ u16 animationTimer;
|
||||
/* 0x9A */ u16 unk_09A;
|
||||
/* 0x9C */ s16 unk_09C;
|
||||
/* 0x9E */ s16 unk_09E;
|
||||
|
|
@ -57,14 +66,14 @@ typedef struct {
|
|||
/* 0xC6 */ u16 unk_0C6;
|
||||
/* 0xC8 */ u16 boundingBoxSize;
|
||||
/* 0xCA */ s8 unk_0CA;
|
||||
/* 0xCB */ s8 unk_0CB;
|
||||
/* 0xCB */ s8 isTimerActive;
|
||||
/* 0xCC */ s8 unk_0CC;
|
||||
/* 0xCD */ s8 unk_0CD;
|
||||
/* 0xCE */ s8 unk_0CE;
|
||||
/* 0xCF */ s8 unk_0CF;
|
||||
/* 0xD0 */ s8 unk_0D0;
|
||||
/* 0xD1 */ s8 unk_0D1;
|
||||
/* 0xD2 */ s8 itemDisplay;
|
||||
/* 0xD2 */ s8 textureListIndex;
|
||||
/* 0xD3 */ s8 unk_0D3;
|
||||
/* 0xD4 */ s8 unk_0D4;
|
||||
/* 0xD5 */ u8 unk_0D5;
|
||||
|
|
@ -93,7 +102,7 @@ typedef struct {
|
|||
/* 0x44 */ f32 unk_044;
|
||||
/* 0x48 */ s32 unk_048;
|
||||
/* 0x4C */ s32 unk_04C;
|
||||
/* 0x50 */ s32 unk_050;
|
||||
/* 0x50 */ s32 timer;
|
||||
/* 0x54 */ s32 status;
|
||||
/* 0x58 */ s32 unk_058;
|
||||
/* 0x5C */ s32 unk_05C;
|
||||
|
|
@ -132,14 +141,14 @@ typedef struct {
|
|||
/* 0xC6 */ u16 unk_0C6;
|
||||
/* 0xC8 */ u16 unk_0C8;
|
||||
/* 0xCA */ s8 unk_0CA;
|
||||
/* 0xCB */ s8 unk_0CB;
|
||||
/* 0xCB */ s8 isTimerActive;
|
||||
/* 0xCC */ s8 unk_0CC;
|
||||
/* 0xCD */ s8 unk_0CD;
|
||||
/* 0xCE */ s8 unk_0CE;
|
||||
/* 0xCF */ s8 unk_0CF;
|
||||
/* 0xD0 */ s8 unk_0D0;
|
||||
/* 0xD1 */ s8 unk_0D1;
|
||||
/* 0xD2 */ s8 itemDisplay;
|
||||
/* 0xD2 */ s8 textureListIndex;
|
||||
/* 0xD3 */ s8 unk_0D3;
|
||||
/* 0xD4 */ s8 unk_0D4;
|
||||
/* 0xD5 */ u8 unk_0D5;
|
||||
|
|
|
|||
|
|
@ -40,12 +40,6 @@
|
|||
|
||||
#define RENDER_VEHICLE 1
|
||||
|
||||
#define TRAIN_SMOKE_RENDER_DISTANCE 2000.0f
|
||||
#define TRAIN_CROSSING_AI_DISTANCE 1000.0f
|
||||
#define BOAT_SMOKE_RENDER_DISTANCE 2000.0f
|
||||
|
||||
#define RENDER_VEHICLE 1
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 isActive; // Only used for Tender and Passenger Cars, unused for Locomotives
|
||||
/* 0x02 */ s16 compilerPadding;
|
||||
|
|
|
|||
2
mk64.ld
2
mk64.ld
|
|
@ -356,7 +356,7 @@ SECTIONS
|
|||
BUILD_DIR/src/os/osContInit.o(.bss*);
|
||||
BUILD_DIR/src/os/osPfsIsPlug.o(.bss*);
|
||||
BUILD_DIR/src/os/guRotateF.o(.bss*);
|
||||
BUILD_DIR/src/os/leointerrupt.o(.bss*);
|
||||
BUILD_DIR/src/os/__osLeoInterrupt.o(.bss*);
|
||||
BUILD_DIR/src/os/osTimer.o(.bss*);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.bss*);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.bss*);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
# Model Extract
|
||||
this folder contain all element to extract interesting Gfx
|
||||
|
||||
## Instruction
|
||||
you need blender between 3.6 and 4.2.1
|
||||
|
||||
run `make model_extract -j` to extract assets in multithreaded. And waits (for me it take around 20 minutes so it take his time).
|
||||
|
||||
you can run `make fast64_blender` to run blender with fast64 enable without downloading it.
|
||||
|
||||
## Organisation
|
||||
In Tracks there is all track json and folder (once extracted). In each track folder you can find three folder objects, sections, preview, collision_sections. Objects are all assets who are use for object/actor. Sections are all sections reference in a Gfx list who are use with render_course_segments. And preview are the version of the track who are use in func_8029569C who the complete track or a big part (some are broken). Collision sections are just collision who are use in mk64.
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
[
|
||||
{
|
||||
"file": "src/data/common_textures.c",
|
||||
"out_dir": "common_textures/assets",
|
||||
"models": [
|
||||
"D_0D001B90",
|
||||
"D_0D001BD8",
|
||||
"D_0D001C20",
|
||||
"D_0D001C88",
|
||||
"D_0D002EE8",
|
||||
"common_model_fake_itembox",
|
||||
"itemBoxQuestionMarkModel",
|
||||
"D_0D0030F8",
|
||||
"D_0D003128",
|
||||
"D_0D003158",
|
||||
"D_0D003188",
|
||||
"D_0D0031B8",
|
||||
"D_0D0031E8",
|
||||
"D_0D003218",
|
||||
"D_0D003248",
|
||||
"D_0D003288",
|
||||
"common_model_banana",
|
||||
"common_model_flat_banana",
|
||||
"D_0D0052B8",
|
||||
"D_0D005338",
|
||||
"D_0D005368",
|
||||
"D_0D007B20",
|
||||
"D_0D007B98",
|
||||
"D_0D007C10"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
[
|
||||
{
|
||||
"file":"courses/banshee_boardwalk/course_data.c",
|
||||
"out_dir": "tracks/banshee_boardwalk/objects",
|
||||
"models": [
|
||||
"d_course_banshee_boardwalk_dl_B278",
|
||||
"d_course_banshee_boardwalk_dl_trash_bin",
|
||||
"d_course_banshee_boardwalk_dl_cheep_cheep"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/banshee_boardwalk/course_data.c",
|
||||
"out_dir": "tracks/banshee_boardwalk/sections",
|
||||
"models": [
|
||||
"d_course_banshee_boardwalk_dl_A0",
|
||||
"d_course_banshee_boardwalk_dl_210",
|
||||
"d_course_banshee_boardwalk_dl_160",
|
||||
"d_course_banshee_boardwalk_dl_270",
|
||||
"d_course_banshee_boardwalk_dl_358",
|
||||
"d_course_banshee_boardwalk_dl_4F0",
|
||||
"d_course_banshee_boardwalk_dl_408",
|
||||
"d_course_banshee_boardwalk_dl_540",
|
||||
"d_course_banshee_boardwalk_dl_620",
|
||||
"d_course_banshee_boardwalk_dl_7C0",
|
||||
"d_course_banshee_boardwalk_dl_6D0",
|
||||
"d_course_banshee_boardwalk_dl_870",
|
||||
"d_course_banshee_boardwalk_dl_940",
|
||||
"d_course_banshee_boardwalk_dl_AD0",
|
||||
"d_course_banshee_boardwalk_dl_9E0",
|
||||
"d_course_banshee_boardwalk_dl_B80",
|
||||
"d_course_banshee_boardwalk_dl_C30",
|
||||
"d_course_banshee_boardwalk_dl_D80",
|
||||
"d_course_banshee_boardwalk_dl_CD0",
|
||||
"d_course_banshee_boardwalk_dl_E10",
|
||||
"d_course_banshee_boardwalk_dl_EE0",
|
||||
"d_course_banshee_boardwalk_dl_1000",
|
||||
"d_course_banshee_boardwalk_dl_F50",
|
||||
"d_course_banshee_boardwalk_dl_1070",
|
||||
"d_course_banshee_boardwalk_dl_1160",
|
||||
"d_course_banshee_boardwalk_dl_12A8",
|
||||
"d_course_banshee_boardwalk_dl_11C8",
|
||||
"d_course_banshee_boardwalk_dl_12E8",
|
||||
"d_course_banshee_boardwalk_dl_13F0",
|
||||
"d_course_banshee_boardwalk_dl_1520",
|
||||
"d_course_banshee_boardwalk_dl_1448",
|
||||
"d_course_banshee_boardwalk_dl_1580",
|
||||
"d_course_banshee_boardwalk_dl_1678",
|
||||
"d_course_banshee_boardwalk_dl_17A0",
|
||||
"d_course_banshee_boardwalk_dl_16B8",
|
||||
"d_course_banshee_boardwalk_dl_1820",
|
||||
"d_course_banshee_boardwalk_dl_18D8",
|
||||
"d_course_banshee_boardwalk_dl_1A30",
|
||||
"d_course_banshee_boardwalk_dl_1940",
|
||||
"d_course_banshee_boardwalk_dl_1B00",
|
||||
"d_course_banshee_boardwalk_dl_1BA0",
|
||||
"d_course_banshee_boardwalk_dl_1CC8",
|
||||
"d_course_banshee_boardwalk_dl_1C20",
|
||||
"d_course_banshee_boardwalk_dl_1D90",
|
||||
"d_course_banshee_boardwalk_dl_1E28",
|
||||
"d_course_banshee_boardwalk_dl_1F40",
|
||||
"d_course_banshee_boardwalk_dl_1EA0",
|
||||
"d_course_banshee_boardwalk_dl_2028",
|
||||
"d_course_banshee_boardwalk_dl_20A0",
|
||||
"d_course_banshee_boardwalk_dl_21C8",
|
||||
"d_course_banshee_boardwalk_dl_2138",
|
||||
"d_course_banshee_boardwalk_dl_22D8",
|
||||
"d_course_banshee_boardwalk_dl_2340",
|
||||
"d_course_banshee_boardwalk_dl_24E8",
|
||||
"d_course_banshee_boardwalk_dl_2448",
|
||||
"d_course_banshee_boardwalk_dl_2610",
|
||||
"d_course_banshee_boardwalk_dl_2650",
|
||||
"d_course_banshee_boardwalk_dl_2790",
|
||||
"d_course_banshee_boardwalk_dl_2718",
|
||||
"d_course_banshee_boardwalk_dl_2868",
|
||||
"d_course_banshee_boardwalk_dl_28A8",
|
||||
"d_course_banshee_boardwalk_dl_2A18",
|
||||
"d_course_banshee_boardwalk_dl_2980",
|
||||
"d_course_banshee_boardwalk_dl_2AE0",
|
||||
"d_course_banshee_boardwalk_dl_2B88",
|
||||
"d_course_banshee_boardwalk_dl_2CE0",
|
||||
"d_course_banshee_boardwalk_dl_2C30",
|
||||
"d_course_banshee_boardwalk_dl_2DB0",
|
||||
"d_course_banshee_boardwalk_dl_2E20",
|
||||
"d_course_banshee_boardwalk_dl_2FA0",
|
||||
"d_course_banshee_boardwalk_dl_2EE0",
|
||||
"d_course_banshee_boardwalk_dl_3050",
|
||||
"d_course_banshee_boardwalk_dl_3100",
|
||||
"d_course_banshee_boardwalk_dl_32B0",
|
||||
"d_course_banshee_boardwalk_dl_3200",
|
||||
"d_course_banshee_boardwalk_dl_3390",
|
||||
"d_course_banshee_boardwalk_dl_3468",
|
||||
"d_course_banshee_boardwalk_dl_3660",
|
||||
"d_course_banshee_boardwalk_dl_35A0",
|
||||
"d_course_banshee_boardwalk_dl_3710",
|
||||
"d_course_banshee_boardwalk_dl_37F0",
|
||||
"d_course_banshee_boardwalk_dl_3980",
|
||||
"d_course_banshee_boardwalk_dl_3920",
|
||||
"d_course_banshee_boardwalk_dl_3A20",
|
||||
"d_course_banshee_boardwalk_dl_3AF8",
|
||||
"d_course_banshee_boardwalk_dl_3C40",
|
||||
"d_course_banshee_boardwalk_dl_3C00",
|
||||
"d_course_banshee_boardwalk_dl_3CD0",
|
||||
"d_course_banshee_boardwalk_dl_3D98",
|
||||
"d_course_banshee_boardwalk_dl_3EF0",
|
||||
"d_course_banshee_boardwalk_dl_3EB0",
|
||||
"d_course_banshee_boardwalk_dl_3F60",
|
||||
"d_course_banshee_boardwalk_dl_4038",
|
||||
"d_course_banshee_boardwalk_dl_4188",
|
||||
"d_course_banshee_boardwalk_dl_4118",
|
||||
"d_course_banshee_boardwalk_dl_41F0",
|
||||
"d_course_banshee_boardwalk_dl_42D0",
|
||||
"d_course_banshee_boardwalk_dl_4428",
|
||||
"d_course_banshee_boardwalk_dl_43A8",
|
||||
"d_course_banshee_boardwalk_dl_4480"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/banshee_boardwalk/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/banshee_boardwalk/collision_sections",
|
||||
"models": [
|
||||
"d_course_banshee_boardwalk_packed_dl_1DA0",
|
||||
"d_course_banshee_boardwalk_packed_dl_5498",
|
||||
"d_course_banshee_boardwalk_packed_dl_27D0",
|
||||
"d_course_banshee_boardwalk_packed_dl_28D0",
|
||||
"d_course_banshee_boardwalk_packed_dl_29A0",
|
||||
"d_course_banshee_boardwalk_packed_dl_2A70",
|
||||
"d_course_banshee_boardwalk_packed_dl_26E8",
|
||||
"d_course_banshee_boardwalk_packed_dl_22C8",
|
||||
"d_course_banshee_boardwalk_packed_dl_2398",
|
||||
"d_course_banshee_boardwalk_packed_dl_2440",
|
||||
"d_course_banshee_boardwalk_packed_dl_2520",
|
||||
"d_course_banshee_boardwalk_packed_dl_2608",
|
||||
"d_course_banshee_boardwalk_packed_dl_2B78",
|
||||
"d_course_banshee_boardwalk_packed_dl_3240",
|
||||
"d_course_banshee_boardwalk_packed_dl_3310",
|
||||
"d_course_banshee_boardwalk_packed_dl_33C8",
|
||||
"d_course_banshee_boardwalk_packed_dl_34A0",
|
||||
"d_course_banshee_boardwalk_packed_dl_1830",
|
||||
"d_course_banshee_boardwalk_packed_dl_18E0",
|
||||
"d_course_banshee_boardwalk_packed_dl_1968",
|
||||
"d_course_banshee_boardwalk_packed_dl_1A00",
|
||||
"d_course_banshee_boardwalk_packed_dl_30F0",
|
||||
"d_course_banshee_boardwalk_packed_dl_2C20",
|
||||
"d_course_banshee_boardwalk_packed_dl_2D40",
|
||||
"d_course_banshee_boardwalk_packed_dl_2E40",
|
||||
"d_course_banshee_boardwalk_packed_dl_2F38",
|
||||
"d_course_banshee_boardwalk_packed_dl_3020",
|
||||
"d_course_banshee_boardwalk_packed_dl_3930",
|
||||
"d_course_banshee_boardwalk_packed_dl_3AA0",
|
||||
"d_course_banshee_boardwalk_packed_dl_3BA0",
|
||||
"d_course_banshee_boardwalk_packed_dl_3C40",
|
||||
"d_course_banshee_boardwalk_packed_dl_3830",
|
||||
"d_course_banshee_boardwalk_packed_dl_3638",
|
||||
"d_course_banshee_boardwalk_packed_dl_36C8",
|
||||
"d_course_banshee_boardwalk_packed_dl_3740",
|
||||
"d_course_banshee_boardwalk_packed_dl_37C0",
|
||||
"d_course_banshee_boardwalk_packed_dl_3D08",
|
||||
"d_course_banshee_boardwalk_packed_dl_40D0",
|
||||
"d_course_banshee_boardwalk_packed_dl_4070",
|
||||
"d_course_banshee_boardwalk_packed_dl_4008",
|
||||
"d_course_banshee_boardwalk_packed_dl_3F78",
|
||||
"d_course_banshee_boardwalk_packed_dl_3D90",
|
||||
"d_course_banshee_boardwalk_packed_dl_3E10",
|
||||
"d_course_banshee_boardwalk_packed_dl_3E88",
|
||||
"d_course_banshee_boardwalk_packed_dl_3F00",
|
||||
"d_course_banshee_boardwalk_packed_dl_60",
|
||||
"d_course_banshee_boardwalk_packed_dl_1CF8",
|
||||
"d_course_banshee_boardwalk_packed_dl_1748"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/banshee_boardwalk/course_data.c",
|
||||
"out_dir": "tracks/banshee_boardwalk/preview",
|
||||
"models": [
|
||||
"d_course_banshee_boardwalk_dl_B308"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
[
|
||||
{
|
||||
"file":"courses/big_donut/course_data.c",
|
||||
"out_dir": "tracks/big_donut/preview",
|
||||
"models": [
|
||||
"d_course_big_donut_dl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/block_fort/course_data.c",
|
||||
"out_dir": "tracks/block_fort/preview",
|
||||
"models": [
|
||||
"d_course_block_fort_dl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/double_deck/course_data.c",
|
||||
"out_dir": "tracks/double_deck/preview",
|
||||
"models": [
|
||||
"d_course_double_deck_dl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/skyscraper/course_data.c",
|
||||
"out_dir": "tracks/skyscraper/preview",
|
||||
"models": [
|
||||
"d_course_skyscraper_dl"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/bowsers_castle/course_data.c",
|
||||
"out_dir": "tracks/bowsers_castle/objects",
|
||||
"models": [
|
||||
"d_course_bowsers_castle_dl_thwomp",
|
||||
"d_course_bowsers_castle_dl_bush"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/bowsers_castle/course_data.c",
|
||||
"out_dir": "tracks/bowsers_castle/sections",
|
||||
"models": [
|
||||
"d_course_bowsers_castle_dl_0",
|
||||
"d_course_bowsers_castle_dl_230",
|
||||
"d_course_bowsers_castle_dl_110",
|
||||
"d_course_bowsers_castle_dl_398",
|
||||
"d_course_bowsers_castle_dl_428",
|
||||
"d_course_bowsers_castle_dl_640",
|
||||
"d_course_bowsers_castle_dl_4F0",
|
||||
"d_course_bowsers_castle_dl_7A0",
|
||||
"d_course_bowsers_castle_dl_860",
|
||||
"d_course_bowsers_castle_dl_9F8",
|
||||
"d_course_bowsers_castle_dl_8E8",
|
||||
"d_course_bowsers_castle_dl_AE0",
|
||||
"d_course_bowsers_castle_dl_B88",
|
||||
"d_course_bowsers_castle_dl_D20",
|
||||
"d_course_bowsers_castle_dl_C08",
|
||||
"d_course_bowsers_castle_dl_E00",
|
||||
"d_course_bowsers_castle_dl_EA8",
|
||||
"d_course_bowsers_castle_dl_1040",
|
||||
"d_course_bowsers_castle_dl_F08",
|
||||
"d_course_bowsers_castle_dl_1138",
|
||||
"d_course_bowsers_castle_dl_11F0",
|
||||
"d_course_bowsers_castle_dl_1290",
|
||||
"d_course_bowsers_castle_dl_1248",
|
||||
"d_course_bowsers_castle_dl_12D0",
|
||||
"d_course_bowsers_castle_dl_1330",
|
||||
"d_course_bowsers_castle_dl_1370",
|
||||
"d_course_bowsers_castle_dl_1350",
|
||||
"d_course_bowsers_castle_dl_13A0",
|
||||
"d_course_bowsers_castle_dl_13C0",
|
||||
"d_course_bowsers_castle_dl_1448",
|
||||
"d_course_bowsers_castle_dl_13E0",
|
||||
"d_course_bowsers_castle_dl_1488",
|
||||
"d_course_bowsers_castle_dl_14B0",
|
||||
"d_course_bowsers_castle_dl_1590",
|
||||
"d_course_bowsers_castle_dl_1520",
|
||||
"d_course_bowsers_castle_dl_1608",
|
||||
"d_course_bowsers_castle_dl_1690",
|
||||
"d_course_bowsers_castle_dl_1788",
|
||||
"d_course_bowsers_castle_dl_1710",
|
||||
"d_course_bowsers_castle_dl_17D0",
|
||||
"d_course_bowsers_castle_dl_1818",
|
||||
"d_course_bowsers_castle_dl_18C0",
|
||||
"d_course_bowsers_castle_dl_1860",
|
||||
"d_course_bowsers_castle_dl_1928",
|
||||
"d_course_bowsers_castle_dl_1960",
|
||||
"d_course_bowsers_castle_dl_19F8",
|
||||
"d_course_bowsers_castle_dl_19A8",
|
||||
"d_course_bowsers_castle_dl_1A40",
|
||||
"d_course_bowsers_castle_dl_1A90",
|
||||
"d_course_bowsers_castle_dl_1B10",
|
||||
"d_course_bowsers_castle_dl_1AD8",
|
||||
"d_course_bowsers_castle_dl_1B58",
|
||||
"d_course_bowsers_castle_dl_1BB0",
|
||||
"d_course_bowsers_castle_dl_1C38",
|
||||
"d_course_bowsers_castle_dl_1C10",
|
||||
"d_course_bowsers_castle_dl_1C60",
|
||||
"d_course_bowsers_castle_dl_1C98",
|
||||
"d_course_bowsers_castle_dl_1DF8",
|
||||
"d_course_bowsers_castle_dl_1CD0",
|
||||
"d_course_bowsers_castle_dl_1EB0",
|
||||
"d_course_bowsers_castle_dl_1FA0",
|
||||
"d_course_bowsers_castle_dl_2130",
|
||||
"d_course_bowsers_castle_dl_2008",
|
||||
"d_course_bowsers_castle_dl_21F0",
|
||||
"d_course_bowsers_castle_dl_22E8",
|
||||
"d_course_bowsers_castle_dl_24B8",
|
||||
"d_course_bowsers_castle_dl_2398",
|
||||
"d_course_bowsers_castle_dl_2578",
|
||||
"d_course_bowsers_castle_dl_2688",
|
||||
"d_course_bowsers_castle_dl_2880",
|
||||
"d_course_bowsers_castle_dl_2760",
|
||||
"d_course_bowsers_castle_dl_2958",
|
||||
"d_course_bowsers_castle_dl_2A60",
|
||||
"d_course_bowsers_castle_dl_2C48",
|
||||
"d_course_bowsers_castle_dl_2B80",
|
||||
"d_course_bowsers_castle_dl_2D08",
|
||||
"d_course_bowsers_castle_dl_2DF8",
|
||||
"d_course_bowsers_castle_dl_2FB0",
|
||||
"d_course_bowsers_castle_dl_2F30",
|
||||
"d_course_bowsers_castle_dl_3050",
|
||||
"d_course_bowsers_castle_dl_3158",
|
||||
"d_course_bowsers_castle_dl_32C0",
|
||||
"d_course_bowsers_castle_dl_3230",
|
||||
"d_course_bowsers_castle_dl_3338",
|
||||
"d_course_bowsers_castle_dl_3480",
|
||||
"d_course_bowsers_castle_dl_35D0",
|
||||
"d_course_bowsers_castle_dl_3508",
|
||||
"d_course_bowsers_castle_dl_3678",
|
||||
"d_course_bowsers_castle_dl_37D8",
|
||||
"d_course_bowsers_castle_dl_39E0",
|
||||
"d_course_bowsers_castle_dl_38F8",
|
||||
"d_course_bowsers_castle_dl_3B00",
|
||||
"d_course_bowsers_castle_dl_3C08",
|
||||
"d_course_bowsers_castle_dl_3EA8",
|
||||
"d_course_bowsers_castle_dl_3D78",
|
||||
"d_course_bowsers_castle_dl_3FF0",
|
||||
"d_course_bowsers_castle_dl_40F0",
|
||||
"d_course_bowsers_castle_dl_4358",
|
||||
"d_course_bowsers_castle_dl_4278",
|
||||
"d_course_bowsers_castle_dl_4488",
|
||||
"d_course_bowsers_castle_dl_45D8",
|
||||
"d_course_bowsers_castle_dl_4820",
|
||||
"d_course_bowsers_castle_dl_4748",
|
||||
"d_course_bowsers_castle_dl_4998",
|
||||
"d_course_bowsers_castle_dl_4A98",
|
||||
"d_course_bowsers_castle_dl_4CE8",
|
||||
"d_course_bowsers_castle_dl_4C00",
|
||||
"d_course_bowsers_castle_dl_4EA8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/bowsers_castle/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/bowsers_castle/collision_sections",
|
||||
"models": [
|
||||
"d_course_bowsers_castle_packed_dl_5448",
|
||||
"d_course_bowsers_castle_packed_dl_53E0",
|
||||
"d_course_bowsers_castle_packed_dl_93A0",
|
||||
"d_course_bowsers_castle_packed_dl_9290",
|
||||
"d_course_bowsers_castle_packed_dl_30C8",
|
||||
"d_course_bowsers_castle_packed_dl_1FA0",
|
||||
"d_course_bowsers_castle_packed_dl_3578",
|
||||
"d_course_bowsers_castle_packed_dl_3930",
|
||||
"d_course_bowsers_castle_packed_dl_3C80",
|
||||
"d_course_bowsers_castle_packed_dl_D38",
|
||||
"d_course_bowsers_castle_packed_dl_41A8",
|
||||
"d_course_bowsers_castle_packed_dl_B80",
|
||||
"d_course_bowsers_castle_packed_dl_280",
|
||||
"d_course_bowsers_castle_packed_dl_2A48",
|
||||
"d_course_bowsers_castle_packed_dl_A20",
|
||||
"d_course_bowsers_castle_packed_dl_470",
|
||||
"d_course_bowsers_castle_packed_dl_3308",
|
||||
"d_course_bowsers_castle_packed_dl_1EA8",
|
||||
"d_course_bowsers_castle_packed_dl_9328",
|
||||
"d_course_bowsers_castle_packed_dl_9438",
|
||||
"d_course_bowsers_castle_packed_dl_5378",
|
||||
"d_course_bowsers_castle_packed_dl_5300",
|
||||
"d_course_bowsers_castle_packed_dl_5270",
|
||||
"d_course_bowsers_castle_packed_dl_51E8",
|
||||
"d_course_bowsers_castle_packed_dl_54E8",
|
||||
"d_course_bowsers_castle_packed_dl_5778",
|
||||
"d_course_bowsers_castle_packed_dl_56F0",
|
||||
"d_course_bowsers_castle_packed_dl_5678",
|
||||
"d_course_bowsers_castle_packed_dl_55E8",
|
||||
"d_course_bowsers_castle_packed_dl_5560",
|
||||
"d_course_bowsers_castle_packed_dl_8E40",
|
||||
"d_course_bowsers_castle_packed_dl_2BB8",
|
||||
"d_course_bowsers_castle_packed_dl_75E8",
|
||||
"d_course_bowsers_castle_packed_dl_9278",
|
||||
"d_course_bowsers_castle_packed_dl_3B0",
|
||||
"d_course_bowsers_castle_packed_dl_83B0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/bowsers_castle/course_data.c",
|
||||
"out_dir": "tracks/bowsers_castle/preview",
|
||||
"models": [
|
||||
"d_course_bowsers_castle_dl_9148"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/choco_mountain/course_data.c",
|
||||
"out_dir": "tracks/choco_mountain/objects",
|
||||
"models": [
|
||||
"d_course_choco_mountain_dl_falling_rock"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/choco_mountain/course_data.c",
|
||||
"out_dir": "tracks/choco_mountain/sections",
|
||||
"models": [
|
||||
"d_course_choco_mountain_dl_0",
|
||||
"d_course_choco_mountain_dl_150",
|
||||
"d_course_choco_mountain_dl_B0",
|
||||
"d_course_choco_mountain_dl_208",
|
||||
"d_course_choco_mountain_dl_2A8",
|
||||
"d_course_choco_mountain_dl_410",
|
||||
"d_course_choco_mountain_dl_330",
|
||||
"d_course_choco_mountain_dl_4D8",
|
||||
"d_course_choco_mountain_dl_588",
|
||||
"d_course_choco_mountain_dl_6C0",
|
||||
"d_course_choco_mountain_dl_618",
|
||||
"d_course_choco_mountain_dl_750",
|
||||
"d_course_choco_mountain_dl_7E8",
|
||||
"d_course_choco_mountain_dl_908",
|
||||
"d_course_choco_mountain_dl_878",
|
||||
"d_course_choco_mountain_dl_990",
|
||||
"d_course_choco_mountain_dl_A28",
|
||||
"d_course_choco_mountain_dl_BB8",
|
||||
"d_course_choco_mountain_dl_B10",
|
||||
"d_course_choco_mountain_dl_C40",
|
||||
"d_course_choco_mountain_dl_D30",
|
||||
"d_course_choco_mountain_dl_EA0",
|
||||
"d_course_choco_mountain_dl_DF8",
|
||||
"d_course_choco_mountain_dl_F38",
|
||||
"d_course_choco_mountain_dl_1000",
|
||||
"d_course_choco_mountain_dl_1150",
|
||||
"d_course_choco_mountain_dl_10A8",
|
||||
"d_course_choco_mountain_dl_11D8",
|
||||
"d_course_choco_mountain_dl_1280",
|
||||
"d_course_choco_mountain_dl_13E0",
|
||||
"d_course_choco_mountain_dl_1330",
|
||||
"d_course_choco_mountain_dl_1488",
|
||||
"d_course_choco_mountain_dl_1528",
|
||||
"d_course_choco_mountain_dl_16B8",
|
||||
"d_course_choco_mountain_dl_15E8",
|
||||
"d_course_choco_mountain_dl_1788",
|
||||
"d_course_choco_mountain_dl_1810",
|
||||
"d_course_choco_mountain_dl_1970",
|
||||
"d_course_choco_mountain_dl_18B8",
|
||||
"d_course_choco_mountain_dl_1A40",
|
||||
"d_course_choco_mountain_dl_1AC8",
|
||||
"d_course_choco_mountain_dl_1C18",
|
||||
"d_course_choco_mountain_dl_1B70",
|
||||
"d_course_choco_mountain_dl_1CC8",
|
||||
"d_course_choco_mountain_dl_1D50",
|
||||
"d_course_choco_mountain_dl_1E98",
|
||||
"d_course_choco_mountain_dl_1E08",
|
||||
"d_course_choco_mountain_dl_1F40",
|
||||
"d_course_choco_mountain_dl_1FE0",
|
||||
"d_course_choco_mountain_dl_2168",
|
||||
"d_course_choco_mountain_dl_20C8",
|
||||
"d_course_choco_mountain_dl_2228",
|
||||
"d_course_choco_mountain_dl_22D8",
|
||||
"d_course_choco_mountain_dl_2468",
|
||||
"d_course_choco_mountain_dl_23C8",
|
||||
"d_course_choco_mountain_dl_2538",
|
||||
"d_course_choco_mountain_dl_2600",
|
||||
"d_course_choco_mountain_dl_2780",
|
||||
"d_course_choco_mountain_dl_26D8",
|
||||
"d_course_choco_mountain_dl_2840",
|
||||
"d_course_choco_mountain_dl_2908",
|
||||
"d_course_choco_mountain_dl_2A88",
|
||||
"d_course_choco_mountain_dl_29B8",
|
||||
"d_course_choco_mountain_dl_2B38",
|
||||
"d_course_choco_mountain_dl_2C08",
|
||||
"d_course_choco_mountain_dl_2D50",
|
||||
"d_course_choco_mountain_dl_2C98",
|
||||
"d_course_choco_mountain_dl_2DE8",
|
||||
"d_course_choco_mountain_dl_2EA0",
|
||||
"d_course_choco_mountain_dl_2FD0",
|
||||
"d_course_choco_mountain_dl_2F28",
|
||||
"d_course_choco_mountain_dl_3070",
|
||||
"d_course_choco_mountain_dl_3120",
|
||||
"d_course_choco_mountain_dl_32B0",
|
||||
"d_course_choco_mountain_dl_31D8",
|
||||
"d_course_choco_mountain_dl_3368",
|
||||
"d_course_choco_mountain_dl_3438",
|
||||
"d_course_choco_mountain_dl_3618",
|
||||
"d_course_choco_mountain_dl_3550",
|
||||
"d_course_choco_mountain_dl_36F0",
|
||||
"d_course_choco_mountain_dl_37D0",
|
||||
"d_course_choco_mountain_dl_39A8",
|
||||
"d_course_choco_mountain_dl_38E8",
|
||||
"d_course_choco_mountain_dl_3A80",
|
||||
"d_course_choco_mountain_dl_3B60",
|
||||
"d_course_choco_mountain_dl_3CB8",
|
||||
"d_course_choco_mountain_dl_3C18",
|
||||
"d_course_choco_mountain_dl_3D70",
|
||||
"d_course_choco_mountain_dl_3E18",
|
||||
"d_course_choco_mountain_dl_3FA8",
|
||||
"d_course_choco_mountain_dl_3EE0",
|
||||
"d_course_choco_mountain_dl_4090",
|
||||
"d_course_choco_mountain_dl_4138",
|
||||
"d_course_choco_mountain_dl_42C8",
|
||||
"d_course_choco_mountain_dl_41F8",
|
||||
"d_course_choco_mountain_dl_43C8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/choco_mountain/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/choco_mountain/collision_sections",
|
||||
"models": [
|
||||
"d_course_choco_mountain_packed_dl_5A70",
|
||||
"d_course_choco_mountain_packed_dl_8E0",
|
||||
"d_course_choco_mountain_packed_dl_448",
|
||||
"d_course_choco_mountain_packed_dl_49F0",
|
||||
"d_course_choco_mountain_packed_dl_4AB0",
|
||||
"d_course_choco_mountain_packed_dl_4B58",
|
||||
"d_course_choco_mountain_packed_dl_4C08",
|
||||
"d_course_choco_mountain_packed_dl_4CC8",
|
||||
"d_course_choco_mountain_packed_dl_4970",
|
||||
"d_course_choco_mountain_packed_dl_4618",
|
||||
"d_course_choco_mountain_packed_dl_4690",
|
||||
"d_course_choco_mountain_packed_dl_46F0",
|
||||
"d_course_choco_mountain_packed_dl_4790",
|
||||
"d_course_choco_mountain_packed_dl_4840",
|
||||
"d_course_choco_mountain_packed_dl_48E8",
|
||||
"d_course_choco_mountain_packed_dl_4D90",
|
||||
"d_course_choco_mountain_packed_dl_51D8",
|
||||
"d_course_choco_mountain_packed_dl_5258",
|
||||
"d_course_choco_mountain_packed_dl_52C8",
|
||||
"d_course_choco_mountain_packed_dl_5338",
|
||||
"d_course_choco_mountain_packed_dl_53D8",
|
||||
"d_course_choco_mountain_packed_dl_5148",
|
||||
"d_course_choco_mountain_packed_dl_4E40",
|
||||
"d_course_choco_mountain_packed_dl_4EB0",
|
||||
"d_course_choco_mountain_packed_dl_4F30",
|
||||
"d_course_choco_mountain_packed_dl_4FC0",
|
||||
"d_course_choco_mountain_packed_dl_5070",
|
||||
"d_course_choco_mountain_packed_dl_2530",
|
||||
"d_course_choco_mountain_packed_dl_2458",
|
||||
"d_course_choco_mountain_packed_dl_2380",
|
||||
"d_course_choco_mountain_packed_dl_2278",
|
||||
"d_course_choco_mountain_packed_dl_21D8",
|
||||
"d_course_choco_mountain_packed_dl_2600",
|
||||
"d_course_choco_mountain_packed_dl_29E8",
|
||||
"d_course_choco_mountain_packed_dl_28B0",
|
||||
"d_course_choco_mountain_packed_dl_27F0",
|
||||
"d_course_choco_mountain_packed_dl_2760",
|
||||
"d_course_choco_mountain_packed_dl_20F8",
|
||||
"d_course_choco_mountain_packed_dl_1A48",
|
||||
"d_course_choco_mountain_packed_dl_1988",
|
||||
"d_course_choco_mountain_packed_dl_17E0",
|
||||
"d_course_choco_mountain_packed_dl_1740",
|
||||
"d_course_choco_mountain_packed_dl_1670",
|
||||
"d_course_choco_mountain_packed_dl_1AC8",
|
||||
"d_course_choco_mountain_packed_dl_1FE8",
|
||||
"d_course_choco_mountain_packed_dl_1E90",
|
||||
"d_course_choco_mountain_packed_dl_1DB8",
|
||||
"d_course_choco_mountain_packed_dl_1C98",
|
||||
"d_course_choco_mountain_packed_dl_1BE0",
|
||||
"d_course_choco_mountain_packed_dl_2AE8",
|
||||
"d_course_choco_mountain_packed_dl_38B8",
|
||||
"d_course_choco_mountain_packed_dl_37B0",
|
||||
"d_course_choco_mountain_packed_dl_3708",
|
||||
"d_course_choco_mountain_packed_dl_3670",
|
||||
"d_course_choco_mountain_packed_dl_35B0",
|
||||
"d_course_choco_mountain_packed_dl_3998",
|
||||
"d_course_choco_mountain_packed_dl_3EE8",
|
||||
"d_course_choco_mountain_packed_dl_3DD8",
|
||||
"d_course_choco_mountain_packed_dl_3CF0",
|
||||
"d_course_choco_mountain_packed_dl_3B98",
|
||||
"d_course_choco_mountain_packed_dl_3A80",
|
||||
"d_course_choco_mountain_packed_dl_34E0",
|
||||
"d_course_choco_mountain_packed_dl_2FE8",
|
||||
"d_course_choco_mountain_packed_dl_2EE8",
|
||||
"d_course_choco_mountain_packed_dl_2E38",
|
||||
"d_course_choco_mountain_packed_dl_2D68",
|
||||
"d_course_choco_mountain_packed_dl_2CA8",
|
||||
"d_course_choco_mountain_packed_dl_2BD0",
|
||||
"d_course_choco_mountain_packed_dl_30A8",
|
||||
"d_course_choco_mountain_packed_dl_3410"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/choco_mountain/course_data.c",
|
||||
"out_dir": "tracks/choco_mountain/preview",
|
||||
"models": [
|
||||
"d_course_choco_mountain_dl_71B8"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,203 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/dks_jungle_parkway/course_data.c",
|
||||
"out_dir": "tracks/dks_jungle_parkway/objects",
|
||||
"models":[
|
||||
"d_course_dks_jungle_parkway_dl_E730",
|
||||
"d_course_dks_jungle_parkway_dl_E058",
|
||||
"d_course_dks_jungle_parkway_dl_FC28",
|
||||
"d_course_dks_jungle_parkway_dl_kiwano_fruit",
|
||||
"d_course_dks_jungle_parkway_dl_palm_tree",
|
||||
"d_course_dks_jungle_parkway_dl_13878",
|
||||
"d_course_dks_jungle_parkway_dl_tree3",
|
||||
"d_course_dks_jungle_parkway_dl_tree2",
|
||||
"d_course_dks_jungle_parkway_dl_tree1"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"file": "courses/dks_jungle_parkway/course_data.c",
|
||||
"out_dir": "tracks/dks_jungle_parkway/sections",
|
||||
"models":[
|
||||
"d_course_dks_jungle_parkway_dl_20", "d_course_dks_jungle_parkway_dl_210",
|
||||
"d_course_dks_jungle_parkway_dl_180", "d_course_dks_jungle_parkway_dl_310",
|
||||
"d_course_dks_jungle_parkway_dl_400", "d_course_dks_jungle_parkway_dl_628",
|
||||
"d_course_dks_jungle_parkway_dl_560", "d_course_dks_jungle_parkway_dl_750",
|
||||
"d_course_dks_jungle_parkway_dl_888", "d_course_dks_jungle_parkway_dl_B00",
|
||||
"d_course_dks_jungle_parkway_dl_A10", "d_course_dks_jungle_parkway_dl_C30",
|
||||
"d_course_dks_jungle_parkway_dl_D98", "d_course_dks_jungle_parkway_dl_1028",
|
||||
"d_course_dks_jungle_parkway_dl_EF0", "d_course_dks_jungle_parkway_dl_1160",
|
||||
"d_course_dks_jungle_parkway_dl_12E8", "d_course_dks_jungle_parkway_dl_15E0",
|
||||
"d_course_dks_jungle_parkway_dl_1478", "d_course_dks_jungle_parkway_dl_1718",
|
||||
"d_course_dks_jungle_parkway_dl_1890", "d_course_dks_jungle_parkway_dl_1B20",
|
||||
"d_course_dks_jungle_parkway_dl_1A00", "d_course_dks_jungle_parkway_dl_1C20",
|
||||
"d_course_dks_jungle_parkway_dl_1DB8", "d_course_dks_jungle_parkway_dl_1FD8",
|
||||
"d_course_dks_jungle_parkway_dl_1F20", "d_course_dks_jungle_parkway_dl_20A0",
|
||||
"d_course_dks_jungle_parkway_dl_2200", "d_course_dks_jungle_parkway_dl_2398",
|
||||
"d_course_dks_jungle_parkway_dl_2328", "d_course_dks_jungle_parkway_dl_2480",
|
||||
"d_course_dks_jungle_parkway_dl_2558", "d_course_dks_jungle_parkway_dl_2810",
|
||||
"d_course_dks_jungle_parkway_dl_2728", "d_course_dks_jungle_parkway_dl_2928",
|
||||
"d_course_dks_jungle_parkway_dl_2AC0", "d_course_dks_jungle_parkway_dl_2D70",
|
||||
"d_course_dks_jungle_parkway_dl_2B88", "d_course_dks_jungle_parkway_dl_2E30",
|
||||
"d_course_dks_jungle_parkway_dl_3010", "d_course_dks_jungle_parkway_dl_3338",
|
||||
"d_course_dks_jungle_parkway_dl_3100", "d_course_dks_jungle_parkway_dl_3498",
|
||||
"d_course_dks_jungle_parkway_dl_36A0", "d_course_dks_jungle_parkway_dl_3988",
|
||||
"d_course_dks_jungle_parkway_dl_3790", "d_course_dks_jungle_parkway_dl_3B28",
|
||||
"d_course_dks_jungle_parkway_dl_3CC8", "d_course_dks_jungle_parkway_dl_3F78",
|
||||
"d_course_dks_jungle_parkway_dl_3D88", "d_course_dks_jungle_parkway_dl_4100",
|
||||
"d_course_dks_jungle_parkway_dl_4250", "d_course_dks_jungle_parkway_dl_4470",
|
||||
"d_course_dks_jungle_parkway_dl_42F8", "d_course_dks_jungle_parkway_dl_45C0",
|
||||
"d_course_dks_jungle_parkway_dl_4658", "d_course_dks_jungle_parkway_dl_4848",
|
||||
"d_course_dks_jungle_parkway_dl_4710", "d_course_dks_jungle_parkway_dl_4980",
|
||||
"d_course_dks_jungle_parkway_dl_4A38", "d_course_dks_jungle_parkway_dl_4C18",
|
||||
"d_course_dks_jungle_parkway_dl_4AE8", "d_course_dks_jungle_parkway_dl_4D10",
|
||||
"d_course_dks_jungle_parkway_dl_4E10", "d_course_dks_jungle_parkway_dl_51B0",
|
||||
"d_course_dks_jungle_parkway_dl_4FB0", "d_course_dks_jungle_parkway_dl_53F8",
|
||||
"d_course_dks_jungle_parkway_dl_5580", "d_course_dks_jungle_parkway_dl_57A0",
|
||||
"d_course_dks_jungle_parkway_dl_5650", "d_course_dks_jungle_parkway_dl_5920",
|
||||
"d_course_dks_jungle_parkway_dl_59B8", "d_course_dks_jungle_parkway_dl_5B90",
|
||||
"d_course_dks_jungle_parkway_dl_5A50", "d_course_dks_jungle_parkway_dl_5CB0",
|
||||
"d_course_dks_jungle_parkway_dl_5D70", "d_course_dks_jungle_parkway_dl_5EC8",
|
||||
"d_course_dks_jungle_parkway_dl_5DF8", "d_course_dks_jungle_parkway_dl_5FA8",
|
||||
"d_course_dks_jungle_parkway_dl_6048", "d_course_dks_jungle_parkway_dl_62D0",
|
||||
"d_course_dks_jungle_parkway_dl_6178", "d_course_dks_jungle_parkway_dl_6468",
|
||||
"d_course_dks_jungle_parkway_dl_6588", "d_course_dks_jungle_parkway_dl_6740",
|
||||
"d_course_dks_jungle_parkway_dl_6680", "d_course_dks_jungle_parkway_dl_67C0",
|
||||
"d_course_dks_jungle_parkway_dl_68D0", "d_course_dks_jungle_parkway_dl_6A70",
|
||||
"d_course_dks_jungle_parkway_dl_69C8", "d_course_dks_jungle_parkway_dl_6AD8",
|
||||
"d_course_dks_jungle_parkway_dl_6BE8", "d_course_dks_jungle_parkway_dl_6CB8",
|
||||
"d_course_dks_jungle_parkway_dl_6C70", "d_course_dks_jungle_parkway_dl_6D10",
|
||||
"d_course_dks_jungle_parkway_dl_6D88", "d_course_dks_jungle_parkway_dl_6E48",
|
||||
"d_course_dks_jungle_parkway_dl_6E00", "d_course_dks_jungle_parkway_dl_6EB0",
|
||||
"d_course_dks_jungle_parkway_dl_6F10", "d_course_dks_jungle_parkway_dl_7080",
|
||||
"d_course_dks_jungle_parkway_dl_7008", "d_course_dks_jungle_parkway_dl_7108"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/dks_jungle_parkway/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/dks_jungle_parkway/collision_sections",
|
||||
"models": [
|
||||
"d_course_dks_jungle_parkway_packed_dl_7DA0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7E50",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7F58",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7FC8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_80A0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7C78",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7538",
|
||||
"d_course_dks_jungle_parkway_packed_dl_76A0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_77E8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_9988",
|
||||
"d_course_dks_jungle_parkway_packed_dl_98E0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_9B98",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7920",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7A88",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7B10",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8140",
|
||||
"d_course_dks_jungle_parkway_packed_dl_89B0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8A40",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8BA8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8C60",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8E78",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8800",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8358",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8458",
|
||||
"d_course_dks_jungle_parkway_packed_dl_3130",
|
||||
"d_course_dks_jungle_parkway_packed_dl_30C0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_3058",
|
||||
"d_course_dks_jungle_parkway_packed_dl_85A0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8648",
|
||||
"d_course_dks_jungle_parkway_packed_dl_86B0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_8760",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5B50",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5AB0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5A50",
|
||||
"d_course_dks_jungle_parkway_packed_dl_59E0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5BE0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5C68",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5D68",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5DF0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_56B8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5648",
|
||||
"d_course_dks_jungle_parkway_packed_dl_55D8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5558",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5768",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5800",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5890",
|
||||
"d_course_dks_jungle_parkway_packed_dl_58F8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5E70",
|
||||
"d_course_dks_jungle_parkway_packed_dl_64C0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6530",
|
||||
"d_course_dks_jungle_parkway_packed_dl_65A8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6620",
|
||||
"d_course_dks_jungle_parkway_packed_dl_66B0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6728",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6798",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6430",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6008",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5F80",
|
||||
"d_course_dks_jungle_parkway_packed_dl_5EF0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6098",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6100",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6240",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6368",
|
||||
"d_course_dks_jungle_parkway_packed_dl_3FD0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_4230",
|
||||
"d_course_dks_jungle_parkway_packed_dl_4300",
|
||||
"d_course_dks_jungle_parkway_packed_dl_4548",
|
||||
"d_course_dks_jungle_parkway_packed_dl_9250",
|
||||
"d_course_dks_jungle_parkway_packed_dl_54D8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_3AD0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_32A0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2E28",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2DC8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2D60",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2D00",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2510",
|
||||
"d_course_dks_jungle_parkway_packed_dl_24B0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2450",
|
||||
"d_course_dks_jungle_parkway_packed_dl_23F0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_21C0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2160",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2100",
|
||||
"d_course_dks_jungle_parkway_packed_dl_20A0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2040",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2B78",
|
||||
"d_course_dks_jungle_parkway_packed_dl_29F0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2890",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2788",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2570",
|
||||
"d_course_dks_jungle_parkway_packed_dl_2378",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1EB8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1C98",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1B38",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1970",
|
||||
"d_course_dks_jungle_parkway_packed_dl_17D0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_15B0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1430",
|
||||
"d_course_dks_jungle_parkway_packed_dl_12A8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_1118",
|
||||
"d_course_dks_jungle_parkway_packed_dl_FD0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_EC8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_C90",
|
||||
"d_course_dks_jungle_parkway_packed_dl_B68",
|
||||
"d_course_dks_jungle_parkway_packed_dl_A40",
|
||||
"d_course_dks_jungle_parkway_packed_dl_918",
|
||||
"d_course_dks_jungle_parkway_packed_dl_7E0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_6C8",
|
||||
"d_course_dks_jungle_parkway_packed_dl_520",
|
||||
"d_course_dks_jungle_parkway_packed_dl_398",
|
||||
"d_course_dks_jungle_parkway_packed_dl_200",
|
||||
"d_course_dks_jungle_parkway_packed_dl_0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_98F0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_37C0",
|
||||
"d_course_dks_jungle_parkway_packed_dl_3758"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/dks_jungle_parkway/course_data.c",
|
||||
"out_dir": "tracks/dks_jungle_parkway/preview",
|
||||
"models": [
|
||||
"d_course_dks_jungle_parkway_dl_13C30"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
[
|
||||
{
|
||||
"file":"courses/frappe_snowland/course_data.c",
|
||||
"out_dir": "tracks/frappe_snowland/objects",
|
||||
"models": [
|
||||
"d_course_frappe_snowland_dl_tree"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/frappe_snowland/course_data.c",
|
||||
"out_dir": "tracks/frappe_snowland/sections",
|
||||
"models": [
|
||||
"d_course_frappe_snowland_dl_0", "d_course_frappe_snowland_dl_1B8",
|
||||
"d_course_frappe_snowland_dl_C8", "d_course_frappe_snowland_dl_298",
|
||||
"d_course_frappe_snowland_dl_398", "d_course_frappe_snowland_dl_540",
|
||||
"d_course_frappe_snowland_dl_458", "d_course_frappe_snowland_dl_610",
|
||||
"d_course_frappe_snowland_dl_728", "d_course_frappe_snowland_dl_8C0",
|
||||
"d_course_frappe_snowland_dl_7C8", "d_course_frappe_snowland_dl_940",
|
||||
"d_course_frappe_snowland_dl_A38", "d_course_frappe_snowland_dl_BA8",
|
||||
"d_course_frappe_snowland_dl_AA8", "d_course_frappe_snowland_dl_C38",
|
||||
"d_course_frappe_snowland_dl_D28", "d_course_frappe_snowland_dl_EC8",
|
||||
"d_course_frappe_snowland_dl_DA8", "d_course_frappe_snowland_dl_F90",
|
||||
"d_course_frappe_snowland_dl_1068", "d_course_frappe_snowland_dl_1240",
|
||||
"d_course_frappe_snowland_dl_1118", "d_course_frappe_snowland_dl_1360",
|
||||
"d_course_frappe_snowland_dl_1430", "d_course_frappe_snowland_dl_1610",
|
||||
"d_course_frappe_snowland_dl_14E0", "d_course_frappe_snowland_dl_1768",
|
||||
"d_course_frappe_snowland_dl_1818", "d_course_frappe_snowland_dl_1A50",
|
||||
"d_course_frappe_snowland_dl_1930", "d_course_frappe_snowland_dl_1BC8",
|
||||
"d_course_frappe_snowland_dl_1C80", "d_course_frappe_snowland_dl_1E98",
|
||||
"d_course_frappe_snowland_dl_1DE8", "d_course_frappe_snowland_dl_2000",
|
||||
"d_course_frappe_snowland_dl_20B0", "d_course_frappe_snowland_dl_2308",
|
||||
"d_course_frappe_snowland_dl_2240", "d_course_frappe_snowland_dl_2448",
|
||||
"d_course_frappe_snowland_dl_2588", "d_course_frappe_snowland_dl_2698",
|
||||
"d_course_frappe_snowland_dl_2618", "d_course_frappe_snowland_dl_2700",
|
||||
"d_course_frappe_snowland_dl_2780", "d_course_frappe_snowland_dl_2860",
|
||||
"d_course_frappe_snowland_dl_27F8", "d_course_frappe_snowland_dl_28A8",
|
||||
"d_course_frappe_snowland_dl_2930", "d_course_frappe_snowland_dl_2A40",
|
||||
"d_course_frappe_snowland_dl_29B0", "d_course_frappe_snowland_dl_2AB0",
|
||||
"d_course_frappe_snowland_dl_2B48", "d_course_frappe_snowland_dl_2C00",
|
||||
"d_course_frappe_snowland_dl_2BA0", "d_course_frappe_snowland_dl_2C50",
|
||||
"d_course_frappe_snowland_dl_2CB8", "d_course_frappe_snowland_dl_2D78",
|
||||
"d_course_frappe_snowland_dl_2D20", "d_course_frappe_snowland_dl_2DD0",
|
||||
"d_course_frappe_snowland_dl_2E40", "d_course_frappe_snowland_dl_3000",
|
||||
"d_course_frappe_snowland_dl_2F40", "d_course_frappe_snowland_dl_30D0",
|
||||
"d_course_frappe_snowland_dl_3198", "d_course_frappe_snowland_dl_3328",
|
||||
"d_course_frappe_snowland_dl_3270", "d_course_frappe_snowland_dl_33E0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/frappe_snowland/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/frappe_snowland/collision_sections",
|
||||
"models": [
|
||||
"d_course_frappe_snowland_packed_dl_3B20",
|
||||
"d_course_frappe_snowland_packed_dl_3118",
|
||||
"d_course_frappe_snowland_packed_dl_2A90",
|
||||
"d_course_frappe_snowland_packed_dl_3F80",
|
||||
"d_course_frappe_snowland_packed_dl_3EF8",
|
||||
"d_course_frappe_snowland_packed_dl_3E68",
|
||||
"d_course_frappe_snowland_packed_dl_3DD8",
|
||||
"d_course_frappe_snowland_packed_dl_3B48",
|
||||
"d_course_frappe_snowland_packed_dl_3BD8",
|
||||
"d_course_frappe_snowland_packed_dl_3CD8",
|
||||
"d_course_frappe_snowland_packed_dl_3D58",
|
||||
"d_course_frappe_snowland_packed_dl_4020",
|
||||
"d_course_frappe_snowland_packed_dl_43E8",
|
||||
"d_course_frappe_snowland_packed_dl_4378",
|
||||
"d_course_frappe_snowland_packed_dl_4300",
|
||||
"d_course_frappe_snowland_packed_dl_4288",
|
||||
"d_course_frappe_snowland_packed_dl_40B0",
|
||||
"d_course_frappe_snowland_packed_dl_4120",
|
||||
"d_course_frappe_snowland_packed_dl_4188",
|
||||
"d_course_frappe_snowland_packed_dl_4208",
|
||||
"d_course_frappe_snowland_packed_dl_50D0",
|
||||
"d_course_frappe_snowland_packed_dl_51C8",
|
||||
"d_course_frappe_snowland_packed_dl_5330",
|
||||
"d_course_frappe_snowland_packed_dl_54A0",
|
||||
"d_course_frappe_snowland_packed_dl_55D0",
|
||||
"d_course_frappe_snowland_packed_dl_5740",
|
||||
"d_course_frappe_snowland_packed_dl_4FF8",
|
||||
"d_course_frappe_snowland_packed_dl_48C0",
|
||||
"d_course_frappe_snowland_packed_dl_49E0",
|
||||
"d_course_frappe_snowland_packed_dl_4BA0",
|
||||
"d_course_frappe_snowland_packed_dl_4D18",
|
||||
"d_course_frappe_snowland_packed_dl_4E40",
|
||||
"d_course_frappe_snowland_packed_dl_4F00",
|
||||
"d_course_frappe_snowland_packed_dl_58C0",
|
||||
"d_course_frappe_snowland_packed_dl_5E08",
|
||||
"d_course_frappe_snowland_packed_dl_5EA8",
|
||||
"d_course_frappe_snowland_packed_dl_5F90",
|
||||
"d_course_frappe_snowland_packed_dl_6088",
|
||||
"d_course_frappe_snowland_packed_dl_61A0",
|
||||
"d_course_frappe_snowland_packed_dl_6268",
|
||||
"d_course_frappe_snowland_packed_dl_5D90",
|
||||
"d_course_frappe_snowland_packed_dl_5988",
|
||||
"d_course_frappe_snowland_packed_dl_5A20",
|
||||
"d_course_frappe_snowland_packed_dl_5AC0",
|
||||
"d_course_frappe_snowland_packed_dl_5B58",
|
||||
"d_course_frappe_snowland_packed_dl_5BE0",
|
||||
"d_course_frappe_snowland_packed_dl_5C70"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/frappe_snowland/course_data.c",
|
||||
"out_dir": "tracks/frappe_snowland/preview",
|
||||
"models": [
|
||||
"d_course_frappe_snowland_dl_76A0"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/kalimari_desert/course_data.c",
|
||||
"out_dir": "tracks/kalimari_desert/objects",
|
||||
"models": [
|
||||
"d_course_kalimari_desert_dl_cactus1",
|
||||
"d_course_kalimari_desert_dl_cactus2",
|
||||
"d_course_kalimari_desert_dl_cactus3",
|
||||
"d_course_kalimari_desert_dl_crossing_right_active",
|
||||
"d_course_kalimari_desert_dl_crossing_left_active",
|
||||
"d_course_kalimari_desert_dl_crossing_both_inactive",
|
||||
"d_course_kalimari_desert_dl_1B978",
|
||||
"d_course_kalimari_desert_dl_1C0F0",
|
||||
"d_course_kalimari_desert_dl_1D160",
|
||||
"d_course_kalimari_desert_dl_1D670",
|
||||
"d_course_kalimari_desert_dl_1E480",
|
||||
"d_course_kalimari_desert_dl_1E910",
|
||||
"d_course_kalimari_desert_dl_1F228",
|
||||
"d_course_kalimari_desert_dl_1F708",
|
||||
"d_course_kalimari_desert_dl_1FAF8",
|
||||
"d_course_kalimari_desert_dl_20A20",
|
||||
"d_course_kalimari_desert_dl_21220",
|
||||
"d_course_kalimari_desert_dl_21550",
|
||||
"d_course_kalimari_desert_dl_21A80",
|
||||
"d_course_kalimari_desert_dl_21C90",
|
||||
"d_course_kalimari_desert_dl_22D28",
|
||||
"d_course_kalimari_desert_dl_22D70",
|
||||
"d_course_kalimari_desert_dl_22DB8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/kalimari_desert/course_data.c",
|
||||
"out_dir": "tracks/kalimari_desert/sections",
|
||||
"models": [
|
||||
"d_course_kalimari_desert_dl_0",
|
||||
"d_course_kalimari_desert_dl_258",
|
||||
"d_course_kalimari_desert_dl_100",
|
||||
"d_course_kalimari_desert_dl_310",
|
||||
"d_course_kalimari_desert_dl_4A0",
|
||||
"d_course_kalimari_desert_dl_778",
|
||||
"d_course_kalimari_desert_dl_5C0",
|
||||
"d_course_kalimari_desert_dl_858",
|
||||
"d_course_kalimari_desert_dl_A58",
|
||||
"d_course_kalimari_desert_dl_CD0",
|
||||
"d_course_kalimari_desert_dl_B38",
|
||||
"d_course_kalimari_desert_dl_DD0",
|
||||
"d_course_kalimari_desert_dl_F68",
|
||||
"d_course_kalimari_desert_dl_1258",
|
||||
"d_course_kalimari_desert_dl_1030",
|
||||
"d_course_kalimari_desert_dl_1350",
|
||||
"d_course_kalimari_desert_dl_14C0",
|
||||
"d_course_kalimari_desert_dl_17C8",
|
||||
"d_course_kalimari_desert_dl_1588",
|
||||
"d_course_kalimari_desert_dl_18C8",
|
||||
"d_course_kalimari_desert_dl_1A58",
|
||||
"d_course_kalimari_desert_dl_1D48",
|
||||
"d_course_kalimari_desert_dl_1B38",
|
||||
"d_course_kalimari_desert_dl_1E80",
|
||||
"d_course_kalimari_desert_dl_2000",
|
||||
"d_course_kalimari_desert_dl_22D8",
|
||||
"d_course_kalimari_desert_dl_20E0",
|
||||
"d_course_kalimari_desert_dl_2458",
|
||||
"d_course_kalimari_desert_dl_25D0",
|
||||
"d_course_kalimari_desert_dl_2868",
|
||||
"d_course_kalimari_desert_dl_26E8",
|
||||
"d_course_kalimari_desert_dl_29C0",
|
||||
"d_course_kalimari_desert_dl_2B40",
|
||||
"d_course_kalimari_desert_dl_2DE8",
|
||||
"d_course_kalimari_desert_dl_2C88",
|
||||
"d_course_kalimari_desert_dl_2F30",
|
||||
"d_course_kalimari_desert_dl_3068",
|
||||
"d_course_kalimari_desert_dl_32F8",
|
||||
"d_course_kalimari_desert_dl_31C0",
|
||||
"d_course_kalimari_desert_dl_3460",
|
||||
"d_course_kalimari_desert_dl_3590",
|
||||
"d_course_kalimari_desert_dl_3818",
|
||||
"d_course_kalimari_desert_dl_3718",
|
||||
"d_course_kalimari_desert_dl_3998",
|
||||
"d_course_kalimari_desert_dl_3AC0",
|
||||
"d_course_kalimari_desert_dl_3DB8",
|
||||
"d_course_kalimari_desert_dl_3CA0",
|
||||
"d_course_kalimari_desert_dl_3FB0",
|
||||
"d_course_kalimari_desert_dl_40A8",
|
||||
"d_course_kalimari_desert_dl_4358",
|
||||
"d_course_kalimari_desert_dl_4280",
|
||||
"d_course_kalimari_desert_dl_4538",
|
||||
"d_course_kalimari_desert_dl_4630",
|
||||
"d_course_kalimari_desert_dl_49E0",
|
||||
"d_course_kalimari_desert_dl_4908",
|
||||
"d_course_kalimari_desert_dl_4BA0",
|
||||
"d_course_kalimari_desert_dl_4CF0",
|
||||
"d_course_kalimari_desert_dl_4FB0",
|
||||
"d_course_kalimari_desert_dl_4EF8",
|
||||
"d_course_kalimari_desert_dl_5100",
|
||||
"d_course_kalimari_desert_dl_5208",
|
||||
"d_course_kalimari_desert_dl_5470",
|
||||
"d_course_kalimari_desert_dl_53A0",
|
||||
"d_course_kalimari_desert_dl_55C8",
|
||||
"d_course_kalimari_desert_dl_5730",
|
||||
"d_course_kalimari_desert_dl_5978",
|
||||
"d_course_kalimari_desert_dl_5898",
|
||||
"d_course_kalimari_desert_dl_5AD0",
|
||||
"d_course_kalimari_desert_dl_5BE8",
|
||||
"d_course_kalimari_desert_dl_5DF8",
|
||||
"d_course_kalimari_desert_dl_5D20",
|
||||
"d_course_kalimari_desert_dl_5F20",
|
||||
"d_course_kalimari_desert_dl_6028",
|
||||
"d_course_kalimari_desert_dl_62F8",
|
||||
"d_course_kalimari_desert_dl_61B0",
|
||||
"d_course_kalimari_desert_dl_63E0",
|
||||
"d_course_kalimari_desert_dl_65B0",
|
||||
"d_course_kalimari_desert_dl_6838",
|
||||
"d_course_kalimari_desert_dl_66F0",
|
||||
"d_course_kalimari_desert_dl_6940"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/kalimari_desert/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/kalimari_desert/collision_sections",
|
||||
"models": [
|
||||
"d_course_kalimari_desert_packed_dl_8690",
|
||||
"d_course_kalimari_desert_packed_dl_8728",
|
||||
"d_course_kalimari_desert_packed_dl_8798",
|
||||
"d_course_kalimari_desert_packed_dl_8808",
|
||||
"d_course_kalimari_desert_packed_dl_8610",
|
||||
"d_course_kalimari_desert_packed_dl_8398",
|
||||
"d_course_kalimari_desert_packed_dl_8418",
|
||||
"d_course_kalimari_desert_packed_dl_8490",
|
||||
"d_course_kalimari_desert_packed_dl_85A0",
|
||||
"d_course_kalimari_desert_packed_dl_8C08",
|
||||
"d_course_kalimari_desert_packed_dl_8D20",
|
||||
"d_course_kalimari_desert_packed_dl_8D98",
|
||||
"d_course_kalimari_desert_packed_dl_8B60",
|
||||
"d_course_kalimari_desert_packed_dl_8990",
|
||||
"d_course_kalimari_desert_packed_dl_8AC8",
|
||||
"d_course_kalimari_desert_packed_dl_8A40",
|
||||
"d_course_kalimari_desert_packed_dl_8920",
|
||||
"d_course_kalimari_desert_packed_dl_8C98",
|
||||
"d_course_kalimari_desert_packed_dl_8888",
|
||||
"d_course_kalimari_desert_packed_dl_8508",
|
||||
"d_course_kalimari_desert_packed_dl_9C50",
|
||||
"d_course_kalimari_desert_packed_dl_9BD8",
|
||||
"d_course_kalimari_desert_packed_dl_9FE8",
|
||||
"d_course_kalimari_desert_packed_dl_9EB0",
|
||||
"d_course_kalimari_desert_packed_dl_9F20",
|
||||
"d_course_kalimari_desert_packed_dl_9F88",
|
||||
"d_course_kalimari_desert_packed_dl_9E38",
|
||||
"d_course_kalimari_desert_packed_dl_9CC0",
|
||||
"d_course_kalimari_desert_packed_dl_A050",
|
||||
"d_course_kalimari_desert_packed_dl_A350",
|
||||
"d_course_kalimari_desert_packed_dl_A458",
|
||||
"d_course_kalimari_desert_packed_dl_A4D0",
|
||||
"d_course_kalimari_desert_packed_dl_A0C0",
|
||||
"d_course_kalimari_desert_packed_dl_A138",
|
||||
"d_course_kalimari_desert_packed_dl_A228",
|
||||
"d_course_kalimari_desert_packed_dl_A1A0",
|
||||
"d_course_kalimari_desert_packed_dl_A2D0",
|
||||
"d_course_kalimari_desert_packed_dl_A3D8",
|
||||
"d_course_kalimari_desert_packed_dl_9DC0",
|
||||
"d_course_kalimari_desert_packed_dl_9D48",
|
||||
"d_course_kalimari_desert_packed_dl_5360",
|
||||
"d_course_kalimari_desert_packed_dl_53D0",
|
||||
"d_course_kalimari_desert_packed_dl_5DB0",
|
||||
"d_course_kalimari_desert_packed_dl_5A60",
|
||||
"d_course_kalimari_desert_packed_dl_5B00",
|
||||
"d_course_kalimari_desert_packed_dl_5F28",
|
||||
"d_course_kalimari_desert_packed_dl_5580",
|
||||
"d_course_kalimari_desert_packed_dl_5E38",
|
||||
"d_course_kalimari_desert_packed_dl_5EB0",
|
||||
"d_course_kalimari_desert_packed_dl_59F0",
|
||||
"d_course_kalimari_desert_packed_dl_5450",
|
||||
"d_course_kalimari_desert_packed_dl_54C8",
|
||||
"d_course_kalimari_desert_packed_dl_5878",
|
||||
"d_course_kalimari_desert_packed_dl_6B28",
|
||||
"d_course_kalimari_desert_packed_dl_6E38",
|
||||
"d_course_kalimari_desert_packed_dl_57D0",
|
||||
"d_course_kalimari_desert_packed_dl_69F8",
|
||||
"d_course_kalimari_desert_packed_dl_6CF0",
|
||||
"d_course_kalimari_desert_packed_dl_61D8",
|
||||
"d_course_kalimari_desert_packed_dl_6820",
|
||||
"d_course_kalimari_desert_packed_dl_6EE8",
|
||||
"d_course_kalimari_desert_packed_dl_6050",
|
||||
"d_course_kalimari_desert_packed_dl_6130",
|
||||
"d_course_kalimari_desert_packed_dl_6310",
|
||||
"d_course_kalimari_desert_packed_dl_65F0",
|
||||
"d_course_kalimari_desert_packed_dl_63C0",
|
||||
"d_course_kalimari_desert_packed_dl_6490",
|
||||
"d_course_kalimari_desert_packed_dl_6530",
|
||||
"d_course_kalimari_desert_packed_dl_55F0",
|
||||
"d_course_kalimari_desert_packed_dl_66C8",
|
||||
"d_course_kalimari_desert_packed_dl_6290",
|
||||
"d_course_kalimari_desert_packed_dl_60C8",
|
||||
"d_course_kalimari_desert_packed_dl_6C70",
|
||||
"d_course_kalimari_desert_packed_dl_6DA0",
|
||||
"d_course_kalimari_desert_packed_dl_6BC0",
|
||||
"d_course_kalimari_desert_packed_dl_6958",
|
||||
"d_course_kalimari_desert_packed_dl_5728",
|
||||
"d_course_kalimari_desert_packed_dl_56A0",
|
||||
"d_course_kalimari_desert_packed_dl_5FB0",
|
||||
"d_course_kalimari_desert_packed_dl_5C90",
|
||||
"d_course_kalimari_desert_packed_dl_5B88",
|
||||
"d_course_kalimari_desert_packed_dl_52E0",
|
||||
"d_course_kalimari_desert_packed_dl_6A78",
|
||||
"d_course_kalimari_desert_packed_dl_6780",
|
||||
"d_course_kalimari_desert_packed_dl_68E0",
|
||||
"d_course_kalimari_desert_packed_dl_5948",
|
||||
"d_course_kalimari_desert_packed_dl_76C0",
|
||||
"d_course_kalimari_desert_packed_dl_77F8",
|
||||
"d_course_kalimari_desert_packed_dl_79F8",
|
||||
"d_course_kalimari_desert_packed_dl_7890",
|
||||
"d_course_kalimari_desert_packed_dl_7728",
|
||||
"d_course_kalimari_desert_packed_dl_75C0",
|
||||
"d_course_kalimari_desert_packed_dl_81A0",
|
||||
"d_course_kalimari_desert_packed_dl_7E18",
|
||||
"d_course_kalimari_desert_packed_dl_7CC8",
|
||||
"d_course_kalimari_desert_packed_dl_7F80",
|
||||
"d_course_kalimari_desert_packed_dl_80B8",
|
||||
"d_course_kalimari_desert_packed_dl_7BC8",
|
||||
"d_course_kalimari_desert_packed_dl_9B10",
|
||||
"d_course_kalimari_desert_packed_dl_1B18",
|
||||
"d_course_kalimari_desert_packed_dl_998"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/kalimari_desert/course_data.c",
|
||||
"out_dir": "tracks/kalimari_desert/preview",
|
||||
"models": [
|
||||
"d_course_kalimari_desert_dl_22E00"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,293 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/koopa_troopa_beach/course_data.c",
|
||||
"out_dir": "tracks/koopa_troopa_beach/objects",
|
||||
"models": [
|
||||
"d_course_koopa_troopa_beach_dl_16630",
|
||||
"d_course_koopa_troopa_beach_dl_tree_top1",
|
||||
"d_course_koopa_troopa_beach_dl_tree_trunk1",
|
||||
"d_course_koopa_troopa_beach_dl_tree_top2",
|
||||
"d_course_koopa_troopa_beach_dl_tree_trunk2",
|
||||
"d_course_koopa_troopa_beach_dl_tree_top3",
|
||||
"d_course_koopa_troopa_beach_dl_tree_trunk3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/koopa_troopa_beach/course_data.c",
|
||||
"out_dir": "tracks/koopa_troopa_beach/sections/list2",
|
||||
"models": [
|
||||
"d_course_koopa_troopa_beach_dl_118", "d_course_koopa_troopa_beach_dl_328",
|
||||
"d_course_koopa_troopa_beach_dl_218", "d_course_koopa_troopa_beach_dl_458",
|
||||
"d_course_koopa_troopa_beach_dl_530", "d_course_koopa_troopa_beach_dl_790",
|
||||
"d_course_koopa_troopa_beach_dl_658", "d_course_koopa_troopa_beach_dl_8F0",
|
||||
"d_course_koopa_troopa_beach_dl_9E0", "d_course_koopa_troopa_beach_dl_C50",
|
||||
"d_course_koopa_troopa_beach_dl_B10", "d_course_koopa_troopa_beach_dl_DB8",
|
||||
"d_course_koopa_troopa_beach_dl_EE0", "d_course_koopa_troopa_beach_dl_1178",
|
||||
"d_course_koopa_troopa_beach_dl_1040", "d_course_koopa_troopa_beach_dl_1310",
|
||||
"d_course_koopa_troopa_beach_dl_1430", "d_course_koopa_troopa_beach_dl_1680",
|
||||
"d_course_koopa_troopa_beach_dl_1558", "d_course_koopa_troopa_beach_dl_17B0",
|
||||
"d_course_koopa_troopa_beach_dl_1878", "d_course_koopa_troopa_beach_dl_19E8",
|
||||
"d_course_koopa_troopa_beach_dl_1940", "d_course_koopa_troopa_beach_dl_1AA8",
|
||||
"d_course_koopa_troopa_beach_dl_1B50", "d_course_koopa_troopa_beach_dl_1CB0",
|
||||
"d_course_koopa_troopa_beach_dl_1C00", "d_course_koopa_troopa_beach_dl_1D88",
|
||||
"d_course_koopa_troopa_beach_dl_1E40", "d_course_koopa_troopa_beach_dl_2058",
|
||||
"d_course_koopa_troopa_beach_dl_1F68", "d_course_koopa_troopa_beach_dl_2178",
|
||||
"d_course_koopa_troopa_beach_dl_2258", "d_course_koopa_troopa_beach_dl_24C0",
|
||||
"d_course_koopa_troopa_beach_dl_2390", "d_course_koopa_troopa_beach_dl_25D8",
|
||||
"d_course_koopa_troopa_beach_dl_26E0", "d_course_koopa_troopa_beach_dl_2910",
|
||||
"d_course_koopa_troopa_beach_dl_2800", "d_course_koopa_troopa_beach_dl_2A18",
|
||||
"d_course_koopa_troopa_beach_dl_2B08", "d_course_koopa_troopa_beach_dl_2D50",
|
||||
"d_course_koopa_troopa_beach_dl_2C28", "d_course_koopa_troopa_beach_dl_2E38",
|
||||
"d_course_koopa_troopa_beach_dl_2F30", "d_course_koopa_troopa_beach_dl_3198",
|
||||
"d_course_koopa_troopa_beach_dl_3050", "d_course_koopa_troopa_beach_dl_3278",
|
||||
"d_course_koopa_troopa_beach_dl_3370", "d_course_koopa_troopa_beach_dl_3628",
|
||||
"d_course_koopa_troopa_beach_dl_34B8", "d_course_koopa_troopa_beach_dl_3730",
|
||||
"d_course_koopa_troopa_beach_dl_3830", "d_course_koopa_troopa_beach_dl_3B10",
|
||||
"d_course_koopa_troopa_beach_dl_3980", "d_course_koopa_troopa_beach_dl_3C28",
|
||||
"d_course_koopa_troopa_beach_dl_3D40", "d_course_koopa_troopa_beach_dl_4028",
|
||||
"d_course_koopa_troopa_beach_dl_3EA8", "d_course_koopa_troopa_beach_dl_4138",
|
||||
"d_course_koopa_troopa_beach_dl_4260", "d_course_koopa_troopa_beach_dl_4548",
|
||||
"d_course_koopa_troopa_beach_dl_43C0", "d_course_koopa_troopa_beach_dl_4670",
|
||||
"d_course_koopa_troopa_beach_dl_47C0", "d_course_koopa_troopa_beach_dl_4B28",
|
||||
"d_course_koopa_troopa_beach_dl_4948", "d_course_koopa_troopa_beach_dl_4C70",
|
||||
"d_course_koopa_troopa_beach_dl_4DC0", "d_course_koopa_troopa_beach_dl_5120",
|
||||
"d_course_koopa_troopa_beach_dl_4F58", "d_course_koopa_troopa_beach_dl_5248",
|
||||
"d_course_koopa_troopa_beach_dl_5358", "d_course_koopa_troopa_beach_dl_55D0",
|
||||
"d_course_koopa_troopa_beach_dl_5480", "d_course_koopa_troopa_beach_dl_56D0",
|
||||
"d_course_koopa_troopa_beach_dl_5840", "d_course_koopa_troopa_beach_dl_5B48",
|
||||
"d_course_koopa_troopa_beach_dl_59C8", "d_course_koopa_troopa_beach_dl_5C88",
|
||||
"d_course_koopa_troopa_beach_dl_5DB8", "d_course_koopa_troopa_beach_dl_6000",
|
||||
"d_course_koopa_troopa_beach_dl_5EE0", "d_course_koopa_troopa_beach_dl_6128",
|
||||
"d_course_koopa_troopa_beach_dl_6268", "d_course_koopa_troopa_beach_dl_6498",
|
||||
"d_course_koopa_troopa_beach_dl_6398", "d_course_koopa_troopa_beach_dl_65B8",
|
||||
"d_course_koopa_troopa_beach_dl_6718", "d_course_koopa_troopa_beach_dl_6918",
|
||||
"d_course_koopa_troopa_beach_dl_6830", "d_course_koopa_troopa_beach_dl_6A28",
|
||||
"d_course_koopa_troopa_beach_dl_6B88", "d_course_koopa_troopa_beach_dl_6DB8",
|
||||
"d_course_koopa_troopa_beach_dl_6CA0", "d_course_koopa_troopa_beach_dl_6ED0",
|
||||
"d_course_koopa_troopa_beach_dl_7060", "d_course_koopa_troopa_beach_dl_72B0",
|
||||
"d_course_koopa_troopa_beach_dl_7168", "d_course_koopa_troopa_beach_dl_73F8",
|
||||
"d_course_koopa_troopa_beach_dl_75A0", "d_course_koopa_troopa_beach_dl_7840",
|
||||
"d_course_koopa_troopa_beach_dl_76A8", "d_course_koopa_troopa_beach_dl_7978",
|
||||
"d_course_koopa_troopa_beach_dl_7AE0", "d_course_koopa_troopa_beach_dl_7CE0",
|
||||
"d_course_koopa_troopa_beach_dl_7BA0", "d_course_koopa_troopa_beach_dl_7DD0",
|
||||
"d_course_koopa_troopa_beach_dl_7EE0", "d_course_koopa_troopa_beach_dl_80E0",
|
||||
"d_course_koopa_troopa_beach_dl_7FC8", "d_course_koopa_troopa_beach_dl_81B8",
|
||||
"d_course_koopa_troopa_beach_dl_82D8", "d_course_koopa_troopa_beach_dl_84D0",
|
||||
"d_course_koopa_troopa_beach_dl_83D0", "d_course_koopa_troopa_beach_dl_85E8",
|
||||
"d_course_koopa_troopa_beach_dl_8710", "d_course_koopa_troopa_beach_dl_88F0",
|
||||
"d_course_koopa_troopa_beach_dl_8800", "d_course_koopa_troopa_beach_dl_8A20",
|
||||
"d_course_koopa_troopa_beach_dl_8BB0", "d_course_koopa_troopa_beach_dl_8DC0",
|
||||
"d_course_koopa_troopa_beach_dl_8CC8", "d_course_koopa_troopa_beach_dl_8F50",
|
||||
"d_course_koopa_troopa_beach_dl_90F0", "d_course_koopa_troopa_beach_dl_92E8",
|
||||
"d_course_koopa_troopa_beach_dl_9210", "d_course_koopa_troopa_beach_dl_9498",
|
||||
"d_course_koopa_troopa_beach_dl_9618", "d_course_koopa_troopa_beach_dl_9818",
|
||||
"d_course_koopa_troopa_beach_dl_9720", "d_course_koopa_troopa_beach_dl_99A0",
|
||||
"d_course_koopa_troopa_beach_dl_9AE0", "d_course_koopa_troopa_beach_dl_9D00",
|
||||
"d_course_koopa_troopa_beach_dl_9BC8", "d_course_koopa_troopa_beach_dl_9E60",
|
||||
"d_course_koopa_troopa_beach_dl_9F78", "d_course_koopa_troopa_beach_dl_A190",
|
||||
"d_course_koopa_troopa_beach_dl_A070", "d_course_koopa_troopa_beach_dl_A2E8",
|
||||
"d_course_koopa_troopa_beach_dl_A428", "d_course_koopa_troopa_beach_dl_A6F0",
|
||||
"d_course_koopa_troopa_beach_dl_A578", "d_course_koopa_troopa_beach_dl_A828",
|
||||
"d_course_koopa_troopa_beach_dl_A9A0", "d_course_koopa_troopa_beach_dl_AC10",
|
||||
"d_course_koopa_troopa_beach_dl_AAE8", "d_course_koopa_troopa_beach_dl_AD40"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/koopa_troopa_beach/course_data.c",
|
||||
"out_dir": "tracks/koopa_troopa_beach/sections/list1",
|
||||
"models": [
|
||||
"d_course_koopa_troopa_beach_dl_90", "d_course_koopa_troopa_beach_dl_278",
|
||||
"d_course_koopa_troopa_beach_dl_188", "d_course_koopa_troopa_beach_dl_3C0",
|
||||
"d_course_koopa_troopa_beach_dl_4B0", "d_course_koopa_troopa_beach_dl_6E0",
|
||||
"d_course_koopa_troopa_beach_dl_5A0", "d_course_koopa_troopa_beach_dl_828",
|
||||
"d_course_koopa_troopa_beach_dl_960", "d_course_koopa_troopa_beach_dl_B98",
|
||||
"d_course_koopa_troopa_beach_dl_A58", "d_course_koopa_troopa_beach_dl_CF0",
|
||||
"d_course_koopa_troopa_beach_dl_E48", "d_course_koopa_troopa_beach_dl_10D0",
|
||||
"d_course_koopa_troopa_beach_dl_F60", "d_course_koopa_troopa_beach_dl_1218",
|
||||
"d_course_koopa_troopa_beach_dl_13B8", "d_course_koopa_troopa_beach_dl_15E0",
|
||||
"d_course_koopa_troopa_beach_dl_1498", "d_course_koopa_troopa_beach_dl_1708",
|
||||
"d_course_koopa_troopa_beach_dl_1818", "d_course_koopa_troopa_beach_dl_1988",
|
||||
"d_course_koopa_troopa_beach_dl_18E0", "d_course_koopa_troopa_beach_dl_1A50",
|
||||
"d_course_koopa_troopa_beach_dl_1AD8", "d_course_koopa_troopa_beach_dl_1C48",
|
||||
"d_course_koopa_troopa_beach_dl_1BB8", "d_course_koopa_troopa_beach_dl_1D20",
|
||||
"d_course_koopa_troopa_beach_dl_1DE0", "d_course_koopa_troopa_beach_dl_1FE8",
|
||||
"d_course_koopa_troopa_beach_dl_1EB0", "d_course_koopa_troopa_beach_dl_20C8",
|
||||
"d_course_koopa_troopa_beach_dl_2200", "d_course_koopa_troopa_beach_dl_2440",
|
||||
"d_course_koopa_troopa_beach_dl_22C8", "d_course_koopa_troopa_beach_dl_2540",
|
||||
"d_course_koopa_troopa_beach_dl_2660", "d_course_koopa_troopa_beach_dl_2898",
|
||||
"d_course_koopa_troopa_beach_dl_2760", "d_course_koopa_troopa_beach_dl_2988",
|
||||
"d_course_koopa_troopa_beach_dl_2AA0", "d_course_koopa_troopa_beach_dl_2CC0",
|
||||
"d_course_koopa_troopa_beach_dl_2B78", "d_course_koopa_troopa_beach_dl_2DC0",
|
||||
"d_course_koopa_troopa_beach_dl_2EC0", "d_course_koopa_troopa_beach_dl_30E0",
|
||||
"d_course_koopa_troopa_beach_dl_2FB0", "d_course_koopa_troopa_beach_dl_3218",
|
||||
"d_course_koopa_troopa_beach_dl_3308", "d_course_koopa_troopa_beach_dl_3550",
|
||||
"d_course_koopa_troopa_beach_dl_33F8", "d_course_koopa_troopa_beach_dl_36D8",
|
||||
"d_course_koopa_troopa_beach_dl_37B8", "d_course_koopa_troopa_beach_dl_3A10",
|
||||
"d_course_koopa_troopa_beach_dl_38A8", "d_course_koopa_troopa_beach_dl_3BB8",
|
||||
"d_course_koopa_troopa_beach_dl_3CC0", "d_course_koopa_troopa_beach_dl_3F20",
|
||||
"d_course_koopa_troopa_beach_dl_3DC0", "d_course_koopa_troopa_beach_dl_40C0",
|
||||
"d_course_koopa_troopa_beach_dl_41D0", "d_course_koopa_troopa_beach_dl_4450",
|
||||
"d_course_koopa_troopa_beach_dl_42D8", "d_course_koopa_troopa_beach_dl_45D0",
|
||||
"d_course_koopa_troopa_beach_dl_4700", "d_course_koopa_troopa_beach_dl_49F0",
|
||||
"d_course_koopa_troopa_beach_dl_4840", "d_course_koopa_troopa_beach_dl_4BC8",
|
||||
"d_course_koopa_troopa_beach_dl_4D08", "d_course_koopa_troopa_beach_dl_4FF8",
|
||||
"d_course_koopa_troopa_beach_dl_4E70", "d_course_koopa_troopa_beach_dl_51C8",
|
||||
"d_course_koopa_troopa_beach_dl_52D8", "d_course_koopa_troopa_beach_dl_5500",
|
||||
"d_course_koopa_troopa_beach_dl_53B8", "d_course_koopa_troopa_beach_dl_5628",
|
||||
"d_course_koopa_troopa_beach_dl_5778", "d_course_koopa_troopa_beach_dl_5A50",
|
||||
"d_course_koopa_troopa_beach_dl_58E0", "d_course_koopa_troopa_beach_dl_5BB8",
|
||||
"d_course_koopa_troopa_beach_dl_5D28", "d_course_koopa_troopa_beach_dl_5F58",
|
||||
"d_course_koopa_troopa_beach_dl_5E28", "d_course_koopa_troopa_beach_dl_6050",
|
||||
"d_course_koopa_troopa_beach_dl_61D0", "d_course_koopa_troopa_beach_dl_6410",
|
||||
"d_course_koopa_troopa_beach_dl_62F8", "d_course_koopa_troopa_beach_dl_64F0",
|
||||
"d_course_koopa_troopa_beach_dl_6660", "d_course_koopa_troopa_beach_dl_6898",
|
||||
"d_course_koopa_troopa_beach_dl_67A0", "d_course_koopa_troopa_beach_dl_6968",
|
||||
"d_course_koopa_troopa_beach_dl_6AC0", "d_course_koopa_troopa_beach_dl_6D10",
|
||||
"d_course_koopa_troopa_beach_dl_6C18", "d_course_koopa_troopa_beach_dl_6E18",
|
||||
"d_course_koopa_troopa_beach_dl_6F70", "d_course_koopa_troopa_beach_dl_71C8",
|
||||
"d_course_koopa_troopa_beach_dl_7100", "d_course_koopa_troopa_beach_dl_7338",
|
||||
"d_course_koopa_troopa_beach_dl_7478", "d_course_koopa_troopa_beach_dl_7718",
|
||||
"d_course_koopa_troopa_beach_dl_7640", "d_course_koopa_troopa_beach_dl_78E8",
|
||||
"d_course_koopa_troopa_beach_dl_79E8", "d_course_koopa_troopa_beach_dl_7C08",
|
||||
"d_course_koopa_troopa_beach_dl_7B50", "d_course_koopa_troopa_beach_dl_7D58",
|
||||
"d_course_koopa_troopa_beach_dl_7E38", "d_course_koopa_troopa_beach_dl_8048",
|
||||
"d_course_koopa_troopa_beach_dl_7F68", "d_course_koopa_troopa_beach_dl_8150",
|
||||
"d_course_koopa_troopa_beach_dl_8228", "d_course_koopa_troopa_beach_dl_8448",
|
||||
"d_course_koopa_troopa_beach_dl_8368", "d_course_koopa_troopa_beach_dl_8550",
|
||||
"d_course_koopa_troopa_beach_dl_8650", "d_course_koopa_troopa_beach_dl_8878",
|
||||
"d_course_koopa_troopa_beach_dl_8790", "d_course_koopa_troopa_beach_dl_8958",
|
||||
"d_course_koopa_troopa_beach_dl_8A98", "d_course_koopa_troopa_beach_dl_8D48",
|
||||
"d_course_koopa_troopa_beach_dl_8C48", "d_course_koopa_troopa_beach_dl_8E30",
|
||||
"d_course_koopa_troopa_beach_dl_9008", "d_course_koopa_troopa_beach_dl_9288",
|
||||
"d_course_koopa_troopa_beach_dl_9188", "d_course_koopa_troopa_beach_dl_9378",
|
||||
"d_course_koopa_troopa_beach_dl_9548", "d_course_koopa_troopa_beach_dl_9798",
|
||||
"d_course_koopa_troopa_beach_dl_96A0", "d_course_koopa_troopa_beach_dl_98A0",
|
||||
"d_course_koopa_troopa_beach_dl_9A30", "d_course_koopa_troopa_beach_dl_9C38",
|
||||
"d_course_koopa_troopa_beach_dl_9B58", "d_course_koopa_troopa_beach_dl_9D98",
|
||||
"d_course_koopa_troopa_beach_dl_9ED8", "d_course_koopa_troopa_beach_dl_A0D0",
|
||||
"d_course_koopa_troopa_beach_dl_9FE8", "d_course_koopa_troopa_beach_dl_A220",
|
||||
"d_course_koopa_troopa_beach_dl_A340", "d_course_koopa_troopa_beach_dl_A608",
|
||||
"d_course_koopa_troopa_beach_dl_A4D8", "d_course_koopa_troopa_beach_dl_A780",
|
||||
"d_course_koopa_troopa_beach_dl_A8D0", "d_course_koopa_troopa_beach_dl_AB88",
|
||||
"d_course_koopa_troopa_beach_dl_AA38", "d_course_koopa_troopa_beach_dl_AC68"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/koopa_troopa_beach/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/koopa_troopa_beach/collision_sections",
|
||||
"models": [
|
||||
"d_course_koopa_troopa_beach_packed_dl_9688",
|
||||
"d_course_koopa_troopa_beach_packed_dl_D70",
|
||||
"d_course_koopa_troopa_beach_packed_dl_CC0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_BD8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_AE0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_E60",
|
||||
"d_course_koopa_troopa_beach_packed_dl_F38",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1000",
|
||||
"d_course_koopa_troopa_beach_packed_dl_10B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_A00",
|
||||
"d_course_koopa_troopa_beach_packed_dl_610",
|
||||
"d_course_koopa_troopa_beach_packed_dl_518",
|
||||
"d_course_koopa_troopa_beach_packed_dl_440",
|
||||
"d_course_koopa_troopa_beach_packed_dl_390",
|
||||
"d_course_koopa_troopa_beach_packed_dl_6D8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_778",
|
||||
"d_course_koopa_troopa_beach_packed_dl_858",
|
||||
"d_course_koopa_troopa_beach_packed_dl_928",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1190",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1C18",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1B58",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1A40",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1940",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1CC0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1DA8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1E90",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1F78",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1850",
|
||||
"d_course_koopa_troopa_beach_packed_dl_14D0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_13D0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_12D0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1210",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1590",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1668",
|
||||
"d_course_koopa_troopa_beach_packed_dl_16F0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_1778",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4490",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3978",
|
||||
"d_course_koopa_troopa_beach_packed_dl_39E8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3AC8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3B40",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3C38",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3D00",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3DE0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_38B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3470",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3390",
|
||||
"d_course_koopa_troopa_beach_packed_dl_32B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_31D0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3550",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3630",
|
||||
"d_course_koopa_troopa_beach_packed_dl_36F0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_37B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3ED8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4770",
|
||||
"d_course_koopa_troopa_beach_packed_dl_47E0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_48B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4920",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4A08",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4AF0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4BD0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_46A8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4200",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4120",
|
||||
"d_course_koopa_troopa_beach_packed_dl_4040",
|
||||
"d_course_koopa_troopa_beach_packed_dl_3F60",
|
||||
"d_course_koopa_troopa_beach_packed_dl_42E0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_43C0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_45C8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7F70",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8028",
|
||||
"d_course_koopa_troopa_beach_packed_dl_80F8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8200",
|
||||
"d_course_koopa_troopa_beach_packed_dl_82D8",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8360",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8468",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7EE0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_78E0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7810",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7740",
|
||||
"d_course_koopa_troopa_beach_packed_dl_76C0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7970",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7A98",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7DB0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7E48",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8510",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8C18",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8D08",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8DB0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8E50",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8EE0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8F58",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8FD0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8A90",
|
||||
"d_course_koopa_troopa_beach_packed_dl_85C0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_86B0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8740",
|
||||
"d_course_koopa_troopa_beach_packed_dl_87E0",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8870",
|
||||
"d_course_koopa_troopa_beach_packed_dl_8980",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7608",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7538",
|
||||
"d_course_koopa_troopa_beach_packed_dl_7430",
|
||||
"d_course_koopa_troopa_beach_packed_dl_9B20",
|
||||
"d_course_koopa_troopa_beach_packed_dl_9B78"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/koopa_troopa_beach/course_data.c",
|
||||
"out_dir": "tracks/koopa_troopa_beach/preview",
|
||||
"models": [
|
||||
"d_course_koopa_troopa_beach_dl_18D68"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,265 @@
|
|||
[
|
||||
|
||||
{
|
||||
"file": "courses/luigi_raceway/course_data.c",
|
||||
"out_dir": "tracks/luigi_raceway/objects",
|
||||
"models": [
|
||||
"d_course_luigi_raceway_dl_F650",
|
||||
"d_course_luigi_raceway_dl_F960",
|
||||
"d_course_luigi_raceway_dl_FA20",
|
||||
"d_course_luigi_raceway_dl_FBE0",
|
||||
"d_course_luigi_raceway_dl_FC70"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/luigi_raceway/course_data.c",
|
||||
"out_dir": "tracks/luigi_raceway/sections",
|
||||
"models": [
|
||||
"d_course_luigi_raceway_dl_0",
|
||||
"d_course_luigi_raceway_dl_328",
|
||||
"d_course_luigi_raceway_dl_1A8",
|
||||
"d_course_luigi_raceway_dl_480",
|
||||
"d_course_luigi_raceway_dl_6E0",
|
||||
"d_course_luigi_raceway_dl_9F8",
|
||||
"d_course_luigi_raceway_dl_868",
|
||||
"d_course_luigi_raceway_dl_B48",
|
||||
"d_course_luigi_raceway_dl_D80",
|
||||
"d_course_luigi_raceway_dl_1058",
|
||||
"d_course_luigi_raceway_dl_EE8",
|
||||
"d_course_luigi_raceway_dl_1198",
|
||||
"d_course_luigi_raceway_dl_1398",
|
||||
"d_course_luigi_raceway_dl_16D8",
|
||||
"d_course_luigi_raceway_dl_1538",
|
||||
"d_course_luigi_raceway_dl_1888",
|
||||
"d_course_luigi_raceway_dl_1B00",
|
||||
"d_course_luigi_raceway_dl_1E30",
|
||||
"d_course_luigi_raceway_dl_1C78",
|
||||
"d_course_luigi_raceway_dl_1FD0",
|
||||
"d_course_luigi_raceway_dl_2240",
|
||||
"d_course_luigi_raceway_dl_2518",
|
||||
"d_course_luigi_raceway_dl_2348",
|
||||
"d_course_luigi_raceway_dl_2658",
|
||||
"d_course_luigi_raceway_dl_2860",
|
||||
"d_course_luigi_raceway_dl_2BC0",
|
||||
"d_course_luigi_raceway_dl_2978",
|
||||
"d_course_luigi_raceway_dl_2D00",
|
||||
"d_course_luigi_raceway_dl_2F08",
|
||||
"d_course_luigi_raceway_dl_32C0",
|
||||
"d_course_luigi_raceway_dl_2FF8",
|
||||
"d_course_luigi_raceway_dl_3408",
|
||||
"d_course_luigi_raceway_dl_3610",
|
||||
"d_course_luigi_raceway_dl_3928",
|
||||
"d_course_luigi_raceway_dl_36A8",
|
||||
"d_course_luigi_raceway_dl_3AB0",
|
||||
"d_course_luigi_raceway_dl_3C18",
|
||||
"d_course_luigi_raceway_dl_3EB0",
|
||||
"d_course_luigi_raceway_dl_3CA0",
|
||||
"d_course_luigi_raceway_dl_4058",
|
||||
"d_course_luigi_raceway_dl_4198",
|
||||
"d_course_luigi_raceway_dl_4440",
|
||||
"d_course_luigi_raceway_dl_4240",
|
||||
"d_course_luigi_raceway_dl_4638",
|
||||
"d_course_luigi_raceway_dl_4720",
|
||||
"d_course_luigi_raceway_dl_4A18",
|
||||
"d_course_luigi_raceway_dl_4828",
|
||||
"d_course_luigi_raceway_dl_4C60",
|
||||
"d_course_luigi_raceway_dl_4CF8",
|
||||
"d_course_luigi_raceway_dl_4FD8",
|
||||
"d_course_luigi_raceway_dl_4E38",
|
||||
"d_course_luigi_raceway_dl_5220",
|
||||
"d_course_luigi_raceway_dl_52D0",
|
||||
"d_course_luigi_raceway_dl_5558",
|
||||
"d_course_luigi_raceway_dl_5420",
|
||||
"d_course_luigi_raceway_dl_5728",
|
||||
"d_course_luigi_raceway_dl_57F8",
|
||||
"d_course_luigi_raceway_dl_5A60",
|
||||
"d_course_luigi_raceway_dl_5940",
|
||||
"d_course_luigi_raceway_dl_5BA0",
|
||||
"d_course_luigi_raceway_dl_5CB8",
|
||||
"d_course_luigi_raceway_dl_5F08",
|
||||
"d_course_luigi_raceway_dl_5E10",
|
||||
"d_course_luigi_raceway_dl_6018",
|
||||
"d_course_luigi_raceway_dl_6150",
|
||||
"d_course_luigi_raceway_dl_6350",
|
||||
"d_course_luigi_raceway_dl_6288",
|
||||
"d_course_luigi_raceway_dl_6400",
|
||||
"d_course_luigi_raceway_dl_6558",
|
||||
"d_course_luigi_raceway_dl_6608",
|
||||
"d_course_luigi_raceway_dl_65B0",
|
||||
"d_course_luigi_raceway_dl_6658",
|
||||
"d_course_luigi_raceway_dl_66B8",
|
||||
"d_course_luigi_raceway_dl_67A0",
|
||||
"d_course_luigi_raceway_dl_6708",
|
||||
"d_course_luigi_raceway_dl_6810",
|
||||
"d_course_luigi_raceway_dl_68C0",
|
||||
"d_course_luigi_raceway_dl_6A00",
|
||||
"d_course_luigi_raceway_dl_6930",
|
||||
"d_course_luigi_raceway_dl_6A90",
|
||||
"d_course_luigi_raceway_dl_6B58",
|
||||
"d_course_luigi_raceway_dl_6DA0",
|
||||
"d_course_luigi_raceway_dl_6C40",
|
||||
"d_course_luigi_raceway_dl_6EB0",
|
||||
"d_course_luigi_raceway_dl_6FF0",
|
||||
"d_course_luigi_raceway_dl_7248",
|
||||
"d_course_luigi_raceway_dl_7110",
|
||||
"d_course_luigi_raceway_dl_7388",
|
||||
"d_course_luigi_raceway_dl_74B0",
|
||||
"d_course_luigi_raceway_dl_7750",
|
||||
"d_course_luigi_raceway_dl_75F0",
|
||||
"d_course_luigi_raceway_dl_7928",
|
||||
"d_course_luigi_raceway_dl_7A18",
|
||||
"d_course_luigi_raceway_dl_7CD0",
|
||||
"d_course_luigi_raceway_dl_7BB0",
|
||||
"d_course_luigi_raceway_dl_7EE8",
|
||||
"d_course_luigi_raceway_dl_7FA0",
|
||||
"d_course_luigi_raceway_dl_8260",
|
||||
"d_course_luigi_raceway_dl_8158",
|
||||
"d_course_luigi_raceway_dl_8450",
|
||||
"d_course_luigi_raceway_dl_8508",
|
||||
"d_course_luigi_raceway_dl_8790",
|
||||
"d_course_luigi_raceway_dl_86F8",
|
||||
"d_course_luigi_raceway_dl_8958",
|
||||
"d_course_luigi_raceway_dl_8A70",
|
||||
"d_course_luigi_raceway_dl_8D68",
|
||||
"d_course_luigi_raceway_dl_8CC8",
|
||||
"d_course_luigi_raceway_dl_8F00",
|
||||
"d_course_luigi_raceway_dl_9058",
|
||||
"d_course_luigi_raceway_dl_9408",
|
||||
"d_course_luigi_raceway_dl_9310",
|
||||
"d_course_luigi_raceway_dl_95A0",
|
||||
"d_course_luigi_raceway_dl_97B0",
|
||||
"d_course_luigi_raceway_dl_9AD0",
|
||||
"d_course_luigi_raceway_dl_99C0",
|
||||
"d_course_luigi_raceway_dl_9C50",
|
||||
"d_course_luigi_raceway_dl_9E58",
|
||||
"d_course_luigi_raceway_dl_A178",
|
||||
"d_course_luigi_raceway_dl_A028",
|
||||
"d_course_luigi_raceway_dl_A320"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/luigi_raceway/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/luigi_raceway/collision_sections",
|
||||
"models": [
|
||||
"d_course_luigi_raceway_packed_dl_6B00",
|
||||
"d_course_luigi_raceway_packed_dl_6BF0",
|
||||
"d_course_luigi_raceway_packed_dl_6CA8",
|
||||
"d_course_luigi_raceway_packed_dl_6D60",
|
||||
"d_course_luigi_raceway_packed_dl_6E18",
|
||||
"d_course_luigi_raceway_packed_dl_6EF0",
|
||||
"d_course_luigi_raceway_packed_dl_6FA8",
|
||||
"d_course_luigi_raceway_packed_dl_6A58",
|
||||
"d_course_luigi_raceway_packed_dl_65D8",
|
||||
"d_course_luigi_raceway_packed_dl_6680",
|
||||
"d_course_luigi_raceway_packed_dl_6728",
|
||||
"d_course_luigi_raceway_packed_dl_67D0",
|
||||
"d_course_luigi_raceway_packed_dl_6878",
|
||||
"d_course_luigi_raceway_packed_dl_6920",
|
||||
"d_course_luigi_raceway_packed_dl_69C0",
|
||||
"d_course_luigi_raceway_packed_dl_7050",
|
||||
"d_course_luigi_raceway_packed_dl_7650",
|
||||
"d_course_luigi_raceway_packed_dl_76F8",
|
||||
"d_course_luigi_raceway_packed_dl_77B0",
|
||||
"d_course_luigi_raceway_packed_dl_7878",
|
||||
"d_course_luigi_raceway_packed_dl_7940",
|
||||
"d_course_luigi_raceway_packed_dl_79E8",
|
||||
"d_course_luigi_raceway_packed_dl_75A8",
|
||||
"d_course_luigi_raceway_packed_dl_70F8",
|
||||
"d_course_luigi_raceway_packed_dl_71A0",
|
||||
"d_course_luigi_raceway_packed_dl_7248",
|
||||
"d_course_luigi_raceway_packed_dl_72F0",
|
||||
"d_course_luigi_raceway_packed_dl_7398",
|
||||
"d_course_luigi_raceway_packed_dl_7440",
|
||||
"d_course_luigi_raceway_packed_dl_74F0",
|
||||
"d_course_luigi_raceway_packed_dl_24E0",
|
||||
"d_course_luigi_raceway_packed_dl_2458",
|
||||
"d_course_luigi_raceway_packed_dl_23E0",
|
||||
"d_course_luigi_raceway_packed_dl_2368",
|
||||
"d_course_luigi_raceway_packed_dl_2560",
|
||||
"d_course_luigi_raceway_packed_dl_25E8",
|
||||
"d_course_luigi_raceway_packed_dl_2658",
|
||||
"d_course_luigi_raceway_packed_dl_26B8",
|
||||
"d_course_luigi_raceway_packed_dl_22F8",
|
||||
"d_course_luigi_raceway_packed_dl_20C0",
|
||||
"d_course_luigi_raceway_packed_dl_2050",
|
||||
"d_course_luigi_raceway_packed_dl_1FF0",
|
||||
"d_course_luigi_raceway_packed_dl_1F90",
|
||||
"d_course_luigi_raceway_packed_dl_2130",
|
||||
"d_course_luigi_raceway_packed_dl_21A8",
|
||||
"d_course_luigi_raceway_packed_dl_2210",
|
||||
"d_course_luigi_raceway_packed_dl_2280",
|
||||
"d_course_luigi_raceway_packed_dl_2720",
|
||||
"d_course_luigi_raceway_packed_dl_2D30",
|
||||
"d_course_luigi_raceway_packed_dl_2CB8",
|
||||
"d_course_luigi_raceway_packed_dl_2C40",
|
||||
"d_course_luigi_raceway_packed_dl_2BC8",
|
||||
"d_course_luigi_raceway_packed_dl_2DA8",
|
||||
"d_course_luigi_raceway_packed_dl_2E20",
|
||||
"d_course_luigi_raceway_packed_dl_2E90",
|
||||
"d_course_luigi_raceway_packed_dl_2EF8",
|
||||
"d_course_luigi_raceway_packed_dl_2B58",
|
||||
"d_course_luigi_raceway_packed_dl_2900",
|
||||
"d_course_luigi_raceway_packed_dl_2888",
|
||||
"d_course_luigi_raceway_packed_dl_2810",
|
||||
"d_course_luigi_raceway_packed_dl_2798",
|
||||
"d_course_luigi_raceway_packed_dl_2978",
|
||||
"d_course_luigi_raceway_packed_dl_29F0",
|
||||
"d_course_luigi_raceway_packed_dl_2A68",
|
||||
"d_course_luigi_raceway_packed_dl_2AE0",
|
||||
"d_course_luigi_raceway_packed_dl_33C8",
|
||||
"d_course_luigi_raceway_packed_dl_3448",
|
||||
"d_course_luigi_raceway_packed_dl_34C8",
|
||||
"d_course_luigi_raceway_packed_dl_3548",
|
||||
"d_course_luigi_raceway_packed_dl_35D0",
|
||||
"d_course_luigi_raceway_packed_dl_3678",
|
||||
"d_course_luigi_raceway_packed_dl_3350",
|
||||
"d_course_luigi_raceway_packed_dl_3080",
|
||||
"d_course_luigi_raceway_packed_dl_30F8",
|
||||
"d_course_luigi_raceway_packed_dl_3170",
|
||||
"d_course_luigi_raceway_packed_dl_31E8",
|
||||
"d_course_luigi_raceway_packed_dl_3260",
|
||||
"d_course_luigi_raceway_packed_dl_32D8",
|
||||
"d_course_luigi_raceway_packed_dl_36F8",
|
||||
"d_course_luigi_raceway_packed_dl_3AD0",
|
||||
"d_course_luigi_raceway_packed_dl_3B38",
|
||||
"d_course_luigi_raceway_packed_dl_3BD0",
|
||||
"d_course_luigi_raceway_packed_dl_3C40",
|
||||
"d_course_luigi_raceway_packed_dl_3CF0",
|
||||
"d_course_luigi_raceway_packed_dl_3D60",
|
||||
"d_course_luigi_raceway_packed_dl_3A58",
|
||||
"d_course_luigi_raceway_packed_dl_3768",
|
||||
"d_course_luigi_raceway_packed_dl_37E0",
|
||||
"d_course_luigi_raceway_packed_dl_3858",
|
||||
"d_course_luigi_raceway_packed_dl_38D0",
|
||||
"d_course_luigi_raceway_packed_dl_3948",
|
||||
"d_course_luigi_raceway_packed_dl_39C8",
|
||||
"d_course_luigi_raceway_packed_dl_1AC8",
|
||||
"d_course_luigi_raceway_packed_dl_1A28",
|
||||
"d_course_luigi_raceway_packed_dl_1988",
|
||||
"d_course_luigi_raceway_packed_dl_1920",
|
||||
"d_course_luigi_raceway_packed_dl_1D68",
|
||||
"d_course_luigi_raceway_packed_dl_17E0",
|
||||
"d_course_luigi_raceway_packed_dl_1B28",
|
||||
"d_course_luigi_raceway_packed_dl_1BD8",
|
||||
"d_course_luigi_raceway_packed_dl_1E70",
|
||||
"d_course_luigi_raceway_packed_dl_1E10",
|
||||
"d_course_luigi_raceway_packed_dl_1D00",
|
||||
"d_course_luigi_raceway_packed_dl_1C90",
|
||||
"d_course_luigi_raceway_packed_dl_7EB8",
|
||||
"d_course_luigi_raceway_packed_dl_6558",
|
||||
"d_course_luigi_raceway_packed_dl_4518",
|
||||
"d_course_luigi_raceway_packed_dl_A98",
|
||||
"d_course_luigi_raceway_packed_dl_1730",
|
||||
"d_course_luigi_raceway_packed_dl_4860",
|
||||
"d_course_luigi_raceway_packed_dl_8200",
|
||||
"d_course_luigi_raceway_packed_dl_4EE8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/luigi_raceway/course_data.c",
|
||||
"out_dir": "tracks/luigi_raceway/preview",
|
||||
"models": [
|
||||
"d_course_luigi_raceway_dl_FD40"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/mario_raceway/course_data.c",
|
||||
"out_dir": "tracks/mario_raceway/objects",
|
||||
"models": [
|
||||
"d_course_mario_raceway_dl_piranha_plant",
|
||||
"d_course_mario_raceway_dl_tree",
|
||||
"d_course_mario_raceway_dl_sign"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/mario_raceway/course_data.c",
|
||||
"out_dir": "tracks/mario_raceway/sections",
|
||||
"models": [
|
||||
"d_course_mario_raceway_dl_0",
|
||||
"d_course_mario_raceway_dl_1D0",
|
||||
"d_course_mario_raceway_dl_E8",
|
||||
"d_course_mario_raceway_dl_2C8",
|
||||
"d_course_mario_raceway_dl_3A8",
|
||||
"d_course_mario_raceway_dl_568",
|
||||
"d_course_mario_raceway_dl_478",
|
||||
"d_course_mario_raceway_dl_668",
|
||||
"d_course_mario_raceway_dl_750",
|
||||
"d_course_mario_raceway_dl_928",
|
||||
"d_course_mario_raceway_dl_828",
|
||||
"d_course_mario_raceway_dl_A00",
|
||||
"d_course_mario_raceway_dl_B08",
|
||||
"d_course_mario_raceway_dl_DC8",
|
||||
"d_course_mario_raceway_dl_C20",
|
||||
"d_course_mario_raceway_dl_F60",
|
||||
"d_course_mario_raceway_dl_10A8",
|
||||
"d_course_mario_raceway_dl_1408",
|
||||
"d_course_mario_raceway_dl_1210",
|
||||
"d_course_mario_raceway_dl_15C8",
|
||||
"d_course_mario_raceway_dl_1740",
|
||||
"d_course_mario_raceway_dl_1A30",
|
||||
"d_course_mario_raceway_dl_1850",
|
||||
"d_course_mario_raceway_dl_1B70",
|
||||
"d_course_mario_raceway_dl_1CF8",
|
||||
"d_course_mario_raceway_dl_1F68",
|
||||
"d_course_mario_raceway_dl_1DE0",
|
||||
"d_course_mario_raceway_dl_20A0",
|
||||
"d_course_mario_raceway_dl_21E8",
|
||||
"d_course_mario_raceway_dl_2418",
|
||||
"d_course_mario_raceway_dl_22E0",
|
||||
"d_course_mario_raceway_dl_2558",
|
||||
"d_course_mario_raceway_dl_2680",
|
||||
"d_course_mario_raceway_dl_28B0",
|
||||
"d_course_mario_raceway_dl_2790",
|
||||
"d_course_mario_raceway_dl_2A10",
|
||||
"d_course_mario_raceway_dl_2B40",
|
||||
"d_course_mario_raceway_dl_2DC0",
|
||||
"d_course_mario_raceway_dl_2C98",
|
||||
"d_course_mario_raceway_dl_2EF8",
|
||||
"d_course_mario_raceway_dl_3038",
|
||||
"d_course_mario_raceway_dl_32D8",
|
||||
"d_course_mario_raceway_dl_31F0",
|
||||
"d_course_mario_raceway_dl_3458",
|
||||
"d_course_mario_raceway_dl_35D0",
|
||||
"d_course_mario_raceway_dl_3830",
|
||||
"d_course_mario_raceway_dl_3748",
|
||||
"d_course_mario_raceway_dl_3960",
|
||||
"d_course_mario_raceway_dl_3AA0",
|
||||
"d_course_mario_raceway_dl_3D68",
|
||||
"d_course_mario_raceway_dl_3C08",
|
||||
"d_course_mario_raceway_dl_3EB8",
|
||||
"d_course_mario_raceway_dl_4038",
|
||||
"d_course_mario_raceway_dl_42A0",
|
||||
"d_course_mario_raceway_dl_4150",
|
||||
"d_course_mario_raceway_dl_43D8",
|
||||
"d_course_mario_raceway_dl_44F8",
|
||||
"d_course_mario_raceway_dl_4738",
|
||||
"d_course_mario_raceway_dl_4610",
|
||||
"d_course_mario_raceway_dl_4840",
|
||||
"d_course_mario_raceway_dl_4910",
|
||||
"d_course_mario_raceway_dl_4B78",
|
||||
"d_course_mario_raceway_dl_4A60",
|
||||
"d_course_mario_raceway_dl_4CD8",
|
||||
"d_course_mario_raceway_dl_4DC8",
|
||||
"d_course_mario_raceway_dl_4FF0",
|
||||
"d_course_mario_raceway_dl_4ED0",
|
||||
"d_course_mario_raceway_dl_5150"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/mario_raceway/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/mario_raceway/collision_sections",
|
||||
"models": [
|
||||
"d_course_mario_raceway_packed_dl_17D8",
|
||||
"d_course_mario_raceway_packed_dl_1770",
|
||||
"d_course_mario_raceway_packed_dl_16D8",
|
||||
"d_course_mario_raceway_packed_dl_1668",
|
||||
"d_course_mario_raceway_packed_dl_14C8",
|
||||
"d_course_mario_raceway_packed_dl_1500",
|
||||
"d_course_mario_raceway_packed_dl_1550",
|
||||
"d_course_mario_raceway_packed_dl_1600",
|
||||
"d_course_mario_raceway_packed_dl_1850",
|
||||
"d_course_mario_raceway_packed_dl_1AF8",
|
||||
"d_course_mario_raceway_packed_dl_1A80",
|
||||
"d_course_mario_raceway_packed_dl_1A08",
|
||||
"d_course_mario_raceway_packed_dl_1988",
|
||||
"d_course_mario_raceway_packed_dl_1890",
|
||||
"d_course_mario_raceway_packed_dl_18B8",
|
||||
"d_course_mario_raceway_packed_dl_18E0",
|
||||
"d_course_mario_raceway_packed_dl_1950",
|
||||
"d_course_mario_raceway_packed_dl_1188",
|
||||
"d_course_mario_raceway_packed_dl_2A28",
|
||||
"d_course_mario_raceway_packed_dl_E0",
|
||||
"d_course_mario_raceway_packed_dl_5218",
|
||||
"d_course_mario_raceway_packed_dl_50E8",
|
||||
"d_course_mario_raceway_packed_dl_4F90",
|
||||
"d_course_mario_raceway_packed_dl_4EE8",
|
||||
"d_course_mario_raceway_packed_dl_4E20",
|
||||
"d_course_mario_raceway_packed_dl_52B8",
|
||||
"d_course_mario_raceway_packed_dl_5608",
|
||||
"d_course_mario_raceway_packed_dl_5550",
|
||||
"d_course_mario_raceway_packed_dl_54B0",
|
||||
"d_course_mario_raceway_packed_dl_5408",
|
||||
"d_course_mario_raceway_packed_dl_5368",
|
||||
"d_course_mario_raceway_packed_dl_4D48",
|
||||
"d_course_mario_raceway_packed_dl_49E8",
|
||||
"d_course_mario_raceway_packed_dl_4950",
|
||||
"d_course_mario_raceway_packed_dl_4870",
|
||||
"d_course_mario_raceway_packed_dl_4780",
|
||||
"d_course_mario_raceway_packed_dl_46A0",
|
||||
"d_course_mario_raceway_packed_dl_4AD8",
|
||||
"d_course_mario_raceway_packed_dl_6198",
|
||||
"d_course_mario_raceway_packed_dl_60F0",
|
||||
"d_course_mario_raceway_packed_dl_63B0",
|
||||
"d_course_mario_raceway_packed_dl_5AE0",
|
||||
"d_course_mario_raceway_packed_dl_5A48",
|
||||
"d_course_mario_raceway_packed_dl_5970",
|
||||
"d_course_mario_raceway_packed_dl_5870",
|
||||
"d_course_mario_raceway_packed_dl_5768",
|
||||
"d_course_mario_raceway_packed_dl_5BC8",
|
||||
"d_course_mario_raceway_packed_dl_5ED0",
|
||||
"d_course_mario_raceway_packed_dl_5F88",
|
||||
"d_course_mario_raceway_packed_dl_6068",
|
||||
"d_course_mario_raceway_packed_dl_6308",
|
||||
"d_course_mario_raceway_packed_dl_6490"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/mario_raceway/course_data.c",
|
||||
"out_dir": "tracks/mario_raceway/preview",
|
||||
"models": [
|
||||
"d_course_mario_raceway_dl_9348"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/moo_moo_farm/course_data.c",
|
||||
"out_dir": "tracks/moo_moo_farm/objects",
|
||||
"models": [
|
||||
"d_course_moo_moo_farm_dl_cow1",
|
||||
"d_course_moo_moo_farm_dl_cow2",
|
||||
"d_course_moo_moo_farm_dl_cow3",
|
||||
"d_course_moo_moo_farm_dl_cow4",
|
||||
"d_course_moo_moo_farm_dl_cow5",
|
||||
"d_course_moo_moo_farm_dl_tree"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/moo_moo_farm/course_data.c",
|
||||
"out_dir": "tracks/moo_moo_farm/sections",
|
||||
"models": [
|
||||
"d_course_moo_moo_farm_dl_88",
|
||||
"d_course_moo_moo_farm_dl_598",
|
||||
"d_course_moo_moo_farm_dl_338",
|
||||
"d_course_moo_moo_farm_dl_8A0",
|
||||
"d_course_moo_moo_farm_dl_B00",
|
||||
"d_course_moo_moo_farm_dl_FE0",
|
||||
"d_course_moo_moo_farm_dl_D70",
|
||||
"d_course_moo_moo_farm_dl_12B8",
|
||||
"d_course_moo_moo_farm_dl_1530",
|
||||
"d_course_moo_moo_farm_dl_1A20",
|
||||
"d_course_moo_moo_farm_dl_1790",
|
||||
"d_course_moo_moo_farm_dl_1D00",
|
||||
"d_course_moo_moo_farm_dl_1F58",
|
||||
"d_course_moo_moo_farm_dl_2470",
|
||||
"d_course_moo_moo_farm_dl_2190",
|
||||
"d_course_moo_moo_farm_dl_27A8",
|
||||
"d_course_moo_moo_farm_dl_2A10",
|
||||
"d_course_moo_moo_farm_dl_2F20",
|
||||
"d_course_moo_moo_farm_dl_2C38",
|
||||
"d_course_moo_moo_farm_dl_3238",
|
||||
"d_course_moo_moo_farm_dl_34A0",
|
||||
"d_course_moo_moo_farm_dl_39F8",
|
||||
"d_course_moo_moo_farm_dl_36B8",
|
||||
"d_course_moo_moo_farm_dl_3CB0",
|
||||
"d_course_moo_moo_farm_dl_3EB8",
|
||||
"d_course_moo_moo_farm_dl_4428",
|
||||
"d_course_moo_moo_farm_dl_4098",
|
||||
"d_course_moo_moo_farm_dl_46D8",
|
||||
"d_course_moo_moo_farm_dl_4910",
|
||||
"d_course_moo_moo_farm_dl_4E00",
|
||||
"d_course_moo_moo_farm_dl_4AD0",
|
||||
"d_course_moo_moo_farm_dl_5040",
|
||||
"d_course_moo_moo_farm_dl_5290",
|
||||
"d_course_moo_moo_farm_dl_5758",
|
||||
"d_course_moo_moo_farm_dl_5458",
|
||||
"d_course_moo_moo_farm_dl_5990",
|
||||
"d_course_moo_moo_farm_dl_5BF8",
|
||||
"d_course_moo_moo_farm_dl_60A8",
|
||||
"d_course_moo_moo_farm_dl_5DF0",
|
||||
"d_course_moo_moo_farm_dl_62D0",
|
||||
"d_course_moo_moo_farm_dl_6548",
|
||||
"d_course_moo_moo_farm_dl_6A70",
|
||||
"d_course_moo_moo_farm_dl_6778",
|
||||
"d_course_moo_moo_farm_dl_6CB8",
|
||||
"d_course_moo_moo_farm_dl_6FF0",
|
||||
"d_course_moo_moo_farm_dl_74C8",
|
||||
"d_course_moo_moo_farm_dl_7218",
|
||||
"d_course_moo_moo_farm_dl_7718",
|
||||
"d_course_moo_moo_farm_dl_7A80",
|
||||
"d_course_moo_moo_farm_dl_7F78",
|
||||
"d_course_moo_moo_farm_dl_7CD8",
|
||||
"d_course_moo_moo_farm_dl_81E8",
|
||||
"d_course_moo_moo_farm_dl_84D0",
|
||||
"d_course_moo_moo_farm_dl_89A0",
|
||||
"d_course_moo_moo_farm_dl_8728",
|
||||
"d_course_moo_moo_farm_dl_8C00",
|
||||
"d_course_moo_moo_farm_dl_8F18",
|
||||
"d_course_moo_moo_farm_dl_93D0",
|
||||
"d_course_moo_moo_farm_dl_9178",
|
||||
"d_course_moo_moo_farm_dl_9640",
|
||||
"d_course_moo_moo_farm_dl_9938",
|
||||
"d_course_moo_moo_farm_dl_9DF8",
|
||||
"d_course_moo_moo_farm_dl_9BB0",
|
||||
"d_course_moo_moo_farm_dl_A010",
|
||||
"d_course_moo_moo_farm_dl_A2C0",
|
||||
"d_course_moo_moo_farm_dl_A7B0",
|
||||
"d_course_moo_moo_farm_dl_A568",
|
||||
"d_course_moo_moo_farm_dl_A9C8",
|
||||
"d_course_moo_moo_farm_dl_ACB0",
|
||||
"d_course_moo_moo_farm_dl_B230",
|
||||
"d_course_moo_moo_farm_dl_B020",
|
||||
"d_course_moo_moo_farm_dl_B478",
|
||||
"d_course_moo_moo_farm_dl_B798",
|
||||
"d_course_moo_moo_farm_dl_BCE8",
|
||||
"d_course_moo_moo_farm_dl_BB00",
|
||||
"d_course_moo_moo_farm_dl_BF10",
|
||||
"d_course_moo_moo_farm_dl_C180",
|
||||
"d_course_moo_moo_farm_dl_C6D8",
|
||||
"d_course_moo_moo_farm_dl_C4F8",
|
||||
"d_course_moo_moo_farm_dl_C950",
|
||||
"d_course_moo_moo_farm_dl_CBC8",
|
||||
"d_course_moo_moo_farm_dl_D140",
|
||||
"d_course_moo_moo_farm_dl_CF58",
|
||||
"d_course_moo_moo_farm_dl_D408",
|
||||
"d_course_moo_moo_farm_dl_D6B0",
|
||||
"d_course_moo_moo_farm_dl_DC70",
|
||||
"d_course_moo_moo_farm_dl_DA50",
|
||||
"d_course_moo_moo_farm_dl_DF60",
|
||||
"d_course_moo_moo_farm_dl_E1D8",
|
||||
"d_course_moo_moo_farm_dl_E708",
|
||||
"d_course_moo_moo_farm_dl_E4B0",
|
||||
"d_course_moo_moo_farm_dl_EA18"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/moo_moo_farm/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/moo_moo_farm/collision_sections",
|
||||
"models": [
|
||||
"d_course_moo_moo_farm_packed_dl_39F8",
|
||||
"d_course_moo_moo_farm_packed_dl_3B88",
|
||||
"d_course_moo_moo_farm_packed_dl_3C48",
|
||||
"d_course_moo_moo_farm_packed_dl_3D50",
|
||||
"d_course_moo_moo_farm_packed_dl_3E50",
|
||||
"d_course_moo_moo_farm_packed_dl_3918",
|
||||
"d_course_moo_moo_farm_packed_dl_34B8",
|
||||
"d_course_moo_moo_farm_packed_dl_3590",
|
||||
"d_course_moo_moo_farm_packed_dl_3668",
|
||||
"d_course_moo_moo_farm_packed_dl_3748",
|
||||
"d_course_moo_moo_farm_packed_dl_3828",
|
||||
"d_course_moo_moo_farm_packed_dl_3F30",
|
||||
"d_course_moo_moo_farm_packed_dl_46E8",
|
||||
"d_course_moo_moo_farm_packed_dl_47C8",
|
||||
"d_course_moo_moo_farm_packed_dl_48B8",
|
||||
"d_course_moo_moo_farm_packed_dl_49A8",
|
||||
"d_course_moo_moo_farm_packed_dl_4A88",
|
||||
"d_course_moo_moo_farm_packed_dl_45D0",
|
||||
"d_course_moo_moo_farm_packed_dl_40A8",
|
||||
"d_course_moo_moo_farm_packed_dl_41B0",
|
||||
"d_course_moo_moo_farm_packed_dl_42B8",
|
||||
"d_course_moo_moo_farm_packed_dl_43A0",
|
||||
"d_course_moo_moo_farm_packed_dl_4480",
|
||||
"d_course_moo_moo_farm_packed_dl_1BA0",
|
||||
"d_course_moo_moo_farm_packed_dl_1C40",
|
||||
"d_course_moo_moo_farm_packed_dl_1C98",
|
||||
"d_course_moo_moo_farm_packed_dl_1D00",
|
||||
"d_course_moo_moo_farm_packed_dl_1D60",
|
||||
"d_course_moo_moo_farm_packed_dl_1DD0",
|
||||
"d_course_moo_moo_farm_packed_dl_1E58",
|
||||
"d_course_moo_moo_farm_packed_dl_1B38",
|
||||
"d_course_moo_moo_farm_packed_dl_18E0",
|
||||
"d_course_moo_moo_farm_packed_dl_1940",
|
||||
"d_course_moo_moo_farm_packed_dl_19A0",
|
||||
"d_course_moo_moo_farm_packed_dl_1A00",
|
||||
"d_course_moo_moo_farm_packed_dl_1A60",
|
||||
"d_course_moo_moo_farm_packed_dl_1AA0",
|
||||
"d_course_moo_moo_farm_packed_dl_1AD0",
|
||||
"d_course_moo_moo_farm_packed_dl_1ED0",
|
||||
"d_course_moo_moo_farm_packed_dl_20F8",
|
||||
"d_course_moo_moo_farm_packed_dl_2160",
|
||||
"d_course_moo_moo_farm_packed_dl_21D8",
|
||||
"d_course_moo_moo_farm_packed_dl_2240",
|
||||
"d_course_moo_moo_farm_packed_dl_22B0",
|
||||
"d_course_moo_moo_farm_packed_dl_2338",
|
||||
"d_course_moo_moo_farm_packed_dl_23C0",
|
||||
"d_course_moo_moo_farm_packed_dl_2C68",
|
||||
"d_course_moo_moo_farm_packed_dl_2CD8",
|
||||
"d_course_moo_moo_farm_packed_dl_2D30",
|
||||
"d_course_moo_moo_farm_packed_dl_2D90",
|
||||
"d_course_moo_moo_farm_packed_dl_2DF0",
|
||||
"d_course_moo_moo_farm_packed_dl_2E60",
|
||||
"d_course_moo_moo_farm_packed_dl_2EA0",
|
||||
"d_course_moo_moo_farm_packed_dl_2C10",
|
||||
"d_course_moo_moo_farm_packed_dl_2998",
|
||||
"d_course_moo_moo_farm_packed_dl_29F0",
|
||||
"d_course_moo_moo_farm_packed_dl_2A50",
|
||||
"d_course_moo_moo_farm_packed_dl_2AB8",
|
||||
"d_course_moo_moo_farm_packed_dl_2AF0",
|
||||
"d_course_moo_moo_farm_packed_dl_2B50",
|
||||
"d_course_moo_moo_farm_packed_dl_2BA8",
|
||||
"d_course_moo_moo_farm_packed_dl_2F10",
|
||||
"d_course_moo_moo_farm_packed_dl_3210",
|
||||
"d_course_moo_moo_farm_packed_dl_3268",
|
||||
"d_course_moo_moo_farm_packed_dl_32A0",
|
||||
"d_course_moo_moo_farm_packed_dl_3310",
|
||||
"d_course_moo_moo_farm_packed_dl_3350",
|
||||
"d_course_moo_moo_farm_packed_dl_3380",
|
||||
"d_course_moo_moo_farm_packed_dl_31C8",
|
||||
"d_course_moo_moo_farm_packed_dl_5290",
|
||||
"d_course_moo_moo_farm_packed_dl_5018",
|
||||
"d_course_moo_moo_farm_packed_dl_A80",
|
||||
"d_course_moo_moo_farm_packed_dl_4D0",
|
||||
"d_course_moo_moo_farm_packed_dl_4DF8",
|
||||
"d_course_moo_moo_farm_packed_dl_CB0",
|
||||
"d_course_moo_moo_farm_packed_dl_F20"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/moo_moo_farm/course_data.c",
|
||||
"out_dir": "tracks/moo_moo_farm/preview",
|
||||
"models": [
|
||||
"d_course_moo_moo_farm_dl_14088"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/rainbow_road/course_data.c",
|
||||
"out_dir": "tracks/rainbow_road/objects",
|
||||
"models": [
|
||||
"d_course_rainbow_road_dl_151A8",
|
||||
"d_course_rainbow_road_dl_15550",
|
||||
"d_course_rainbow_road_dl_158C0",
|
||||
"d_course_rainbow_road_dl_15C68",
|
||||
"d_course_rainbow_road_dl_15F18"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/rainbow_road/course_data.c",
|
||||
"out_dir": "tracks/rainbow_road/sections",
|
||||
"models": [
|
||||
"d_course_rainbow_road_dl_D8", "d_course_rainbow_road_dl_210",
|
||||
"d_course_rainbow_road_dl_178", "d_course_rainbow_road_dl_288",
|
||||
"d_course_rainbow_road_dl_338", "d_course_rainbow_road_dl_4A0",
|
||||
"d_course_rainbow_road_dl_3D0", "d_course_rainbow_road_dl_528",
|
||||
"d_course_rainbow_road_dl_5F8", "d_course_rainbow_road_dl_6E0",
|
||||
"d_course_rainbow_road_dl_658", "d_course_rainbow_road_dl_730",
|
||||
"d_course_rainbow_road_dl_7A8", "d_course_rainbow_road_dl_880",
|
||||
"d_course_rainbow_road_dl_7F8", "d_course_rainbow_road_dl_8E0",
|
||||
"d_course_rainbow_road_dl_958", "d_course_rainbow_road_dl_A70",
|
||||
"d_course_rainbow_road_dl_9C8", "d_course_rainbow_road_dl_B08",
|
||||
"d_course_rainbow_road_dl_B70", "d_course_rainbow_road_dl_C70",
|
||||
"d_course_rainbow_road_dl_BF0", "d_course_rainbow_road_dl_D10",
|
||||
"d_course_rainbow_road_dl_D80", "d_course_rainbow_road_dl_E98",
|
||||
"d_course_rainbow_road_dl_E08", "d_course_rainbow_road_dl_F50",
|
||||
"d_course_rainbow_road_dl_FB0", "d_course_rainbow_road_dl_10A8",
|
||||
"d_course_rainbow_road_dl_1030", "d_course_rainbow_road_dl_1150",
|
||||
"d_course_rainbow_road_dl_1198", "d_course_rainbow_road_dl_12A0",
|
||||
"d_course_rainbow_road_dl_1228", "d_course_rainbow_road_dl_1340",
|
||||
"d_course_rainbow_road_dl_13F0", "d_course_rainbow_road_dl_14E8",
|
||||
"d_course_rainbow_road_dl_1488", "d_course_rainbow_road_dl_1530",
|
||||
"d_course_rainbow_road_dl_15D0", "d_course_rainbow_road_dl_16C0",
|
||||
"d_course_rainbow_road_dl_1678", "d_course_rainbow_road_dl_1738",
|
||||
"d_course_rainbow_road_dl_17D0", "d_course_rainbow_road_dl_18D0",
|
||||
"d_course_rainbow_road_dl_1878", "d_course_rainbow_road_dl_1948"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/rainbow_road/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/rainbow_road/collision_sections",
|
||||
"models": [
|
||||
"d_course_rainbow_road_packed_dl_20C0",
|
||||
"d_course_rainbow_road_packed_dl_1850",
|
||||
"d_course_rainbow_road_packed_dl_1758",
|
||||
"d_course_rainbow_road_packed_dl_1698",
|
||||
"d_course_rainbow_road_packed_dl_15F8",
|
||||
"d_course_rainbow_road_packed_dl_1528",
|
||||
"d_course_rainbow_road_packed_dl_13A0",
|
||||
"d_course_rainbow_road_packed_dl_1978",
|
||||
"d_course_rainbow_road_packed_dl_1D30",
|
||||
"d_course_rainbow_road_packed_dl_1C70",
|
||||
"d_course_rainbow_road_packed_dl_1BC0",
|
||||
"d_course_rainbow_road_packed_dl_1B28",
|
||||
"d_course_rainbow_road_packed_dl_1A20",
|
||||
"d_course_rainbow_road_packed_dl_1318"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/rainbow_road/course_data.c",
|
||||
"out_dir": "tracks/rainbow_road/preview",
|
||||
"models": [
|
||||
"d_course_rainbow_road_dl_16220"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,280 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/royal_raceway/course_data.c",
|
||||
"out_dir": "tracks/royal_raceway/objects",
|
||||
"models": [
|
||||
"d_course_royal_raceway_dl_tree",
|
||||
"d_course_royal_raceway_dl_castle_tree",
|
||||
"d_course_royal_raceway_dl_piranha_plant"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/royal_raceway/course_data.c",
|
||||
"out_dir": "tracks/royal_raceway/sections",
|
||||
"models": [
|
||||
"d_course_royal_raceway_dl_0",
|
||||
"d_course_royal_raceway_dl_360",
|
||||
"d_course_royal_raceway_dl_258",
|
||||
"d_course_royal_raceway_dl_470",
|
||||
"d_course_royal_raceway_dl_6D0",
|
||||
"d_course_royal_raceway_dl_A48",
|
||||
"d_course_royal_raceway_dl_8E0",
|
||||
"d_course_royal_raceway_dl_B40",
|
||||
"d_course_royal_raceway_dl_DA0",
|
||||
"d_course_royal_raceway_dl_1180",
|
||||
"d_course_royal_raceway_dl_F40",
|
||||
"d_course_royal_raceway_dl_12C0",
|
||||
"d_course_royal_raceway_dl_1538",
|
||||
"d_course_royal_raceway_dl_1850",
|
||||
"d_course_royal_raceway_dl_1610",
|
||||
"d_course_royal_raceway_dl_19B0",
|
||||
"d_course_royal_raceway_dl_1BB8",
|
||||
"d_course_royal_raceway_dl_1E88",
|
||||
"d_course_royal_raceway_dl_1C40",
|
||||
"d_course_royal_raceway_dl_2018",
|
||||
"d_course_royal_raceway_dl_21A8",
|
||||
"d_course_royal_raceway_dl_2428",
|
||||
"d_course_royal_raceway_dl_2210",
|
||||
"d_course_royal_raceway_dl_25F0",
|
||||
"d_course_royal_raceway_dl_26F0",
|
||||
"d_course_royal_raceway_dl_29A0",
|
||||
"d_course_royal_raceway_dl_27B8",
|
||||
"d_course_royal_raceway_dl_2B78",
|
||||
"d_course_royal_raceway_dl_2C20",
|
||||
"d_course_royal_raceway_dl_2FE0",
|
||||
"d_course_royal_raceway_dl_2DD0",
|
||||
"d_course_royal_raceway_dl_31F8",
|
||||
"d_course_royal_raceway_dl_33B0",
|
||||
"d_course_royal_raceway_dl_3748",
|
||||
"d_course_royal_raceway_dl_3580",
|
||||
"d_course_royal_raceway_dl_3960",
|
||||
"d_course_royal_raceway_dl_3AD8",
|
||||
"d_course_royal_raceway_dl_3D38",
|
||||
"d_course_royal_raceway_dl_3BA8",
|
||||
"d_course_royal_raceway_dl_3ED8",
|
||||
"d_course_royal_raceway_dl_3FA0",
|
||||
"d_course_royal_raceway_dl_41D8",
|
||||
"d_course_royal_raceway_dl_4048",
|
||||
"d_course_royal_raceway_dl_4380",
|
||||
"d_course_royal_raceway_dl_4438",
|
||||
"d_course_royal_raceway_dl_45A0",
|
||||
"d_course_royal_raceway_dl_44C0",
|
||||
"d_course_royal_raceway_dl_46A0",
|
||||
"d_course_royal_raceway_dl_4750",
|
||||
"d_course_royal_raceway_dl_4930",
|
||||
"d_course_royal_raceway_dl_4800",
|
||||
"d_course_royal_raceway_dl_4A38",
|
||||
"d_course_royal_raceway_dl_4AE0",
|
||||
"d_course_royal_raceway_dl_4D00",
|
||||
"d_course_royal_raceway_dl_4BA8",
|
||||
"d_course_royal_raceway_dl_4DF8",
|
||||
"d_course_royal_raceway_dl_4EC0",
|
||||
"d_course_royal_raceway_dl_50F0",
|
||||
"d_course_royal_raceway_dl_4F80",
|
||||
"d_course_royal_raceway_dl_51D0",
|
||||
"d_course_royal_raceway_dl_52F0",
|
||||
"d_course_royal_raceway_dl_54F8",
|
||||
"d_course_royal_raceway_dl_53B8",
|
||||
"d_course_royal_raceway_dl_5598",
|
||||
"d_course_royal_raceway_dl_56C0",
|
||||
"d_course_royal_raceway_dl_5890",
|
||||
"d_course_royal_raceway_dl_5758",
|
||||
"d_course_royal_raceway_dl_5900",
|
||||
"d_course_royal_raceway_dl_5A40",
|
||||
"d_course_royal_raceway_dl_5CA0",
|
||||
"d_course_royal_raceway_dl_5B28",
|
||||
"d_course_royal_raceway_dl_5D08",
|
||||
"d_course_royal_raceway_dl_5EB8",
|
||||
"d_course_royal_raceway_dl_6118",
|
||||
"d_course_royal_raceway_dl_5FD8",
|
||||
"d_course_royal_raceway_dl_61B0",
|
||||
"d_course_royal_raceway_dl_6378",
|
||||
"d_course_royal_raceway_dl_6780",
|
||||
"d_course_royal_raceway_dl_6538",
|
||||
"d_course_royal_raceway_dl_68C8",
|
||||
"d_course_royal_raceway_dl_6BC0",
|
||||
"d_course_royal_raceway_dl_70C0",
|
||||
"d_course_royal_raceway_dl_6E20",
|
||||
"d_course_royal_raceway_dl_72B8",
|
||||
"d_course_royal_raceway_dl_75C0",
|
||||
"d_course_royal_raceway_dl_78E8",
|
||||
"d_course_royal_raceway_dl_7778",
|
||||
"d_course_royal_raceway_dl_7AD0",
|
||||
"d_course_royal_raceway_dl_7BD8",
|
||||
"d_course_royal_raceway_dl_7ED8",
|
||||
"d_course_royal_raceway_dl_7DB0",
|
||||
"d_course_royal_raceway_dl_8068",
|
||||
"d_course_royal_raceway_dl_81C0",
|
||||
"d_course_royal_raceway_dl_84A0",
|
||||
"d_course_royal_raceway_dl_8398",
|
||||
"d_course_royal_raceway_dl_8620",
|
||||
"d_course_royal_raceway_dl_8770",
|
||||
"d_course_royal_raceway_dl_88B0",
|
||||
"d_course_royal_raceway_dl_8838",
|
||||
"d_course_royal_raceway_dl_8930",
|
||||
"d_course_royal_raceway_dl_89F0",
|
||||
"d_course_royal_raceway_dl_8CD8",
|
||||
"d_course_royal_raceway_dl_8C58",
|
||||
"d_course_royal_raceway_dl_8EB8",
|
||||
"d_course_royal_raceway_dl_8FA8",
|
||||
"d_course_royal_raceway_dl_92D0",
|
||||
"d_course_royal_raceway_dl_9218",
|
||||
"d_course_royal_raceway_dl_94E8",
|
||||
"d_course_royal_raceway_dl_9678",
|
||||
"d_course_royal_raceway_dl_99A0",
|
||||
"d_course_royal_raceway_dl_9900",
|
||||
"d_course_royal_raceway_dl_9B30",
|
||||
"d_course_royal_raceway_dl_9D58",
|
||||
"d_course_royal_raceway_dl_A0A8",
|
||||
"d_course_royal_raceway_dl_9FE8",
|
||||
"d_course_royal_raceway_dl_A200",
|
||||
"d_course_royal_raceway_dl_A478",
|
||||
"d_course_royal_raceway_dl_A728",
|
||||
"d_course_royal_raceway_dl_A600",
|
||||
"d_course_royal_raceway_dl_A8A8",
|
||||
"d_course_royal_raceway_dl_A9D0",
|
||||
"d_course_royal_raceway_dl_AC28",
|
||||
"d_course_royal_raceway_dl_AB28",
|
||||
"d_course_royal_raceway_dl_AD90",
|
||||
"d_course_royal_raceway_dl_AE70",
|
||||
"d_course_royal_raceway_dl_B040",
|
||||
"d_course_royal_raceway_dl_AFB0",
|
||||
"d_course_royal_raceway_dl_B188",
|
||||
"d_course_royal_raceway_dl_B230",
|
||||
"d_course_royal_raceway_dl_B3E8",
|
||||
"d_course_royal_raceway_dl_B2E0",
|
||||
"d_course_royal_raceway_dl_B508"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/royal_raceway/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/royal_raceway/collision_sections",
|
||||
"models": [
|
||||
"d_course_royal_raceway_packed_dl_650",
|
||||
"d_course_royal_raceway_packed_dl_1FE8",
|
||||
"d_course_royal_raceway_packed_dl_20A0",
|
||||
"d_course_royal_raceway_packed_dl_2110",
|
||||
"d_course_royal_raceway_packed_dl_21B8",
|
||||
"d_course_royal_raceway_packed_dl_2230",
|
||||
"d_course_royal_raceway_packed_dl_22C0",
|
||||
"d_course_royal_raceway_packed_dl_1F58",
|
||||
"d_course_royal_raceway_packed_dl_1B98",
|
||||
"d_course_royal_raceway_packed_dl_1C48",
|
||||
"d_course_royal_raceway_packed_dl_1CF0",
|
||||
"d_course_royal_raceway_packed_dl_1D68",
|
||||
"d_course_royal_raceway_packed_dl_1DF0",
|
||||
"d_course_royal_raceway_packed_dl_1E60",
|
||||
"d_course_royal_raceway_packed_dl_1EF0",
|
||||
"d_course_royal_raceway_packed_dl_2370",
|
||||
"d_course_royal_raceway_packed_dl_28D8",
|
||||
"d_course_royal_raceway_packed_dl_2950",
|
||||
"d_course_royal_raceway_packed_dl_2A10",
|
||||
"d_course_royal_raceway_packed_dl_2AC8",
|
||||
"d_course_royal_raceway_packed_dl_2B38",
|
||||
"d_course_royal_raceway_packed_dl_A648",
|
||||
"d_course_royal_raceway_packed_dl_2BA0",
|
||||
"d_course_royal_raceway_packed_dl_A6A8",
|
||||
"d_course_royal_raceway_packed_dl_2870",
|
||||
"d_course_royal_raceway_packed_dl_23F8",
|
||||
"d_course_royal_raceway_packed_dl_2478",
|
||||
"d_course_royal_raceway_packed_dl_2530",
|
||||
"d_course_royal_raceway_packed_dl_25E0",
|
||||
"d_course_royal_raceway_packed_dl_26B0",
|
||||
"d_course_royal_raceway_packed_dl_2758",
|
||||
"d_course_royal_raceway_packed_dl_27E0",
|
||||
"d_course_royal_raceway_packed_dl_5400",
|
||||
"d_course_royal_raceway_packed_dl_54A8",
|
||||
"d_course_royal_raceway_packed_dl_5520",
|
||||
"d_course_royal_raceway_packed_dl_51E8",
|
||||
"d_course_royal_raceway_packed_dl_4E90",
|
||||
"d_course_royal_raceway_packed_dl_4F20",
|
||||
"d_course_royal_raceway_packed_dl_4F98",
|
||||
"d_course_royal_raceway_packed_dl_5018",
|
||||
"d_course_royal_raceway_packed_dl_50B0",
|
||||
"d_course_royal_raceway_packed_dl_5138",
|
||||
"d_course_royal_raceway_packed_dl_5B50",
|
||||
"d_course_royal_raceway_packed_dl_5C00",
|
||||
"d_course_royal_raceway_packed_dl_5D18",
|
||||
"d_course_royal_raceway_packed_dl_5DC8",
|
||||
"d_course_royal_raceway_packed_dl_5EF8",
|
||||
"d_course_royal_raceway_packed_dl_5AA8",
|
||||
"d_course_royal_raceway_packed_dl_56A0",
|
||||
"d_course_royal_raceway_packed_dl_5740",
|
||||
"d_course_royal_raceway_packed_dl_57F0",
|
||||
"d_course_royal_raceway_packed_dl_58E8",
|
||||
"d_course_royal_raceway_packed_dl_5990",
|
||||
"d_course_royal_raceway_packed_dl_5A10",
|
||||
"d_course_royal_raceway_packed_dl_4078",
|
||||
"d_course_royal_raceway_packed_dl_4118",
|
||||
"d_course_royal_raceway_packed_dl_41A8",
|
||||
"d_course_royal_raceway_packed_dl_4298",
|
||||
"d_course_royal_raceway_packed_dl_4350",
|
||||
"d_course_royal_raceway_packed_dl_3FA8",
|
||||
"d_course_royal_raceway_packed_dl_3B70",
|
||||
"d_course_royal_raceway_packed_dl_3C18",
|
||||
"d_course_royal_raceway_packed_dl_3CF0",
|
||||
"d_course_royal_raceway_packed_dl_3DC0",
|
||||
"d_course_royal_raceway_packed_dl_3E50",
|
||||
"d_course_royal_raceway_packed_dl_3F18",
|
||||
"d_course_royal_raceway_packed_dl_4400",
|
||||
"d_course_royal_raceway_packed_dl_4A08",
|
||||
"d_course_royal_raceway_packed_dl_4A80",
|
||||
"d_course_royal_raceway_packed_dl_4B30",
|
||||
"d_course_royal_raceway_packed_dl_4BC8",
|
||||
"d_course_royal_raceway_packed_dl_4CC8",
|
||||
"d_course_royal_raceway_packed_dl_4968",
|
||||
"d_course_royal_raceway_packed_dl_44B0",
|
||||
"d_course_royal_raceway_packed_dl_4538",
|
||||
"d_course_royal_raceway_packed_dl_45E0",
|
||||
"d_course_royal_raceway_packed_dl_46E0",
|
||||
"d_course_royal_raceway_packed_dl_47C0",
|
||||
"d_course_royal_raceway_packed_dl_4890",
|
||||
"d_course_royal_raceway_packed_dl_1720",
|
||||
"d_course_royal_raceway_packed_dl_16B8",
|
||||
"d_course_royal_raceway_packed_dl_1640",
|
||||
"d_course_royal_raceway_packed_dl_15D8",
|
||||
"d_course_royal_raceway_packed_dl_1548",
|
||||
"d_course_royal_raceway_packed_dl_14C8",
|
||||
"d_course_royal_raceway_packed_dl_1450",
|
||||
"d_course_royal_raceway_packed_dl_1788",
|
||||
"d_course_royal_raceway_packed_dl_1AA0",
|
||||
"d_course_royal_raceway_packed_dl_1A30",
|
||||
"d_course_royal_raceway_packed_dl_19B0",
|
||||
"d_course_royal_raceway_packed_dl_1940",
|
||||
"d_course_royal_raceway_packed_dl_18D8",
|
||||
"d_course_royal_raceway_packed_dl_1860",
|
||||
"d_course_royal_raceway_packed_dl_17F8",
|
||||
"d_course_royal_raceway_packed_dl_3218",
|
||||
"d_course_royal_raceway_packed_dl_A870",
|
||||
"d_course_royal_raceway_packed_dl_AA10",
|
||||
"d_course_royal_raceway_packed_dl_AA90",
|
||||
"d_course_royal_raceway_packed_dl_ACE0",
|
||||
"d_course_royal_raceway_packed_dl_AE00",
|
||||
"d_course_royal_raceway_packed_dl_AD78",
|
||||
"d_course_royal_raceway_packed_dl_E88",
|
||||
"d_course_royal_raceway_packed_dl_AB28",
|
||||
"d_course_royal_raceway_packed_dl_67E8",
|
||||
"d_course_royal_raceway_packed_dl_AC60",
|
||||
"d_course_royal_raceway_packed_dl_A998",
|
||||
"d_course_royal_raceway_packed_dl_A7D8",
|
||||
"d_course_royal_raceway_packed_dl_AE70",
|
||||
"d_course_royal_raceway_packed_dl_CE0",
|
||||
"d_course_royal_raceway_packed_dl_ABA8",
|
||||
"d_course_royal_raceway_packed_dl_55D0",
|
||||
"d_course_royal_raceway_packed_dl_A8F8",
|
||||
"d_course_royal_raceway_packed_dl_A7D8",
|
||||
"d_course_royal_raceway_packed_dl_3B50",
|
||||
"d_course_royal_raceway_packed_dl_1A8",
|
||||
"d_course_royal_raceway_packed_dl_840",
|
||||
"d_course_royal_raceway_packed_dl_C38",
|
||||
"d_course_royal_raceway_packed_dl_A618"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/royal_raceway/course_data.c",
|
||||
"out_dir": "tracks/royal_raceway/preview",
|
||||
"models": [
|
||||
"d_course_royal_raceway_dl_D8E8"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/sherbet_land/course_data.c",
|
||||
"out_dir": "tracks/sherbet_land/objects",
|
||||
"models": [
|
||||
"d_course_sherbet_land_dl_ice_block",
|
||||
"d_course_sherbet_land_dl_8E00"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/sherbet_land/course_data.c",
|
||||
"out_dir": "tracks/sherbet_land/sections/list1",
|
||||
"models": [
|
||||
"d_course_sherbet_land_dl_0",
|
||||
"d_course_sherbet_land_dl_158",
|
||||
"d_course_sherbet_land_dl_C0",
|
||||
"d_course_sherbet_land_dl_1A8",
|
||||
"d_course_sherbet_land_dl_280",
|
||||
"d_course_sherbet_land_dl_3B8",
|
||||
"d_course_sherbet_land_dl_310",
|
||||
"d_course_sherbet_land_dl_400",
|
||||
"d_course_sherbet_land_dl_4E8",
|
||||
"d_course_sherbet_land_dl_638",
|
||||
"d_course_sherbet_land_dl_560",
|
||||
"d_course_sherbet_land_dl_6A0",
|
||||
"d_course_sherbet_land_dl_768",
|
||||
"d_course_sherbet_land_dl_880",
|
||||
"d_course_sherbet_land_dl_7A0",
|
||||
"d_course_sherbet_land_dl_8E8",
|
||||
"d_course_sherbet_land_dl_9A0",
|
||||
"d_course_sherbet_land_dl_B08",
|
||||
"d_course_sherbet_land_dl_A28",
|
||||
"d_course_sherbet_land_dl_BC0",
|
||||
"d_course_sherbet_land_dl_C88",
|
||||
"d_course_sherbet_land_dl_DF0",
|
||||
"d_course_sherbet_land_dl_D10",
|
||||
"d_course_sherbet_land_dl_EC8",
|
||||
"d_course_sherbet_land_dl_F68",
|
||||
"d_course_sherbet_land_dl_10D8",
|
||||
"d_course_sherbet_land_dl_1028",
|
||||
"d_course_sherbet_land_dl_11C8",
|
||||
"d_course_sherbet_land_dl_1238",
|
||||
"d_course_sherbet_land_dl_1368",
|
||||
"d_course_sherbet_land_dl_12F0",
|
||||
"d_course_sherbet_land_dl_1440",
|
||||
"d_course_sherbet_land_dl_1480",
|
||||
"d_course_sherbet_land_dl_1508",
|
||||
"d_course_sherbet_land_dl_14C0",
|
||||
"d_course_sherbet_land_dl_1570",
|
||||
"d_course_sherbet_land_dl_1598",
|
||||
"d_course_sherbet_land_dl_1638",
|
||||
"d_course_sherbet_land_dl_15F0",
|
||||
"d_course_sherbet_land_dl_1698",
|
||||
"d_course_sherbet_land_dl_16C0",
|
||||
"d_course_sherbet_land_dl_1778",
|
||||
"d_course_sherbet_land_dl_1730",
|
||||
"d_course_sherbet_land_dl_17D8",
|
||||
"d_course_sherbet_land_dl_1828",
|
||||
"d_course_sherbet_land_dl_18E8",
|
||||
"d_course_sherbet_land_dl_18A0",
|
||||
"d_course_sherbet_land_dl_1920",
|
||||
"d_course_sherbet_land_dl_19A0",
|
||||
"d_course_sherbet_land_dl_1A58",
|
||||
"d_course_sherbet_land_dl_19F0",
|
||||
"d_course_sherbet_land_dl_1A90",
|
||||
"d_course_sherbet_land_dl_1AF8",
|
||||
"d_course_sherbet_land_dl_1BA8",
|
||||
"d_course_sherbet_land_dl_1B50",
|
||||
"d_course_sherbet_land_dl_1C20",
|
||||
"d_course_sherbet_land_dl_1C48",
|
||||
"d_course_sherbet_land_dl_1D60",
|
||||
"d_course_sherbet_land_dl_1D08",
|
||||
"d_course_sherbet_land_dl_1E10",
|
||||
"d_course_sherbet_land_dl_1E88",
|
||||
"d_course_sherbet_land_dl_2010",
|
||||
"d_course_sherbet_land_dl_1F70",
|
||||
"d_course_sherbet_land_dl_20D0",
|
||||
"d_course_sherbet_land_dl_2190",
|
||||
"d_course_sherbet_land_dl_22F8",
|
||||
"d_course_sherbet_land_dl_2288",
|
||||
"d_course_sherbet_land_dl_2370",
|
||||
"d_course_sherbet_land_dl_2438",
|
||||
"d_course_sherbet_land_dl_25A0",
|
||||
"d_course_sherbet_land_dl_2530",
|
||||
"d_course_sherbet_land_dl_25F8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/sherbet_land/course_data.c",
|
||||
"out_dir": "tracks/sherbet_land/sections/list2",
|
||||
"models": [
|
||||
"d_course_sherbet_land_dl_26D0",
|
||||
"d_course_sherbet_land_dl_28A0",
|
||||
"d_course_sherbet_land_dl_27F0",
|
||||
"d_course_sherbet_land_dl_2918",
|
||||
"d_course_sherbet_land_dl_2A38",
|
||||
"d_course_sherbet_land_dl_2BE0",
|
||||
"d_course_sherbet_land_dl_2B08",
|
||||
"d_course_sherbet_land_dl_2C58",
|
||||
"d_course_sherbet_land_dl_2D78",
|
||||
"d_course_sherbet_land_dl_2F48",
|
||||
"d_course_sherbet_land_dl_2E28",
|
||||
"d_course_sherbet_land_dl_2FE8",
|
||||
"d_course_sherbet_land_dl_30E0",
|
||||
"d_course_sherbet_land_dl_3260",
|
||||
"d_course_sherbet_land_dl_3150",
|
||||
"d_course_sherbet_land_dl_3320",
|
||||
"d_course_sherbet_land_dl_33E0",
|
||||
"d_course_sherbet_land_dl_35A8",
|
||||
"d_course_sherbet_land_dl_3490",
|
||||
"d_course_sherbet_land_dl_36A8",
|
||||
"d_course_sherbet_land_dl_3770",
|
||||
"d_course_sherbet_land_dl_3940",
|
||||
"d_course_sherbet_land_dl_3840",
|
||||
"d_course_sherbet_land_dl_3A50",
|
||||
"d_course_sherbet_land_dl_3AE0",
|
||||
"d_course_sherbet_land_dl_3C48",
|
||||
"d_course_sherbet_land_dl_3BA8",
|
||||
"d_course_sherbet_land_dl_3D40",
|
||||
"d_course_sherbet_land_dl_3D98",
|
||||
"d_course_sherbet_land_dl_3EB8",
|
||||
"d_course_sherbet_land_dl_3E58",
|
||||
"d_course_sherbet_land_dl_3FA0",
|
||||
"d_course_sherbet_land_dl_3FC0",
|
||||
"d_course_sherbet_land_dl_3FE8",
|
||||
"d_course_sherbet_land_dl_3FD8",
|
||||
"d_course_sherbet_land_dl_4000",
|
||||
"d_course_sherbet_land_dl_4010",
|
||||
"d_course_sherbet_land_dl_4020",
|
||||
"d_course_sherbet_land_dl_4018",
|
||||
"d_course_sherbet_land_dl_4028",
|
||||
"d_course_sherbet_land_dl_4030",
|
||||
"d_course_sherbet_land_dl_4040",
|
||||
"d_course_sherbet_land_dl_4038",
|
||||
"d_course_sherbet_land_dl_4048",
|
||||
"d_course_sherbet_land_dl_4050",
|
||||
"d_course_sherbet_land_dl_4060",
|
||||
"d_course_sherbet_land_dl_4058",
|
||||
"d_course_sherbet_land_dl_4068",
|
||||
"d_course_sherbet_land_dl_4070",
|
||||
"d_course_sherbet_land_dl_4080",
|
||||
"d_course_sherbet_land_dl_4078",
|
||||
"d_course_sherbet_land_dl_4088",
|
||||
"d_course_sherbet_land_dl_4090",
|
||||
"d_course_sherbet_land_dl_40A0",
|
||||
"d_course_sherbet_land_dl_4098",
|
||||
"d_course_sherbet_land_dl_40A8",
|
||||
"d_course_sherbet_land_dl_40B0",
|
||||
"d_course_sherbet_land_dl_41B8",
|
||||
"d_course_sherbet_land_dl_4180",
|
||||
"d_course_sherbet_land_dl_4280",
|
||||
"d_course_sherbet_land_dl_42E0",
|
||||
"d_course_sherbet_land_dl_4470",
|
||||
"d_course_sherbet_land_dl_43C8",
|
||||
"d_course_sherbet_land_dl_4570",
|
||||
"d_course_sherbet_land_dl_4618",
|
||||
"d_course_sherbet_land_dl_4798",
|
||||
"d_course_sherbet_land_dl_4710",
|
||||
"d_course_sherbet_land_dl_4868",
|
||||
"d_course_sherbet_land_dl_4930",
|
||||
"d_course_sherbet_land_dl_4A98",
|
||||
"d_course_sherbet_land_dl_4A20",
|
||||
"d_course_sherbet_land_dl_4B20"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/sherbet_land/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/sherbet_land/collision_sections",
|
||||
"models": [
|
||||
"d_course_sherbet_land_packed_dl_1B20",
|
||||
"d_course_sherbet_land_packed_dl_1A98",
|
||||
"d_course_sherbet_land_packed_dl_1A18",
|
||||
"d_course_sherbet_land_packed_dl_1998",
|
||||
"d_course_sherbet_land_packed_dl_1C50",
|
||||
"d_course_sherbet_land_packed_dl_1E40",
|
||||
"d_course_sherbet_land_packed_dl_1DC0",
|
||||
"d_course_sherbet_land_packed_dl_730",
|
||||
"d_course_sherbet_land_packed_dl_5D0",
|
||||
"d_course_sherbet_land_packed_dl_470",
|
||||
"d_course_sherbet_land_packed_dl_348",
|
||||
"d_course_sherbet_land_packed_dl_858",
|
||||
"d_course_sherbet_land_packed_dl_9A0",
|
||||
"d_course_sherbet_land_packed_dl_B00",
|
||||
"d_course_sherbet_land_packed_dl_C30",
|
||||
"d_course_sherbet_land_packed_dl_1D48",
|
||||
"d_course_sherbet_land_packed_dl_1CD8",
|
||||
"d_course_sherbet_land_packed_dl_1BE0",
|
||||
"d_course_sherbet_land_packed_dl_1940",
|
||||
"d_course_sherbet_land_packed_dl_EA0",
|
||||
"d_course_sherbet_land_packed_dl_1450",
|
||||
"d_course_sherbet_land_packed_dl_2738",
|
||||
"d_course_sherbet_land_packed_dl_2798"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/sherbet_land/course_data.c",
|
||||
"out_dir": "tracks/sherbet_land/preview",
|
||||
"models": [
|
||||
"d_course_sherbet_land_dl_9AE8"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/toads_turnpike/course_data.c",
|
||||
"out_dir": "tracks/toads_turnpike/objects",
|
||||
"models": [
|
||||
"d_course_toads_turnpike_dl_19020",
|
||||
"d_course_toads_turnpike_dl_19518",
|
||||
"d_course_toads_turnpike_dl_19DF0",
|
||||
"d_course_toads_turnpike_dl_1A068",
|
||||
"d_course_toads_turnpike_dl_1A5F8",
|
||||
"d_course_toads_turnpike_dl_1A6C8",
|
||||
"d_course_toads_turnpike_dl_1B778",
|
||||
"d_course_toads_turnpike_dl_1BE48",
|
||||
"d_course_toads_turnpike_dl_1C700",
|
||||
"d_course_toads_turnpike_dl_1CAA8",
|
||||
"d_course_toads_turnpike_dl_1CE70",
|
||||
"d_course_toads_turnpike_dl_1D018",
|
||||
"d_course_toads_turnpike_dl_1E458",
|
||||
"d_course_toads_turnpike_dl_1EB48",
|
||||
"d_course_toads_turnpike_dl_1F9D0",
|
||||
"d_course_toads_turnpike_dl_20008",
|
||||
"d_course_toads_turnpike_dl_20510",
|
||||
"d_course_toads_turnpike_dl_205A8",
|
||||
"d_course_toads_turnpike_dl_21780",
|
||||
"d_course_toads_turnpike_dl_21E28",
|
||||
"d_course_toads_turnpike_dl_22BA0",
|
||||
"d_course_toads_turnpike_dl_23078",
|
||||
"d_course_toads_turnpike_dl_237F8",
|
||||
"d_course_toads_turnpike_dl_23848",
|
||||
"d_course_toads_turnpike_dl_23858",
|
||||
"d_course_toads_turnpike_dl_238A0",
|
||||
"d_course_toads_turnpike_dl_238E8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/toads_turnpike/course_data.c",
|
||||
"out_dir": "tracks/toads_turnpike/sections",
|
||||
"models": [
|
||||
"d_course_toads_turnpike_dl_80", "d_course_toads_turnpike_dl_1F8",
|
||||
"d_course_toads_turnpike_dl_158", "d_course_toads_turnpike_dl_2D0",
|
||||
"d_course_toads_turnpike_dl_380", "d_course_toads_turnpike_dl_4E8",
|
||||
"d_course_toads_turnpike_dl_438", "d_course_toads_turnpike_dl_5B8",
|
||||
"d_course_toads_turnpike_dl_668", "d_course_toads_turnpike_dl_7D8",
|
||||
"d_course_toads_turnpike_dl_718", "d_course_toads_turnpike_dl_878",
|
||||
"d_course_toads_turnpike_dl_948", "d_course_toads_turnpike_dl_AC8",
|
||||
"d_course_toads_turnpike_dl_9F0", "d_course_toads_turnpike_dl_B88",
|
||||
"d_course_toads_turnpike_dl_C70", "d_course_toads_turnpike_dl_DD0",
|
||||
"d_course_toads_turnpike_dl_D00", "d_course_toads_turnpike_dl_E70",
|
||||
"d_course_toads_turnpike_dl_F18", "d_course_toads_turnpike_dl_1070",
|
||||
"d_course_toads_turnpike_dl_FA8", "d_course_toads_turnpike_dl_1118",
|
||||
"d_course_toads_turnpike_dl_11C0", "d_course_toads_turnpike_dl_1310",
|
||||
"d_course_toads_turnpike_dl_1250", "d_course_toads_turnpike_dl_13E0",
|
||||
"d_course_toads_turnpike_dl_1468", "d_course_toads_turnpike_dl_15A8",
|
||||
"d_course_toads_turnpike_dl_1510", "d_course_toads_turnpike_dl_1678",
|
||||
"d_course_toads_turnpike_dl_1708", "d_course_toads_turnpike_dl_18C0",
|
||||
"d_course_toads_turnpike_dl_17F8", "d_course_toads_turnpike_dl_19C0",
|
||||
"d_course_toads_turnpike_dl_1A60", "d_course_toads_turnpike_dl_1C10",
|
||||
"d_course_toads_turnpike_dl_1B50", "d_course_toads_turnpike_dl_1D18",
|
||||
"d_course_toads_turnpike_dl_1DC0", "d_course_toads_turnpike_dl_1F40",
|
||||
"d_course_toads_turnpike_dl_1E80", "d_course_toads_turnpike_dl_2030",
|
||||
"d_course_toads_turnpike_dl_20F8", "d_course_toads_turnpike_dl_22A8",
|
||||
"d_course_toads_turnpike_dl_21C8", "d_course_toads_turnpike_dl_2358",
|
||||
"d_course_toads_turnpike_dl_2440", "d_course_toads_turnpike_dl_2628",
|
||||
"d_course_toads_turnpike_dl_2530", "d_course_toads_turnpike_dl_26D8",
|
||||
"d_course_toads_turnpike_dl_27D0", "d_course_toads_turnpike_dl_2960",
|
||||
"d_course_toads_turnpike_dl_2898", "d_course_toads_turnpike_dl_2A00",
|
||||
"d_course_toads_turnpike_dl_2AF0", "d_course_toads_turnpike_dl_2C38",
|
||||
"d_course_toads_turnpike_dl_2B88", "d_course_toads_turnpike_dl_2CC0",
|
||||
"d_course_toads_turnpike_dl_2DB8", "d_course_toads_turnpike_dl_2EF0",
|
||||
"d_course_toads_turnpike_dl_2E50", "d_course_toads_turnpike_dl_2F78",
|
||||
"d_course_toads_turnpike_dl_3030", "d_course_toads_turnpike_dl_3190",
|
||||
"d_course_toads_turnpike_dl_30F8", "d_course_toads_turnpike_dl_3228",
|
||||
"d_course_toads_turnpike_dl_32F0", "d_course_toads_turnpike_dl_3438",
|
||||
"d_course_toads_turnpike_dl_33A0", "d_course_toads_turnpike_dl_34D0",
|
||||
"d_course_toads_turnpike_dl_3570", "d_course_toads_turnpike_dl_36A8",
|
||||
"d_course_toads_turnpike_dl_3618", "d_course_toads_turnpike_dl_3758",
|
||||
"d_course_toads_turnpike_dl_37F0", "d_course_toads_turnpike_dl_39C8",
|
||||
"d_course_toads_turnpike_dl_3910", "d_course_toads_turnpike_dl_3AD8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/toads_turnpike/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/toads_turnpike/collision_sections",
|
||||
"models": [
|
||||
"d_course_toads_turnpike_packed_dl_32A0",
|
||||
"d_course_toads_turnpike_packed_dl_33A8",
|
||||
"d_course_toads_turnpike_packed_dl_3478",
|
||||
"d_course_toads_turnpike_packed_dl_3548",
|
||||
"d_course_toads_turnpike_packed_dl_31E8",
|
||||
"d_course_toads_turnpike_packed_dl_2E40",
|
||||
"d_course_toads_turnpike_packed_dl_2EE0",
|
||||
"d_course_toads_turnpike_packed_dl_2FA0",
|
||||
"d_course_toads_turnpike_packed_dl_3060",
|
||||
"d_course_toads_turnpike_packed_dl_3118",
|
||||
"d_course_toads_turnpike_packed_dl_3638",
|
||||
"d_course_toads_turnpike_packed_dl_3AD0",
|
||||
"d_course_toads_turnpike_packed_dl_3B58",
|
||||
"d_course_toads_turnpike_packed_dl_3C28",
|
||||
"d_course_toads_turnpike_packed_dl_3D00",
|
||||
"d_course_toads_turnpike_packed_dl_39A8",
|
||||
"d_course_toads_turnpike_packed_dl_36C0",
|
||||
"d_course_toads_turnpike_packed_dl_3780",
|
||||
"d_course_toads_turnpike_packed_dl_3850",
|
||||
"d_course_toads_turnpike_packed_dl_38E8",
|
||||
"d_course_toads_turnpike_packed_dl_FA8",
|
||||
"d_course_toads_turnpike_packed_dl_51C8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/toads_turnpike/course_data.c",
|
||||
"out_dir": "tracks/toads_turnpike/preview",
|
||||
"models": [
|
||||
"d_course_toads_turnpike_dl_23930"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/wario_stadium/course_data.c",
|
||||
"out_dir": "tracks/wario_stadium/objects",
|
||||
"models": [
|
||||
"d_course_wario_stadium_dl_sign"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/wario_stadium/course_data.c",
|
||||
"out_dir": "tracks/wario_stadium/sections",
|
||||
"models":[
|
||||
"d_course_wario_stadium_dl_0",
|
||||
"d_course_wario_stadium_dl_158",
|
||||
"d_course_wario_stadium_dl_B8",
|
||||
"d_course_wario_stadium_dl_1B8",
|
||||
"d_course_wario_stadium_dl_2A0",
|
||||
"d_course_wario_stadium_dl_440",
|
||||
"d_course_wario_stadium_dl_350",
|
||||
"d_course_wario_stadium_dl_4C0",
|
||||
"d_course_wario_stadium_dl_5E8",
|
||||
"d_course_wario_stadium_dl_798",
|
||||
"d_course_wario_stadium_dl_668",
|
||||
"d_course_wario_stadium_dl_830",
|
||||
"d_course_wario_stadium_dl_940",
|
||||
"d_course_wario_stadium_dl_AB0",
|
||||
"d_course_wario_stadium_dl_990",
|
||||
"d_course_wario_stadium_dl_B60",
|
||||
"d_course_wario_stadium_dl_C08",
|
||||
"d_course_wario_stadium_dl_D60",
|
||||
"d_course_wario_stadium_dl_C70",
|
||||
"d_course_wario_stadium_dl_E30",
|
||||
"d_course_wario_stadium_dl_ED0",
|
||||
"d_course_wario_stadium_dl_1068",
|
||||
"d_course_wario_stadium_dl_F70",
|
||||
"d_course_wario_stadium_dl_1158",
|
||||
"d_course_wario_stadium_dl_11F8",
|
||||
"d_course_wario_stadium_dl_13C0",
|
||||
"d_course_wario_stadium_dl_12E0",
|
||||
"d_course_wario_stadium_dl_14A0",
|
||||
"d_course_wario_stadium_dl_1590",
|
||||
"d_course_wario_stadium_dl_1708",
|
||||
"d_course_wario_stadium_dl_1630",
|
||||
"d_course_wario_stadium_dl_17A8",
|
||||
"d_course_wario_stadium_dl_1868",
|
||||
"d_course_wario_stadium_dl_19E0",
|
||||
"d_course_wario_stadium_dl_1908",
|
||||
"d_course_wario_stadium_dl_1AB8",
|
||||
"d_course_wario_stadium_dl_1B48",
|
||||
"d_course_wario_stadium_dl_1CA8",
|
||||
"d_course_wario_stadium_dl_1BB0",
|
||||
"d_course_wario_stadium_dl_1D68",
|
||||
"d_course_wario_stadium_dl_1DF8",
|
||||
"d_course_wario_stadium_dl_1FD8",
|
||||
"d_course_wario_stadium_dl_1E70",
|
||||
"d_course_wario_stadium_dl_20A8",
|
||||
"d_course_wario_stadium_dl_21A8",
|
||||
"d_course_wario_stadium_dl_2308",
|
||||
"d_course_wario_stadium_dl_2218",
|
||||
"d_course_wario_stadium_dl_23B0",
|
||||
"d_course_wario_stadium_dl_2490",
|
||||
"d_course_wario_stadium_dl_2610",
|
||||
"d_course_wario_stadium_dl_2530",
|
||||
"d_course_wario_stadium_dl_2698",
|
||||
"d_course_wario_stadium_dl_2798",
|
||||
"d_course_wario_stadium_dl_2928",
|
||||
"d_course_wario_stadium_dl_2870",
|
||||
"d_course_wario_stadium_dl_29D0",
|
||||
"d_course_wario_stadium_dl_2AB0",
|
||||
"d_course_wario_stadium_dl_2C30",
|
||||
"d_course_wario_stadium_dl_2B60",
|
||||
"d_course_wario_stadium_dl_2CE0",
|
||||
"d_course_wario_stadium_dl_2DC0",
|
||||
"d_course_wario_stadium_dl_2FB8",
|
||||
"d_course_wario_stadium_dl_2E70",
|
||||
"d_course_wario_stadium_dl_3098",
|
||||
"d_course_wario_stadium_dl_31B0",
|
||||
"d_course_wario_stadium_dl_3368",
|
||||
"d_course_wario_stadium_dl_3260",
|
||||
"d_course_wario_stadium_dl_3450",
|
||||
"d_course_wario_stadium_dl_3550",
|
||||
"d_course_wario_stadium_dl_36D8",
|
||||
"d_course_wario_stadium_dl_3600",
|
||||
"d_course_wario_stadium_dl_37A8",
|
||||
"d_course_wario_stadium_dl_3890",
|
||||
"d_course_wario_stadium_dl_3A10",
|
||||
"d_course_wario_stadium_dl_3980",
|
||||
"d_course_wario_stadium_dl_3AD0",
|
||||
"d_course_wario_stadium_dl_3BB0",
|
||||
"d_course_wario_stadium_dl_3D90",
|
||||
"d_course_wario_stadium_dl_3CF8",
|
||||
"d_course_wario_stadium_dl_3E80",
|
||||
"d_course_wario_stadium_dl_3F78",
|
||||
"d_course_wario_stadium_dl_40F0",
|
||||
"d_course_wario_stadium_dl_4060",
|
||||
"d_course_wario_stadium_dl_41D0",
|
||||
"d_course_wario_stadium_dl_4270",
|
||||
"d_course_wario_stadium_dl_43E0",
|
||||
"d_course_wario_stadium_dl_4340",
|
||||
"d_course_wario_stadium_dl_44B0",
|
||||
"d_course_wario_stadium_dl_4550",
|
||||
"d_course_wario_stadium_dl_47F0",
|
||||
"d_course_wario_stadium_dl_46E0",
|
||||
"d_course_wario_stadium_dl_4948",
|
||||
"d_course_wario_stadium_dl_4A78",
|
||||
"d_course_wario_stadium_dl_4BE8",
|
||||
"d_course_wario_stadium_dl_4B30",
|
||||
"d_course_wario_stadium_dl_4C60",
|
||||
"d_course_wario_stadium_dl_4D40",
|
||||
"d_course_wario_stadium_dl_4EF0",
|
||||
"d_course_wario_stadium_dl_4E30",
|
||||
"d_course_wario_stadium_dl_4F80",
|
||||
"d_course_wario_stadium_dl_5090",
|
||||
"d_course_wario_stadium_dl_51E8",
|
||||
"d_course_wario_stadium_dl_5168",
|
||||
"d_course_wario_stadium_dl_5270",
|
||||
"d_course_wario_stadium_dl_5338",
|
||||
"d_course_wario_stadium_dl_54E8",
|
||||
"d_course_wario_stadium_dl_5460",
|
||||
"d_course_wario_stadium_dl_5588"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/wario_stadium/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/wario_stadium/collision_sections",
|
||||
"models": [
|
||||
"d_course_wario_stadium_packed_dl_8D28",
|
||||
"d_course_wario_stadium_packed_dl_8DE8",
|
||||
"d_course_wario_stadium_packed_dl_8EF0",
|
||||
"d_course_wario_stadium_packed_dl_8FC8",
|
||||
"d_course_wario_stadium_packed_dl_9090",
|
||||
"d_course_wario_stadium_packed_dl_9120",
|
||||
"d_course_wario_stadium_packed_dl_8C28",
|
||||
"d_course_wario_stadium_packed_dl_85F0",
|
||||
"d_course_wario_stadium_packed_dl_8678",
|
||||
"d_course_wario_stadium_packed_dl_8708",
|
||||
"d_course_wario_stadium_packed_dl_8798",
|
||||
"d_course_wario_stadium_packed_dl_88A0",
|
||||
"d_course_wario_stadium_packed_dl_8A68",
|
||||
"d_course_wario_stadium_packed_dl_91E8",
|
||||
"d_course_wario_stadium_packed_dl_98A0",
|
||||
"d_course_wario_stadium_packed_dl_9998",
|
||||
"d_course_wario_stadium_packed_dl_9AD8",
|
||||
"d_course_wario_stadium_packed_dl_9C80",
|
||||
"d_course_wario_stadium_packed_dl_9D00",
|
||||
"d_course_wario_stadium_packed_dl_9D78",
|
||||
"d_course_wario_stadium_packed_dl_9820",
|
||||
"d_course_wario_stadium_packed_dl_9328",
|
||||
"d_course_wario_stadium_packed_dl_93B0",
|
||||
"d_course_wario_stadium_packed_dl_9430",
|
||||
"d_course_wario_stadium_packed_dl_9590",
|
||||
"d_course_wario_stadium_packed_dl_9668",
|
||||
"d_course_wario_stadium_packed_dl_9760",
|
||||
"d_course_wario_stadium_packed_dl_6D20",
|
||||
"d_course_wario_stadium_packed_dl_8510",
|
||||
"d_course_wario_stadium_packed_dl_5D90",
|
||||
"d_course_wario_stadium_packed_dl_9F18"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/wario_stadium/course_data.c",
|
||||
"out_dir": "tracks/wario_stadium/preview",
|
||||
"models": [
|
||||
"d_course_wario_stadium_dl_CA78"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
[
|
||||
{
|
||||
"file": "courses/yoshi_valley/course_data.c",
|
||||
"out_dir": "tracks/yoshi_valley/objects",
|
||||
"models": [
|
||||
"d_course_yoshi_valley_dl_142C0",
|
||||
"d_course_yoshi_valley_dl_143C8",
|
||||
"d_course_yoshi_valley_dl_144A8",
|
||||
"d_course_yoshi_valley_dl_14500",
|
||||
"d_course_yoshi_valley_dl_14558",
|
||||
"d_course_yoshi_valley_dl_145D0",
|
||||
"d_course_yoshi_valley_dl_tree",
|
||||
"d_course_yoshi_valley_dl_16D70",
|
||||
"d_course_yoshi_valley_dl_egg_lod0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "courses/yoshi_valley/course_data.c",
|
||||
"out_dir": "tracks/yoshi_valley/sections",
|
||||
"models": [
|
||||
"d_course_yoshi_valley_dl_40", "d_course_yoshi_valley_dl_3F0",
|
||||
"d_course_yoshi_valley_dl_290", "d_course_yoshi_valley_dl_4E8",
|
||||
"d_course_yoshi_valley_dl_7A0", "d_course_yoshi_valley_dl_BC0",
|
||||
"d_course_yoshi_valley_dl_9C8", "d_course_yoshi_valley_dl_CC0",
|
||||
"d_course_yoshi_valley_dl_FA0", "d_course_yoshi_valley_dl_13F8",
|
||||
"d_course_yoshi_valley_dl_1178", "d_course_yoshi_valley_dl_14D0",
|
||||
"d_course_yoshi_valley_dl_17A8", "d_course_yoshi_valley_dl_1C38",
|
||||
"d_course_yoshi_valley_dl_1968", "d_course_yoshi_valley_dl_1D48",
|
||||
"d_course_yoshi_valley_dl_2000", "d_course_yoshi_valley_dl_2408",
|
||||
"d_course_yoshi_valley_dl_21B0", "d_course_yoshi_valley_dl_25E8",
|
||||
"d_course_yoshi_valley_dl_2840", "d_course_yoshi_valley_dl_2BC0",
|
||||
"d_course_yoshi_valley_dl_2978", "d_course_yoshi_valley_dl_2D70",
|
||||
"d_course_yoshi_valley_dl_2F48", "d_course_yoshi_valley_dl_3258",
|
||||
"d_course_yoshi_valley_dl_3078", "d_course_yoshi_valley_dl_3420",
|
||||
"d_course_yoshi_valley_dl_3560", "d_course_yoshi_valley_dl_3880",
|
||||
"d_course_yoshi_valley_dl_36D0", "d_course_yoshi_valley_dl_3A38",
|
||||
"d_course_yoshi_valley_dl_3BA0", "d_course_yoshi_valley_dl_3E30",
|
||||
"d_course_yoshi_valley_dl_3D20", "d_course_yoshi_valley_dl_3F88",
|
||||
"d_course_yoshi_valley_dl_40B8", "d_course_yoshi_valley_dl_44C8",
|
||||
"d_course_yoshi_valley_dl_4320", "d_course_yoshi_valley_dl_4718",
|
||||
"d_course_yoshi_valley_dl_48C0", "d_course_yoshi_valley_dl_4C28",
|
||||
"d_course_yoshi_valley_dl_4A98", "d_course_yoshi_valley_dl_4E60",
|
||||
"d_course_yoshi_valley_dl_5018", "d_course_yoshi_valley_dl_53E0",
|
||||
"d_course_yoshi_valley_dl_51D0", "d_course_yoshi_valley_dl_5638",
|
||||
"d_course_yoshi_valley_dl_5778", "d_course_yoshi_valley_dl_5A80",
|
||||
"d_course_yoshi_valley_dl_5890", "d_course_yoshi_valley_dl_5C70",
|
||||
"d_course_yoshi_valley_dl_5D60", "d_course_yoshi_valley_dl_6070",
|
||||
"d_course_yoshi_valley_dl_5ED8", "d_course_yoshi_valley_dl_6268",
|
||||
"d_course_yoshi_valley_dl_6358", "d_course_yoshi_valley_dl_66B0",
|
||||
"d_course_yoshi_valley_dl_6530", "d_course_yoshi_valley_dl_68C8",
|
||||
"d_course_yoshi_valley_dl_69C0", "d_course_yoshi_valley_dl_6D78",
|
||||
"d_course_yoshi_valley_dl_6BF0", "d_course_yoshi_valley_dl_6FB8",
|
||||
"d_course_yoshi_valley_dl_7100", "d_course_yoshi_valley_dl_7400",
|
||||
"d_course_yoshi_valley_dl_7310", "d_course_yoshi_valley_dl_75C8",
|
||||
"d_course_yoshi_valley_dl_7770", "d_course_yoshi_valley_dl_7A08",
|
||||
"d_course_yoshi_valley_dl_7938", "d_course_yoshi_valley_dl_7BB8",
|
||||
"d_course_yoshi_valley_dl_7CE8", "d_course_yoshi_valley_dl_8030",
|
||||
"d_course_yoshi_valley_dl_7F80", "d_course_yoshi_valley_dl_8218",
|
||||
"d_course_yoshi_valley_dl_8420", "d_course_yoshi_valley_dl_8830",
|
||||
"d_course_yoshi_valley_dl_8710", "d_course_yoshi_valley_dl_8958",
|
||||
"d_course_yoshi_valley_dl_8C30", "d_course_yoshi_valley_dl_8FD8",
|
||||
"d_course_yoshi_valley_dl_8D58", "d_course_yoshi_valley_dl_91D8",
|
||||
"d_course_yoshi_valley_dl_9340", "d_course_yoshi_valley_dl_9780",
|
||||
"d_course_yoshi_valley_dl_9548", "d_course_yoshi_valley_dl_9A00",
|
||||
"d_course_yoshi_valley_dl_9BB0", "d_course_yoshi_valley_dl_9F70",
|
||||
"d_course_yoshi_valley_dl_9DB8", "d_course_yoshi_valley_dl_A188",
|
||||
"d_course_yoshi_valley_dl_A328", "d_course_yoshi_valley_dl_A6B8",
|
||||
"d_course_yoshi_valley_dl_A518", "d_course_yoshi_valley_dl_A8A0",
|
||||
"d_course_yoshi_valley_dl_AAC0", "d_course_yoshi_valley_dl_AE78",
|
||||
"d_course_yoshi_valley_dl_ACF0", "d_course_yoshi_valley_dl_AFF8",
|
||||
"d_course_yoshi_valley_dl_B220", "d_course_yoshi_valley_dl_B578",
|
||||
"d_course_yoshi_valley_dl_B428", "d_course_yoshi_valley_dl_B778",
|
||||
"d_course_yoshi_valley_dl_B970", "d_course_yoshi_valley_dl_BC98",
|
||||
"d_course_yoshi_valley_dl_BAF8", "d_course_yoshi_valley_dl_BE18",
|
||||
"d_course_yoshi_valley_dl_BFC8", "d_course_yoshi_valley_dl_C2D8",
|
||||
"d_course_yoshi_valley_dl_C140", "d_course_yoshi_valley_dl_C470",
|
||||
"d_course_yoshi_valley_dl_C580", "d_course_yoshi_valley_dl_C728",
|
||||
"d_course_yoshi_valley_dl_C668", "d_course_yoshi_valley_dl_C838",
|
||||
"d_course_yoshi_valley_dl_C8F8", "d_course_yoshi_valley_dl_CC80",
|
||||
"d_course_yoshi_valley_dl_CAD8", "d_course_yoshi_valley_dl_CEC8",
|
||||
"d_course_yoshi_valley_dl_D018", "d_course_yoshi_valley_dl_D3D0",
|
||||
"d_course_yoshi_valley_dl_D1E8", "d_course_yoshi_valley_dl_D540"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/yoshi_valley/course_displaylists.inc.c",
|
||||
"out_dir": "tracks/yoshi_valley/collision_sections",
|
||||
"models": [
|
||||
"d_course_yoshi_valley_packed_dl_44C8",
|
||||
"d_course_yoshi_valley_packed_dl_4588",
|
||||
"d_course_yoshi_valley_packed_dl_45F0",
|
||||
"d_course_yoshi_valley_packed_dl_4670",
|
||||
"d_course_yoshi_valley_packed_dl_46E0",
|
||||
"d_course_yoshi_valley_packed_dl_4810",
|
||||
"d_course_yoshi_valley_packed_dl_4428",
|
||||
"d_course_yoshi_valley_packed_dl_3E08",
|
||||
"d_course_yoshi_valley_packed_dl_3F10",
|
||||
"d_course_yoshi_valley_packed_dl_3FF0",
|
||||
"d_course_yoshi_valley_packed_dl_4108",
|
||||
"d_course_yoshi_valley_packed_dl_41B0",
|
||||
"d_course_yoshi_valley_packed_dl_4258",
|
||||
"d_course_yoshi_valley_packed_dl_4358",
|
||||
"d_course_yoshi_valley_packed_dl_4918",
|
||||
"d_course_yoshi_valley_packed_dl_4FD0",
|
||||
"d_course_yoshi_valley_packed_dl_5058",
|
||||
"d_course_yoshi_valley_packed_dl_1418",
|
||||
"d_course_yoshi_valley_packed_dl_50E0",
|
||||
"d_course_yoshi_valley_packed_dl_5158",
|
||||
"d_course_yoshi_valley_packed_dl_51D8",
|
||||
"d_course_yoshi_valley_packed_dl_52D8",
|
||||
"d_course_yoshi_valley_packed_dl_4F48",
|
||||
"d_course_yoshi_valley_packed_dl_49C0",
|
||||
"d_course_yoshi_valley_packed_dl_4A58",
|
||||
"d_course_yoshi_valley_packed_dl_4B20",
|
||||
"d_course_yoshi_valley_packed_dl_4C18",
|
||||
"d_course_yoshi_valley_packed_dl_4CB0",
|
||||
"d_course_yoshi_valley_packed_dl_1580",
|
||||
"d_course_yoshi_valley_packed_dl_4D68",
|
||||
"d_course_yoshi_valley_packed_dl_4E88",
|
||||
"d_course_yoshi_valley_packed_dl_5788",
|
||||
"d_course_yoshi_valley_packed_dl_5800",
|
||||
"d_course_yoshi_valley_packed_dl_5880",
|
||||
"d_course_yoshi_valley_packed_dl_58F8",
|
||||
"d_course_yoshi_valley_packed_dl_5710",
|
||||
"d_course_yoshi_valley_packed_dl_54B0",
|
||||
"d_course_yoshi_valley_packed_dl_5548",
|
||||
"d_course_yoshi_valley_packed_dl_55C0",
|
||||
"d_course_yoshi_valley_packed_dl_5628",
|
||||
"d_course_yoshi_valley_packed_dl_56A0",
|
||||
"d_course_yoshi_valley_packed_dl_5970",
|
||||
"d_course_yoshi_valley_packed_dl_5C80",
|
||||
"d_course_yoshi_valley_packed_dl_5D00",
|
||||
"d_course_yoshi_valley_packed_dl_5D90",
|
||||
"d_course_yoshi_valley_packed_dl_5DF8",
|
||||
"d_course_yoshi_valley_packed_dl_5C18",
|
||||
"d_course_yoshi_valley_packed_dl_59F0",
|
||||
"d_course_yoshi_valley_packed_dl_75D0",
|
||||
"d_course_yoshi_valley_packed_dl_3010",
|
||||
"d_course_yoshi_valley_packed_dl_8050",
|
||||
"d_course_yoshi_valley_packed_dl_13D8",
|
||||
"d_course_yoshi_valley_packed_dl_D20"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file":"courses/yoshi_valley/course_data.c",
|
||||
"out_dir": "tracks/yoshi_valley/preview",
|
||||
"models": [
|
||||
"d_course_yoshi_valley_dl_18020"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -4,8 +4,17 @@
|
|||
#include <assets/choco_mountain_data.h>
|
||||
|
||||
void func_8029CF0C(struct ActorSpawnData* spawnData, struct FallingRock* rock) {
|
||||
#ifndef TARGET_N64
|
||||
struct ActorSpawnData* temp_v0 = (struct ActorSpawnData*) LOAD_ASSET(spawnData);
|
||||
#else
|
||||
s32 segment = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
struct ActorSpawnData* temp_v0 = (struct ActorSpawnData*) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
#endif
|
||||
Vec3s sp24 = { 60, 120, 180 };
|
||||
#ifndef TARGET_N64
|
||||
temp_v0 += rock->unk_06;
|
||||
#endif
|
||||
rock->respawnTimer = sp24[rock->unk_06]; // * 2
|
||||
rock->pos[0] = (f32) temp_v0[rock->unk_06].pos[0] * gCourseDirection;
|
||||
rock->pos[1] = (f32) temp_v0[rock->unk_06].pos[1] + 10.0f;
|
||||
|
|
@ -21,7 +30,14 @@ void func_8029CF0C(struct ActorSpawnData* spawnData, struct FallingRock* rock) {
|
|||
* @param spawnData
|
||||
*/
|
||||
void spawn_falling_rocks(struct ActorSpawnData* spawnData) {
|
||||
#ifndef TARGET_N64
|
||||
struct ActorSpawnData* temp_s0 = (struct ActorSpawnData*) LOAD_ASSET(spawnData);
|
||||
#else
|
||||
s32 addr = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
// Casting this to prevent warning does not work.
|
||||
struct ActorSpawnData* temp_s0 = (struct ActorSpawnData*) VIRTUAL_TO_PHYSICAL2(gSegmentTable[addr] + offset);
|
||||
#endif
|
||||
struct FallingRock* temp_v1;
|
||||
Vec3f startingPos;
|
||||
Vec3f startingVelocity;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,14 @@
|
|||
#define ADSR_GOTO -2
|
||||
#define ADSR_RESTART -3
|
||||
|
||||
// Envelopes are always stored as big endian, to match sequence files which are
|
||||
// byte blobs and can embed envelopes. Hence this byteswapping macro.
|
||||
#if IS_BIG_ENDIAN
|
||||
#define BSWAP16(x) (x)
|
||||
#else
|
||||
#define BSWAP16(x) (((x) & 0xff) << 8 | (((x) >> 8) & 0xff))
|
||||
#endif
|
||||
|
||||
void sequence_channel_process_sound(struct SequenceChannel* seqChannel, s32 recalculateVolume);
|
||||
void sequence_player_process_sound(struct SequencePlayer* seqPlayer);
|
||||
f32 get_portamento_freq_scale(struct Portamento* p);
|
||||
|
|
|
|||
|
|
@ -57,9 +57,6 @@ typedef struct {
|
|||
/* 0xB4 */ f32 unk_B4;
|
||||
} Camera; /* size = 0xB8 */
|
||||
|
||||
typedef BAD_RETURN(s32) (*CameraEvent)(Camera* c);
|
||||
typedef CameraEvent CutsceneShot;
|
||||
|
||||
void camera_init(f32, f32, f32, s16, u32, s32);
|
||||
void func_8001CA10(Camera*);
|
||||
void func_8001CA24(Player*, f32);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
/* Function Prototypes */
|
||||
|
||||
void setup_camera_podium_ceremony(void);
|
||||
void func_802816B8(void);
|
||||
void update_camera_podium_ceremony(void);
|
||||
void init_camera_podium_ceremony(void);
|
||||
|
||||
// guPerspective params
|
||||
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ void setup_race(void) {
|
|||
gCourseDirection = 1.0f;
|
||||
}
|
||||
if (gModeSelection == GRAND_PRIX) {
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCupCourseSelection];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup];
|
||||
}
|
||||
gActiveScreenMode = gScreenModeSelection;
|
||||
if (gCurrentCourseId != gCurrentlyLoadedCourseId) {
|
||||
|
|
|
|||
|
|
@ -2388,7 +2388,7 @@ s16 find_closest_waypoint_track_section(f32 posX, f32 posY, f32 posZ, u16 trackS
|
|||
/**
|
||||
* Tries to find the waypoint nearest to (posX, posY, posZ)
|
||||
* Only consider waypoints in the same segment as trackSectionId
|
||||
* Only considers waypoints within 500 units of (posX, posY, posZ)
|
||||
* Only considers waypoints within 500 units of(posX, posY, posZ)
|
||||
* Looks 3 waypoints behind and 6 waypoints ahead of waypointIndex
|
||||
**/
|
||||
s16 func_8000C884(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, s32 pathIndex, u16 trackSectionId) {
|
||||
|
|
@ -2931,24 +2931,24 @@ void set_bomb_kart_spawn_positions(void) {
|
|||
s32 var_s3;
|
||||
TrackWaypoint* temp_v0;
|
||||
UNUSED BombKart* var_s0;
|
||||
BombKartSpawn* temp_s1;
|
||||
BombKartSpawn* bombKartSpawn;
|
||||
|
||||
for (var_s3 = 0; var_s3 < NUM_BOMB_KARTS_VERSUS; var_s3++) {
|
||||
temp_s1 = &gBombKartSpawns[gCurrentCourseId][var_s3];
|
||||
bombKartSpawn = &gBombKartSpawns[gCurrentCourseId][var_s3];
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
startingXPos = temp_s1->startingXPos;
|
||||
startingZPos = temp_s1->startingZPos;
|
||||
startingXPos = bombKartSpawn->startingXPos;
|
||||
startingZPos = bombKartSpawn->startingZPos;
|
||||
startingYPos = spawn_actor_on_surface(startingXPos, 2000.0f, startingZPos);
|
||||
break;
|
||||
case COURSE_AWARD_CEREMONY:
|
||||
temp_v0 = &D_80164550[3][temp_s1->waypointIndex];
|
||||
temp_v0 = &D_80164550[3][bombKartSpawn->waypointIndex];
|
||||
startingXPos = temp_v0->posX;
|
||||
startingYPos = temp_v0->posY;
|
||||
startingZPos = temp_v0->posZ;
|
||||
break;
|
||||
default:
|
||||
temp_v0 = &D_80164550[0][temp_s1->waypointIndex];
|
||||
temp_v0 = &D_80164550[0][bombKartSpawn->waypointIndex];
|
||||
startingXPos = temp_v0->posX;
|
||||
startingYPos = temp_v0->posY;
|
||||
startingZPos = temp_v0->posZ;
|
||||
|
|
@ -2969,11 +2969,11 @@ void set_bomb_kart_spawn_positions(void) {
|
|||
gBombKarts[var_s3].wheel4Pos[0] = startingXPos;
|
||||
gBombKarts[var_s3].wheel4Pos[1] = startingYPos;
|
||||
gBombKarts[var_s3].wheel4Pos[2] = startingZPos;
|
||||
gBombKarts[var_s3].waypointIndex = temp_s1->waypointIndex;
|
||||
gBombKarts[var_s3].unk_3C = temp_s1->unk_04;
|
||||
gBombKarts[var_s3].waypointIndex = bombKartSpawn->waypointIndex;
|
||||
gBombKarts[var_s3].unk_3C = bombKartSpawn->unk_04;
|
||||
gBombKarts[var_s3].bounceTimer = 0;
|
||||
gBombKarts[var_s3].circleTimer = 0;
|
||||
gBombKarts[var_s3].state = temp_s1->startingState;
|
||||
gBombKarts[var_s3].state = bombKartSpawn->startingState;
|
||||
gBombKarts[var_s3].unk_4A = 0;
|
||||
gBombKarts[var_s3].unk_4C = 1;
|
||||
gBombKarts[var_s3].yPos = startingYPos;
|
||||
|
|
@ -5423,26 +5423,26 @@ void func_80014D30(s32 cameraId, s32 pathIndex) {
|
|||
(f32) temp_v0->posZ);
|
||||
}
|
||||
|
||||
void func_80014DE4(s32 arg0) {
|
||||
void func_80014DE4(s32 cameraIndex) {
|
||||
s32 cameraId;
|
||||
|
||||
D_801646CC = 0;
|
||||
D_80164678[arg0] = D_80164670[arg0];
|
||||
if ((gModeSelection != 1) && ((gCupCourseSelection == 0) || (gDemoMode == (u16) 1))) {
|
||||
D_80164678[arg0] = 0;
|
||||
} else if ((D_80164678[arg0] != 0) && (D_80164678[arg0] != (s16) 1) && (D_80164678[arg0] != 2) &&
|
||||
(D_80164678[arg0] != 3)) {
|
||||
D_80164678[arg0] = 0;
|
||||
D_80164678[cameraIndex] = D_80164670[cameraIndex];
|
||||
if ((gModeSelection != 1) && ((gCourseIndexInCup == COURSE_ONE) || (gDemoMode == (u16) 1))) {
|
||||
D_80164678[cameraIndex] = 0;
|
||||
} else if ((D_80164678[cameraIndex] != 0) && (D_80164678[cameraIndex] != (s16) 1) &&
|
||||
(D_80164678[cameraIndex] != 2) && (D_80164678[cameraIndex] != 3)) {
|
||||
D_80164678[cameraIndex] = 0;
|
||||
}
|
||||
D_80164680[arg0] = -1;
|
||||
D_80164680[cameraIndex] = -1;
|
||||
D_80163238 = 0;
|
||||
D_801646C0[arg0] = 0;
|
||||
D_801646C0[cameraIndex] = 0;
|
||||
D_801646C8 = 0;
|
||||
D_801646D0[arg0].unk0 = 0;
|
||||
D_801646D0[arg0].unk2 = 0;
|
||||
D_801646D0[arg0].unk4 = 0;
|
||||
D_801646D0[cameraIndex].unk0 = 0;
|
||||
D_801646D0[cameraIndex].unk2 = 0;
|
||||
D_801646D0[cameraIndex].unk4 = 0;
|
||||
if ((gModeSelection == 1) && (D_8018EDFC == 0)) {
|
||||
D_80164678[arg0] = 0;
|
||||
D_80164678[cameraIndex] = 0;
|
||||
}
|
||||
|
||||
for (cameraId = 0; cameraId < 4; cameraId++) {
|
||||
|
|
@ -5529,7 +5529,7 @@ f32 func_80014EE4(f32 arg0, s32 arg1) {
|
|||
return arg0;
|
||||
}
|
||||
|
||||
void func_800151A4(Camera* camera, s32 arg1) {
|
||||
void calculate_camera_up_vector(Camera* camera, s32 cameraIndex) {
|
||||
f32 xnorm;
|
||||
f32 ynorm;
|
||||
f32 znorm;
|
||||
|
|
@ -5540,7 +5540,7 @@ void func_800151A4(Camera* camera, s32 arg1) {
|
|||
f32 sp28;
|
||||
u16 thing;
|
||||
|
||||
thing = D_801646C0[arg1];
|
||||
thing = D_801646C0[cameraIndex];
|
||||
if (thing == 0) {
|
||||
camera->up[0] = 0.0f;
|
||||
camera->up[2] = 0.0f;
|
||||
|
|
@ -6662,10 +6662,10 @@ void func_80019890(s32 playerId, s32 cameraId) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80019B50(s32 arg0, u16 arg1) {
|
||||
void func_80019B50(s32 cameraIndex, u16 arg1) {
|
||||
u16 var_v0;
|
||||
|
||||
var_v0 = D_801646C0[arg0];
|
||||
var_v0 = D_801646C0[cameraIndex];
|
||||
if (var_v0 < arg1) {
|
||||
if ((arg1 - var_v0) < 0x8000) {
|
||||
var_v0 += 0x5A;
|
||||
|
|
@ -6689,10 +6689,10 @@ void func_80019B50(s32 arg0, u16 arg1) {
|
|||
}
|
||||
} else if ((var_v0 - arg1) >= 0x8000) {
|
||||
var_v0 += 0x5A;
|
||||
if (!arg0) {} // wtf?
|
||||
if (!cameraIndex) {} // wtf?
|
||||
}
|
||||
}
|
||||
D_801646C0[arg0] = (s16) var_v0;
|
||||
D_801646C0[cameraIndex] = (s16) var_v0;
|
||||
}
|
||||
|
||||
void func_80019C50(s32 arg0) {
|
||||
|
|
@ -6720,7 +6720,7 @@ void func_80019D2C(Camera* camera, Player* player, s32 arg2) {
|
|||
|
||||
playerId = camera->playerId;
|
||||
if ((D_80163378 != 0) && (gCurrentCourseId == 8)) {
|
||||
func_800151A4(camera, arg2);
|
||||
calculate_camera_up_vector(camera, arg2);
|
||||
nearestWaypoint = gNearestWaypointByPlayerId[playerId];
|
||||
if (((nearestWaypoint >= 0x65) && (nearestWaypoint < 0xFA)) ||
|
||||
((nearestWaypoint >= 0x1AF) && (nearestWaypoint < 0x226))) {
|
||||
|
|
@ -6956,7 +6956,7 @@ void func_8001A588(UNUSED u16* localD_80152300, Camera* camera, Player* player,
|
|||
func_80019D2C(camera, player, cameraIndex);
|
||||
} else {
|
||||
D_801646C0[cameraIndex] = 0;
|
||||
func_800151A4(camera, cameraIndex);
|
||||
calculate_camera_up_vector(camera, cameraIndex);
|
||||
}
|
||||
switch ((u16) D_801646CC) {
|
||||
case 1:
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ void func_80014D30(s32, s32);
|
|||
void func_80014DE4(s32);
|
||||
f32 func_80014EE4(f32, s32);
|
||||
|
||||
void func_800151A4(Camera*, s32);
|
||||
void calculate_camera_up_vector(Camera*, s32);
|
||||
void func_8001530C(void);
|
||||
void func_80015314(s32, f32, s32);
|
||||
void func_80015390(Camera*, Player*, s32);
|
||||
|
|
|
|||
|
|
@ -6188,8 +6188,8 @@ void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) {
|
|||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, gBalloonVertexPlane1, 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
// D_8018D4C0 is correct. But interestingly, IDO seems to set "-0x40" to a different register so the texture
|
||||
// still looks fine.
|
||||
// D_8018D4C0 is correct. But interestingly, IDO seems to set "-0x40" to a different register so the texture still
|
||||
// looks fine.
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C0 - 0x40, 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);
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ void init_item_window(s32 objectIndex) {
|
|||
|
||||
temp_v0 = (ItemWindowObjects*) &gObjectList[objectIndex];
|
||||
temp_v0->currentItem = ITEM_NONE;
|
||||
temp_v0->itemDisplay = temp_v0->currentItem;
|
||||
temp_v0->textureListIndex = temp_v0->currentItem;
|
||||
temp_v0->tlutList = (u8*) common_tlut_item_window_none;
|
||||
temp_v0->activeTLUT = (u8*) common_tlut_item_window_none;
|
||||
temp_v0->textureList = common_texture_item_window_none;
|
||||
|
|
|
|||
|
|
@ -1507,7 +1507,7 @@ void func_8008A9B8(s32 objectIndex) {
|
|||
object = &gObjectList[objectIndex];
|
||||
object->controlPoints++;
|
||||
object->unk_09A = (s16) (10000 / (s16) (object->controlPoints[0].velocity));
|
||||
object->timer = 0;
|
||||
object->animationTimer = 0;
|
||||
func_8008A920(objectIndex);
|
||||
}
|
||||
|
||||
|
|
@ -1516,7 +1516,7 @@ void func_8008AA3C(s32 objectIndex) {
|
|||
object = &gObjectList[objectIndex];
|
||||
object->controlPoints = object->spline->controlPoints;
|
||||
object->unk_084[9] = 0;
|
||||
object->timer = 0;
|
||||
object->animationTimer = 0;
|
||||
/*
|
||||
This is INCREDIBLY stupid. This should really be
|
||||
temp_v0->unk_084[8] = temp_v0->spline->numControlPoints;
|
||||
|
|
@ -1539,8 +1539,8 @@ void func_8008AB10(s32 objectIndex) {
|
|||
object->offset[0] += object->velocity[0];
|
||||
object->offset[1] += object->velocity[1];
|
||||
object->offset[2] += object->velocity[2];
|
||||
object->timer += (u16) object->unk_09A;
|
||||
if (object->timer >= 0x2710) {
|
||||
object->animationTimer += (u16) object->unk_09A;
|
||||
if (object->animationTimer >= 0x2710) {
|
||||
object->unk_084[9] = (u16) object->unk_084[9] + 1;
|
||||
if (((u16) object->unk_084[9] + 1) == (u16) object->unk_084[8]) {
|
||||
object->unk_0AE += 1;
|
||||
|
|
@ -1734,7 +1734,7 @@ void func_8008B3E4(s32 objectIndex) {
|
|||
if (is_obj_index_flag_status_inactive(objectIndex, 8) != 0) {
|
||||
object = &gObjectList[objectIndex];
|
||||
object->unk_084[9] = 0;
|
||||
object->timer = 0;
|
||||
object->animationTimer = 0;
|
||||
object->controlPoints = object->spline->controlPoints;
|
||||
/*
|
||||
This is INCREDIBLY stupid. This should really be
|
||||
|
|
@ -1748,7 +1748,7 @@ void func_8008B3E4(s32 objectIndex) {
|
|||
}
|
||||
|
||||
void func_8008B44C(s32 objectIndex) {
|
||||
gObjectList[objectIndex].timer = 0;
|
||||
gObjectList[objectIndex].animationTimer = 0;
|
||||
gObjectList[objectIndex].controlPoints++;
|
||||
}
|
||||
|
||||
|
|
@ -1768,7 +1768,7 @@ void func_8008B478(s32 objectIndex, s32 arg1) {
|
|||
// I think the game treats each spline as being having a lenght of 10000
|
||||
// This is getting the percent along the spline we want to reach,
|
||||
// which is then treated as the `t` value given to the curve calculations
|
||||
sp34 = ((f32) gObjectList[objectIndex].timer / 10000.0);
|
||||
sp34 = ((f32) gObjectList[objectIndex].animationTimer / 10000.0);
|
||||
// Calculate the curve at `t`
|
||||
func_8008B17C(objectIndex, sp34);
|
||||
if (is_obj_flag_status_active(objectIndex, 0x800) != 0) {
|
||||
|
|
@ -1781,7 +1781,7 @@ void func_8008B478(s32 objectIndex, s32 arg1) {
|
|||
temp = gObjectList[objectIndex].controlPoints[1].velocity;
|
||||
|
||||
gObjectList[objectIndex].unk_09A = 10000.0 / (((temp - var_f6) * sp34) + var_f6);
|
||||
gObjectList[objectIndex].timer += gObjectList[objectIndex].unk_09A;
|
||||
gObjectList[objectIndex].animationTimer += gObjectList[objectIndex].unk_09A;
|
||||
}
|
||||
|
||||
void func_8008B620(s32 objectIndex) {
|
||||
|
|
@ -1790,7 +1790,7 @@ void func_8008B620(s32 objectIndex) {
|
|||
|
||||
func_8008B478(objectIndex, 0);
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->timer >= 0x2710) {
|
||||
if (object->animationTimer >= 0x2710) {
|
||||
// Have to do it this way due to the u16 cast
|
||||
object->unk_084[9] = (u16) object->unk_084[9] + 1;
|
||||
if (((u16) object->unk_084[9] + 3) == (u16) object->unk_084[8]) {
|
||||
|
|
@ -1806,7 +1806,7 @@ void func_8008B6A4(s32 objectIndex) {
|
|||
|
||||
func_8008B478(objectIndex, 1);
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->timer >= 0x2710) {
|
||||
if (object->animationTimer >= 0x2710) {
|
||||
// Have to do it this way due to the u16 cast
|
||||
object->unk_084[9] = (u16) object->unk_084[9] + 1;
|
||||
if ((u16) object->unk_084[9] == (u16) object->unk_084[8]) {
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ UNUSED void func_800914E0(void) {
|
|||
camera->pos[1] = (f32) (tempData->pos[1] + 7);
|
||||
camera->pos[2] = (f32) (tempData->pos[2] - 20);
|
||||
camera->lookAt[0] = gPlayerOneCopy->pos[0];
|
||||
|
||||
camera->lookAt[1] = gPlayerOneCopy->pos[1];
|
||||
camera->lookAt[2] = gPlayerOneCopy->pos[2];
|
||||
check_bounding_collision(&camera->collision, 20.0f, camera->pos[0], camera->pos[1], camera->pos[2]);
|
||||
|
|
|
|||
|
|
@ -1256,7 +1256,7 @@ void func_80091EE4(void) {
|
|||
tmp = func_800B5F30();
|
||||
|
||||
if ((D_8018EDFB != 0) && (tmp == 0)) {
|
||||
temp_s2 = (gCupSelection * 4) + gCupCourseSelection;
|
||||
temp_s2 = (gCupSelection * 4) + gCourseIndexInCup;
|
||||
func_800B6708();
|
||||
|
||||
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
|
||||
|
|
@ -2547,17 +2547,30 @@ Gfx* func_800959F8(Gfx* displayListHead, Vtx* arg1) {
|
|||
} else {
|
||||
index = ((gTextColor * 2) + ((s32) gGlobalTimer % 2)) - 4;
|
||||
}
|
||||
if (arg1 == &a_D_02007BB8[0]) {
|
||||
#ifdef AVOID_UB
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == &a_D_02007BB8[18]) {
|
||||
} else if (arg1 == &D_02007BB8[18]) {
|
||||
gSPDisplayList(displayListHead++, D_800E84EC[index]);
|
||||
} else if (arg1 == &a_D_02007BB8[36]) {
|
||||
} else if (arg1 == &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;
|
||||
}
|
||||
|
||||
#ifdef AVOID_UB
|
||||
#define MTX_TYPE Mtx
|
||||
#else
|
||||
typedef struct {
|
||||
u16 i[4][4];
|
||||
u16 f[4][4];
|
||||
|
|
@ -2574,28 +2587,42 @@ typedef union {
|
|||
s32 w;
|
||||
} TheWhyUnion;
|
||||
|
||||
#define MTX_TYPE Mtx2
|
||||
#endif
|
||||
|
||||
// Why... Why... Why... This function is so bad it's not going in the header.
|
||||
void func_80095AE0(Mtx2* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
void func_80095AE0(MTX_TYPE* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
#ifdef AVOID_UB
|
||||
// Use Mat4 array to set matrix values using guMtxF2L. This helps little-endian systems.
|
||||
Mat4 src;
|
||||
src[0][0] = arg3;
|
||||
src[0][1] = 0.0f;
|
||||
src[0][2] = 0.0f;
|
||||
src[0][3] = 0.0f;
|
||||
src[1][0] = 0.0f;
|
||||
src[1][1] = arg4;
|
||||
src[1][2] = 0.0f;
|
||||
src[1][3] = 0.0f;
|
||||
src[2][0] = 0.0f;
|
||||
src[2][1] = 0.0f;
|
||||
src[2][2] = 1.0f;
|
||||
src[2][3] = 0.0f;
|
||||
src[3][0] = arg1;
|
||||
src[3][1] = arg2;
|
||||
src[3][2] = 0.0f;
|
||||
src[3][3] = 1.0f;
|
||||
guMtxF2L(src, arg0);
|
||||
#else
|
||||
TheWhyUnion sp14;
|
||||
TheWhyUnion sp10;
|
||||
TheWhyUnion spC;
|
||||
TheWhyUnion sp8;
|
||||
s32 i;
|
||||
|
||||
#ifdef AVOID_UB
|
||||
size_t row;
|
||||
size_t col;
|
||||
for (row = 0; row < 4; row++) {
|
||||
for (col = 0; col < 4; col++) {
|
||||
arg0->m[row][col] = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
// clang-format off
|
||||
// should be inline
|
||||
for(i = 0; i < 16; i++) { arg0->m[0][i] = 0; }
|
||||
// clang-format on
|
||||
#endif
|
||||
|
||||
sp14.w = arg3 * 65536.0f;
|
||||
sp10.w = arg4 * 65536.0f;
|
||||
|
|
@ -2611,8 +2638,11 @@ void func_80095AE0(Mtx2* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
|||
arg0->u.f[1][1] = sp10.s[1];
|
||||
arg0->u.f[3][0] = spC.s[1];
|
||||
arg0->u.f[3][1] = sp8.s[1];
|
||||
#endif
|
||||
}
|
||||
|
||||
#undef MTX_TYPE
|
||||
|
||||
Gfx* func_80095BD0(Gfx* displayListHead, u8* arg1, f32 arg2, f32 arg3, u32 arg4, u32 arg5, f32 arg6, f32 arg7) {
|
||||
Vtx* var_a1;
|
||||
Mtx* sp28;
|
||||
|
|
@ -3342,11 +3372,6 @@ Gfx* draw_box(Gfx* displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, u32 red,
|
|||
return displayListHead;
|
||||
}
|
||||
|
||||
//! @todo Need to call this somewhere on func_800A2D1C
|
||||
Gfx* draw_box_fill_wide_wrap(Gfx* displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) {
|
||||
return draw_box_fill_wide(displayListHead, ulx, uly, lrx, lry, 0, 0, 0, 0xFF);
|
||||
}
|
||||
|
||||
Gfx* func_80098FC8(Gfx* displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) {
|
||||
return draw_box_fill(displayListHead, ulx, uly, lrx, lry, 0, 0, 0, 0xFF);
|
||||
}
|
||||
|
|
@ -3439,16 +3464,22 @@ void func_80099184(MkTexture* arg0) {
|
|||
if (var_a1_2 % 8) {
|
||||
var_a1_2 = ((var_a1_2 / 8) * 8) + 8;
|
||||
}
|
||||
// dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4);
|
||||
// mio0decode(D_8018D9B4, &D_8018D9B0[gD_8018E118TotalSize]);
|
||||
// size_t texSize = ResourceGetTexSizeByName(var_s1->textureData);
|
||||
// memcpy(&D_8018D9B0[gD_8018E118TotalSize], var_s1->textureData, texSize);
|
||||
// mio0decode(D_8018D9B4, &D_8018D9B0[gD_8018E118TotalSize]);
|
||||
// size_t texSize = ResourceGetTexSizeByName(var_s1->textureData);
|
||||
// memcpy(&D_8018D9B0[gD_8018E118TotalSize], var_s1->textureData, texSize);
|
||||
#ifdef TARGET_N64
|
||||
dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4);
|
||||
mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gD_8018E118TotalSize]);
|
||||
#else
|
||||
strcpy(&D_8018D9B0[gD_8018E118TotalSize], var_s1->textureData);
|
||||
#endif
|
||||
} else {
|
||||
// dma_copy_base_729a30(var_s1->textureData, (var_s1->height * var_s1->width) * 2,
|
||||
// &D_8018D9B0[gD_8018E118TotalSize]); memcpy(&D_8018D9B0[gD_8018E118TotalSize], var_s1->textureData,
|
||||
// var_s1->width * var_s1->height*2);
|
||||
#ifdef TARGET_N64
|
||||
dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2,
|
||||
&D_8018D9B0[gD_8018E118TotalSize]);
|
||||
#else
|
||||
strcpy(&D_8018D9B0[gD_8018E118TotalSize], var_s1->textureData);
|
||||
#endif
|
||||
}
|
||||
thing[gNumD_8018E118Entries].textureData = var_s1->textureData;
|
||||
thing[gNumD_8018E118Entries].offset = gD_8018E118TotalSize;
|
||||
|
|
@ -4986,7 +5017,7 @@ void func_8009CE64(s32 arg0) {
|
|||
}
|
||||
gCupSelection = gCupSelectionByCourseId[gCurrentCourseId];
|
||||
D_800DC540 = (s32) gCupSelection;
|
||||
gCupCourseSelection = (s8) gPerCupIndexByCourseId[gCurrentCourseId];
|
||||
gCourseIndexInCup = (s8) gPerCupIndexByCourseId[gCurrentCourseId];
|
||||
break;
|
||||
case 3: /* switch 3 */
|
||||
switch (gMenuSelection) {
|
||||
|
|
@ -5068,7 +5099,7 @@ void func_8009CE64(s32 arg0) {
|
|||
}
|
||||
gCupSelection = gCupSelectionByCourseId[gCurrentCourseId];
|
||||
D_800DC540 = gCupSelection;
|
||||
gCupCourseSelection = gPerCupIndexByCourseId[gCurrentCourseId];
|
||||
gCourseIndexInCup = gPerCupIndexByCourseId[gCurrentCourseId];
|
||||
switch (gDebugGotoScene) { /* switch 6; irregular */
|
||||
case 1: /* switch 6 */
|
||||
break;
|
||||
|
|
@ -5779,7 +5810,7 @@ void add_8018D9E0_entry(s32 type, s32 column, s32 row, s8 priority) {
|
|||
}
|
||||
}
|
||||
if ((var_ra->unk1C == 0) || (var_ra->unk20 != 0)) {
|
||||
func_800B559C((gCupSelection * 4) + gCupCourseSelection);
|
||||
func_800B559C((gCupSelection * 4) + gCourseIndexInCup);
|
||||
}
|
||||
break;
|
||||
case 0xE6:
|
||||
|
|
@ -6060,7 +6091,7 @@ void func_8009F5E0(struct_8018D9E0_entry* arg0) {
|
|||
case 0x18: /* switch 6 */
|
||||
case 0x19: /* switch 6 */
|
||||
var_v1 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
var_a1 = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
var_a1 = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
switch (arg0->type) { /* switch 5 */
|
||||
case 0x12: /* switch 5 */
|
||||
case 0x13: /* switch 5 */
|
||||
|
|
@ -7200,7 +7231,7 @@ void func_800A2EB8(struct_8018D9E0_entry* arg0) {
|
|||
func_80093324(arg0->column + 0x1E, arg0->row + 0x19, "results", 0, 1.0f, 1.0f);
|
||||
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2);
|
||||
func_80093324(arg0->column + 0x2C, arg0->row + 0x28, "round", 0, 0.7f, 0.7f);
|
||||
convert_number_to_ascii(gCupCourseSelection + 1, sp68);
|
||||
convert_number_to_ascii(gCourseIndexInCup + 1, sp68);
|
||||
func_80093324(arg0->column + 0x57, arg0->row + 0x28, &sp68[1], 0, 0.7f, 0.7f);
|
||||
for (var_s2 = 0; var_s2 < 4; var_s2++) {
|
||||
if (gGPCurrentRacePlayerIdByRank[var_s2] < gPlayerCount) {
|
||||
|
|
@ -7279,7 +7310,7 @@ void func_800A34A8(struct_8018D9E0_entry* arg0) {
|
|||
func_80093324(arg0->column + 0x19, 0x19 - arg0->row, "driver's points", 0, 0.8f, 0.8f);
|
||||
set_text_color(5);
|
||||
func_80093324(arg0->column + 0x36, 0x28 - arg0->row, "round", 0, 0.7f, 0.7f);
|
||||
convert_number_to_ascii(gCupCourseSelection + 1, sp78);
|
||||
convert_number_to_ascii(gCourseIndexInCup + 1, sp78);
|
||||
func_80093324(arg0->column + 0x61, (0x28 & 0xFFFFFFFF) - arg0->row, &sp78[1], 0, 0.7f, 0.7f);
|
||||
for (rank = 0; rank < 4; rank++) {
|
||||
test = arg0->cursor;
|
||||
|
|
@ -7412,8 +7443,8 @@ void func_800A3C84(struct_8018D9E0_entry* arg0) {
|
|||
s32 rowOffset;
|
||||
|
||||
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
|
||||
draw_text(arg0->column + 0x43, arg0->row + 0x19,
|
||||
gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
|
||||
draw_text(arg0->column + 0x43, arg0->row + 0x19, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCourseIndexInCup]],
|
||||
0, 0.6f, 0.6f);
|
||||
set_text_color(TEXT_YELLOW);
|
||||
draw_text(arg0->column + 0x46, arg0->row + 0x28, D_800E7730, 0, 0.75f, 0.75f);
|
||||
for (recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_3LAP_RECORD_5; recordType += 1, rowOffset += 0xF) {
|
||||
|
|
@ -7452,8 +7483,8 @@ void func_800A3E60(struct_8018D9E0_entry* arg0) {
|
|||
}
|
||||
|
||||
set_text_color(4);
|
||||
draw_text(arg0->column + 0x55, 0x19 - arg0->row,
|
||||
gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
|
||||
draw_text(arg0->column + 0x55, 0x19 - arg0->row, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCourseIndexInCup]],
|
||||
0, 0.6f, 0.6f);
|
||||
set_text_color(3);
|
||||
draw_text(arg0->column + 0x55, 0x28 - arg0->row, D_800E7730, 0, 0.75f, 0.75f);
|
||||
for (var_s1 = 0; var_s1 < 4; var_s1++) {
|
||||
|
|
@ -7750,7 +7781,7 @@ void render_pause_menu_time_trials(struct_8018D9E0_entry* arg0) {
|
|||
|
||||
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x0000008C);
|
||||
set_text_color(TEXT_YELLOW);
|
||||
draw_text(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f,
|
||||
draw_text(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCourseIndexInCup]], 0, 1.0f,
|
||||
1.0f);
|
||||
set_text_color(TEXT_RED);
|
||||
draw_text(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f);
|
||||
|
|
@ -7838,7 +7869,7 @@ void render_pause_grand_prix(struct_8018D9E0_entry* arg0) {
|
|||
set_text_color(TEXT_YELLOW);
|
||||
draw_text(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f);
|
||||
set_text_color(TEXT_YELLOW);
|
||||
draw_text(160, temp_s3->row - 30, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f,
|
||||
draw_text(160, temp_s3->row - 30, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCourseIndexInCup]], 0, 1.0f,
|
||||
1.0f);
|
||||
for (var_s0 = 0; var_s0 < 2; var_s0++) {
|
||||
text_rainbow_effect(arg0->cursor - 31, var_s0, TEXT_YELLOW);
|
||||
|
|
@ -7953,7 +7984,7 @@ void func_800A5738(struct_8018D9E0_entry* arg0) {
|
|||
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_s2);
|
||||
set_text_color(3);
|
||||
func_80093754(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0,
|
||||
func_80093754(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCourseIndexInCup]], 0,
|
||||
1.0f, 1.0f);
|
||||
switch (arg0->cursor) { /* switch 1 */
|
||||
case 1: /* switch 1 */
|
||||
|
|
@ -8996,7 +9027,7 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) {
|
|||
} else {
|
||||
gDisplayListHead = func_80098FC8(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35);
|
||||
}
|
||||
for (var_s0 += 0x41, var_s2 = 0; var_s2 <= D_800F2B60[0][arg0]; var_s2++, var_s0 += 0x12) {
|
||||
for (var_s0 += 0x41, var_s2 = 0; var_s2 <= gPlayerModeSelection[arg0]; var_s2++, var_s0 += 0x12) {
|
||||
if ((var_s2 == D_800E86AC[arg0]) && ((arg0 + 1) == gPlayerCount) && (gMainMenuSelectionDepth >= 4)) {
|
||||
if (gMainMenuSelectionDepth == GAME_MODE_SELECTION) {
|
||||
gDisplayListHead =
|
||||
|
|
@ -9126,8 +9157,8 @@ void func_800A8A98(struct_8018D9E0_entry* arg0) {
|
|||
gDPPipeSync(gDisplayListHead++);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA);
|
||||
for (someIndex = 0; someIndex < 4; someIndex++) {
|
||||
if ((someIndex == gCupCourseSelection) && (D_8018EDEC >= 2) && (gModeSelection != GRAND_PRIX)) {
|
||||
for (someIndex = 0; someIndex < NUM_COURSES_PER_CUP; someIndex++) {
|
||||
if ((someIndex == gCourseIndexInCup) && (D_8018EDEC >= 2) && (gModeSelection != GRAND_PRIX)) {
|
||||
if ((D_8018EDEC == 2) || (D_8018EDEC == 4)) {
|
||||
gDisplayListHead = draw_flash_select_case_slow(
|
||||
gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3,
|
||||
|
|
@ -9213,7 +9244,7 @@ void func_800A8F48(UNUSED struct_8018D9E0_entry* arg0) {
|
|||
break;
|
||||
case 2:
|
||||
default:
|
||||
if (func_800B639C((gCupSelection * 4) + gCupCourseSelection) >= 0) {
|
||||
if (func_800B639C((gCupSelection * 4) + gCourseIndexInCup) >= 0) {
|
||||
gDisplayListHead = func_80098FC8(gDisplayListHead, 0x00000057, 0x00000070, 0x00000096, 0x00000081);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A0C, 0x00000057, 0x00000070);
|
||||
}
|
||||
|
|
@ -9673,7 +9704,7 @@ void func_800A9E58(struct_8018D9E0_entry* arg0) {
|
|||
break;
|
||||
}
|
||||
|
||||
temp_a1 = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
temp_a1 = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
switch (arg0->cursor) { /* switch 5; irregular */
|
||||
case 0: /* switch 5 */
|
||||
if ((temp_a1 != sp20) && (temp_a1 != sp1C)) {
|
||||
|
|
@ -10403,7 +10434,7 @@ void func_800AB314(struct_8018D9E0_entry* arg0) {
|
|||
arg0->cursor = 0;
|
||||
arg0->unk20 = 0;
|
||||
for (var_a1 = 0; var_a1 < 4; var_a1++) {
|
||||
if (gCupCourseSelection == var_a1) {
|
||||
if (gCourseIndexInCup == var_a1) {
|
||||
sp24[var_a1]->visible = one;
|
||||
if (arg0->unk1C != var_a1) {
|
||||
arg0->unk1C = var_a1;
|
||||
|
|
@ -10906,7 +10937,7 @@ void func_800AC458(struct_8018D9E0_entry* arg0) {
|
|||
if (arg0->unk1C <= 0) {
|
||||
arg0->cursor = 0x0000000A;
|
||||
arg0->unk1C = 0;
|
||||
if (gCupCourseSelection == 3) {
|
||||
if (gCourseIndexInCup == 3) {
|
||||
for (var_a1 = 0; var_a1 < 8; var_a1++) {
|
||||
if (D_80164478[gCharacterIdByGPOverallRank[var_a1]] < gPlayerCount) {
|
||||
func_800B536C(var_a1);
|
||||
|
|
@ -11305,7 +11336,7 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) {
|
|||
break;
|
||||
case 0: /* switch 4 */
|
||||
func_800B6708();
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x11;
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCourseIndexInCup) + 0x11;
|
||||
var_v1 = 1;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
break;
|
||||
|
|
@ -11352,7 +11383,7 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) {
|
|||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName,
|
||||
(u8*) gExtCode, &gControllerPak1FileNote) == 0) {
|
||||
func_800B6708();
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x11;
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCourseIndexInCup) + 0x11;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
return;
|
||||
}
|
||||
|
|
@ -11402,7 +11433,7 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) {
|
|||
case 17: /* switch 1 */
|
||||
case 18: /* switch 1 */
|
||||
arg0->unk20 = arg0->cursor - 0x11;
|
||||
if (func_800B639C((gCupSelection * 4) + gCupCourseSelection) != arg0->unk20) {
|
||||
if (func_800B639C((gCupSelection * 4) + gCourseIndexInCup) != arg0->unk20) {
|
||||
if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) {
|
||||
if (arg0->cursor >= 0x12) {
|
||||
arg0->cursor--;
|
||||
|
|
@ -11709,7 +11740,7 @@ void func_800AE218(struct_8018D9E0_entry* arg0) {
|
|||
break;
|
||||
case PFS_NO_ERROR: /* switch 3 */
|
||||
func_800B6708();
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x1E;
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCourseIndexInCup) + 0x1E;
|
||||
var_v1 = 1;
|
||||
break;
|
||||
case PFS_ERR_NEW_PACK: /* switch 3 */
|
||||
|
|
@ -11758,7 +11789,7 @@ void func_800AE218(struct_8018D9E0_entry* arg0) {
|
|||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName,
|
||||
(u8*) gExtCode, &gControllerPak1FileNote) == 0) {
|
||||
func_800B6708();
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x1E;
|
||||
arg0->cursor = func_800B6348((gCupSelection * 4) + gCourseIndexInCup) + 0x1E;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
return;
|
||||
}
|
||||
|
|
@ -11804,7 +11835,7 @@ void func_800AE218(struct_8018D9E0_entry* arg0) {
|
|||
case 30: /* switch 1 */
|
||||
case 31: /* switch 1 */
|
||||
arg0->unk20 = (u32) arg0->cursor - 0x1E;
|
||||
if (func_800B639C((gCupSelection * 4) + gCupCourseSelection) != arg0->unk20) {
|
||||
if (func_800B639C((gCupSelection * 4) + gCourseIndexInCup) != arg0->unk20) {
|
||||
if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) {
|
||||
if (arg0->cursor >= 0x1F) {
|
||||
arg0->cursor--;
|
||||
|
|
@ -12127,14 +12158,14 @@ void func_800AF270(struct_8018D9E0_entry* arg0) {
|
|||
if (D_802874D8.unk1D >= 3) {
|
||||
arg0->cursor = 4;
|
||||
func_800CA0B8();
|
||||
func_800C90F4(0U, (sp30 * 0x10) + 0x29008003);
|
||||
func_800C90F4(0U, (sp30 * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x03));
|
||||
func_800CA0A0();
|
||||
} else {
|
||||
arg0->cursor = 3;
|
||||
func_8009A640(arg0->D_8018DEE0_index, 0, sp30,
|
||||
segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_v0]));
|
||||
func_800CA0B8();
|
||||
func_800C90F4(0U, (sp30 * 0x10) + 0x29008007);
|
||||
func_800C90F4(0U, (sp30 * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x07));
|
||||
func_800CA0A0();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -400,6 +400,7 @@ void func_800AF740(struct_8018D9E0_entry*);
|
|||
|
||||
// This really, really shouldn't be in this header file, but I don't know where else to put it
|
||||
void rmonPrintf(const char*, ...);
|
||||
void tkmk00decode(u8*, u8*, u8*, s32);
|
||||
|
||||
/* File specific defines */
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#include "ceremony_and_credits.h"
|
||||
#include "main.h"
|
||||
|
||||
void setup_camera_podium_ceremony(void) {
|
||||
void update_camera_podium_ceremony(void) {
|
||||
Camera* camera;
|
||||
f32 x_dist;
|
||||
f32 y_dist;
|
||||
|
|
@ -26,7 +26,7 @@ void setup_camera_podium_ceremony(void) {
|
|||
}
|
||||
|
||||
// GP podium ceremony camera settings?
|
||||
void func_802816B8(void) {
|
||||
void init_camera_podium_ceremony(void) {
|
||||
cameras[0].pos[0] = -3133.0f;
|
||||
cameras[0].pos[1] = 19.0f;
|
||||
cameras[0].pos[2] = -467.0f;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -48,7 +48,7 @@ struct credits_data_1FA0 {
|
|||
*
|
||||
* See the sCutsceneVars[] array in camera.c for more details.
|
||||
*/
|
||||
struct CinematicCamera {
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ Vec3f lookAt;
|
||||
/* 0x18 */ f32 unk18;
|
||||
|
|
@ -67,7 +67,7 @@ struct CinematicCamera {
|
|||
/* 0x68 */ f32 unk68;
|
||||
/* 0x6C */ s16 unk6C;
|
||||
/* 0x6E */ s16 unk6E;
|
||||
}; // size = 0x70
|
||||
} CinematicCamera; // size = 0x70
|
||||
|
||||
struct struct_80282C40 {
|
||||
s8 unk0;
|
||||
|
|
@ -99,11 +99,14 @@ struct CutsceneSplinePoint {
|
|||
};
|
||||
|
||||
struct Cutscene {
|
||||
/* 0x0 */ void (*shot)(struct CinematicCamera*);
|
||||
/* 0x0 */ void (*shot)(CinematicCamera*);
|
||||
/* 0x4 */ s16 duration;
|
||||
/* 0x6 */ // s16 pad;
|
||||
}; /* size = 0x8 */
|
||||
|
||||
typedef void (*CameraEvent)(CinematicCamera* c);
|
||||
typedef CameraEvent CutsceneShot;
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void init_cinematic_camera(void);
|
||||
|
|
@ -116,88 +119,88 @@ void vec3f_copy_return_dupe(Vec3f, Vec3f);
|
|||
void vec3s_copy_dupe(Vec3s, Vec3s);
|
||||
void func_80282040(void);
|
||||
void func_80282048(void);
|
||||
void func_80282050(Vec3f, Vec3f, s16);
|
||||
void func_802820F8(Vec3f, Vec3f, s16);
|
||||
void rotate_y_vec3f(Vec3f, Vec3f, s16);
|
||||
void rotate_x_vec3f(Vec3f, Vec3f, s16);
|
||||
s32 f32_lerp(f32*, f32, f32);
|
||||
s32 func_80282200(Vec3s, s16, s16);
|
||||
s32 set_transition_colour_fade_alpha_ending(f32*, f32, f32);
|
||||
s32 func_80282364(s16*, s16, s16);
|
||||
bool ease_out_transition(s16*, s16, s16);
|
||||
bool adjust_f32_value_transition(f32*, f32, f32);
|
||||
bool adjust_s16_value_transition(s16*, s16, s16);
|
||||
void reset_spline(void);
|
||||
void func_80282434(struct CinematicCamera*);
|
||||
void func_80282454(Vec3f, Vec3f, f32*, s16*, s16*);
|
||||
void func_80282504(Vec3f, Vec3f, f32, s16, s16);
|
||||
void func_802825C8(Vec3f, Vec3f, Vec3f, Vec3s);
|
||||
void func_80282700(f32, Vec3f, f32*, f32[], f32[], f32[], f32[]);
|
||||
void reset_spline_wrap(CinematicCamera*);
|
||||
void calculate_distance_angle_y_and_angle_y_to_xz(Vec3f, Vec3f, f32*, s16*, s16*);
|
||||
void apply_distance_angle_y_and_angle_y_to_xz(Vec3f, Vec3f, f32, s16, s16);
|
||||
void aborting_cinematic_function(Vec3f, Vec3f, Vec3f, Vec3s);
|
||||
void evaluate_cubic_spline(f32, Vec3f, f32*, f32[], f32[], f32[], f32[]);
|
||||
s32 move_point_along_spline(Vec3f, f32*, struct struct_80283430[], s16*, f32*);
|
||||
void func_80282BE4(struct struct_80283430*, s8, u8, s8, Vec3s, s32);
|
||||
void func_80282C40(struct struct_80283430*, struct struct_80282C40*, s32);
|
||||
s32 func_80282D90(struct CinematicCamera*, struct struct_80286A04*, struct struct_80286A04*, s32);
|
||||
void func_80282E58(struct CinematicCamera*, struct struct_80282C40*, s32);
|
||||
void func_80282EAC(s32, struct CinematicCamera*, s16, s16, s16);
|
||||
s32 move_cinematic_camera_along_spline(CinematicCamera*, struct struct_80286A04*, struct struct_80286A04*, s32);
|
||||
void func_80282E58(CinematicCamera*, struct struct_80282C40*, s32);
|
||||
void func_80282EAC(s32, CinematicCamera*, s16, s16, s16);
|
||||
void func_80282F00(s16*, s16);
|
||||
void func_80282F44(s32, struct CinematicCamera*, Camera*);
|
||||
void func_802830B4(struct CinematicCamera*, s16, s16, s16);
|
||||
void func_80283100(struct CinematicCamera*, f32*);
|
||||
void func_80282F44(s32, CinematicCamera*, Camera*);
|
||||
void func_802830B4(CinematicCamera*, s16, s16, s16);
|
||||
void func_80283100(CinematicCamera*, f32*);
|
||||
void func_80283240(s16);
|
||||
s32 cutscene_event(CameraEvent event, struct CinematicCamera*, s16, s16);
|
||||
s32 cutscene_event(CameraEvent event, CinematicCamera*, s16, s16);
|
||||
s32 func_80283330(s32);
|
||||
s32 func_8028336C(struct CinematicCamera*, Camera*);
|
||||
s32 func_80283428(void);
|
||||
void func_80283968(struct CinematicCamera*);
|
||||
void func_80283994(struct CinematicCamera*);
|
||||
void func_802839B4(struct CinematicCamera*);
|
||||
void func_802839CC(struct CinematicCamera*);
|
||||
void func_802839E0(struct CinematicCamera*);
|
||||
void play_sound_welcome(struct CinematicCamera*);
|
||||
void func_80283A34(struct CinematicCamera*);
|
||||
void play_sound_congratulation(struct CinematicCamera*);
|
||||
void play_sound_balloon_pop(struct CinematicCamera*);
|
||||
void play_sound_fish(struct CinematicCamera*);
|
||||
void play_sound_fish_2(struct CinematicCamera*);
|
||||
void play_sound_shoot_trophy(struct CinematicCamera*);
|
||||
void play_sound_podium(struct CinematicCamera*);
|
||||
void play_sound_trophy(struct CinematicCamera*);
|
||||
void func_80283A54(struct CinematicCamera*);
|
||||
void func_80283A7C(struct CinematicCamera*);
|
||||
void func_80283B6C(struct CinematicCamera*);
|
||||
void func_80283BA4(struct CinematicCamera*);
|
||||
void func_80283BF0(struct CinematicCamera*);
|
||||
void func_80283C14(struct CinematicCamera*);
|
||||
void func_80283C38(struct CinematicCamera*);
|
||||
void func_80283C58(struct CinematicCamera*);
|
||||
void func_80283C78(struct CinematicCamera*);
|
||||
void func_80283CA8(struct CinematicCamera*);
|
||||
void func_80283CD0(struct CinematicCamera*);
|
||||
void play_sound_farewell(struct CinematicCamera*);
|
||||
void func_80283D2C(struct CinematicCamera*);
|
||||
void func_80283EA0(struct CinematicCamera*);
|
||||
void func_80283ED0(struct CinematicCamera*);
|
||||
void func_80283EF8(struct CinematicCamera*);
|
||||
void func_80283F6C(struct CinematicCamera*);
|
||||
void func_80283FCC(struct CinematicCamera*);
|
||||
void func_80283FF4(struct CinematicCamera*);
|
||||
void func_80284068(struct CinematicCamera*);
|
||||
void func_802840C8(struct CinematicCamera*);
|
||||
void func_80284154(struct CinematicCamera*);
|
||||
void func_80284184(struct CinematicCamera*);
|
||||
void func_802841E8(struct CinematicCamera*);
|
||||
void func_8028422C(struct CinematicCamera*);
|
||||
void func_802842A8(struct CinematicCamera*);
|
||||
void func_802842D8(struct CinematicCamera*);
|
||||
void func_80284308(struct CinematicCamera*);
|
||||
void func_80284418(struct CinematicCamera*);
|
||||
void func_80284494(struct CinematicCamera*);
|
||||
void func_802844FC(struct CinematicCamera*);
|
||||
void func_8028454C(struct CinematicCamera*);
|
||||
void func_802845EC(struct CinematicCamera*);
|
||||
void func_8028461C(struct CinematicCamera*);
|
||||
void func_80284648(struct CinematicCamera*);
|
||||
s32 func_8028336C(CinematicCamera*, Camera*);
|
||||
s32 cinematic_stub(void);
|
||||
void wrap_func_8028100C(CinematicCamera*);
|
||||
void wrap_func_80280FFC(CinematicCamera*);
|
||||
void animation_apears_sliding_borders(CinematicCamera*);
|
||||
void animation_disapears_sliding_borders(CinematicCamera*);
|
||||
void wrap_func_80092C80(CinematicCamera*);
|
||||
void play_sound_welcome(CinematicCamera*);
|
||||
void wrap_func_800CA0CC(CinematicCamera*);
|
||||
void play_sound_congratulation(CinematicCamera*);
|
||||
void play_sound_balloon_pop(CinematicCamera*);
|
||||
void play_sound_fish(CinematicCamera*);
|
||||
void play_sound_fish_2(CinematicCamera*);
|
||||
void play_sound_shoot_trophy(CinematicCamera*);
|
||||
void play_sound_podium(CinematicCamera*);
|
||||
void play_sound_trophy(CinematicCamera*);
|
||||
void func_80283A54(CinematicCamera*);
|
||||
void func_80283A7C(CinematicCamera*);
|
||||
void func_80283B6C(CinematicCamera*);
|
||||
void func_80283BA4(CinematicCamera*);
|
||||
void func_80283BF0(CinematicCamera*);
|
||||
void func_80283C14(CinematicCamera*);
|
||||
void wrap_func_800CB134(CinematicCamera*);
|
||||
void wrap_func_800CB14C(CinematicCamera*);
|
||||
void func_80283C78(CinematicCamera*);
|
||||
void func_80283CA8(CinematicCamera*);
|
||||
void func_80283CD0(CinematicCamera*);
|
||||
void play_sound_farewell(CinematicCamera*);
|
||||
void func_80283D2C(CinematicCamera*);
|
||||
void func_80283EA0(CinematicCamera*);
|
||||
void copy_player_two_in_camera(CinematicCamera*);
|
||||
void lerp_player_two_in_camera(CinematicCamera*);
|
||||
void func_80283F6C(CinematicCamera*);
|
||||
void copy_player_three_in_camera(CinematicCamera*);
|
||||
void lerp_player_three_in_camera(CinematicCamera*);
|
||||
void func_80284068(CinematicCamera*);
|
||||
void func_802840C8(CinematicCamera*);
|
||||
void func_80284154(CinematicCamera*);
|
||||
void func_80284184(CinematicCamera*);
|
||||
void func_802841E8(CinematicCamera*);
|
||||
void func_8028422C(CinematicCamera*);
|
||||
void func_802842A8(CinematicCamera*);
|
||||
void func_802842D8(CinematicCamera*);
|
||||
void func_80284308(CinematicCamera*);
|
||||
void func_80284418(CinematicCamera*);
|
||||
void func_80284494(CinematicCamera*);
|
||||
void func_802844FC(CinematicCamera*);
|
||||
void func_8028454C(CinematicCamera*);
|
||||
void func_802845EC(CinematicCamera*);
|
||||
void func_8028461C(CinematicCamera*);
|
||||
void func_80284648(CinematicCamera*);
|
||||
void func_802846AC(void);
|
||||
void func_802846B4(struct CinematicCamera*);
|
||||
void func_802846E4(struct CinematicCamera*);
|
||||
void func_802847CC(struct CinematicCamera*);
|
||||
void play_cutscene(struct CinematicCamera*);
|
||||
void transition_sliding_borders(void);
|
||||
void func_802846B4(CinematicCamera*);
|
||||
void func_802846E4(CinematicCamera*);
|
||||
void func_802847CC(CinematicCamera*);
|
||||
void play_cutscene(CinematicCamera*);
|
||||
void ceremony_transition_sliding_borders(void);
|
||||
|
||||
/* This is where I'd put my static data, if I had any */
|
||||
|
||||
|
|
@ -205,9 +208,9 @@ extern s32 D_80283FCC;
|
|||
extern s32 D_80283FF4;
|
||||
extern f32 D_802856B0;
|
||||
extern f32 D_802856B4;
|
||||
extern f32 D_802856B8;
|
||||
extern f32 gOrderedSizeSlidingBorders;
|
||||
extern f32 D_802856BC;
|
||||
extern f32 D_802856C0;
|
||||
extern f32 gSizeSlidingBorders;
|
||||
extern s32 D_802856C4;
|
||||
extern s32 D_802856C8[]; // padding?
|
||||
extern s16 sCutsceneShot;
|
||||
|
|
@ -215,7 +218,7 @@ extern s16 gCutsceneShotTimer;
|
|||
extern s32 D_802876D4;
|
||||
extern s32 D_802876D8;
|
||||
extern s32 D_802876DC; // fake/padding? Or D8 is array?
|
||||
extern struct CinematicCamera D_802876E0;
|
||||
extern CinematicCamera D_802876E0;
|
||||
extern struct struct_80283431 D_80287750[];
|
||||
extern struct struct_80283430 D_80287818[];
|
||||
extern struct struct_80283430 D_80287998[];
|
||||
|
|
@ -248,7 +251,7 @@ extern struct struct_80282C40 D_80285B90[];
|
|||
extern struct struct_80282C40 D_80285BA8[];
|
||||
extern struct struct_80282C40 D_80285C38[];
|
||||
extern struct struct_80282C40 D_80285C74[];
|
||||
extern struct Cutscene D_80285D10[];
|
||||
extern struct Cutscene gCutScene[];
|
||||
extern s16 D_80285D14;
|
||||
extern s32 D_802876D4;
|
||||
extern s32 D_802876D8;
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ void func_80280038(void) {
|
|||
render_course_actors(D_800DC5EC);
|
||||
render_object(PLAYER_ONE + SCREEN_MODE_1P);
|
||||
render_player_snow_effect(PLAYER_ONE + SCREEN_MODE_1P);
|
||||
transition_sliding_borders();
|
||||
ceremony_transition_sliding_borders();
|
||||
func_80281C40();
|
||||
init_rdp();
|
||||
func_80093F10();
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ void load_ceremony_cutscene(void) {
|
|||
init_hud();
|
||||
func_8001C05C();
|
||||
balloons_and_fireworks_init();
|
||||
func_802816B8();
|
||||
init_camera_podium_ceremony();
|
||||
func_80093E60();
|
||||
D_801625F8 = (uintptr_t) gHeapEndPtr - gNextFreeMemoryAddress;
|
||||
D_801625FC = ((f32) D_801625F8 / 1000.0f);
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ void func_80281D00(void) {
|
|||
func_80021B0C();
|
||||
gSPDisplayList(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_80284EE0));
|
||||
func_80093F10();
|
||||
transition_sliding_borders();
|
||||
ceremony_transition_sliding_borders();
|
||||
func_80281C40();
|
||||
init_rdp();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -450,7 +450,7 @@ void func_80281540(void) {
|
|||
void podium_ceremony_loop(void) {
|
||||
gMatrixObjectCount = 0;
|
||||
D_802874FC = 0;
|
||||
setup_camera_podium_ceremony();
|
||||
update_camera_podium_ceremony();
|
||||
func_80028F70();
|
||||
func_80022744();
|
||||
func_80059AC8();
|
||||
|
|
|
|||
126
src/menus.c
126
src/menus.c
|
|
@ -54,7 +54,7 @@ s32 gMenuDelayTimer;
|
|||
s8 D_8018EE08;
|
||||
s8 gCupSelection;
|
||||
s8 D_8018EE0A;
|
||||
s8 gCupCourseSelection;
|
||||
s8 gCourseIndexInCup;
|
||||
s8 D_8018EE0C;
|
||||
struct_8018EE10_entry D_8018EE10[2];
|
||||
|
||||
|
|
@ -81,29 +81,38 @@ s8 unref_800E86E0[4] = { 0, 0, 0, 1 };
|
|||
|
||||
u32 sVIGammaOffDitherOn = OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON;
|
||||
|
||||
/*** Const/rodata Data ***/
|
||||
// used to set gScreenModeSelection; might be smaller; could be function static data
|
||||
// Used to set gScreenModeSelection; might be smaller; could be function static data
|
||||
const s8 D_800F2B50[] = { 0, 1, 2, 3, 3 };
|
||||
|
||||
// set to gPlayerCount, then that sets gPlayerCountSelection1
|
||||
// Set to gPlayerCount, then that sets gPlayerCountSelection1
|
||||
const s8 D_800F2B58[] = { 1, 2, 2, 3, 4 };
|
||||
|
||||
// Limit for each column in one-two-three-four players selection
|
||||
const s8 D_800F2B60[5][3] = {
|
||||
{ 1, 2, 1 }, { 1, 2, 1 }, { 0, 2, 2 }, { 0, 2, 0 }, { 0, 2, 0 },
|
||||
// {0, 3, 1},
|
||||
// {0, 3, 3},
|
||||
// {0, 3, 0},
|
||||
// {0, 3, 0},
|
||||
// Set indexed slots numbers for one-two-three-four mode selection
|
||||
const s8 gPlayerModeSelection[] = { 1, 2, 1, 1 };
|
||||
|
||||
// Limit for each index column in one-two-three-four mode selection
|
||||
const s8 gGameModePlayerColumnDefault[][3] = {
|
||||
{ 2, 1, 0 }, // 1p (GP options, TT options, ...)
|
||||
{ 2, 2, 0 }, // 2p (GP options, VS options, Battle)
|
||||
{ 2, 0, 0 }, // 3p (VS options, Battle, ...)
|
||||
{ 2, 0, 0 }, // 4p (VS options, Battle, ...)
|
||||
};
|
||||
|
||||
// is this another union GameModePack? Figure out when decomping.
|
||||
const s32 gGameModeFromNumPlayersAndRowSelection[5][3] = {
|
||||
{ 0x03010003, 0x03000300, 0x00030000 }, // Despite this matching, there is no way this line belongs in this array
|
||||
{ GRAND_PRIX, TIME_TRIALS, 0x00000000 }, // first column
|
||||
{ GRAND_PRIX, VERSUS, BATTLE }, // second
|
||||
{ VERSUS, BATTLE, 0x00000000 }, // third
|
||||
{ VERSUS, BATTLE, 0x00000000 }, // four
|
||||
// Limit for each index column in one-two-three-four mode selection
|
||||
// for extra mode (mirror mode), hence the extra value (3 instead of 2)
|
||||
const s8 gGameModePlayerColumnExtra[][3] = {
|
||||
{ 3, 1, 0 }, // 1p (GP options, TT options, ...)
|
||||
{ 3, 3, 0 }, // 2p (GP options, VS options, Battle)
|
||||
{ 3, 0, 0 }, // 3p (VS options, Battle, ...)
|
||||
{ 3, 0, 0 }, // 4p (VS options, Battle, ...)
|
||||
};
|
||||
|
||||
// Modes to select in one-two-three-four mode selection
|
||||
const s32 gGameModePlayerSelection[][3] = {
|
||||
{ GRAND_PRIX, TIME_TRIALS, 0x00000000 }, // 1p game modes
|
||||
{ GRAND_PRIX, VERSUS, BATTLE }, // 2p game modes
|
||||
{ VERSUS, BATTLE, 0x00000000 }, // 3p game modes
|
||||
{ VERSUS, BATTLE, 0x00000000 }, // 4p game modes
|
||||
};
|
||||
|
||||
// map from character grid position id to character id
|
||||
|
|
@ -124,9 +133,10 @@ const s16 gCupCourseOrder[5][4] = {
|
|||
{ COURSE_BIG_DONUT, COURSE_BLOCK_FORT, COURSE_DOUBLE_DECK, COURSE_SKYSCRAPER },
|
||||
};
|
||||
|
||||
const s8 D_800F2BDC[8] = { 1, 0, 0, 0, 0, 1, 3, 4 };
|
||||
const s8 D_800F2BDC[4] = { 1, 0, 0, 0 };
|
||||
const s8 D_800F2BE0[4] = { 0, 1, 3, 4 };
|
||||
|
||||
const union GameModePack D_800F2BE4 = { { 0, 1, 2, 3 } };
|
||||
const union GameModePack gSoundMenuPack = { { SOUND_STEREO, SOUND_HEADPHONES, SOUND_UNUSED, SOUND_MONO } };
|
||||
|
||||
/**************************/
|
||||
|
||||
|
|
@ -821,7 +831,7 @@ void logo_intro_menu_act(struct Controller* arg0, UNUSED u16 arg1) {
|
|||
gGamestateNext = 4; // Enter race state
|
||||
gCCSelection = CC_100;
|
||||
gCupSelection = 1;
|
||||
gCupCourseSelection = 0;
|
||||
gCourseIndexInCup = 0;
|
||||
gCurrentCourseId = 0;
|
||||
gScreenModeSelection = SCREEN_MODE_1P;
|
||||
gCharacterSelections[0] = 0;
|
||||
|
|
@ -1196,7 +1206,7 @@ void func_800B28C8(void) {
|
|||
// be whether 'Begin' or 'Data' is selected. Not used for Battle.
|
||||
s8 temp_v0 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
// Determine which game mode was selected based on the number of players and the row selected on the main menu
|
||||
switch (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) {
|
||||
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
|
||||
case GRAND_PRIX:
|
||||
gCCSelection = temp_v0;
|
||||
gPlaceItemBoxes = 1;
|
||||
|
|
@ -1238,7 +1248,7 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
if (!func_800B4520()) {
|
||||
switch (gMainMenuSelectionDepth) {
|
||||
case BLANK_MAIN_MENU: {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
break;
|
||||
}
|
||||
case PLAYER_NUM_SELECTION: {
|
||||
|
|
@ -1272,32 +1282,32 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
func_800CA330(0x19);
|
||||
D_8018EDE0 = 1;
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & A_BUTTON) {
|
||||
// L800B2C00
|
||||
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & CONT_L) {
|
||||
// L800B2C58
|
||||
gMainMenuSelectionDepth = OPTIONS_SELECTION;
|
||||
func_8009E280();
|
||||
play_sound2(SOUND_MENU_OPTION);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & CONT_R) {
|
||||
gMainMenuSelectionDepth = DATA_SELECTION;
|
||||
func_8009E258();
|
||||
play_sound2(SOUND_MENU_DATA);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GAME_MODE_SELECTION: {
|
||||
if (btnAndStick & D_JPAD) {
|
||||
if (D_800E86AC[gPlayerCount - 1] < D_800F2B58[gPlayerCount + 7]) {
|
||||
if (D_800E86AC[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) {
|
||||
D_800E86AC[gPlayerCount - 1] += 1;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
|
|
@ -1316,10 +1326,10 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
gMainMenuSelectionDepth = PLAYER_NUM_SELECTION;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & A_BUTTON) {
|
||||
// L800B2E3C
|
||||
switch (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) {
|
||||
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
|
||||
case 0:
|
||||
gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION;
|
||||
play_sound2(SOUND_MENU_GP);
|
||||
|
|
@ -1343,9 +1353,9 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
// L800B2F04
|
||||
func_800B44AC();
|
||||
gMenuTimingCounter = 0;
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -1355,8 +1365,8 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
gMenuTimingCounter++;
|
||||
if ((gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) {
|
||||
// L800B2FAC
|
||||
if (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 0 ||
|
||||
gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 2) {
|
||||
if (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 0 ||
|
||||
gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 2) {
|
||||
play_sound2(SOUND_MENU_SELECT_LEVEL);
|
||||
}
|
||||
}
|
||||
|
|
@ -1372,12 +1382,12 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
if (btnAndStick & D_JPAD) {
|
||||
sp24 = false;
|
||||
if (func_800B555C()) {
|
||||
if (sp28 < D_800F2B60[gPlayerCount + 4][D_800E86AC[gPlayerCount - 1] + 1]) {
|
||||
if (sp28 < gGameModePlayerColumnExtra[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1] + 1]) {
|
||||
sp24 = true;
|
||||
}
|
||||
} else {
|
||||
// L800B30D4
|
||||
if (sp28 < D_800F2B60[gPlayerCount][D_800E86AC[gPlayerCount - 1] + 1]) {
|
||||
if (sp28 < gGameModePlayerColumnDefault[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1] + 1]) {
|
||||
sp24 = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1394,7 +1404,7 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & A_BUTTON) {
|
||||
// L800B31DC
|
||||
func_800B44AC();
|
||||
|
|
@ -1406,10 +1416,10 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
play_sound2(SOUND_MENU_SELECT);
|
||||
gMenuTimingCounter = 0;
|
||||
}
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else {
|
||||
// L800B3294
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -1420,7 +1430,7 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
}
|
||||
// L800B330C
|
||||
if (btnAndStick & B_BUTTON) {
|
||||
switch (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) {
|
||||
switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
|
|
@ -1435,25 +1445,25 @@ void main_menu_act(struct Controller* controller, u16 arg1) {
|
|||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
gMenuTimingCounter = 0;
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else if (btnAndStick & A_BUTTON) {
|
||||
// L800B33D8
|
||||
func_8009E1C0();
|
||||
play_sound2(SOUND_MENU_OK_CLICKED);
|
||||
func_800B28C8();
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
} else {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OPTIONS_SELECTION:
|
||||
case DATA_SELECTION: {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]];
|
||||
newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1693,7 +1703,7 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) {
|
|||
}
|
||||
|
||||
D_800DC540 = gCupSelection;
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCupCourseSelection];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup];
|
||||
if ((buttonAndStickPress & B_BUTTON) != 0) {
|
||||
func_8009E208();
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
|
|
@ -1704,7 +1714,7 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) {
|
|||
} else {
|
||||
D_8018EDEC = 3;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][CUP_COURSE_ONE];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][COURSE_ONE];
|
||||
gMenuTimingCounter = 0;
|
||||
}
|
||||
func_800B44AC();
|
||||
|
|
@ -1712,18 +1722,18 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) {
|
|||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
if (((buttonAndStickPress & D_JPAD) != 0) && (gCupCourseSelection < CUP_COURSE_FOUR)) {
|
||||
++gCupCourseSelection;
|
||||
if (((buttonAndStickPress & D_JPAD) != 0) && (gCourseIndexInCup < COURSE_FOUR)) {
|
||||
++gCourseIndexInCup;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
}
|
||||
if (((buttonAndStickPress & U_JPAD) != 0) && (gCupCourseSelection > CUP_COURSE_ONE)) {
|
||||
--gCupCourseSelection;
|
||||
if (((buttonAndStickPress & U_JPAD) != 0) && (gCourseIndexInCup > COURSE_ONE)) {
|
||||
--gCourseIndexInCup;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
}
|
||||
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCupCourseSelection];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup];
|
||||
if ((buttonAndStickPress & B_BUTTON) != 0) {
|
||||
if (D_8018EDEC == 2) {
|
||||
D_8018EDEC = 1;
|
||||
|
|
@ -1814,7 +1824,7 @@ void func_800B3F74(s32 menuSelection) {
|
|||
gIsMirrorMode = 0;
|
||||
gEnableDebugMode = DEBUG_MODE;
|
||||
gCupSelection = MUSHROOM_CUP;
|
||||
gCupCourseSelection = 0;
|
||||
gCourseIndexInCup = 0;
|
||||
gTimeTrialDataCourseIndex = 0;
|
||||
if (gPlayerCount <= 0) {
|
||||
gPlayerCount = 1;
|
||||
|
|
@ -1822,7 +1832,7 @@ void func_800B3F74(s32 menuSelection) {
|
|||
if (gPlayerCount >= 5) {
|
||||
gPlayerCount = 4;
|
||||
}
|
||||
D_8018EDF1 = D_800F2BDC[gPlayerCount + 3];
|
||||
D_8018EDF1 = D_800F2BE0[gPlayerCount - 1];
|
||||
func_800CA008(0, 0);
|
||||
func_800C8EAC(1);
|
||||
D_8018EDFC = 0;
|
||||
|
|
@ -1884,7 +1894,7 @@ void func_800B3F74(s32 menuSelection) {
|
|||
case 0: {
|
||||
D_8018EDEE = 1;
|
||||
if (gGamestate == 0) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) {
|
||||
if (i < gPlayerCount) {
|
||||
gCharacterGridSelections[i] = i + 1;
|
||||
} else {
|
||||
|
|
@ -1942,7 +1952,7 @@ void func_800B3F74(s32 menuSelection) {
|
|||
play_sound2(SOUND_MENU_SELECT_MAP);
|
||||
D_8018EE0A = 0;
|
||||
if (gModeSelection == GRAND_PRIX) {
|
||||
gCupCourseSelection = 0;
|
||||
gCourseIndexInCup = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gGPPointsByCharacterId); i++) {
|
||||
|
|
@ -1962,7 +1972,7 @@ void func_800B44BC(void) {
|
|||
UNUSED u32 pad;
|
||||
union GameModePack pack;
|
||||
|
||||
pack = D_800F2BE4;
|
||||
pack = gSoundMenuPack;
|
||||
if ((gSoundMode == SOUND_STEREO) || (gSoundMode == SOUND_HEADPHONES) || (gSoundMode == SOUND_MONO)) {
|
||||
func_800C3448(pack.modes[gSoundMode] | 0xE0000000);
|
||||
}
|
||||
|
|
|
|||
12
src/menus.h
12
src/menus.h
|
|
@ -70,7 +70,7 @@ extern s32 gMenuDelayTimer;
|
|||
extern s8 D_8018EE08;
|
||||
extern s8 gCupSelection;
|
||||
extern s8 D_8018EE0A;
|
||||
extern s8 gCupCourseSelection;
|
||||
extern s8 gCourseIndexInCup;
|
||||
extern s8 D_8018EE0C;
|
||||
extern struct_8018EE10_entry D_8018EE10[];
|
||||
|
||||
|
|
@ -89,14 +89,14 @@ extern u32 sVIGammaOffDitherOn;
|
|||
|
||||
extern const s8 D_800F2B50[5];
|
||||
extern const s8 D_800F2B58[5];
|
||||
extern const s8 D_800F2B60[5][3];
|
||||
extern const s32 gGameModeFromNumPlayersAndRowSelection[5][3];
|
||||
extern const s8 gPlayerModeSelection[];
|
||||
extern const s8 gGameModePlayerColumnDefault[][3];
|
||||
extern const s8 gGameModePlayerColumnExtra[][3];
|
||||
extern const s32 gGameModePlayerSelection[][3];
|
||||
extern const s8 D_800F2BAC[8];
|
||||
extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP];
|
||||
|
||||
extern const s8 D_800F2BDC[8];
|
||||
|
||||
extern const union GameModePack D_800F2BE4;
|
||||
extern const union GameModePack gSoundMenuPack;
|
||||
|
||||
// end of menus.c variables
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ void network_cup_vote(uint32_t course) {
|
|||
void set_course(const char* data) {
|
||||
if (data != NULL) {
|
||||
gCupSelection = data[0];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][CUP_COURSE_ONE];
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][COURSE_ONE];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ void networking_start_session(const char* data) {
|
|||
gGamestateNext = RACING;
|
||||
gCCSelection = CC_150;
|
||||
// gCupSelection = FLOWER_CUP;
|
||||
gCupCourseSelection = CUP_COURSE_ONE;
|
||||
gCourseIndexInCup = COURSE_ONE;
|
||||
gScreenModeSelection = SCREEN_MODE_1P;
|
||||
gModeSelection = GRAND_PRIX;
|
||||
gPlayerCount = 1;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,24 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
NO_REORDER OSThread* __osThreadTail = NULL;
|
||||
NO_REORDER u32 __osTest = -1;
|
||||
NO_REORDER OSThread* __osRunQueue = (OSThread*) &__osThreadTail;
|
||||
NO_REORDER OSThread* __osActiveQueue = (OSThread*) &__osThreadTail;
|
||||
OSThread* __osRunningThread = NULL;
|
||||
OSThread* __osFaultedThread = NULL;
|
||||
struct __osThreadTail __osThreadTail = { NULL, -1 };
|
||||
OSThread* __osRunQueue = (OSThread*) &__osThreadTail;
|
||||
OSThread* __osActiveQueue = (OSThread*) &__osThreadTail;
|
||||
OSThread* __osRunningThread = { 0 };
|
||||
OSThread* __osFaultedThread = { 0 };
|
||||
|
||||
void __osDequeueThread(OSThread** queue, OSThread* thread) {
|
||||
register OSThread** a2;
|
||||
register OSThread* a3;
|
||||
a2 = queue;
|
||||
a3 = *a2;
|
||||
while (a3 != NULL) {
|
||||
if (a3 == thread) {
|
||||
*a2 = thread->next;
|
||||
void __osDequeueThread(register OSThread** queue, register OSThread* t) {
|
||||
register OSThread* pred;
|
||||
register OSThread* succ;
|
||||
|
||||
pred = (OSThread*) queue;
|
||||
succ = pred->next;
|
||||
|
||||
while (succ != NULL) {
|
||||
if (succ == t) {
|
||||
pred->next = t->next;
|
||||
return;
|
||||
}
|
||||
a2 = &a3->next;
|
||||
a3 = *a2;
|
||||
pred = succ;
|
||||
succ = pred->next;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@ void __osDevMgrMain(void* args) {
|
|||
break;
|
||||
case 15:
|
||||
osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK);
|
||||
ret = sp34->epiDmaCallback(mb->piHandle, OS_READ, mb->devAddr, mb->dramAddr, mb->size);
|
||||
ret = sp34->edma_func(mb->piHandle, OS_READ, mb->devAddr, mb->dramAddr, mb->size);
|
||||
break;
|
||||
case 16:
|
||||
osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK);
|
||||
ret = sp34->epiDmaCallback(mb->piHandle, OS_WRITE, mb->devAddr, mb->dramAddr, mb->size);
|
||||
ret = sp34->edma_func(mb->piHandle, OS_WRITE, mb->devAddr, mb->dramAddr, mb->size);
|
||||
break;
|
||||
case 10:
|
||||
osSendMesg(mb->hdr.retQueue, mb, OS_MESG_NOBLOCK);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ extern u8 leoDiskStack[OS_PIM_STACKSIZE]; // technically should have a OS_LEO_ST
|
|||
|
||||
extern u32 D_800EA5F0;
|
||||
|
||||
u8 leoDiskStack[OS_PIM_STACKSIZE]; // technically should have a OS_LEO_STACKSIZE or something..
|
||||
|
||||
s32 __osLeoInterrupt() {
|
||||
u32 stat;
|
||||
volatile u32 pistat;
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ void __osViSwapContext() {
|
|||
} else {
|
||||
s1->x.scale = s0->comRegs.xScale;
|
||||
}
|
||||
if (s1->state & 4) {
|
||||
if (s1->unk00 & 4) {
|
||||
sp34 = (u32) (s0->fldRegs[field].yScale & 0xfff);
|
||||
s1->y.scale = s1->y.factor * sp34;
|
||||
s1->y.scale |= s0->fldRegs[field].yScale & ~0xfff;
|
||||
s1->unk2c = s1->unk24 * sp34;
|
||||
s1->unk2c |= s0->fldRegs[field].yScale & ~0xfff;
|
||||
} else {
|
||||
s1->y.scale = s0->fldRegs[field].yScale;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,8 +149,8 @@ s32 __osPfsReleasePages(OSPfs* pfs, __OSInode* inode, u8 start_page, u16* sum, u
|
|||
s32 __osBlockSum(OSPfs* pfs, u8 page_no, u16* sum, u8 bank);
|
||||
s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer);
|
||||
s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int force);
|
||||
void __osContGetInitData(u8* pattern, OSContStatus* data);
|
||||
void __osPackRequestData(u8 cmd);
|
||||
void __osContGetInitData(u8* bitpattern, OSContStatus* status);
|
||||
void __osPackRequestData(u8 command);
|
||||
void __osPfsRequestData(u8 cmd);
|
||||
void __osPfsGetInitData(u8* pattern, OSContStatus* data);
|
||||
u8 __osContAddressCrc(u16 addr);
|
||||
|
|
|
|||
|
|
@ -1,185 +0,0 @@
|
|||
#include "libultra_internal.h"
|
||||
#include <PR/rcp.h>
|
||||
#include "bstring.h"
|
||||
#include "piint.h"
|
||||
#include "osint.h"
|
||||
|
||||
u8 leoDiskStack[OS_PIM_STACKSIZE]; // technically should have a OS_LEO_STACKSIZE or something..
|
||||
|
||||
#ifdef VERSION_SH
|
||||
|
||||
//! @todo so many magic constants :'(
|
||||
static void __osLeoResume(void);
|
||||
static void __osLeoAbnormalResume(void);
|
||||
|
||||
s32 __osLeoInterrupt() {
|
||||
u32 stat;
|
||||
volatile u32 pi_stat;
|
||||
u32 bm_stat;
|
||||
__OSTranxInfo* info;
|
||||
__OSBlockInfo* blockInfo;
|
||||
stat = 0;
|
||||
info = &__osDiskHandle->transferInfo;
|
||||
blockInfo = &info->block[info->blockNum];
|
||||
pi_stat = IO_READ(PI_STATUS_REG);
|
||||
if (pi_stat & PI_STATUS_DMA_BUSY) {
|
||||
__OSGlobalIntMask = __OSGlobalIntMask & ~SR_IBIT4; // cartridge interrupt
|
||||
blockInfo->errStatus = LEO_ERROR_29;
|
||||
__osLeoResume();
|
||||
return 1;
|
||||
}
|
||||
WAIT_ON_IOBUSY(pi_stat);
|
||||
stat = IO_READ(LEO_STATUS);
|
||||
if (stat & LEO_STATUS_MECHANIC_INTERRUPT) {
|
||||
WAIT_ON_IOBUSY(pi_stat);
|
||||
IO_WRITE(LEO_BM_CTL, info->bmCtlShadow | LEO_BM_CTL_CLR_MECHANIC_INTR);
|
||||
blockInfo->errStatus = LEO_ERROR_GOOD;
|
||||
return 0;
|
||||
}
|
||||
if (info->cmdType == LEO_CMD_TYPE_2) {
|
||||
return 1;
|
||||
}
|
||||
if (stat & LEO_STATUS_BUFFER_MANAGER_ERROR) {
|
||||
WAIT_ON_IOBUSY(pi_stat);
|
||||
stat = IO_READ(LEO_STATUS);
|
||||
blockInfo->errStatus = LEO_ERROR_22;
|
||||
__osLeoResume();
|
||||
IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR);
|
||||
__OSGlobalIntMask |= OS_IM_PI;
|
||||
return 1;
|
||||
}
|
||||
if (info->cmdType == LEO_CMD_TYPE_1) {
|
||||
if ((stat & LEO_STATUS_DATA_REQUEST) == 0) {
|
||||
if (info->sectorNum + 1 != info->transferMode * 85) {
|
||||
blockInfo->errStatus = LEO_ERROR_24;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR);
|
||||
__OSGlobalIntMask |= OS_IM_PI;
|
||||
blockInfo->errStatus = LEO_ERROR_GOOD;
|
||||
__osLeoResume();
|
||||
return 1;
|
||||
}
|
||||
blockInfo->dramAddr = (void*) ((u32) blockInfo->dramAddr + blockInfo->sectorSize);
|
||||
info->sectorNum++;
|
||||
osEPiRawStartDma(__osDiskHandle, OS_WRITE, LEO_SECTOR_BUFF, blockInfo->dramAddr, blockInfo->sectorSize);
|
||||
return 1;
|
||||
}
|
||||
if (info->cmdType == LEO_CMD_TYPE_0) {
|
||||
if (info->transferMode == LEO_SECTOR_MODE) {
|
||||
if ((s32) blockInfo->C1ErrNum + 17 < info->sectorNum) {
|
||||
blockInfo->errStatus = LEO_ERROR_GOOD;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
if ((stat & LEO_STATUS_DATA_REQUEST) == 0) {
|
||||
blockInfo->errStatus = LEO_ERROR_23;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
blockInfo->dramAddr = (void*) ((u32) blockInfo->dramAddr + blockInfo->sectorSize);
|
||||
}
|
||||
bm_stat = IO_READ(LEO_BM_STATUS);
|
||||
if ((bm_stat & LEO_BM_STATUS_C1SINGLE && bm_stat & LEO_BM_STATUS_C1DOUBLE) || bm_stat & LEO_BM_STATUS_MICRO) {
|
||||
if (blockInfo->C1ErrNum > 3) {
|
||||
if (info->transferMode != LEO_SECTOR_MODE || info->sectorNum > 0x52) {
|
||||
blockInfo->errStatus = LEO_ERROR_23;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
int errNum = blockInfo->C1ErrNum;
|
||||
blockInfo->C1ErrSector[errNum] = info->sectorNum + 1;
|
||||
}
|
||||
blockInfo->C1ErrNum++;
|
||||
}
|
||||
if (stat & LEO_STATUS_C2_TRANSFER) {
|
||||
if (info->sectorNum != 87) {
|
||||
blockInfo->errStatus = LEO_ERROR_24;
|
||||
__osLeoAbnormalResume();
|
||||
}
|
||||
if (info->transferMode == LEO_TRACK_MODE && info->blockNum == 0) {
|
||||
info->blockNum = 1;
|
||||
info->sectorNum = -1;
|
||||
info->block[1].dramAddr = (void*) ((u32) info->block[1].dramAddr - info->block[1].sectorSize);
|
||||
|
||||
blockInfo->errStatus = LEO_ERROR_22;
|
||||
} else {
|
||||
IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR);
|
||||
__OSGlobalIntMask |= OS_IM_PI;
|
||||
info->cmdType = LEO_CMD_TYPE_2;
|
||||
blockInfo->errStatus = LEO_ERROR_GOOD;
|
||||
}
|
||||
osEPiRawStartDma(__osDiskHandle, OS_READ, LEO_C2_BUFF, blockInfo->C2Addr, blockInfo->sectorSize * 4);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (info->sectorNum == -1 && info->transferMode == LEO_TRACK_MODE && info->blockNum == 1) {
|
||||
__OSBlockInfo* bptr = &info->block[0];
|
||||
if (bptr->C1ErrNum == 0) {
|
||||
if (((u32*) bptr->C2Addr)[0] | ((u32*) bptr->C2Addr)[1] | ((u32*) bptr->C2Addr)[2] |
|
||||
((u32*) bptr->C2Addr)[3]) {
|
||||
bptr->errStatus = LEO_ERROR_24;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
bptr->errStatus = 0;
|
||||
__osLeoResume();
|
||||
}
|
||||
info->sectorNum++;
|
||||
if (stat & LEO_STATUS_DATA_REQUEST) {
|
||||
if (info->sectorNum > 0x54) {
|
||||
blockInfo->errStatus = LEO_ERROR_24;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
osEPiRawStartDma(__osDiskHandle, 0, LEO_SECTOR_BUFF, blockInfo->dramAddr, blockInfo->sectorSize);
|
||||
blockInfo->errStatus = LEO_ERROR_GOOD;
|
||||
return 1;
|
||||
}
|
||||
if (info->sectorNum <= 0x54) {
|
||||
blockInfo->errStatus = LEO_ERROR_24;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
blockInfo->errStatus = LEO_ERROR_4;
|
||||
__osLeoAbnormalResume();
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void __osLeoAbnormalResume(void) {
|
||||
__OSTranxInfo* info;
|
||||
u32 pi_stat;
|
||||
info = &__osDiskHandle->transferInfo;
|
||||
WAIT_ON_IOBUSY(pi_stat);
|
||||
IO_WRITE(LEO_BM_CTL, info->bmCtlShadow | LEO_BM_CTL_RESET);
|
||||
WAIT_ON_IOBUSY(pi_stat);
|
||||
IO_WRITE(LEO_BM_CTL, info->bmCtlShadow);
|
||||
__osLeoResume();
|
||||
IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR);
|
||||
__OSGlobalIntMask |= OS_IM_PI;
|
||||
}
|
||||
|
||||
static void __osLeoResume(void) {
|
||||
__OSEventState* es;
|
||||
OSMesgQueue* mq;
|
||||
s32 last;
|
||||
es = &__osEventStateTab[OS_EVENT_PI];
|
||||
mq = es->messageQueue;
|
||||
if (mq == NULL || MQ_IS_FULL(mq)) {
|
||||
return;
|
||||
}
|
||||
last = (mq->first + mq->validCount) % mq->msgCount;
|
||||
mq->msg[last] = es->message;
|
||||
mq->validCount++;
|
||||
if (mq->mtqueue->next != NULL) {
|
||||
__osEnqueueThread(&D_80334898, __osPopThread(&mq->mtqueue));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -10,14 +10,10 @@ typedef struct __OSEventState {
|
|||
} __OSEventState;
|
||||
#endif
|
||||
|
||||
typedef struct // __osThreadTail
|
||||
{
|
||||
/* 0x00 */ OSThread* next;
|
||||
/* 0x04 */ OSPri priority;
|
||||
/* 0x08 */ OSThread* queue;
|
||||
/* 0x0c */ OSThread* tlnext;
|
||||
|
||||
} OSThreadTail;
|
||||
extern struct __osThreadTail {
|
||||
OSThread* next;
|
||||
OSPri priority;
|
||||
} __osThreadTail;
|
||||
|
||||
/*
|
||||
* This define is needed because the original definitions in __osDequeueThread.c are declared
|
||||
|
|
@ -35,10 +31,10 @@ typedef struct {
|
|||
} OSThread_ListHead;
|
||||
|
||||
// Original OSThread_ListHead definitions
|
||||
extern OSThread* __osThreadTail;
|
||||
extern OSThread* __osActiveQueue;
|
||||
extern OSThread* __osRunQueue;
|
||||
extern OSThread* __osRunningThread;
|
||||
extern OSThread* __osActiveQueue;
|
||||
extern OSThread* __osFaultedThread;
|
||||
extern OSThread* __osRunQueue;
|
||||
|
||||
// Original EEPROM definitions
|
||||
extern u32 D_80365E00[15];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "osContInternal.h"
|
||||
#include "controller.h"
|
||||
|
||||
void __osPackRequestData(u8);
|
||||
void __osContGetInitData(u8*, OSContStatus*);
|
||||
|
|
@ -9,6 +9,7 @@ u32 _osContInitialized = 0;
|
|||
extern u64 osClockRate;
|
||||
|
||||
// these probably belong in EEPROMlongread or something
|
||||
ALIGNED16 OSPifRam __osContPifRam;
|
||||
u8 __osContLastCmd;
|
||||
u8 _osContNumControllers;
|
||||
OSTimer D_80196548;
|
||||
|
|
@ -34,9 +35,9 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* status) {
|
|||
//! @todo figure out what it means
|
||||
_osContNumControllers = 4;
|
||||
__osPackRequestData(0);
|
||||
ret = __osSiRawStartDma(OS_WRITE, _osContCmdBuf);
|
||||
ret = __osSiRawStartDma(OS_WRITE, __osContPifRam.ramarray);
|
||||
osRecvMesg(mq, &mesg, OS_MESG_BLOCK);
|
||||
ret = __osSiRawStartDma(OS_READ, _osContCmdBuf);
|
||||
ret = __osSiRawStartDma(OS_READ, __osContPifRam.ramarray);
|
||||
osRecvMesg(mq, &mesg, OS_MESG_BLOCK);
|
||||
__osContGetInitData(bitpattern, status);
|
||||
__osContLastCmd = 0;
|
||||
|
|
@ -45,48 +46,49 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* status) {
|
|||
return ret;
|
||||
}
|
||||
void __osContGetInitData(u8* bitpattern, OSContStatus* status) {
|
||||
OSContPackedRequest* cmdBufPtr;
|
||||
OSContPackedRequest response;
|
||||
u8* ptr;
|
||||
__OSContRequesFormat response;
|
||||
s32 i;
|
||||
u8 sp7;
|
||||
u8 bits;
|
||||
|
||||
sp7 = 0;
|
||||
cmdBufPtr = &(_osContCmdBuf[0].request);
|
||||
for (i = 0; i < _osContNumControllers; i++, cmdBufPtr++, status++) {
|
||||
response = *(OSContPackedRequest*) cmdBufPtr;
|
||||
status->errnum = (response.rxLen & 0xc0) >> 4;
|
||||
bits = 0;
|
||||
ptr = (u8*) __osContPifRam.ramarray;
|
||||
for (i = 0; i < _osContNumControllers; i++, ptr += sizeof(response), status++) {
|
||||
response = *((__OSContRequesFormat*) (ptr));
|
||||
status->errnum = CHNL_ERR(response);
|
||||
if (status->errnum == 0) {
|
||||
status->type = response.data2 << 8 | response.data1;
|
||||
status->status = response.data3;
|
||||
status->type = response.typel << 8 | response.typeh;
|
||||
status->status = response.status;
|
||||
|
||||
sp7 |= 1 << i;
|
||||
bits |= 1 << i;
|
||||
}
|
||||
}
|
||||
*bitpattern = sp7;
|
||||
|
||||
*bitpattern = bits;
|
||||
}
|
||||
void __osPackRequestData(u8 command) {
|
||||
OSContPackedRequest* cmdBufPtr;
|
||||
OSContPackedRequest request;
|
||||
u8* ptr;
|
||||
__OSContRequesFormat requestHeader;
|
||||
s32 i;
|
||||
|
||||
// some kind of weird zeroing code
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
*((u32*) &_osContCmdBuf + i) = 0;
|
||||
for (i = 0; i < ARRLEN(__osContPifRam.ramarray) + 1; i++) {
|
||||
__osContPifRam.ramarray[i] = 0;
|
||||
}
|
||||
|
||||
_osContPifCtrl = 1;
|
||||
cmdBufPtr = &_osContCmdBuf[0].request;
|
||||
request.padOrEnd = 255;
|
||||
request.txLen = 1;
|
||||
request.rxLen = 3;
|
||||
request.command = command;
|
||||
request.data1 = 255;
|
||||
request.data2 = 255;
|
||||
request.data3 = 255;
|
||||
request.data4 = 255;
|
||||
__osContPifRam.pifstatus = CONT_CMD_EXE;
|
||||
ptr = (u8*) __osContPifRam.ramarray;
|
||||
requestHeader.dummy = CONT_CMD_NOP;
|
||||
requestHeader.txsize = CONT_CMD_RESET_TX;
|
||||
requestHeader.rxsize = CONT_CMD_RESET_RX;
|
||||
requestHeader.cmd = command;
|
||||
requestHeader.typeh = CONT_CMD_NOP;
|
||||
requestHeader.typel = CONT_CMD_NOP;
|
||||
requestHeader.status = CONT_CMD_NOP;
|
||||
requestHeader.dummy1 = CONT_CMD_NOP;
|
||||
|
||||
for (i = 0; i < _osContNumControllers; i++) {
|
||||
*cmdBufPtr++ = request;
|
||||
*(__OSContRequesFormat*) ptr = requestHeader;
|
||||
ptr += sizeof(requestHeader);
|
||||
}
|
||||
cmdBufPtr->padOrEnd = 254;
|
||||
*ptr = CONT_CMD_END;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,43 +0,0 @@
|
|||
#ifndef _ULTRA64_CONTROLLER_INTERNAL_H_
|
||||
#define _ULTRA64_CONTROLLER_INTERNAL_H_
|
||||
|
||||
typedef struct {
|
||||
u8 padOrEnd;
|
||||
u8 txLen;
|
||||
u8 rxLen; // includes errno
|
||||
u8 command;
|
||||
u16 button;
|
||||
s8 rawStickX;
|
||||
s8 rawStickY;
|
||||
} OSContPackedRead;
|
||||
|
||||
typedef struct {
|
||||
u8 padOrEnd;
|
||||
u8 txLen;
|
||||
u8 rxLen;
|
||||
u8 command;
|
||||
u8 data1;
|
||||
u8 data2;
|
||||
u8 data3;
|
||||
u8 data4;
|
||||
} OSContPackedRequest;
|
||||
|
||||
typedef union {
|
||||
OSContPackedRead read;
|
||||
OSContPackedRequest request;
|
||||
u32 as_raw[2];
|
||||
} OSContPackedStruct;
|
||||
|
||||
#ifdef AVOID_UB
|
||||
// Fix the OSContPackedStruct array
|
||||
extern OSContPackedStruct _osContCmdBuf[8];
|
||||
|
||||
// And fix the last element
|
||||
#define _osContPifCtrl _osContCmdBuf[7].as_raw[1]
|
||||
#else
|
||||
// Original OSContPackedStruct definitions
|
||||
extern OSContPackedStruct _osContCmdBuf[7];
|
||||
extern u32 _osContPifCtrl;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,16 +1,7 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "osContInternal.h"
|
||||
#include "controller.h"
|
||||
#include <macros.h>
|
||||
|
||||
#ifndef AVOID_UB
|
||||
ALIGNED8 OSContPackedStruct _osContCmdBuf[7];
|
||||
UNUSED static u32 unused; // padding between these two variables
|
||||
u32 _osContPifCtrl;
|
||||
#else
|
||||
// Reordered gcc vars above will disturb the aliasing done to access all 8 members of this array, hence AVOID_UB.
|
||||
ALIGNED8 OSContPackedStruct _osContCmdBuf[8];
|
||||
#endif
|
||||
|
||||
extern u8 __osContLastCmd;
|
||||
extern u8 _osContNumControllers;
|
||||
|
||||
|
|
@ -18,56 +9,66 @@ void __osPackReadData(void);
|
|||
s32 osContStartReadData(OSMesgQueue* mesg) {
|
||||
s32 ret = 0;
|
||||
s32 i;
|
||||
|
||||
__osSiGetAccess();
|
||||
if (__osContLastCmd != 1) {
|
||||
|
||||
if (__osContLastCmd != CONT_CMD_READ_BUTTON) {
|
||||
__osPackReadData();
|
||||
ret = __osSiRawStartDma(OS_WRITE, _osContCmdBuf);
|
||||
ret = __osSiRawStartDma(OS_WRITE, __osContPifRam.ramarray);
|
||||
osRecvMesg(mesg, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
*((u32*) &_osContCmdBuf + i) = 255;
|
||||
|
||||
for (i = 0; i < ARRLEN(__osContPifRam.ramarray) + 1; i++) {
|
||||
__osContPifRam.ramarray[i] = CONT_CMD_NOP;
|
||||
}
|
||||
|
||||
_osContPifCtrl = 0;
|
||||
ret = __osSiRawStartDma(OS_READ, _osContCmdBuf);
|
||||
__osContLastCmd = 1;
|
||||
__osContPifRam.pifstatus = 0;
|
||||
ret = __osSiRawStartDma(OS_READ, __osContPifRam.ramarray);
|
||||
__osContLastCmd = CONT_CMD_READ_BUTTON;
|
||||
|
||||
__osSiRelAccess();
|
||||
|
||||
return ret;
|
||||
}
|
||||
void osContGetReadData(OSContPad* pad) {
|
||||
OSContPackedRead* cmdBufPtr;
|
||||
OSContPackedRead response;
|
||||
u8* ptr = (u8*) __osContPifRam.ramarray;
|
||||
__OSContReadFormat readformat;
|
||||
s32 i;
|
||||
cmdBufPtr = &_osContCmdBuf[0].read;
|
||||
for (i = 0; i < _osContNumControllers; i++, cmdBufPtr++, pad++) {
|
||||
response = *cmdBufPtr;
|
||||
pad->errno = (response.rxLen & 0xc0) >> 4;
|
||||
if (pad->errno == 0) {
|
||||
pad->button = response.button;
|
||||
pad->stick_x = response.rawStickX;
|
||||
pad->stick_y = response.rawStickY;
|
||||
}
|
||||
};
|
||||
}
|
||||
void __osPackReadData() {
|
||||
OSContPackedRead* cmdBufPtr;
|
||||
OSContPackedRead request;
|
||||
s32 i;
|
||||
cmdBufPtr = &_osContCmdBuf[0].read;
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
*((u32*) &_osContCmdBuf + i) = 0;
|
||||
|
||||
for (i = 0; i < _osContNumControllers; i++, ptr += sizeof(readformat), pad++) {
|
||||
readformat = *(__OSContReadFormat*) ptr;
|
||||
pad->errno = CHNL_ERR(readformat);
|
||||
|
||||
if (pad->errno != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
_osContPifCtrl = 1;
|
||||
request.padOrEnd = 255;
|
||||
request.txLen = 1;
|
||||
request.rxLen = 4;
|
||||
request.command = 1;
|
||||
request.button = 65535;
|
||||
request.rawStickX = -1;
|
||||
request.rawStickY = -1;
|
||||
for (i = 0; i < _osContNumControllers; i++) {
|
||||
*cmdBufPtr++ = request;
|
||||
pad->button = readformat.button;
|
||||
pad->stick_x = readformat.stick_x;
|
||||
pad->stick_y = readformat.stick_y;
|
||||
}
|
||||
cmdBufPtr->padOrEnd = 254;
|
||||
}
|
||||
void __osPackReadData() {
|
||||
u8* ptr = (u8*) __osContPifRam.ramarray;
|
||||
__OSContReadFormat readformat;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRLEN(__osContPifRam.ramarray) + 1; i++) {
|
||||
__osContPifRam.ramarray[i] = 0;
|
||||
}
|
||||
|
||||
__osContPifRam.pifstatus = CONT_CMD_EXE;
|
||||
readformat.dummy = CONT_CMD_NOP;
|
||||
readformat.txsize = CONT_CMD_READ_BUTTON_TX;
|
||||
readformat.rxsize = CONT_CMD_READ_BUTTON_RX;
|
||||
readformat.cmd = CONT_CMD_READ_BUTTON;
|
||||
readformat.button = 0xFFFF;
|
||||
readformat.stick_x = -1;
|
||||
readformat.stick_y = -1;
|
||||
|
||||
for (i = 0; i < _osContNumControllers; i++) {
|
||||
*(__OSContReadFormat*) ptr = readformat;
|
||||
ptr += sizeof(readformat);
|
||||
}
|
||||
*ptr = CONT_CMD_END;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msgBuf, s32 count) {
|
||||
mq->mtqueue = (OSThread*) &__osThreadTail; //?
|
||||
mq->fullqueue = (OSThread*) &__osThreadTail;
|
||||
mq->mtqueue = (OSThread*) &__osThreadTail.next;
|
||||
mq->fullqueue = (OSThread*) &__osThreadTail.next;
|
||||
mq->validCount = 0;
|
||||
mq->first = 0;
|
||||
mq->msgCount = count;
|
||||
mq->msg = msgBuf;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC
|
|||
__osPiDevMgr.cmdQueue = cmdQ;
|
||||
__osPiDevMgr.eventQueue = &__osPiMesgQueue;
|
||||
__osPiDevMgr.accessQueue = &gOsPiMessageQueue;
|
||||
__osPiDevMgr.piDmaCallback = osPiRawStartDma;
|
||||
__osPiDevMgr.epiDmaCallback = osEPiRawStartDma;
|
||||
__osPiDevMgr.dma_func = osPiRawStartDma;
|
||||
__osPiDevMgr.edma_func = osEPiRawStartDma;
|
||||
osCreateThread(&piMgrThread, 0, __osDevMgrMain, (void*) &__osPiDevMgr, &piMgrStack[0x400], pri);
|
||||
osStartThread(&piMgrThread);
|
||||
__osRestoreInt(int_disabled);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) {
|
|||
ret = __osSiRawStartDma(OS_WRITE, &__osEepPifRam);
|
||||
osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(__osEepPifRam.ramarray) + 1; i++) {
|
||||
for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) {
|
||||
__osEepPifRam.ramarray[i] = CONT_CMD_NOP;
|
||||
}
|
||||
__osEepPifRam.pifstatus = 0;
|
||||
|
|
@ -66,7 +66,7 @@ void __osPackEepReadData(u8 address) {
|
|||
__OSContEepromFormat eepromformat;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(__osEepPifRam.ramarray) + 1; i++) {
|
||||
for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) {
|
||||
__osEepPifRam.ramarray[i] = CONT_CMD_NOP;
|
||||
}
|
||||
__osEepPifRam.pifstatus = CONT_CMD_EXE;
|
||||
|
|
@ -75,7 +75,7 @@ void __osPackEepReadData(u8 address) {
|
|||
eepromformat.rxsize = CONT_CMD_READ_EEPROM_RX;
|
||||
eepromformat.cmd = CONT_CMD_READ_EEPROM;
|
||||
eepromformat.address = address;
|
||||
for (i = 0; i < ARRAY_COUNT(eepromformat.data); i++) {
|
||||
for (i = 0; i < ARRLEN(eepromformat.data); i++) {
|
||||
eepromformat.data[i] = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "osContInternal.h"
|
||||
#include "controller.h"
|
||||
#include "macros.h"
|
||||
|
||||
|
|
@ -37,7 +36,7 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) {
|
|||
ret = __osSiRawStartDma(OS_WRITE, &__osEepPifRam);
|
||||
osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(__osEepPifRam.ramarray) + 1; i++) {
|
||||
for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) {
|
||||
__osEepPifRam.ramarray[i] = CONT_CMD_NOP;
|
||||
}
|
||||
|
||||
|
|
@ -61,7 +60,7 @@ void __osPackEepWriteData(u8 address, u8* buffer) {
|
|||
__OSContEepromFormat eepromformat;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(__osEepPifRam.ramarray) + 1; i++) {
|
||||
for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) {
|
||||
__osEepPifRam.ramarray[i] = CONT_CMD_NOP;
|
||||
}
|
||||
__osEepPifRam.pifstatus = CONT_CMD_EXE;
|
||||
|
|
@ -71,7 +70,7 @@ void __osPackEepWriteData(u8 address, u8* buffer) {
|
|||
eepromformat.cmd = CONT_CMD_WRITE_EEPROM;
|
||||
eepromformat.address = address;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(eepromformat.data); i++) {
|
||||
for (i = 0; i < ARRLEN(eepromformat.data); i++) {
|
||||
eepromformat.data[i] = *buffer++;
|
||||
}
|
||||
|
||||
|
|
@ -89,7 +88,7 @@ s32 __osEepStatus(OSMesgQueue* mq, OSContStatus* data) {
|
|||
u8* ptr = (u8*) __osEepPifRam.ramarray;
|
||||
__OSContRequesFormat requestformat;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(__osEepPifRam.ramarray) + 1; i++) {
|
||||
for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) {
|
||||
__osEepPifRam.ramarray[i] = 0;
|
||||
}
|
||||
__osEepPifRam.pifstatus = CONT_CMD_EXE;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ void osViSwapBuffer(void* vaddr) {
|
|||
u32 int_disabled = __osDisableInt();
|
||||
__osViNext->buffer = vaddr;
|
||||
//! @todo figure out what this flag means
|
||||
__osViNext->state |= 0x10;
|
||||
__osViNext->unk00 |= 0x10;
|
||||
__osRestoreInt(int_disabled);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -419,7 +419,7 @@ void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2) {
|
|||
}
|
||||
|
||||
void func_802B5D30(s16 arg0, s16 arg1, s32 arg2) {
|
||||
func_802B5D64(0x9000000, arg0, arg1, arg2);
|
||||
func_802B5D64((Lights1*) 0x9000000, arg0, arg1, arg2);
|
||||
}
|
||||
|
||||
void func_802B5D64(Lights1* addr, s16 arg1, s16 arg2, s32 arg3) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
// #define sins(x) gSineTable[(u16) (x) >> 4]
|
||||
// #define coss(x) gCosineTable[(u16) (x) >> 4]
|
||||
|
||||
// #define min(a, b) ((a) <= (b) ? (a) : (b))
|
||||
// #define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
|
||||
|
|
|
|||
|
|
@ -144,16 +144,16 @@ void func_8028E3A0(void) {
|
|||
|
||||
if (D_80150120) {
|
||||
|
||||
if (gCupCourseSelection == CUP_COURSE_FOUR) {
|
||||
if (gCourseIndexInCup == COURSE_FOUR) {
|
||||
gGotoMode = ENDING;
|
||||
} else {
|
||||
D_800DC544++;
|
||||
gCupCourseSelection++;
|
||||
gCourseIndexInCup++;
|
||||
gGotoMode = RACING;
|
||||
}
|
||||
} else {
|
||||
D_800DC544++;
|
||||
gCupCourseSelection++;
|
||||
gCourseIndexInCup++;
|
||||
gGotoMode = RACING;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ extern u32 isFlycam;
|
|||
void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1) {
|
||||
Player* player = arg1->player;
|
||||
Camera* camera = arg1->camera;
|
||||
s16 var_a3;
|
||||
s16 direction;
|
||||
s16 index;
|
||||
s16 sp1E;
|
||||
s16 temp_v0_3;
|
||||
|
|
@ -86,31 +86,31 @@ void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1)
|
|||
if (gIsMirrorMode) {
|
||||
rot = (u16) camera->rot[1];
|
||||
if (rot < 0x2000) {
|
||||
var_a3 = 2;
|
||||
direction = SOUTH;
|
||||
} else if (rot < 0x6000) {
|
||||
var_a3 = 3;
|
||||
direction = WEST;
|
||||
} else if (rot < 0xA000) {
|
||||
var_a3 = 0;
|
||||
direction = NORTH;
|
||||
} else if (rot < 0xE000) {
|
||||
var_a3 = 1;
|
||||
direction = EAST;
|
||||
} else {
|
||||
var_a3 = 2;
|
||||
direction = SOUTH;
|
||||
}
|
||||
} else {
|
||||
rot = (u16) camera->rot[1];
|
||||
if (rot < 0x2000) {
|
||||
var_a3 = 2;
|
||||
direction = SOUTH;
|
||||
} else if (rot < 0x6000) {
|
||||
var_a3 = 1;
|
||||
direction = EAST;
|
||||
} else if (rot < 0xA000) {
|
||||
var_a3 = 0;
|
||||
direction = NORTH;
|
||||
} else if (rot < 0xE000) {
|
||||
var_a3 = 3;
|
||||
direction = WEST;
|
||||
} else {
|
||||
var_a3 = 2;
|
||||
direction = SOUTH;
|
||||
}
|
||||
}
|
||||
arg1->playerDirection = var_a3;
|
||||
arg1->playerDirection = direction;
|
||||
|
||||
if (D_80152300[camera - camera1] == 1) {
|
||||
sp1E = get_track_section_id(camera->collision.meshIndexZX);
|
||||
|
|
@ -176,7 +176,7 @@ void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1)
|
|||
}
|
||||
|
||||
arg1->pathCounter = index;
|
||||
index = ((index - 1) * 4) + var_a3;
|
||||
index = ((index - 1) * 4) + direction;
|
||||
gSPDisplayList(gDisplayListHead++, addr[index]);
|
||||
|
||||
if (CVarGetInteger("gDisableLod", 0) == 1 && gCurrentCourseId == COURSE_BOWSER_CASTLE &&
|
||||
|
|
@ -530,7 +530,7 @@ void func_8029122C(struct UnkStruct_800DC5EC* arg0, s32 playerId) {
|
|||
void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
|
||||
UNUSED s32 pad;
|
||||
u16 sp22 = arg0->pathCounter;
|
||||
u16 temp_t0 = arg0->playerDirection;
|
||||
u16 playerDirection = arg0->playerDirection;
|
||||
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
|
|
@ -551,20 +551,20 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
|
|||
case 1:
|
||||
case 2:
|
||||
case 17:
|
||||
if ((temp_t0 == 2) || (temp_t0 == 1)) {
|
||||
if ((playerDirection == 2) || (playerDirection == 1)) {
|
||||
func_802911C4();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (temp_t0 != 0) {
|
||||
if (playerDirection != 0) {
|
||||
func_802911C4();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (temp_t0 == 0) {
|
||||
if (playerDirection == 0) {
|
||||
func_80291198();
|
||||
} else {
|
||||
if (temp_t0 == 1) {
|
||||
if (playerDirection == 1) {
|
||||
func_80291198();
|
||||
}
|
||||
func_802911C4();
|
||||
|
|
@ -572,7 +572,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
|
|||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
if ((temp_t0 == 2) || (temp_t0 == 3)) {
|
||||
if ((playerDirection == 2) || (playerDirection == 3)) {
|
||||
func_802911C4();
|
||||
} else {
|
||||
func_80291198();
|
||||
|
|
@ -580,37 +580,37 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
|
|||
break;
|
||||
case 7:
|
||||
func_80291198();
|
||||
if ((temp_t0 == 2) || (temp_t0 == 3)) {
|
||||
if ((playerDirection == 2) || (playerDirection == 3)) {
|
||||
func_802911C4();
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
case 9:
|
||||
if (temp_t0 != 1) {
|
||||
if (playerDirection != 1) {
|
||||
func_802911C4();
|
||||
}
|
||||
/* fallthrough */
|
||||
case 10:
|
||||
if (temp_t0 != 2) {
|
||||
if (playerDirection != 2) {
|
||||
func_80291198();
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if (temp_t0 == 0) {
|
||||
if (playerDirection == 0) {
|
||||
func_802911C4();
|
||||
func_80291198();
|
||||
} else if (temp_t0 == 3) {
|
||||
} else if (playerDirection == 3) {
|
||||
func_802911C4();
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
if ((temp_t0 == 0) || (temp_t0 == 3)) {
|
||||
if ((playerDirection == 0) || (playerDirection == 3)) {
|
||||
func_802911C4();
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
case 14:
|
||||
if (temp_t0 != 1) {
|
||||
if (playerDirection != 1) {
|
||||
case 15:
|
||||
case 16:
|
||||
func_802911C4();
|
||||
|
|
@ -712,7 +712,7 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC* arg0) {
|
|||
if (D_802B87BC > 255) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
render_course_segments(bowsers_castle_dls, arg0);
|
||||
render_course_segments((uintptr_t) bowsers_castle_dls, arg0);
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
|
|
@ -785,7 +785,7 @@ void render_yoshi_valley(struct UnkStruct_800DC5EC* arg0) {
|
|||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
render_course_segments(yoshi_valley_dls, arg0);
|
||||
render_course_segments((uintptr_t) d_course_yoshi_valley_dl_list, arg0);
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
}
|
||||
|
||||
|
|
@ -804,7 +804,7 @@ void render_frappe_snowland(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);
|
||||
render_course_segments(frappe_snowland_dls, arg0);
|
||||
render_course_segments((uintptr_t) d_course_frappe_snowland_dl_list, arg0);
|
||||
}
|
||||
|
||||
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC* arg0) {
|
||||
|
|
@ -824,7 +824,7 @@ void render_koopa_troopa_beach(struct UnkStruct_800DC5EC* arg0) {
|
|||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
// d_course_koopa_troopa_beach_packed_dl_9688
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07009688));
|
||||
render_course_segments(koopa_troopa_beach_dls1, arg0);
|
||||
render_course_segments(d_course_koopa_troopa_beach_dl_list1, arg0);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
|
|
@ -971,7 +971,7 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC* arg0) {
|
|||
void render_moo_moo_farm(struct UnkStruct_800DC5EC* arg0) {
|
||||
UNUSED s32 pad[13];
|
||||
s16 temp_s0 = arg0->pathCounter;
|
||||
s16 temp_s1 = arg0->playerDirection;
|
||||
s16 playerDirection = arg0->playerDirection;
|
||||
|
||||
func_802B5D64(D_800DC610, D_802B87D4, 0, 1);
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
|
@ -988,54 +988,51 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC* arg0) {
|
|||
render_course_segments(moo_moo_farm_dls, arg0);
|
||||
|
||||
if ((temp_s0 < 14) && (temp_s0 > 10)) {
|
||||
if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1)) {
|
||||
if ((playerDirection == 2) || (playerDirection == 3) || (playerDirection == 1)) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
|
||||
}
|
||||
|
||||
} else if (temp_s0 < 16) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
|
||||
} else if (temp_s0 < 19) {
|
||||
if (temp_s1 != 2) {
|
||||
if (playerDirection != 2)
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
|
||||
}
|
||||
|
||||
} else if (temp_s0 < 20) {
|
||||
if (temp_s1 == 0) {
|
||||
if (playerDirection == 0)
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
|
||||
}
|
||||
}
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
|
||||
if ((temp_s0 >= 16) && (temp_s0 < 24)) {
|
||||
if ((temp_s1 == 2) || (temp_s1 == 3)) {
|
||||
if ((playerDirection == 2) || (playerDirection == 3)) {
|
||||
// d_course_moo_moo_farm_packed_dl_5410
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07005410));
|
||||
}
|
||||
|
||||
} else if (temp_s0 < 9) {
|
||||
if (temp_s1 == 2) {
|
||||
if (playerDirection == 2) {
|
||||
// d_course_moo_moo_farm_packed_dl_5410
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07005410));
|
||||
}
|
||||
}
|
||||
if (temp_s0 < 4) {
|
||||
if (temp_s1 != 0) {
|
||||
if (playerDirection != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
|
||||
}
|
||||
|
||||
} else if (temp_s0 < 8) {
|
||||
if (temp_s1 == 2) {
|
||||
if (playerDirection == 2) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
|
||||
}
|
||||
|
||||
} else if (temp_s0 >= 22) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
|
||||
} else if (temp_s0 >= 18) {
|
||||
if ((temp_s1 == 0) || (temp_s1 == 3)) {
|
||||
if ((playerDirection == 0) || (playerDirection == 3))
|
||||
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
|
||||
}
|
||||
}
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
// d_course_moo_moo_farm_packed_dl_10C0
|
||||
|
|
@ -1056,7 +1053,7 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC* arg0) {
|
|||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
|
||||
|
||||
render_course_segments(toads_turnpike_dls, arg0);
|
||||
render_course_segments((uintptr_t) d_course_toads_turnpike_dl_list, arg0);
|
||||
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
|
||||
|
|
@ -1111,7 +1108,7 @@ void render_sherbet_land(struct UnkStruct_800DC5EC* arg0) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
render_course_segments(sherbet_land_dls, arg0);
|
||||
render_course_segments((uintptr_t) sherbet_land_dls, arg0);
|
||||
}
|
||||
|
||||
void render_rainbow_road(UNUSED struct UnkStruct_800DC5EC* arg0) {
|
||||
|
|
@ -1275,7 +1272,7 @@ void render_dks_jungle_parkway(struct UnkStruct_800DC5EC* arg0) {
|
|||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
render_course_segments(dks_jungle_parkway_dls, arg0);
|
||||
render_course_segments((uintptr_t) d_course_dks_jungle_parkway_unknown_dl_list, arg0);
|
||||
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4274,7 +4274,7 @@ void func_800557B4(s32 objectIndex, u32 arg1, u32 arg2) {
|
|||
object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
render_animated_model((Armature*) object->model, (Animation**) object->vertex,
|
||||
(s16) object->unk_0D8, (s16) object->itemDisplay);
|
||||
(s16) object->unk_0D8, (s16) object->textureListIndex);
|
||||
}
|
||||
} else if (arg1 < 0x15F91U) {
|
||||
func_8004A7AC(objectIndex, 1.5f);
|
||||
|
|
@ -4283,7 +4283,7 @@ void func_800557B4(s32 objectIndex, u32 arg1, u32 arg2) {
|
|||
rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
render_animated_model((Armature*) object->model, (Animation**) object->vertex, (s16) object->unk_0D8,
|
||||
(s16) object->itemDisplay);
|
||||
(s16) object->textureListIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4352,7 +4352,7 @@ void func_80055AB8(s32 objectIndex, s32 cameraId) {
|
|||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
render_animated_model((Armature*) gObjectList[objectIndex].model,
|
||||
(Animation**) gObjectList[objectIndex].vertex, 0,
|
||||
(s16) gObjectList[objectIndex].itemDisplay);
|
||||
(s16) gObjectList[objectIndex].textureListIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
18
src/save.c
18
src/save.c
|
|
@ -246,9 +246,8 @@ u32 func_800B4DF4(u8* arr) {
|
|||
|
||||
// Get a time trial record, infer course index
|
||||
s32 func_800B4E24(s32 recordIndex) {
|
||||
return func_800B4DF4(
|
||||
gSaveData.allCourseTimeTrialRecords.cupRecords[(((gCupSelection * 4) + gCupCourseSelection) / 4)]
|
||||
.courseRecords[(((gCupSelection * 4) + gCupCourseSelection) % 4)]
|
||||
return func_800B4DF4(gSaveData.allCourseTimeTrialRecords.cupRecords[(((gCupSelection * 4) + gCourseIndexInCup) / 4)]
|
||||
.courseRecords[(((gCupSelection * 4) + gCourseIndexInCup) % 4)]
|
||||
.records[recordIndex]);
|
||||
}
|
||||
|
||||
|
|
@ -261,9 +260,8 @@ u32 func_800B4EB4(s32 recordIndex, s32 courseIndex) {
|
|||
|
||||
// Get Best Lap record of the inferred course index
|
||||
s32 func_800B4F2C(void) {
|
||||
return func_800B4DF4(
|
||||
gSaveData.allCourseTimeTrialRecords.cupRecords[(((gCupSelection * 4) + gCupCourseSelection) / 4)]
|
||||
.courseRecords[(((gCupSelection * 4) + gCupCourseSelection) % 4)]
|
||||
return func_800B4DF4(gSaveData.allCourseTimeTrialRecords.cupRecords[(((gCupSelection * 4) + gCourseIndexInCup) / 4)]
|
||||
.courseRecords[(((gCupSelection * 4) + gCourseIndexInCup) % 4)]
|
||||
.records[TIME_TRIAL_1LAP_RECORD]);
|
||||
}
|
||||
|
||||
|
|
@ -281,7 +279,7 @@ s32 func_800B5020(u32 time, s32 charId) {
|
|||
s32 j;
|
||||
CourseTimeTrialRecords* tt;
|
||||
|
||||
course = gCupSelection * 4 + gCupCourseSelection;
|
||||
course = gCupSelection * 4 + gCourseIndexInCup;
|
||||
tt = &gSaveData.allCourseTimeTrialRecords.cupRecords[course / 4].courseRecords[course % 4];
|
||||
|
||||
i = 0;
|
||||
|
|
@ -328,7 +326,7 @@ s32 func_800B5218(void) {
|
|||
s32 checkLapIndex;
|
||||
s32 character;
|
||||
s32 lapBitmask;
|
||||
recordIndex = (gCupSelection * 4) + gCupCourseSelection;
|
||||
recordIndex = (gCupSelection * 4) + gCourseIndexInCup;
|
||||
recordPointer =
|
||||
&gSaveData.allCourseTimeTrialRecords.cupRecords[recordIndex / 4].courseRecords[recordIndex % 4].records[0][0];
|
||||
lapBitmask = 1;
|
||||
|
|
@ -787,7 +785,7 @@ s32 func_800B6178(s32 arg0) {
|
|||
if (var_v0 == 0) {
|
||||
temp_s3->ghostDataSaved = 1;
|
||||
if (gGamestate == 4) {
|
||||
temp_s3->courseIndex = (gCupSelection * 4) + gCupCourseSelection;
|
||||
temp_s3->courseIndex = (gCupSelection * 4) + gCourseIndexInCup;
|
||||
}
|
||||
temp_s3->unk_00 = D_80162DFC;
|
||||
temp_s3->characterId = (u8) D_80162DE0;
|
||||
|
|
@ -836,7 +834,7 @@ s32 func_800B63F0(s32 arg0) {
|
|||
func_80005AE8(gPlayerThree);
|
||||
|
||||
phi_s3 = 0;
|
||||
if (((gCupSelection * 4) + gCupCourseSelection) != D_8018EE10[arg0].courseIndex) {
|
||||
if (((gCupSelection * 4) + gCourseIndexInCup) != D_8018EE10[arg0].courseIndex) {
|
||||
phi_s3 = 2;
|
||||
} else if (D_80162DFC != D_8018EE10[arg0].unk_00) {
|
||||
phi_s3 = 3;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue