1547 Commits

Author SHA1 Message Date
Sven Hesse
734fc767d2 GOB: Open the Once Upon A Time archives 2012-07-30 01:44:42 +02:00
Sven Hesse
4fc3a88c5f GOB: Add support for different methods of handling Endianness
The Once Upon A Time games handle endianness different in ANI, DEC
and RXY files than Geisha does. We need to support both approaches.
2012-07-30 01:44:42 +02:00
Sven Hesse
83896dea3e GOB: Add PreGob input/event utility functions 2012-07-30 01:44:42 +02:00
Sven Hesse
27782700a5 GOB: Add some PreGob and Once Upon A Time cursor functions 2012-07-30 01:44:42 +02:00
Sven Hesse
38fe3c3cd9 GOB: Add palettes for Once Upon A Time 2012-07-30 01:44:42 +02:00
Sven Hesse
8b19e10104 GOB: Add some generic PreGob graphics functions 2012-07-30 01:44:42 +02:00
Sven Hesse
4819468d9a GOB: Add PreGob stubs for the Once Upon A Time games 2012-07-30 01:44:42 +02:00
Sven Hesse
55c75756ea GOB: Add a more complex detection for Once Upon A Time titles
The hard-coded Once Upon A Time titles, Abracadabra and Baba Yaga,
are impossible to distinguish by file name alone. The same is true
for the each three platforms, DOS, Amiga and Atari ST.

We do need to know exactly which game and platform a specific path
holds, though, because they're
a) completely hard-coded
b) the data files have platform-specific endianness

Therefore, when the filename-based fallback detector finds one of
those games, we open the archives and look inside them.
We detect the specific game by looking at which animal names are
present; and the platform by inspecting the endianness of the
title screen's DEC file, in addition to the existence of a MOD
file to distinguish the Atari ST from the Amiga version.
2012-07-30 01:44:42 +02:00
Sven Hesse
4a380ce668 GOB: Add detection tables for Baba Yaga and Abracadabra 2012-07-30 01:44:41 +02:00
Sven Hesse
bba2028fba GOB: Move the method definitions out of the GobMetaEngine class definition 2012-07-30 01:26:58 +02:00
Sven Hesse
00fa997039 GOB: Move drawString into Font 2012-07-30 01:24:18 +02:00
Sven Hesse
b5fa752b78 GOB: Keep the mouse responsive while waiting for the frame to end 2012-07-30 01:24:18 +02:00
Sven Hesse
1cb6cc0218 GOB: Don't crash when drawPackedSprite() can't open the sprite 2012-07-30 01:24:18 +02:00
Sven Hesse
099a76ea20 GOB: Don't crash when there's no _inter object 2012-07-30 01:24:18 +02:00
Sven Hesse
945115f099 GOB: Don't crash when the engine wasn't fully initialized on exit 2012-07-30 01:24:18 +02:00
Sven Hesse
2d05974b5c GOB: const correctness in SoundBlaster::playComposition() 2012-07-30 01:24:18 +02:00
Sven Hesse
dd35e72a7e GOB: Return proper errors in GobEngine::run() 2012-07-30 01:24:17 +02:00
Johannes Schickel
e8fd51e56b Merge pull request #252 from DrMcCoy/detector_public_reportUnknown
DETECTOR: Make reportUnknown() accessible to inherited AdvancedMetaEngine classes
2012-07-29 16:19:00 -07:00
Sven Hesse
ff0ab5b581 GOB: Don't print a warning when oGeisha_checkData() doesn't find fin.tot
Geisha looks if fin.tot exists to check if it needs to open disk3.stk.
This is completely normal, so don't print a warning.
2012-07-04 00:38:56 +02:00
Sven Hesse
1657b173cc GOB: Add a French DOS version of Geisha
As supplied by misterhands in bug report #3539797.
2012-07-04 00:26:37 +02:00
Sven Hesse
8884d7735c GOB: Give the Geisha detection entries proper languages 2012-07-04 00:23:46 +02:00
Sven Hesse
02375fa1e6 GOB: Report unknown game variant when using the file based fallback detector 2012-06-27 05:14:18 +02:00
Sven Hesse
2c760cb15e DETECTOR: Make detectGameFilebased() return a list of MD5s and file sizes
Since we need a FSNode parent for Mac resource forks, we need to change
signature of detectGameFilebased(), too.
2012-06-27 05:14:18 +02:00
Sven Hesse
95d9052c8d GOB: Fix a very stupid mistake in the Gob1 background track selection
Thanks to salty-horse for catching that. :)
2012-06-23 18:24:29 +02:00
Sven Hesse
50d328af3a GOB: Give Geisha and Fascination fallback entries AdLib feature flags 2012-06-22 18:10:53 +02:00
Sven Hesse
f76416f00f GOB: Add fallback detection entries for Little Red 2012-06-22 18:10:53 +02:00
Sven Hesse
07b17f7116 GOB: Reorganize the detection tables
The big table with it's 330 entries grew far too messy and
unwieldy, so I'm splitting it into several files.

