Giter Club home page Giter Club logo

doppelganger's Introduction

Doppelganger

This is my attempt at reverse engineering the Doppelganger program that came with the Phantom from Trilogic. Also see Thomas Christophe's project The-Phantom for more information on this project.

I have not used 6502 assembly language in many years so I have had to not only refresh my knowledge of it but also learn the syntax of Kick Assembler - I haven't even done that yet! Many aspects of the C64 architecture I am unfamiliar with, especially peripheral communications. So you can see, I picked the wrong projected to start off with.

When I initally disassembled the code, it was a bit of a mess. Data was interpeted as code and vice-versa. As a result the program crashed when SYS'ed. It took many hours going through the code to tidy it up and change all the raw data to .byte and .text lines. I now have it where the program runs fine and appears to work as intended.

This has been (and still is) a great learning project for me and I am continuing to work my way through it, slowly. I have reaquainted myself with many of my old C64 books which have sat on my bookshelf for many years, unused.

All I have succeded in doing so far is to add a lot of comments to the disassembled code. My plan of attack has been to randomly pick a section of code and comment it as much as I can until I hit a wall, then I move to somewhere else in the code. The quality of my comments varies from, "INY // increase Y by 1" to things that might only make sense to me e.g. ".byte $ab // T 90 deg ccw". Many of my comments are incorrect and this is due to my lack of understanding of C64 / 1541 communications.

It's difficult trying to do this while at the same time, learning how to use the actual IDE / Assembler / Hex Editor etc. At the minute I am using Linux with IDE65xx, C64Debugger and Bless hex editor. I have wasted a lot of time searching for what might be best for my use case but eventually threw in the towel and just got on with doing something.

The audience that this project will appeal to is probably limited right now to about 2 people but if you can help in any way, please do so. BTW, this is my first venture with github so expect some (a lot of) mistakes

20211102_230327_1 resized

doppelganger's People

Contributors

terminalator avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.