Jump to navigation Jump to search
- make a clean implementation of double-buffering, with centralized updateScreen(). This would significantly deviate from the original engine, but may be the only way to effectively implement hardware-based effects (like half-brite). Other versions of the engine will surely benefit from a clean approach, too.
- merge input loops: make one input routine for menu, one for dialogue and one for _c_endIntro (possibly merge it with menu). It would be probably needed as part of the new double-buffering implementation. Should be worthy to investigate if it can be made before.
- make a real Parser: maybe not strictly necessary but sounds cool :)
Known serious issues:
- Dino sometimes crashes after reduction at Matsushita Lab: the game scripts seems to assign an incorrect y coordinate to the character, crashing the engine.
- Dino crashes when opening the shopping bag in Mitsushita office (not on loadgames) [under investigation]
- Dough crashes when parachuting from monastery (not on loadgames) [under investigation]
Other less relevant issues:
- The Halfbrite spotlight for donna's show is not working: the effect is handled in hardware in the original game, and the current implementation doesn't allow for a clean solution. See General TODO above (double-buffering stuff).
- Characters should walk faster to match the original
- Hiragana code blocks in protection screen should change color when pressed.
- Make proper balloons with rounded corners for dialogues [needs a polygon fill routine]
- Add support for additional delta encoding used for dino, donna, donnatras and dough character faces data, in the 'disk0' file. A 'DLTA' tag is used, following by data size (big endian dword) and the delta encoded data.
- DLTA chunks can be decompressed using the algorithm you can find in section 2.2.2 of this document. Right now the packed bitmap are directly transformed into color-index images for ScummVM, but this must be changed to work with DLTA. The right way to do this would be: unpack bitmap (previous frame) into bitplanes, apply DLTA, transform bitplanes into color-index mode for use with ScummVM.