One file for each game, with some exceptions:
- The Playtoons series
- The ADI / Addy 2 series
- The ADI / Addy 4 series
- The Adibou / Addy Junior series
2012-06-22 18:10:53 +02:00
Sven Hesse
ac7fbc4bf2 GOB: _renderFlags & 0x40 means the we should draw borders around hotspots
Probably a debug-only flag
2012-06-22 18:10:53 +02:00
Sven Hesse
76723f4f0f GOB: Clean up the Fascination window hotspot code a bit 2012-06-22 18:10:53 +02:00
Sven Hesse
62cf663957 GOB: Add Surface::drawRect() 2012-06-22 18:10:52 +02:00
Sven Hesse
b1e50b4e30 GOB: _renderFlags & 0x80 means "Do we have windows?" 2012-06-22 18:10:52 +02:00
Sven Hesse
2e16e7fc4c GOB: Add a workaround for the wrong German animal names in Little Red
The DOS, Amiga and Atari version of Little Red come with a small
screen, accessible through the main menu, that lets children read and
listen to animal names in 5 languages: French, German, English,
Spanish and Italian.

Unfortunately, the German names are partially wrong. This is
especially tragic because this is a game for small children and
they're supposed to learn something here. So I deem fixing this a
very good idea.

Just to be sure, someone should probably look over the French,
Spanish and Italian words too.
2012-06-18 17:44:04 +02:00
Sven Hesse
892ca3a9c5 GOB: Don't loop /all/ sounds in Little Red
Just the title music... *cough*
2012-06-18 17:14:04 +02:00
Sven Hesse
b7ae6a93a9 GOB: Fix a segfault when quitting AJ's World 2012-06-16 17:20:45 +02:00
Sven Hesse
026ef70b87 GOB: Add a SaveLoad class for AJ's World
Only contains a temp sprite handler ("menu.inf") for now.
This fixes the graphical glitch after clicking on the cloud.
2012-06-16 15:23:31 +02:00
Sven Hesse
6d01b51755 GOB: Add a proper GameType for AJ's World 2012-06-16 15:08:10 +02:00
Sven Hesse
3d7c6a2710 GOB: Correct the name of A.J.'s World of Discovery 2012-06-16 15:06:07 +02:00
Sven Hesse
ba07c7678a GOB: Add Little Red to the gob games list comment 2012-06-16 04:06:21 +02:00
Sven Hesse
08c0fa9105 GOB: Remove a superfluous semicolon 2012-06-16 03:04:35 +02:00
Sven Hesse
a24cb57c9d GOB: Loop the Little Red title music 2012-06-16 02:58:53 +02:00
Sven Hesse
f917db972e GOB: Shut up Little Red's warning about gob func 1 and 2
Those set some DOS timer interrupt related to sound.
Seems to be unnecessary for us.
2012-06-16 01:50:31 +02:00
Sven Hesse
54f7d9c557 GOB: Use the full title for Little Red Riding Hood
While the other parts in the series are mostly hard-coded,
they are small, simple and monotone enough that I might just
think about implementing them some day...
2012-06-16 01:44:57 +02:00
Sven Hesse
1666d9da82 GOB: Fix mult object collision detection I broke in 2007
This fixes the sidescroller levels (like the bees and butterflies)
in Little Red.

I really wonder if this breakage had other effects too...
2012-06-16 01:39:14 +02:00
Sven Hesse
5961609a56 GOB: Add a resource size workaround for Little Red
This fixes the missing resources in the screen where Little Red
has to find the animals' homes for them.
2012-06-15 15:09:01 +02:00
Sven Hesse
7632246264 GOB: Implement Util::getKeyState() for Little Red
This makes the bees level playable, removing the "lock-up".
Collision detection between Little Red and the bees and butterflies
doesn't work yet though, so they're just flying through her.

Nevertheless, the game seems to be completable now.
2012-06-15 13:35:46 +02:00
Sven Hesse
f16cc050e9 GOB: Add class Inter_LittleRed
This fixes the crash when selecting an animal in the "Languages"
screen.

Interestingly, the German names of the animals are partially
wrong... And for "Das Schmetterling" (sic!), even the recorded
speech sample is wrong.
2012-06-15 01:14:49 +02:00
Sven Hesse
59b2a84552 GOB: Add a proper GameType for Little Red 2012-06-15 00:51:03 +02:00
Sven Hesse
3b8b3c4caf GOB: Fix a failed assert in Litte Red Riding Hood 2012-06-14 23:40:18 +02:00
Sven Hesse
5ae4ed09ea GOB: Fix an uninitialised value in Geisha's Penetration 2012-06-14 15:33:30 +02:00
Sven Hesse
0e6fb43779 GOB: Remove useless variable 2012-06-14 15:27:37 +02:00