aboutsummaryrefslogtreecommitdiff
path: root/tools/create_kyradat
diff options
context:
space:
mode:
authorFlorian Kagerer2010-08-02 18:30:25 +0000
committerFlorian Kagerer2010-08-02 18:30:25 +0000
commit9c8b4655053063fcdd5311ee0e5df5a4bd19cf92 (patch)
tree25cd7f5d0d15da428035485b476626fa2d617660 /tools/create_kyradat
parent180f188b88dd7be12df5152f52f95b9b7039f012 (diff)
downloadscummvm-rg350-9c8b4655053063fcdd5311ee0e5df5a4bd19cf92.tar.gz
scummvm-rg350-9c8b4655053063fcdd5311ee0e5df5a4bd19cf92.tar.bz2
scummvm-rg350-9c8b4655053063fcdd5311ee0e5df5a4bd19cf92.zip
KYRA: FM-Towns audio driver rewrite
- FM-Towns euphony driver completely rewritten based on KYRA FM-Towns and LOOM towns disasm. - Split all the emu and driver code from sound_towns.cpp into different files to make things a bit less confusing. - Move the driver code to common space since the exact same euphony driver is used by LOOM which means we could get rid of the outdated and incomplete ym2612 driver/emu implementation (which doesn't even do things like instrument loading, pan position, etc). I haven't tried to add this to the Scumm engine yet, since I am not familiar with it and my priority was to get the driver finished first. But from the look of disasm it shouldn't be difficult to do. - Introduce a generic FM-Towns audio interface based on FM-Towns system file disasm which was necessary for the euphony driver rewrite. Every FM-Towns game I have seen so far seems to access the audio hardware via these system functions. This interface implementation will also allow reasonably simple creation of new FM-Towns audio drivers (e.g. this could be used for Kings Quest 5 FM-Towns or others). - Move the PC98 driver to common space, too, since I have a strong feeling that this driver is also used in the PC98 version of Future Wars - This also improves KYRA FM-Towns music quality, sound effects accuracy and music fading. svn-id: r51645
Diffstat (limited to 'tools/create_kyradat')
-rw-r--r--tools/create_kyradat/create_kyradat.cpp5
-rw-r--r--tools/create_kyradat/create_kyradat.h2
-rw-r--r--tools/create_kyradat/games.cpp2
-rw-r--r--tools/create_kyradat/tables.cpp7
4 files changed, 15 insertions, 1 deletions
diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp
index c1bcbc006c..38fc60763e 100644
--- a/tools/create_kyradat/create_kyradat.cpp
+++ b/tools/create_kyradat/create_kyradat.cpp
@@ -45,7 +45,7 @@
#include <map>
enum {
- kKyraDatVersion = 70
+ kKyraDatVersion = 71
};
const ExtractFilename extractFilenames[] = {
@@ -163,6 +163,7 @@ const ExtractFilename extractFilenames[] = {
{ k1CreditsStrings, kTypeRawData, true },
// FM-TOWNS specific
+ { k1TownsMusicFadeTable, k3TypeRaw16to8, false },
{ k1TownsSFXwdTable, kTypeTownsWDSfxTable, false },
{ k1TownsSFXbtTable, kTypeRawData, false },
{ k1TownsCDATable, kTypeRawData, false },
@@ -898,6 +899,8 @@ const char *getIdString(const int id) {
return "k1GUIStrings";
case k1ConfigStrings:
return "k1ConfigStrings";
+ case k1TownsMusicFadeTable:
+ return "k1TownsMusicFadeTable";
case k1TownsSFXwdTable:
return "k1TownsSFXwdTable";
case k1TownsSFXbtTable:
diff --git a/tools/create_kyradat/create_kyradat.h b/tools/create_kyradat/create_kyradat.h
index 435e239381..25a950935b 100644
--- a/tools/create_kyradat/create_kyradat.h
+++ b/tools/create_kyradat/create_kyradat.h
@@ -138,6 +138,8 @@ enum kExtractID {
k1CreditsStrings,
+ k1TownsMusicFadeTable,
+ k1TownsMusicFadeTable,
k1TownsSFXwdTable,
k1TownsSFXbtTable,
k1TownsCDATable,
diff --git a/tools/create_kyradat/games.cpp b/tools/create_kyradat/games.cpp
index 9976451067..1bd7d31648 100644
--- a/tools/create_kyradat/games.cpp
+++ b/tools/create_kyradat/games.cpp
@@ -411,6 +411,8 @@ const int kyra1TownsNeed[] = {
k1NewGameString,
k1ConfigStrings,
+ k1TownsMusicFadeTable,
+ k1TownsMusicFadeTable,
k1TownsSFXwdTable,
k1TownsSFXbtTable,
k1TownsCDATable,
diff --git a/tools/create_kyradat/tables.cpp b/tools/create_kyradat/tables.cpp
index a74f58e2c3..dc8163901d 100644
--- a/tools/create_kyradat/tables.cpp
+++ b/tools/create_kyradat/tables.cpp
@@ -968,6 +968,12 @@ const ExtractEntrySearchData k1ConfigStringsProvider[] = {
EXTRACT_END_ENTRY
};
+const ExtractEntrySearchData k1TownsMusicFadeTableProvider[] = {
+ { UNK_LANG, kPlatformFMTowns, { 0x00000B10, 0x000076DE, { { 0x9F, 0x08, 0x5B, 0xD6, 0x25, 0x7F, 0x11, 0x08, 0x87, 0x45, 0x92, 0xD3, 0xE5, 0xA8, 0x7C, 0x2F } } } },
+
+ EXTRACT_END_ENTRY
+};
+
const ExtractEntrySearchData k1TownsSFXwdTableProvider[] = {
{ UNK_LANG, kPlatformFMTowns, { 0x00012608, 0x006717A1, { { 0x34, 0xDD, 0x2D, 0xA5, 0x14, 0x05, 0xEE, 0x2F, 0x93, 0x7C, 0x78, 0x4D, 0xCA, 0x13, 0xED, 0x93 } } } },
@@ -1823,6 +1829,7 @@ const ExtractEntry extractProviders[] = {
{ k1SpecialPalette33, k1SpecialPalette33Provider },
{ k1GUIStrings, k1GUIStringsProvider },
{ k1ConfigStrings, k1ConfigStringsProvider },
+ { k1TownsMusicFadeTable, k1TownsMusicFadeTableProvider },
{ k1TownsSFXwdTable, k1TownsSFXwdTableProvider },
{ k1TownsSFXbtTable, k1TownsSFXbtTableProvider },
{ k1TownsCDATable, k1TownsCDATableProvider },