Commit Graph

1670 Commits

Author SHA1 Message Date
Bastien Bouclet
8fb149e3c7 ENGINES: Change MetaEngine::findGame to return a plain game descriptor 2018-05-10 09:04:23 +02:00
Bastien Bouclet
cf1ebf2951 ENGINES: Add unknown game variants to the game detector results 2018-05-10 09:04:23 +02:00
Sven Hesse
a5fcdb55da GOB: Mark intentional fallthrough in switch statements 2018-02-13 13:29:03 +01:00
Colin Snover
a2bdff02d7 ENGINES: Improve output of unknown game variant detection
When a user tries to add a game expecting it to be a particular
game for a particular engine, but a detector from another engine
happens to match some files that exist in the game directory and
reports on those files instead, this can cause a lot of confusion
because the detector doesn't say what engine or game it thought it
matched.

This patch adds the name of the matching engine as well as any
matching game IDs (if applicable) to the detector's logged output.
It also provides more specific guidance about where to send the
detection information (to the bug tracker), and properly wraps the
first part of the report to 80 columns.

Refs Trac#10272.
2017-11-10 09:57:41 -06:00
Colin Snover
51329c0dc6 ALL: Fix misuse of comma operator 2017-11-10 09:57:03 -06:00
Colin Snover
6e157429b7 BACKENDS: Fix window sizing of games that switch between multiple resolutions 2017-10-07 12:30:29 -05: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
Torbjörn Andersson
70a2ca8b7d JANITORIAL: Silence more GCC 7 warnings
All these fall through were marked as deliberate, so again I've only
changed the comment to silence GCC.
2017-08-06 13:30:51 +02:00
Torbjörn Andersson
9f34aa69b7 GOB: Fix what looks like an obviously incorrect condition
Though since I don't have the game I can't actually test it. :-)
2017-08-06 12:29:21 +02:00
Torbjörn Andersson
462f1c9859 JANITORIAL: Silence more GCC 7 warnings
There were all flagged as intentional fall throughs. I simply changed
the comments to something GCC would recognize.
2017-08-06 12:26:05 +02:00
Sven Hesse
acc9773a3d GOB: Add another interactive Gob3 demo, as supplied by Dark-Star
This demo comes with texts in English (GB), German and French.
2017-01-26 16:30:23 +01:00
Ben Castricum
6f38c1e55d ALL: game state => saved game 2016-11-29 20:15:20 +01:00
Eugene Sandulenko
fab199d37e JANITORIAL: Make GPL headers uniform 2016-09-03 12:46:38 +02:00
Eugene Sandulenko
cf89cc04cc GOB: Move debug channel registration to the top of the engine constructor 2016-07-28 11:37:06 +03:00
Sven Hesse
aca13f7ba9 GOB: Work around broken resource sizes in Gobliiins EGA
The EGA version of Gobliiins, similar to Little Red Riding Hood,
claims a few resources are larger than they actually are. The original
happily reads past the resource structure, but we'll instead fix
the size of the resource after loading.

This fixes bug #7162.
2016-07-20 21:59:22 +02:00
Ori Avtalion
064df1ff27 GOB: Reduce audio header dependencies 2016-04-14 17:18:33 +03:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Eugene Sandulenko
363f126984 GOB: Fix Fascination entry, it is DOS, not Amiga version 2016-03-28 01:08:14 +02:00
Eugene Sandulenko
d3e372db19 GOB: Added another French Playttons2. Bug #7052 2016-03-27 14:48:18 +02:00
Eugene Sandulenko
77da2801e0 GOB: Added Spanish Fascination detection entry. Bug #7069 2016-03-27 14:43:04 +02:00
Matthew Hoops
aa6ff44440 BACKENDS: Only expose one set of functions for AudioCDManager
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.
2016-03-13 13:57:19 +01:00
Matthew Hoops
fb6fe1332a BACKENDS: Move to an openCD() without parameters as the public API 2016-03-13 13:52:24 +01:00
Johannes Schickel
0b6befdcc5 ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.
_singleid   -> _singleId
_gameids    -> _gameIds
_guioptions -> _guiOptions
2016-03-08 19:01:13 +01:00
Sven Hesse
2c81602454 GOB: Don't completely reset the OPL in AdLib::initOPL()
It shouldn't be necessary anymore, since initOPL() cleans everything.
If, however, suddenly a piece of music sounds weird in a Gob game,
this is the place to look for.

This fixes a race condition between OPL::reset() and the callback
timer.
2016-02-28 21:04:23 +01:00
Eugene Sandulenko
7d2d5e371d GOB: Fix warning 2016-02-14 17:35:09 +01:00
Sven Hesse
92e7bfa959 GOB: Remove unnecessary includes and forward-declarations 2016-01-02 03:16:30 +01:00
Sven Hesse
1fa0197229 GOB: Make the currently playing CD track all-uppercase
This is what the original game does too, and the scripts query for
all-uppercase CD track names.

Interestingly, this being wrong has been mostly inconsequential. It
does, however, manifest in one bug in the underwater wreck level of
Gobliins 2. After calling the Moray Eel by lighting the lamp with
Winkle, speaking to said eel has the scripts wait for the currently
playing background track to end before playing the voice lines,
instead of ending the audio track forcefully. The track is only about
a minute long, so it's "only" annoying, not a game-stopper.

The scripts also try to compare the CD track name with some different,
all-uppercase names, so this is possibly relevant in some other places
as well. No such bug report exists at the moment, though.

