Commit Graph
269 Commits
Author SHA1 Message Date
Cameron Cawley d6d098394c AGOS: Use proper filenames for the Acorn Floppy version of Simon 1 2022-12-11 22:41:14 +01:00
Donovan Watteau 759e3f3138 AGOS: JANITORIAL: Less warning noise when ENABLE_AGOS2 is not enabled 2022-10-26 19:56:55 +02:00
Coen Rampen 03de0244ed AGOS: Fix DOS PN and FF demo crash
The engine would try to initialize the MidiPlayer for all DOS games, even the
ones that don't use MIDI (Personal Nightmare and Feeble Files demos). This
caused a problem with the new MIDI code, which does not set up the necessary
objects for these games and crashed on a null pointer.
This is fixed by adding PN and FF as exceptions to the if condition guarding
initialization of the MidiPlayer.
2022-08-04 21:50:46 +02:00
Donovan Watteau 802caa4c39 AGOS: Add an option to disable the fade-out effects in Simon1/Simon2
Simon1 and Simon2 fade the screen to black whenever leaving a room,
but this can be slow to render on some devices, and for some people
nowadays it can really make the pace of the game quite slow.
2022-06-23 20:28:34 +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 a72704764b AGOS: Fix Simon 2 intro first scene MT-32 music
The first scene of the Simon The Sorcerer 2 intro uses 3 music tracks. The last
2 are missing from the MT-32 MIDI data set. The original interpreter just stops
playing music after the first track and does not restart until the next scene.

This commit fixes this problem by using the GM versions of these 2 tracks
instead and mapping the GM instruments to MT-32 ones.
2022-05-09 17:19:43 +02:00
Coen Rampen f1e3c12895 AGOS: Improve Simon 2 MIDI code
The DOS versions of Simon the Sorcerer 2 now use the Miles drivers. AdLib now
sounds like the original does. ScummVM would use the second set of XMIDI data,
written for the MT-32, for GM with instrument remapping. Now the first set is
used, which uses GM instruments and has extra instruments on several pieces.
For all versions music fade-outs have been added during screen fades.
2022-05-09 17:19:42 +02:00
Coen Rampen 1f19bf2d31 AGOS: Improve sound pausing and volume management
MIDI music is now paused by pausing the parser(s) instead of relying on the
mixer streams to stop providing callbacks. This gives more consistent behavior
as external MIDI devices or softsynths now also pause playback.

Muting sound now sets the volume to 0 instead of pausing playback.
2022-05-09 17:19:42 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 8c81b5026a AGOS: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
ysj1173886760 7dcf259006 AGOS: move debug channels to metaEngineDetection 2021-05-22 01:34:57 +02:00
athrxx 56d897a100 AGOS: (ELVIRA/PC98/Jp) - more fixes
Just walking around the castle fixing bugs as I find them, e. g.:
- make decompression routine safer (this could write a couple of invalid byte in at least one case)
- also support compressed data header without actual data (required in the kitchen scene when killing the evil cook)
- fix some graphics/palette related glitches
2021-01-22 00:47:59 +01:00
athrxx 574133086d AGOS: (ELVIRA/PC98/Jp) - add Japanese font drawing
- Add dual layer graphics display to display the Japanese characters in their proper (double) resolution on top of the graphics. The original actually uses text mode.
- Adapt mouse handling to dual layer code.
- For consistency I got rid of all direct calls to _system->lockScreen() and _system->unlockScreen(), even in the sub engines that aren't affected. I find it easier to debug and to maintain this way.
2021-01-22 00:47:58 +01:00
athrxx bb8c70f865 AGOS: (ELVIRA/PC98/Jp) - fix startup
Add necessary file name and file format modifications so that the game at least loads up and runs up to the start scene without glitches.
2021-01-22 00:47:58 +01:00
Henrik "Henke37" Andersson acf81a79c1 AGOS: Use PauseToken in pause function 2020-05-10 23:39:31 +02:00
Paul Gilbert 644a71440b AGOS: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
Colin Snover 432fd522d2 ENGINES: Remove default1x scaler flag
This flag is removed for a few reasons:

* Engines universally set this flag to true for widths > 320,
  which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
  since its behaviour was almost completely undocumented and users
  would need to figure out that they'd need an explicit non-default
  scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
  deciding how the backend may choose to render its virtual screen.
  The choice of rendering behaviour belongs to the user, and the
  backend, in that order.

