You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Expand audio heap
This commit is contained in:
@@ -43,6 +43,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
|||||||
- Included `actors/group0.c` in `behavior_data.c`
|
- Included `actors/group0.c` in `behavior_data.c`
|
||||||
- The internal ROM name is now set with a define in `config.h` to make it simpler
|
- The internal ROM name is now set with a define in `config.h` to make it simpler
|
||||||
- There is a `gIsConsole` variable that is 1 when running on console and 0 when running on emulator. This way you can wrap your code in a console check.
|
- There is a `gIsConsole` variable that is 1 when running on console and 0 when running on emulator. This way you can wrap your code in a console check.
|
||||||
|
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725)
|
||||||
|
|
||||||
**Other Bugfixes:**
|
**Other Bugfixes:**
|
||||||
- Castle music fix (Fixes the castle music sometimes triggering after getting a dialog) *
|
- Castle music fix (Fixes the castle music sometimes triggering after getting a dialog) *
|
||||||
|
|||||||
@@ -91,6 +91,8 @@
|
|||||||
#define NO_FALSE_LEDGEGRABS
|
#define NO_FALSE_LEDGEGRABS
|
||||||
// Number of possible unique model ID's (keep it higher than 256)
|
// Number of possible unique model ID's (keep it higher than 256)
|
||||||
#define MODEL_ID_COUNT 256
|
#define MODEL_ID_COUNT 256
|
||||||
|
// Increase audio heap size to allow for more concurrent notes to be played and for more custom sequences/banks to be imported (does nothing with EU and SH versions)
|
||||||
|
#define EXPAND_AUDIO_HEAP
|
||||||
|
|
||||||
// BUG/GAME QOL FIXES
|
// BUG/GAME QOL FIXES
|
||||||
// Fix instant warp offset not working when warping across different areas
|
// Fix instant warp offset not working when warping across different areas
|
||||||
|
|||||||
@@ -49,6 +49,39 @@ struct AudioSessionSettingsEU gAudioSessionPresets[] = {
|
|||||||
// - memory used for temporary sequences
|
// - memory used for temporary sequences
|
||||||
// - memory used for temporary banks
|
// - memory used for temporary banks
|
||||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||||
|
#ifdef EXPAND_AUDIO_HEAP
|
||||||
|
struct AudioSessionSettings gAudioSessionPresets[18] = {
|
||||||
|
#ifdef VERSION_JP
|
||||||
|
{ 32000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x7C00, 0xC400, 0x7E00, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7E00, 0xC400, 0x8800, 0x5500 },
|
||||||
|
{ 32000, 40, 1, 0x0800, 0x37FF, 0x7FFF, 0x6600, 0xAA00, 0x8000, 0x3600 },
|
||||||
|
#else
|
||||||
|
{ 32000, 32, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x8000, 0xDC00, 0x7E00, 0x5400 },
|
||||||
|
{ 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x8200, 0xDC00, 0x8800, 0x5500 },
|
||||||
|
{ 32000, 40, 1, 0x0800, 0x37FF, 0x7FFF, 0x6980, 0xC500, 0x8000, 0x3600 },
|
||||||
|
#endif
|
||||||
|
{ 27000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 27000, 32, 1, 0x0800, 0x3FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 27000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 27000, 32, 1, 0x1000, 0x3FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 27000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 32000, 28, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 32000, 24, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 32000, 20, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
};
|
||||||
|
#else
|
||||||
struct AudioSessionSettings gAudioSessionPresets[18] = {
|
struct AudioSessionSettings gAudioSessionPresets[18] = {
|
||||||
#ifdef VERSION_JP
|
#ifdef VERSION_JP
|
||||||
{ 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 },
|
{ 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 },
|
||||||
@@ -81,6 +114,7 @@ struct AudioSessionSettings gAudioSessionPresets[18] = {
|
|||||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
// gAudioCosineTable[k] = round((2**15 - 1) * cos(pi/2 * k / 127)). Unused.
|
// gAudioCosineTable[k] = round((2**15 - 1) * cos(pi/2 * k / 127)). Unused.
|
||||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||||
u16 gAudioCosineTable[128] = {
|
u16 gAudioCosineTable[128] = {
|
||||||
|
|||||||
@@ -109,6 +109,20 @@ extern u16 gUnused80226E98[0x10];
|
|||||||
|
|
||||||
extern u32 gAudioRandom;
|
extern u32 gAudioRandom;
|
||||||
|
|
||||||
|
#ifdef EXPAND_AUDIO_HEAP
|
||||||
|
#if defined(VERSION_US) || defined(VERSION_JP)
|
||||||
|
#define EXT_AUDIO_HEAP_SIZE 0x24400
|
||||||
|
#define EXT_AUDIO_INIT_POOL_SIZE 0x8000
|
||||||
|
#else
|
||||||
|
// EU and SH versions not yet supported for extended audio heap
|
||||||
|
#define EXT_AUDIO_HEAP_SIZE 0x0
|
||||||
|
#define EXT_AUDIO_INIT_POOL_SIZE 0x0
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define EXT_AUDIO_HEAP_SIZE 0x0
|
||||||
|
#define EXT_AUDIO_INIT_POOL_SIZE 0x0
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef VERSION_SH
|
#ifdef VERSION_SH
|
||||||
extern f32 unk_sh_data_1[];
|
extern f32 unk_sh_data_1[];
|
||||||
|
|
||||||
@@ -136,12 +150,12 @@ extern OSMesgQueue *D_SH_80350FA8;
|
|||||||
|
|
||||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||||
#define UNUSED_COUNT_80333EE8 24
|
#define UNUSED_COUNT_80333EE8 24
|
||||||
#define AUDIO_HEAP_SIZE 0x2c500
|
#define AUDIO_HEAP_SIZE (0x2c500 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE)
|
||||||
#define AUDIO_INIT_POOL_SIZE 0x2c00
|
#define AUDIO_INIT_POOL_SIZE (0x2c00 + EXT_AUDIO_INIT_POOL_SIZE)
|
||||||
#else
|
#else
|
||||||
#define UNUSED_COUNT_80333EE8 16
|
#define UNUSED_COUNT_80333EE8 16
|
||||||
#define AUDIO_HEAP_SIZE 0x31150
|
#define AUDIO_HEAP_SIZE (0x31150 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE)
|
||||||
#define AUDIO_INIT_POOL_SIZE 0x2500
|
#define AUDIO_INIT_POOL_SIZE (0x2500 + EXT_AUDIO_INIT_POOL_SIZE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VERSION_SH
|
#ifdef VERSION_SH
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#include <hvqm2dec.h>
|
#include <hvqm2dec.h>
|
||||||
|
|
||||||
#include "buffers.h"
|
#include "buffers.h"
|
||||||
|
#include "audio/data.h"
|
||||||
#ifdef HVQM
|
#ifdef HVQM
|
||||||
#include <hvqm/hvqm.h>
|
#include <hvqm/hvqm.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -9,11 +10,11 @@
|
|||||||
|
|
||||||
ALIGNED8 u8 gDecompressionHeap[0xD000];
|
ALIGNED8 u8 gDecompressionHeap[0xD000];
|
||||||
#if defined(VERSION_EU)
|
#if defined(VERSION_EU)
|
||||||
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200) - 0x3800];
|
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE) - 0x3800];
|
||||||
#elif defined(VERSION_SH)
|
#elif defined(VERSION_SH)
|
||||||
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200) - 0x4800];
|
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE) - 0x4800];
|
||||||
#else
|
#else
|
||||||
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200)];
|
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE)];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ALIGNED8 u8 gIdleThreadStack[0x800];
|
ALIGNED8 u8 gIdleThreadStack[0x800];
|
||||||
|
|||||||
Reference in New Issue
Block a user