Merge branch 'master' into 'document/lighting'

# Conflicts:
#   src/core2/code_AC520.c
This commit is contained in:
Banjo Kazooie
2024-10-20 04:58:04 +00:00
353 changed files with 3703 additions and 3666 deletions

View File

@@ -1,9 +1,130 @@
#ifndef __CORE_1_H__
#define __CORE_1_H__
#ifndef BANJO_KAZOOIE_CORE1_CORE1_H
#define BANJO_KAZOOIE_CORE1_CORE1_H
#include <ultra64.h>
#include "bool.h"
#include "enums.h"
#include "structs.h"
#include "prop.h"
#include "core1/eeprom.h"
#include "core1/framebufferdraw.h"
#include "core1/lookup.h"
#include "core1/main.h"
#include "core1/mem.h"
#include "core1/ml.h"
#include "core1/mlmtx.h"
#include "core1/pfsmanager.h"
#include "core1/rarezip.h"
#include "core1/sns.h"
#include "core1/sprite.h"
#include "core1/ucode.h"
#include "core1/viewport.h"
#include "core1/vimgr.h"
void mlMtx_apply_vec3f(f32[3], f32[3]);
void func_80252C08(f32 arg0[3], f32 arg1[3], f32 scale, f32 arg3[3]);
/* need to sort out in individual header files */
void glcrc_calc_checksum(void *start, void *end, u32 checksum[2]);
void func_80250530(s32 arg0, u16 chan_mask, f32 arg2);
void func_8025A104(enum comusic_e arg0, s32 arg1);
void func_8025A55C(s32 arg0, s32 arg1, s32 arg2);
s32 func_8025A864(enum comusic_e track_id);
void func_8025ABB8(enum comusic_e comusic_id, s32 arg1, s32 arg2, s32 arg3);
int func_8025AD7C(enum comusic_e arg0);
int func_8025ADBC(enum comusic_e arg0);
/* src/core1/code_7090.c */
void core1_7090_alloc(void);
void core1_7090_release(void);
void core1_7090_initSfxSource(s32 idx, s32 lookup_idx, s32 sample_rate, f32 volume);
void core1_7090_freeSfxSource(int idx);
/* src/core1/code_CE60.c */
void core1_ce60_setChanMask(s32 chan_mask);
void core1_ce60_setChanMaskWithValue(s32 chan_mask, f32 arg1);
bool core1_ce60_isPlayerInRange(s32 x, s32 z, s32 distance);
f32 core1_ce60_getPlayerDistance(f32 x, f32 z);
bool core1_ce60_isPlayerInsideBoundingBox(s32 box_idx);
void core1_ce60_func_8024A9EC(s32 arg0);
void core1_ce60_func_8024AAB0(void);
void core1_ce60_func_8024ADF0(bool arg0);
void core1_ce60_func_8024AE74(void);
void core1_ce60_resetState(void);
void core1_ce60_setChanMaskFromWaterState(s32 chan_mask_underwater, s32 chan_mask_surface);
void core1_ce60_func_8024AF48(void);
void core1_ce60_incOrDecCounter(bool increment);
void core1_ce60_func_8024BD40(s32 arg0, s32 arg1);
/* src/core1/depthbuffer.c */
extern u8 D_8000E800;
void func_80253190(Gfx **gfx);
void func_80253208(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
bool func_80253400(void);
bool depthBuffer_isPointerSet(void);
void depthBuffer_stub(void);
void func_80253428(int arg0);
void func_802534A8(int arg0);
void zBuffer_set(Gfx **gfx);
void *zBuffer_get(void);
/* src/core1/code_15B30.c */
typedef struct {
s32 unk0;
s32 unk4;
Gfx *unk8;
Gfx *unkC;
s32 unk10;
s32 unk14;
}Struct_Core1_15B30;
#define DEFAULT_FRAMEBUFFER_WIDTH 292
#define DEFAULT_FRAMEBUFFER_HEIGHT 216
extern s32 gFramebufferWidth;
extern s32 gFramebufferHeight;
extern u16 gFramebuffers[2][DEFAULT_FRAMEBUFFER_WIDTH * DEFAULT_FRAMEBUFFER_HEIGHT];
void func_80253550(void);
void func_8025357C(void);
void func_802535A8(Gfx **arg0, Gfx **arg1, UNK_TYPE(s32) arg2, UNK_TYPE(s32) arg3);
void func_80253640(Gfx ** gdl, void *arg1);
void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx);
void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address);
void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx);
void func_80253DC0(Gfx **gfx);
void finishFrame(Gfx **gdl);
void func_80253E14(Gfx *arg0, Gfx *arg1, s32 arg2);
void func_80253EA4(Gfx *arg0, Gfx *arg1);
void func_80253EC4(Gfx *arg0, Gfx *arg1);
void func_80253EE4(Gfx **arg0, Gfx **arg1, s32 arg2);
void func_80253F74(Gfx **arg0, Gfx **arg1);
void func_80253F94(Gfx **arg0, Gfx **arg1);
void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom);
void func_80253FE8(void);
void func_80254008(void);
void func_80254028(void);
void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b);
void graphicsCache_release(void);
void graphicsCache_init(void);
void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom);
void scissorBox_setDefault(void);
void func_80254374(s32 arg0);
void toggleTextureFilterPoint(void);
void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx);
void dummy_func_80254464(void);
#endif

7
include/core1/eeprom.h Normal file
View File

@@ -0,0 +1,7 @@
#ifndef BANJO_KAZOOIE_CORE1_EEPROM_H
#define BANJO_KAZOOIE_CORE1_EEPROM_H
s32 eeprom_writeBlocks(s32 file, s32 offset, void *buffer, s32 count);
s32 eeprom_readBlocks(s32 file, s32 offset, void *buffer, s32 count);
#endif

View File

@@ -0,0 +1,28 @@
#ifndef BANJO_KAZOOIE_CORE1_FRAMEBUFFERDRAW_H
#define BANJO_KAZOOIE_CORE1_FRAMEBUFFERDRAW_H
void framebufferdraw_drawSpriteCI4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteCI8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteRGBA16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled);
void framebufferdraw_drawSpriteI4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled);
void framebufferdraw_drawSpriteIA4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled);
void framebufferdraw_drawSpriteI8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteIA8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled);
void framebufferdraw_drawSpriteRGBA32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_stub1(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void framebufferdraw_stub2(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void framebufferdraw_drawTexture_CI4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled);
void framebufferdraw_draw(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4);
void framebufferdraw_func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mY, s32 mW, s32 mH, s32 maskColor, s32 mStride, bool dim, s32 replacementColor);
void framebufferdraw_drawGrid(s32 x, s32 y, s32 arg2, s32 arg3, s32 horz_spacing, s32 vert_spacing);
void framebufferdraw_setPixel(s32 x, s32 y);
void framebufferdraw_drawOutline(s32 x, s32 y, s32 w, s32 h);
void framebufferdraw_func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6);
void framebufferdraw_drawRect(s32 x, s32 y, s32 w, s32 h);
void framebufferdraw_resetPrimColorAndBuffer(void);
void framebufferdraw_setPrimColor(s32 r, s32 g, s32 b);
void framebufferdraw_setBufferIndex(s32 buffer_indx);
s32 framebufferdraw_getBufferIndex(void);
#endif

8
include/core1/lookup.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef BANJO_KAZOOIE_CORE1_LOOKUP_H
#define BANJO_KAZOOIE_CORE1_LOOKUP_H
enum comusic_e lookup_getCoMusicId(s32 idx);
enum sfx_e lookup_getSfxId(s32 idx);
enum asset_e lookup_getAnimAssetId(s32 idx);
#endif

26
include/core1/main.h Normal file
View File

@@ -0,0 +1,26 @@
#ifndef BANJO_KAZOOIE_CORE1_MAIN_H
#define BANJO_KAZOOIE_CORE1_MAIN_H
void func_8023DA20(s32 arg0);
void func_8023DA74(void);
void func_8023DA9C(s32 arg0);
u32 globalTimer_getTimeMasked(u32 mask);
//s32 globalTimer_getTime(void);
void globalTimer_reset(void);
enum map_e getSpecialBootMap(void);
enum map_e getDefaultBootMap(void);
void func_8023DBAC(void);
void func_8023DBDC(void);
void core1_init(void);
void globalTimer_incTimer(void);
void globalTimer_decTimer(void);
void mainLoop(void);
void mainThread_entry(void *arg);
void func_8023DFF0(s32 arg0);
s32 func_8023E000(void);
void setBootMap(enum map_e map_id);
void mainThread_create(void);
OSThread *mainThread_get(void);
void disableInput_set(void);
#endif

View File

