Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in 
CSDb User Forums


Forums > CSDb Entries > Release id #160782 : Tink's Adventure +D
2017-12-09 17:14
Pitcher

Registered: Aug 2006
Posts: 45
Release id #160782 : Tink's Adventure +D

I know many won't read the docs included with the game, And the work involved was more than we ever anticipated, so here's some copy and paste info from the docs about the work involved with the crack :


The master we found was a plain d64 which worked under emulators and this indicates that it might have been deprotected by someone. We don't want to release this without giving relevant credits to the person who presumably removed the protection. In a publication called "The little Black Book Mommy told you about" by The Archiver, there are instructions on how to remove the copy protection for this game. This *could* have been used, so without knowing anything better, we credit him for the small patch.

Let's be honest - this was a bitch! It might not look like much, but it was quite a feat to do it.

A) It's loader uses $80 byte sized "sectors" with a two byte index. Also the consecutive indexes jump over track 18, so invalidating any easy mapping between index and track+sector over index 2cb or thereabout.

B) The same data could go to different places in memory, depending on where in the game it is accessed. This as the data has no load address. Sometimes the load address is set for a file, and sometimes it merely continues filling data where the last file left off. So it's imperative to use the games own pointers before load and updating it after load.

C) The same sector could be part of different files. Sometimes it loaded index x, with the length of 2, and sometimes index x+1, length 1. I needed to make that into two files.

D) The first file of a game section was called with different length for the respective calls. I presume the last sector is init data. For example loading sector x with the length of 0a for init, and length 09 for no init. I needed to make that into two files.

E) The total number of unique combinations of index + length is well over 200. A 1541 can only fit 144 files. So we needed to find a structure to join files or get rid of files. We have found a reasonably smart way to do this and we only use just over 130 files. Having said this, loading the files referenced in the last few sectors will be slow given the time it scans the directory to find them before the load.


Thanks for taking the time to read!
2017-12-09 18:18
6R6

Registered: Feb 2002
Posts: 223
:) Old game loaders can be tricky. They did many innovative things back then to keep hackers away.
2017-12-09 19:46
Bacchus

Registered: Jan 2002
Posts: 74
6R6: Not sure this is done to make it tricky. The $80 sector is with many old games - especially those released for other platforms as well. I have a hunch it's a compatibility thing where they make an abstraction layer to make the same data work on multiple platforms. Tink was also on Atari and they had $80 bytes sectors.

This series of games uses the same core. Some small differences which makes them not binary exact but quite close.

The data loaded is some sort of meta data that scripts what will happen later. Parameter $54 indicates that it's a new file and then it feeds data of what to be loaded to the process. $53 says that it's more data coming up and that data should go starting from where the previous one left off (so no new start adress). But other parameters could be to move objects and so on.

So in short I think they did this for their own sake, and only as a side effect was it difficult for us...
2017-12-09 20:04
Pitcher

Registered: Aug 2006
Posts: 45
Only other thing I can add is, this started getting looked at when I released Zamzara, and that got put out on the 1st of august.

So its been along time in the making, and that wasn't through us being lazy.

I'm sure there's been much blood, sweat and beers gone through to get it to this stage :).

We have joked between ourselves it would have been easier to rewrite the game for what it actually is.
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Mike
GH/MSL/Toondichters
MightyAxle
fieserWolF/Abyss-Con..
kazmat
TCE/Hokuto Force
aNdy/AL/Cosine
Guests online: 61
Top Demos
1 Uncensored  (9.7)
2 Edge of Disgrace  (9.7)
3 Coma Light 13  (9.6)
4 The Shores of Reflec..  (9.6)
5 Comaland 100%  (9.6)
6 Lunatico  (9.6)
7 Incoherent Nightmare  (9.5)
8 Wonderland XII  (9.5)
9 Comaland  (9.5)
10 Wonderland XIII  (9.5)
Top onefile Demos
1 FMX Music Demo  (9.6)
2 Merry Xmas 2017  (9.5)
3 Synthesis  (9.5)
4 Pandemoniac Part 2 o..  (9.5)
5 Daah, Those Acid Pil..  (9.5)
6 Dawnfall V1.1  (9.5)
7 Dawnfall  (9.4)
8 Treu Love [reu]  (9.4)
9 Field Sort  (9.4)
10 KAOS 64  (9.3)
Top Groups
1 Oxyron  (9.4)
2 Booze Design  (9.4)
3 Censor Design  (9.3)
4 The Judges  (9.3)
5 Crest  (9.3)
Top Fullscreen Graphicians
1 Veto  (9.8)
2 Joe  (9.8)
3 Mirage  (9.7)
4 Jailbird  (9.6)
5 Hein  (9.5)

Home - Disclaimer
Copyright © No Name 2001-2018
Page generated in: 0.653 sec.