Opened 8 months ago

Last modified 25 hours ago

#15044 new feature request

FREESCAPE: C64 releases are not supported

Reported by: neuromancer Owned by: neuromancer
Priority: normal Component: Engine: Freescape
Version: Keywords:
Cc: Game:

Description

Commodore 64 freescape games are not supported at all. There is some code for Driller, however, there are a few important blockers:

  1. Lack of access to the original games: the games are heavily protected and the original file access is very hard. Only certain releases are unprotected and can be read directly. There is some code for disable the protections, but these are usually nested and the code we have is not reliable. The code we have is based on unp64 and it is here: https://github.com/scummvm/scummvm/blob/501cb749e6d942acdcea92a7648cc23b66fb012c/engines/glk/scott/unp64/unp64.cpp#L100
  1. The stipple pattern and title/border images need to be decoded. This is not very hard, but it requires some research to understand exactly how the C64 memory is stored.
  1. C64 music, an important feature of these releases, require to disassemble the executable and reimplement it in the code in order to have it working again. For Driller, the disassembled code with some comments is available here: https://codebase64.org/doku.php?id=base:matt_gray_-_driller

Change History (3)

comment:1 by neuromancer, 4 weeks ago

For the lack of access to the original game data, tapex (https://csdb.dk/release/?id=237663) allows to extract the original data, recreating the original executables with the game data, so this is virtually solved given that access to the tape version is not hard.

The rest of the issues still remains. The title/border images are particular hard to recreate, since they are decompressed when the binaries are executed, so we need to research them. Another option will be to dump them into freescape.dat, but we should avoid that if possible.

Music and sound in general, still need a better understanding of the executables.

comment:2 by somaen, 10 days ago

Priority: highnormal

Changing priority on this as we won't be targeting this for 2.9.0

comment:3 by neuromancer, 25 hours ago

Type: defectfeature request
Note: See TracTickets for help on using tickets.