Skip to content

Commit

Permalink
Merge branch 'master'
Browse files Browse the repository at this point in the history
  • Loading branch information
wjp committed May 8, 2013
2 parents 583f9ab + 78ba321 commit 1022996
Show file tree
Hide file tree
Showing 1,040 changed files with 85,837 additions and 25,852 deletions.
16 changes: 16 additions & 0 deletions AUTHORS
Expand Up @@ -106,6 +106,10 @@ ScummVM Team
Scott Thomas
Jordi Vilalta Prat

Hopkins:
Arnaud Boutonne
Paul Gilbert

Hugo:
Arnaud Boutonne
Oystein Eftevaag
Expand Down Expand Up @@ -203,6 +207,10 @@ ScummVM Team
Filippos Karapetis
Joost Peters

Toltecs:
Benjamin Haisch
Filippos Karapetis

Tony:
Arnaud Boutonne
Paul Gilbert
Expand Down Expand Up @@ -307,6 +315,8 @@ ScummVM Team
Benjamin Haisch - Heavily improved de-/encoder for DXA videos
Jochen Hoenicke - Speaker & PCjr sound support, AdLib work
(retired)
Daniel ter Laan - Restoring original Drascula tracks, and
writing convert_dxa.bat
Chris Page - Return to launcher, savestate improvements,
leak fixes, ... (GSoC 2008 task) (retired)
Robin Watts - ARM assembly routines for nice speedups on
Expand Down Expand Up @@ -411,6 +421,9 @@ Other contributions
Basque:
Mikel Iturbe Urretxa

Belarusian:
Ivan Lukyanov

Catalan:
Jordi Vilalta Prat

Expand All @@ -420,6 +433,9 @@ Other contributions
Danish:
Steffen Nyeland

Finnish:
Toni Saarela

French:
Thierry Crozat

Expand Down
2 changes: 1 addition & 1 deletion COPYRIGHT
@@ -1,5 +1,5 @@
ScummVM
Copyright (C) 2001-2012 by the following:
Copyright (C) 2001-2013 by the following:

If you have contributed to this project then you deserve to be on this
list. Contact us (see: AUTHORS) and we'll add you.
Expand Down
3 changes: 3 additions & 0 deletions Makefile.common
Expand Up @@ -265,6 +265,9 @@ endif
ifdef ENABLE_TOON
DIST_FILES_ENGINEDATA+=toon.dat
endif
ifdef ENABLE_WINTERMUTE
DIST_FILES_ENGINEDATA+=wintermute.zip
endif
DIST_FILES_ENGINEDATA:=$(addprefix $(srcdir)/dists/engine-data/,$(DIST_FILES_ENGINEDATA))

# pred.dic is currently only used for the AGI engine
Expand Down
56 changes: 56 additions & 0 deletions NEWS
Expand Up @@ -2,23 +2,79 @@ For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/

1.6.0 (????-??-??)
New Games:
- Added support for 3 Skulls of the Toltecs.
- Added support for Eye of the Beholder.
- Added support for Eye of the Beholder II: The Legend of Darkmoon.
- Added support for Tony Tough and the Night of Roasted Moths.
- Added support for The Journeyman Project: Pegasus Prime.
- Added support for the Macintosh version of Discworld 1.

General:
- Added a new save/load chooser based on a grid of thumbnails. This is only
supported for resolutions bigger than 640x400. The old chooser is still
available and used for games without thumbnail support. It is possible to
select the old one as default too.
- Rewrote VideoDecoder subsystem.
- Added Galician translation.
- Added Finnish translation.
- Added Belarusian translation.
- Using the mouse wheel on a slider widget now changes the value by the
smallest possible amount. This is more predictable than the old behaviour,
which was to change the value by "one pixel" which would sometimes not
change it at all.
- Updated MT-32 emulation code to latest munt project snapshot.
- Added FluidSynth settings dialog, mainly for reverb and chorus settings.
- Fixed crash on certain Smacker movies.

Cine:
- Improved audio support for Amiga and AtariST versions of Future Wars.
Now music fades out slowly instead of stopping immediately. Sound
effects are now properly panned, when requested by the game.

CGE:
- Soltys contains a puzzle requiring the ALT key to be pressed while clicking
on an object. This puzzle has been disabled on devices not using this key.

