diff options
author | Florian Kagerer | 2010-08-02 18:30:25 +0000 |
---|---|---|
committer | Florian Kagerer | 2010-08-02 18:30:25 +0000 |
commit | 9c8b4655053063fcdd5311ee0e5df5a4bd19cf92 (patch) | |
tree | 25cd7f5d0d15da428035485b476626fa2d617660 /tools/create_kyradat | |
parent | 180f188b88dd7be12df5152f52f95b9b7039f012 (diff) | |
download | scummvm-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.cpp | 5 | ||||
-rw-r--r-- | tools/create_kyradat/create_kyradat.h | 2 | ||||
-rw-r--r-- | tools/create_kyradat/games.cpp | 2 | ||||
-rw-r--r-- | tools/create_kyradat/tables.cpp | 7 |
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 }, |