1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-16 12:54:40 +00:00

Nature Ambience Documentation (#1063)

* Document nature ambience io data

* Document nature ambience functions

* Function headers

* Doc storing main bgm for nature/miniboss bgm

* Give temporary names to functions

* small cleanup

* add docs to clarify

* Break up nature ambience channel io data for easier reading

* Add info to where each nature ambience Id is used

* Name environmental sequence functions

* Use channel macros globally

* Add nature enum, revert env name

* Revert tough-to-name functions, use nature channel enum instead

* Fill in remaining enums from sequence 1

* PR Suggestions

* Improve macros

* remove clang-format off

* MINI_GAME_2 -> TIMED_MINI_GAME

* Revert to generic name

* Fix Spacing
This commit is contained in:
engineer124 2021-12-28 04:35:05 +11:00 committed by GitHub
parent a862411f00
commit b8b983dd7f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 850 additions and 166 deletions

View file

@ -889,7 +889,7 @@ void Environment_DrawSkyboxFilters(GlobalContext* globalCtx);
void Environment_UpdateLightningStrike(GlobalContext* globalCtx);
void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num);
void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused);
void func_800758AC(GlobalContext* globalCtx);
void Environment_PlaySceneSequence(GlobalContext* globalCtx);
void Environment_DrawCustomLensFlare(GlobalContext* globalCtx);
void Environment_InitGameOverLights(GlobalContext* globalCtx);
void Environment_FadeInGameOverLights(GlobalContext* globalCtx);
@ -900,10 +900,10 @@ void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32
s32 Environment_GetBgsDayCount(void);
void Environment_ClearBgsDayCount(void);
s32 Environment_GetTotalDays(void);
void Environment_ForcePlaySequence(u16);
void Environment_ForcePlaySequence(u16 seqId);
s32 Environment_IsForcedSequenceDisabled(void);
void func_80077624(GlobalContext* globalCtx);
void func_80077684(GlobalContext* globalCtx);
void Environment_PlayStormNatureAmbience(GlobalContext* globalCtx);
void Environment_StopStormNatureAmbience(GlobalContext* globalCtx);
void Environment_WarpSongLeave(GlobalContext* globalCtx);
void Lib_MemSet(u8* dest, size_t size, u8 val);
f32 Math_CosS(s16 angle);
@ -2055,9 +2055,9 @@ void func_800F5918(void);
void func_800F595C(u16);
void func_800F59E8(u16);
s32 func_800F5A58(u8);
void func_800F5ACC(u16 bgmID);
void func_800F5ACC(u16 seqId);
void func_800F5B58(void);
void func_800F5BF0(u8 arg0);
void func_800F5BF0(u8 natureAmbienceId);
void Audio_PlayFanfare(u16);
void func_800F5C2C(void);
void func_800F5E18(u8 playerIdx, u16 seqId, u8 fadeTimer, s8 arg3, s8 arg4);
@ -2079,9 +2079,8 @@ void func_800F6AB0(u16);
// ? func_800F6BB8(?);
void Audio_PreNMI();
// ? func_800F6C34(?);
void func_800F6D58(u8, u8, u8);
// ? func_800F6E7C(?);
void func_800F6FB4(u8);
void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 port, u8 val);
void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId);
void Audio_Init();
void Audio_InitSound();
void func_800F7170(void);

View file

