Commit Graph
34 Commits
Author SHA1 Message Date
Coen Rampen 07a6b54f54 AGOS: Add CMS support for Elvira 1
This adds support for the Creative Music System / Gameblaster to Elvira 1.
2022-05-16 12:18:11 +02:00
Coen Rampen 5e95bdcbda AGOS: Elvira 1 - add support for Casio devices
This adds support for the Casio MT-540, CT-460 and CSM-1 for Elvira 1.
2022-05-09 17:19:44 +02:00
Coen Rampen 66bb075f1c AGOS: Add E2/WW AdLib and MT-32 SFX and enhancements
This adds support for the AdLib and MT-32 sound effects in Elvira 2 and
Waxworks. It adds an option to the UI to toggle between sampled and
synthesized SFX. It also adds the following enhancements:
- AdLib OPL3 mode for Elvira 2, Waxworks and Simon 1 floppy demo. This can be
selected using a new UI option.
- Mixed AdLib/MIDI mode for Elvira 2 and Waxworks.
- Implemented "monophonic chords", a feature of the original MIDI code which
would play only the highest note of a chord on AdLib. Most noticable in the
Waxworks music.
- Added UI option to select Simon 1 DOS music tempos.
- Rewrite of the AdLib and MT-32 drivers to remove duplication and make use of
features of the standard multisource drivers.
- Refactored MidiPlayer to standardize interface and remove code moved to the
drivers and parsers.
2022-05-09 17:19:44 +02:00
Coen Rampen d37681a729 AGOS: Update Simon 1 AdLib drivers
This updates the Simon 1 DOS AdLib driver and adds an AdLib driver for Windows.

The DOS driver now has OPL3 support, which eliminates the note cut off that
frequently occurs on an OPL2. It also allows for some limited use of stereo.
The driver now plays the floppy SFX accurately compared to the original
interpreter. It also implements multisource functionality, allowing for
separate volume control for music and SFX for the floppy version.

The Windows driver just maps the MT-32 instruments of the Simon 1 MIDI data to
the equivalent GM instruments.
2022-05-09 17:19:42 +02:00
Coen Rampen 1f0e905160 AGOS: Add MIDI parsers for GMF and Windows
This commit adds MIDI parser subclasses for the Simon 1 GMF format and for the
SMF variant used by the Windows versions of Simon 1 and 2.

The GMF format was handled by the SMF parser, which can now be removed from
that class. It also fixes the tempos not matching the DOS interpreter.