@@ -1,5 +1,5 @@
#ifndef __MEM_H__
#define __MEM_H__
#ifndef BANJO_KAZOOIE_CORE1_MEMORY_H
#define BANJO_KAZOOIE_CORE1_MEMORY_H
/**
* copy memory area

122
include/core1/ml.h Normal file
View File

@@ -0,0 +1,122 @@
#ifndef BANJO_KAZOOIE_CORE1_ML_H
#define BANJO_KAZOOIE_CORE1_ML_H
f32 ml_acosf_deg(f32 x);
void ml_vec3f_sub_and_rotate(f32 vec1[3], f32 rotation[3], f32 vec2[3], f32 dst[3]);
f32 ml_vec3f_cos_between(f32 vec1[3], f32 vec2[3]);
void ml_vec3f_cross_product(f32 dst[3], f32 vec1[3], f32 vec2[3]);
void ml_vec3f_interpolate_fast(f32 dst[3], f32 start[3], f32 end[3], f32 t);
f32 ml_vec3f_dot_product(f32 vec1[3], f32 vec2[3]);
f32 ml_vec3f_distance(f32 vec1[3], f32 vec2[3]);
f32 ml_func_802560D0(f32 arg0[3], f32 arg1[3], f32 arg2[3]);
f32 ml_distanceSquared_vec3f(f32 vec1[3], f32 vec2[3]);
void func_802562DC(f32 vec1[3], f32 vec2[3], f32 vec3[3]);
f32 ml_vec3f_length_unused(f32 vec[3]);
void ml_vec3f_normalize_copy(f32 arg0[3], f32 arg1[3]);
void ml_vec3f_normalize(f32 vec[3]);
void ml_vec2f_normalize(f32 vec[2]);
void ml_3f_normalize(f32 *x, f32 *y, f32 *z);
void ml_vec3f_set_length_copy(f32 dst[3], f32 src[3], f32 len);
void func_80256664(f32 ptr[3]);
void func_80256740(f32 vec[3]);
void ml_vec3f_pitch_rotate_copy(f32 dst[3], f32 src[3], f32 pitch);
void ml_vec3f_yaw_rotate_copy(f32 dst[3], f32 src[3], f32 yaw);
void ml_vec3f_roll_rotate_copy(f32 dst[3], f32 src[3], f32 roll);
void ml_vec3f_set_length(f32 vec[3], f32 length);
f32 func_80256AB4(f32 x1, f32 y1, f32 x2, f32 y2);
f32 func_80256B54(f32 vec1[3], f32 vec2[3]);
f32 func_80256C60(f32 vec[3], s32 val);
void func_80256D0C(f32 val1, f32 val2, f32 x, f32 y, f32 z, f32 *dstX, f32 *dstY, f32 *dstZ);
void func_80256E24(f32 dst[3], f32 theta, f32 phi, f32 x, f32 y, f32 z);
void func_80256F44(f32 vec1[3], f32 vec2[3], f32 vec3[3], f32 dst[3]);
f32 ml_acosf(f32 x);
f32 func_8025715C(f32 val1, f32 val2);
f32 func_80257204(f32 val1, f32 val2, f32 val3, f32 val4);
f32 func_80257248(f32 vec1[3], f32 vec2[3]);
void func_8025727C(f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2, f32 *o1, f32 *o2);
void ml_init(void);
void ml_free(void);
f32 func_802575BC(f32 val);
f32 func_80257618(f32 val);
f32 func_80257658(f32 val);
f32 func_80257680(f32 val1, f32 val2, f32 val3);
void ml_defrag(void);
bool ml_timer_update(f32 *timer, f32 delta);
void func_8025778C(f32 dst[3], f32 arg1[3], f32 arg2[3][3]);
void func_802578A4(f32 dst[3], f32 vec1[3], f32 vec2[3]);
void func_80257918(f32 arg0[3], f32 arg1[3], f32 arg2[3], f32 arg3[3]);
bool func_802579B0(f32 vec[3], f32 x1, f32 z1, f32 x2, f32 z2);
f32 func_80257A44(f32 val1, f32 val2);
f32 func_80257A6C(f32 val1, f32 val2);
f32 func_80257AD4(f32 val1, f32 val2);
f32 ml_map_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max);
f32 ml_mapRange_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max);
f32 ml_interpolate_f(f32 arg0, f32 arg1, f32 arg2);
f32 ml_mapFunction_f(f32 a, f32 b, f32 c, f32 d, f32 e, f32 (*func)(f32));
f32 func_80257CC0(f32 a, f32 b, f32 c, f32 d, f32 e);
f32 func_80257CF8(f32 a, f32 b, f32 c, f32 d, f32 e);
f32 ml_mapAbsRange_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max);
void func_80257DB0(f32 arg0[3], f32 arg1[3], f32 arg2[3]);
void ml_setLength_vec3f(f32 v[3], f32 a);
s32 ml_clamp_w(s32 val, s32 min, s32 max);
f32 ml_clamp_f(f32 val, f32 min, f32 max);
int func_80257F18(f32 src[3], f32 target[3], f32 *yaw);
int func_8025801C(f32 target[3], f32 *yaw);
int func_80258108(f32 vec[3], f32 *arg1, f32 *arg2);
int func_80258210(f32 x, f32 y, f32 *dst);
bool ml_isZero_vec3f(f32 vec[3]);
bool ml_isNonzero_vec3f(f32 vec[3]);
bool ml_vec3f_not_on_vertical_axis(f32 vec[3]);
bool ml_vec3f_inside_box_f(f32 vec[3], f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY, f32 maxZ);
bool ml_vec3f_inside_box_vec3f(f32 vec[3], f32 min[3], f32 max[3]);
bool ml_vec3w_inside_box_w(s32 vec[3], s32 minX, s32 minY, s32 minZ, s32 maxX, s32 maxY, s32 maxZ);
f32 ml_vec3f_horizontal_distance_zero_likely(f32 vec1[3], f32 vec2[3]);
f32 ml_vec3f_horizontal_distance_squared_zero_likely(f32 vec1[3], f32 vec2[3]);
f32 ml_vec3f_length(f32 vec1[3], f32 vec2[3]);
f32 ml_vec3f_length_sq(f32 vec1[3], f32 vec2[3]);
f32 ml_sin_deg(f32 angle_deg);
f32 ml_cos_deg(f32 angle_deg);
f32 mlNormalizeAngle(f32 angle);
f32 ml_remainder_f(f32 arg0, f32 arg1);
f32 ml_max_f(f32 arg0, f32 arg1);
f32 ml_min_f(f32 arg0, f32 arg1);
int ml_max_w(int arg0, int arg1);
int ml_min_w(int arg0, int arg1);
f32 mlAbsF(f32 arg0);
f32 func_80258994(f32 arg0[3]);
int ml_abs_w(int arg0);
void func_802589E4(f32 dst[3], f32 yaw, f32 length);
void func_80258A4C(f32 vec1[3], f32 arg1, f32 vec2[3], f32 *arg3, f32 *arg4, f32 *arg5);
void ml_vec3f_clear(f32 dst[3]);
void ml_vec3f_copy(f32 dst[3], f32 src[3]);
void ml_vec3f_diff_copy(f32 dst[3], f32 src1[3], f32 src2[3]);
void ml_vec3f_diff(f32 dst[3], f32 src[3]);
void ml_vec3f_assign(f32 dst[3], f32 x, f32 y, f32 z);
void ml_vec3f_add(f32 dst[3], f32 src1[3], f32 src2[3]);
void ml_vec3f_scale(f32 vec[3], f32 scale);
void ml_vec3f_scale_copy(f32 dst[3], f32 src[3], f32 scale);
void func_80258CDC(f32 vec1[3], f32 vec2[3]);
void ml_vec3w_to_vec3f(f32 dst[3], s32 src[3]);
void ml_vec3h_to_vec3f(f32 dst[3], s16 src[3]);
void ml_vec3f_to_vec3w(s32 dst[3], f32 src[3]);
void ml_vec3f_to_vec3h(s16 dst[3], f32 src[3]);
void ml_translate_y_local(f32 position[3], f32 rotation[3], f32 dy);
void ml_translate_z_local(f32 dst[3], f32 src[3], f32 dz);
void ml_translate_x_local(f32 dst[3], f32 src[3], f32 dx);
void func_8025901C(f32 arg0, f32 arg1[3], f32 arg2[3], f32 arg3);
f32 func_80259198(f32 arg0, f32 arg1);
f32 mlDiffDegF(f32 arg0, f32 arg1);
bool ml_vec3f_point_within_horizontal_distance(f32 vec[3], f32 x, f32 z, f32 distance);
bool ml_vec3f_within_horizontal_distance(f32 vec1[3], f32 vec2[3], f32 distance);
bool ml_vec3w_within_horizontal_distance(s32 vec1[3], s32 vec2[3], s32 distance);
bool ml_vec3f_within_distance(f32 vec1[3], f32 vec2[3], f32 distance);
bool ml_stub_80259400(f32 x);
void ml_sub_delta_time(f32 *x);
void func_8025947C(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]);
f32 func_80259554(f32 dst[3], f32 vec1[3], f32 vec2[3], f32 vec3[3]);
void func_802596AC(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]);
s32 ml_getViewportYawWithOffset(f32 x);
bool ml_isViewportYawWithOffsetNormalized(f32 x);
void ml_vec3f_interpolate(f32 dst[3], f32 start[3], f32 end[3], f32 t);
#endif

45
include/core1/mlmtx.h Normal file
View File

@@ -0,0 +1,45 @@
#ifndef BANJO_KAZOOIE_CORE1_MLMTX_H
#define BANJO_KAZOOIE_CORE1_MLMTX_H
void mlMtxGet(MtxF *dst);
MtxF *mlMtx_get_stack_pointer(void);
void mlMtxApply(Mtx *mPtr);
void mlMtxPop(void);
void mlMtx_push_duplicate(void);
void mlMtx_push_identity(void);
void mlMtx_push_translation(f32 x, f32 y, f32 z);
void mlMtx_push_mtx(f32* mtx);
void mlMtx_push_multiplied(f32* l_mtx);
void mlMtx_push_multiplied_2(MtxF * l_mtx, MtxF * r_mtx);
void mlMtxIdent(void);
void func_80251B5C(f32 x, f32 y, f32 z);
void mlMtxSet(MtxF* arg0);
void mlMtxRotate(f32 a, f32 x, f32 y, f32 z);
void mlMtxRotPitch(f32 arg0);
void mlMtxRotYaw(f32 arg0);
void mlMtxRotRoll(f32 arg0);
void mlMtx_rotate_pitch_deg(f32 arg0);
void mlMtx_rotate_yaw_deg(f32 arg0);
void mlMtxRotatePYR(f32 pitch, f32 yaw, f32 roll);
void mlMtxScale_xyz(f32 x, f32 y, f32 z);
void mlMtxScale(f32 scale);
void func_80252330(f32 x, f32 y, f32 z);
void mlMtx_apply_vec3f(f32 dst[3], f32 src[3]);
void mlMtx_apply_vec3f_restricted(f32 dst[3], f32 src[3]);
void mlMtx_apply_f3(f32 dst[3], f32 x, f32 y, f32 z);
void mlMtx_apply_vec3s(s16 dst[3], s16 src[3]);
void func_8025276C(s32 arg0[3], s32 arg1[3], s32 arg2[3], s32 arg3[3]);
void mlMtxTranslate(f32 x, f32 y, f32 z);
void func_80252A38(f32 x, f32 y, f32 z);
void func_80252AF0(f32 arg0[3], f32 arg1[3], f32 rotation[3], f32 scale, f32 arg4[3]);
void func_80252C08(f32 arg0[3], f32 rotation[3], f32 scale, f32 arg3[3]);
void func_80252CC4(f32 position[3], f32 rotation[3], f32 scale, f32 arg3[3]);
void func_80252D8C(f32 position[3], f32 rotation[3]);
void func_80252DDC(f32 position[3], f32 rotation[3]);
void func_80252E4C(f32 position[3], f32 rotation[3]);
void func_80252EC8(f32 position[3], f32 rotation[3]);
void func_80252F50(f32 rotation[3]);
void func_80252F8C(f32 rotation[3]);
void func_80252FC8(f32 rotation[3]);
#endif

View File

@@ -0,0 +1,68 @@
#ifndef BANJO_KAZOOIE_CORE1_PFSMANAGER_H
#define BANJO_KAZOOIE_CORE1_PFSMANAGER_H
typedef struct pfs_manager_face_buttons_s {
bool button_a;
bool button_b;
bool button_c_left;
bool button_c_up;
bool button_c_down;
bool button_c_right;
} PfsManagerFaceButtons;
typedef struct pfs_manager_side_buttons_s {
bool button_z;
bool button_l;
bool button_r;
} PfsManagerSideButtons;
typedef struct pfs_manager_controller_data {
union { s32 face_button[6]; PfsManagerFaceButtons face_button2; };
union { s32 side_button[3]; PfsManagerSideButtons side_button2; };
s32 unk24[4];
s32 start_button;
} PfsManagerControllerData;
typedef struct {
s16 unk0;
s16 unk2;
u16 unk4;
u16 unk6;
f32 unk8[2];
f32 joystick[2];
}Struct_core1_10A00_1;
f32 func_8024E420(s32 arg0, s32 arg1, s32 arg2);
void controller_copyFaceButtons(s32 controller_index, s32 dst[6]);
void pfsManager_getFirstControllerFaceButtonState(s32 controller_index, s32 dst[6]);
s32 func_8024E5E8(s32 arg0, s32 arg1);
s32 func_8024E60C(s32 controller_index, s32 dst[3]);
s32 func_8024E640(s32 controller_index, s32 dst[3]);
f32 func_8024E668(s32 controller_index);
s32 controller_getStartButton(s32 controller_index);
s32 func_8024E698(s32 controller_index);
void func_8024E6E0(s32 controller_index, s32 *dst[4]);
void controller_getJoystick(s32 controller_index, f32 dst[2]);
void pfsManager_update(void);
void pfsManager_readData();
void pfsManager_entry(void *arg);
void pfsManager_init(void);
bool pfsManager_contErr(void);
void func_8024F150(void);
void func_8024F180(void);
void pfsManager_getStartReadData(void);
void func_8024F1F0(void);
void func_8024F224(void);
void func_8024F2E4(s32 arg0, Struct_core1_10A00_1 *arg1);
void func_8024F328(s32 controller_index, s32 arg1);
OSMesgQueue * pfsManager_getFrameReplyQ(void);
OSMesgQueue *pfsManager_getFrameMesgQ(void);
void func_8024F35C(s32 arg0);
bool pfsManager_isBusy(void);
int func_8024F3C4(int arg0);
OSContPad *func_8024F3F4(void);
void func_8024F400(void);
void func_8024F450(void);
void func_8024F4AC(void);
#endif

View File

@@ -1,7 +1,5 @@
#ifndef RAREZIP_H
#define RAREZIP_H
#include <ultra64.h>
#ifndef BANJO_KAZOOIE_CORE1_RAREZIP_H
#define BANJO_KAZOOIE_CORE1_RAREZIP_H
extern u8 D_80275670[];
//border[]= { /* Order of the bit length code lengths */

