Difference between revisions of "Gob/TODO"

From ScummVM :: Wiki
< Gob
Jump to navigation Jump to search
(Forgot the save name dialog bug)
m (mention TODO for FNT)
 
(103 intermediate revisions by 12 users not shown)
Line 1: Line 1:
== Status ==
{{Infobox_TODO|
Gobliiins 1 is completable. Gobliins 2 is completable with major glitches.
taskname=Gob Engine TODO|
techcontact=[[Gob]] Engine Team|
subsystem=Engine|
}}


== Show stoppers ==
== Bugs, glitches and ToDo's ==
* Alignment fixes (done?)
=== Script bugs ===
* Bargon Attack: Graphical glitch when loading a save made on the Bargon bridge after transforming self (the original actor appears as well).
* Fascination: Some versions have incorrect timing in several places as they used loading time. Fixing the scripts is required in those cases (before entering the lab was the most visible example) - '''Now fixed in Amiga and Atari versions'''
* Fascination: The game sometimes hangs in the parking lot when the card is used directly, without the code. - '''This also occurs in the original exe'''
* Gobliins 2: Leaving Vivalzart's screen and returning after putting the mushroom into the machine yields another mushroom in the inventory. Letting Winkle use that one with the machine locks him up.
* Gobliins 2: In music land, trying to switch the screen should be prohibited by the scripts, but isn't. A workaround keeps ScummVM from crashing and shows a dialog box instead. {{Tracker|id=3155}}
* Gobliins 2: In the bubble screen, the game lets you try to release the prince before acquiring the safety pin, leaving you in an unfinishable state. {{Tracker|id=3392}}
* Goblins 3: 'A Bell' button hotspot disappears. {{Tracker|id=3805}}
* Goblins 3: Chessboard scene reloads after the rat is first used. {{Tracker|id=3986}}
* Goblins 3: Unable to enter the Battlefield. {{Tracker|id=4022}}
* Goblins 3: Unable to progress through queen's throne room. {{Tracker|id=4016}}
* Lost in Time: sprite gets corrupted during a dialogue. {{Tracker|id=3839}}
* Woodruff: Infinite hypnotic CDs. {{Tracker|id=3750}}
* Woodruff: Access to the Laboratory. {{Tracker|id=3751}}
* Woodruff: Wrong code for safe in temple. {{Tracker|id=3777}}
* Woodruff: Bluxtre nut not drawn after leaving it on the ground. {{Tracker|id=3742}}


== Bugs, glitches and todos ==
=== General ===
* Mouse cursor sometimes shown when it shouldn't and vice versa. (Introduced when I changed cursor handling to the CursorManager; my solution isn't all that great, apparently.)
* The number of used jokers isn't saved correctly: you'll always have 5 to spend again after loading. This is a result of using individual files for each save slot and letting the user exit with CTRL-Q (the number of jokers is saved globally for the whole game and only when exiting using the menu).


=== General ===
=== Graphics ===
* Vivalzart: After putting the mushroom in the machine, leaving the room yields another mushroom in the inventory. Letting Winkle use that one with the machine locks him up (script bug, happens in the original as well)
* Well: Saving after only of of the two goblins has been send diving down the well, saving produces a "broken" (unplayable) save
* The save name dialog isn't shown, the input is accepted, though
* Bargon intro is missing scenes
* Graphical glitches in Bargon (incorrect drawing of partly-covered objects and wrong drawing positions)
* Mouse cursor sometimes shown when it shouldn't and vice versa (introduced when I changed it to use the CursorManager; my solution isn't all that great, apparently)
* Animated cursors in Ween and Bargon aren't looping correctly, they blink after every cycle


