Merge branch 'dev' of https://github.com/coop-deluxe/sm64coopdx into dev
Some checks are pending
Build coop / build-ubuntu (push) Waiting to run
Build coop / build-windows (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run

This commit is contained in:
Yuyake 2025-03-11 15:19:36 -06:00
commit 14313a5cb1
40 changed files with 1350 additions and 116 deletions

128
.github/workflows/build-coop.yaml vendored Normal file
View file

@ -0,0 +1,128 @@
name: Build coop
on:
workflow_dispatch:
push:
branches: [ dev ]
jobs:
build-ubuntu:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
- name: Build the game
run: make -j$(nproc)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sm64coopdx-ubuntu
path: ./build/us_pc/sm64coopdx
build-windows:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
uses: msys2/setup-msys2@v2
with:
msystem: mingw64
update: true
install: >
unzip
make
git
mingw-w64-i686-gcc
mingw-w64-x86_64-gcc
mingw-w64-i686-glew
mingw-w64-x86_64-glew
mingw-w64-i686-SDL2
mingw-w64-i686-SDL
mingw-w64-x86_64-SDL2
mingw-w64-x86_64-SDL
python3
- name: Build the game
run: make -j$(nproc)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sm64coopdx-windows
path: ./build/us_pc/sm64coopdx.exe
build-macos-arm:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install make mingw-w64 gcc sdl2 pkg-config glew glfw3 libusb coreutils
- name: Build the game
run: |
gmake OSX_BUILD=1 -j$(sysctl -n hw.ncpu)
- name: Code sign the app (Ad-Hoc)
run: |
codesign --force --deep --sign - ./build/us_pc/sm64coopdx.app
- name: Zip the .app bundle
run: |
cd ./build/us_pc
zip -r sm64coopdx-macos-arm.zip sm64coopdx.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sm64coopdx-macos-arm
path: ./build/us_pc/sm64coopdx-macos-arm.zip
build-macos-intel:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: macos-13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install make mingw-w64 gcc@9 sdl2 pkg-config glew glfw3 libusb coreutils
- name: Build the game
run: |
gmake OSX_BUILD=1 -j$(sysctl -n hw.ncpu)
- name: Code sign the app (Ad-Hoc)
run: |
codesign --force --deep --sign - ./build/us_pc/sm64coopdx.app
- name: Zip the .app bundle
run: |
cd ./build/us_pc
zip -r sm64coopdx-macos-intel.zip sm64coopdx.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sm64coopdx-macos-intel
path: ./build/us_pc/sm64coopdx-macos-intel.zip

View file

@ -7,6 +7,7 @@ default: all
# Preprocessor definitions
DEFINES :=
C_DEFINES :=
#==============================================================================#
# Build Options #
@ -333,13 +334,13 @@ OPT_FLAGS += $(BITS)
TARGET := sm64.$(VERSION)
# Stuff for showing the git hash in the intro on nightly builds
# From https://stackoverflow.com/questions/44038428/include-git-commit-hash-and-or-branch-name-in-c-c-source
#ifeq ($(shell git rev-parse --abbrev-ref HEAD),nightly)
# GIT_HASH=`git rev-parse --short HEAD`
# COMPILE_TIME=`date -u +'%Y-%m-%d %H:%M:%S UTC'`
# DEFINES += -DNIGHTLY -DGIT_HASH="\"$(GIT_HASH)\"" -DCOMPILE_TIME="\"$(COMPILE_TIME)\""
#endif
# Stuff for showing the git hash and build time in dev builds
# Originally from https://stackoverflow.com/questions/44038428/include-git-commit-hash-and-or-branch-name-in-c-c-source
ifneq ($(shell git rev-parse --abbrev-ref HEAD),main)
GIT_HASH=$(shell git rev-parse --short HEAD)
COMPILE_TIME=$(shell date -u +'%Y-%m-%d %H:%M:%S UTC')
C_DEFINES += -DGIT_HASH="\"$(GIT_HASH)\"" -DCOMPILE_TIME="\"$(COMPILE_TIME)\""
endif
# GRUCODE - selects which RSP microcode to use.
@ -841,7 +842,7 @@ ifneq ($(SDL1_USED)$(SDL2_USED),00)
endif
endif
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
C_DEFINES += $(foreach d,$(DEFINES),-D$(d))
DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# Check code syntax with host compiler

View file

@ -212,6 +212,8 @@ manual_index_documentation = """
- [add_scroll_target](#add_scroll_target)
- [collision_find_surface_on_ray](#collision_find_surface_on_ray)
- [cast_graph_node](#cast_graph_node)
- [get_uncolored_string](#get_uncolored_string)
- [gfx_set_command](#gfx_set_command)
<br />
@ -726,6 +728,56 @@ N/A
<br />
## [get_uncolored_string](#get_uncolored_string)
Removes color codes from a string.
### Lua Example
```lua
print(get_uncolored_string("\\#210059\\Colored \\#FF086F\\String")) -- "Colored String"
```
### Parameters
| Field | Type |
| ----- | ---- |
| str | 'string' |
### Returns
- `string`
### C Prototype
N/A
[:arrow_up_small:](#)
<br />
## [gfx_set_command](#gfx_set_command)
Sets the specified display list command on the display list given.
### Lua Example
```lua
gfx_set_command(gfx, "gsDPSetEnvColor", 0x00, 0xFF, 0x00, 0xFF)
```
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | [Gfx](structs.md#Gfx) |
| command | `string` |
| (Any number of arguments) | `integer` |
### Returns
- None
### C Prototype
N/A
[:arrow_up_small:](#)
<br />
"""
############################################################################

View file

@ -46,6 +46,11 @@ $[INCLUDES]
#include "include/object_fields.h"
$[BODY]
const char *smlua_get_lot_name(u16 lot) {
assert(smlua_valid_lot(lot)); // if this is false, it means there's an invalid lot somewhere
return sLuaLotNames[lot];
}
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {
struct LuaObjectTable* ot = &sLuaObjectAutogenTable[lot - LOT_AUTOGEN_MIN - 1];
return smlua_get_object_field_from_ot(ot, key);
@ -59,6 +64,7 @@ h_template = """/* THIS FILE IS AUTOGENERATED */
#define SMLUA_COBJECT_AUTOGEN_H
$[BODY]
const char *smlua_get_lot_name(u16 lot);
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key);
#endif
@ -581,7 +587,23 @@ def build_body(parsed):
obj_table_built += obj_table_row_built
obj_table_built += '};\n'
return built + obj_table_built
lot_names = '\nconst char *sLuaLotNames[] = {\n'
for type_name in VEC_TYPES.keys():
lot_names += f'\t[LOT_{type_name.upper()}] = "{type_name}",\n'
lot_names += f'\t[LOT_ARRAY] = "Array",\n'
lot_names += f'\t[LOT_POINTER] = "Pointer",\n'
lot_names += f'\t[LOT_MAX] = "Max",\n'
lot_names += '\n'
for struct in parsed:
sid = struct['identifier']
if sid in exclude_structs:
continue
lot_names += f'\t[LOT_{sid.upper()}] = "{sid}",\n'
lot_names += '};\n'
return built + obj_table_built + lot_names
def build_lot_enum():
s = ''

View file

@ -13677,7 +13677,7 @@ SPTASK_STATE_FINISHED = 3
SPTASK_STATE_FINISHED_DP = 4
--- @type integer
MAX_VERSION_LENGTH = 32
MAX_VERSION_LENGTH = 128
--- @type integer
MINOR_VERSION_NUMBER = 1

View file

@ -9245,11 +9245,21 @@ end
--- @param Ab1 integer
--- @param Ac1 integer
--- @param Ad1 integer
--- Sets the display list combine mode.
--- Sets the display list combine mode. you can fill this function with G_CCMUX_* and G_ACMUX_* constants
function gfx_set_combine_lerp(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1)
-- ...
end
--- @param gfx Pointer_Gfx
--- @param format integer
--- @param size integer
--- @param width integer
--- @param texture Pointer_integer
--- Sets the display list texture image. Pass in textureInfo.texture as `texture`
function gfx_set_texture_image(gfx, format, size, width, texture)
-- ...
end
--- @param index integer
--- @param value integer
--- Sets a value of the global fog color
@ -9743,7 +9753,7 @@ end
--- @param index integer
--- @return integer
--- Gets the water level in an area
--- Gets the water level in an area corresponding to `index` (0-indexed)
function get_water_level(index)
-- ...
end
@ -9944,7 +9954,7 @@ end
--- @param index integer
--- @param height integer
--- @param sync boolean
--- Sets the water level in an area
--- Sets the water level in an area corresponding to `index` (0-indexed)
function set_water_level(index, height, sync)
-- ...
end

View file

@ -126,6 +126,20 @@ bool DynOS_Actor_GetModIndexAndToken(const GraphNode *aGraphNode, u32 aTokenInde
}
return true;
}
} else { // try the active level
GfxData *_GfxData = DynOS_Lvl_GetActiveGfx();
if (_GfxData) {
if (outModIndex) {
*outModIndex = _GfxData->mModIndex;
}
if (outToken) {
if (!aTokenIndex || aTokenIndex > _GfxData->mLuaTokenList.Count()) {
return false;
}
*outToken = _GfxData->mLuaTokenList[aTokenIndex - 1].begin(); // token index is 1-indexed
}
return true;
}
}
return false;
}

View file

@ -7890,7 +7890,7 @@ Traverses a display list. Takes a Lua function as a parameter, which is called b
## [gfx_set_combine_lerp](#gfx_set_combine_lerp)
### Description
Sets the display list combine mode.
Sets the display list combine mode. you can fill this function with G_CCMUX_* and G_ACMUX_* constants
### Lua Example
`gfx_set_combine_lerp(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1)`
@ -7926,6 +7926,33 @@ Sets the display list combine mode.
<br />
## [gfx_set_texture_image](#gfx_set_texture_image)
### Description
Sets the display list texture image. Pass in textureInfo.texture as `texture`
### Lua Example
`gfx_set_texture_image(gfx, format, size, width, texture)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
| format | `integer` |
| size | `integer` |
| width | `integer` |
| texture | `Pointer` <`integer`> |
### Returns
- None
### C Prototype
`void gfx_set_texture_image(Gfx* gfx, u32 format, u32 size, u32 width, u8* texture);`
[:arrow_up_small:](#)
<br />
## [set_fog_color](#set_fog_color)
### Description

View file

@ -1106,7 +1106,7 @@ Gets the volume level of sound effects
## [get_water_level](#get_water_level)
### Description
Gets the water level in an area
Gets the water level in an area corresponding to `index` (0-indexed)
### Lua Example
`local integerValue = get_water_level(index)`
@ -1798,7 +1798,7 @@ Sets the volume level of sound effects
## [set_water_level](#set_water_level)
### Description
Sets the water level in an area
Sets the water level in an area corresponding to `index` (0-indexed)
### Lua Example
`set_water_level(index, height, sync)`

View file

@ -27,6 +27,8 @@
- [add_scroll_target](#add_scroll_target)
- [collision_find_surface_on_ray](#collision_find_surface_on_ray)
- [cast_graph_node](#cast_graph_node)
- [get_uncolored_string](#get_uncolored_string)
- [gfx_set_command](#gfx_set_command)
<br />
@ -1708,6 +1710,7 @@
- [gfx_get_vtx](functions-5.md#gfx_get_vtx)
- [gfx_parse](functions-5.md#gfx_parse)
- [gfx_set_combine_lerp](functions-5.md#gfx_set_combine_lerp)
- [gfx_set_texture_image](functions-5.md#gfx_set_texture_image)
- [set_fog_color](functions-5.md#set_fog_color)
- [set_fog_intensity](functions-5.md#set_fog_intensity)
- [set_lighting_color](functions-5.md#set_lighting_color)
@ -2457,6 +2460,56 @@ N/A
<br />
## [get_uncolored_string](#get_uncolored_string)
Removes color codes from a string.
### Lua Example
```lua
print(get_uncolored_string("\#210059\Colored \#FF086F\String")) -- "Colored String"
```
### Parameters
| Field | Type |
| ----- | ---- |
| str | 'string' |
### Returns
- `string`
### C Prototype
N/A
[:arrow_up_small:](#)
<br />
## [gfx_set_command](#gfx_set_command)
Sets the specified display list command on the display list given.
### Lua Example
```lua
gfx_set_command(gfx, "gsDPSetEnvColor", 0x00, 0xFF, 0x00, 0xFF)
```
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | [Gfx](structs.md#Gfx) |
| command | `string` |
| (Any number of arguments) | `integer` |
### Returns
- None
### C Prototype
N/A
[:arrow_up_small:](#)
<br />
---
# functions from area.h

View file

@ -81,8 +81,8 @@ DECELERATION = "カメラ減速"
[CONTROLS]
CONTROLS = "CONTROLS"
N64_BINDS = "N64の操作"
EXTRA_BINDS = "その他の操作"
N64_BINDS = "ニンテンドウ64の入力"
EXTRA_BINDS = "追加の入力"
BACKGROUND_GAMEPAD = "バックグラウンドでのコントローラー認識"
DISABLE_GAMEPADS = "コントローラーを無効化"
GAMEPAD = "コントローラー"
@ -146,28 +146,28 @@ MUST_RESTART = "変更を適用するにはゲームを再起動してくださ
SHOW_FPS = "FPSを表示する"
[DJUI_THEMES]
DJUI_THEME = "DJUI テーマ"
DJUI_SCALE = "DJUI サイズ"
DJUI_FONT = "DJUI フォント"
DJUI_THEME = "DJUIテーマ"
DJUI_SCALE = "DJUIサイズ"
DJUI_FONT = "DJUIフォント"
AUTO = "自動"
CENTER = "DJUI 中心"
CENTER = "中心にDJUIを表示"
FONT_NORMAL = "普通"
FONT_ALIASED = "エイリアス"
LIGHT_THEME = "ライト"
DARK_THEME = "ダーク"
MARIO_THEME = "マリオ"
ODYSSEY_THEME = "オデッセイ"
FILE_SELECT_THEME = "ファイル選択"
ODYSSEY_THEME = "オデッセイ"
FILE_SELECT_THEME = "ファイルセレクト風"
[DYNOS]
DYNOS = "DYNOS"
LOCAL_PLAYER_MODEL_ONLY = "ローカルのキャラモデルのみ"
LOCAL_PLAYER_MODEL_ONLY = "ローカルのキャラモデルに限定"
[HOST_MESSAGE]
INFO_TITLE = "INFO"
WARN_DISCORD = "招待したいフレンドを右クリックしてn'\\#d0d0ff\\ゲームに招待\\#dcdcdc\\'.\n\nを押すと招待できます。サーバー内のチャンネルにも、チャット横の\\#d0d0ff\\プラス\\#dcdcdc\\マークから招待メッセージを送信できます。\n\nゲーム アクティビティを\\#ffa0a0\\必ず\\#dcdcdc\\有効にしてください。\n\n\nオフラインに設定していると、招待の送信を\\#ffa0a0\\妨げる\\#dcdcdc\\可能性があります。"
WARN_DISCORD2 = "\\#ffa0a0\\エラー:\\#dcdcdc\\Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了し、Discordを再起動してから、もう一度お試しください。"
WARN_SOCKET = "ファイアウォール設定が正しく設定されている事をご確認ください。\n直接接続には、ルータのポート転送でIPv4インバウンド接続を受信するように設定する\\#ffa0a0\\必要\\#dcdcdc\\があります。\n\nUDPポート'%d'番を開放してください。IPv6も対応しています。"
WARN_SOCKET = "ファイアウォール設定が正しく設定されている事をご確認ください。\n直接接続には、ルータのポート転送でIPv4インバウンド接続を受信するように設定する\\#ffa0a0\\必要\\#dcdcdc\\があります。\n\nUDPポート'%d'番を開放してください。IPv6も対応しています。"
HOST = "ルームを作る"
[HOST_MODS]
@ -201,7 +201,7 @@ FRIENDLY_FIRE = "フレンドリーファイア"
PLAYER_INTERACTION = "プレイヤーどうしの接触"
WEAK = "弱い"
NORMAL = "普通"
TOO_MUCH = "すぎ"
TOO_MUCH = "強"
KNOCKBACK_STRENGTH = "ノックバックの強さ"
CLASSIC_PVP = "クラシック"
REVAMPED_PVP = "改良"
@ -233,12 +233,12 @@ PASSWORD = "パスワード"
SAVE_SLOT = "セーブスロット"
SETTINGS = "設定"
MODS = "MOD一覧"
ROMHACKS = "ハックロム"
ROMHACKS = "ロムハック"
APPLY = "適用"
HOST = "ルームを作成"
[JOIN_MESSAGE]
JOINING = "参加中..."
JOINING = "JOINING"
[JOIN]
JOIN_TITLE = "JOIN"
@ -254,7 +254,7 @@ RULES_TITLE = "RULES"
RULE_1 = "1. 13歳以上であること。"
RULE_2 = "2. 不快な言葉、中傷、攻撃的な言葉を使わないこと。"
RULE_3 = "3. 非公式ビルドを使わないこと。"
RULE_4 = "4. ゲームをエクスプロイトする外部ツールの使用は禁止。"
RULE_4 = "4. ゲームをエクスプロイトする外部ツールを使用しないこと。"
RULE_5 = "5. 作者の許可なく、非公開MODを公開しないこと。"
RULE_6 = "6. 全てのNSFWコンテンツは禁止です。"
SUBJECT_TO_CHANGE = "ルールはアップデートで変更される可能性があります。"
@ -280,8 +280,8 @@ PLAY_VANILLA_DEMOS = "バニラゲームのデモを再生"
[MISC]
DEBUG_TITLE = "DEBUG"
FIXED_COLLISIONS = "修正された当たり判定"
LUA_PROFILER = "Luaのプロファイラ"
CTX_PROFILER = "Ctxのプロファイラ"
LUA_PROFILER = "Luaのプロファイラ"
CTX_PROFILER = "Ctxのプロファイラ"
DEBUG_PRINT = "デバッグ情報の表示"
DEBUG_INFO = "デバッグの情報"
DEBUG_ERRORS = "デバッグのエラー"
@ -293,7 +293,7 @@ MENU_OPTIONS = "メニューの設定"
INFORMATION = "情報"
DEBUG = "デバッグ"
LANGUAGE = "言語"
COOP_COMPATIBILITY = "sm64ex-coopとの互換性"
COOP_COMPATIBILITY = "sm64ex-coopとの互換性を有効にする"
R_BUTTON = "Rボタン - 設定"
[INFORMATION]
@ -304,7 +304,7 @@ CHANGELOG = "変更履歴"
CONSOLE = "CONSOLE"
[MODLIST]
MODS = "MOD"
MODS = "MODS"
[OPTIONS]
OPTIONS = "OPTIONS"
@ -331,7 +331,7 @@ RESUME = "ゲームをつづける"
STOP_HOSTING = "ルームを閉じる"
DISCONNECT = "切断する"
MOD_MENU = "MODメニュー"
MOD_MENU_TITLE = "MODメニュー"
MOD_MENU_TITLE = "MOD MENU"
[PLAYER]
PLAYER_TITLE = "PLAYER"
@ -340,7 +340,7 @@ SHIRT = "シャツ"
GLOVES = "手袋"
SHOES = "くつ"
HAIR = "髪"
SKIN = "はだ"
SKIN = ""
CAP = "帽子"
EMBLEM = "エンブレム"
PALETTE = "PALETTE"
@ -366,7 +366,7 @@ CUSTOM = "カスタム"
PLAYERS = "PLAYERS"
NAME = "名前"
LOCATION = "場所"
ACT = "状況"
ACT = "ミッション"
[SOUND]
SOUND = "SOUND"
@ -374,8 +374,8 @@ MASTER_VOLUME = "主音量"
MUSIC_VOLUME = "BGM音量"
SFX_VOLUME = "SE音量"
ENV_VOLUME = "環境音量"
FADEOUT = "遠い音をフェードアウトする"
MUTE_FOCUS_LOSS = "非フォーカス時に音をミュートする"
FADEOUT = "遠い音のフェードアウト"
MUTE_FOCUS_LOSS = "非フォーカス時にミュート"
[LANGUAGE]
LANGUAGE = "LANGUAGE"
@ -394,7 +394,7 @@ Spanish = "スペイン語 (Español)"
[LOBBIES]
PUBLIC_LOBBIES = "PUBLIC ROOMS"
PRIVATE_LOBBIES = "PRIVATE ROOMS"
REFRESH = "更新する"
REFRESH = "更新"
REFRESHING = "更新中…"
ENTER_PASSWORD = "部屋のパスワードを入力してください:"
SEARCH = "検索"

View file

@ -397,7 +397,6 @@ REFRESH = "Recarregar"
REFRESHING = "Recarregando..."
ENTER_PASSWORD = "Digite a senha da partida privada:"
SEARCH = "Pesquisar"
NONE_FOUND = "Nenhuma partida foi encontrada."
NO_LOBBIES_FOUND = "Nenhuma partida foi encontrada."
[CHANGELOG]

301
sound/samples_assets.c Normal file
View file

@ -0,0 +1,301 @@
#include "pc/rom_assets.h"
#include "sound_data.h"
#include "samples_offsets.h"
ROM_ASSET_LOAD_SAMPLE(sfx_1_00_twirl_aifc, &gSoundDataRaw[SAMPLE_sfx_1_00_twirl_aifc], 0x005936a0, 1774, 0x00000000, 1774);
ROM_ASSET_LOAD_SAMPLE(sfx_1_01_brushing_aifc, &gSoundDataRaw[SAMPLE_sfx_1_01_brushing_aifc], 0x00593d90, 10440, 0x00000000, 10440);
ROM_ASSET_LOAD_SAMPLE(sfx_1_02_hand_touch_aifc, &gSoundDataRaw[SAMPLE_sfx_1_02_hand_touch_aifc], 0x00596660, 810, 0x00000000, 810);
ROM_ASSET_LOAD_SAMPLE(sfx_1_03_yoshi_aifc, &gSoundDataRaw[SAMPLE_sfx_1_03_yoshi_aifc], 0x00596990, 4554, 0x00000000, 4554);
ROM_ASSET_LOAD_SAMPLE(sfx_1_04_plop_aifc, &gSoundDataRaw[SAMPLE_sfx_1_04_plop_aifc], 0x00597b60, 4492, 0x00000000, 4492);
ROM_ASSET_LOAD_SAMPLE(sfx_1_05_heavy_landing_aifc, &gSoundDataRaw[SAMPLE_sfx_1_05_heavy_landing_aifc], 0x00598cf0, 6984, 0x00000000, 6984);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_00_step_default_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_00_step_default_aifc], 0x0059a840, 82, 0x00000000, 82);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_01_step_grass_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_01_step_grass_aifc], 0x0059a8a0, 684, 0x00000000, 684);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_02_step_stone_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_02_step_stone_aifc], 0x0059ab50, 568, 0x00000000, 568);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_03_step_spooky_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_03_step_spooky_aifc], 0x0059ad90, 1666, 0x00000000, 1666);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_04_step_snow_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_04_step_snow_aifc], 0x0059b420, 1656, 0x00000000, 1656);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_05_step_ice_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_05_step_ice_aifc], 0x0059baa0, 352, 0x00000000, 352);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_06_step_metal_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_06_step_metal_aifc], 0x0059bc00, 6616, 0x00000000, 6616);
ROM_ASSET_LOAD_SAMPLE(sfx_terrain_07_step_sand_aifc, &gSoundDataRaw[SAMPLE_sfx_terrain_07_step_sand_aifc], 0x0059d5e0, 3114, 0x00000000, 3114);
ROM_ASSET_LOAD_SAMPLE(sfx_water_00_plunge_aifc, &gSoundDataRaw[SAMPLE_sfx_water_00_plunge_aifc], 0x0059e210, 14212, 0x00000000, 14212);
ROM_ASSET_LOAD_SAMPLE(sfx_water_01_splash_aifc, &gSoundDataRaw[SAMPLE_sfx_water_01_splash_aifc], 0x005a19a0, 5346, 0x00000000, 5346);
ROM_ASSET_LOAD_SAMPLE(sfx_water_02_swim_aifc, &gSoundDataRaw[SAMPLE_sfx_water_02_swim_aifc], 0x005a2e90, 7048, 0x00000000, 7048);
ROM_ASSET_LOAD_SAMPLE(sfx_4_00_aifc, &gSoundDataRaw[SAMPLE_sfx_4_00_aifc], 0x005a4a20, 7308, 0x00000000, 7308);
ROM_ASSET_LOAD_SAMPLE(sfx_4_01_aifc, &gSoundDataRaw[SAMPLE_sfx_4_01_aifc], 0x005a66b0, 4546, 0x00000000, 4546);
ROM_ASSET_LOAD_SAMPLE(sfx_4_02_aifc, &gSoundDataRaw[SAMPLE_sfx_4_02_aifc], 0x005a7880, 4284, 0x00000000, 4284);
ROM_ASSET_LOAD_SAMPLE(sfx_4_03_aifc, &gSoundDataRaw[SAMPLE_sfx_4_03_aifc], 0x005a8940, 5328, 0x00000000, 5328);
ROM_ASSET_LOAD_SAMPLE(sfx_4_04_aifc, &gSoundDataRaw[SAMPLE_sfx_4_04_aifc], 0x005a9e10, 2736, 0x00000000, 2736);
ROM_ASSET_LOAD_SAMPLE(sfx_4_05_aifc, &gSoundDataRaw[SAMPLE_sfx_4_05_aifc], 0x005aa8c0, 2826, 0x00000000, 2826);
ROM_ASSET_LOAD_SAMPLE(sfx_4_06_aifc, &gSoundDataRaw[SAMPLE_sfx_4_06_aifc], 0x005ab3d0, 2628, 0x00000000, 2628);
ROM_ASSET_LOAD_SAMPLE(sfx_4_07_aifc, &gSoundDataRaw[SAMPLE_sfx_4_07_aifc], 0x005abe20, 3672, 0x00000000, 3672);
ROM_ASSET_LOAD_SAMPLE(sfx_4_08_aifc, &gSoundDataRaw[SAMPLE_sfx_4_08_aifc], 0x005acc80, 10368, 0x00000000, 10368);
ROM_ASSET_LOAD_SAMPLE(sfx_4_09_aifc, &gSoundDataRaw[SAMPLE_sfx_4_09_aifc], 0x005af500, 1990, 0x00000000, 1990);
ROM_ASSET_LOAD_SAMPLE(sfx_5_00_aifc, &gSoundDataRaw[SAMPLE_sfx_5_00_aifc], 0x005afcd0, 5590, 0x00000000, 5590);
ROM_ASSET_LOAD_SAMPLE(sfx_5_01_aifc, &gSoundDataRaw[SAMPLE_sfx_5_01_aifc], 0x005b12b0, 4140, 0x00000000, 4140);
ROM_ASSET_LOAD_SAMPLE(sfx_5_02_aifc, &gSoundDataRaw[SAMPLE_sfx_5_02_aifc], 0x005b22e0, 11386, 0x00000000, 11386);
ROM_ASSET_LOAD_SAMPLE(sfx_5_03_aifc, &gSoundDataRaw[SAMPLE_sfx_5_03_aifc], 0x005b4f60, 6066, 0x00000000, 6066);
ROM_ASSET_LOAD_SAMPLE(sfx_5_04_aifc, &gSoundDataRaw[SAMPLE_sfx_5_04_aifc], 0x005b6720, 4600, 0x00000000, 4600);
ROM_ASSET_LOAD_SAMPLE(sfx_5_05_aifc, &gSoundDataRaw[SAMPLE_sfx_5_05_aifc], 0x005b7920, 14238, 0x00000000, 14238);
ROM_ASSET_LOAD_SAMPLE(sfx_5_06_aifc, &gSoundDataRaw[SAMPLE_sfx_5_06_aifc], 0x005bb0c0, 1954, 0x00000000, 1954);
ROM_ASSET_LOAD_SAMPLE(sfx_5_07_aifc, &gSoundDataRaw[SAMPLE_sfx_5_07_aifc], 0x005bb870, 9072, 0x00000000, 9072);
ROM_ASSET_LOAD_SAMPLE(sfx_5_08_aifc, &gSoundDataRaw[SAMPLE_sfx_5_08_aifc], 0x005bdbe0, 2682, 0x00000000, 2682);
ROM_ASSET_LOAD_SAMPLE(sfx_5_09_aifc, &gSoundDataRaw[SAMPLE_sfx_5_09_aifc], 0x005be660, 1800, 0x00000000, 1800);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0A_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0A_aifc], 0x005bed70, 1476, 0x00000000, 1476);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0B_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0B_aifc], 0x005bf340, 11268, 0x00000000, 11268);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0C_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0C_aifc], 0x005c1f50, 22788, 0x00000000, 22788);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0D_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0D_aifc], 0x005c7860, 32328, 0x00000000, 32328);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0E_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0E_aifc], 0x005cf6b0, 4204, 0x00000000, 4204);
ROM_ASSET_LOAD_SAMPLE(sfx_5_0F_aifc, &gSoundDataRaw[SAMPLE_sfx_5_0F_aifc], 0x005d0720, 9388, 0x00000000, 9388);
ROM_ASSET_LOAD_SAMPLE(sfx_5_10_aifc, &gSoundDataRaw[SAMPLE_sfx_5_10_aifc], 0x005d2bd0, 1080, 0x00000000, 1080);
ROM_ASSET_LOAD_SAMPLE(sfx_5_11_aifc, &gSoundDataRaw[SAMPLE_sfx_5_11_aifc], 0x005d3010, 14058, 0x00000000, 14058);
ROM_ASSET_LOAD_SAMPLE(sfx_5_12_aifc, &gSoundDataRaw[SAMPLE_sfx_5_12_aifc], 0x005d6700, 3204, 0x00000000, 3204);
ROM_ASSET_LOAD_SAMPLE(sfx_5_13_aifc, &gSoundDataRaw[SAMPLE_sfx_5_13_aifc], 0x005d7390, 14544, 0x00000000, 14544);
ROM_ASSET_LOAD_SAMPLE(sfx_5_14_aifc, &gSoundDataRaw[SAMPLE_sfx_5_14_aifc], 0x005dac60, 10504, 0x00000000, 10504);
ROM_ASSET_LOAD_SAMPLE(sfx_5_15_aifc, &gSoundDataRaw[SAMPLE_sfx_5_15_aifc], 0x005dd570, 1998, 0x00000000, 1998);
ROM_ASSET_LOAD_SAMPLE(sfx_5_16_aifc, &gSoundDataRaw[SAMPLE_sfx_5_16_aifc], 0x005ddd40, 2476, 0x00000000, 2476);
ROM_ASSET_LOAD_SAMPLE(sfx_5_17_aifc, &gSoundDataRaw[SAMPLE_sfx_5_17_aifc], 0x005de6f0, 3924, 0x00000000, 3924);
ROM_ASSET_LOAD_SAMPLE(sfx_5_18_aifc, &gSoundDataRaw[SAMPLE_sfx_5_18_aifc], 0x005df650, 2080, 0x00000000, 2080);
ROM_ASSET_LOAD_SAMPLE(sfx_5_19_aifc, &gSoundDataRaw[SAMPLE_sfx_5_19_aifc], 0x005dfe70, 810, 0x00000000, 810);
ROM_ASSET_LOAD_SAMPLE(sfx_5_1A_aifc, &gSoundDataRaw[SAMPLE_sfx_5_1A_aifc], 0x005e01a0, 10278, 0x00000000, 10278);
ROM_ASSET_LOAD_SAMPLE(sfx_5_1B_aifc, &gSoundDataRaw[SAMPLE_sfx_5_1B_aifc], 0x005e29d0, 6562, 0x00000000, 6562);
ROM_ASSET_LOAD_SAMPLE(sfx_5_1C_aifc, &gSoundDataRaw[SAMPLE_sfx_5_1C_aifc], 0x005e4380, 4222, 0x00000000, 4222);
ROM_ASSET_LOAD_SAMPLE(sfx_6_00_aifc, &gSoundDataRaw[SAMPLE_sfx_6_00_aifc], 0x005e5400, 2178, 0x00000000, 2178);
ROM_ASSET_LOAD_SAMPLE(sfx_6_01_aifc, &gSoundDataRaw[SAMPLE_sfx_6_01_aifc], 0x005e5c90, 3250, 0x00000000, 3250);
ROM_ASSET_LOAD_SAMPLE(sfx_6_02_aifc, &gSoundDataRaw[SAMPLE_sfx_6_02_aifc], 0x005e6950, 8974, 0x00000000, 8974);
ROM_ASSET_LOAD_SAMPLE(sfx_6_03_aifc, &gSoundDataRaw[SAMPLE_sfx_6_03_aifc], 0x005e8c60, 15786, 0x00000000, 15786);
ROM_ASSET_LOAD_SAMPLE(sfx_6_04_aifc, &gSoundDataRaw[SAMPLE_sfx_6_04_aifc], 0x005eca10, 2790, 0x00000000, 2790);
ROM_ASSET_LOAD_SAMPLE(sfx_6_05_aifc, &gSoundDataRaw[SAMPLE_sfx_6_05_aifc], 0x005ed500, 6588, 0x00000000, 6588);
ROM_ASSET_LOAD_SAMPLE(sfx_6_06_aifc, &gSoundDataRaw[SAMPLE_sfx_6_06_aifc], 0x005eeec0, 1720, 0x00000000, 1720);
ROM_ASSET_LOAD_SAMPLE(sfx_6_07_aifc, &gSoundDataRaw[SAMPLE_sfx_6_07_aifc], 0x005ef580, 1324, 0x00000000, 1324);
ROM_ASSET_LOAD_SAMPLE(sfx_6_08_aifc, &gSoundDataRaw[SAMPLE_sfx_6_08_aifc], 0x005efab0, 7308, 0x00000000, 7308);
ROM_ASSET_LOAD_SAMPLE(sfx_6_09_aifc, &gSoundDataRaw[SAMPLE_sfx_6_09_aifc], 0x005f1740, 2332, 0x00000000, 2332);
ROM_ASSET_LOAD_SAMPLE(sfx_6_0A_aifc, &gSoundDataRaw[SAMPLE_sfx_6_0A_aifc], 0x005f2060, 2430, 0x00000000, 2430);
ROM_ASSET_LOAD_SAMPLE(sfx_6_0B_aifc, &gSoundDataRaw[SAMPLE_sfx_6_0B_aifc], 0x005f29e0, 2188, 0x00000000, 2188);
ROM_ASSET_LOAD_SAMPLE(sfx_6_0C_aifc, &gSoundDataRaw[SAMPLE_sfx_6_0C_aifc], 0x005f3270, 5284, 0x00000000, 5284);
ROM_ASSET_LOAD_SAMPLE(sfx_6_0D_aifc, &gSoundDataRaw[SAMPLE_sfx_6_0D_aifc], 0x005f4720, 10360, 0x00000000, 10360);
ROM_ASSET_LOAD_SAMPLE(sfx_7_00_aifc, &gSoundDataRaw[SAMPLE_sfx_7_00_aifc], 0x005f6fa0, 1216, 0x00000000, 1216);
ROM_ASSET_LOAD_SAMPLE(sfx_7_01_aifc, &gSoundDataRaw[SAMPLE_sfx_7_01_aifc], 0x005f7460, 3664, 0x00000000, 3664);
ROM_ASSET_LOAD_SAMPLE(sfx_7_02_aifc, &gSoundDataRaw[SAMPLE_sfx_7_02_aifc], 0x005f82b0, 1206, 0x00000000, 1206);
ROM_ASSET_LOAD_SAMPLE(sfx_7_03_aifc, &gSoundDataRaw[SAMPLE_sfx_7_03_aifc], 0x005f8770, 10584, 0x00000000, 10584);
ROM_ASSET_LOAD_SAMPLE(sfx_7_04_aifc, &gSoundDataRaw[SAMPLE_sfx_7_04_aifc], 0x005fb0d0, 10810, 0x00000000, 10810);
ROM_ASSET_LOAD_SAMPLE(sfx_7_05_aifc, &gSoundDataRaw[SAMPLE_sfx_7_05_aifc], 0x005fdb10, 4104, 0x00000000, 4104);
ROM_ASSET_LOAD_SAMPLE(sfx_7_06_aifc, &gSoundDataRaw[SAMPLE_sfx_7_06_aifc], 0x005feb20, 4806, 0x00000000, 4806);
ROM_ASSET_LOAD_SAMPLE(sfx_7_07_aifc, &gSoundDataRaw[SAMPLE_sfx_7_07_aifc], 0x005ffdf0, 5076, 0x00000000, 5076);
ROM_ASSET_LOAD_SAMPLE(sfx_7_08_aifc, &gSoundDataRaw[SAMPLE_sfx_7_08_aifc], 0x006011d0, 1378, 0x00000000, 1378);
ROM_ASSET_LOAD_SAMPLE(sfx_7_09_aifc, &gSoundDataRaw[SAMPLE_sfx_7_09_aifc], 0x00601740, 3906, 0x00000000, 3906);
ROM_ASSET_LOAD_SAMPLE(sfx_7_0A_aifc, &gSoundDataRaw[SAMPLE_sfx_7_0A_aifc], 0x00602690, 6210, 0x00000000, 6210);
ROM_ASSET_LOAD_SAMPLE(sfx_7_0B_aifc, &gSoundDataRaw[SAMPLE_sfx_7_0B_aifc], 0x00603ee0, 5526, 0x00000000, 5526);
ROM_ASSET_LOAD_SAMPLE(sfx_7_0C_aifc, &gSoundDataRaw[SAMPLE_sfx_7_0C_aifc], 0x00605480, 8938, 0x00000000, 8938);
ROM_ASSET_LOAD_SAMPLE(sfx_7_0D_chain_chomp_bark_aifc, &gSoundDataRaw[SAMPLE_sfx_7_0D_chain_chomp_bark_aifc], 0x00607770, 1818, 0x00000000, 1818);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_00_mario_jump_hoo_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_00_mario_jump_hoo_aifc], 0x00607e90, 1882, 0x00000000, 1882);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_01_mario_jump_wah_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_01_mario_jump_wah_aifc], 0x006085f0, 2052, 0x00000000, 2052);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_02_mario_yah_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_02_mario_yah_aifc], 0x00608e00, 2692, 0x00000000, 2692);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_03_mario_haha_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_03_mario_haha_aifc], 0x00609890, 6912, 0x00000000, 6912);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_04_mario_yahoo_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_04_mario_yahoo_aifc], 0x0060b390, 8524, 0x00000000, 8524);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_05_mario_uh_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_05_mario_uh_aifc], 0x0060d4e0, 2808, 0x00000000, 2808);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_06_mario_hrmm_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_06_mario_hrmm_aifc], 0x0060dfe0, 4474, 0x00000000, 4474);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_07_mario_wah2_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_07_mario_wah2_aifc], 0x0060f160, 2692, 0x00000000, 2692);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_08_mario_whoa_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_08_mario_whoa_aifc], 0x0060fbf0, 8334, 0x00000000, 8334);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_09_mario_eeuh_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_09_mario_eeuh_aifc], 0x00611c80, 6436, 0x00000000, 6436);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0A_mario_attacked_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0A_mario_attacked_aifc], 0x006135b0, 5644, 0x00000000, 5644);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0B_mario_ooof_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0B_mario_ooof_aifc], 0x00614bc0, 5544, 0x00000000, 5544);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0C_mario_here_we_go_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0C_mario_here_we_go_aifc], 0x00616170, 12808, 0x00000000, 12808);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0D_mario_yawning_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0D_mario_yawning_aifc], 0x00619380, 14580, 0x00000000, 14580);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0E_mario_snoring1_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0E_mario_snoring1_aifc], 0x0061cc80, 8416, 0x00000000, 8416);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_0F_mario_snoring2_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_0F_mario_snoring2_aifc], 0x0061ed60, 3006, 0x00000000, 3006);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_10_mario_doh_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_10_mario_doh_aifc], 0x0061f920, 5140, 0x00000000, 5140);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_11_mario_game_over_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_11_mario_game_over_aifc], 0x00620d40, 6444, 0x00000000, 6444);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_12_mario_hello_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_12_mario_hello_aifc], 0x00622670, 6930, 0x00000000, 6930);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_13_mario_press_start_to_play_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_13_mario_press_start_to_play_aifc], 0x00624190, 13770, 0x00000000, 13770);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_14_mario_twirl_bounce_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_14_mario_twirl_bounce_aifc], 0x00627760, 4410, 0x00000000, 4410);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_15_mario_snoring3_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_15_mario_snoring3_aifc], 0x006288a0, 98226, 0x00000000, 98226);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_16_mario_so_longa_bowser_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_16_mario_so_longa_bowser_aifc], 0x00640860, 13482, 0x00000000, 13482);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_17_mario_ima_tired_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_17_mario_ima_tired_aifc], 0x00643d10, 11394, 0x00000000, 11394);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_18_mario_waha_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_18_mario_waha_aifc], 0x006469a0, 9694, 0x00000000, 9694);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_19_mario_yippee_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_19_mario_yippee_aifc], 0x00648f80, 9018, 0x00000000, 9018);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_1A_mario_lets_a_go_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_1A_mario_lets_a_go_aifc], 0x0064b2c0, 8334, 0x00000000, 8334);
ROM_ASSET_LOAD_SAMPLE(sfx_9_00_aifc, &gSoundDataRaw[SAMPLE_sfx_9_00_aifc], 0x0064d350, 6012, 0x00000000, 6012);
ROM_ASSET_LOAD_SAMPLE(sfx_9_01_aifc, &gSoundDataRaw[SAMPLE_sfx_9_01_aifc], 0x0064ead0, 3006, 0x00000000, 3006);
ROM_ASSET_LOAD_SAMPLE(sfx_9_02_aifc, &gSoundDataRaw[SAMPLE_sfx_9_02_aifc], 0x0064f690, 11044, 0x00000000, 11044);
ROM_ASSET_LOAD_SAMPLE(sfx_9_03_aifc, &gSoundDataRaw[SAMPLE_sfx_9_03_aifc], 0x006521c0, 8460, 0x00000000, 8460);
ROM_ASSET_LOAD_SAMPLE(sfx_9_04_camera_buzz_aifc, &gSoundDataRaw[SAMPLE_sfx_9_04_camera_buzz_aifc], 0x006542d0, 3700, 0x00000000, 3700);
ROM_ASSET_LOAD_SAMPLE(sfx_9_05_camera_shutter_aifc, &gSoundDataRaw[SAMPLE_sfx_9_05_camera_shutter_aifc], 0x00655150, 1674, 0x00000000, 1674);
ROM_ASSET_LOAD_SAMPLE(sfx_9_06_aifc, &gSoundDataRaw[SAMPLE_sfx_9_06_aifc], 0x006557e0, 9910, 0x00000000, 9910);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_00_mario_waaaooow_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_00_mario_waaaooow_aifc], 0x00657ea0, 24768, 0x00000000, 24768);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_01_mario_hoohoo_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_01_mario_hoohoo_aifc], 0x0065df60, 5598, 0x00000000, 5598);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_02_mario_panting_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_02_mario_panting_aifc], 0x0065f540, 5248, 0x00000000, 5248);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_03_mario_dying_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_03_mario_dying_aifc], 0x006609c0, 15786, 0x00000000, 15786);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_04_mario_on_fire_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_04_mario_on_fire_aifc], 0x00664770, 18136, 0x00000000, 18136);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_05_mario_uh2_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_05_mario_uh2_aifc], 0x00668e50, 2278, 0x00000000, 2278);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_06_mario_coughing_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_06_mario_coughing_aifc], 0x00669740, 2556, 0x00000000, 2556);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_07_mario_its_a_me_mario_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_07_mario_its_a_me_mario_aifc], 0x0066a140, 17020, 0x00000000, 17020);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_08_mario_punch_yah_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_08_mario_punch_yah_aifc], 0x0066e3c0, 2206, 0x00000000, 2206);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_09_mario_punch_hoo_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_09_mario_punch_hoo_aifc], 0x0066ec60, 5724, 0x00000000, 5724);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0A_mario_mama_mia_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0A_mario_mama_mia_aifc], 0x006702c0, 8244, 0x00000000, 8244);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0B_mario_okey_dokey_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0B_mario_okey_dokey_aifc], 0x00672300, 8236, 0x00000000, 8236);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0C_mario_drowning_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0C_mario_drowning_aifc], 0x00674330, 12070, 0x00000000, 12070);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0D_mario_thank_you_playing_my_game_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0D_mario_thank_you_playing_my_game_aifc], 0x00677260, 21610, 0x00000000, 21610);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0E_peach_dear_mario_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0E_peach_dear_mario_aifc], 0x0067c6d0, 87336, 0x00000000, 87336);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_0F_peach_mario_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_0F_peach_mario_aifc], 0x00691c00, 7336, 0x00000000, 7336);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_10_peach_power_of_the_stars_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_10_peach_power_of_the_stars_aifc], 0x006938b0, 30052, 0x00000000, 30052);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_11_peach_thanks_to_you_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_11_peach_thanks_to_you_aifc], 0x0069ae20, 15490, 0x00000000, 15490);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_12_peach_thank_you_mario_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_12_peach_thank_you_mario_aifc], 0x0069eab0, 14202, 0x00000000, 14202);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_13_peach_something_special_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_13_peach_something_special_aifc], 0x006a2230, 24138, 0x00000000, 24138);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_14_peach_bake_a_cake_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_14_peach_bake_a_cake_aifc], 0x006a8080, 39564, 0x00000000, 39564);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_15_peach_for_mario_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_15_peach_for_mario_aifc], 0x006b1b10, 9252, 0x00000000, 9252);
ROM_ASSET_LOAD_SAMPLE(sfx_mario_peach_16_peach_mario2_aifc, &gSoundDataRaw[SAMPLE_sfx_mario_peach_16_peach_mario2_aifc], 0x006b3f40, 7092, 0x00000000, 7092);
ROM_ASSET_LOAD_SAMPLE(instruments_00_aifc, &gSoundDataRaw[SAMPLE_instruments_00_aifc], 0x006b5b00, 11826, 0x00000000, 11826);
ROM_ASSET_LOAD_SAMPLE(instruments_01_banjo_1_aifc, &gSoundDataRaw[SAMPLE_instruments_01_banjo_1_aifc], 0x006b8940, 10396, 0x00000000, 10396);
ROM_ASSET_LOAD_SAMPLE(instruments_02_aifc, &gSoundDataRaw[SAMPLE_instruments_02_aifc], 0x006bb1e0, 17352, 0x00000000, 17352);
ROM_ASSET_LOAD_SAMPLE(instruments_03_human_whistle_aifc, &gSoundDataRaw[SAMPLE_instruments_03_human_whistle_aifc], 0x006bf5b0, 17136, 0x00000000, 17136);
ROM_ASSET_LOAD_SAMPLE(instruments_04_bright_piano_aifc, &gSoundDataRaw[SAMPLE_instruments_04_bright_piano_aifc], 0x006c38a0, 7696, 0x00000000, 7696);
ROM_ASSET_LOAD_SAMPLE(instruments_05_acoustic_bass_aifc, &gSoundDataRaw[SAMPLE_instruments_05_acoustic_bass_aifc], 0x006c56b0, 14212, 0x00000000, 14212);
ROM_ASSET_LOAD_SAMPLE(instruments_06_kick_drum_1_aifc, &gSoundDataRaw[SAMPLE_instruments_06_kick_drum_1_aifc], 0x006c8e40, 1980, 0x00000000, 1980);
ROM_ASSET_LOAD_SAMPLE(instruments_07_rimshot_aifc, &gSoundDataRaw[SAMPLE_instruments_07_rimshot_aifc], 0x006c9600, 2952, 0x00000000, 2952);
ROM_ASSET_LOAD_SAMPLE(instruments_08_aifc, &gSoundDataRaw[SAMPLE_instruments_08_aifc], 0x006ca190, 5238, 0x00000000, 5238);
ROM_ASSET_LOAD_SAMPLE(instruments_09_aifc, &gSoundDataRaw[SAMPLE_instruments_09_aifc], 0x006cb610, 6840, 0x00000000, 6840);
ROM_ASSET_LOAD_SAMPLE(instruments_0A_tambourine_aifc, &gSoundDataRaw[SAMPLE_instruments_0A_tambourine_aifc], 0x006cd0d0, 9684, 0x00000000, 9684);
ROM_ASSET_LOAD_SAMPLE(instruments_0B_aifc, &gSoundDataRaw[SAMPLE_instruments_0B_aifc], 0x006cf6b0, 7200, 0x00000000, 7200);
ROM_ASSET_LOAD_SAMPLE(instruments_0C_conga_stick_aifc, &gSoundDataRaw[SAMPLE_instruments_0C_conga_stick_aifc], 0x006d12d0, 4500, 0x00000000, 4500);
ROM_ASSET_LOAD_SAMPLE(instruments_0D_clave_aifc, &gSoundDataRaw[SAMPLE_instruments_0D_clave_aifc], 0x006d2470, 4608, 0x00000000, 4608);
ROM_ASSET_LOAD_SAMPLE(instruments_0E_hihat_closed_aifc, &gSoundDataRaw[SAMPLE_instruments_0E_hihat_closed_aifc], 0x006d3670, 2116, 0x00000000, 2116);
ROM_ASSET_LOAD_SAMPLE(instruments_0F_hihat_open_aifc, &gSoundDataRaw[SAMPLE_instruments_0F_hihat_open_aifc], 0x006d3ec0, 12178, 0x00000000, 12178);
ROM_ASSET_LOAD_SAMPLE(instruments_10_cymbal_bell_aifc, &gSoundDataRaw[SAMPLE_instruments_10_cymbal_bell_aifc], 0x006d6e60, 12672, 0x00000000, 12672);
ROM_ASSET_LOAD_SAMPLE(instruments_11_splash_cymbal_aifc, &gSoundDataRaw[SAMPLE_instruments_11_splash_cymbal_aifc], 0x006d9fe0, 18190, 0x00000000, 18190);
ROM_ASSET_LOAD_SAMPLE(instruments_12_snare_drum_1_aifc, &gSoundDataRaw[SAMPLE_instruments_12_snare_drum_1_aifc], 0x006de6f0, 7120, 0x00000000, 7120);
ROM_ASSET_LOAD_SAMPLE(instruments_13_snare_drum_2_aifc, &gSoundDataRaw[SAMPLE_instruments_13_snare_drum_2_aifc], 0x006e02c0, 9838, 0x00000000, 9838);
ROM_ASSET_LOAD_SAMPLE(instruments_14_strings_5_aifc, &gSoundDataRaw[SAMPLE_instruments_14_strings_5_aifc], 0x006e2930, 20296, 0x00000000, 20296);
ROM_ASSET_LOAD_SAMPLE(instruments_15_strings_4_aifc, &gSoundDataRaw[SAMPLE_instruments_15_strings_4_aifc], 0x006e7880, 19278, 0x00000000, 19278);
ROM_ASSET_LOAD_SAMPLE(instruments_16_french_horns_aifc, &gSoundDataRaw[SAMPLE_instruments_16_french_horns_aifc], 0x006ec3d0, 14662, 0x00000000, 14662);
ROM_ASSET_LOAD_SAMPLE(instruments_17_trumpet_aifc, &gSoundDataRaw[SAMPLE_instruments_17_trumpet_aifc], 0x006efd20, 14302, 0x00000000, 14302);
ROM_ASSET_LOAD_SAMPLE(instruments_18_timpani_aifc, &gSoundDataRaw[SAMPLE_instruments_18_timpani_aifc], 0x006f3500, 19872, 0x00000000, 19872);
ROM_ASSET_LOAD_SAMPLE(instruments_19_brass_aifc, &gSoundDataRaw[SAMPLE_instruments_19_brass_aifc], 0x006f82a0, 18118, 0x00000000, 18118);
ROM_ASSET_LOAD_SAMPLE(instruments_1A_slap_bass_aifc, &gSoundDataRaw[SAMPLE_instruments_1A_slap_bass_aifc], 0x006fc970, 9046, 0x00000000, 9046);
ROM_ASSET_LOAD_SAMPLE(instruments_1B_organ_2_aifc, &gSoundDataRaw[SAMPLE_instruments_1B_organ_2_aifc], 0x006fecd0, 15760, 0x00000000, 15760);
ROM_ASSET_LOAD_SAMPLE(instruments_1C_aifc, &gSoundDataRaw[SAMPLE_instruments_1C_aifc], 0x00702a60, 6598, 0x00000000, 6598);
ROM_ASSET_LOAD_SAMPLE(instruments_1D_aifc, &gSoundDataRaw[SAMPLE_instruments_1D_aifc], 0x00704430, 23598, 0x00000000, 23598);
ROM_ASSET_LOAD_SAMPLE(instruments_1E_closed_triangle_aifc, &gSoundDataRaw[SAMPLE_instruments_1E_closed_triangle_aifc], 0x0070a060, 1018, 0x00000000, 1018);
ROM_ASSET_LOAD_SAMPLE(instruments_1F_open_triangle_aifc, &gSoundDataRaw[SAMPLE_instruments_1F_open_triangle_aifc], 0x0070a460, 6264, 0x00000000, 6264);
ROM_ASSET_LOAD_SAMPLE(instruments_20_cabasa_aifc, &gSoundDataRaw[SAMPLE_instruments_20_cabasa_aifc], 0x0070bce0, 4240, 0x00000000, 4240);
ROM_ASSET_LOAD_SAMPLE(instruments_21_sine_bass_aifc, &gSoundDataRaw[SAMPLE_instruments_21_sine_bass_aifc], 0x0070cd70, 7408, 0x00000000, 7408);
ROM_ASSET_LOAD_SAMPLE(instruments_22_boys_choir_aifc, &gSoundDataRaw[SAMPLE_instruments_22_boys_choir_aifc], 0x0070ea60, 14086, 0x00000000, 14086);
ROM_ASSET_LOAD_SAMPLE(instruments_23_strings_1_aifc, &gSoundDataRaw[SAMPLE_instruments_23_strings_1_aifc], 0x00712170, 15886, 0x00000000, 15886);
ROM_ASSET_LOAD_SAMPLE(instruments_24_strings_2_aifc, &gSoundDataRaw[SAMPLE_instruments_24_strings_2_aifc], 0x00715f80, 18154, 0x00000000, 18154);
ROM_ASSET_LOAD_SAMPLE(instruments_25_strings_3_aifc, &gSoundDataRaw[SAMPLE_instruments_25_strings_3_aifc], 0x0071a670, 17496, 0x00000000, 17496);
ROM_ASSET_LOAD_SAMPLE(instruments_26_crystal_rhodes_aifc, &gSoundDataRaw[SAMPLE_instruments_26_crystal_rhodes_aifc], 0x0071ead0, 28908, 0x00000000, 28908);
ROM_ASSET_LOAD_SAMPLE(instruments_27_harpsichord_aifc, &gSoundDataRaw[SAMPLE_instruments_27_harpsichord_aifc], 0x00725bc0, 26190, 0x00000000, 26190);
ROM_ASSET_LOAD_SAMPLE(instruments_28_sitar_1_aifc, &gSoundDataRaw[SAMPLE_instruments_28_sitar_1_aifc], 0x0072c210, 15858, 0x00000000, 15858);
ROM_ASSET_LOAD_SAMPLE(instruments_29_orchestra_hit_aifc, &gSoundDataRaw[SAMPLE_instruments_29_orchestra_hit_aifc], 0x00730010, 12672, 0x00000000, 12672);
ROM_ASSET_LOAD_SAMPLE(instruments_2A_aifc, &gSoundDataRaw[SAMPLE_instruments_2A_aifc], 0x00733190, 14040, 0x00000000, 14040);
ROM_ASSET_LOAD_SAMPLE(instruments_2B_aifc, &gSoundDataRaw[SAMPLE_instruments_2B_aifc], 0x00736870, 7660, 0x00000000, 7660);
ROM_ASSET_LOAD_SAMPLE(instruments_2C_aifc, &gSoundDataRaw[SAMPLE_instruments_2C_aifc], 0x00738660, 17982, 0x00000000, 17982);
ROM_ASSET_LOAD_SAMPLE(instruments_2D_trombone_aifc, &gSoundDataRaw[SAMPLE_instruments_2D_trombone_aifc], 0x0073cca0, 15372, 0x00000000, 15372);
ROM_ASSET_LOAD_SAMPLE(instruments_2E_accordion_aifc, &gSoundDataRaw[SAMPLE_instruments_2E_accordion_aifc], 0x007408b0, 18234, 0x00000000, 18234);
ROM_ASSET_LOAD_SAMPLE(instruments_2F_sleigh_bells_aifc, &gSoundDataRaw[SAMPLE_instruments_2F_sleigh_bells_aifc], 0x00744ff0, 20844, 0x00000000, 20844);
ROM_ASSET_LOAD_SAMPLE(instruments_30_rarefaction_lahna_aifc, &gSoundDataRaw[SAMPLE_instruments_30_rarefaction_lahna_aifc], 0x0074a160, 17956, 0x00000000, 17956);
ROM_ASSET_LOAD_SAMPLE(instruments_31_rarefaction_convolution_aifc, &gSoundDataRaw[SAMPLE_instruments_31_rarefaction_convolution_aifc], 0x0074e790, 15418, 0x00000000, 15418);
ROM_ASSET_LOAD_SAMPLE(instruments_32_metal_rimshot_aifc, &gSoundDataRaw[SAMPLE_instruments_32_metal_rimshot_aifc], 0x007523d0, 16776, 0x00000000, 16776);
ROM_ASSET_LOAD_SAMPLE(instruments_33_kick_drum_2_aifc, &gSoundDataRaw[SAMPLE_instruments_33_kick_drum_2_aifc], 0x00756560, 4546, 0x00000000, 4546);
ROM_ASSET_LOAD_SAMPLE(instruments_34_alto_flute_aifc, &gSoundDataRaw[SAMPLE_instruments_34_alto_flute_aifc], 0x00757730, 9370, 0x00000000, 9370);
ROM_ASSET_LOAD_SAMPLE(instruments_35_gospel_organ_aifc, &gSoundDataRaw[SAMPLE_instruments_35_gospel_organ_aifc], 0x00759bd0, 10756, 0x00000000, 10756);
ROM_ASSET_LOAD_SAMPLE(instruments_36_sawtooth_synth_aifc, &gSoundDataRaw[SAMPLE_instruments_36_sawtooth_synth_aifc], 0x0075c5e0, 8326, 0x00000000, 8326);
ROM_ASSET_LOAD_SAMPLE(instruments_37_square_synth_aifc, &gSoundDataRaw[SAMPLE_instruments_37_square_synth_aifc], 0x0075e670, 7444, 0x00000000, 7444);
ROM_ASSET_LOAD_SAMPLE(instruments_38_electric_kick_drum_aifc, &gSoundDataRaw[SAMPLE_instruments_38_electric_kick_drum_aifc], 0x00760390, 2494, 0x00000000, 2494);
ROM_ASSET_LOAD_SAMPLE(instruments_39_sitar_2_aifc, &gSoundDataRaw[SAMPLE_instruments_39_sitar_2_aifc], 0x00760d50, 21096, 0x00000000, 21096);
ROM_ASSET_LOAD_SAMPLE(instruments_3A_music_box_aifc, &gSoundDataRaw[SAMPLE_instruments_3A_music_box_aifc], 0x00765fc0, 14976, 0x00000000, 14976);
ROM_ASSET_LOAD_SAMPLE(instruments_3B_banjo_2_aifc, &gSoundDataRaw[SAMPLE_instruments_3B_banjo_2_aifc], 0x00769a40, 23148, 0x00000000, 23148);
ROM_ASSET_LOAD_SAMPLE(instruments_3C_acoustic_guitar_aifc, &gSoundDataRaw[SAMPLE_instruments_3C_acoustic_guitar_aifc], 0x0076f4b0, 19234, 0x00000000, 19234);
ROM_ASSET_LOAD_SAMPLE(instruments_3D_aifc, &gSoundDataRaw[SAMPLE_instruments_3D_aifc], 0x00773fe0, 12430, 0x00000000, 12430);
ROM_ASSET_LOAD_SAMPLE(instruments_3E_monk_choir_aifc, &gSoundDataRaw[SAMPLE_instruments_3E_monk_choir_aifc], 0x00777070, 11484, 0x00000000, 11484);
ROM_ASSET_LOAD_SAMPLE(instruments_3F_aifc, &gSoundDataRaw[SAMPLE_instruments_3F_aifc], 0x00779d50, 19872, 0x00000000, 19872);
ROM_ASSET_LOAD_SAMPLE(instruments_40_bell_aifc, &gSoundDataRaw[SAMPLE_instruments_40_bell_aifc], 0x0077eaf0, 15444, 0x00000000, 15444);
ROM_ASSET_LOAD_SAMPLE(instruments_41_pan_flute_aifc, &gSoundDataRaw[SAMPLE_instruments_41_pan_flute_aifc], 0x00782750, 17982, 0x00000000, 17982);
ROM_ASSET_LOAD_SAMPLE(instruments_42_vibraphone_aifc, &gSoundDataRaw[SAMPLE_instruments_42_vibraphone_aifc], 0x00786d90, 2988, 0x00000000, 2988);
ROM_ASSET_LOAD_SAMPLE(instruments_43_harmonica_aifc, &gSoundDataRaw[SAMPLE_instruments_43_harmonica_aifc], 0x00787940, 12718, 0x00000000, 12718);
ROM_ASSET_LOAD_SAMPLE(instruments_44_grand_piano_aifc, &gSoundDataRaw[SAMPLE_instruments_44_grand_piano_aifc], 0x0078aaf0, 15238, 0x00000000, 15238);
ROM_ASSET_LOAD_SAMPLE(instruments_45_french_horns_lq_aifc, &gSoundDataRaw[SAMPLE_instruments_45_french_horns_lq_aifc], 0x0078e680, 7362, 0x00000000, 7362);
ROM_ASSET_LOAD_SAMPLE(instruments_46_pizzicato_strings_1_aifc, &gSoundDataRaw[SAMPLE_instruments_46_pizzicato_strings_1_aifc], 0x00790350, 11386, 0x00000000, 11386);
ROM_ASSET_LOAD_SAMPLE(instruments_47_pizzicato_strings_2_aifc, &gSoundDataRaw[SAMPLE_instruments_47_pizzicato_strings_2_aifc], 0x00792fd0, 13356, 0x00000000, 13356);
ROM_ASSET_LOAD_SAMPLE(instruments_48_steel_drum_aifc, &gSoundDataRaw[SAMPLE_instruments_48_steel_drum_aifc], 0x00796400, 14788, 0x00000000, 14788);
ROM_ASSET_LOAD_SAMPLE(piranha_music_box_00_music_box_aifc, &gSoundDataRaw[SAMPLE_piranha_music_box_00_music_box_aifc], 0x00765fc0, 14976, 0x00000000, 14976);
ROM_ASSET_LOAD_SAMPLE(course_start_00_la_aifc, &gSoundDataRaw[SAMPLE_course_start_00_la_aifc], 0x0079d850, 6480, 0x00000000, 6480);
ROM_ASSET_LOAD_SAMPLE(bowser_organ_00_organ_1_aifc, &gSoundDataRaw[SAMPLE_bowser_organ_00_organ_1_aifc], 0x0079f1a0, 40438, 0x00000000, 40438);
ROM_ASSET_LOAD_SAMPLE(bowser_organ_01_organ_1_lq_aifc, &gSoundDataRaw[SAMPLE_bowser_organ_01_organ_1_lq_aifc], 0x007a8fa0, 16786, 0x00000000, 16786);
ROM_ASSET_LOAD_SAMPLE(bowser_organ_02_boys_choir_aifc, &gSoundDataRaw[SAMPLE_bowser_organ_02_boys_choir_aifc], 0x0070ea60, 14086, 0x00000000, 14086);
ROM_ASSET_LOAD_SAMPLE(extended_00_aifc, &gSoundDataRaw[SAMPLE_extended_00_aifc], 0x006b5b00, 11826, 0x00000000, 11826);
ROM_ASSET_LOAD_SAMPLE(extended_00_la_aifc, &gSoundDataRaw[SAMPLE_extended_00_la_aifc], 0x0079d850, 6480, 0x00000000, 6480);
ROM_ASSET_LOAD_SAMPLE(extended_00_music_box_aifc, &gSoundDataRaw[SAMPLE_extended_00_music_box_aifc], 0x00765fc0, 14976, 0x00000000, 14976);
ROM_ASSET_LOAD_SAMPLE(extended_00_organ_1_aifc, &gSoundDataRaw[SAMPLE_extended_00_organ_1_aifc], 0x0079f1a0, 40438, 0x00000000, 40438);
ROM_ASSET_LOAD_SAMPLE(extended_01_banjo_1_aifc, &gSoundDataRaw[SAMPLE_extended_01_banjo_1_aifc], 0x006b8940, 10396, 0x00000000, 10396);
ROM_ASSET_LOAD_SAMPLE(extended_01_organ_1_lq_aifc, &gSoundDataRaw[SAMPLE_extended_01_organ_1_lq_aifc], 0x007a8fa0, 16786, 0x00000000, 16786);
ROM_ASSET_LOAD_SAMPLE(extended_02_aifc, &gSoundDataRaw[SAMPLE_extended_02_aifc], 0x006bb1e0, 17352, 0x00000000, 17352);
ROM_ASSET_LOAD_SAMPLE(extended_02_boys_choir_aifc, &gSoundDataRaw[SAMPLE_extended_02_boys_choir_aifc], 0x0070ea60, 14086, 0x00000000, 14086);
ROM_ASSET_LOAD_SAMPLE(extended_03_human_whistle_aifc, &gSoundDataRaw[SAMPLE_extended_03_human_whistle_aifc], 0x006bf5b0, 17136, 0x00000000, 17136);
ROM_ASSET_LOAD_SAMPLE(extended_04_bright_piano_aifc, &gSoundDataRaw[SAMPLE_extended_04_bright_piano_aifc], 0x006c38a0, 7696, 0x00000000, 7696);
ROM_ASSET_LOAD_SAMPLE(extended_05_acoustic_bass_aifc, &gSoundDataRaw[SAMPLE_extended_05_acoustic_bass_aifc], 0x006c56b0, 14212, 0x00000000, 14212);
ROM_ASSET_LOAD_SAMPLE(extended_06_kick_drum_1_aifc, &gSoundDataRaw[SAMPLE_extended_06_kick_drum_1_aifc], 0x006c8e40, 1980, 0x00000000, 1980);
ROM_ASSET_LOAD_SAMPLE(extended_07_rimshot_aifc, &gSoundDataRaw[SAMPLE_extended_07_rimshot_aifc], 0x006c9600, 2952, 0x00000000, 2952);
ROM_ASSET_LOAD_SAMPLE(extended_08_aifc, &gSoundDataRaw[SAMPLE_extended_08_aifc], 0x006ca190, 5238, 0x00000000, 5238);
ROM_ASSET_LOAD_SAMPLE(extended_09_aifc, &gSoundDataRaw[SAMPLE_extended_09_aifc], 0x006cb610, 6840, 0x00000000, 6840);
ROM_ASSET_LOAD_SAMPLE(extended_0A_tambourine_aifc, &gSoundDataRaw[SAMPLE_extended_0A_tambourine_aifc], 0x006cd0d0, 9684, 0x00000000, 9684);
ROM_ASSET_LOAD_SAMPLE(extended_0B_aifc, &gSoundDataRaw[SAMPLE_extended_0B_aifc], 0x006cf6b0, 7200, 0x00000000, 7200);
ROM_ASSET_LOAD_SAMPLE(extended_0C_conga_stick_aifc, &gSoundDataRaw[SAMPLE_extended_0C_conga_stick_aifc], 0x006d12d0, 4500, 0x00000000, 4500);
ROM_ASSET_LOAD_SAMPLE(extended_0D_clave_aifc, &gSoundDataRaw[SAMPLE_extended_0D_clave_aifc], 0x006d2470, 4608, 0x00000000, 4608);
ROM_ASSET_LOAD_SAMPLE(extended_0E_hihat_closed_aifc, &gSoundDataRaw[SAMPLE_extended_0E_hihat_closed_aifc], 0x006d3670, 2116, 0x00000000, 2116);
ROM_ASSET_LOAD_SAMPLE(extended_0F_hihat_open_aifc, &gSoundDataRaw[SAMPLE_extended_0F_hihat_open_aifc], 0x006d3ec0, 12178, 0x00000000, 12178);
ROM_ASSET_LOAD_SAMPLE(extended_10_cymbal_bell_aifc, &gSoundDataRaw[SAMPLE_extended_10_cymbal_bell_aifc], 0x006d6e60, 12672, 0x00000000, 12672);
ROM_ASSET_LOAD_SAMPLE(extended_11_splash_cymbal_aifc, &gSoundDataRaw[SAMPLE_extended_11_splash_cymbal_aifc], 0x006d9fe0, 18190, 0x00000000, 18190);
ROM_ASSET_LOAD_SAMPLE(extended_12_snare_drum_1_aifc, &gSoundDataRaw[SAMPLE_extended_12_snare_drum_1_aifc], 0x006de6f0, 7120, 0x00000000, 7120);
ROM_ASSET_LOAD_SAMPLE(extended_13_snare_drum_2_aifc, &gSoundDataRaw[SAMPLE_extended_13_snare_drum_2_aifc], 0x006e02c0, 9838, 0x00000000, 9838);
ROM_ASSET_LOAD_SAMPLE(extended_14_strings_5_aifc, &gSoundDataRaw[SAMPLE_extended_14_strings_5_aifc], 0x006e2930, 20296, 0x00000000, 20296);
ROM_ASSET_LOAD_SAMPLE(extended_15_strings_4_aifc, &gSoundDataRaw[SAMPLE_extended_15_strings_4_aifc], 0x006e7880, 19278, 0x00000000, 19278);
ROM_ASSET_LOAD_SAMPLE(extended_16_french_horns_aifc, &gSoundDataRaw[SAMPLE_extended_16_french_horns_aifc], 0x006ec3d0, 14662, 0x00000000, 14662);
ROM_ASSET_LOAD_SAMPLE(extended_17_trumpet_aifc, &gSoundDataRaw[SAMPLE_extended_17_trumpet_aifc], 0x006efd20, 14302, 0x00000000, 14302);
ROM_ASSET_LOAD_SAMPLE(extended_18_timpani_aifc, &gSoundDataRaw[SAMPLE_extended_18_timpani_aifc], 0x006f3500, 19872, 0x00000000, 19872);
ROM_ASSET_LOAD_SAMPLE(extended_19_brass_aifc, &gSoundDataRaw[SAMPLE_extended_19_brass_aifc], 0x006f82a0, 18118, 0x00000000, 18118);
ROM_ASSET_LOAD_SAMPLE(extended_1A_slap_bass_aifc, &gSoundDataRaw[SAMPLE_extended_1A_slap_bass_aifc], 0x006fc970, 9046, 0x00000000, 9046);
ROM_ASSET_LOAD_SAMPLE(extended_1B_organ_2_aifc, &gSoundDataRaw[SAMPLE_extended_1B_organ_2_aifc], 0x006fecd0, 15760, 0x00000000, 15760);
ROM_ASSET_LOAD_SAMPLE(extended_1C_aifc, &gSoundDataRaw[SAMPLE_extended_1C_aifc], 0x00702a60, 6598, 0x00000000, 6598);
ROM_ASSET_LOAD_SAMPLE(extended_1D_aifc, &gSoundDataRaw[SAMPLE_extended_1D_aifc], 0x00704430, 23598, 0x00000000, 23598);
ROM_ASSET_LOAD_SAMPLE(extended_1E_closed_triangle_aifc, &gSoundDataRaw[SAMPLE_extended_1E_closed_triangle_aifc], 0x0070a060, 1018, 0x00000000, 1018);
ROM_ASSET_LOAD_SAMPLE(extended_1F_open_triangle_aifc, &gSoundDataRaw[SAMPLE_extended_1F_open_triangle_aifc], 0x0070a460, 6264, 0x00000000, 6264);
ROM_ASSET_LOAD_SAMPLE(extended_20_cabasa_aifc, &gSoundDataRaw[SAMPLE_extended_20_cabasa_aifc], 0x0070bce0, 4240, 0x00000000, 4240);
ROM_ASSET_LOAD_SAMPLE(extended_21_sine_bass_aifc, &gSoundDataRaw[SAMPLE_extended_21_sine_bass_aifc], 0x0070cd70, 7408, 0x00000000, 7408);
ROM_ASSET_LOAD_SAMPLE(extended_22_boys_choir_aifc, &gSoundDataRaw[SAMPLE_extended_22_boys_choir_aifc], 0x0070ea60, 14086, 0x00000000, 14086);
ROM_ASSET_LOAD_SAMPLE(extended_23_strings_1_aifc, &gSoundDataRaw[SAMPLE_extended_23_strings_1_aifc], 0x00712170, 15886, 0x00000000, 15886);
ROM_ASSET_LOAD_SAMPLE(extended_24_strings_2_aifc, &gSoundDataRaw[SAMPLE_extended_24_strings_2_aifc], 0x00715f80, 18154, 0x00000000, 18154);
ROM_ASSET_LOAD_SAMPLE(extended_25_strings_3_aifc, &gSoundDataRaw[SAMPLE_extended_25_strings_3_aifc], 0x0071a670, 17496, 0x00000000, 17496);
ROM_ASSET_LOAD_SAMPLE(extended_26_crystal_rhodes_aifc, &gSoundDataRaw[SAMPLE_extended_26_crystal_rhodes_aifc], 0x0071ead0, 28908, 0x00000000, 28908);
ROM_ASSET_LOAD_SAMPLE(extended_27_harpsichord_aifc, &gSoundDataRaw[SAMPLE_extended_27_harpsichord_aifc], 0x00725bc0, 26190, 0x00000000, 26190);
ROM_ASSET_LOAD_SAMPLE(extended_28_sitar_1_aifc, &gSoundDataRaw[SAMPLE_extended_28_sitar_1_aifc], 0x0072c210, 15858, 0x00000000, 15858);
ROM_ASSET_LOAD_SAMPLE(extended_29_orchestra_hit_aifc, &gSoundDataRaw[SAMPLE_extended_29_orchestra_hit_aifc], 0x00730010, 12672, 0x00000000, 12672);
ROM_ASSET_LOAD_SAMPLE(extended_2A_aifc, &gSoundDataRaw[SAMPLE_extended_2A_aifc], 0x00733190, 14040, 0x00000000, 14040);
ROM_ASSET_LOAD_SAMPLE(extended_2B_aifc, &gSoundDataRaw[SAMPLE_extended_2B_aifc], 0x00736870, 7660, 0x00000000, 7660);
ROM_ASSET_LOAD_SAMPLE(extended_2C_aifc, &gSoundDataRaw[SAMPLE_extended_2C_aifc], 0x00738660, 17982, 0x00000000, 17982);
ROM_ASSET_LOAD_SAMPLE(extended_2D_trombone_aifc, &gSoundDataRaw[SAMPLE_extended_2D_trombone_aifc], 0x0073cca0, 15372, 0x00000000, 15372);
ROM_ASSET_LOAD_SAMPLE(extended_2E_accordion_aifc, &gSoundDataRaw[SAMPLE_extended_2E_accordion_aifc], 0x007408b0, 18234, 0x00000000, 18234);
ROM_ASSET_LOAD_SAMPLE(extended_2F_sleigh_bells_aifc, &gSoundDataRaw[SAMPLE_extended_2F_sleigh_bells_aifc], 0x00744ff0, 20844, 0x00000000, 20844);
ROM_ASSET_LOAD_SAMPLE(extended_30_rarefaction_lahna_aifc, &gSoundDataRaw[SAMPLE_extended_30_rarefaction_lahna_aifc], 0x0074a160, 17956, 0x00000000, 17956);
ROM_ASSET_LOAD_SAMPLE(extended_31_rarefaction_convolution_aifc, &gSoundDataRaw[SAMPLE_extended_31_rarefaction_convolution_aifc], 0x0074e790, 15418, 0x00000000, 15418);
ROM_ASSET_LOAD_SAMPLE(extended_32_metal_rimshot_aifc, &gSoundDataRaw[SAMPLE_extended_32_metal_rimshot_aifc], 0x007523d0, 16776, 0x00000000, 16776);
ROM_ASSET_LOAD_SAMPLE(extended_33_kick_drum_2_aifc, &gSoundDataRaw[SAMPLE_extended_33_kick_drum_2_aifc], 0x00756560, 4546, 0x00000000, 4546);
ROM_ASSET_LOAD_SAMPLE(extended_34_alto_flute_aifc, &gSoundDataRaw[SAMPLE_extended_34_alto_flute_aifc], 0x00757730, 9370, 0x00000000, 9370);
ROM_ASSET_LOAD_SAMPLE(extended_35_gospel_organ_aifc, &gSoundDataRaw[SAMPLE_extended_35_gospel_organ_aifc], 0x00759bd0, 10756, 0x00000000, 10756);
ROM_ASSET_LOAD_SAMPLE(extended_36_sawtooth_synth_aifc, &gSoundDataRaw[SAMPLE_extended_36_sawtooth_synth_aifc], 0x0075c5e0, 8326, 0x00000000, 8326);
ROM_ASSET_LOAD_SAMPLE(extended_37_square_synth_aifc, &gSoundDataRaw[SAMPLE_extended_37_square_synth_aifc], 0x0075e670, 7444, 0x00000000, 7444);
ROM_ASSET_LOAD_SAMPLE(extended_38_electric_kick_drum_aifc, &gSoundDataRaw[SAMPLE_extended_38_electric_kick_drum_aifc], 0x00760390, 2494, 0x00000000, 2494);
ROM_ASSET_LOAD_SAMPLE(extended_39_sitar_2_aifc, &gSoundDataRaw[SAMPLE_extended_39_sitar_2_aifc], 0x00760d50, 21096, 0x00000000, 21096);
ROM_ASSET_LOAD_SAMPLE(extended_3A_music_box_aifc, &gSoundDataRaw[SAMPLE_extended_3A_music_box_aifc], 0x00765fc0, 14976, 0x00000000, 14976);
ROM_ASSET_LOAD_SAMPLE(extended_3B_banjo_2_aifc, &gSoundDataRaw[SAMPLE_extended_3B_banjo_2_aifc], 0x00769a40, 23148, 0x00000000, 23148);
ROM_ASSET_LOAD_SAMPLE(extended_3C_acoustic_guitar_aifc, &gSoundDataRaw[SAMPLE_extended_3C_acoustic_guitar_aifc], 0x0076f4b0, 19234, 0x00000000, 19234);
ROM_ASSET_LOAD_SAMPLE(extended_3D_aifc, &gSoundDataRaw[SAMPLE_extended_3D_aifc], 0x00773fe0, 12430, 0x00000000, 12430);
ROM_ASSET_LOAD_SAMPLE(extended_3E_monk_choir_aifc, &gSoundDataRaw[SAMPLE_extended_3E_monk_choir_aifc], 0x00777070, 11484, 0x00000000, 11484);
ROM_ASSET_LOAD_SAMPLE(extended_3F_aifc, &gSoundDataRaw[SAMPLE_extended_3F_aifc], 0x00779d50, 19872, 0x00000000, 19872);
ROM_ASSET_LOAD_SAMPLE(extended_40_bell_aifc, &gSoundDataRaw[SAMPLE_extended_40_bell_aifc], 0x0077eaf0, 15444, 0x00000000, 15444);
ROM_ASSET_LOAD_SAMPLE(extended_41_pan_flute_aifc, &gSoundDataRaw[SAMPLE_extended_41_pan_flute_aifc], 0x00782750, 17982, 0x00000000, 17982);
ROM_ASSET_LOAD_SAMPLE(extended_42_vibraphone_aifc, &gSoundDataRaw[SAMPLE_extended_42_vibraphone_aifc], 0x00786d90, 2988, 0x00000000, 2988);
ROM_ASSET_LOAD_SAMPLE(extended_43_harmonica_aifc, &gSoundDataRaw[SAMPLE_extended_43_harmonica_aifc], 0x00787940, 12718, 0x00000000, 12718);
ROM_ASSET_LOAD_SAMPLE(extended_44_grand_piano_aifc, &gSoundDataRaw[SAMPLE_extended_44_grand_piano_aifc], 0x0078aaf0, 15238, 0x00000000, 15238);
ROM_ASSET_LOAD_SAMPLE(extended_45_french_horns_lq_aifc, &gSoundDataRaw[SAMPLE_extended_45_french_horns_lq_aifc], 0x0078e680, 7362, 0x00000000, 7362);
ROM_ASSET_LOAD_SAMPLE(extended_46_pizzicato_strings_1_aifc, &gSoundDataRaw[SAMPLE_extended_46_pizzicato_strings_1_aifc], 0x00790350, 11386, 0x00000000, 11386);
ROM_ASSET_LOAD_SAMPLE(extended_47_pizzicato_strings_2_aifc, &gSoundDataRaw[SAMPLE_extended_47_pizzicato_strings_2_aifc], 0x00792fd0, 13356, 0x00000000, 13356);
ROM_ASSET_LOAD_SAMPLE(extended_48_steel_drum_aifc, &gSoundDataRaw[SAMPLE_extended_48_steel_drum_aifc], 0x00796400, 14788, 0x00000000, 14788);

297
sound/samples_offsets.h Normal file
View file

@ -0,0 +1,297 @@
#define SAMPLE_sfx_1_00_twirl_aifc 0x2e0 // build/us_pc/sound/samples/sfx_1/00_twirl.aifc
#define SAMPLE_sfx_1_01_brushing_aifc 0x9d0 // build/us_pc/sound/samples/sfx_1/01_brushing.aifc
#define SAMPLE_sfx_1_02_hand_touch_aifc 0x32a0 // build/us_pc/sound/samples/sfx_1/02_hand_touch.aifc
#define SAMPLE_sfx_1_03_yoshi_aifc 0x35d0 // build/us_pc/sound/samples/sfx_1/03_yoshi.aifc
#define SAMPLE_sfx_1_04_plop_aifc 0x47a0 // build/us_pc/sound/samples/sfx_1/04_plop.aifc
#define SAMPLE_sfx_1_05_heavy_landing_aifc 0x5930 // build/us_pc/sound/samples/sfx_1/05_heavy_landing.aifc
#define SAMPLE_sfx_terrain_00_step_default_aifc 0x7480 // build/us_pc/sound/samples/sfx_terrain/00_step_default.aifc
#define SAMPLE_sfx_terrain_01_step_grass_aifc 0x74e0 // build/us_pc/sound/samples/sfx_terrain/01_step_grass.aifc
#define SAMPLE_sfx_terrain_02_step_stone_aifc 0x7790 // build/us_pc/sound/samples/sfx_terrain/02_step_stone.aifc
#define SAMPLE_sfx_terrain_03_step_spooky_aifc 0x79d0 // build/us_pc/sound/samples/sfx_terrain/03_step_spooky.aifc
#define SAMPLE_sfx_terrain_04_step_snow_aifc 0x8060 // build/us_pc/sound/samples/sfx_terrain/04_step_snow.aifc
#define SAMPLE_sfx_terrain_05_step_ice_aifc 0x86e0 // build/us_pc/sound/samples/sfx_terrain/05_step_ice.aifc
#define SAMPLE_sfx_terrain_06_step_metal_aifc 0x8840 // build/us_pc/sound/samples/sfx_terrain/06_step_metal.aifc
#define SAMPLE_sfx_terrain_07_step_sand_aifc 0xa220 // build/us_pc/sound/samples/sfx_terrain/07_step_sand.aifc
#define SAMPLE_sfx_water_00_plunge_aifc 0xae50 // build/us_pc/sound/samples/sfx_water/00_plunge.aifc
#define SAMPLE_sfx_water_01_splash_aifc 0xe5e0 // build/us_pc/sound/samples/sfx_water/01_splash.aifc
#define SAMPLE_sfx_water_02_swim_aifc 0xfad0 // build/us_pc/sound/samples/sfx_water/02_swim.aifc
#define SAMPLE_sfx_4_00_aifc 0x11660 // build/us_pc/sound/samples/sfx_4/00.aifc
#define SAMPLE_sfx_4_01_aifc 0x132f0 // build/us_pc/sound/samples/sfx_4/01.aifc
#define SAMPLE_sfx_4_02_aifc 0x144c0 // build/us_pc/sound/samples/sfx_4/02.aifc
#define SAMPLE_sfx_4_03_aifc 0x15580 // build/us_pc/sound/samples/sfx_4/03.aifc
#define SAMPLE_sfx_4_04_aifc 0x16a50 // build/us_pc/sound/samples/sfx_4/04.aifc
#define SAMPLE_sfx_4_05_aifc 0x17500 // build/us_pc/sound/samples/sfx_4/05.aifc
#define SAMPLE_sfx_4_06_aifc 0x18010 // build/us_pc/sound/samples/sfx_4/06.aifc
#define SAMPLE_sfx_4_07_aifc 0x18a60 // build/us_pc/sound/samples/sfx_4/07.aifc
#define SAMPLE_sfx_4_08_aifc 0x198c0 // build/us_pc/sound/samples/sfx_4/08.aifc
#define SAMPLE_sfx_4_09_aifc 0x1c140 // build/us_pc/sound/samples/sfx_4/09.aifc
#define SAMPLE_sfx_5_00_aifc 0x1c910 // build/us_pc/sound/samples/sfx_5/00.aifc
#define SAMPLE_sfx_5_01_aifc 0x1def0 // build/us_pc/sound/samples/sfx_5/01.aifc
#define SAMPLE_sfx_5_02_aifc 0x1ef20 // build/us_pc/sound/samples/sfx_5/02.aifc
#define SAMPLE_sfx_5_03_aifc 0x21ba0 // build/us_pc/sound/samples/sfx_5/03.aifc
#define SAMPLE_sfx_5_04_aifc 0x23360 // build/us_pc/sound/samples/sfx_5/04.aifc
#define SAMPLE_sfx_5_05_aifc 0x24560 // build/us_pc/sound/samples/sfx_5/05.aifc
#define SAMPLE_sfx_5_06_aifc 0x27d00 // build/us_pc/sound/samples/sfx_5/06.aifc
#define SAMPLE_sfx_5_07_aifc 0x284b0 // build/us_pc/sound/samples/sfx_5/07.aifc
#define SAMPLE_sfx_5_08_aifc 0x2a820 // build/us_pc/sound/samples/sfx_5/08.aifc
#define SAMPLE_sfx_5_09_aifc 0x2b2a0 // build/us_pc/sound/samples/sfx_5/09.aifc
#define SAMPLE_sfx_5_0A_aifc 0x2b9b0 // build/us_pc/sound/samples/sfx_5/0A.aifc
#define SAMPLE_sfx_5_0B_aifc 0x2bf80 // build/us_pc/sound/samples/sfx_5/0B.aifc
#define SAMPLE_sfx_5_0C_aifc 0x2eb90 // build/us_pc/sound/samples/sfx_5/0C.aifc
#define SAMPLE_sfx_5_0D_aifc 0x344a0 // build/us_pc/sound/samples/sfx_5/0D.aifc
#define SAMPLE_sfx_5_0E_aifc 0x3c2f0 // build/us_pc/sound/samples/sfx_5/0E.aifc
#define SAMPLE_sfx_5_0F_aifc 0x3d360 // build/us_pc/sound/samples/sfx_5/0F.aifc
#define SAMPLE_sfx_5_10_aifc 0x3f810 // build/us_pc/sound/samples/sfx_5/10.aifc
#define SAMPLE_sfx_5_11_aifc 0x3fc50 // build/us_pc/sound/samples/sfx_5/11.aifc
#define SAMPLE_sfx_5_12_aifc 0x43340 // build/us_pc/sound/samples/sfx_5/12.aifc
#define SAMPLE_sfx_5_13_aifc 0x43fd0 // build/us_pc/sound/samples/sfx_5/13.aifc
#define SAMPLE_sfx_5_14_aifc 0x478a0 // build/us_pc/sound/samples/sfx_5/14.aifc
#define SAMPLE_sfx_5_15_aifc 0x4a1b0 // build/us_pc/sound/samples/sfx_5/15.aifc
#define SAMPLE_sfx_5_16_aifc 0x4a980 // build/us_pc/sound/samples/sfx_5/16.aifc
#define SAMPLE_sfx_5_17_aifc 0x4b330 // build/us_pc/sound/samples/sfx_5/17.aifc
#define SAMPLE_sfx_5_18_aifc 0x4c290 // build/us_pc/sound/samples/sfx_5/18.aifc
#define SAMPLE_sfx_5_19_aifc 0x4cab0 // build/us_pc/sound/samples/sfx_5/19.aifc
#define SAMPLE_sfx_5_1A_aifc 0x4cde0 // build/us_pc/sound/samples/sfx_5/1A.aifc
#define SAMPLE_sfx_5_1B_aifc 0x4f610 // build/us_pc/sound/samples/sfx_5/1B.aifc
#define SAMPLE_sfx_5_1C_aifc 0x50fc0 // build/us_pc/sound/samples/sfx_5/1C.aifc
#define SAMPLE_sfx_6_00_aifc 0x52040 // build/us_pc/sound/samples/sfx_6/00.aifc
#define SAMPLE_sfx_6_01_aifc 0x528d0 // build/us_pc/sound/samples/sfx_6/01.aifc
#define SAMPLE_sfx_6_02_aifc 0x53590 // build/us_pc/sound/samples/sfx_6/02.aifc
#define SAMPLE_sfx_6_03_aifc 0x558a0 // build/us_pc/sound/samples/sfx_6/03.aifc
#define SAMPLE_sfx_6_04_aifc 0x59650 // build/us_pc/sound/samples/sfx_6/04.aifc
#define SAMPLE_sfx_6_05_aifc 0x5a140 // build/us_pc/sound/samples/sfx_6/05.aifc
#define SAMPLE_sfx_6_06_aifc 0x5bb00 // build/us_pc/sound/samples/sfx_6/06.aifc
#define SAMPLE_sfx_6_07_aifc 0x5c1c0 // build/us_pc/sound/samples/sfx_6/07.aifc
#define SAMPLE_sfx_6_08_aifc 0x5c6f0 // build/us_pc/sound/samples/sfx_6/08.aifc
#define SAMPLE_sfx_6_09_aifc 0x5e380 // build/us_pc/sound/samples/sfx_6/09.aifc
#define SAMPLE_sfx_6_0A_aifc 0x5eca0 // build/us_pc/sound/samples/sfx_6/0A.aifc
#define SAMPLE_sfx_6_0B_aifc 0x5f620 // build/us_pc/sound/samples/sfx_6/0B.aifc
#define SAMPLE_sfx_6_0C_aifc 0x5feb0 // build/us_pc/sound/samples/sfx_6/0C.aifc
#define SAMPLE_sfx_6_0D_aifc 0x61360 // build/us_pc/sound/samples/sfx_6/0D.aifc
#define SAMPLE_sfx_7_00_aifc 0x63be0 // build/us_pc/sound/samples/sfx_7/00.aifc
#define SAMPLE_sfx_7_01_aifc 0x640a0 // build/us_pc/sound/samples/sfx_7/01.aifc
#define SAMPLE_sfx_7_02_aifc 0x64ef0 // build/us_pc/sound/samples/sfx_7/02.aifc
#define SAMPLE_sfx_7_03_aifc 0x653b0 // build/us_pc/sound/samples/sfx_7/03.aifc
#define SAMPLE_sfx_7_04_aifc 0x67d10 // build/us_pc/sound/samples/sfx_7/04.aifc
#define SAMPLE_sfx_7_05_aifc 0x6a750 // build/us_pc/sound/samples/sfx_7/05.aifc
#define SAMPLE_sfx_7_06_aifc 0x6b760 // build/us_pc/sound/samples/sfx_7/06.aifc
#define SAMPLE_sfx_7_07_aifc 0x6ca30 // build/us_pc/sound/samples/sfx_7/07.aifc
#define SAMPLE_sfx_7_08_aifc 0x6de10 // build/us_pc/sound/samples/sfx_7/08.aifc
#define SAMPLE_sfx_7_09_aifc 0x6e380 // build/us_pc/sound/samples/sfx_7/09.aifc
#define SAMPLE_sfx_7_0A_aifc 0x6f2d0 // build/us_pc/sound/samples/sfx_7/0A.aifc
#define SAMPLE_sfx_7_0B_aifc 0x70b20 // build/us_pc/sound/samples/sfx_7/0B.aifc
#define SAMPLE_sfx_7_0C_aifc 0x720c0 // build/us_pc/sound/samples/sfx_7/0C.aifc
#define SAMPLE_sfx_7_0D_chain_chomp_bark_aifc 0x743b0 // build/us_pc/sound/samples/sfx_7/0D_chain_chomp_bark.aifc
#define SAMPLE_sfx_mario_00_mario_jump_hoo_aifc 0x74ad0 // build/us_pc/sound/samples/sfx_mario/00_mario_jump_hoo.aifc
#define SAMPLE_sfx_mario_01_mario_jump_wah_aifc 0x75230 // build/us_pc/sound/samples/sfx_mario/01_mario_jump_wah.aifc
#define SAMPLE_sfx_mario_02_mario_yah_aifc 0x75a40 // build/us_pc/sound/samples/sfx_mario/02_mario_yah.aifc
#define SAMPLE_sfx_mario_03_mario_haha_aifc 0x764d0 // build/us_pc/sound/samples/sfx_mario/03_mario_haha.aifc
#define SAMPLE_sfx_mario_04_mario_yahoo_aifc 0x77fd0 // build/us_pc/sound/samples/sfx_mario/04_mario_yahoo.aifc
#define SAMPLE_sfx_mario_05_mario_uh_aifc 0x7a120 // build/us_pc/sound/samples/sfx_mario/05_mario_uh.aifc
#define SAMPLE_sfx_mario_06_mario_hrmm_aifc 0x7ac20 // build/us_pc/sound/samples/sfx_mario/06_mario_hrmm.aifc
#define SAMPLE_sfx_mario_07_mario_wah2_aifc 0x7bda0 // build/us_pc/sound/samples/sfx_mario/07_mario_wah2.aifc
#define SAMPLE_sfx_mario_08_mario_whoa_aifc 0x7c830 // build/us_pc/sound/samples/sfx_mario/08_mario_whoa.aifc
#define SAMPLE_sfx_mario_09_mario_eeuh_aifc 0x7e8c0 // build/us_pc/sound/samples/sfx_mario/09_mario_eeuh.aifc
#define SAMPLE_sfx_mario_0A_mario_attacked_aifc 0x801f0 // build/us_pc/sound/samples/sfx_mario/0A_mario_attacked.aifc
#define SAMPLE_sfx_mario_0B_mario_ooof_aifc 0x81800 // build/us_pc/sound/samples/sfx_mario/0B_mario_ooof.aifc
#define SAMPLE_sfx_mario_0C_mario_here_we_go_aifc 0x82db0 // build/us_pc/sound/samples/sfx_mario/0C_mario_here_we_go.aifc
#define SAMPLE_sfx_mario_0D_mario_yawning_aifc 0x85fc0 // build/us_pc/sound/samples/sfx_mario/0D_mario_yawning.aifc
#define SAMPLE_sfx_mario_0E_mario_snoring1_aifc 0x898c0 // build/us_pc/sound/samples/sfx_mario/0E_mario_snoring1.aifc
#define SAMPLE_sfx_mario_0F_mario_snoring2_aifc 0x8b9a0 // build/us_pc/sound/samples/sfx_mario/0F_mario_snoring2.aifc
#define SAMPLE_sfx_mario_10_mario_doh_aifc 0x8c560 // build/us_pc/sound/samples/sfx_mario/10_mario_doh.aifc
#define SAMPLE_sfx_mario_11_mario_game_over_aifc 0x8d980 // build/us_pc/sound/samples/sfx_mario/11_mario_game_over.aifc
#define SAMPLE_sfx_mario_12_mario_hello_aifc 0x8f2b0 // build/us_pc/sound/samples/sfx_mario/12_mario_hello.aifc
#define SAMPLE_sfx_mario_13_mario_press_start_to_play_aifc 0x90dd0 // build/us_pc/sound/samples/sfx_mario/13_mario_press_start_to_play.aifc
#define SAMPLE_sfx_mario_14_mario_twirl_bounce_aifc 0x943a0 // build/us_pc/sound/samples/sfx_mario/14_mario_twirl_bounce.aifc
#define SAMPLE_sfx_mario_15_mario_snoring3_aifc 0x954e0 // build/us_pc/sound/samples/sfx_mario/15_mario_snoring3.aifc
#define SAMPLE_sfx_mario_16_mario_so_longa_bowser_aifc 0xad4a0 // build/us_pc/sound/samples/sfx_mario/16_mario_so_longa_bowser.aifc
#define SAMPLE_sfx_mario_17_mario_ima_tired_aifc 0xb0950 // build/us_pc/sound/samples/sfx_mario/17_mario_ima_tired.aifc
#define SAMPLE_sfx_mario_18_mario_waha_aifc 0xb35e0 // build/us_pc/sound/samples/sfx_mario/18_mario_waha.aifc
#define SAMPLE_sfx_mario_19_mario_yippee_aifc 0xb5bc0 // build/us_pc/sound/samples/sfx_mario/19_mario_yippee.aifc
#define SAMPLE_sfx_mario_1A_mario_lets_a_go_aifc 0xb7f00 // build/us_pc/sound/samples/sfx_mario/1A_mario_lets_a_go.aifc
#define SAMPLE_sfx_9_00_aifc 0xb9f90 // build/us_pc/sound/samples/sfx_9/00.aifc
#define SAMPLE_sfx_9_01_aifc 0xbb710 // build/us_pc/sound/samples/sfx_9/01.aifc
#define SAMPLE_sfx_9_02_aifc 0xbc2d0 // build/us_pc/sound/samples/sfx_9/02.aifc
#define SAMPLE_sfx_9_03_aifc 0xbee00 // build/us_pc/sound/samples/sfx_9/03.aifc
#define SAMPLE_sfx_9_04_camera_buzz_aifc 0xc0f10 // build/us_pc/sound/samples/sfx_9/04_camera_buzz.aifc
#define SAMPLE_sfx_9_05_camera_shutter_aifc 0xc1d90 // build/us_pc/sound/samples/sfx_9/05_camera_shutter.aifc
#define SAMPLE_sfx_9_06_aifc 0xc2420 // build/us_pc/sound/samples/sfx_9/06.aifc
#define SAMPLE_sfx_mario_peach_00_mario_waaaooow_aifc 0xc4ae0 // build/us_pc/sound/samples/sfx_mario_peach/00_mario_waaaooow.aifc
#define SAMPLE_sfx_mario_peach_01_mario_hoohoo_aifc 0xcaba0 // build/us_pc/sound/samples/sfx_mario_peach/01_mario_hoohoo.aifc
#define SAMPLE_sfx_mario_peach_02_mario_panting_aifc 0xcc180 // build/us_pc/sound/samples/sfx_mario_peach/02_mario_panting.aifc
#define SAMPLE_sfx_mario_peach_03_mario_dying_aifc 0xcd600 // build/us_pc/sound/samples/sfx_mario_peach/03_mario_dying.aifc
#define SAMPLE_sfx_mario_peach_04_mario_on_fire_aifc 0xd13b0 // build/us_pc/sound/samples/sfx_mario_peach/04_mario_on_fire.aifc
#define SAMPLE_sfx_mario_peach_05_mario_uh2_aifc 0xd5a90 // build/us_pc/sound/samples/sfx_mario_peach/05_mario_uh2.aifc
#define SAMPLE_sfx_mario_peach_06_mario_coughing_aifc 0xd6380 // build/us_pc/sound/samples/sfx_mario_peach/06_mario_coughing.aifc
#define SAMPLE_sfx_mario_peach_07_mario_its_a_me_mario_aifc 0xd6d80 // build/us_pc/sound/samples/sfx_mario_peach/07_mario_its_a_me_mario.aifc
#define SAMPLE_sfx_mario_peach_08_mario_punch_yah_aifc 0xdb000 // build/us_pc/sound/samples/sfx_mario_peach/08_mario_punch_yah.aifc
#define SAMPLE_sfx_mario_peach_09_mario_punch_hoo_aifc 0xdb8a0 // build/us_pc/sound/samples/sfx_mario_peach/09_mario_punch_hoo.aifc
#define SAMPLE_sfx_mario_peach_0A_mario_mama_mia_aifc 0xdcf00 // build/us_pc/sound/samples/sfx_mario_peach/0A_mario_mama_mia.aifc
#define SAMPLE_sfx_mario_peach_0B_mario_okey_dokey_aifc 0xdef40 // build/us_pc/sound/samples/sfx_mario_peach/0B_mario_okey_dokey.aifc
#define SAMPLE_sfx_mario_peach_0C_mario_drowning_aifc 0xe0f70 // build/us_pc/sound/samples/sfx_mario_peach/0C_mario_drowning.aifc
#define SAMPLE_sfx_mario_peach_0D_mario_thank_you_playing_my_game_aifc 0xe3ea0 // build/us_pc/sound/samples/sfx_mario_peach/0D_mario_thank_you_playing_my_game.aifc
#define SAMPLE_sfx_mario_peach_0E_peach_dear_mario_aifc 0xe9310 // build/us_pc/sound/samples/sfx_mario_peach/0E_peach_dear_mario.aifc
#define SAMPLE_sfx_mario_peach_0F_peach_mario_aifc 0xfe840 // build/us_pc/sound/samples/sfx_mario_peach/0F_peach_mario.aifc
#define SAMPLE_sfx_mario_peach_10_peach_power_of_the_stars_aifc 0x1004f0 // build/us_pc/sound/samples/sfx_mario_peach/10_peach_power_of_the_stars.aifc
#define SAMPLE_sfx_mario_peach_11_peach_thanks_to_you_aifc 0x107a60 // build/us_pc/sound/samples/sfx_mario_peach/11_peach_thanks_to_you.aifc
#define SAMPLE_sfx_mario_peach_12_peach_thank_you_mario_aifc 0x10b6f0 // build/us_pc/sound/samples/sfx_mario_peach/12_peach_thank_you_mario.aifc
#define SAMPLE_sfx_mario_peach_13_peach_something_special_aifc 0x10ee70 // build/us_pc/sound/samples/sfx_mario_peach/13_peach_something_special.aifc
#define SAMPLE_sfx_mario_peach_14_peach_bake_a_cake_aifc 0x114cc0 // build/us_pc/sound/samples/sfx_mario_peach/14_peach_bake_a_cake.aifc
#define SAMPLE_sfx_mario_peach_15_peach_for_mario_aifc 0x11e750 // build/us_pc/sound/samples/sfx_mario_peach/15_peach_for_mario.aifc
#define SAMPLE_sfx_mario_peach_16_peach_mario2_aifc 0x120b80 // build/us_pc/sound/samples/sfx_mario_peach/16_peach_mario2.aifc
#define SAMPLE_instruments_00_aifc 0x122740 // build/us_pc/sound/samples/instruments/00.aifc
#define SAMPLE_instruments_01_banjo_1_aifc 0x125580 // build/us_pc/sound/samples/instruments/01_banjo_1.aifc
#define SAMPLE_instruments_02_aifc 0x127e20 // build/us_pc/sound/samples/instruments/02.aifc
#define SAMPLE_instruments_03_human_whistle_aifc 0x12c1f0 // build/us_pc/sound/samples/instruments/03_human_whistle.aifc
#define SAMPLE_instruments_04_bright_piano_aifc 0x1304e0 // build/us_pc/sound/samples/instruments/04_bright_piano.aifc
#define SAMPLE_instruments_05_acoustic_bass_aifc 0x1322f0 // build/us_pc/sound/samples/instruments/05_acoustic_bass.aifc
#define SAMPLE_instruments_06_kick_drum_1_aifc 0x135a80 // build/us_pc/sound/samples/instruments/06_kick_drum_1.aifc
#define SAMPLE_instruments_07_rimshot_aifc 0x136240 // build/us_pc/sound/samples/instruments/07_rimshot.aifc
#define SAMPLE_instruments_08_aifc 0x136dd0 // build/us_pc/sound/samples/instruments/08.aifc
#define SAMPLE_instruments_09_aifc 0x138250 // build/us_pc/sound/samples/instruments/09.aifc
#define SAMPLE_instruments_0A_tambourine_aifc 0x139d10 // build/us_pc/sound/samples/instruments/0A_tambourine.aifc
#define SAMPLE_instruments_0B_aifc 0x13c2f0 // build/us_pc/sound/samples/instruments/0B.aifc
#define SAMPLE_instruments_0C_conga_stick_aifc 0x13df10 // build/us_pc/sound/samples/instruments/0C_conga_stick.aifc
#define SAMPLE_instruments_0D_clave_aifc 0x13f0b0 // build/us_pc/sound/samples/instruments/0D_clave.aifc
#define SAMPLE_instruments_0E_hihat_closed_aifc 0x1402b0 // build/us_pc/sound/samples/instruments/0E_hihat_closed.aifc
#define SAMPLE_instruments_0F_hihat_open_aifc 0x140b00 // build/us_pc/sound/samples/instruments/0F_hihat_open.aifc
#define SAMPLE_instruments_10_cymbal_bell_aifc 0x143aa0 // build/us_pc/sound/samples/instruments/10_cymbal_bell.aifc
#define SAMPLE_instruments_11_splash_cymbal_aifc 0x146c20 // build/us_pc/sound/samples/instruments/11_splash_cymbal.aifc
#define SAMPLE_instruments_12_snare_drum_1_aifc 0x14b330 // build/us_pc/sound/samples/instruments/12_snare_drum_1.aifc
#define SAMPLE_instruments_13_snare_drum_2_aifc 0x14cf00 // build/us_pc/sound/samples/instruments/13_snare_drum_2.aifc
#define SAMPLE_instruments_14_strings_5_aifc 0x14f570 // build/us_pc/sound/samples/instruments/14_strings_5.aifc
#define SAMPLE_instruments_15_strings_4_aifc 0x1544c0 // build/us_pc/sound/samples/instruments/15_strings_4.aifc
#define SAMPLE_instruments_16_french_horns_aifc 0x159010 // build/us_pc/sound/samples/instruments/16_french_horns.aifc
#define SAMPLE_instruments_17_trumpet_aifc 0x15c960 // build/us_pc/sound/samples/instruments/17_trumpet.aifc
#define SAMPLE_instruments_18_timpani_aifc 0x160140 // build/us_pc/sound/samples/instruments/18_timpani.aifc
#define SAMPLE_instruments_19_brass_aifc 0x164ee0 // build/us_pc/sound/samples/instruments/19_brass.aifc
#define SAMPLE_instruments_1A_slap_bass_aifc 0x1695b0 // build/us_pc/sound/samples/instruments/1A_slap_bass.aifc
#define SAMPLE_instruments_1B_organ_2_aifc 0x16b910 // build/us_pc/sound/samples/instruments/1B_organ_2.aifc
#define SAMPLE_instruments_1C_aifc 0x16f6a0 // build/us_pc/sound/samples/instruments/1C.aifc
#define SAMPLE_instruments_1D_aifc 0x171070 // build/us_pc/sound/samples/instruments/1D.aifc
#define SAMPLE_instruments_1E_closed_triangle_aifc 0x176ca0 // build/us_pc/sound/samples/instruments/1E_closed_triangle.aifc
#define SAMPLE_instruments_1F_open_triangle_aifc 0x1770a0 // build/us_pc/sound/samples/instruments/1F_open_triangle.aifc
#define SAMPLE_instruments_20_cabasa_aifc 0x178920 // build/us_pc/sound/samples/instruments/20_cabasa.aifc
#define SAMPLE_instruments_21_sine_bass_aifc 0x1799b0 // build/us_pc/sound/samples/instruments/21_sine_bass.aifc
#define SAMPLE_instruments_22_boys_choir_aifc 0x17b6a0 // build/us_pc/sound/samples/instruments/22_boys_choir.aifc
#define SAMPLE_instruments_23_strings_1_aifc 0x17edb0 // build/us_pc/sound/samples/instruments/23_strings_1.aifc
#define SAMPLE_instruments_24_strings_2_aifc 0x182bc0 // build/us_pc/sound/samples/instruments/24_strings_2.aifc
#define SAMPLE_instruments_25_strings_3_aifc 0x1872b0 // build/us_pc/sound/samples/instruments/25_strings_3.aifc
#define SAMPLE_instruments_26_crystal_rhodes_aifc 0x18b710 // build/us_pc/sound/samples/instruments/26_crystal_rhodes.aifc
#define SAMPLE_instruments_27_harpsichord_aifc 0x192800 // build/us_pc/sound/samples/instruments/27_harpsichord.aifc
#define SAMPLE_instruments_28_sitar_1_aifc 0x198e50 // build/us_pc/sound/samples/instruments/28_sitar_1.aifc
#define SAMPLE_instruments_29_orchestra_hit_aifc 0x19cc50 // build/us_pc/sound/samples/instruments/29_orchestra_hit.aifc
#define SAMPLE_instruments_2A_aifc 0x19fdd0 // build/us_pc/sound/samples/instruments/2A.aifc
#define SAMPLE_instruments_2B_aifc 0x1a34b0 // build/us_pc/sound/samples/instruments/2B.aifc
#define SAMPLE_instruments_2C_aifc 0x1a52a0 // build/us_pc/sound/samples/instruments/2C.aifc
#define SAMPLE_instruments_2D_trombone_aifc 0x1a98e0 // build/us_pc/sound/samples/instruments/2D_trombone.aifc
#define SAMPLE_instruments_2E_accordion_aifc 0x1ad4f0 // build/us_pc/sound/samples/instruments/2E_accordion.aifc
#define SAMPLE_instruments_2F_sleigh_bells_aifc 0x1b1c30 // build/us_pc/sound/samples/instruments/2F_sleigh_bells.aifc
#define SAMPLE_instruments_30_rarefaction_lahna_aifc 0x1b6da0 // build/us_pc/sound/samples/instruments/30_rarefaction-lahna.aifc
#define SAMPLE_instruments_31_rarefaction_convolution_aifc 0x1bb3d0 // build/us_pc/sound/samples/instruments/31_rarefaction-convolution.aifc
#define SAMPLE_instruments_32_metal_rimshot_aifc 0x1bf010 // build/us_pc/sound/samples/instruments/32_metal_rimshot.aifc
#define SAMPLE_instruments_33_kick_drum_2_aifc 0x1c31a0 // build/us_pc/sound/samples/instruments/33_kick_drum_2.aifc
#define SAMPLE_instruments_34_alto_flute_aifc 0x1c4370 // build/us_pc/sound/samples/instruments/34_alto_flute.aifc
#define SAMPLE_instruments_35_gospel_organ_aifc 0x1c6810 // build/us_pc/sound/samples/instruments/35_gospel_organ.aifc
#define SAMPLE_instruments_36_sawtooth_synth_aifc 0x1c9220 // build/us_pc/sound/samples/instruments/36_sawtooth_synth.aifc
#define SAMPLE_instruments_37_square_synth_aifc 0x1cb2b0 // build/us_pc/sound/samples/instruments/37_square_synth.aifc
#define SAMPLE_instruments_38_electric_kick_drum_aifc 0x1ccfd0 // build/us_pc/sound/samples/instruments/38_electric_kick_drum.aifc
#define SAMPLE_instruments_39_sitar_2_aifc 0x1cd990 // build/us_pc/sound/samples/instruments/39_sitar_2.aifc
#define SAMPLE_instruments_3A_music_box_aifc 0x1d2c00 // build/us_pc/sound/samples/instruments/3A_music_box.aifc
#define SAMPLE_instruments_3B_banjo_2_aifc 0x1d6680 // build/us_pc/sound/samples/instruments/3B_banjo_2.aifc
#define SAMPLE_instruments_3C_acoustic_guitar_aifc 0x1dc0f0 // build/us_pc/sound/samples/instruments/3C_acoustic_guitar.aifc
#define SAMPLE_instruments_3D_aifc 0x1e0c20 // build/us_pc/sound/samples/instruments/3D.aifc
#define SAMPLE_instruments_3E_monk_choir_aifc 0x1e3cb0 // build/us_pc/sound/samples/instruments/3E_monk_choir.aifc
#define SAMPLE_instruments_3F_aifc 0x1e6990 // build/us_pc/sound/samples/instruments/3F.aifc
#define SAMPLE_instruments_40_bell_aifc 0x1eb730 // build/us_pc/sound/samples/instruments/40_bell.aifc
#define SAMPLE_instruments_41_pan_flute_aifc 0x1ef390 // build/us_pc/sound/samples/instruments/41_pan_flute.aifc
#define SAMPLE_instruments_42_vibraphone_aifc 0x1f39d0 // build/us_pc/sound/samples/instruments/42_vibraphone.aifc
#define SAMPLE_instruments_43_harmonica_aifc 0x1f4580 // build/us_pc/sound/samples/instruments/43_harmonica.aifc
#define SAMPLE_instruments_44_grand_piano_aifc 0x1f7730 // build/us_pc/sound/samples/instruments/44_grand_piano.aifc
#define SAMPLE_instruments_45_french_horns_lq_aifc 0x1fb2c0 // build/us_pc/sound/samples/instruments/45_french_horns_lq.aifc
#define SAMPLE_instruments_46_pizzicato_strings_1_aifc 0x1fcf90 // build/us_pc/sound/samples/instruments/46_pizzicato_strings_1.aifc
#define SAMPLE_instruments_47_pizzicato_strings_2_aifc 0x1ffc10 // build/us_pc/sound/samples/instruments/47_pizzicato_strings_2.aifc
#define SAMPLE_instruments_48_steel_drum_aifc 0x203040 // build/us_pc/sound/samples/instruments/48_steel_drum.aifc
#define SAMPLE_piranha_music_box_00_music_box_aifc 0x206a10 // build/us_pc/sound/samples/piranha_music_box/00_music_box.aifc
#define SAMPLE_course_start_00_la_aifc 0x20a490 // build/us_pc/sound/samples/course_start/00_la.aifc
#define SAMPLE_bowser_organ_00_organ_1_aifc 0x20bde0 // build/us_pc/sound/samples/bowser_organ/00_organ_1.aifc
#define SAMPLE_bowser_organ_01_organ_1_lq_aifc 0x215be0 // build/us_pc/sound/samples/bowser_organ/01_organ_1_lq.aifc
#define SAMPLE_bowser_organ_02_boys_choir_aifc 0x219d80 // build/us_pc/sound/samples/bowser_organ/02_boys_choir.aifc
#define SAMPLE_extended_00_aifc 0x456860 // build/us_pc/sound/samples/extended/00.aifc
#define SAMPLE_extended_00_la_aifc 0x4596a0 // build/us_pc/sound/samples/extended/00_la.aifc
#define SAMPLE_extended_00_music_box_aifc 0x45aff0 // build/us_pc/sound/samples/extended/00_music_box.aifc
#define SAMPLE_extended_00_organ_1_aifc 0x45ea70 // build/us_pc/sound/samples/extended/00_organ_1.aifc
#define SAMPLE_extended_01_banjo_1_aifc 0x468870 // build/us_pc/sound/samples/extended/01_banjo_1.aifc
#define SAMPLE_extended_01_organ_1_lq_aifc 0x46b110 // build/us_pc/sound/samples/extended/01_organ_1_lq.aifc
#define SAMPLE_extended_02_aifc 0x46f2b0 // build/us_pc/sound/samples/extended/02.aifc
#define SAMPLE_extended_02_boys_choir_aifc 0x473680 // build/us_pc/sound/samples/extended/02_boys_choir.aifc
#define SAMPLE_extended_03_human_whistle_aifc 0x476d90 // build/us_pc/sound/samples/extended/03_human_whistle.aifc
#define SAMPLE_extended_04_bright_piano_aifc 0x47b080 // build/us_pc/sound/samples/extended/04_bright_piano.aifc
#define SAMPLE_extended_05_acoustic_bass_aifc 0x47ce90 // build/us_pc/sound/samples/extended/05_acoustic_bass.aifc
#define SAMPLE_extended_06_kick_drum_1_aifc 0x480620 // build/us_pc/sound/samples/extended/06_kick_drum_1.aifc
#define SAMPLE_extended_07_rimshot_aifc 0x480de0 // build/us_pc/sound/samples/extended/07_rimshot.aifc
#define SAMPLE_extended_08_aifc 0x481970 // build/us_pc/sound/samples/extended/08.aifc
#define SAMPLE_extended_09_aifc 0x482df0 // build/us_pc/sound/samples/extended/09.aifc
#define SAMPLE_extended_0A_tambourine_aifc 0x4848b0 // build/us_pc/sound/samples/extended/0A_tambourine.aifc
#define SAMPLE_extended_0B_aifc 0x486e90 // build/us_pc/sound/samples/extended/0B.aifc
#define SAMPLE_extended_0C_conga_stick_aifc 0x488ab0 // build/us_pc/sound/samples/extended/0C_conga_stick.aifc
#define SAMPLE_extended_0D_clave_aifc 0x489c50 // build/us_pc/sound/samples/extended/0D_clave.aifc
#define SAMPLE_extended_0E_hihat_closed_aifc 0x48ae50 // build/us_pc/sound/samples/extended/0E_hihat_closed.aifc
#define SAMPLE_extended_0F_hihat_open_aifc 0x48b6a0 // build/us_pc/sound/samples/extended/0F_hihat_open.aifc
#define SAMPLE_extended_10_cymbal_bell_aifc 0x48e640 // build/us_pc/sound/samples/extended/10_cymbal_bell.aifc
#define SAMPLE_extended_11_splash_cymbal_aifc 0x4917c0 // build/us_pc/sound/samples/extended/11_splash_cymbal.aifc
#define SAMPLE_extended_12_snare_drum_1_aifc 0x495ed0 // build/us_pc/sound/samples/extended/12_snare_drum_1.aifc
#define SAMPLE_extended_13_snare_drum_2_aifc 0x497aa0 // build/us_pc/sound/samples/extended/13_snare_drum_2.aifc
#define SAMPLE_extended_14_strings_5_aifc 0x49a110 // build/us_pc/sound/samples/extended/14_strings_5.aifc
#define SAMPLE_extended_15_strings_4_aifc 0x49f060 // build/us_pc/sound/samples/extended/15_strings_4.aifc
#define SAMPLE_extended_16_french_horns_aifc 0x4a3bb0 // build/us_pc/sound/samples/extended/16_french_horns.aifc
#define SAMPLE_extended_17_trumpet_aifc 0x4a7500 // build/us_pc/sound/samples/extended/17_trumpet.aifc
#define SAMPLE_extended_18_timpani_aifc 0x4aace0 // build/us_pc/sound/samples/extended/18_timpani.aifc
#define SAMPLE_extended_19_brass_aifc 0x4afa80 // build/us_pc/sound/samples/extended/19_brass.aifc
#define SAMPLE_extended_1A_slap_bass_aifc 0x4b4150 // build/us_pc/sound/samples/extended/1A_slap_bass.aifc
#define SAMPLE_extended_1B_organ_2_aifc 0x4b64b0 // build/us_pc/sound/samples/extended/1B_organ_2.aifc
#define SAMPLE_extended_1C_aifc 0x4ba240 // build/us_pc/sound/samples/extended/1C.aifc
#define SAMPLE_extended_1D_aifc 0x4bbc10 // build/us_pc/sound/samples/extended/1D.aifc
#define SAMPLE_extended_1E_closed_triangle_aifc 0x4c1840 // build/us_pc/sound/samples/extended/1E_closed_triangle.aifc
#define SAMPLE_extended_1F_open_triangle_aifc 0x4c1c40 // build/us_pc/sound/samples/extended/1F_open_triangle.aifc
#define SAMPLE_extended_20_cabasa_aifc 0x4c34c0 // build/us_pc/sound/samples/extended/20_cabasa.aifc
#define SAMPLE_extended_21_sine_bass_aifc 0x4c4550 // build/us_pc/sound/samples/extended/21_sine_bass.aifc
#define SAMPLE_extended_22_boys_choir_aifc 0x4c6240 // build/us_pc/sound/samples/extended/22_boys_choir.aifc
#define SAMPLE_extended_23_strings_1_aifc 0x4c9950 // build/us_pc/sound/samples/extended/23_strings_1.aifc
#define SAMPLE_extended_24_strings_2_aifc 0x4cd760 // build/us_pc/sound/samples/extended/24_strings_2.aifc
#define SAMPLE_extended_25_strings_3_aifc 0x4d1e50 // build/us_pc/sound/samples/extended/25_strings_3.aifc
#define SAMPLE_extended_26_crystal_rhodes_aifc 0x4d62b0 // build/us_pc/sound/samples/extended/26_crystal_rhodes.aifc
#define SAMPLE_extended_27_harpsichord_aifc 0x4dd3a0 // build/us_pc/sound/samples/extended/27_harpsichord.aifc
#define SAMPLE_extended_28_sitar_1_aifc 0x4e39f0 // build/us_pc/sound/samples/extended/28_sitar_1.aifc
#define SAMPLE_extended_29_orchestra_hit_aifc 0x4e77f0 // build/us_pc/sound/samples/extended/29_orchestra_hit.aifc
#define SAMPLE_extended_2A_aifc 0x4ea970 // build/us_pc/sound/samples/extended/2A.aifc
#define SAMPLE_extended_2B_aifc 0x4ee050 // build/us_pc/sound/samples/extended/2B.aifc
#define SAMPLE_extended_2C_aifc 0x4efe40 // build/us_pc/sound/samples/extended/2C.aifc
#define SAMPLE_extended_2D_trombone_aifc 0x4f4480 // build/us_pc/sound/samples/extended/2D_trombone.aifc
#define SAMPLE_extended_2E_accordion_aifc 0x4f8090 // build/us_pc/sound/samples/extended/2E_accordion.aifc
#define SAMPLE_extended_2F_sleigh_bells_aifc 0x4fc7d0 // build/us_pc/sound/samples/extended/2F_sleigh_bells.aifc
#define SAMPLE_extended_30_rarefaction_lahna_aifc 0x501940 // build/us_pc/sound/samples/extended/30_rarefaction-lahna.aifc
#define SAMPLE_extended_31_rarefaction_convolution_aifc 0x505f70 // build/us_pc/sound/samples/extended/31_rarefaction-convolution.aifc
#define SAMPLE_extended_32_metal_rimshot_aifc 0x509bb0 // build/us_pc/sound/samples/extended/32_metal_rimshot.aifc
#define SAMPLE_extended_33_kick_drum_2_aifc 0x50dd40 // build/us_pc/sound/samples/extended/33_kick_drum_2.aifc
#define SAMPLE_extended_34_alto_flute_aifc 0x50ef10 // build/us_pc/sound/samples/extended/34_alto_flute.aifc
#define SAMPLE_extended_35_gospel_organ_aifc 0x5113b0 // build/us_pc/sound/samples/extended/35_gospel_organ.aifc
#define SAMPLE_extended_36_sawtooth_synth_aifc 0x513dc0 // build/us_pc/sound/samples/extended/36_sawtooth_synth.aifc
#define SAMPLE_extended_37_square_synth_aifc 0x515e50 // build/us_pc/sound/samples/extended/37_square_synth.aifc
#define SAMPLE_extended_38_electric_kick_drum_aifc 0x517b70 // build/us_pc/sound/samples/extended/38_electric_kick_drum.aifc
#define SAMPLE_extended_39_sitar_2_aifc 0x518530 // build/us_pc/sound/samples/extended/39_sitar_2.aifc
#define SAMPLE_extended_3A_music_box_aifc 0x51d7a0 // build/us_pc/sound/samples/extended/3A_music_box.aifc
#define SAMPLE_extended_3B_banjo_2_aifc 0x521220 // build/us_pc/sound/samples/extended/3B_banjo_2.aifc
#define SAMPLE_extended_3C_acoustic_guitar_aifc 0x526c90 // build/us_pc/sound/samples/extended/3C_acoustic_guitar.aifc
#define SAMPLE_extended_3D_aifc 0x52b7c0 // build/us_pc/sound/samples/extended/3D.aifc
#define SAMPLE_extended_3E_monk_choir_aifc 0x52e850 // build/us_pc/sound/samples/extended/3E_monk_choir.aifc
#define SAMPLE_extended_3F_aifc 0x531530 // build/us_pc/sound/samples/extended/3F.aifc
#define SAMPLE_extended_40_bell_aifc 0x5362d0 // build/us_pc/sound/samples/extended/40_bell.aifc
#define SAMPLE_extended_41_pan_flute_aifc 0x539f30 // build/us_pc/sound/samples/extended/41_pan_flute.aifc
#define SAMPLE_extended_42_vibraphone_aifc 0x53e570 // build/us_pc/sound/samples/extended/42_vibraphone.aifc
#define SAMPLE_extended_43_harmonica_aifc 0x53f120 // build/us_pc/sound/samples/extended/43_harmonica.aifc
#define SAMPLE_extended_44_grand_piano_aifc 0x5422d0 // build/us_pc/sound/samples/extended/44_grand_piano.aifc
#define SAMPLE_extended_45_french_horns_lq_aifc 0x545e60 // build/us_pc/sound/samples/extended/45_french_horns_lq.aifc
#define SAMPLE_extended_46_pizzicato_strings_1_aifc 0x547b30 // build/us_pc/sound/samples/extended/46_pizzicato_strings_1.aifc
#define SAMPLE_extended_47_pizzicato_strings_2_aifc 0x54a7b0 // build/us_pc/sound/samples/extended/47_pizzicato_strings_2.aifc
#define SAMPLE_extended_48_steel_drum_aifc 0x54dbe0 // build/us_pc/sound/samples/extended/48_steel_drum.aifc

View file

@ -22,11 +22,6 @@ unsigned char gBankSetsData[] = {
};
#endif
// 0x2e0 is the offset to the first sample
// header is not extracted because it uses pointers that are 32 bits
// in size in the rom, where in coop, the size of a pointer may be larger
ROM_ASSET_LOAD_SAMPLE(sample_body_data, &gSoundDataRaw[0x2e0], 0x005936a0, 2123556, 0x00000000, 2123556);
// 0x41c0 is the offset to the first sequence
// 00_sound_player is modified in coop, so only overwrite the music data
ROM_ASSET_LOAD_SEQUENCE(sequence_body_data, &gMusicData[0x41c0], 0x007b3e10, 100368, 0x00000000, 100368);

View file

@ -1863,6 +1863,7 @@ void render_dialog_string_color(s8 linesPerBox) {
}
s16 gMenuMode = -1;
s16 gPrevMenuMode = -1;
u8 *gEndCutsceneStringsEn[] = {
INGAME_TEXT_PTR(TEXT_FILE_MARIO_EXCLAMATION),
@ -3532,6 +3533,7 @@ s16 render_menus_and_dialogs(void) {
create_dl_ortho_matrix();
if (gMenuMode != -1) {
gPrevMenuMode = gMenuMode;
switch (gMenuMode) {
case 0:
mode = render_pause_courses_and_castle();

View file

@ -1344,7 +1344,13 @@ s32 play_mode_paused(void) {
gCameraMovementFlags &= ~CAM_MOVE_PAUSE_SCREEN;
set_play_mode(PLAY_MODE_NORMAL);
} else if (gPauseScreenMode == 2) {
extern s16 gPrevMenuMode;
if (gPrevMenuMode > 1) { // Course complete screen
raise_background_noise(1);
gCameraMovementFlags &= ~CAM_MOVE_PAUSE_SCREEN;
} else { // Pause menu
level_trigger_warp(&gMarioStates[0], WARP_OP_EXIT);
}
set_play_mode(PLAY_MODE_NORMAL);
} else if (gPauseScreenMode == 3) {
// Exit level

View file

@ -55,11 +55,14 @@ s8 gLevelToCourseNumTable[] = {
#undef STUB_LEVEL
#undef DEFINE_LEVEL
#define STUB_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8) levelenum,
#define DEFINE_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8, _9, _10) levelenum,
s8 gCourseNumToLevelNumTable[] = {
#define STUB_LEVEL(_0, levelenum, courseenum, _3, _4, _5, _6, _7, _8) [courseenum] = levelenum,
#define DEFINE_LEVEL(_0, levelenum, courseenum, _3, _4, _5, _6, _7, _8, _9, _10) [courseenum] = levelenum,
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverride-init" // this is hacky, but its dealt with in the getter function
s8 sCourseNumToLevelNumTable[] = {
#include "levels/level_defines.h"
};
#pragma GCC diagnostic pop
#undef STUB_LEVEL
#undef DEFINE_LEVEL
@ -70,7 +73,17 @@ s8 get_level_num_from_course_num(s16 courseNum) {
if (courseNum < 0 || courseNum >= COURSE_COUNT) {
return LEVEL_NONE;
}
return gCourseNumToLevelNumTable[courseNum];
switch (courseNum) { // deal with the overridden courses
case COURSE_NONE:
return LEVEL_CASTLE;
case COURSE_BITDW:
return LEVEL_BITDW;
case COURSE_BITFS:
return LEVEL_BITFS;
case COURSE_BITS:
return LEVEL_BITS;
}
return sCourseNumToLevelNumTable[courseNum];
}
s8 get_level_course_num(s16 levelNum) {

View file

@ -80,7 +80,6 @@ extern s8 sUnusedGotGlobalCoinHiScore;
extern u8 gGotFileCoinHiScore;
extern u8 gCurrCourseStarFlags;
extern s8 gLevelToCourseNumTable[];
extern s8 gCourseNumToLevelNumTable[];
// game progress flags
#define SAVE_FLAG_FILE_EXISTS /* 0x00000001 */ (1 << 0)

View file

@ -9,6 +9,7 @@
#include "pc/debuglog.h"
#include "pc/lua/utils/smlua_level_utils.h"
#include "level_table.h"
#include "game/save_file.h"
#ifdef DEVELOPMENT
@ -16,6 +17,57 @@ static bool str_starts_with(const char* pre, char* str) {
return strncmp(pre, str, strlen(pre)) == 0;
}
// For case insensitivity
static const char *upper(char *str) {
static char buffer[50];
if (strlen(str) > 50) { return NULL; }
memset(buffer, 0, 50);
s16 i = 0;
while (str[i] != '\0' && i < 49) {
buffer[i] = toupper((unsigned char) str[i]);
i++;
}
buffer[i] = '\0';
return buffer;
}
static s32 get_level_abbreviation_alt(const char *str) {
// c + course number translates to that level
// e.g. c11 is wdw
if (str[0] == 'C' && strlen(str) > 1) {
s32 course = -1;
if (sscanf(&str[1], "%d", &course) > 0) {
s32 level = get_level_num_from_course_num(course);
if (level == LEVEL_NONE) { return -1; } // Failed!
return level;
}
}
if (strcmp(str, "S1") == 0) { return LEVEL_PSS; }
if (strcmp(str, "S2") == 0) { return LEVEL_WMOTR; }
if (strcmp(str, "S3") == 0) { return LEVEL_SA; }
if (strcmp(str, "S4") == 0) { return LEVEL_ENDING; }
if (strcmp(str, "WC") == 0) { return LEVEL_TOTWC; }
if (strcmp(str, "VC") == 0) { return LEVEL_VCUTM; }
if (strcmp(str, "MC") == 0) { return LEVEL_COTMC; }
if (strcmp(str, "B1") == 0) { return LEVEL_BITDW; }
if (strcmp(str, "B2") == 0) { return LEVEL_BITFS; }
if (strcmp(str, "B3") == 0) { return LEVEL_BITS; }
if (strcmp(str, "B1F") == 0) { return LEVEL_BOWSER_1; }
if (strcmp(str, "B2F") == 0) { return LEVEL_BOWSER_2; }
if (strcmp(str, "B3F") == 0) { return LEVEL_BOWSER_3; }
if (strcmp(str, "OW1") == 0) { return LEVEL_CASTLE_GROUNDS; }
if (strcmp(str, "OW2") == 0) { return LEVEL_CASTLE; }
if (strcmp(str, "OW3") == 0) { return LEVEL_CASTLE_COURTYARD; }
return -1;
}
bool exec_dev_chat_command(char* command) {
if (strcmp("/warp", command) == 0) {
djui_chat_message_create("Missing parameters: [LEVEL] [AREA] [ACT]");
@ -32,25 +84,28 @@ bool exec_dev_chat_command(char* command) {
#undef STUB_LEVEL
#undef DEFINE_LEVEL
};
s32 area = 1;
s32 act = 0;
// Params
char *paramLevel = command + 6;
if (*paramLevel == 0 || *paramLevel == ' ') {
djui_chat_message_create("Missing parameters: [LEVEL] [AREA] [ACT]");
djui_chat_message_create("Missing parameters: [LEVEL]");
return true;
}
char *paramArea = strchr(paramLevel, ' ');
char *paramAct = NULL;
if (paramArea++ == NULL || *paramArea == 0 || *paramArea == ' ') {
djui_chat_message_create("Missing parameters: [AREA] [ACT]");
return true;
}
char *paramAct = strchr(paramArea, ' ');
if (paramAct++ == NULL || *paramAct == 0 || *paramAct == ' ') {
djui_chat_message_create("Missing parameters: [ACT]");
return true;
}
paramArea = NULL;
} else {
*(paramArea - 1) = 0;
paramAct = strchr(paramArea, ' ');
if (paramAct++ == NULL || *paramAct == 0 || *paramAct == ' ') {
paramAct = NULL;
} else {
*(paramAct - 1) = 0;
}
}
// Level
s32 level = -1;
@ -67,6 +122,9 @@ bool exec_dev_chat_command(char* command) {
level = info->levelNum;
}
}
if (level == -1) {
level = get_level_abbreviation_alt(upper(paramLevel));
}
if (level == -1) {
char message[256];
snprintf(message, 256, "Invalid [LEVEL] parameter: %s", paramLevel);
@ -76,8 +134,7 @@ bool exec_dev_chat_command(char* command) {
}
// Area
s32 area = 1;
if (sscanf(paramArea, "%d", &area) <= 0) {
if (paramArea && sscanf(paramArea, "%d", &area) <= 0) {
char message[256];
snprintf(message, 256, "Invalid [AREA] parameter: %s", paramArea);
djui_chat_message_create(message);
@ -85,8 +142,7 @@ bool exec_dev_chat_command(char* command) {
}
// Act
s32 act = 1;
if (sscanf(paramAct, "%d", &act) <= 0) {
if (paramAct && sscanf(paramAct, "%d", &act) <= 0) {
char message[256];
snprintf(message, 256, "Invalid [ACT] parameter: %s", paramAct);
djui_chat_message_create(message);
@ -96,14 +152,14 @@ bool exec_dev_chat_command(char* command) {
// Warp
if (!dynos_warp_to_level(level, area, act)) {
char message[256];
snprintf(message, 256, "Unable to warp to: %s %s %s", paramLevel, paramArea, paramAct);
snprintf(message, 256, "Unable to warp to: %s %d %d", paramLevel, area, act);
djui_chat_message_create(message);
return true;
}
// OK
char message[256];
snprintf(message, 256, "Warping to: %s %s %s...", paramLevel, paramArea, paramAct);
snprintf(message, 256, "Warping to: %s %d %d...", paramLevel, area, act);
djui_chat_message_create(message);
return true;
}

View file

@ -128,7 +128,7 @@ static void djui_chat_box_input_enter(struct DjuiInputbox* chatInput) {
if (strlen(chatInput->buffer) != 0) {
sent_history_add_message(&sentHistory, chatInput->buffer);
if (chatInput->buffer[0] == '/') {
if (strcmp(chatInput->buffer, "/help") == 0 || strcmp(chatInput->buffer, "/?") == 0) {
if (strcmp(chatInput->buffer, "/help") == 0 || strcmp(chatInput->buffer, "/?") == 0 || strcmp(chatInput->buffer, "/") == 0) {
display_chat_commands();
} else if (!exec_chat_command(chatInput->buffer)) {
char extendedUnknownCommandMessage[MAX_CHAT_MSG_LENGTH];

View file

@ -61,7 +61,11 @@ void djui_panel_main_create(struct DjuiBase* caller) {
djui_base_set_color(&message->base, 255, 255, 160, 255);
djui_text_set_alignment(message, DJUI_HALIGN_CENTER, DJUI_VALIGN_BOTTOM);
} else {
#ifdef COMPILE_TIME
struct DjuiText* version = djui_text_create(&panel->base, get_version_with_build_date());
#else
struct DjuiText* version = djui_text_create(&panel->base, get_version());
#endif
djui_base_set_size_type(&version->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&version->base, 1.0f, 1.0f);
djui_base_set_color(&version->base, 50, 50, 50, 255);

View file

@ -68,6 +68,49 @@ bool smlua_valid_lvt(u16 lvt) {
return (lvt < LVT_MAX);
}
const char *sLuaLvtNames[] = {
[LVT_BOOL] = "bool",
[LVT_BOOL_P] = "bool Pointer",
[LVT_U8] = "u8",
[LVT_U8_P] = "u8 Pointer",
[LVT_U16] = "u16",
[LVT_U16_P] = "u16 Pointer",
[LVT_U32] = "u32",
[LVT_U32_P] = "u32 Pointer",
[LVT_S8] = "s8",
[LVT_S8_P] = "s8 Pointer",
[LVT_S16] = "s16",
[LVT_S16_P] = "s16 Pointer",
[LVT_S32] = "s32",
[LVT_S32_P] = "s32 Pointer",
[LVT_F32] = "f32",
[LVT_F32_P] = "f32 Pointer",
[LVT_U64] = "u64",
[LVT_U64_P] = "u64 Pointer",
[LVT_COBJECT] = "CObject",
[LVT_COBJECT_P] = "CObject Pointer",
[LVT_STRING] = "string",
[LVT_STRING_P] = "string Pointer",
[LVT_BEHAVIORSCRIPT] = "BehaviorScript",
[LVT_BEHAVIORSCRIPT_P] = "BehaviorScript Pointer",
[LVT_OBJECTANIMPOINTER] = "ObjectAnimPointer",
[LVT_OBJECTANIMPOINTER_P] = "ObjectAnimPointer Pointer",
[LVT_COLLISION] = "Collision",
[LVT_COLLISION_P] = "Collision Pointer",
[LVT_LEVELSCRIPT] = "LevelScript",
[LVT_LEVELSCRIPT_P] = "LevelScript Pointer",
[LVT_TRAJECTORY] = "Trajectory",
[LVT_TRAJECTORY_P] = "Trajectory Pointer",
[LVT_LUAFUNCTION] = "LuaFunction",
[LVT_POINTER] = "Pointer",
[LVT_MAX] = "Max",
};
const char *smlua_get_lvt_name(u16 lvt) {
assert(smlua_valid_lvt(lvt)); // if this is false, it means there's an invalid lvt somewhere
return sLuaLvtNames[lvt];
}
//////////////////
// obj behavior //
//////////////////
@ -500,7 +543,7 @@ static int smlua__get_field(lua_State* L) {
data = smlua_get_custom_field(L, lot, 2);
}
if (data == NULL) {
LOG_LUA_LINE("_get_field on invalid key '%s', lot '%d'", key, lot);
LOG_LUA_LINE("_get_field on invalid key '%s', lot '%s'", key, smlua_get_lot_name(lot));
return 0;
}

View file

@ -76,6 +76,7 @@ extern int gSmLuaCPointerMetatable;
bool smlua_valid_lot(u16 lot);
bool smlua_valid_lvt(u16 lvt);
const char *smlua_get_lvt_name(u16 lvt);
struct LuaObjectField* smlua_get_object_field_from_ot(struct LuaObjectTable* ot, const char* key);
struct LuaObjectField* smlua_get_object_field(u16 lot, const char* key);
struct LuaObjectField* smlua_get_custom_field(lua_State* L, u32 lot, int keyIndex);

View file

@ -2889,6 +2889,132 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
{ LOT_STRUCT802A1230, sstruct802A1230Fields, LUA_STRUCT802_A1230_FIELD_COUNT },
};
const char *sLuaLotNames[] = {
[LOT_VEC2F] = "Vec2f",
[LOT_VEC3F] = "Vec3f",
[LOT_VEC4F] = "Vec4f",
[LOT_VEC3S] = "Vec3s",
[LOT_VEC4S] = "Vec4s",
[LOT_MAT4] = "Mat4",
[LOT_COLOR] = "Color",
[LOT_ARRAY] = "Array",
[LOT_POINTER] = "Pointer",
[LOT_MAX] = "Max",
[LOT_ANIMINFO] = "AnimInfo",
[LOT_ANIMATION] = "Animation",
[LOT_ANIMATIONTABLE] = "AnimationTable",
[LOT_AREA] = "Area",
[LOT_BEHAVIORDIALOGS] = "BehaviorDialogs",
[LOT_BEHAVIORTRAJECTORIES] = "BehaviorTrajectories",
[LOT_BEHAVIORVALUES] = "BehaviorValues",
[LOT_BULLYCOLLISIONDATA] = "BullyCollisionData",
[LOT_CAMERA] = "Camera",
[LOT_CAMERAFOVSTATUS] = "CameraFOVStatus",
[LOT_CAMERAOVERRIDE] = "CameraOverride",
[LOT_CAMERASTOREDINFO] = "CameraStoredInfo",
[LOT_CAMERATRIGGER] = "CameraTrigger",
[LOT_CHAINSEGMENT] = "ChainSegment",
[LOT_CHARACTER] = "Character",
[LOT_CONTROLLER] = "Controller",
[LOT_CUSTOMLEVELINFO] = "CustomLevelInfo",
[LOT_CUTSCENE] = "Cutscene",
[LOT_CUTSCENESPLINEPOINT] = "CutsceneSplinePoint",
[LOT_CUTSCENEVARIABLE] = "CutsceneVariable",
[LOT_DATETIME] = "DateTime",
[LOT_DISPLAYLISTNODE] = "DisplayListNode",
[LOT_DJUICOLOR] = "DjuiColor",
[LOT_DJUIINTERACTABLETHEME] = "DjuiInteractableTheme",
[LOT_DJUIPANELTHEME] = "DjuiPanelTheme",
[LOT_DJUITHEME] = "DjuiTheme",
[LOT_DJUITHREEPANELTHEME] = "DjuiThreePanelTheme",
[LOT_EXCLAMATIONBOXCONTENT] = "ExclamationBoxContent",
[LOT_FIRSTPERSONCAMERA] = "FirstPersonCamera",
[LOT_FLOORGEOMETRY] = "FloorGeometry",
[LOT_FNGRAPHNODE] = "FnGraphNode",
[LOT_GFX] = "Gfx",
[LOT_GLOBALOBJECTANIMATIONS] = "GlobalObjectAnimations",
[LOT_GLOBALOBJECTCOLLISIONDATA] = "GlobalObjectCollisionData",
[LOT_GLOBALTEXTURES] = "GlobalTextures",
[LOT_GRAPHNODE] = "GraphNode",
[LOT_GRAPHNODEANIMATEDPART] = "GraphNodeAnimatedPart",
[LOT_GRAPHNODEBACKGROUND] = "GraphNodeBackground",
[LOT_GRAPHNODEBILLBOARD] = "GraphNodeBillboard",
[LOT_GRAPHNODECAMERA] = "GraphNodeCamera",
[LOT_GRAPHNODECULLINGRADIUS] = "GraphNodeCullingRadius",
[LOT_GRAPHNODEDISPLAYLIST] = "GraphNodeDisplayList",
[LOT_GRAPHNODEGENERATED] = "GraphNodeGenerated",
[LOT_GRAPHNODEHELDOBJECT] = "GraphNodeHeldObject",
[LOT_GRAPHNODELEVELOFDETAIL] = "GraphNodeLevelOfDetail",
[LOT_GRAPHNODEMASTERLIST] = "GraphNodeMasterList",
[LOT_GRAPHNODEOBJECT] = "GraphNodeObject",
[LOT_GRAPHNODEOBJECTPARENT] = "GraphNodeObjectParent",
[LOT_GRAPHNODEORTHOPROJECTION] = "GraphNodeOrthoProjection",
[LOT_GRAPHNODEPERSPECTIVE] = "GraphNodePerspective",
[LOT_GRAPHNODEROTATION] = "GraphNodeRotation",
[LOT_GRAPHNODESCALE] = "GraphNodeScale",
[LOT_GRAPHNODESHADOW] = "GraphNodeShadow",
[LOT_GRAPHNODESTART] = "GraphNodeStart",
[LOT_GRAPHNODESWITCHCASE] = "GraphNodeSwitchCase",
[LOT_GRAPHNODETRANSLATION] = "GraphNodeTranslation",
[LOT_GRAPHNODETRANSLATIONROTATION] = "GraphNodeTranslationRotation",
[LOT_GRAPHNODE_802A45E4] = "GraphNode_802A45E4",
[LOT_HANDHELDSHAKEPOINT] = "HandheldShakePoint",
[LOT_HUDUTILSROTATION] = "HudUtilsRotation",
[LOT_INSTANTWARP] = "InstantWarp",
[LOT_LAKITUSTATE] = "LakituState",
[LOT_LEVELVALUES] = "LevelValues",
[LOT_LINEARTRANSITIONPOINT] = "LinearTransitionPoint",
[LOT_MARIOANIMATION] = "MarioAnimation",
[LOT_MARIOBODYSTATE] = "MarioBodyState",
[LOT_MARIOSTATE] = "MarioState",
[LOT_MOD] = "Mod",
[LOT_MODAUDIO] = "ModAudio",
[LOT_MODAUDIOSAMPLECOPIES] = "ModAudioSampleCopies",
[LOT_MODFILE] = "ModFile",
[LOT_MODETRANSITIONINFO] = "ModeTransitionInfo",
[LOT_NAMETAGSSETTINGS] = "NametagsSettings",
[LOT_NETWORKPLAYER] = "NetworkPlayer",
[LOT_OBJECT] = "Object",
[LOT_OBJECTHITBOX] = "ObjectHitbox",
[LOT_OBJECTNODE] = "ObjectNode",
[LOT_OBJECTWARPNODE] = "ObjectWarpNode",
[LOT_OFFSETSIZEPAIR] = "OffsetSizePair",
[LOT_PAINTING] = "Painting",
[LOT_PAINTINGMESHVERTEX] = "PaintingMeshVertex",
[LOT_PAINTINGVALUES] = "PaintingValues",
[LOT_PARALLELTRACKINGPOINT] = "ParallelTrackingPoint",
[LOT_PLAYERCAMERASTATE] = "PlayerCameraState",
[LOT_PLAYERGEOMETRY] = "PlayerGeometry",
[LOT_PLAYERPALETTE] = "PlayerPalette",
[LOT_RAYINTERSECTIONINFO] = "RayIntersectionInfo",
[LOT_SERVERSETTINGS] = "ServerSettings",
[LOT_SOUNDSTATE] = "SoundState",
[LOT_SPAWNINFO] = "SpawnInfo",
[LOT_SPAWNPARTICLESINFO] = "SpawnParticlesInfo",
[LOT_STARPOSITIONS] = "StarPositions",
[LOT_STARSNEEDEDFORDIALOG] = "StarsNeededForDialog",
[LOT_STRUCT802A272C] = "Struct802A272C",
[LOT_SURFACE] = "Surface",
[LOT_TEXTUREINFO] = "TextureInfo",
[LOT_TRANSITIONINFO] = "TransitionInfo",
[LOT_VTX] = "Vtx",
[LOT_VTX_INTERP] = "Vtx_Interp",
[LOT_WALLCOLLISIONDATA] = "WallCollisionData",
[LOT_WARPNODE] = "WarpNode",
[LOT_WARPTRANSITION] = "WarpTransition",
[LOT_WARPTRANSITIONDATA] = "WarpTransitionData",
[LOT_WATERDROPLETPARAMS] = "WaterDropletParams",
[LOT_WAYPOINT] = "Waypoint",
[LOT_WHIRLPOOL] = "Whirlpool",
[LOT_STRUCT802A1230] = "struct802A1230",
};
const char *smlua_get_lot_name(u16 lot) {
assert(smlua_valid_lot(lot)); // if this is false, it means there's an invalid lot somewhere
return sLuaLotNames[lot];
}
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {
struct LuaObjectTable* ot = &sLuaObjectAutogenTable[lot - LOT_AUTOGEN_MIN - 1];
return smlua_get_object_field_from_ot(ot, key);

View file

@ -129,6 +129,7 @@ enum LuaObjectAutogenType {
LOT_AUTOGEN_MAX,
};
const char *smlua_get_lot_name(u16 lot);
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key);
#endif

View file

@ -4729,5 +4729,5 @@ char gSmluaConstants[] = ""
"VERSION_TEXT='v'\n"
"VERSION_NUMBER=39\n"
"MINOR_VERSION_NUMBER=1\n"
"MAX_VERSION_LENGTH=32\n"
"MAX_VERSION_LENGTH=128\n"
;

View file

@ -99,7 +99,7 @@ int smlua_func_network_init_object(lua_State* L) {
if (!gSmLuaConvertSuccess) { LOG_LUA("network_init_object: Failed to convert parameter 2"); return 0; }
if (lua_type(L, 3) != LUA_TNIL && lua_type(L, 3) != LUA_TTABLE) {
LOG_LUA_LINE("network_init_object() called with an invalid type for param 3: %u", lua_type(L, 3));
LOG_LUA_LINE("network_init_object() called with an invalid type for param 3: %s", luaL_typename(L, 3));
return 0;
}
@ -115,7 +115,7 @@ int smlua_func_network_init_object(lua_State* L) {
while (lua_next(L, 3) != 0) {
// uses 'key' (at index -2) and 'value' (at index -1)
if (lua_type(L, -1) != LUA_TSTRING) {
LOG_LUA_LINE("Invalid type passed to network_init_object(): %u", lua_type(L, -1));
LOG_LUA_LINE("Invalid type passed to network_init_object(): %s", luaL_typename(L, -1));
lua_pop(L, 1); // pop value
continue;
}
@ -189,7 +189,7 @@ int smlua_func_set_exclamation_box_contents(lua_State* L) {
if (!smlua_functions_valid_param_count(L, 1)) { return 0; }
if (lua_type(L, 1) != LUA_TTABLE) {
LOG_LUA_LINE("Invalid type passed to set_exclamation_box(): %u", lua_type(L, -1));
LOG_LUA_LINE("Invalid type passed to set_exclamation_box(): %s", luaL_typename(L, -1));
return 0;
}
@ -297,7 +297,7 @@ int smlua_func_get_texture_info(lua_State* L) {
if (!smlua_functions_valid_param_count(L, 1)) { return 0; }
if (lua_type(L, -1) != LUA_TSTRING) {
LOG_LUA_LINE("Invalid type passed to get_texture_info(): %u", lua_type(L, -1));
LOG_LUA_LINE("Invalid type passed to get_texture_info(): %s", luaL_typename(L, -1));
lua_pop(L, 1); // pop value
return 0;
}
@ -1083,7 +1083,7 @@ if (strcmp(command, #symb) == 0) { \
if (paramCount != params) { LOG_LUA("gfx_set_command: '" #symb "' received incorrect number of parameters. Received %u, expected %u", paramCount, params); return 0; } \
UNUSED const char symbolName[] = #symb; \
REPEAT(HANDLE_PARAM, params); \
Gfx _Gfx[] = { CALL_SYMB(symb, LIST_ARGS(GET_ARG, params)) }; \
const Gfx _Gfx[] = { CALL_SYMB(symb, LIST_ARGS(GET_ARG, params)) }; \
memcpy(gfx, _Gfx, sizeof(_Gfx)); \
return 1; \
}

View file

@ -28438,6 +28438,31 @@ int smlua_func_gfx_set_combine_lerp(lua_State* L) {
return 1;
}
int smlua_func_gfx_set_texture_image(lua_State* L) {
if (L == NULL) { return 0; }
int top = lua_gettop(L);
if (top != 5) {
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "gfx_set_texture_image", 5, top);
return 0;
}
Gfx* gfx = (Gfx*)smlua_to_cobject(L, 1, LOT_GFX);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_set_texture_image"); return 0; }
u32 format = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "gfx_set_texture_image"); return 0; }
u32 size = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "gfx_set_texture_image"); return 0; }
u32 width = smlua_to_integer(L, 4);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "gfx_set_texture_image"); return 0; }
u8* texture = (u8*)smlua_to_cpointer(L, 5, LVT_U8_P);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 5, "gfx_set_texture_image"); return 0; }
gfx_set_texture_image(gfx, format, size, width, texture);
return 1;
}
int smlua_func_set_fog_color(lua_State* L) {
if (L == NULL) { return 0; }
@ -33745,6 +33770,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "gfx_get_vtx", smlua_func_gfx_get_vtx);
smlua_bind_function(L, "gfx_parse", smlua_func_gfx_parse);
smlua_bind_function(L, "gfx_set_combine_lerp", smlua_func_gfx_set_combine_lerp);
smlua_bind_function(L, "gfx_set_texture_image", smlua_func_gfx_set_texture_image);
smlua_bind_function(L, "set_fog_color", smlua_func_set_fog_color);
smlua_bind_function(L, "set_fog_intensity", smlua_func_set_fog_intensity);
smlua_bind_function(L, "set_lighting_color", smlua_func_set_lighting_color);

View file

@ -1170,7 +1170,7 @@ int smlua_hook_mario_action(lua_State* L) {
bool oldApi = secondParamType == LUA_TFUNCTION;
if (!oldApi && secondParamType != LUA_TTABLE) {
LOG_LUA_LINE("smlua_hook_mario_action received improper type '%d'", lua_type(L, 2));
LOG_LUA_LINE("smlua_hook_mario_action received improper type '%s'", luaL_typename(L, 2));
return 0;
}
@ -1937,12 +1937,12 @@ int smlua_hook_on_sync_table_change(lua_State* L) {
}
if (lua_type(L, syncTableIndex) != LUA_TTABLE) {
LOG_LUA_LINE("Tried to attach a non-table to hook_on_sync_table_change: %d", lua_type(L, syncTableIndex));
LOG_LUA_LINE("Tried to attach a non-table to hook_on_sync_table_change: %s", luaL_typename(L, syncTableIndex));
return 0;
}
if (lua_type(L, funcIndex) != LUA_TFUNCTION) {
LOG_LUA_LINE("Tried to attach a non-function to hook_on_sync_table_change: %d", lua_type(L, funcIndex));
LOG_LUA_LINE("Tried to attach a non-function to hook_on_sync_table_change: %s", luaL_typename(L, funcIndex));
return 0;
}

View file

@ -84,7 +84,7 @@ bool smlua_is_table_empty(int index) {
bool smlua_to_boolean(lua_State* L, int index) {
if (lua_type(L, index) != LUA_TBOOLEAN) {
LOG_LUA_LINE("smlua_to_boolean received improper type '%d'", lua_type(L, index));
LOG_LUA_LINE("smlua_to_boolean received improper type '%s'", luaL_typename(L, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -96,7 +96,7 @@ lua_Integer smlua_to_integer(lua_State* L, int index) {
gSmLuaConvertSuccess = true;
return lua_toboolean(L, index) ? 1 : 0;
} else if (lua_type(L, index) != LUA_TNUMBER) {
LOG_LUA_LINE("smlua_to_integer received improper type '%d'", lua_type(L, index));
LOG_LUA_LINE("smlua_to_integer received improper type '%s'", luaL_typename(L, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -110,7 +110,7 @@ lua_Number smlua_to_number(lua_State* L, int index) {
gSmLuaConvertSuccess = true;
return lua_toboolean(L, index) ? 1 : 0;
} else if (lua_type(L, index) != LUA_TNUMBER) {
LOG_LUA_LINE("smlua_to_number received improper type '%d'", lua_type(L, index));
LOG_LUA_LINE("smlua_to_number received improper type '%s'", luaL_typename(L, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -120,7 +120,7 @@ lua_Number smlua_to_number(lua_State* L, int index) {
const char* smlua_to_string(lua_State* L, int index) {
if (lua_type(L, index) != LUA_TSTRING) {
LOG_LUA_LINE("smlua_to_string received improper type '%d'", lua_type(L, index));
LOG_LUA_LINE("smlua_to_string received improper type '%s'", luaL_typename(L, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -134,7 +134,7 @@ LuaFunction smlua_to_lua_function(lua_State* L, int index) {
}
if (lua_type(L, index) != LUA_TFUNCTION) {
LOG_LUA_LINE("smlua_to_lua_function received improper type '%d'", lua_type(L, index));
LOG_LUA_LINE("smlua_to_lua_function received improper type '%s'", luaL_typename(L, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -150,9 +150,8 @@ bool smlua_is_cobject(lua_State* L, int index, UNUSED u16 lot) {
void* smlua_to_cobject(lua_State* L, int index, u16 lot) {
s32 indexType = lua_type(L, index);
if (indexType == LUA_TNIL) { return NULL; }
if (indexType != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_to_cobject received improper type '%d'", indexType);
LOG_LUA_LINE("smlua_to_cobject received improper type '%s'", lua_typename(L, indexType));
gSmLuaConvertSuccess = false;
return 0;
}
@ -160,7 +159,7 @@ void* smlua_to_cobject(lua_State* L, int index, u16 lot) {
CObject *cobject = luaL_checkudata(L, index, "CObject");
if (lot != cobject->lot) {
LOG_LUA_LINE("smlua_to_cobject received improper LOT. Expected '%d', received '%d'", lot, cobject->lot);
LOG_LUA_LINE("smlua_to_cobject received improper LOT. Expected '%s', received '%s'", smlua_get_lot_name(lot), smlua_get_lot_name(cobject->lot));
gSmLuaConvertSuccess = false;
return NULL;
}
@ -177,9 +176,8 @@ void* smlua_to_cobject(lua_State* L, int index, u16 lot) {
void* smlua_to_cpointer(lua_State* L, int index, u16 lvt) {
s32 indexType = lua_type(L, index);
if (indexType == LUA_TNIL) { return NULL; }
if (indexType != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_to_cpointer received improper type '%d'", indexType);
LOG_LUA_LINE("smlua_to_cpointer received improper type '%s'", lua_typename(L, indexType));
gSmLuaConvertSuccess = false;
return 0;
}
@ -187,7 +185,7 @@ void* smlua_to_cpointer(lua_State* L, int index, u16 lvt) {
CPointer *cpointer = luaL_checkudata(L, index, "CPointer");
if (lvt != cpointer->lvt) {
LOG_LUA_LINE("smlua_to_cpointer received improper LOT. Expected '%d', received '%d'", lvt, cpointer->lvt);
LOG_LUA_LINE("smlua_to_cpointer received improper LOT. Expected '%s', received '%s'", smlua_get_lvt_name(lvt), smlua_get_lvt_name(cpointer->lvt));
gSmLuaConvertSuccess = false;
return NULL;
}
@ -470,7 +468,7 @@ void smlua_push_lnt(struct LSTNetworkType* lnt) {
lua_Integer smlua_get_integer_field(int index, const char* name) {
if (lua_type(gLuaState, index) != LUA_TTABLE && lua_type(gLuaState, index) != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_get_integer_field received improper type '%d'", lua_type(gLuaState, index));
LOG_LUA_LINE("smlua_get_integer_field received improper type '%s'", luaL_typename(gLuaState, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -482,7 +480,7 @@ lua_Integer smlua_get_integer_field(int index, const char* name) {
lua_Number smlua_get_number_field(int index, const char* name) {
if (lua_type(gLuaState, index) != LUA_TTABLE && lua_type(gLuaState, index) != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_get_number_field received improper type '%d'", lua_type(gLuaState, index));
LOG_LUA_LINE("smlua_get_number_field received improper type '%s'", luaL_typename(gLuaState, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -494,7 +492,7 @@ lua_Number smlua_get_number_field(int index, const char* name) {
const char* smlua_get_string_field(int index, const char* name) {
if (lua_type(gLuaState, index) != LUA_TTABLE && lua_type(gLuaState, index) != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_get_string_field received improper type '%d'", lua_type(gLuaState, index));
LOG_LUA_LINE("smlua_get_string_field received improper type '%s'", luaL_typename(gLuaState, index));
gSmLuaConvertSuccess = false;
return 0;
}
@ -506,7 +504,7 @@ const char* smlua_get_string_field(int index, const char* name) {
LuaFunction smlua_get_function_field(int index, const char *name) {
if (lua_type(gLuaState, index) != LUA_TTABLE && lua_type(gLuaState, index) != LUA_TUSERDATA) {
LOG_LUA_LINE("smlua_get_function_field received improper type '%d'", lua_type(gLuaState, index));
LOG_LUA_LINE("smlua_get_function_field received improper type '%s'", luaL_typename(gLuaState, index));
gSmLuaConvertSuccess = false;
return 0;
}

View file

@ -170,3 +170,8 @@ void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32
if (!gfx) { return; }
gDPSetCombineLERPNoString(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1);
}
void gfx_set_texture_image(Gfx* gfx, u32 format, u32 size, u32 width, u8* texture) {
if (!gfx) { return; }
gDPSetTextureImage(gfx, format, size, width, texture);
}

View file

@ -52,7 +52,9 @@ void set_skybox_color(u8 index, u8 value);
void gfx_parse(Gfx* cmd, LuaFunction func);
/* |description|Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`.|descriptionEnd| */
Vtx *gfx_get_vtx(Gfx* gfx, u16 offset);
/* |description|Sets the display list combine mode.|descriptionEnd| */
/* |description|Sets the display list combine mode. you can fill this function with G_CCMUX_* and G_ACMUX_* constants|descriptionEnd| */
void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1);
/* |description|Sets the display list texture image. Pass in textureInfo.texture as `texture`|descriptionEnd| */
void gfx_set_texture_image(Gfx* gfx, u32 format, u32 size, u32 width, u8* texture);
#endif

View file

@ -134,9 +134,9 @@ void save_file_set_using_backup_slot(bool usingBackupSlot);
/* |description|Registers a custom moving texture entry (used for vanilla water boxes)|descriptionEnd| */
void movtexqc_register(const char* name, s16 level, s16 area, s16 type);
/* |description|Gets the water level in an area|descriptionEnd| */
/* |description|Gets the water level in an area corresponding to `index` (0-indexed)|descriptionEnd| */
s16 get_water_level(u8 index);
/* |description|Sets the water level in an area|descriptionEnd| */
/* |description|Sets the water level in an area corresponding to `index` (0-indexed)|descriptionEnd| */
void set_water_level(u8 index, s16 height, bool sync);
/* |description|Plays a screen transition|descriptionEnd| */

View file

@ -265,6 +265,15 @@ static void ns_coopnet_shutdown(bool reconnecting) {
gCoopNetCallbacks.OnLobbyListGot = NULL;
gCoopNetCallbacks.OnLobbyListFinish = NULL;
gCoopNetCallbacks.OnConnected = NULL;
gCoopNetCallbacks.OnDisconnected = NULL;
gCoopNetCallbacks.OnReceive = NULL;
gCoopNetCallbacks.OnLobbyJoined = NULL;
gCoopNetCallbacks.OnLobbyLeft = NULL;
gCoopNetCallbacks.OnError = NULL;
gCoopNetCallbacks.OnPeerDisconnected = NULL;
gCoopNetCallbacks.OnLoadBalance = NULL;
sLocalLobbyId = 0;
sLocalLobbyOwnerId = 0;
}

View file

@ -10,6 +10,17 @@ const char* get_version(void) {
snprintf(sVersionString, MAX_VERSION_LENGTH, "%s", SM64COOPDX_VERSION);
#else
snprintf(sVersionString, MAX_VERSION_LENGTH, "%s %s", SM64COOPDX_VERSION, VERSION_REGION);
#endif
#endif // VERSION_US
return sVersionString;
}
#ifdef COMPILE_TIME
const char* get_version_with_build_date(void) {
#if defined(VERSION_US)
snprintf(sVersionString, MAX_VERSION_LENGTH, "%s, %s", SM64COOPDX_VERSION, COMPILE_TIME);
#else
snprintf(sVersionString, MAX_VERSION_LENGTH, "%s %s, %s", SM64COOPDX_VERSION, VERSION_REGION, COMPILE_TIME);
#endif // VERSION_US
return sVersionString;
}
#endif

View file

@ -29,8 +29,11 @@
#define WINDOW_NAME "Super Mario 64 Coop Deluxe"
#endif
#define MAX_VERSION_LENGTH 32
#define MAX_VERSION_LENGTH 128
const char* get_version(void);
#ifdef COMPILE_TIME
const char* get_version_with_build_date(void);
#endif
#endif

View file

@ -57,7 +57,6 @@ static bool is_rom_valid(const std::string romPath) {
ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(dataHash[i]);
}
bool foundHash = false;
for (VanillaMD5 *md5 = sVanillaMD5; md5->localizationName != NULL; md5++) {
if (md5->md5 == ss.str()) {
std::string destPath = fs_get_write_path("") + std::string("baserom.") + md5->localizationName + ".z64";
@ -72,12 +71,11 @@ static bool is_rom_valid(const std::string romPath) {
snprintf(gRomFilename, SYS_MAX_PATH, "%s", destPath.c_str()); // Load the copied rom
gRomIsValid = true;
foundHash = true;
break;
return true;
}
}
return foundHash;
return false;
}
inline static bool scan_path_for_rom(const char *dir) {
@ -104,12 +102,10 @@ bool main_rom_handler(void) {
#ifdef LOADING_SCREEN_SUPPORTED
void rom_on_drop_file(const char *path) {
static bool hasDroppedInvalidFile = false;
if (strlen(path) > 0) {
if (!is_rom_valid(path) && !hasDroppedInvalidFile) {
if (strlen(path) > 0 && !is_rom_valid(path) && !hasDroppedInvalidFile) {
hasDroppedInvalidFile = true;
strcat(gCurrLoadingSegment.str, "\n\\#ffc000\\The file you last dropped was not a valid, vanilla SM64 rom.");
}
}
}
#endif
}

View file

@ -753,6 +753,11 @@ def serialize_seqfile(
compress = False
if out_filename.endswith('sound_data.tbl'):
out_offsets_filename = 'sound/samples_offsets.h'
with open(out_offsets_filename, "w") as f:
for fname in asset_offsets:
macro_name = 'SAMPLE_' + fname.split('/samples/')[-1].replace('/', '_').replace('.', '_').replace('-', '_')
f.write(f'#define {macro_name} {hex(asset_offsets[fname] + data_start)} // {fname}\n')
data = data[:entry_offsets[0] + data_start] # remove the fake data
out_filename = 'sound/sound_data_compressed.tbl'
compress = True

29
tools/convert_cake.py Normal file
View file

@ -0,0 +1,29 @@
from PIL import Image
import os
def split_image(image_path, output_folder, slice_width=80, slice_height=20):
# Open the image
image = Image.open(image_path)
width, height = image.size
# Ensure output folder exists
os.makedirs(output_folder, exist_ok=True)
slice_count = 0
# Loop to create slices
for y in range(0, height, slice_height):
for x in range(0, width, slice_width):
# Define the bounding box (left, upper, right, lower)
box = (x, y, x + slice_width, y + slice_height)
slice_img = image.crop(box)
# Save slice
slice_filename = os.path.join(output_folder, f"cake_end_texture_{slice_count}.png")
slice_img.save(slice_filename)
slice_count += 1
print(f"Image split into {slice_count} slices and saved in '{output_folder}'.")
# Example usage
split_image("cake.png", "output_slices")