View File

@@ -1,6 +1,5 @@
#ifndef __SNS_H__
#define __SNS_H__
#include <ultra64.h>
#ifndef BANJO_KAZOOIE_CORE1_SNS_H
#define BANJO_KAZOOIE_CORE1_SNS_H
/**
* sns sets

11
include/core1/sprite.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef BANJO_KAZOOIE_CORE1_SPRITE_H
#define BANJO_KAZOOIE_CORE1_SPRITE_H
u32 sprite_getUnk8(BKSprite *this);
u32 sprite_getUnkA(BKSprite *this);
u32 sprite_getUnk6(BKSprite *this);
u32 sprite_getUnk4(BKSprite *this);
s32 sprite_getFrameCount(BKSprite *this);
BKSpriteFrame *sprite_getFramePtr(BKSprite *this, u32 frame_id);
#endif

10
include/core1/ucode.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef BANJO_KAZOOIE_CORE1_UCODE_H
#define BANJO_KAZOOIE_CORE1_UCODE_H
void ucode_load(void);
void ucode_stub1(void); // does nothing
void ucode_stub2(void); // performs dummy read on PI
s32 ucode_stub3(void); // returns always 0
void ucode_getPtrAndSize(void **ptr, u32 *size);
#endif

View File

@@ -1,10 +1,5 @@
#ifndef BANJO_KAZOOIE_VIEWPORT_H
#define BANJO_KAZOOIE_VIEWPORT_H
#include <ultra64.h>
#include <prop.h> // for Cube
#include "ml/mtx.h" // for MtxF
#ifndef BANJO_KAZOOIE_CORE1_VIEWPORT_H
#define BANJO_KAZOOIE_CORE1_VIEWPORT_H
void viewport_moveAlongZAxis(f32 offset);
f32 viewport_getDistance(f32 arg0[3]);

28
include/core1/vimgr.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef BANJO_KAZOOIE_CORE1_VIMGR_H
#define BANJO_KAZOOIE_CORE1_VIMGR_H
typedef struct struct_1_s{
OSMesgQueue *messageQueue;
OSMesg message;
} struct1;
u32 getOtherFramebuffer(void);
s32 viMgr_func_8024BD94(void);
s32 getActiveFramebuffer(void);
void viMgr_func_8024BDAC(OSMesgQueue *mq, OSMesg msg);
void viMgr_init(void);
void viMgr_func_8024BF94(s32 arg0);
s32 viMgr_func_8024BFA0(void);
void viMgr_func_8024BFAC(void);
void viMgr_func_8024BFD8(s32 arg0);
void viMgr_func_8024C1B4(void);
void viMgr_func_8024C1DC(void);
void viMgr_func_8024C1FC(OSMesgQueue *mq, OSMesg msg);
void viMgr_setActiveFramebuffer(s32 arg0);
void viMgr_entry(void *arg0);
void viMgr_setScreenBlack(s32 active);
void viMgr_clearFramebuffers(void);
s32 viMgr_func_8024C4E8(void);
void viMgr_func_8024C4F8(s32 arg0);
#endif

View File

@@ -3,7 +3,6 @@
#include <ultra64.h>
#include "generic.h"
#include "ml/mtx.h"
#ifndef NONMATCHING
#define animctrl_start(this, file, line) _animctrl_start(this, file, line)

73
include/core2/camera.h Normal file
View File

@@ -0,0 +1,73 @@
#ifndef _CAMERA_H_
#define _CAMERA_H_
#include <ultratypes.h>
#include <core2/file.h>
typedef struct {
s32 type: 24;
s32 valid: 8;
s32 data_ptr;
} CameraNode;
typedef struct {
f32 position[3];
f32 horizontalSpeed;
f32 verticalSpeed;
f32 rotation;
f32 accelaration;
f32 pitchYawRoll[3]; // 0 = pitch, 1 = yaw, 2 = roll
s32 unknownFlag; // unknown, some sort of flag value, is &'ed with 1, 2 and 4
} CameraNodeType1;
CameraNodeType1 *cameraNodeType1_init();
void cameraNodeType1_free(CameraNodeType1 *this);
void cameraNodeType1_fromFile(File *file_ptr, CameraNodeType1 *this);
void cameraNodeType1_getPosition(CameraNodeType1 *this, f32 position[3]);
void cameraNodeType1_getHorizontalAndVerticalSpeed(CameraNodeType1 *this, f32 *horizontal_speed, f32 *vertical_speed);
void cameraNodeType1_getRotationAndAccelaration(CameraNodeType1 *this, f32 *rotation, f32 *accelaration);
typedef struct {
f32 position[3];
f32 pitchYawRoll[3]; // 0 = pitch, 1 = yaw, 2 = roll
} CameraNodeType2;
CameraNodeType2 *cameraNodeType2_init();
void cameraNodeType2_free(CameraNodeType2 *this);
void cameraNodeType2_fromFile(File *file_ptr, CameraNodeType2 *this);
void cameraNodeType2_getPosition(CameraNodeType2 *this, f32 position[3]);
/*
* Sets 0 to pitch, 1 to yaw and 2 to roll
*/
void cameraNodeType2_getPitchYawRoll(CameraNodeType2 *this, f32 pitch_yaw_roll[3]);
typedef struct {
f32 position[3];
f32 horizontalSpeed;
f32 verticalSpeed;
f32 rotation;
f32 accelaration;
f32 closeDistance;
f32 farDistance;
f32 pitchYawRoll[3]; // 0 = pitch, 1 = yaw, 2 = roll
s32 unknownFlag;
} CameraNodeType3;
CameraNodeType3 *cameraNodeType3_init();
void cameraNodeType3_free(CameraNodeType3 *this);
void cameraNodeType3_fromFile(File *file_ptr, CameraNodeType3 *this);
void cameraNodeType3_getPosition(CameraNodeType3 *this, f32 position[3]);
void cameraNodeType3_getHorizontalAndVerticalSpeed(CameraNodeType3 *this, f32 *horizontal_speed, f32 *vertical_speed);
void cameraNodeType3_getRotationAndAccelaration(CameraNodeType3 *this, f32 *rotation, f32 *accelaration);
/*
* Sets 0 to pitch, 1 to yaw and 2 to roll
*/
void cameraNodeType3_getPositionWithPitchYawRoll(CameraNodeType3 *this, f32 pitch_yaw_roll[3]);
f32 cameraNodeType3_getCloseDistance(CameraNodeType3 *this);
f32 cameraNodeType3_getFarDistance(CameraNodeType3 *this);
typedef struct {
s32 unknownFlag;
} CameraNodeType4;
CameraNodeType4 *cameraNodeType4_init();
void cameraNodeType4_free(CameraNodeType4 *this);
void cameraNodeType4_fromFile(File *file_ptr, CameraNodeType4 *this);
#endif

View File

@@ -12,4 +12,7 @@ void func_8035179C_copyPosition(Struct68s* arg0, f32 arg1[3]);
void func_80351814(Struct68s *arg0, f32 arg1[3]);
f32 func_80351830(Struct68s *arg0);
extern void sfxsource_setSampleRate(u8, s32);
#endif

View File