A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
2017-10-07 12:30:29 -05:00
Ori Avtalion 5e49800901 AGOS: Reduce audio header dependencies 2016-04-14 16:48:02 +03: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
D G Turner f7b5c50064 AGOS: Disable image_dump debug command. 2014-05-15 11:34:26 +01:00
D G Turner b32ca0aaae AGOS: Add image dumping to file enable by debugflag.
This previously required a code change and recompile to enable.
It can now be enabled or disabled at runtime using the "image_dump"
debug flag.
2014-05-12 00:44:13 +01:00
D G Turner 3d3a791085 AGOS: Switch VGA script debug output to debug flag, rather than level 5.
This is now set by --debugflags=vga_script rather than -d 5, though
it will still require a debug level greater than 0.
2014-05-11 15:26:58 +01:00
D G Turner 41da9a2df7 AGOS: Change "script" debugflag to "subroutine" as more accurate.
This flag is used to enable dumping of subroutine scripts at start.
2014-05-11 13:28:33 +01:00
D G Turner 55d8a46177 AGOS: Switch script debugging to debug flag, rather than level 4.
This is now set by --debugflags=script rather than -d 4, though
it will still require a debug level greater than 0.
2014-05-11 13:17:16 +01:00
D G Turner be68682946 AGOS: Switch VGA opcode debugging to debug flag, rather than level 3.
This is now set by --debugflags=vga_opcode rather than -d 3, though it
will still require a debug level greater than 0.
2014-05-11 12:46:55 +01:00
D G Turner 6856b09d5a AGOS: Switch opcode debugging to a debug flag, rather than level 2 hack.
This is now set by --debugflags=opcode rather than -d 2, though it will
still require a debug level greater than 0.
2014-05-11 12:27:38 +01:00
D G Turner 1506b96bd0 AGOS: Remove redundant "level" command from debugger.
The base class "debuglevel" command now provides the same functionality.
2014-05-10 17:25:35 +01:00
Kirben 41d46f07ef AGOS: Correct typos in comments. 2014-03-05 09:17:54 +11:00
Kirben 83b32010b3 AGOS: Add initial support for mouse wheel. 2014-03-02 22:19:32 +11:00
Johannes Schickel c4fc0cee96 AGOS: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Matthew Hoops 0031c41db8 COMMON: Change kPlatformPC to kPlatformDOS
"PC" was very ambiguous and now it matches what we show in the GUI.

This also corrects sword2's platform to Windows.
2013-05-02 18:43:10 -04:00
Travis Howell f20b8ecaa1 AGOS: Fix dumping all images option. 2011-10-07 00:04:08 +11:00
Eugene Sandulenko 35aa235e4b Merge pull request #79 from clone2727/agos_cab
AGOS: Add support for loading data from Windows (InstallShield) installer archives
2011-08-27 08:21:57 -07:00
Travis Howell 5346ac18b7 AGOS: Integrate InstallShield support. 2011-08-27 11:00:24 -04:00
Johannes Schickel 7173dbfd35 AGOS: Use delete instead of free on an C++ object.
This fixes some ugly valgrind warnings and some crashes when quitting AGOS
games for me.
2011-08-21 04:48:58 +02:00
Christoph Mallon 0a458019b3 AGOS: Replace if-cascade by switch. 2011-08-07 15:19:07 +02:00
Eugene Sandulenko 6e795a89b0 AGOS: Reduced header dependency 2011-08-06 11:28:40 +01:00
Max Horn 183e018c19 AGOS: cleanup 2011-05-17 15:36:25 +02:00
Max Horn 4cbe4ede66 COMMON: Registers RandomSources in constructor with the event recorder
This also removes the dependency of engines on the event recorder header
and API, and will make it easier to RandomSources that are not properly
registered.
2011-05-17 12:17:26 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Johannes Schickel 71bdb86e02 Merge pull request #16 "Add a PixelFormat to Graphics::Surface.".
For further discussion check here:
https://github.com/scummvm/scummvm/pull/16

Conflicts:
	graphics/png.cpp
2011-05-01 16:54:45 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Johannes Schickel 2e0db94f04 AGOS: Prefer Surface::create taking a PixelFormat over the one taking a byte depth. 2011-04-17 16:25:10 +02:00
Max Horn e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Max Horn 29847ea42d AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
2011-03-23 15:25:47 +01:00
dhewg f8271e0d07 AGOS: Cleanup syncSoundSettings() 2011-03-19 15:33:34 +01:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
David Turner 861fab3fb1 AGOS: Fix Memory Leaks in Feeble Files.
Found with Valgrind.

svn-id: r55559
2011-01-27 04:13:10 +00:00
David Turner d55626722e AGOS: Fix Memory Leaks when playing Simon 2 Win.
These were identified with Valgrind.

svn-id: r55558
2011-01-27 02:57:07 +00:00
Max Horn 059944e59c COMMON: Push #include audiocd.h in system.h out to .cpp files
svn-id: r54148
2010-11-08 23:07:42 +00:00