mirror of https://github.com/AxioDL/amuse.git
Add lookup table for Rogue Squadron SNG Setup mappings
This commit is contained in:
parent
5bae40d3c3
commit
b421412cac
|
@ -610,6 +610,120 @@ static void SwapN64Rom32(void* data, size_t size)
|
||||||
words[i] = SBig(words[i]);
|
words[i] = SBig(words[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct RS1SongMapping
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
int songId;
|
||||||
|
} RS1Mappings[] =
|
||||||
|
{
|
||||||
|
{"logo1_SNG", 0},
|
||||||
|
{"roguetitle_SNG", 1},
|
||||||
|
{"roguetheme_SNG", 1},
|
||||||
|
{"title_SNG", 2},
|
||||||
|
{"hangar1_SNG", 3},
|
||||||
|
{"hangar2_SNG", 3},
|
||||||
|
{"hangar3_SNG", 3},
|
||||||
|
{"jingle01_SNG", 4},
|
||||||
|
{"jingle02_SNG", 4},
|
||||||
|
{"jingle03_SNG", 4},
|
||||||
|
{"jingle04_SNG", 4},
|
||||||
|
{"jingle05_SNG", 4},
|
||||||
|
{"jingle06_SNG", 4},
|
||||||
|
{"jingle07_SNG", 4},
|
||||||
|
{"jingle08_SNG", 4},
|
||||||
|
{"c1l1_theme_SNG", 4},
|
||||||
|
{"c1l1_prob1_SNG", 4},
|
||||||
|
{"c1l1_prob2_SNG", 4},
|
||||||
|
{"c1l1_spc01_SNG", 4},
|
||||||
|
{"c1l1_spc02_SNG", 4},
|
||||||
|
{"c1l2_theme_SNG", 5},
|
||||||
|
{"c1l2_spc01_SNG", 5},
|
||||||
|
{"c1l3_spc01_SNG", 6},
|
||||||
|
{"c1l3_theme_SNG", 6},
|
||||||
|
{"c1l4_spc01_SNG", 7},
|
||||||
|
{"c1l4_theme_SNG", 7},
|
||||||
|
{"action1_SNG", 7},
|
||||||
|
{"action1b_SNG", 7},
|
||||||
|
{"action2_SNG", 7},
|
||||||
|
{"action4_SNG", 7},
|
||||||
|
{"action5_SNG", 7},
|
||||||
|
{"action6_SNG", 7},
|
||||||
|
{"action7_SNG", 7},
|
||||||
|
{"c1l5_act01_SNG", 8},
|
||||||
|
{"c1l5_act02_SNG", 8},
|
||||||
|
{"c1l5_theme_SNG", 8},
|
||||||
|
{"c1l5_spc01_SNG", 8},
|
||||||
|
{"c2l1_theme_SNG", 9},
|
||||||
|
{"c2l1_spc01_SNG", 9},
|
||||||
|
{"imperial_SNG", 10},
|
||||||
|
{"c2l2_theme_SNG", 10},
|
||||||
|
{"c2l2_spc01_SNG", 10},
|
||||||
|
{"c3l5_theme_SNG", 10},
|
||||||
|
{"c2l3_theme_SNG", 11},
|
||||||
|
{"c2l3_spc01_SNG", 11},
|
||||||
|
{"c2l5_theme_SNG", 12},
|
||||||
|
{"c2l5_spc01_SNG", 12},
|
||||||
|
{"c5l1_start_SNG", 12},
|
||||||
|
{"c4l1_theme_SNG", 12},
|
||||||
|
{"c5l1_1_SNG", 12},
|
||||||
|
{"c5l1_2_SNG", 12},
|
||||||
|
{"c5l1_3_SNG", 12},
|
||||||
|
{"c3l1_theme_SNG", 13},
|
||||||
|
{"c5l2_theme_SNG", 13},
|
||||||
|
{"c5l2_spc01_SNG", 13},
|
||||||
|
{"c5l3_theme_SNG", 13},
|
||||||
|
{"c3l2_theme_SNG", 14},
|
||||||
|
{"silent01_SNG", 14},
|
||||||
|
{"silent02_SNG", 14},
|
||||||
|
{"c3l5_spc01_SNG", 14},
|
||||||
|
{"c3l4_theme_SNG", 14},
|
||||||
|
{"c3l4_spc01_SNG", 14},
|
||||||
|
{"credits_SNG", 20},
|
||||||
|
{"c1l1_cut1_SNG", 30},
|
||||||
|
{"c1l2_cut1_SNG", 30},
|
||||||
|
{"c1l3_cut1_SNG", 30},
|
||||||
|
{"c1l4_cut1_SNG", 30},
|
||||||
|
{"c1l5_cut1_SNG", 30},
|
||||||
|
{"c2l1_cut1_SNG", 30},
|
||||||
|
{"c2l2_cut1_SNG", 30},
|
||||||
|
{"c2l3_cut1_SNG", 30},
|
||||||
|
{"c2l5_cut1_SNG", 30},
|
||||||
|
{"c2l6_cut1_SNG", 30},
|
||||||
|
{"c3l1_cut1_SNG", 30},
|
||||||
|
{"c3l2_cut1_SNG", 30},
|
||||||
|
{"c3l3_cut1_SNG", 30},
|
||||||
|
{"c3l4_cut1_SNG", 30},
|
||||||
|
{"c3l5_cut1_SNG", 30},
|
||||||
|
{"c4l1_cut1_SNG", 30},
|
||||||
|
{"c5l1_cut1_SNG", 30},
|
||||||
|
{"c5l2_cut1_SNG", 30},
|
||||||
|
{"c5l3_cut1_SNG", 30},
|
||||||
|
{"extr_cut1_SNG", 30},
|
||||||
|
{"cut_jing1_SNG", 30},
|
||||||
|
{"cut_jing2_SNG", 30},
|
||||||
|
{"cut_seq1_SNG", 30},
|
||||||
|
{"cut_seq2_SNG", 30},
|
||||||
|
{"cut_seq3_SNG", 30},
|
||||||
|
{"cut_seq4_SNG", 30},
|
||||||
|
{"cut_seq5_SNG", 30},
|
||||||
|
{"cut_seq6_SNG", 30},
|
||||||
|
{"cut_seq7_SNG", 30},
|
||||||
|
{"cut_seq8_SNG", 30},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
static int LookupRS1SongId(const char* name)
|
||||||
|
{
|
||||||
|
RS1SongMapping* map = RS1Mappings;
|
||||||
|
while (map->name)
|
||||||
|
{
|
||||||
|
if (!strcmp(name, map->name))
|
||||||
|
return map->songId;
|
||||||
|
++map;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static bool ValidateRS1PC(FILE* fp)
|
static bool ValidateRS1PC(FILE* fp)
|
||||||
{
|
{
|
||||||
size_t endPos = FileLength(fp);
|
size_t endPos = FileLength(fp);
|
||||||
|
@ -742,7 +856,8 @@ static std::vector<std::pair<SystemString, ContainerRegistry::SongData>> LoadRS1
|
||||||
fread(song.get(), 1, entry.decompSz, fp);
|
fread(song.get(), 1, entry.decompSz, fp);
|
||||||
|
|
||||||
SystemString name = StrToSys(entry.name);
|
SystemString name = StrToSys(entry.name);
|
||||||
ret.emplace_back(name, ContainerRegistry::SongData(std::move(song), entry.decompSz, -1, -1));
|
ret.emplace_back(name, ContainerRegistry::SongData(std::move(song), entry.decompSz, -1,
|
||||||
|
LookupRS1SongId(entry.name)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -963,7 +1078,8 @@ static std::vector<std::pair<SystemString, ContainerRegistry::SongData>> LoadRS1
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemString name = StrToSys(ent.name);
|
SystemString name = StrToSys(ent.name);
|
||||||
ret.emplace_back(name, ContainerRegistry::SongData(std::move(song), ent.decompSz, -1, -1));
|
ret.emplace_back(name, ContainerRegistry::SongData(std::move(song), ent.decompSz, -1,
|
||||||
|
LookupRS1SongId(ent.name)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -557,6 +557,15 @@ bool SoundMacroState::advance(Voice& vox, double dt)
|
||||||
m_midiDecay = cmd.m_data[1];
|
m_midiDecay = cmd.m_data[1];
|
||||||
m_midiSustain = cmd.m_data[2];
|
m_midiSustain = cmd.m_data[2];
|
||||||
m_midiRelease = cmd.m_data[3];
|
m_midiRelease = cmd.m_data[3];
|
||||||
|
|
||||||
|
/* Bootstrap ADSR defaults here */
|
||||||
|
if (!vox.getCtrlValue(m_midiSustain))
|
||||||
|
{
|
||||||
|
vox.setCtrlValue(m_midiAttack, 10);
|
||||||
|
vox.setCtrlValue(m_midiSustain, 127);
|
||||||
|
vox.setCtrlValue(m_midiRelease, 10);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Op::RndNote:
|
case Op::RndNote:
|
||||||
|
|
|
@ -1244,6 +1244,7 @@ size_t Voice::getTotalVoices() const
|
||||||
void Voice::kill()
|
void Voice::kill()
|
||||||
{
|
{
|
||||||
m_voxState = VoiceState::Dead;
|
m_voxState = VoiceState::Dead;
|
||||||
|
m_backendVoice->stop();
|
||||||
for (const std::shared_ptr<Voice>& vox : m_childVoices)
|
for (const std::shared_ptr<Voice>& vox : m_childVoices)
|
||||||
vox->kill();
|
vox->kill();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue