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
Renamed from engines/simon/module.mk (Browse further)