Drascula:
- Resolved multiple UI issues with the original save/load screen.
- Added advanced savegame functionality, including savegame timestamps and
thumbnails and the ability to load and delete savegames from the launcher.
It's now possible to use the ScummvM save/load dialogs.
- The F7 key (previously unmapped) now always shows the ScummVM load screen.
The F10 key displays either the original save/load screen, or the ScummVM
save screen, if the user has selected to use the ScummVM save/load
dialogs.

Dreamweb:
- Now that the game is freeware, there is a small extra help text showing
the available commands in the in-game terminals when the player uses the
'help' command. Previously, players needed to consult the manual for the
available commands. Since this reference to the manual is a form of copy
protection, this extra line can be toggled by the ScummVM copy protection
command line option.

Groovie:
- Simplified the movie speed options, and added a custom option for The 7th
Guest. Movie options are now "normal" and "fast", with the latter changing
the movie speed in T7G to match the faster movie speed of the iOS version.
The game entry might need to be readded in the launcher for the new setting
to appear.

SAGA:
- Added music support for the Macintosh version of I Have No Mouth and, I
Must Scream.

SCUMM:
- Implemented Monkey Island 2 Macintosh's audio driver. Now we properly
support its sample based audio output. The same output is also used for
the m68k Macintosh version of Indiana Jones and the Fate of Atlantis.
- Improved music support for the Macintosh version of Monkey Island 1. It
now uses the original instruments, rather than approximating them with
General MIDI instruments, and should sound a lot closer to the original.
- Added sound and music support for the Macintosh version of Loom.
- Handle double-clicking in the Macintosh version of Loom.
- Major bugfixes in INSANE (the Full Throttle bike fights).

1.5.0 (2012-07-27)
New Games:
Expand Down
52 changes: 38 additions & 14 deletions README
Expand Up @@ -264,10 +264,15 @@ Other Games:
Discworld 2: Missing Presumed ...!? [dw2]
Dragon History [draci]
Drascula: The Vampire Strikes Back [drascula]
Eye of the Beholder [eob]
Eye of the Beholder II: The Legend of
Darkmoon [eob2]
Flight of the Amazon Queen [queen]
Future Wars [fw]
Inherit the Earth: Quest for the Orb [ite]
Nippon Safes Inc. [nippon]
Lands of Lore: The Throne of Chaos [lol]
The Journeyman Project: Pegasus Prime [pegasus]
The Legend of Kyrandia [kyra1]
The Legend of Kyrandia: The Hand of Fate [kyra2]
The Legend of Kyrandia: Malcolm's Revenge [kyra3]
Expand Down Expand Up @@ -384,21 +389,24 @@ entering any answer. Chances are that it will work.

ScummVM will skip copy protection in the following games:

* Maniac Mansion
* Zak McKracken and the Alien Mindbenders
* Loom (EGA)
* The Secret of Monkey Island (VGA)
* Monkey Island 2: LeChuck's Revenge
* Beneath a Steel Sky
-- bypassed with kind permission from Revolution Software.
* Dreamweb
-- a list of available commands in the in-game terminals is now shown
when the player uses the 'help' command
* Inherit the Earth: Quest for the Orb (Floppy version)
-- bypassed with kind permission from Wyrmkeep Entertainment,
since it was bypassed in all CD releases of the game.
* Loom (EGA DOS)
* Maniac Mansion
* Monkey Island 2: LeChuck's Revenge
* Simon the Sorcerer 1 (Floppy version)
* Simon the Sorcerer 2 (Floppy version)
-- bypassed with kind permission from Adventure Soft,
since it was bypassed in all CD releases of the game.
* The Secret of Monkey Island (VGA)
* Waxworks
* Zak McKracken and the Alien Mindbenders


3.2) Commodore64 games notes:
Expand Down Expand Up @@ -2033,9 +2041,10 @@ The following keywords are recognized:
super2xsai, supereagle, advmame2x, advmame3x,
hq2x, hq3x, tv2x, dotmatrix)

confirm_exit bool Ask for confirmation by the user before quitting
(SDL backend only).
console bool Enable the console window (default: enabled) (Windows only).
confirm_exit bool Ask for confirmation by the user before
quitting (SDL backend only).
console bool Enable the console window (default: enabled)
(Windows only).
cdrom number Number of CD-ROM unit to use for audio. If
negative, don't even try to access the CD-ROM.
joystick_num number Number of joystick device to use for input
Expand Down Expand Up @@ -2063,7 +2072,8 @@ The following keywords are recognized:
supported by some MIDI drivers.)