@@ -328,7 +328,7 @@ enum volatile_flags_e {
VOLATILE_FLAG_74_SANDCASTLE_INFINITE_EGGS,
VOLATILE_FLAG_75_SANDCASTLE_INFINITE_RED_FEATHERS,
VOLATILE_FLAG_76_SANDCASTLE_INFINITE_GOLD_FEATHERS,
VOLATILE_FLAG_77_SANDCASTLE_SET_HEALTH_TO_MAX,
VOLATILE_FLAG_77_SANDCASTLE_SET_HEALTH_TO_MAX, // unused
VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS,
VOLATILE_FLAG_79, // unused
VOLATILE_FLAG_7A, // unused
@@ -1633,7 +1633,7 @@ enum honeycomb_e
HONEYCOMB_14_SM_WATERFALL,
HONEYCOMB_15_SM_UNDERWATER,
HONEYCOMB_16_SM_TREE,
HONEYCOMB_17_SM_COLIWOBBLE,
HONEYCOMB_17_SM_COLLIWOBBLE,
HONEYCOMB_18_SM_QUARRIES
};
@@ -1964,8 +1964,11 @@ enum actor_e
ACTOR_151_LOCKUP_SLOW = 0x151,
ACTOR_152_LOCKUP_MEDIUM,
ACTOR_153_LOCKUP_FAST,
ACTOR_158_UNKNOWN = 0x158,
ACTOR_154_UNKNOWN,
ACTOR_155_UNKNOWN,
ACTOR_156_UNKNOWN,
ACTOR_157_UNKNOWN,
ACTOR_158_UNKNOWN,
ACTOR_15A_UNKNOWN = 0x15A,
@@ -1975,9 +1978,9 @@ enum actor_e
ACTOR_160_BOGGY_1,
ACTOR_163_BAT = 0x163,
ACTOR_164_COLLYWOBBLE_A,
ACTOR_165_BAWL_A,
ACTOR_166_TOPPER_A,
ACTOR_164_COLLYWOBBLE_THE_CAULIFLOWER_A,
ACTOR_165_BAWL_THE_ONION_A,
ACTOR_166_TOPPER_THE_CARROT_A,
ACTOR_167_ATTACK_TUTORIAL,
ACTOR_16E_UNKNOWN = 0x16E,
@@ -2134,6 +2137,9 @@ enum actor_e
ACTOR_32B_UNKNOWN = 0x32B, //something with Tanktup
ACTOR_32F_UNKNOWN = 0x32F,
ACTOR_330_UNKNOWN,
ACTOR_332_TWINKLY_BLUE = 0x332,
ACTOR_333_TWINKLY_GREEN,
ACTOR_334_TWINKLY_ORANGE,
@@ -2167,8 +2173,8 @@ enum actor_e
ACTOR_36C_25_MUMBO_TOKEN_SIGN,
ACTOR_COLLYWOBBLE_B = 0x36D,
ACTOR_BAWL_B = 0x36E,
ACTOR_TOPPER_B = 0x36F,
ACTOR_BAWL_THE_ONION_B = 0x36E,
ACTOR_TOPPER_THE_CARROT_B = 0x36F,
ACTOR_370_GOLD_FEATHER = 0x370,
ACTOR_374_VACATION_TEXT_TRIGGER = 0x374,
@@ -2213,10 +2219,11 @@ enum actor_e
ACTOR_3AF_GRUNTY_SHADOW = 0x3AF,
ACTOR_3BA_UNKNOWN = 0x3BA,
ACTOR_3B9_JUMP_TUTORIAL = 0x3B9,
ACTOR_3BA_UNKNOWN,
ACTOR_3BF_GRUNTLING_BLUE = 0x3bf,
ACTOR_3BF_GRUNTLING_BLUE = 0x3BF,
ACTOR_3C0_GRUNTLING_BLACK,
ACTOR_3C1_PURPLE_TEEHEE,
ACTOR_3C2_GIANT_GRAVESTONE,
@@ -2226,7 +2233,8 @@ enum actor_e
ACTOR_3C7_FF_PRIZE_GRUNTY_DOLL = 0x3C7,
ACTOR_3C8_FF_PRIZE_TOOTY = 0x3C8,
ACTOR_3CA_ROCK_TRAPPING_GRUNTY = 0x3CA
ACTOR_3CA_ROCK_TRAPPING_GRUNTY = 0x3CA,
ACTOR_3CB_UNKNOWN
};
enum bundle_e {
@@ -2447,15 +2455,15 @@ enum sm_specific_flags {
SM_SPECIFIC_FLAG_1_TALKED_TO_BOTTLES = 0x1,
SM_SPECIFIC_FLAG_2,
SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED,
SM_SPECIFIC_FLAG_4,
SM_SPECIFIC_FLAG_5,
SM_SPECIFIC_FLAG_4, // if true the claw swipe can be leared
SM_SPECIFIC_FLAG_5, // learned all attack moves
SM_SPECIFIC_FLAG_7 = 0x7,
SM_SPECIFIC_FLAG_7 = 0x7, // cauliflower dead?
SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED,
SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED,
SM_SPECIFIC_FLAG_A,
SM_SPECIFIC_FLAG_C = 0xC,
SM_SPECIFIC_FLAG_C = 0xC, // learned all attack moves
SM_SPECIFIC_FLAG_E = 0xE,
SM_SPECIFIC_FLAG_F,
@@ -2476,7 +2484,6 @@ enum mm_specific_flags {
MM_SPECIFIC_FLAG_A_UNKNOWN
};
enum ttc_specific_flags {
TTC_SPECIFIC_FLAG_0_BLUBBER_UNKNOWN,
TTC_SPECIFIC_FLAG_1_UNKNOWN, // something related to the sand castle
@@ -2510,10 +2517,11 @@ enum item_e
ITEM_6_HOURGLASS,
ITEM_7_SKULL_HOURGLASS,
ITEM_9_PROPELLOR = 0x9,
ITEM_B_XMAS_TREE = 0xb,
ITEM_C_NOTE,
ITEM_C_NOTE = 0xC,
ITEM_D_EGGS,
ITEM_E_JIGGY,
ITEM_F_RED_FEATHER,
@@ -2948,7 +2956,7 @@ enum asset_e
ASSET_225_ANIM_COLLYWOBBLE_UNKNOWN,
ASSET_226_ANIM_BAWL_UNKNOWN,
ASSET_227_ANIM_BAWL_UNKNOWN,
ASSET_228_ANIM_BANJO_SLED = 0x228,
ASSET_228_ANIM_BANJO_SLED,
ASSET_229_ANIM_WHIPCRACK_ATTACK,
ASSET_22A_ANIM_WHIPCRACK_IDLE,
ASSET_22B_ANIM_NABNUT_FAT,
@@ -3334,7 +3342,7 @@ enum asset_e
// 427 (Wooden Plank)
ASSET_428_MODEL_BOSS_BOOM_BOX = 0x428,
ASSET_429_MODEL_CC_KEY,
// 42a (Smoke 2D?)
ASSET_42A_UNKNOWN, // 42a (Smoke 2D?)
// 42b (Orange Triangle?)
ASSET_42C_MODEL_BURIED_TREASURE = 0x42C,
ASSET_42D_MODEL_QUARRIE = 0x42D,
@@ -3411,14 +3419,14 @@ enum asset_e
// 472 Blank Picture
// 473 Mumbo The BBQ King! He Bares Coconuts!
// 474 Roysten The Grill Master!
// 475 (Heart 2D?)
ASSET_476_SPRITE_BLUE_GLOW = 0x476,
ASSET_475_UNKNOWN = 0x475,// 475 (Heart 2D?)
ASSET_476_SPRITE_BLUE_GLOW,
ASSET_477_SPRITE_YELLOW_GLOW,
// 478 (Yellow Glow?)
// 479 Bikini Girl
// 47a (Brown Ball?)
ASSET_47B_MODEL_ROCK = 0x47b,
// 47c (Snoring Z 2D?)
ASSET_47C_UNKNOWN,// 47c (Snoring Z 2D?)
// Unused
// Unused
ASSET_47F_MODEL_XMAS_GIFT_BLUE = 0x47F,
@@ -3531,14 +3539,14 @@ enum asset_e
// 4ea FP Finish Banner
// 4eb FP Start Banner
// 4ec FP Race Rostrum
ASSET_4ED_MODEL_TOPPER = 0x4ed,
ASSET_4ED_MODEL_TOPPER = 0x4ED,
ASSET_4EE_MODEL_COLLYWOBBLE,
ASSET_4EF_MODEL_BAWL,
ASSET_4F0_MODEL_UNKNOWN, // 4f0 Colliwobble Large Stem (Upon Death)
ASSET_4F1_MODEL_UNKNOWN, // 4f1 Colliwobble Small Stem (Upon Death)
ASSET_4F2_MODEL_UNKNOWN, // 4f2 Colliwobble Large Leaf (Upon Death)
ASSET_4F3_MODEL_UNKNOWN, // 4f3 Colliwobble Small Leaf (Upon Death)
ASSET_4F4_MODEL_UNKNOWN, // 4f4 Colliwobble Stem (Upon Death)
ASSET_4F0_MODEL_TOPPER_UNKNOWN,
ASSET_4F1_MODEL_BAWL_OR_COLLIWOBBLE_UNKNOWN,
ASSET_4F2_MODEL_COLLIWOBBLE_LARGE_DEATH,
ASSET_4F3_MODEL_COLLIWOBBLE_SMALL_DEATH,
ASSET_4F4_MODEL_COLLIWOBBLE_STEM_DEATH,
// 4f5 CCW Spring Switch
// 4f6 CCW Summer Switch
// 4f7 CCW Autumn Switch
@@ -3811,7 +3819,7 @@ enum asset_e
// Unused
// 606 Red Mushroom
// 607 Green Mushroom
// 608 White Circle
ASSET_608_UNKNOWN = 0x608, // 608 White Circle
// 609 Mushroom (2D)
// Unused
// Unused
@@ -4014,6 +4022,7 @@ enum asset_e
ASSET_6DA_SPRITE_HOURGLASS,
ASSET_6DB_SPRITE_SKULL_HOURGLASS,
ASSET_6DC_SPRITE_XMAS_TREE_TIMER,
ASSET_6DD_UNKNOWN,
SPRITE_DIALOG_FONT_ALPHAMASK = 0x6eb,
SPRITE_BOLD_FONT_LETTERS_ALPHAMASK,
@@ -4037,8 +4046,8 @@ enum asset_e
ASSET_711_SPRITE_SPARKLE_DARK_BLUE,
ASSET_712_SPRITE_SPARKLE_GREEN,
ASSET_713_SPRITE_SPARKLE_YELLOW,
ASSET_715_SPRITE_SPARKLE_RED = 0x715,
ASSET_714_SPRITE_UNKNOWN,
ASSET_715_SPRITE_SPARKLE_RED,
ASSET_716_SPRITE_SPARKLE_WHITE,
ASSET_717_SPRITE_SPARKLE_YELLOW_2,
ASSET_718_SPRITE_SPARKLE_WHITE_2,
@@ -4190,20 +4199,20 @@ enum asset_e
ASSET_8A0_SPRITE_WATER_DROP = 0x8A0,
ASSET_A0B_TEXT_BLUBBER_FIRST_MEET = 0xA0B,
ASSET_A0C_TEXT_BLUBBER_HALF_GOLD,
ASSET_A0D_TEXT_BLUBBER_COMPLETE,
ASSET_A0E_TEXT_NIPPER_SPAWNED,
ASSET_A0B_DIALOG_BLUBBER_FIRST_MEET = 0xA0B,
ASSET_A0C_DIALOG_BLUBBER_HALF_GOLD,
ASSET_A0D_DIALOG_BLUBBER_COMPLETE,
ASSET_A0E_DIALOG_NIPPER_SPAWNED,
ASSET_A10_TEXT_TTC_NIPPER_HURT = 0xa10,
ASSET_A10_DIALOG_TTC_NIPPER_HURT = 0xa10,
ASSET_A14_TEXT_CLAM_TAUNT = 0xA14,
ASSET_A15_TEXT_TTC_LOCKUP_SPAWNED,
ASSET_A14_DIALOG_CLAM_TAUNT = 0xA14,
ASSET_A15_DIALOG_TTC_LOCKUP_SPAWNED,
ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED = 0xA17,
ASSET_A18_TEXT_TREASUREHUNT_FOLLOW_CLUES,
ASSET_A19_TEXT_TREASUREHUNT_SECOND_STEP,
ASSET_A1A_TEXT_LEAKY_FIRST_MEET,
ASSET_A17_DIALOG_BURIED_TREASURE_SPAWNED = 0xA17,
ASSET_A18_DIALOG_TREASUREHUNT_FOLLOW_CLUES,
ASSET_A19_DIALOG_TREASUREHUNT_SECOND_STEP,
ASSET_A1A_DIALOG_LEAKY_FIRST_MEET,
ASSET_A1F_DIALOG_SHOCKJUMP_LEARN = VER_SELECT(0xa1f, 0x91f, 0, 0),
ASSET_A20_DIALOG_FLY_LEARN,
@@ -4213,63 +4222,63 @@ enum asset_e
ASSET_A24_DIALOG_JUMP_PAD_DISCOVERED,
ASSET_A25_DIALOG_FLY_DISC_DISCOVERED,
ASSET_A26_DIALOG_NEED_RED_FEATHERS_TO_FLY,
ASSET_A27_TEXT_BOTTLES_ALL_TTC_MOVES_LEARNED,
ASSET_A28_TEXT_LEAKY_DONE,
ASSET_A27_DIALOG_BOTTLES_ALL_TTC_MOVES_LEARNED,
ASSET_A28_DIALOG_LEAKY_DONE,
ASSET_A2A_BLUBBER_COMPLETE_JIGGY_COLLECTED = 0xA2A,
ASSET_A6F_TEXT_CHARMER_MEET = 0xA6F,
ASSET_A70_TEXT_CHARMER_HELPED,
ASSET_A71_TEXT_TRUNKER_MEET,
ASSET_A72_TEXT_TRUNKER_HELPED,
ASSET_A73_TEXT_GOBI_MEET,
ASSET_A74_TEXT_GOBI_HELPED,
ASSET_A75_TEXT_GOBI2_MEET,
ASSET_A76_TEXT_GOBI2_DONE,
ASSET_A77_TEXT_GOBI3_DONE,
ASSET_A78_TEXT_GRABBA_MEET,
ASSET_A79_TEXT_GRABBA_DEFEAT,
ASSET_A7A_TEXT_GRABBA_TOO_FAST,
ASSET_A7B_TEXT_JINXY_MEET,
ASSET_A7C_TEXT_JINXY_ONE_EGG,
ASSET_A7D_TEXT_JINXY_HELPED,
ASSET_A7E_TEXT_SAND_EELS_MEET,
ASSET_A7F_TEXT_ANICIENT_ONES_MEET,
ASSET_A80_TEXT_ANICIENT_ONES_DONE,
ASSET_A81_TEXT_SANDYBUTT_ENTER,
ASSET_A82_TEXT_SANDYBUTT_START_MAZE,
ASSET_A83_TEXT_SANDYBUTT_DONE,
ASSET_A6F_DIALOG_CHARMER_MEET = 0xA6F,
ASSET_A70_DIALOG_CHARMER_HELPED,
ASSET_A71_DIALOG_TRUNKER_MEET,
ASSET_A72_DIALOG_TRUNKER_HELPED,
ASSET_A73_DIALOG_GOBI_MEET,
ASSET_A74_DIALOG_GOBI_HELPED,
ASSET_A75_DIALOG_GOBI2_MEET,
ASSET_A76_DIALOG_GOBI2_DONE,
ASSET_A77_DIALOG_GOBI3_DONE,
ASSET_A78_DIALOG_GRABBA_MEET,
ASSET_A79_DIALOG_GRABBA_DEFEAT,
ASSET_A7A_DIALOG_GRABBA_TOO_FAST,
ASSET_A7B_DIALOG_JINXY_MEET,
ASSET_A7C_DIALOG_JINXY_ONE_EGG,
ASSET_A7D_DIALOG_JINXY_HELPED,
ASSET_A7E_DIALOG_SAND_EELS_MEET,
ASSET_A7F_DIALOG_ANICIENT_ONES_MEET,
ASSET_A80_DIALOG_ANICIENT_ONES_DONE,
ASSET_A81_DIALOG_SANDYBUTT_ENTER,
ASSET_A82_DIALOG_SANDYBUTT_START_MAZE,
ASSET_A83_DIALOG_SANDYBUTT_DONE,
ASSET_A84_DIALOG_TURBOTRAINERS_LEARN,
ASSET_A85_DIALOG_TURBOTRAINERS_REFRESHER,
ASSET_AD3_TEXT_UNKNOWN = 0xad3,
ASSET_AD4_TEXT_UNKNOWN,
ASSET_AD5_TEXT_UNKNOWN,
ASSET_AD6_TEXT_UNKNOWN,
ASSET_AD3_DIALOG_UNKNOWN = 0xad3,
ASSET_AD4_DIALOG_UNKNOWN,
ASSET_AD5_DIALOG_UNKNOWN,
ASSET_AD6_DIALOG_UNKNOWN,
ASSET_ADA_TEXT_UNKNOWN = 0xada,
ASSET_ADB_TEXT_UNKNOWN,
ASSET_ADA_DIALOG_UNKNOWN = 0xada,
ASSET_ADB_DIALOG_UNKNOWN,
ASSET_ADC_DIALOG_UNKNOWN,
ASSET_ADD_TEXT_UNKNOWN,
ASSET_ADE_TEXT_LOGGO_AS_BEAR,
ASSET_ADF_TEXT_ENTER_LOGGO,
ASSET_AE0_TEXT_EXIT_LOGGO,
ASSET_ADD_DIALOG_UNKNOWN,
ASSET_ADE_DIALOG_LOGGO_AS_BEAR,
ASSET_ADF_DIALOG_ENTER_LOGGO,
ASSET_AE0_DIALOG_EXIT_LOGGO,
ASSET_B37_TEXT_CONGA_SAFE_UP_HERE = 0xb37,
ASSET_B38_TEXT_CONGA_DEFEAT,
ASSET_B39_TEXT_CONGA_HIT_BY_EGG,
ASSET_B3A_TEXT_CONGA_HITS_PLAYER,
ASSET_B3B_TEXT_CONGA_ORANGE_PAD_JIGGY,
ASSET_B3C_TEXT_CONGA_MEET,
ASSET_B37_DIALOG_CONGA_SAFE_UP_HERE = 0xb37,
ASSET_B38_DIALOG_CONGA_DEFEAT,
ASSET_B39_DIALOG_CONGA_HIT_BY_EGG,
ASSET_B3A_DIALOG_CONGA_HITS_PLAYER,
ASSET_B3B_DIALOG_CONGA_ORANGE_PAD_JIGGY,
ASSET_B3C_DIALOG_CONGA_MEET,
ASSET_B3E_TEXT_CONGA_MEET_AS_TERMITE = VER_SELECT(0xb3e, 0x95c, 0, 0),
ASSET_B3E_DIALOG_CONGA_MEET_AS_TERMITE = VER_SELECT(0xb3e, 0x95c, 0, 0),
ASSET_B3F_DIALOG_CHIMPY_MEET,
ASSET_B40_DIALOG_CHIMPY_COMPLETE,
ASSET_B41_DIALOG_TERMITE_COOL_SHORTS,
ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK,
ASSET_B43_DIALOG_TERMITE_MEET_AS_BEAR,
ASSET_B44_TEXT_JUJU_MEET,
ASSET_B45_TEXT_JIGGY_COLLECT_10,
ASSET_B44_DIALOG_JUJU_MEET,
ASSET_B45_DIALOG_JIGGY_COLLECT_10,
ASSET_B47_DIALOG_EGGS_LEARN = 0xb47,
ASSET_B48_DIALOG_BEAKBUSTER_LEARN,
@@ -4277,34 +4286,34 @@ enum asset_e
ASSET_B4A_DIALOG_TALON_TROT_REFRESHER,
ASSET_B4B_DIALOG_EGGS_REFRESHER,
ASSET_B4C_DIALOG_BEAKBUSTER_REFRESHER,
ASSET_B4D_TEXT_UNKNOWN,
ASSET_B4D_DIALOG_UNKNOWN,
ASSET_B4E_TEXT_BOTTLES_ALL_MM_MOVES_LEARNED = 0xB4E,
ASSET_B4E_DIALOG_BOTTLES_ALL_MM_MOVES_LEARNED = 0xB4E,
ASSET_B51_TEXT_BOTTLES_HOW_TO_EXIT_LEVEL = 0xb51,
ASSET_B51_DIALOG_BOTTLES_HOW_TO_EXIT_LEVEL = 0xb51,
ASSET_B9F_TEXT_UNKNOWN = 0xb9f,
ASSET_B9F_DIALOG_UNKNOWN = 0xb9f,
ASSET_BFF_TEXT_UNKNOWN = 0xbff,
ASSET_BFF_DIALOG_UNKNOWN = 0xbff,
ASSET_C01_TEXT_UNKNOWN = 0xc01,
ASSET_C02_TEXT_UNKNOWN,
ASSET_C01_DIALOG_UNKNOWN = 0xc01,
ASSET_C02_DIALOG_UNKNOWN,
ASSET_C05_TEXT_UNKNOWN = 0xc05,
ASSET_C05_DIALOG_UNKNOWN = 0xc05,
ASSET_C08_TEXT_UNKNOWN = 0xc08,
ASSET_C09_TEXT_UNKNOWN,
ASSET_C0A_TEXT_UNKNOWN,
ASSET_C08_DIALOG_UNKNOWN = 0xc08,
ASSET_C09_DIALOG_UNKNOWN,
ASSET_C0A_DIALOG_UNKNOWN,
ASSET_C15_TEXT_TWINKLIE_MINIGAME_LOST = 0xc15,
ASSET_C15_DIALOG_TWINKLIE_MINIGAME_LOST = 0xc15,
ASSET_C17_TEXT_UNKNOWN = 0xC17,
ASSET_C18_TEXT_UNKNOWN,
ASSET_C19_TEXT_UNKNOWN,
ASSET_C1A_TEXT_UNKNOWN,
ASSET_C17_DIALOG_UNKNOWN = 0xC17,
ASSET_C18_DIALOG_UNKNOWN,
ASSET_C19_DIALOG_UNKNOWN,
ASSET_C1A_DIALOG_UNKNOWN,
ASSET_C1E_TEXT_UNKNOWN = 0xc1e,
ASSET_C1F_TEXT_UNKNOWN,
ASSET_C1E_DIALOG_UNKNOWN = 0xc1e,
ASSET_C1F_DIALOG_UNKNOWN,
ASSET_C20_DIALOG_PRESENT_COLLECTIBLE_MEET_BLUE = 0xC20,
ASSET_C21_DIALOG_PRESENT_COLLECTIBLE_MEET_GREEN,
@@ -4312,68 +4321,68 @@ enum asset_e
ASSET_C23_DIALOG_BEAKBOMB_LEARN,
ASSET_C24_DIALOG_BEAKBOMB_REFRESHER,
ASSET_C26_TEXT_UNKNOWN = 0xc26,
ASSET_C27_TEXT_UNKNOWN,
ASSET_C26_DIALOG_UNKNOWN = 0xc26,
ASSET_C27_DIALOG_UNKNOWN,
ASSET_C2A_TEXT_BOTTLES_ALL_FP_GV_MOVES_LEARNED = 0xC2A,
ASSET_C2B_TEXT_UNKNOWN,
ASSET_C2A_DIALOG_BOTTLES_ALL_FP_GV_MOVES_LEARNED = 0xC2A,
ASSET_C2B_DIALOG_UNKNOWN,
ASSET_C63_TEXT_MR_VILE_INTRO = 0xC63,
ASSET_C64_TEXT_MR_VILE_ROUND_1_START,
ASSET_C65_TEXT_MR_VILE_PLAYER_DECLINES,
ASSET_C66_TEXT_MR_VILE_WINS_ROUND_1,
ASSET_C67_TEXT_MR_VILE_ROUND_2_START,
ASSET_C68_TEXT_MR_VILE_WINS_ROUND_2,
ASSET_C69_TEXT_MR_VILE_ROUND_3_START,
ASSET_C6A_TEXT_MR_VILE_WINS_ROUND_3,
ASSET_C6B_TEXT_MR_VILE_PLAYER_WINS,
ASSET_C6C_TEXT_MR_VILE_TRY_AGAIN,
ASSET_C6D_TEXT_MR_VILE_LOSE_ROUND_1_REMATCH,
ASSET_C6E_TEXT_MR_VILE_LOSE_ROUND_2_REMATCH,
ASSET_C6F_TEXT_MR_VILE_LOSE_ROUND_3_REMATCH,
ASSET_C70_TEXT_MR_VILE_WIN_ROUND_2_REMATCH,
ASSET_C71_TEXT_MR_VILE_WIN_ROUND_3_REMATCH,
ASSET_C72_TEXT_UNKNOWN,
ASSET_C63_DIALOG_MR_VILE_INTRO = 0xC63,
ASSET_C64_DIALOG_MR_VILE_ROUND_1_START,
ASSET_C65_DIALOG_MR_VILE_PLAYER_DECLINES,
ASSET_C66_DIALOG_MR_VILE_WINS_ROUND_1,
ASSET_C67_DIALOG_MR_VILE_ROUND_2_START,
ASSET_C68_DIALOG_MR_VILE_WINS_ROUND_2,
ASSET_C69_DIALOG_MR_VILE_ROUND_3_START,
ASSET_C6A_DIALOG_MR_VILE_WINS_ROUND_3,
ASSET_C6B_DIALOG_MR_VILE_PLAYER_WINS,
ASSET_C6C_DIALOG_MR_VILE_TRY_AGAIN,
ASSET_C6D_DIALOG_MR_VILE_LOSE_ROUND_1_REMATCH,
ASSET_C6E_DIALOG_MR_VILE_LOSE_ROUND_2_REMATCH,
ASSET_C6F_DIALOG_MR_VILE_LOSE_ROUND_3_REMATCH,
ASSET_C70_DIALOG_MR_VILE_WIN_ROUND_2_REMATCH,
ASSET_C71_DIALOG_MR_VILE_WIN_ROUND_3_REMATCH,
ASSET_C72_DIALOG_UNKNOWN,
ASSET_C74_TEXT_UNKNOWN = 0xc74,
ASSET_C74_DIALOG_UNKNOWN = 0xc74,
ASSET_C76_TEXT_UNKNOWN = 0xc76,
ASSET_C76_DIALOG_UNKNOWN = 0xc76,
text_flibbits_meet = 0xc81,
text_flibbits_defeat = 0xc82,
text_flibbits_return = 0xc83,
ASSET_C86_TEXT_UNKNOWN = 0xc86,
ASSET_C86_DIALOG_UNKNOWN = 0xc86,
ASSET_C88_DIALOG_LONGLEG_LEARN = 0xC88,
ASSET_C89_DIALOG_LONGLEG_REFRESHER,
ASSET_C8A_TEXT_BOTTLES_ALL_BGS_MOVES_LEARNED,
ASSET_C8A_DIALOG_BOTTLES_ALL_BGS_MOVES_LEARNED,
ASSET_C8D_TEXT_MR_VILE_EXTRA_CHALLENGE_INTRO = 0xC8D,
ASSET_C8E_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_1,
ASSET_C8F_TEXT_MR_VILE_PLAYER_DECLINES_EXTRA_CHALLENGE,
ASSET_C90_TEXT_MR_VILE_EXTRA_CHALLENGE_REMATCH_1,
ASSET_C91_TEXT_MR_VILE_EXTRA_CHALLENGE_REMATCH_2,
ASSET_C92_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_2,
ASSET_C93_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_3,
ASSET_C94_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_4,
ASSET_C95_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_1,
ASSET_C96_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_2,
ASSET_C97_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_3,
ASSET_C98_TEXT_MR_VILE_GIVES_PRIZE,
ASSET_C8D_DIALOG_MR_VILE_EXTRA_CHALLENGE_INTRO = 0xC8D,
ASSET_C8E_DIALOG_MR_VILE_WINS_EXTRA_CHALLENGE_1,
ASSET_C8F_DIALOG_MR_VILE_PLAYER_DECLINES_EXTRA_CHALLENGE,
ASSET_C90_DIALOG_MR_VILE_EXTRA_CHALLENGE_REMATCH_1,
ASSET_C91_DIALOG_MR_VILE_EXTRA_CHALLENGE_REMATCH_2,
ASSET_C92_DIALOG_MR_VILE_WINS_EXTRA_CHALLENGE_2,
ASSET_C93_DIALOG_MR_VILE_WINS_EXTRA_CHALLENGE_3,
ASSET_C94_DIALOG_MR_VILE_WINS_EXTRA_CHALLENGE_4,
ASSET_C95_DIALOG_MR_VILE_LOSES_EXTRA_CHALLENGE_1,
ASSET_C96_DIALOG_MR_VILE_LOSES_EXTRA_CHALLENGE_2,
ASSET_C97_DIALOG_MR_VILE_LOSES_EXTRA_CHALLENGE_3,
ASSET_C98_DIALOG_MR_VILE_GIVES_PRIZE,
ASSET_CC7_TEXT_UNKNOWN = 0xcc7,
ASSET_CC7_DIALOG_UNKNOWN = 0xcc7,
ASSET_D2B_TEXT_UNKNOWN = 0xd2b,
ASSET_D2B_DIALOG_UNKNOWN = 0xd2b,
ASSET_D32_DIALOG_MUTANT_CRAB_MEET = 0xD32,
ASSET_D33_DIALOG_MUTANT_CRAB_DEFEAT,
ASSET_D34_TEXT_GLOOP_MEET,
ASSET_D34_DIALOG_GLOOP_MEET,
ASSET_D35_DIALOG_WONDERWING_LEARN,
ASSET_D36_DIALOG_WONDERWING_REFRESHER,
ASSET_D37_TEXT_BOTTLES_ALL_CC_MOVES_LEARNED,
ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED,
ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH,
ASSET_D37_DIALOG_BOTTLES_ALL_CC_MOVES_LEARNED,
ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED,
ASSET_D39_DIALOG_BOTTLES_REFILL_HEALTH,
ASSET_D8F_DIALOG_MUMBO_MEET = 0xD8F,
ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR,
@@ -4390,7 +4399,7 @@ enum asset_e
ASSET_D9B_DIALOG_JINJO_MEET_ORANGE,
ASSET_DA5_DIALOG_WADINGBOOTS_MEET = 0xDA5,
ASSET_DA6_TEXT_BEEHIVE_WITH_BEES,
ASSET_DA6_DIALOG_BEEHIVE_WITH_BEES,
ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER,
ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN,
@@ -4407,59 +4416,59 @@ enum asset_e
ASSET_DB4_DIALOG_SNS_EGG_2_TEXT,
ASSET_DB5_DIALOG_ICE_KEY_TEXT,
ASSET_DF3_TEXT_BOTTLES_INTRODUCTION = 0xDF3,
ASSET_DF4_TEXT_BOTTLES_CAMERA_CONTROL_LEARN,
ASSET_DF5_TEXT_BOTTLES_CAMERA_CONTROL_REFRESHER,
ASSET_DF6_TEXT_BOTTLES_HIGH_JUMP_LEARN,
ASSET_DF7_TEXT_BOTTLES_FEATHERY_FLAP_LEARN,
ASSET_DF8_TEXT_BOTTLES_FLAP_FLIP_LEARN,
ASSET_DF9_TEXT_BOTTLES_UNKNOWN,
ASSET_DFA_TEXT_BOTTLES_JUMP_REFRESHER,
ASSET_DFB_TEXT_BOTTLES_DIVE_LEARN,
ASSET_DFC_TEXT_UNKNOWN,
ASSET_DFD_TEXT_BOTTLES_SWIM_LEARN,
ASSET_DFE_TEXT_BOTTLES_DIVE_REFRESHER,
ASSET_DFF_TEXT_BOTTLES_CLAW_SWIPE_LEARN,
ASSET_E00_TEXT_BOTTLES_ATTACK_REFRESHER = 0xE00,
ASSET_E01_TEXT_BOTTLES_CLIMB_LEARN,
ASSET_E02_TEXT_UNKNOWN,
ASSET_E03_TEXT_BOTTLES_CLIMB_REFRESHER,
ASSET_E04_TEXT_BOTTLES_BEAK_BARGE_LEARN,
ASSET_E05_TEXT_UNKNOWN,
ASSET_E06_TEXT_BOTTLES_BEAK_BARGE_REFRESHER,
ASSET_E07_TEXT_BOTTLES_UNKNOWN,
ASSET_E08_TEXT_BOTTLES_FIND_ANOTHER_MOLEHILL,
ASSET_E09_TEXT_BOTTLES_SKIPPED_TUTORIAL,
ASSET_E0A_TEXT_BOTTLES_REFUSE_HELP_1,
ASSET_E0B_TEXT_BOTTLES_REFUSE_HELP_2,
ASSET_E0C_TEXT_BOTTLES_REFUSE_HELP_3,
ASSET_E0D_TEXT_BOTTLES_REFUSE_HELP_4,
ASSET_E0E_TEXT_BOTTLES_REFUSE_HELP_5,
ASSET_E0F_TEXT_BOTTLES_STOP_WASTING_TIME_BEFORE_FURNACE_FUN, // Skip tutorial, bother bottles, gives help, retalk to bottles
ASSET_E10_TEXT_BOTTLES_BRIDGE_BROKEN,
ASSET_E11_TEXT_BOTTLES_BRIDGE_STILL_BROKEN,
ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES,
ASSET_DF3_DIALOG_BOTTLES_INTRODUCTION = 0xDF3,
ASSET_DF4_DIALOG_BOTTLES_CAMERA_CONTROL_LEARN,
ASSET_DF5_DIALOG_BOTTLES_CAMERA_CONTROL_REFRESHER,
ASSET_DF6_DIALOG_BOTTLES_HIGH_JUMP_LEARN,
ASSET_DF7_DIALOG_BOTTLES_FEATHERY_FLAP_LEARN,
ASSET_DF8_DIALOG_BOTTLES_FLAP_FLIP_LEARN,
ASSET_DF9_DIALOG_BOTTLES_UNKNOWN,
ASSET_DFA_DIALOG_BOTTLES_JUMP_REFRESHER,
ASSET_DFB_DIALOG_BOTTLES_DIVE_LEARN,
ASSET_DFC_DIALOG_UNKNOWN,
ASSET_DFD_DIALOG_BOTTLES_SWIM_LEARN,
ASSET_DFE_DIALOG_BOTTLES_DIVE_REFRESHER,
ASSET_DFF_DIALOG_BOTTLES_CLAW_SWIPE_LEARN,
ASSET_E00_DIALOG_BOTTLES_ATTACK_REFRESHER = 0xE00,
ASSET_E01_DIALOG_BOTTLES_CLIMB_LEARN,
ASSET_E02_DIALOG_UNKNOWN,
ASSET_E03_DIALOG_BOTTLES_CLIMB_REFRESHER,
ASSET_E04_DIALOG_BOTTLES_BEAK_BARGE_LEARN,
ASSET_E05_DIALOG_UNKNOWN,
ASSET_E06_DIALOG_BOTTLES_BEAK_BARGE_REFRESHER,
ASSET_E07_DIALOG_BOTTLES_UNKNOWN,
ASSET_E08_DIALOG_BOTTLES_FIND_ANOTHER_MOLEHILL,
ASSET_E09_DIALOG_BOTTLES_SKIPPED_TUTORIAL,
ASSET_E0A_DIALOG_BOTTLES_REFUSE_HELP_1,
ASSET_E0B_DIALOG_BOTTLES_REFUSE_HELP_2,
ASSET_E0C_DIALOG_BOTTLES_REFUSE_HELP_3,
ASSET_E0D_DIALOG_BOTTLES_REFUSE_HELP_4,
ASSET_E0E_DIALOG_BOTTLES_REFUSE_HELP_5,
ASSET_E0F_DIALOG_BOTTLES_STOP_WASTING_TIME_BEFORE_FURNACE_FUN, // Skip tutorial, bother bottles, gives help, retalk to bottles
ASSET_E10_DIALOG_BOTTLES_BRIDGE_BROKEN,
ASSET_E11_DIALOG_BOTTLES_BRIDGE_STILL_BROKEN,
ASSET_E12_DIALOG_BOTTLES_LEARNED_TUTORIAL_MOVES,
ASSET_E14_TEXT_UNKNOWN = 0xE14,
ASSET_E15_TEXT_UNKNOWN,
ASSET_E16_TEXT_UNKNOWN,
ASSET_E17_TEXT_UNKNOWN,
ASSET_E18_TEXT_UNKNOWN,
ASSET_E19_TEXT_UNKNOWN,
ASSET_E1A_TEXT_BOTTLES_UNKNOWN,
ASSET_E1B_TEXT_BOTTLES_UNKNOWN,
ASSET_E1C_TEXT_BOTTLES_UNKNOWN,
ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT,
ASSET_E14_DIALOG_ATTACK_TUTORIAL_SUCCESSFUL_KILL = 0xE14,
ASSET_E15_DIALOG_ATTACK_TUTORIAL_FORWARD_ROLL,
ASSET_E16_DIALOG_ATTACK_TUTORIAL_SUCCESSFUL_KILL,
ASSET_E17_DIALOG_ATTACK_TUTORIAL_RATATAT_RAP,
ASSET_E18_DIALOG_ATTACK_TUTORIAL_SUCCESSFUL_KILL,
ASSET_E19_DIALOG_ATTACK_TUTORIAL_LEARNED_ALL_MOVES,
ASSET_E1A_DIALOG_BOTTLES_UNKNOWN,
ASSET_E1B_DIALOG_BOTTLES_UNKNOWN,
ASSET_E1C_DIALOG_BOTTLES_UNKNOWN,
ASSET_E1D_DIALOG_BOTTLES_TUTORIAL_OFFER_WAIT,
ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER = VER_SELECT(0xE1F, 0xa61, 0, 0),
ASSET_E1F_DIALOG_BOTTLES_TUTORIAL_OFFER = VER_SELECT(0xE1F, 0xa61, 0, 0),
ASSET_E20_DIALOG_BOTTLES_BONUS_NOT_READY,
ASSET_E21_DIALOG_BOTTLES_BONUS_DISCOVERED,
ASSET_E24_TEXT_UNKNOWN = 0xE24,
ASSET_E24_DIALOG_UNKNOWN = 0xE24,
ASSET_E35_DIALOG_BOTTLES_BONUS_REMINDER = VER_SELECT(0xE35, 0xa77, 0, 0),
ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN = 0xE37, // Talk to bottles after beating furnace fun
ASSET_E37_DIALOG_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN = 0xE37, // Talk to bottles after beating furnace fun
ASSET_E38_DIALOG_CHEATING_ERASE_SAVE_CONFIRMATION,
ASSET_E57_DIALOG_FIRST_JIGGY = VER_SELECT(0xF57, 0xabd, 0, 0),
@@ -4474,60 +4483,60 @@ enum asset_e
ASSET_F66_DIALOG_UNKNOWN,
ASSET_F67_DIALOG_UNKNOWN,
ASSET_F79_TEXT_UNKNOWN = 0xf79,
ASSET_F7A_TEXT_UNKNOWN,
ASSET_F79_DIALOG_UNKNOWN = 0xf79,
ASSET_F7A_DIALOG_UNKNOWN,
ASSET_FAD_TEXT_UNKNOWN = 0xfad,
ASSET_FAD_DIALOG_UNKNOWN = 0xfad,
ASSET_FBE_DIALOG_CHEATING_ERASE_SAVE_WARNING = 0xfbe,
ASSET_FBE_DIALOG_CHEATING_ERASE_SAVE_WARNING = 0xFBE,
ASSET_FBF_DIALOG_ERASED_SAVE,
ASSET_10A1_DIALOG_BRENTILDA_MEET = 0x10A1,
ASSET_10A2_TEXT_UNKNOWN,
ASSET_10A2_DIALOG_UNKNOWN,
ASSET_10E7_TEXT_UNKNOWN = 0x10E7,
ASSET_10E7_DIALOG_UNKNOWN = 0x10E7,
ASSET_10ED_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_1 = 0x10ED,
ASSET_10EE_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_2,
ASSET_10EF_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_3,
ASSET_10F0_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_4,
ASSET_10F1_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_5,
ASSET_10ED_DIALOG_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_1 = 0x10ED,
ASSET_10EE_DIALOG_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_2,
ASSET_10EF_DIALOG_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_3,
ASSET_10F0_DIALOG_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_4,
ASSET_10F1_DIALOG_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_5,
ASSET_10F2_TEXT_FINALBOSS_PHASE_1_OPTION_1 = 0x10F2,
ASSET_10F3_TEXT_FINALBOSS_PHASE_1_OPTION_2,
ASSET_10F4_TEXT_FINALBOSS_PHASE_1_OPTION_3,
ASSET_10F5_TEXT_FINALBOSS_PHASE_1_OPTION_4,
ASSET_10F6_TEXT_FINALBOSS_PHASE_1_OPTION_5,
ASSET_10F2_DIALOG_FINALBOSS_PHASE_1_OPTION_1 = 0x10F2,
ASSET_10F3_DIALOG_FINALBOSS_PHASE_1_OPTION_2,
ASSET_10F4_DIALOG_FINALBOSS_PHASE_1_OPTION_3,
ASSET_10F5_DIALOG_FINALBOSS_PHASE_1_OPTION_4,
ASSET_10F6_DIALOG_FINALBOSS_PHASE_1_OPTION_5,
ASSET_110B_TEXT_FINALBOSS_PHASE_2_OPTION_1 = 0x110B,
ASSET_110C_TEXT_FINALBOSS_PHASE_2_OPTION_2,
ASSET_110D_TEXT_FINALBOSS_PHASE_2_OPTION_3,
ASSET_110E_TEXT_FINALBOSS_PHASE_2_OPTION_4,
ASSET_110F_TEXT_FINALBOSS_PHASE_2_OPTION_5,
ASSET_110B_DIALOG_FINALBOSS_PHASE_2_OPTION_1 = 0x110B,
ASSET_110C_DIALOG_FINALBOSS_PHASE_2_OPTION_2,
ASSET_110D_DIALOG_FINALBOSS_PHASE_2_OPTION_3,
ASSET_110E_DIALOG_FINALBOSS_PHASE_2_OPTION_4,
ASSET_110F_DIALOG_FINALBOSS_PHASE_2_OPTION_5,
ASSET_111D_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_1 = 0x111D,
ASSET_111E_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_2,
ASSET_111F_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_3,
ASSET_1120_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_4,
ASSET_1121_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_5,
ASSET_111D_DIALOG_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_1 = 0x111D,
ASSET_111E_DIALOG_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_2,
ASSET_111F_DIALOG_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_3,
ASSET_1120_DIALOG_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_4,
ASSET_1121_DIALOG_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_5,
ASSET_1122_TEXT_FINALBOSS_PHASE_3_OPTION_1 = 0x1122,
ASSET_1123_TEXT_FINALBOSS_PHASE_3_OPTION_2,
ASSET_1124_TEXT_FINALBOSS_PHASE_3_OPTION_3,
ASSET_1125_TEXT_FINALBOSS_PHASE_3_OPTION_4,
ASSET_1126_TEXT_FINALBOSS_PHASE_3_OPTION_5,
ASSET_1122_DIALOG_FINALBOSS_PHASE_3_OPTION_1 = 0x1122,
ASSET_1123_DIALOG_FINALBOSS_PHASE_3_OPTION_2,
ASSET_1124_DIALOG_FINALBOSS_PHASE_3_OPTION_3,
ASSET_1125_DIALOG_FINALBOSS_PHASE_3_OPTION_4,
ASSET_1126_DIALOG_FINALBOSS_PHASE_3_OPTION_5,
ASSET_113B_TEXT_FINALBOSS_PHASE_4_OPTION_1 = 0x113B,
ASSET_113C_TEXT_FINALBOSS_PHASE_4_OPTION_2,
ASSET_113D_TEXT_FINALBOSS_PHASE_4_OPTION_3,
ASSET_113E_TEXT_FINALBOSS_PHASE_4_OPTION_4,
ASSET_113F_TEXT_FINALBOSS_PHASE_4_OPTION_5,
ASSET_113B_DIALOG_FINALBOSS_PHASE_4_OPTION_1 = 0x113B,
ASSET_113C_DIALOG_FINALBOSS_PHASE_4_OPTION_2,
ASSET_113D_DIALOG_FINALBOSS_PHASE_4_OPTION_3,
ASSET_113E_DIALOG_FINALBOSS_PHASE_4_OPTION_4,
ASSET_113F_DIALOG_FINALBOSS_PHASE_4_OPTION_5,
ASSET_1154_TEXT_FINALBOSS_PHASE_5_OPTION_1 = 0x1154,
ASSET_1155_TEXT_FINALBOSS_PHASE_5_OPTION_2,
ASSET_1156_TEXT_FINALBOSS_PHASE_5_OPTION_3,
ASSET_1157_TEXT_FINALBOSS_PHASE_5_OPTION_4,
ASSET_1158_TEXT_FINALBOSS_PHASE_5_OPTION_5,
ASSET_1154_DIALOG_FINALBOSS_PHASE_5_OPTION_1 = 0x1154,
ASSET_1155_DIALOG_FINALBOSS_PHASE_5_OPTION_2,
ASSET_1156_DIALOG_FINALBOSS_PHASE_5_OPTION_3,
ASSET_1157_DIALOG_FINALBOSS_PHASE_5_OPTION_4,
ASSET_1158_DIALOG_FINALBOSS_PHASE_5_OPTION_5,
ASSET_1213_FF_QUIZ_QUESTION = 0x1213,
ASSET_1214_FF_QUIZ_QUESTION,
@@ -5088,11 +5097,10 @@ enum marker_e{
MARKER_124_BOGGY_1 = 0x124,
MARKER_126_UNKNOWN = 0x126,
MARKER_127_BAT = 0x127,
MARKER_128_COLLYWOBBLE_A,
MARKER_129_BAWL_A,
MARKER_12A_TOPPER_A,
MARKER_128_COLLYWOBBLE_THE_CAULIFLOWER_A,
MARKER_129_BAWL_THE_ONION_A,
MARKER_12A_TOPPER_THE_CARROT_A,
MARKER_12B_ATTACK_TUTORIAL,
MARKER_134_UNKNOWN = 0x134,
@@ -5166,14 +5174,13 @@ enum marker_e{
MARKER_1E5_GOLD_FEATHER_COLLECTIBLE = 0x1E5,
MARKER_1E6_TOPPER_B,
MARKER_1E7_BAWL_B,
MARKER_1E8_COLLYWOBBLE_B,
MARKER_1E6_TOPPER_THE_CARROT_B,
MARKER_1E7_BAWL_THE_ONION_B,
MARKER_1E8_COLLYWOBBLE_THE_CAULIFLOWER_B,
MARKER_1E9_MUMBO_COST_SIGN,
MARKER_1EA_GRUNTLING_RED,
MARKER_1ED_JUMP_TUTORIAL = 0x1ED,
MARKER_1F1_GRUNTLING_BLACK = 0x1F1,
MARKER_1F4_TOOTS = 0x1F4,
@@ -5378,5 +5385,4 @@ enum vegetable_e {
VEGETABLE_3_COLLY_WOBBLE
};
#endif

View File

@@ -14,8 +14,6 @@
#include "core2/core2.h"
#include "math.h" // ToDo: sort out actual dependencies
#include "ml.h"
#include "ml/mtx.h"
#include "bs_funcs.h"
#include "bsint.h"
@@ -45,20 +43,8 @@ void * malloc(s32 size);
void free(void*);
void *realloc(void* ptr, s32 size);
f32 ml_map_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max);
float mlNormalizeAngle(float);
f32 ml_max_f(f32, f32);
f32 ml_min_f(f32, f32);
void ml_vec3f_copy(f32 dst[3], f32 src[3]);
void ml_vec3f_add(f32 dst[3], f32 src1[3], f32 src2[3]);
void ml_vec3f_scale(f32 vec[3], f32 scale);
void ml_vec3f_scale_copy(f32 dst[3], f32 src[3], f32 scale);
float gu_sqrtf(float val);
BKSpriteFrame *spriteGetFramePtr(BKSprite *, u32);
bool baanim_isAt(f32);
void baanim_playForDuration_once(enum asset_e anim_id, f32 duration);
void baanim_setEnd(f32);
@@ -198,7 +184,7 @@ ParticleEmitter *partEmitMgr_newEmitter(u32);
void func_802BB3DC(s32, f32, f32);
void __spawnQueue_add_4(GenFunction_4, s32, s32, s32, s32);
Actor *spawnQueue_actor_f32(enum actor_e actor_id, s32 x, s32 y, s32 z);
void func_8030DA44(u8);
void sfxsource_freeSfxsourceByIndex(u8);
void particleEmitter_emitInVolume(ParticleEmitter *, f32[3], f32[3], s32);
@@ -226,22 +212,7 @@ void particleEmitter_setSpawnInterval(ParticleEmitter *, f32);
OSContPad *func_8024F3F4(void);
OSMesgQueue *pfsManager_getFrameReplyQ(void);
void ml_vec3f_clear(f32 dst[3]);
void ml_vec3f_roll_rotate_copy(f32[3], f32[3], f32);
void rumbleManager_80250D94(f32, f32, f32);
void func_80256E24(f32[3], f32, f32, f32, f32, f32);
void func_8025727C(f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2, f32 *o1, f32 *o2);
f32 func_80257A44(f32, f32);
f32 ml_interpolate_f(f32, f32, f32);
f32 ml_mapAbsRange_f(f32, f32, f32, f32, f32);
int func_80257F18(f32 src[3], f32 target[3], f32 *yaw);
bool func_8025801C(f32[3], f32*);
f32 mlAbsF(f32);
f32 ml_clamp_f(f32, f32, f32);
f32 ml_remainder_f(f32, f32);
void func_802589E4(f32 dst[3], f32 yaw, f32 length);
f32 mlDiffDegF(f32, f32);
void func_8025A6EC(enum comusic_e, s32);
void comusic_playTrack(enum comusic_e);
@@ -450,23 +421,20 @@ void func_80352CF4(f32 *, f32 *, f32, f32);
AnimCtrl *baanim_getAnimCtrlPtr(void);
void player_setYPosition(f32);
NodeProp *nodeprop_findByActorIdAndActorPosition(enum actor_e arg0, Actor *arg1);
NodeProp *func_80304CAC(s32 arg0, f32 position[3]);
NodeProp *nodeprop_findByActorIdAndActorPosition(enum actor_e actor_id, Actor *actor_ptr);
NodeProp *nodeprop_findByActorIdAndPosition_f32(enum actor_e actor_id, f32 position[3]);
Actor *actorArray_findClosestActorFromActorId(f32 position[3], enum actor_e actor_id, s32 arg2, f32 *min_distance_ptr);
Actor *subaddie_getLinkedActor(Actor *);
/* used in RBB */
void ml_vec3f_pitch_rotate_copy(f32 dst[3], f32 src[3], f32 pitch);
int ml_timer_update(f32 *arg0, f32 arg1);
Actor *actor_draw(ActorMarker *, Gfx**, Mtx**, Vtx **);
Actor *func_80325340(ActorMarker *, Gfx **, Mtx **, Vtx **);
void func_8032AA58(Actor *, f32);
void func_80324E38(f32, s32);
void timed_playSfx(f32, enum sfx_e, f32, s32);
f32 ml_distance_vec3f(f32 [3], f32 [3]);
void timed_setStaticCameraToNode(f32, s32);
void timed_exitStaticCamera(f32);
void timed_exitStaticCamera(f32 time);
int actor_animationIsAt(Actor*, f32);
void rumbleManager_80250E94(f32, f32, f32, f32, f32, f32);
@@ -479,10 +447,8 @@ void func_802FA060(s32, s32, s32, f32);
Actor *actorArray_findActorFromActorId(enum actor_e);
f32 func_8038A6B8(ActorMarker *);
void *defrag_asset(void *);
void ml_interpolate_vec3f(f32 [3], f32 [3], f32 [3], f32);
void sfxsource_set_fade_distances(u8, f32, f32);
void func_8030DB04(u8, s32, f32 position[3], f32, f32);
void func_80258A4C(f32 [3], f32, f32 [3], f32 *, f32 *, f32 *);
void func_802E4078(enum map_e map, s32 exit, s32 transition);
@@ -494,7 +460,6 @@ void mapSpecificFlags_set(s32, s32);
struct0 *func_8031B9D8(void);
extern int func_80259808(f32);
void actor_playAnimationOnce(Actor *);
void actor_loopAnimation(Actor *);
@@ -504,7 +469,6 @@ void actor_update_func_80326224(Actor *this);
void func_802F9FD0(s32, f32, f32, f32);
void func_80324D54(f32, enum sfx_e, f32, s32, f32 [3], f32, f32);
void glcrc_calc_checksum(void *start, void *end, u32 *checksum);
f32 climbGetBottomY(void);
f32 climbGetTopY(void);
void func_802596AC(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]);

View File

@@ -1,10 +0,0 @@
#ifndef __MATH_LIBRARY_H__
#define __MATH_LIBRARY_H__
void ml_vec3f_normalize_copy(f32 arg0[3], f32 arg1[3]);
void ml_vec3f_yaw_rotate_copy(f32 arg0[3], f32 arg1[3], f32 arg2);
void ml_vec3f_diff_copy(f32 dst[3], f32 src1[3], f32 src2[3]);
void ml_vec3f_set_length_copy(f32 dst[3], f32 src[3], f32 len);
void ml_vec3f_set_length(f32 arg0[3], f32 arg2);
#endif

View File

@@ -1,35 +0,0 @@
#ifndef __ML_MTX__
#define __ML_MTX__
typedef struct {
f32 m[4][4];
} MtxF;
void mlMtxGet(MtxF *dst);
MtxF *mlMtx_get_stack_pointer(void);
void mlMtxApply(Mtx *mPtr);
void mlMtxPop(void);
void mlMtx_push_duplicate(void);
void mlMtx_push_identity(void);
void mlMtx_push_translation(f32 x, f32 y, f32 z);
void mlMtx_push_mtx(f32* mtx);
void mlMtx_push_multiplied(f32* l_mtx);
void mlMtx_push_multiplied_2(MtxF * l_mtx, MtxF * r_mtx);
void mlMtxIdent(void);
void mlMtxSet(MtxF* arg0);
void mlMtxRotPitch(f32 arg0);
void mlMtxRotYaw(f32 arg0);
void mlMtxRotRoll(f32 arg0);
void mlMtx_rotate_pitch_deg(f32 arg0);
void mlMtx_rotate_yaw_deg(f32 arg0);
void mlMtxRotatePYR(f32 pitch, f32 yaw, f32 roll);
void mlMtxScale_xyz(f32 x, f32 y, f32 z);
void mlMtxScale(f32 scale);
void mlMtx_apply_f3(f32 dst[3], f32 x, f32 y, f32 z);
void mlMtx_apply_vec3s(s16 dst[3], s16 src[3]);
void mlMtxTranslate(f32 x, f32 y, f32 z);
MtxF *func_8024DD90(void);
MtxF *func_8024DD9C(void);
#endif

View File

@@ -155,7 +155,7 @@ typedef struct actor_s{
u32 state:6; /* unk10_31*/
u32 unk10_25:7;
u32 unk10_18:6;
u32 unk10_12:4;
u32 unk10_12:4; // number of defeated enemies in SM attack tutorial
u32 unk10_8:1;
u32 unk10_7:1;
u32 unk10_6:2;
@@ -186,7 +186,7 @@ typedef struct actor_s{
f32 unk4C;
/* 0x50 */ f32 yaw; //0x50
f32 unk54; //0x54
u32 unk58_31: 15;
u32 animctrl_asset_id: 15; // animation asset id (enum asset_id)
u32 stored_animctrl_index: 14; //animctrlAnimIndex;
u32 unk58_2: 1;
u32 unk58_1: 1;

View File

@@ -47,6 +47,10 @@ typedef struct freelist_s{
#define FREE_LIST(T) struct freelist_s
//^defined to keep element type with sla
typedef struct {
f32 m[4][4];
} MtxF;
typedef struct bk_sprite_s{
s16 frameCnt;
s16 type;

View File

@@ -14,9 +14,6 @@ struct Overlay {
extern struct Overlay gOverlayTable[];
extern s32 framebuffer_width;
extern s32 framebuffer_height;
extern f32 climbPoleBottom[3];
extern f32 climbPoleTop[3];
#endif