mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-02-09 03:37:49 +03:00
Added support for EU audio
Some checks are pending
Some checks are pending
This commit is contained in:
parent
d4bda98c07
commit
d824ec401b
4
.gitignore
vendored
4
.gitignore
vendored
@ -53,4 +53,6 @@ Starship.log
|
||||
dumps/
|
||||
_packages/*
|
||||
*.DS_Store
|
||||
srcjp/
|
||||
src/jp/
|
||||
src/eu/
|
||||
src/cn/
|
12
config.yml
12
config.yml
@ -65,7 +65,7 @@ d8b1088520f7c5f81433292a9258c1184afa1457:
|
||||
name: Star Fox 64 (JP) (V1.0) (Compressed)
|
||||
preprocess:
|
||||
decompress_mio0:
|
||||
method: mioh0-comptool
|
||||
method: mio0-comptool
|
||||
type: decompress
|
||||
target: d064229a32cc05ab85e2381ce07744eb3ffaf530
|
||||
restart: true
|
||||
@ -79,9 +79,9 @@ d064229a32cc05ab85e2381ce07744eb3ffaf530:
|
||||
logging: INFO
|
||||
output:
|
||||
binary: ./mods/sf64jp.o2r
|
||||
code: srcjp/assets
|
||||
code: src/jp/assets
|
||||
headers: include/assets
|
||||
modding: srcjp/assets
|
||||
modding: src/jp/assets
|
||||
# enums:
|
||||
# - include/sf64object.h
|
||||
# - include/sf64level.h
|
||||
@ -95,7 +95,7 @@ d064229a32cc05ab85e2381ce07744eb3ffaf530:
|
||||
name: Star Fox 64 (EU) (V1.0) (Compressed)
|
||||
preprocess:
|
||||
decompress_mio0:
|
||||
method: mioh0-comptool
|
||||
method: mio0-comptool
|
||||
type: decompress
|
||||
target: 09f5d5c14219fc77a36c5a6ad5e63f7abd8b3385
|
||||
restart: true
|
||||
@ -109,9 +109,9 @@ d064229a32cc05ab85e2381ce07744eb3ffaf530:
|
||||
logging: INFO
|
||||
output:
|
||||
binary: ./mods/sf64eu.o2r
|
||||
code: srceu/assets
|
||||
code: src/eu/assets
|
||||
headers: include/assets
|
||||
modding: srceu/assets
|
||||
modding: src/eu/assets
|
||||
# enums:
|
||||
# - include/sf64object.h
|
||||
# - include/sf64level.h
|
||||
|
@ -6,8 +6,6 @@
|
||||
#ifndef SF64_AUDIO_H
|
||||
#define SF64_AUDIO_H
|
||||
|
||||
#define AUDIO_EU 0
|
||||
|
||||
#include <libultra/types.h>
|
||||
#include "sf64audio_external.h"
|
||||
|
||||
@ -1236,7 +1234,6 @@ extern s16 gD_800DD200[];
|
||||
extern f32 gHeadsetPanVolume[128];
|
||||
extern f32 gStereoPanVolume[128];
|
||||
extern f32 gDefaultPanVolume[128];
|
||||
extern u8 gVoiceLanguage;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ void Audio_SetEnvSfxReverb(s8 reverb);
|
||||
void Audio_PlayPauseSfx(u8 active);
|
||||
void Audio_PlayMapMenuSfx(u8 active);
|
||||
void Audio_KillAllSfx(void);
|
||||
void Audio_SetVoiceLanguage(u8 language);
|
||||
|
||||
#define AUDIO_PLAY_SFX(sfxId, srcPos, token) (Audio_PlaySfx((sfxId),(srcPos),(token),&gDefaultMod,&gDefaultMod,&gDefaultReverb))
|
||||
|
||||
|
@ -101,7 +101,6 @@ s16 gAiBuffLengths[3];
|
||||
u32 gAudioRandom;
|
||||
u32 D_80155D88;
|
||||
volatile u32 gAudioResetTimer;
|
||||
u8 gVoiceLanguage = 0;
|
||||
u64 gAudioContextEnd[2];
|
||||
|
||||
ReverbSettings D_800C74D0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x4000, 0xD000, 0x3000 } };
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "sf64context.h"
|
||||
#include "audiothread_cmd.h"
|
||||
#include "audioseq_cmd.h"
|
||||
#include "port/Engine.h"
|
||||
|
||||
void Audio_SetModulationAndPlaySfx(f32* sfxSource, u32 sfxId, f32 freqMod);
|
||||
s32 Audio_GetCurrentVoice(void);
|
||||
@ -530,9 +531,9 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIndex, u8 channelId) {
|
||||
}
|
||||
break;
|
||||
case SFX_BANK_SYSTEM:
|
||||
if (AUDIO_EU) {
|
||||
if (GameEngine_HasVersion(SF64_VER_EU)) {
|
||||
if (entry->state == 2) {
|
||||
AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, channelId, 1, gVoiceLanguage);
|
||||
AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, channelId, 1, CVarGetInteger("gVoiceLanguage", 0));
|
||||
}
|
||||
}
|
||||
if (sSfxChannelLayout == SFXCHAN_3) {
|
||||
@ -2398,7 +2399,7 @@ void Audio_StopPlayerNoise(u8 playerId) {
|
||||
break;
|
||||
case FORM_LANDMASTER:
|
||||
sfxId = NA_SE_TANK_ENGIN;
|
||||
if (AUDIO_EU) {
|
||||
if (GameEngine_HasVersion(SF64_VER_EU)) {
|
||||
Audio_KillSfxBySourceAndId(gPlayer[playerId].sfx.srcPos, NA_SE_TANK_GO_UP);
|
||||
}
|
||||
break;
|
||||
@ -2728,13 +2729,14 @@ void Audio_KillAllSfx(void) {
|
||||
}
|
||||
|
||||
void Audio_SetVoiceLanguage(u8 language) {
|
||||
gVoiceLanguage = language;
|
||||
|
||||
if (gVoiceLanguage == 0) {
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO, -1, 1);
|
||||
} else {
|
||||
// 0x42 sets voice language to Lylat ?
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO_LYLAT, -1, 1);
|
||||
switch (language) {
|
||||
case 0:
|
||||
default:
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO, -1, 1);
|
||||
break;
|
||||
case 1:
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO_LYLAT, -1, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2755,7 +2757,7 @@ void Audio_InitSounds(void) {
|
||||
Audio_ResetSfxChannelState();
|
||||
Audio_ResetActiveSequencesAndVolume();
|
||||
Audio_ResetSfx();
|
||||
if (AUDIO_EU) {
|
||||
if (GameEngine_HasVersion(SF64_VER_EU)) {
|
||||
AUDIOCMD_GLOBAL_SYNC_LOAD_SEQ_PARTS(NA_BGM_VO_LYLAT, 0);
|
||||
}
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO, -1, 1);
|
||||
@ -2767,8 +2769,8 @@ void Audio_RestartSeqPlayers(void) {
|
||||
s32 pad2;
|
||||
u16 fadeIn = 1;
|
||||
|
||||
if (AUDIO_EU) {
|
||||
if (gVoiceLanguage == 0) {
|
||||
if (GameEngine_HasVersion(SF64_VER_EU)) {
|
||||
if (CVarGetInteger("gVoiceLanguage", 0) == 0) {
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO, -1, 1);
|
||||
} else {
|
||||
Audio_StartSequence(SEQ_PLAYER_VOICE, NA_BGM_VO_LYLAT, -1, 1);
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include "assets/ast_audio.h"
|
||||
#include "port/Engine.h"
|
||||
#include "endianness.h"
|
||||
#include "port/Engine.h"
|
||||
#include "port/resource/loaders/AudioLoader.h"
|
||||
|
||||
s32 D_80146D80;
|
||||
|
@ -542,6 +542,15 @@ int GameEngine::ShowYesNoBox(const char* title, const char* box) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool GameEngine::HasVersion(SF64Version ver){
|
||||
auto versions = Ship::Context::GetInstance()->GetResourceManager()->GetArchiveManager()->GetGameVersions();
|
||||
return std::find(versions.begin(), versions.end(), ver) != versions.end();
|
||||
}
|
||||
|
||||
extern "C" bool GameEngine_HasVersion(SF64Version ver) {
|
||||
return GameEngine::HasVersion(ver);
|
||||
}
|
||||
|
||||
extern "C" uint32_t GameEngine_GetSampleRate() {
|
||||
auto player = Ship::Context::GetInstance()->GetAudio()->GetAudioPlayer();
|
||||
if (player == nullptr) {
|
||||
|
@ -10,6 +10,12 @@ struct GamePool {
|
||||
void* memory;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
SF64_VER_US = 0x94F1D5A7,
|
||||
SF64_VER_EU = 0x6EE9ADE7,
|
||||
SF64_VER_JP = 0x3728D3E1
|
||||
} SF64Version;
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <vector>
|
||||
#include <SDL2/SDL.h>
|
||||
@ -45,6 +51,7 @@ class GameEngine {
|
||||
|
||||
static int ShowYesNoBox(const char* title, const char* box);
|
||||
static void ShowMessage(const char* title, const char* message, SDL_MessageBoxFlags type = SDL_MESSAGEBOX_ERROR);
|
||||
static bool HasVersion(SF64Version ver);
|
||||
};
|
||||
|
||||
extern "C" void* GameEngine_Malloc(size_t size);
|
||||
@ -56,6 +63,7 @@ extern "C" void* GameEngine_Malloc(size_t size);
|
||||
#else
|
||||
#include <stdint.h>
|
||||
|
||||
bool GameEngine_HasVersion(SF64Version ver);
|
||||
void GameEngine_ProcessGfxCommands(Gfx* commands);
|
||||
float GameEngine_GetAspectRatio();
|
||||
uint8_t GameEngine_OTRSigCheck(char* imgData);
|
||||
|
@ -14,6 +14,8 @@ std::unordered_map<std::string, std::string> mGameList = {
|
||||
{ "f7475fb11e7e6830f82883412638e8390791ab87", "Star Fox 64 (U) (V1.1) (Uncompressed)" },
|
||||
{ "9bd71afbecf4d0a43146e4e7a893395e19bf3220", "Star Fox 64 (J) (V1.0)" },
|
||||
{ "d064229a32cc05ab85e2381ce07744eb3ffaf530", "Star Fox 64 (J) (V1.0) (Uncompressed)" },
|
||||
{ "05b307b8804f992af1a1e2fbafbd588501fdf799", "Star Fox 64 (E) (V1.0)" },
|
||||
{ "09f5d5c14219fc77a36c5a6ad5e63f7abd8b3385", "Star Fox 64 (E) (V1.0) (Uncompressed)" },
|
||||
};
|
||||
|
||||
bool GameExtractor::SelectGameFromUI() {
|
||||
|
@ -107,6 +107,10 @@ static const char* filters[3] = {
|
||||
"Linear", "None"
|
||||
};
|
||||
|
||||
static const char* voiceLangs[] = {
|
||||
"Original", /*"Japanese",*/ "Lylat"
|
||||
};
|
||||
|
||||
void DrawSettingsMenu(){
|
||||
if(UIWidgets::BeginMenu("Settings")){
|
||||
if (UIWidgets::BeginMenu("Audio")) {
|
||||
@ -166,6 +170,21 @@ void DrawSettingsMenu(){
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
|
||||
if(GameEngine::HasVersion(SF64_VER_EU)){
|
||||
UIWidgets::Spacer(0);
|
||||
if (UIWidgets::BeginMenu("Language")) {
|
||||
if (UIWidgets::CVarCombobox("Voices", "gVoiceLanguage", voiceLangs,
|
||||
{
|
||||
.tooltip = "Changes the language of the voice acting in the game",
|
||||
.defaultIndex = 0,
|
||||
})) {
|
||||
Audio_SetVoiceLanguage(CVarGetInteger("gVoiceLanguage", 0));
|
||||
};
|
||||
ImGui::Dummy(ImVec2(ImGui::CalcTextSize(voiceLangs[0]).x + 55, 0.0f));
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
}
|
||||
|
||||
UIWidgets::Spacer(0);
|
||||
|
||||
if (UIWidgets::BeginMenu("Controller")) {
|
||||
|
@ -1,337 +0,0 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
// AudioTable gSampleBankTableInit = {
|
||||
AudioTable D_800C0760 = {
|
||||
{ 4, 0, 0 },
|
||||
{
|
||||
{ 0x000000, 0x0DF120, MEDIUM_CART, CACHEPOLICY_4 },
|
||||
{ 0x0DF120, 0x0D1D80, MEDIUM_CART, CACHEPOLICY_4 },
|
||||
{ 0x1B0EA0, 0x48C480, MEDIUM_CART, CACHEPOLICY_4 },
|
||||
{ 0x63D320, 0x0C3900, MEDIUM_CART, CACHEPOLICY_4 },
|
||||
},
|
||||
};
|
||||
|
||||
// AudioTable gSeqTableInit = {
|
||||
AudioTable D_800C07B0 = {
|
||||
{ SEQ_ID_MAX, 0, 0 },
|
||||
{
|
||||
{ 0x00000, 0x3AF0, MEDIUM_CART, CACHEPOLICY_0 }, { 0x03AF0, 0x5990, MEDIUM_CART, CACHEPOLICY_0 },
|
||||
{ 0x09480, 0x2D80, MEDIUM_CART, CACHEPOLICY_3 }, { 0x0C200, 0x1410, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x0D610, 0x1600, MEDIUM_CART, CACHEPOLICY_3 }, { 0x0EC10, 0xF20, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x0FB30, 0x13A0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x10ED0, 0x1100, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x11FD0, 0x19E0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x139B0, 0x13E0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x14D90, 0x12F0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_SECTOR_Y, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x16080, 0xB70, MEDIUM_CART, CACHEPOLICY_3 }, { 0x16BF0, 0x2460, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x19050, 0xD40, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_FORTUNA, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_TITANIA, 0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x19D90, 0x7F0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x1A580, 0x1440, MEDIUM_CART, CACHEPOLICY_3 }, { 0x1B9C0, 0x1B20, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_BOSS_CO_1, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_CO_1, 0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x1D4E0, 0x1B30, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_CO_1, 0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x1F010, 0x10B0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_BOSS_BO, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_BOSS_BO, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x200C0, 0x1410, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x214D0, 0xF30, MEDIUM_CART, CACHEPOLICY_3 }, { 0x22400, 0x2B30, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x24F30, 0x7F0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x25720, 0x13B0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x26AD0, 0xC70, MEDIUM_CART, CACHEPOLICY_3 }, { 0x27740, 0x180, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x278C0, 0x5C0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_TITLE, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x27E80, 0x4E40, MEDIUM_CART, CACHEPOLICY_3 }, { 0x2CCC0, 0x14E0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x2E1A0, 0x400, MEDIUM_CART, CACHEPOLICY_3 }, { 0x2E5A0, 0x800, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x2EDA0, 0x1AB0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x30850, 0x1AA0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_BOSS_ME, 0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x322F0, 0x1370, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x33660, 0xB80, MEDIUM_CART, CACHEPOLICY_3 }, { 0x341E0, 0x5C0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ SEQ_ID_CO_INTRO, 0, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_CO_INTRO, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x347A0, 0x550, MEDIUM_CART, CACHEPOLICY_3 }, { 0x34CF0, 0x360, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x35050, 0x620, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_VS_MENU, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x35670, 0xA70, MEDIUM_CART, CACHEPOLICY_3 }, { SEQ_ID_STAR_WOLF, 0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x360E0, 0xAB0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x36B90, 0x13D0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x37F60, 0x250, MEDIUM_CART, CACHEPOLICY_3 }, { 0x381B0, 0x6F0, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
{ 0x388A0, 0xFB0, MEDIUM_CART, CACHEPOLICY_3 }, { 0x39850, 0x1780, MEDIUM_CART, CACHEPOLICY_3 },
|
||||
},
|
||||
};
|
||||
#define SOUNDFONT_ENTRY(offset, size, medium, cachePolicy, bank1, bank2, numInst, numDrums) \
|
||||
{ \
|
||||
offset, size, medium, cachePolicy, (((bank1) &0xFF) << 8) | ((bank2) &0xFF), \
|
||||
(((numInst) &0xFF) << 8) | ((numDrums) &0xFF) \
|
||||
}
|
||||
|
||||
AudioTable gSoundFontTableInit = {
|
||||
{ 33, 0, 0 },
|
||||
{
|
||||
SOUNDFONT_ENTRY(0x0, 0x2f00, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_SFX, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x2f00, 0x820, MEDIUM_CART, CACHEPOLICY_1, SAMPLES_MAP, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x3720, 0x6e0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x3e00, 0x15e0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x53e0, 0xc20, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x6000, 0xfe0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x6fe0, 0x1360, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x8340, 0x1120, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x9460, 0xea0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xa300, 0xce0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xafe0, 0x1ba0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xcb80, 0xac0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xd640, 0xac0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xe100, 0xee0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xefe0, 0xc00, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0xfbe0, 0x10a0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x10c80, 0xf80, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x11c00, 0x10c0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x12cc0, 0x1380, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x14040, 0x2b20, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x16b60, 0x9a0, MEDIUM_CART, CACHEPOLICY_0, SAMPLES_VOICE, SAMPLES_NONE, 127, 0),
|
||||
SOUNDFONT_ENTRY(0x17500, 0x1220, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 16, 64),
|
||||
SOUNDFONT_ENTRY(0x18720, 0x180, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 3, 0),
|
||||
SOUNDFONT_ENTRY(0x188a0, 0x11c0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 16, 64),
|
||||
SOUNDFONT_ENTRY(0x19a60, 0x940, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1a3a0, 0x9e0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1ad80, 0x920, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1b6a0, 0x9e0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1c080, 0x9e0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1ca60, 0xa10, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1d470, 0x9e0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1de50, 0xa00, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
SOUNDFONT_ENTRY(0x1e850, 0x8d0, MEDIUM_CART, CACHEPOLICY_3, SAMPLES_INST, SAMPLES_NONE, 10, 64),
|
||||
}
|
||||
};
|
||||
|
||||
#define AS_BYTES(x) (((x) >> 8) & 0xFF), ((x) &0xFF)
|
||||
|
||||
u8 gSeqFontTableInit[288] = {
|
||||
AS_BYTES(132),
|
||||
AS_BYTES(134),
|
||||
AS_BYTES(155),
|
||||
AS_BYTES(157),
|
||||
AS_BYTES(159),
|
||||
AS_BYTES(161),
|
||||
AS_BYTES(163),
|
||||
AS_BYTES(165),
|
||||
AS_BYTES(167),
|
||||
AS_BYTES(169),
|
||||
AS_BYTES(171),
|
||||
AS_BYTES(173),
|
||||
AS_BYTES(175),
|
||||
AS_BYTES(177),
|
||||
AS_BYTES(179),
|
||||
AS_BYTES(181),
|
||||
AS_BYTES(183),
|
||||
AS_BYTES(185),
|
||||
AS_BYTES(187),
|
||||
AS_BYTES(189),
|
||||
AS_BYTES(191),
|
||||
AS_BYTES(193),
|
||||
AS_BYTES(195),
|
||||
AS_BYTES(197),
|
||||
AS_BYTES(199),
|
||||
AS_BYTES(201),
|
||||
AS_BYTES(203),
|
||||
AS_BYTES(205),
|
||||
AS_BYTES(207),
|
||||
AS_BYTES(209),
|
||||
AS_BYTES(211),
|
||||
AS_BYTES(213),
|
||||
AS_BYTES(215),
|
||||
AS_BYTES(217),
|
||||
AS_BYTES(219),
|
||||
AS_BYTES(221),
|
||||
AS_BYTES(223),
|
||||
AS_BYTES(225),
|
||||
AS_BYTES(227),
|
||||
AS_BYTES(229),
|
||||
AS_BYTES(231),
|
||||
AS_BYTES(233),
|
||||
AS_BYTES(235),
|
||||
AS_BYTES(237),
|
||||
AS_BYTES(239),
|
||||
AS_BYTES(241),
|
||||
AS_BYTES(243),
|
||||
AS_BYTES(245),
|
||||
AS_BYTES(247),
|
||||
AS_BYTES(249),
|
||||
AS_BYTES(251),
|
||||
AS_BYTES(253),
|
||||
AS_BYTES(255),
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
3,
|
||||
1,
|
||||
5,
|
||||
1,
|
||||
7,
|
||||
1,
|
||||
9,
|
||||
1,
|
||||
11,
|
||||
1,
|
||||
13,
|
||||
1,
|
||||
15,
|
||||
1,
|
||||
17,
|
||||
1,
|
||||
19,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
23,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
0,
|
||||
20,
|
||||
20,
|
||||
19,
|
||||
18,
|
||||
17,
|
||||
16,
|
||||
15,
|
||||
14,
|
||||
13,
|
||||
12,
|
||||
11,
|
||||
10,
|
||||
9,
|
||||
8,
|
||||
7,
|
||||
6,
|
||||
5,
|
||||
4,
|
||||
3,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
24,
|
||||
1,
|
||||
29,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
26,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
29,
|
||||
1,
|
||||
24,
|
||||
1,
|
||||
29,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
30,
|
||||
1,
|
||||
24,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
28,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
32,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
22,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
23,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
29,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
31,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
27,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
25,
|
||||
1,
|
||||
21,
|
||||
1,
|
||||
31,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
Loading…
Reference in New Issue
Block a user