1527 Commits

Author SHA1 Message Date
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
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
Sven Hesse
ccad083ab9 GOB: Fix a "condition depends on uninitialised value" in Geisha 2012-06-14 15:24:49 +02:00
Sven Hesse
198c116061 GOB: Fix stupid typo/bug I introduced in 2007
Luckily, it apparently didn't have any visible symptoms...
2012-06-14 14:40:33 +02:00
Sven Hesse
f87e8b53f3 GOB: Fix an AmigaOS compile error
Should close bug #3534287.
2012-06-11 15:11:15 +02:00
Sven Hesse
a3db17033f GOB: Update list of games in the comment 2012-06-11 15:11:15 +02:00
Sven Hesse
f538b76586 GOB: Don't recalculate the AdLib frequencies table on every player reset 2012-06-11 15:10:59 +02:00
Sven Hesse
fe44939eba GOB: Play the music on the title screen of Gob1 EGA
The EGA version of Gobliiins comes with an MDY track.
While the original doesn't play it, we thought it might
be a nice idea to play it nevertheless.
2012-06-11 06:20:34 +02:00
Sven Hesse
a64e8a6d30 GOB: Hook up the MDY player in Geisha 2012-06-11 05:18:07 +02:00
Sven Hesse
8548dea13d GOB: Hook up the MDY player in Fascination 2012-06-11 05:18:06 +02:00
Sven Hesse
03ef6689c0 GOB: Rewrite the AdLib players
This is a complete rewrite of the AdLib players for ADL and MDY/TBR
files in the Gob engine.

Major changes
1) The AdLib base class is now completely separated from all file
   format code and can theoretically be used by any OPL2-based
   format (within reason)
2) The new code is far better documented and more readable
3) The MDY player now actually works. The MDY/TBR format is
   in reality the MUS/SND format created by AdLib as a simpler
   alternative to the ROL format
4) Since the MAME emulator is quite buggy and leads to noticable
   wrong percussion in the Gobliins 2 title music, the new AdLib
   player will try to create a DOSBox OPL. If it's not compiled in,
   or if the user configured opl_driver to "mame", it will print
   out appropriate warnings.
2012-06-11 05:18:06 +02:00
Eugene Sandulenko
ec92a867da Merge pull request #243 from lordhoto/cursor-no-scale
ALL: Replace cursorTargetScale in OSystem API with a simple "do not scale" logic.
2012-06-08 23:20:28 -07:00
Sven Hesse
c414baa35d GOB: Implement shooting in Penetration
Geisha's Penetration minigame should be complete now.
This also means that Geisha is now basically complete.

The only thing missing is the MDYPlayer, but since the
music is only played once during the title screen, and it
has a PCM-based fallback (which is currently played), this
is low priority.
2012-06-08 05:16:01 +02:00
Sven Hesse
421b93ce05 GOB: Rewrite "pathfinding" and implement moving enemies
Since shooting does not yet work, we're just getting mauled by them...
2012-06-08 03:16:53 +02:00
Sven Hesse
c37577a950 GOB: Hook up the Penetration minigame in the cheater 2012-06-07 04:29:10 +02:00
Sven Hesse
3d537e763c GOB: Handle Penetration shooting animations more cleverly
Still no bullets, though :P
2012-06-07 04:21:29 +02:00
Sven Hesse
95454ab52c GOB: Better controls in Geisha's Penetration
You can actually move diagonally now
2012-06-07 04:21:29 +02:00
Sven Hesse
8c3d2fc741 GOB: Add a way to reopen currently opened IMD/VMD videos
This is a workaround for how Lost in Time behaves in combination
with changes I made to the DataIO code for running Urban Runner
on low-memory devices.

Urban Runner's intro are far to big to have them copied into
memory for these devices, so I made the DataIO code return a
SafeSeekableSubReadStream into the opened archive stream instead.
Unfortunately, Lost in Time might not close a video file when it
closes the data file which it was originally in, especially when
loading a saved game. Since the video player needs to be able to
gaplessly continue a video and there does not, by itself, close
the video if not requested by the scripts, this leads to reading
out of an already closed stream in certain cases.

So, to worka round this issues, the video player tries to reopen
each currently opened video after a data archive was closed, to
make sure that that video is still available. If not, the video
is closed.
2012-06-07 00:29:46 +02:00
Sven Hesse
4288edd523 GOB: Add the original broken German as comments 2012-06-06 19:21:21 +02:00
Sven Hesse
5913b9b839 GOB: Draw info texts in Penetration
The German strings have been changed from the original, to fix the
horribly broken German.
Someone should probably check the Italian and Spanish strings too.
2012-06-06 19:03:23 +02:00
Sven Hesse
78c9c72691 GOB: Set Penetration floor palettes and fade in/out 2012-06-06 16:50:22 +02:00
Sven Hesse
04d0ec8d03 GOB: Implement exiting floors 2012-06-06 03:33:35 +02:00