Commit Graph
1672 Commits
Author SHA1 Message Date
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
Sven Hesse 1782012f9f GOB: Clean up the Penetration map handling a bit 2012-06-06 03:33:35 +02:00
Sven Hesse b83ac21f60 GOB: Implement Penetration submarine shooting and dying
Shots don't result in bullets yet, though
2012-06-06 03:33:35 +02:00
Sven Hesse 93dda1b227 GOB: const correctness 2012-06-06 03:33:34 +02:00
Sven Hesse 4392e4d7aa GOB: Implement health gain/loss for mouths 2012-06-05 17:01:40 +02:00
Sven Hesse 7377640668 GOB: Play sounds for mouths and shields in Penetration 2012-06-05 16:21:36 +02:00