=== Missing stuff ===
* A few graphical glitches remain:
* Wide surfaces (640x200) & scrolling (needed for Ween and Bargon)
** Goblins 3: double sprite glitch in the queen level {{Tracker|id=3401}}
* Missing opcodes (0x21, 0x84, 0x86, 0x87, 0x88)
** Lost in Time: sprite gets corrupted during a dialogue {{Tracker|id=3839}}
* IMD-stubs (sound?)
** Lost in Time: palette issue with sprites {{Tracker|id=3838}}
** Woodruff: Palette glitch {{Tracker|id=3768}} (Also happens in the original)
** Woodruff: Graphic glitches {{Tracker|id=3848}} (2 of 3 also happens in the original)
** Woodruff: GFX Glitches {{Tracker|id=4491}} (Also happens in the original)


=== Sound ===
=== Sound ===
* Missing soundkeys in the intro (while the snatched-away prince is shown)
* Ween: Wrong speaker sound when putting away items on some machines.
* Wrong neck-twisting sound repeat count in intro
* Fascination: The duration of short sounds is sometimes incorrect. The most obvious problem is the sound of the keys of the phone: the sound is not played for each key (first room). This may be similar to the Ween sound issue.
* Some sounds sounding wrong, negative frequencies
 
* Sounds being cut of wrong, with a click
== Engine-specific tasks ==
* No speech in Bargon intro (.SND-files?)
* Add OBC Support (OBC is the new Script system which used in DEV7)
* Add FNT Support (FNT is the Font format for earlier games (Its already tested in the original Engine when you take an FNT from an older game and insert it into the archives and adjust as an Test the Filename and rename the extension from FNT to LET you can use the old font in an newer GOB game.) So we only have to allow the older Fonts read as an LET file then it should work.


=== Code/Style ===
== File-specific tasks ==
* "Unnamed" functions & vars
=== video.cpp ===
* Stop (ab)using Game::_soundSamples for ADLs
* Add support for other rendering modes (EGA/CGA/Hercules) lega.gdr, l360.gdr, lcga.gdr.
* Code dup (quite a lot actually)


=== Memory ===
=== sound/sound.cpp ===
* Leaks (lots)
* Gobliiins Mac: musmac1.adl isn't played correctly at all.
* My glibc sometimes detects corrupted double-linked list and double frees; not good


== File-specific tasks ==
=== surface.cpp ===
* implement loading of various Picture formats (JPEG,BMP,BRC)
 
=== dbase.cpp ===
* Add support for memo files. A memo file is an external data file .DBT, segmented into "blocks". Each memo field in a record is an index this file.
 
=== inter_v1.cpp ===
* add implementation for case 55 and 56 in o1_padLoad()
 
=== inter_v7.cpp ===
* continue the implementation in o7_initScreen()
 
=== map_v2.cpp ===
* implement case id 65529 in loadMapObjects()
 
== Game-specific tasks ==
 
=== Adi 2 ===
* Add missing opcodes.
* Add support for Applications.
 
=== Adi 4 ===
* Add missing opcodes.
* Add support for Applications. (Geographie kind of works, compared to the main Environment itself)
 
=== Adibou 1 ===
* Implement workaround for German CD version, so that the user can use both Applications 4-6 Years and 6-7 Years. {{Tracker|id=14553}}
** Potential solution: if BOUALL.ITK exists from example from 4-6 Years and you have to copy the 6-7 Years BOUALL.ITK as BOUALL67.ITK, and then if only BOUALL.ITK is found use 4-6 only and if both are found open an Dialog window from ScummVM, which let you choice the the Application you want to play.
** Current Workaround: ScummVM's detection is aware of these two versions, so you can one directory and copy both CD contents into one Folder and you can choice between 4-6 Years and 6-7 Years from the ScummVM Launcher.
=== Adibou 2 ===
* Add Printer support
* Add Microphone support
* Add support for the other Applications (Music, Sciences, English)
 
=== Fascination ===
* Add support to the [[RAC file]], which is used by the protection of the CD version. (not really required, the game works with extracted STKs)
 
=== Inca 2 ===
 
* The (hard-coded) space shooter isn't yet implemented.
* A few graphic glitches remain.
 
=== Little Red Riding Hood ===
 
* Handle direction keys, so that the arcade part is playable
 
=== Playtoons ===


=== gob.cpp ===
* Creation tool is not working properly.
* Reduce kMD5FileSizeLimit from 1MB to e.g. 80 kb (this might require recomputing some MD5s, but is faster, and good enough for finger printing)
* Clicking on a word should spell it, not the first word of the sentence


=== text.cpp ===
=== The Last Dynasty ===
* This file should be removed and is not currently required for compilation but we need to inspect which variables does it set and to which values and convert them to our Config Manager. We should support all video outputs and at least PC speaker and Adlib.


=== video.cpp ===
* Space shooter is hard-coded there, too.
* Add support for other rendering modes (EGA/CGA/Hercules) lega.gdr, l360.gdr, lcga.gdr
* The game currently loops strangely, thanks to the faked shooter return code.
* Make the Segmented VMD resources working


=== mult.h/mult_v1.cpp/mult_v2.cpp ===
=== Urban Runner ===
* Merge Mult_v2::_multData2 and the loose variables in Mult


=== music.cpp ===
* When mousing over the register in the hotel action sequence, the inventory pops up.
* The Gobliins 2 intro music has broken percussions. The stand-alone player plays it correctly, so that bug was most likely produced by me while cramming the player's source into ScummVM.
* Corrupt encoded frames in videos are skipped or masked by original interpreter. Need to do the same.
* Missing commands (0x10, 0x50, 0x60 (+ other?))
** Most of these are now detected and corrected masked, but three cases still remain as of 2011-04-26:
* musmac1.adl from Gobliiins Mac version isn't played correctly at all
*** < 1sec white glitch in video triggered when Max approaches Door in Basement ("mxport2").
*** ~1sec white glitch in video as Adda escapes from warehouse.
*** Large red/orange glitch in Inspector Van Dell video shown after Max complete Pool Hall entry ("sn6").

Latest revision as of 16:02, 9 July 2024

TODO List
Name Gob Engine TODO
Technical Contact(s) Gob Engine Team
Subsystem Engine

Bugs, glitches and ToDo's

Script bugs

  • Bargon Attack: Graphical glitch when loading a save made on the Bargon bridge after transforming self (the original actor appears as well).
  • Fascination: Some versions have incorrect timing in several places as they used loading time. Fixing the scripts is required in those cases (before entering the lab was the most visible example) - Now fixed in Amiga and Atari versions
  • Fascination: The game sometimes hangs in the parking lot when the card is used directly, without the code. - This also occurs in the original exe
  • Gobliins 2: Leaving Vivalzart's screen and returning after putting the mushroom into the machine yields another mushroom in the inventory. Letting Winkle use that one with the machine locks him up.
  • Gobliins 2: In music land, trying to switch the screen should be prohibited by the scripts, but isn't. A workaround keeps ScummVM from crashing and shows a dialog box instead. [Bug #3155]
  • Gobliins 2: In the bubble screen, the game lets you try to release the prince before acquiring the safety pin, leaving you in an unfinishable state. [Bug #3392]
  • Goblins 3: 'A Bell' button hotspot disappears. [Bug #3805]
  • Goblins 3: Chessboard scene reloads after the rat is first used. [Bug #3986]
  • Goblins 3: Unable to enter the Battlefield. [Bug #4022]
  • Goblins 3: Unable to progress through queen's throne room. [Bug #4016]
  • Lost in Time: sprite gets corrupted during a dialogue. [Bug #3839]
  • Woodruff: Infinite hypnotic CDs. [Bug #3750]
  • Woodruff: Access to the Laboratory. [Bug #3751]
  • Woodruff: Wrong code for safe in temple. [Bug #3777]
  • Woodruff: Bluxtre nut not drawn after leaving it on the ground. [Bug #3742]

General

  • Mouse cursor sometimes shown when it shouldn't and vice versa. (Introduced when I changed cursor handling to the CursorManager; my solution isn't all that great, apparently.)
  • The number of used jokers isn't saved correctly: you'll always have 5 to spend again after loading. This is a result of using individual files for each save slot and letting the user exit with CTRL-Q (the number of jokers is saved globally for the whole game and only when exiting using the menu).

Graphics

  • A few graphical glitches remain:
    • Goblins 3: double sprite glitch in the queen level [Bug #3401]
    • Lost in Time: sprite gets corrupted during a dialogue [Bug #3839]
    • Lost in Time: palette issue with sprites [Bug #3838]
    • Woodruff: Palette glitch [Bug #3768] (Also happens in the original)
    • Woodruff: Graphic glitches [Bug #3848] (2 of 3 also happens in the original)
    • Woodruff: GFX Glitches [Bug #4491] (Also happens in the original)

Sound

  • Ween: Wrong speaker sound when putting away items on some machines.
  • Fascination: The duration of short sounds is sometimes incorrect. The most obvious problem is the sound of the keys of the phone: the sound is not played for each key (first room). This may be similar to the Ween sound issue.

Engine-specific tasks

  • Add OBC Support (OBC is the new Script system which used in DEV7)
  • Add FNT Support (FNT is the Font format for earlier games (Its already tested in the original Engine when you take an FNT from an older game and insert it into the archives and adjust as an Test the Filename and rename the extension from FNT to LET you can use the old font in an newer GOB game.) So we only have to allow the older Fonts read as an LET file then it should work.

File-specific tasks

video.cpp

  • Add support for other rendering modes (EGA/CGA/Hercules) lega.gdr, l360.gdr, lcga.gdr.

sound/sound.cpp

  • Gobliiins Mac: musmac1.adl isn't played correctly at all.

surface.cpp

  • implement loading of various Picture formats (JPEG,BMP,BRC)

dbase.cpp

  • Add support for memo files. A memo file is an external data file .DBT, segmented into "blocks". Each memo field in a record is an index this file.

inter_v1.cpp

  • add implementation for case 55 and 56 in o1_padLoad()

inter_v7.cpp

  • continue the implementation in o7_initScreen()

map_v2.cpp

  • implement case id 65529 in loadMapObjects()

Game-specific tasks

Adi 2

  • Add missing opcodes.
  • Add support for Applications.

Adi 4

  • Add missing opcodes.
  • Add support for Applications. (Geographie kind of works, compared to the main Environment itself)

Adibou 1

  • Implement workaround for German CD version, so that the user can use both Applications 4-6 Years and 6-7 Years. [Bug #14553]
    • Potential solution: if BOUALL.ITK exists from example from 4-6 Years and you have to copy the 6-7 Years BOUALL.ITK as BOUALL67.ITK, and then if only BOUALL.ITK is found use 4-6 only and if both are found open an Dialog window from ScummVM, which let you choice the the Application you want to play.
    • Current Workaround: ScummVM's detection is aware of these two versions, so you can one directory and copy both CD contents into one Folder and you can choice between 4-6 Years and 6-7 Years from the ScummVM Launcher.

Adibou 2

  • Add Printer support
  • Add Microphone support
  • Add support for the other Applications (Music, Sciences, English)

Fascination

  • Add support to the RAC file, which is used by the protection of the CD version. (not really required, the game works with extracted STKs)

Inca 2

  • The (hard-coded) space shooter isn't yet implemented.
  • A few graphic glitches remain.

Little Red Riding Hood

  • Handle direction keys, so that the arcade part is playable

Playtoons

  • Creation tool is not working properly.
  • Clicking on a word should spell it, not the first word of the sentence

The Last Dynasty

  • Space shooter is hard-coded there, too.
  • The game currently loops strangely, thanks to the faked shooter return code.
  • Make the Segmented VMD resources working

Urban Runner

  • When mousing over the register in the hotel action sequence, the inventory pops up.
  • Corrupt encoded frames in videos are skipped or masked by original interpreter. Need to do the same.
    • Most of these are now detected and corrected masked, but three cases still remain as of 2011-04-26:
      • < 1sec white glitch in video triggered when Max approaches Door in Basement ("mxport2").
      • ~1sec white glitch in video as Adda escapes from warehouse.
      • Large red/orange glitch in Inspector Van Dell video shown after Max complete Pool Hall entry ("sn6").