| |
Six
Registered: Apr 2002 Posts: 293 |
DTL Jetpack BASIC
This was never properly cracked. There's a copy @ http://www.haddewig.de/nogames64/tools.html but it still has dongle protection and won't run. There's a non-protected program on the disk ("ERROR LOCATE"), but the main compiler still needs the dongle to run. There are also no docs.
Why is this one so important to preserve? Because literally LEGIONS of c64 games were written with it.
I had a go at trying to break the protection, and I'm sure I eventually could - but it's a bear.
At the end of each file (and the compiler is compiled with itself, btw) there is a byte sequence. TWO of those bytes indicate whether or not the program is dongle-protected. BUT, fixing a protected DTL-BASIC program is not as simple as changing those bytes. It uses them to calculate a bunch of other values, in multiple places in the runtime library.
The (tape-port) dongle check is also obfuscated, but easy enough to find.
So, this is going to take some serious skill to bust - but once its busted, it opens the door for reversal tools that can be used to resource games like Roadwar 2000.
Any takers? Can I persuade anyone to at least have a look at it? |
|
... 20 posts hidden. Click here to view all posts.... |
| |
blacky
Registered: Sep 2007 Posts: 41 |
(non working) emulation of this dongle is now present in VICE, if any-1 wants to play around with the source code and get the dongle emulation to actually work, be my guest. |
| |
TNT Account closed
Registered: Oct 2004 Posts: 189 |
I made a quick check with the dongle and it looks like toggling cassette sense resets the bit sequence to beginning. That just might be enough to make it work.
Remember that this pin is normally input to C64, so it will usually be pulled up to 5V even if last $01 write tells it should be GND. |
| |
blacky
Registered: Sep 2007 Posts: 41 |
The current emulation does the following:
1- wait for the sense line to go high.
2- wait for the sense line to go low.
3- wait for the write line to go high.
4- wait for the write line to go low.
5- set the first bit of the bit sequence 0010 0100 0000 0010 (0x2402) on the read line.
After setting the first bit of the sequence the following needs to happen before setting the next bit:
1- wait for the write line to go high.
2- wait for the write line to go low.
Be aware that the current emulation keeps the 'old' bit set between steps 1 and 2.
The emulation 'shows' the correct bit pattern when using the 'dongle2.prg' file, but does not work (good enough) for the actual software. |
| |
David Hughes Account closed
Registered: Jul 2016 Posts: 5 |
As the person who wrote DTL Basic several decades ago I'm really surprised and pleased that anyone still cares about it!
I'm also quite impressed that the protection is still doing its job; I only ever came across one person who cracked it.
Though if I could, I'd be pleased to help anyone get around it now.... but I'm not sure I can be much help sadly. |
| |
blacky
Registered: Sep 2007 Posts: 41 |
@David Hughes
Well, it could help if you can shed some light on how the dongle works.
Just to be clear, this is about preservation of the software and usability in an emulator. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
cracking (as in removing/disabling) it should be fairly easy actually... but where is the fun in that? =) |
| |
Fierman
Registered: Feb 2002 Posts: 85 |
There are two different versions of DTL Basic it seems.
A tape one and a disk one. The tape one is not protected by a dongle, but is missing a lot of functionality.
I have the original of the tape here, including manual.
Cleaned tap images:
https://fierman.org/c64/tape/clean.dtl-basic_1983_side_a.tap
https://fierman.org/c64/tape/clean.dtl-basic_1983_side_b.tap
Quick&dirty scan of tapecover+manual:
https://fierman.org/c64/tape/dtl-basic_tape_manual_1983.pdf |
Previous - 1 | 2 | 3 - Next |