Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user maak ! (Registered 2024-04-18) You are not logged in - nap
CSDb User Forums


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

Registered: Aug 2006
Posts: 61
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 17:18
6R6

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

Registered: Jan 2002
Posts: 154
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 19:04
Pitcher

Registered: Aug 2006
Posts: 61
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
Paladin/G★P
Didi/Laxity
psych
hedning/G★P
t0m3000/ibex-crew
jeroen1328
Mihai
Guests online: 125
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 The Ghost  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.9)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.045 sec.