@ -111,7 +111,7 @@
#define NA_BGM_STAFF_3 0x69 // End Credits III
#define NA_BGM_STAFF_4 0x6A // End Credits IV
#define NA_BGM_FIRE_BOSS 0x6B // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01"
#define NA_BGM_MINI_GAME_2 0x6C // Mini-Game
#define NA_BGM_TIMED_MINI_GAME 0x6C // Mini-Game
#define NA_BGM_VARIOUS_SFX 0x6D // A small collection of various sound effects
#define NA_BGM_NO_MUSIC 0x7F // No bgm music is played
#define NA_BGM_NATURE_SFX_RAIN 0x80 // Related to rain
@ -131,4 +131,130 @@ typedef enum {
/* 3 */ SEQ_MODE_IGNORE
} SequenceMode;
typedef enum {
/* 0x0 */ CHANNEL_IO_PORT_0,
/* 0x1 */ CHANNEL_IO_PORT_1,
/* 0x2 */ CHANNEL_IO_PORT_2,
/* 0x3 */ CHANNEL_IO_PORT_3,
/* 0x4 */ CHANNEL_IO_PORT_4,
/* 0x5 */ CHANNEL_IO_PORT_5,
/* 0x6 */ CHANNEL_IO_PORT_6,
/* 0x7 */ CHANNEL_IO_PORT_7
} ChannelIOPort;
typedef enum {
/* 0x0 */ NATURE_CHANNEL_STREAM_0,
/* 0x1 */ NATURE_CHANNEL_CRITTER_0,
/* 0x2 */ NATURE_CHANNEL_CRITTER_1,
/* 0x3 */ NATURE_CHANNEL_CRITTER_2,
/* 0x4 */ NATURE_CHANNEL_CRITTER_3,
/* 0x5 */ NATURE_CHANNEL_CRITTER_4,
/* 0x6 */ NATURE_CHANNEL_CRITTER_5,
/* 0x7 */ NATURE_CHANNEL_CRITTER_6,
/* 0x8 */ NATURE_CHANNEL_CRITTER_7,
/* 0xC */ NATURE_CHANNEL_STREAM_1 = 12,
/* 0xD */ NATURE_CHANNEL_UNK,
/* 0xE */ NATURE_CHANNEL_RAIN,
/* 0xF */ NATURE_CHANNEL_LIGHTNING
} NatureChannelIdx; // playerIdx = 0 (Overlaps with main bgm)
typedef enum {
/* 0x00 */ NATURE_ID_GENERAL_NIGHT,
/* 0x01 */ NATURE_ID_MARKET_ENTRANCE,
/* 0x02 */ NATURE_ID_KAKARIKO_REGION,
/* 0x03 */ NATURE_ID_MARKET_RUINS,
/* 0x04 */ NATURE_ID_KOKIRI_REGION,
/* 0x05 */ NATURE_ID_MARKET_NIGHT,
/* 0x06 */ NATURE_ID_06,
/* 0x07 */ NATURE_ID_GANONS_LAIR,
/* 0x08 */ NATURE_ID_08,
/* 0x09 */ NATURE_ID_09,
/* 0x0A */ NATURE_ID_WASTELAND,
/* 0x0B */ NATURE_ID_COLOSSUS,
/* 0x0C */ NATURE_ID_DEATH_MOUNTAIN_TRAIL,
/* 0x0D */ NATURE_ID_0D,
/* 0x0E */ NATURE_ID_0E,
/* 0x0F */ NATURE_ID_0F,
/* 0x10 */ NATURE_ID_10,
/* 0x11 */ NATURE_ID_11,
/* 0x12 */ NATURE_ID_12,
/* 0x13 */ NATURE_ID_NONE,
/* 0xFF */ NATURE_ID_DISABLED = 0xFF
} NatureAmbienceId;
typedef enum {
/* 0x00 */ NATURE_STREAM_RUSHING_WATER,
/* 0x01 */ NATURE_STREAM_HOWLING_WIND,
/* 0x02 */ NATURE_STREAM_SCREECHING_WIND,
/* 0x03 */ NATURE_STREAM_SCREECHING_WIND_ALT1
} NatureStreamId;
typedef enum {
/* 0x00 */ NATURE_CRITTER_BIRD_CHIRP_1,
/* 0x01 */ NATURE_CRITTER_TAP,
/* 0x02 */ NATURE_CRITTER_BIRD_CHIRP_2,
/* 0x03 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT1,
/* 0x04 */ NATURE_CRITTER_CRICKETS,
/* 0x05 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT2,
/* 0x06 */ NATURE_CRITTER_LOUD_CHIRPING,
/* 0x07 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT3,
/* 0x08 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT4,
/* 0x09 */ NATURE_CRITTER_CROWS_CAWS,
/* 0x0A */ NATURE_CRITTER_SMALL_BIRD_CHIRPS,
/* 0x0B */ NATURE_CRITTER_BIRD_SCREECH,
/* 0x0C */ NATURE_CRITTER_BIRD_SONG,
/* 0x0D */ NATURE_CRITTER_OWL_HOOT,
/* 0x0E */ NATURE_CRITTER_HAWK_SCREECH,
/* 0x0F */ NATURE_CRITTER_BIRD_CALL,
/* 0x10 */ NATURE_CRITTER_CAWING_BIRD,
/* 0x11 */ NATURE_CRITTER_CUCCO_CROWS,
/* 0x12 */ NATURE_CRITTER_BIRD_CHIRP_2_ALT1,
/* 0x13 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT5
} NatureAmimalId;
#define NATURE_IO_CRITTER_0_TYPE(type) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_0_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_0_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_0_PORT5(reverb) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_1_TYPE(type) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_1_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_1_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_1_PORT5(reverb) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_2_TYPE(type) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_2_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_2_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_2_PORT5(reverb) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_3_TYPE(type) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_3_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_3_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_3_PORT5(reverb) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_4_TYPE(type) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_4_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_4_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_4_PORT5(reverb) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_5_TYPE(type) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_5_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_5_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_5_PORT5(reverb) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_CRITTER_6_TYPE(type) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_2, type
#define NATURE_IO_CRITTER_6_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_3, bend
#define NATURE_IO_CRITTER_6_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_4, num
#define NATURE_IO_CRITTER_6_PORT5(reverb) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_5, reverb
#define NATURE_IO_STREAM_0_TYPE(type) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_2, type
#define NATURE_IO_STREAM_0_PORT3(data) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_3, data
#define NATURE_IO_STREAM_0_PORT4(data) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_4, data
#define NATURE_IO_STREAM_1_TYPE(type) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_2, type
#define NATURE_IO_STREAM_1_PORT3(data) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_3, data
#define NATURE_IO_STREAM_1_PORT4(data) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_4, data
#define NATURE_IO_ENTRIES_END 0xFF
#endif