Tuesday, 3 May 2016

File parsers

The engine stub has been created and minimal file parsing has been added, more specifically: the engine can now load and parse the graphics.dat file and decompress the images contained into bitmaps on demand, other than that not much more, but at least it's something visual. Also related to files, uncompressing the Dungeon.dat is now possible, but it's contents have not been used up yet. You can check the commits on github if you like, feel free to comment, give feedback ^^. The author (as mentioned in the comments, not the original author), who graciously gave his sources to be worked from, has a handy blog in which describes the file structures and algorithms used on them in detail. That and my mentors' help has been the source of progress.

Link to the github repo:

On a personal note however, regarding development speed, I've spent too much time debugging errors in 30 lines of code today and boy was it frustrating. In my personal opinion I'm making progress very slowly, I would rather it went a lot faster, I'll have to work on being more efficient with my time in the future or I'll finish nothing be the end of the summer.

Regarding other stuff, git has repeatedly got out of my control and me being me, I've gone the easy way and used force push. I'm really glad nobody is working on the same branch, because otherwise I'd have been burned at the stake by now, but hey, at least my history is clean. :D

Edit: As per request, some image to go with the post, (the palette is miss matched, but it's still something).


  1. Could you put a little screenshot to tease us a bit? :D

  2. A little side note: We didn't receive de sources from one of the original authors, but from one awesome hobbyist who rebuilds the sources based on binary analysis. Two thumbs up for his 9+ years of efforts!

  3. I recommend to kill this repo and create new one, which will contain only contents and history of engines/dm directory.

    We specifically enhanced ScummVM build system to support this mode.

    With this you will checkout main scummvm repo, and checkout your dm repo right into the engines/ folder. Then you will avoid hassle of possible rebasing, syncing, etc, while automagically staying with the latest scummvm code

  4. ...and if you need help with making it, please ping me on the IRC