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


Forums > C64 Coding > dongle emulation in VICE
2016-03-11 18:21
blacky

Registered: Sep 2007
Posts: 41
dongle emulation in VICE

Hiya,

Recently progress on modularizing the ports hardware emulation in VICE has got to the point where we can start emulating tape port, userport and joy port dongles.

This would allow original dongle protected versions of apps/games to run without any change.

I would like to request information on any kind of dongle, specifically how they work (schematic or respones from the device would be nice), so we can add emulation for those dongles.

The tape-sense dongle (as used by access games) is already in the current trunk.

Signed, Marco van den Heuvel.
2016-03-11 21:16
Six

Registered: Apr 2002
Posts: 287
DTL-Basic dongle? Details here: http://sid.fi/~tnt/dtl/ curteousy of TNT.
2016-03-12 11:53
AlexC

Registered: Jan 2008
Posts: 293
Does it mean The Final Chesscard will be emulated ;) as it is considered probably the most advanced dongle protection on c64 ever made.

If you have implemented the tape port based dongle emulation you are basically left with emulation of dongles for joystick port. The idea is basically the same, the port is just different. The one software that used it and it comes to my mind immediately is The Compression Kit (if I get an original copy finally I will be able to tell more about it).

The rest is probably case by case analysis AFAIK. The DTL Jetpack could be considred advanced comapring to above cases. Here is interesting thread about it: DTL Jetpack BASIC

Another "dongle" type is emulated already: Calc Result from handing since to run it (early version) you need both cartridge and a floppy disk.

If you consider Mikro Assembler as a dongle (since there is no need to map the software into IO space otherwise than a copy protection scheme) it is another one working already under Vice.

Last but not least: this is awesome idea and thank you for your work blacky :)
2016-03-12 19:30
blacky

Registered: Sep 2007
Posts: 41
Quote: DTL-Basic dongle? Details here: http://sid.fi/~tnt/dtl/ curteousy of TNT.

Thanks, I'll be looking into that one.

I'm also looking into the paperclip 64 joyport dongle.

I'll post here any results on my attempts.
2016-03-12 21:07
blacky

Registered: Sep 2007
Posts: 41
Quote: Does it mean The Final Chesscard will be emulated ;) as it is considered probably the most advanced dongle protection on c64 ever made.

If you have implemented the tape port based dongle emulation you are basically left with emulation of dongles for joystick port. The idea is basically the same, the port is just different. The one software that used it and it comes to my mind immediately is The Compression Kit (if I get an original copy finally I will be able to tell more about it).

The rest is probably case by case analysis AFAIK. The DTL Jetpack could be considred advanced comapring to above cases. Here is interesting thread about it: DTL Jetpack BASIC

Another "dongle" type is emulated already: Calc Result from handing since to run it (early version) you need both cartridge and a floppy disk.

If you consider Mikro Assembler as a dongle (since there is no need to map the software into IO space otherwise than a copy protection scheme) it is another one working already under Vice.

Last but not least: this is awesome idea and thank you for your work blacky :)


If there is any documentation about how the final chesscard works in detail I would be more than willing to add emulation for it.
2016-03-13 10:23
AlexC

Registered: Jan 2008
Posts: 293
This sounds awesome :) Here is a page about it (but I'm sure you've seen it already) https://chessprogramming.wikispaces.com/The+Final+Chesscard . I had some interesting chat about it with Antitrack not long ago so I'd suggest to contact him - he may be able to provide more insight info.
2016-03-13 11:06
tlr

Registered: Sep 2003
Posts: 1714
Quote: This sounds awesome :) Here is a page about it (but I'm sure you've seen it already) https://chessprogramming.wikispaces.com/The+Final+Chesscard . I had some interesting chat about it with Antitrack not long ago so I'd suggest to contact him - he may be able to provide more insight info.

That's not a dongle, it's a full coprocessor board. :)
2016-03-13 14:02
AlexC