copy_protection bool Enable copy protection in certain games, in
those cases where ScummVM disables it by default.
those cases where ScummVM disables it by
default.
demo_mode bool Start demo in Maniac Mansion
alt_intro bool Use alternative intro for CD versions of
Beneath a Steel Sky and Flight of the Amazon
Expand Down Expand Up @@ -2124,8 +2134,9 @@ Lands of Lore: The Throne of Chaos adds the following non-standard keywords:

Space Quest IV CD adds the following non-standard keyword:

silver_cursors bool If true, an alternate set of silver mouse cursors
is used instead of the original golden ones
silver_cursors bool If true, an alternate set of silver mouse
cursors is used instead of the original golden
ones

Simon the Sorcerer 1 and 2 add the following non-standard keywords:

Expand All @@ -2134,19 +2145,32 @@ Simon the Sorcerer 1 and 2 add the following non-standard keywords:

The Legend of Kyrandia adds the following non-standard keyword:

walkspeed int The walk speed (0-4)
walkspeed number The walk speed (0-4)

The Legend of Kyrandia: The Hand of Fate adds the following non-standard
keyword:

walkspeed number The walk speed (3 or 5, resp. fast or
slow)

The Legend of Kyrandia: Malcolm's Revenge adds the following non-standard
keywords:

walkspeed number The walk speed (3 or 5, resp. fast or
slow)
studio_audience bool If true, applause and cheering sounds are heard
whenever Malcolm makes a joke
skip_support bool If true, the player can skip text and cutscenes
helium_mode bool If true, people sound like they've inhaled Helium
helium_mode bool If true, people sound like they've inhaled
Helium

The 7th Guest adds the following non-standard keyword:

t7g_speed string Video playback speed (normal, tweaked, im_an_ios)
fast_movie_speed bool If true, movies are played at an increased
speed, matching the speed of the iOS version.
Movies without sound are still played at their
normal speed, to avoid music synchronization
issues


8.2) Custom game options that can be toggled via the GUI
Expand Down
55 changes: 28 additions & 27 deletions audio/decoders/adpcm.cpp
Expand Up @@ -268,7 +268,6 @@ static const int MSADPCMAdaptationTable[] = {
768, 614, 512, 409, 307, 230, 230, 230
};