See also the forum post with the bug report:
http://forums.scummvm.org/viewtopic.php?p=81733#81733

A somewhat related bug report is #2999 "GOB2 : Moray Eel Game Freeze
(Wreck Scene)" (<http://sourceforge.net/p/scummvm/bugs/2999/>). At
that time, the script expression parser still did a stricmp for the
NEQ expression (which is wrong), and that made the bug not trigger.
Commit 5c58b9a3a4, which fixed that
incorrect NEQ behaviour, then made this bug here appear.
2015-09-02 20:38:16 +02:00
Sven Hesse
370107c953 GOB: Remove a useless call to Variables::getAddressOff8()
This is a left-over vestige of when the gob engine recorded the size
of each variable currently in use, because it byte-swapped all
variables on save/load depending on the machine ScummVM ran on.

The gob engine doesn't do that all anymore (instead, the variables are
always stored in the endianness of the original game), so
getAddressOff8() doesn't store "this is an 8-bit variable" anymore,
making the call a NOP.

This fixes Coverity Scan issue #1267142.
2015-08-03 15:56:43 +02:00
Max Horn
91e925d8ce GOB: Get rid of unused Audio::mixer references
Also remove the unused AdLib::_rate member variable.
2015-07-19 17:06:18 +02:00
Matthew Hoops
bed9da8b9d AUDIO: Remove all AudioStream access to OPL 2015-07-07 20:19:47 -04:00
Walter van Niftrik
e31da911c9 GOB: Implement custom AdLib volume control 2015-07-07 20:19:45 -04:00
Matthew Hoops
73e8ac2a9b GOB: Use the built-in OPL timer 2015-07-07 20:19:45 -04:00
Matthew Hoops
2e8f9dcec9 AUDIO: Remove the sample rate configuration from the OPL code 2015-07-07 20:19:42 -04:00
Sven Hesse
5bec0cbb9d GOB: Make coordinate parameters in Surface::fillRect() signed
And clip to [0, width), [0, height) before drawing.

This fixes bug #6864, which is a regression I introduced in
51fd528fe5 when I changed all
the drawing code to use the Surface class.

I thought that having unsigned coordinates makes sense, but
for some reason, Fascination sets _destSpriteX (which maps
to left in fillRect()) to -1, expecting the drawing code to
clip.
2015-05-07 00:34:02 +02:00
Sven Hesse
7bdf48170a GOB: Remove useless memcpy()
Happened while removing Draw::_vgaSmallPalette in 0f9b1364c.

Fixes Coverity issue #1230309.
2014-10-19 00:08:32 +02:00
Thierry Crozat
a050d61af8 GOB: Update list of files that contain translatable strings 2014-10-04 01:02:03 +01:00
Sven Hesse
24595ede3b GOB: Remove duplicate entries for Ween DOS
Seems like that happened when I sorted them by platform
after splitting up the big detection table in 07b17f711.

This fixes bug #6676.
2014-07-08 21:03:47 +02:00
Johannes Schickel
ae4ffe01f0 ALL: Rename Debugger::DCmd_Register to Debugger::registerCmd. 2014-05-27 02:04:08 +02:00
Johannes Schickel
daa8d57a86 ALL: Rename Debugger::DebugPrintf to Debugger::debugPrintf. 2014-05-27 02:04:07 +02:00
Sven Hesse
dba4084c8a GOB: Calculate _totResStart even if no resources follow
It's also used as a base offset for TOT strings.
This fixes a crash in the Amiga version of Bargon Attack.
2014-03-16 16:40:08 +01:00
Sven Hesse
0f9b1364cf GOB: Remove the last remnants of Draw::_vgaSmallPalette
Draw::_vgaSmallPalette was supposed to be a 16-color VGA
palette / EGA palette, but we've been using the first 16
entries of Draw::_vgaPalette for that for ages now.

The only parts where we didn't were codepaths never
actually taken in the gob games, so for the sake of
clarity (and fixing Coverity issues), this commit removes
those as well.

Fixes Coverity issues 1192648 and 1192649.
2014-03-16 15:35:35 +01:00
Matthew Hoops
740b6e8fbd IMAGE: Move all ImageDecoders to image/ 2014-02-28 00:27:28 -05:00
Johannes Schickel
ea21bc939a GOB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Strangerke
78eff8fea9 GOB: Fascination - Reduce the scope of a couple of variables 2014-02-09 20:26:47 +01:00
Sven Hesse
2aadd55ae6 GOB: Correct the language field for Croustibat 2014-01-31 12:16:35 +01:00
Sven Hesse
ca861961a9 GOB: Add a game type and detection table for Croustibat 2014-01-31 12:04:08 +01:00
Sven Hesse
edacb7ada7 GOB: Move getTotTextItemPart() from Inter_v3 to Inter_v2 2014-01-31 11:54:44 +01:00
D G Turner
ef85456859 BUILD: Remove need for engine.mk in each engine directory.
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
2013-11-24 00:48:01 +00:00
D G Turner
1ac01d2333 BUILD: Remove need for engine-plugin.h in engines.
This is now generated automatically by the configure script from the
engine directory names.
2013-11-24 00:48:01 +00:00
D G Turner
00c27a28f9 BUILD: Split engines/plugins_table header down to a file per engine.
This is the third and final commit enabling fully pluggable engines.

Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
2013-11-24 00:48:01 +00:00