Registered: Jan 2008
Posts: 293
I still treat is as a dongle as the software could run without it. Probably there was no need for such specific coprocessor on c64 or PC/AT in the first place.
2016-03-13 21:33
blacky

Registered: Sep 2007
Posts: 41
I added (not yet working) dtl basic dongle emulation to the current trunk of VICE.

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.

Any help with more information, or fixing the emulation is appreciated.
2016-03-13 23:01
blacky

Registered: Sep 2007
Posts: 41
I added (not yet working) paperclip64 dongle emulation.

The current emulation does the following:

1- wait for the bit 4, 3 and 2 of the joystick port to become xxx000xx
2- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx
3- wait for the bit 4, 3 and 2 of the joystick port to become xxx111xx
4- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx
5- set the first bit-pair of the key on bits 1 and 0 of the joystick port.

The key sequence is : 02 00 00 01 03 02 01 03 02 01 02 01 02 01 02 00
01 02 00 01 03 03 02 00 00 00 00 00 00 00 01 03
03 02 00 01 02 00 01 02 01 02 01 02 01 03 02 01
03 02 00 00 01 03 03 03 03 03 03 03

After setting the first bits of the sequence the following needs to happen before setting the next bit:

1- wait for the bit 4, 3 and 2 of the joystick port to become xxx111xx
2- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx

Be aware that the current emulation keeps the 'old' bits set between steps 1 and 2.

The emulation 'shows' the correct bit pattern when using the monitor to check what the code gets from the port,
but it does not work (good enough) for the actual software.
2017-02-06 19:24
Zer0-X

Registered: Aug 2008
Posts: 78
Quote: I added (not yet working) paperclip64 dongle emulation.

The current emulation does the following:

1- wait for the bit 4, 3 and 2 of the joystick port to become xxx000xx
2- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx
3- wait for the bit 4, 3 and 2 of the joystick port to become xxx111xx
4- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx
5- set the first bit-pair of the key on bits 1 and 0 of the joystick port.

The key sequence is : 02 00 00 01 03 02 01 03 02 01 02 01 02 01 02 00
01 02 00 01 03 03 02 00 00 00 00 00 00 00 01 03
03 02 00 01 02 00 01 02 01 02 01 02 01 03 02 01
03 02 00 00 01 03 03 03 03 03 03 03

After setting the first bits of the sequence the following needs to happen before setting the next bit:

1- wait for the bit 4, 3 and 2 of the joystick port to become xxx111xx
2- wait for the bit 4, 3 and 2 of the joystick port to become xxx010xx

Be aware that the current emulation keeps the 'old' bits set between steps 1 and 2.

The emulation 'shows' the correct bit pattern when using the monitor to check what the code gets from the port,
but it does not work (good enough) for the actual software.


There might be two different dongle revisions. I have a version of PaperClip that checks bit 0 from dc01 and uses an extra eor-table if needed.

Also the key squence is looping and 64 bit-pairs long. The eor-routine dismisses the last four:

02 00 00 01 03 02 01 03 02 01 02 01 02 01 02 00
01 02 00 01 03 03 02 00 00 00 00 00 00 00 01 03
03 02 00 01 02 00 01 02 01 02 01 02 01 03 02 01
03 02 00 00 01 03 03 03 03 03 03 03 xx xx xx xx
then restart

http://oms.wmhost.com/PaperClipVerE.zip
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
Scooby/G★P/Light
Apollyon/ALD
DnP
kbs/Pht/Lxt
Barfly/Powers of Pain
CreaMD/React
Hagar/The Supply Team
Nordischsound/Hokuto..
Fishbone/The Vegetab..
Guests online: 150
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 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
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 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (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 Original Suppliers
1 Derbyshire Ram  (9.5)
2 Black Beard  (9.4)
3 hedning  (9.2)
4 Baracuda  (9.1)
5 Irata  (8.5)

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