The Simon Windows SMF variant was handled in the AGOS midi class. Moving it to
a separate parser allows for some cleaner code in that class. It now also
corrects the tempos to match those of the DOS interpreter.
2022-05-09 17:19:41 +02:00
athrxx a3fd19265f AGOS: (ELVIRA/PC98/Jp) - add sound driver
Added support for PC9801-26, Roland MT-32 and General Midi. I have left out the PC speaker part for now.
2021-01-22 00:47:59 +01:00
aryanrawlani28 29ceb07959 ENGINES: ALL: Revert detection submodule to be directly present in the engine directory
- DETECT_OBJS are present and added inside an engine's modules.mk file.
2020-10-03 14:56:36 +02:00
aryanrawlani28 8189a05316 ENGINES: ALL: Adapt to changes for new plugins by defining a new detection module
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
2020-10-03 14:56:36 +02:00
aryanrawlani28 2f6453100b AGOS: Split detection code & adapt to new plugins.
- Move AGOSGameDescription -> detection.h
- Move obsoleteGameIDsTable -> obsolete.h
- Both the above points are because the detection needs them, as well as the engine.
- By moving to headers in this pattern, we avoid many unnecessary inclusions and keep everything clean.
2020-10-03 14:56:36 +02:00
Johannes Schickel 979a885ef9 AGOS: Add initial version of Simon1 DOS AdLib output.
Testing so far has not really happened. Only the first part of the intro has
been tested.
2015-07-23 22:33:56 +02:00
Martin Kiewitz bfa7d89500 AGOS: Accolade music: read driver data in factory
moved driver reading code into factory of both Accolade music drivers
2015-07-03 00:52:36 +02:00
Martin Kiewitz d24c68c739 AGOS: implement Accolade AdLib + MT32 music drivers
- both known variants are supported (INSTR.DAT + MUSIC.DRV)
- INSTR.DAT/MUSIC.DRV holds channel mapping, instrument mapping, etc.
- fixed bug inside S1D MidiParser, that ruined some instrument changes
0xFC header was seen as 2 byte header, but it's 4 bytes in Elvira 2
and 5 bytes in Waxworks / Simon 1 demo
- dynamic channel allocation for the MUSIC.DRV adlib driver is not
implemented atm, simply because at least the demos of Waxworks and
Simon 1 do not use this feature
- sound effects of Waxworks are not implemented atm
- note: the game "Altered Destiny" uses Accolade INSTR.DAT variant too
2015-06-21 00:45:45 +02:00
Matthew Hoops ab45e72e67 COMMON: Move InstallShield code to common
The code also now works for both data compressed with sync bytes and without
2012-05-28 16:54:49 -04:00
Matthew Hoops f91f0f2756 AGOS: Add an archive class for handling InstallShield Cabinets 2011-08-20 16:42:09 -04:00
Travis Howell 48cce58ab5 Split the script opcode table for DIMP, since it doesn't match(ie timers) other Puzzle Pack games.
svn-id: r44285
2009-09-24 03:41:45 +00:00
Travis Howell 8a62c94f80 Enable Personal Nightmare by default.
svn-id: r43304
2009-08-12 02:24:03 +00:00
Travis Howell 1c15bcf87d Add option to disable later games (Feeble Files, Puzzle Pack) in AGOS game engine, which require higher resolution.
svn-id: r43270
2009-08-11 14:42:44 +00:00
Travis Howell bce47e7eb6 Add initial support for DOS non-interactive demos of The Feeble Files.
svn-id: r40619
2009-05-16 05:34:16 +00:00
Travis Howell 2620d6836c Add initial support for Personal Nightmare.
Thanks to dreammaster for file decompression and icon decoding code.

NOTE: setjmp/longjmp code will require conversion for portability.

svn-id: r39216
2009-03-08 08:45:21 +00:00
Jordi Vilalta Prat 38a8aa516e Allow static and dynamic plugins to be used at the same time
svn-id: r31888
2008-05-06 03:00:26 +00:00
Jordi Vilalta Prat 66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Travis Howell 9b45c2c994 Split charset font data.
svn-id: r30299
2008-01-06 14:00:43 +00:00
Max Horn fbc2f89b08 Renamed some game.cpp files to detection.cpp
svn-id: r26623
2007-04-27 20:26:54 +00:00
Travis Howell f1accee702 Cleanup
svn-id: r24531
2006-10-27 12:55:48 +00:00
Travis Howell 399f8381a9 Cleanup
svn-id: r24397
2006-10-21 01:51:59 +00:00
Travis Howell ff574a63ee Split code into more specific files and cleanup
svn-id: r24394
2006-10-20 02:10:51 +00:00
Travis Howell d75901b832 Split game specific script opcodes into separate files
svn-id: r24389
2006-10-19 11:40:26 +00:00
Eugene Sandulenko ea1cbea9f6 Rename items.cpp to script.cpp
svn-id: r24336
2006-10-15 09:08:51 +00:00
Travis Howell ed89778036 Add menu support for Amiga demo of Elvira 1
svn-id: r24332
2006-10-15 04:15:48 +00:00
Travis Howell 9fbe8481d8 Add conversion for planar graphics in Amiga version of Elvira 1/2 and Waxworks
svn-id: r24242
2006-10-09 01:56:51 +00:00
Travis Howell baac293911 Add more code for WW
svn-id: r24103
2006-10-04 03:29:14 +00:00
Travis Howell af5c8eb1c3 Remove blocks/tiles related code for PP, which was only required by unreleased game
svn-id: r24092
2006-10-03 10:01:08 +00:00
Torbjörn Andersson 30ac033dc0 Added a couple of functions which seem to define the rules for some kind of
"blocks" game. This looks like it could be cleaned up quite a bit.

svn-id: r24038
2006-09-30 11:55:50 +00:00
Eugene Sandulenko 798c7ee682 Phase 2 of Simon renaming. Simon directory renaming
svn-id: r24009
2006-09-29 08:37:24 +00:00