int16 MS_ADPCMStream::decodeMS(ADPCMChannelStatus *c, byte code) {
int32 predictor;

Expand All @@ -290,40 +289,42 @@ int16 MS_ADPCMStream::decodeMS(ADPCMChannelStatus *c, byte code) {
int MS_ADPCMStream::readBuffer(int16 *buffer, const int numSamples) {
int samples;
byte data;
int i = 0;

samples = 0;
int i;

while (samples < numSamples && !_stream->eos() && _stream->pos() < _endpos) {
if (_blockPos[0] == _blockAlign) {
// read block header
for (i = 0; i < _channels; i++) {
_status.ch[i].predictor = CLIP(_stream->readByte(), (byte)0, (byte)6);
_status.ch[i].coeff1 = MSADPCMAdaptCoeff1[_status.ch[i].predictor];
_status.ch[i].coeff2 = MSADPCMAdaptCoeff2[_status.ch[i].predictor];
}
for (samples = 0; samples < numSamples && !endOfData(); samples++) {
if (_decodedSampleCount == 0) {
if (_blockPos[0] == _blockAlign) {
// read block header
for (i = 0; i < _channels; i++) {
_status.ch[i].predictor = CLIP(_stream->readByte(), (byte)0, (byte)6);
_status.ch[i].coeff1 = MSADPCMAdaptCoeff1[_status.ch[i].predictor];
_status.ch[i].coeff2 = MSADPCMAdaptCoeff2[_status.ch[i].predictor];
}

for (i = 0; i < _channels; i++)
_status.ch[i].delta = _stream->readSint16LE();
for (i = 0; i < _channels; i++)
_status.ch[i].delta = _stream->readSint16LE();

for (i = 0; i < _channels; i++)
_status.ch[i].sample1 = _stream->readSint16LE();
for (i = 0; i < _channels; i++)
_status.ch[i].sample1 = _stream->readSint16LE();

for (i = 0; i < _channels; i++)
buffer[samples++] = _status.ch[i].sample2 = _stream->readSint16LE();
for (i = 0; i < _channels; i++)
_decodedSamples[_decodedSampleCount++] = _status.ch[i].sample2 = _stream->readSint16LE();

for (i = 0; i < _channels; i++)
buffer[samples++] = _status.ch[i].sample1;
for (i = 0; i < _channels; i++)
_decodedSamples[_decodedSampleCount++] = _status.ch[i].sample1;

_blockPos[0] = _channels * 7;
_blockPos[0] = _channels * 7;
} else {
data = _stream->readByte();
_blockPos[0]++;
_decodedSamples[_decodedSampleCount++] = decodeMS(&_status.ch[0], (data >> 4) & 0x0f);
_decodedSamples[_decodedSampleCount++] = decodeMS(&_status.ch[_channels - 1], data & 0x0f);
}
}

for (; samples < numSamples && _blockPos[0] < _blockAlign && !_stream->eos() && _stream->pos() < _endpos; samples += 2) {
data = _stream->readByte();
_blockPos[0]++;
buffer[samples] = decodeMS(&_status.ch[0], (data >> 4) & 0x0f);
buffer[samples + 1] = decodeMS(&_status.ch[_channels - 1], data & 0x0f);
}
// (1 - (count - 1)) ensures that _decodedSamples acts as a FIFO of depth 2
buffer[samples] = _decodedSamples[1 - (_decodedSampleCount - 1)];
_decodedSampleCount--;
}

return samples;
Expand Down
7 changes: 7 additions & 0 deletions audio/decoders/adpcm_intern.h
Expand Up @@ -206,12 +206,19 @@ class MS_ADPCMStream : public ADPCMStream {
if (blockAlign == 0)
error("MS_ADPCMStream(): blockAlign isn't specified for MS ADPCM");
memset(&_status, 0, sizeof(_status));
_decodedSampleCount = 0;
}

virtual bool endOfData() const { return (_stream->eos() || _stream->pos() >= _endpos) && (_decodedSampleCount == 0); }

virtual int readBuffer(int16 *buffer, const int numSamples);

protected:
int16 decodeMS(ADPCMChannelStatus *c, byte);

private:
uint8 _decodedSampleCount;
int16 _decodedSamples[4];
};

// Duck DK3 IMA ADPCM Decoder
Expand Down
2 changes: 1 addition & 1 deletion audio/decoders/aiff.h
Expand Up @@ -48,7 +48,7 @@ class SeekableAudioStream;
* successful. In that case, the stream's seek position will be set to the
* start of the audio data, and size, rate and flags contain information
* necessary for playback. Currently this function only supports uncompressed
* raw PCM data as well as IMA ADPCM.
* raw PCM.
*/
extern bool loadAIFFFromStream(Common::SeekableReadStream &stream, int &size, int &rate, byte &flags);

Expand Down
2 changes: 1 addition & 1 deletion audio/decoders/qdm2.cpp
Expand Up @@ -872,7 +872,7 @@ void initVlcSparse(VLC *vlc, int nb_bits, int nb_codes,
codes, codes_wrap, codes_size,
symbols, symbols_wrap, symbols_size,
0, 0, 4 | 2) < 0) {
free(&vlc->table);
free(vlc->table);
return; // Error
}

Expand Down
2 changes: 1 addition & 1 deletion audio/decoders/quicktime.cpp
Expand Up @@ -134,7 +134,7 @@ void QuickTimeAudioDecoder::init() {
_audioTracks.push_back(new QuickTimeAudioTrack(this, _tracks[i]));
}

Common::QuickTimeParser::SampleDesc *QuickTimeAudioDecoder::readSampleDesc(Track *track, uint32 format) {
Common::QuickTimeParser::SampleDesc *QuickTimeAudioDecoder::readSampleDesc(Track *track, uint32 format, uint32 descSize) {
if (track->codecType == CODEC_TYPE_AUDIO) {
debug(0, "Audio Codec FourCC: \'%s\'", tag2str(format));

Expand Down
2 changes: 1 addition & 1 deletion audio/decoders/quicktime_intern.h
Expand Up @@ -131,7 +131,7 @@ class QuickTimeAudioDecoder : public Common::QuickTimeParser {
};

// Common::QuickTimeParser API
virtual Common::QuickTimeParser::SampleDesc *readSampleDesc(Track *track, uint32 format);
virtual Common::QuickTimeParser::SampleDesc *readSampleDesc(Track *track, uint32 format, uint32 descSize);

void init();

Expand Down

0 comments on commit 1022996

Please sign in to comment.