A downloadable tool for Windows, macOS, and Linux

Download NowName your own price

JC64dis (next generation C64 disassembler) is an iterative disassembler for MUS, SID, CRT, VSF, MPR and PRG file of Commodore 64, Commodore Vic 20, Commodore 128, Commodore Plus4 with MOS 6502 family processors. It supports experimental even the AY file of Z80 processors.

It works with 3 area:

  1. Memory area (from $0000 to $FFFF)
  2. Preview of source
  3. Source

You can formatting the source using the commands in a way to produce a source like if you were writing it in a text editor.

Labels and some comments are created automatically, but you can customize all (the program has almost 270 user options to choose).

It supports output (and compilation back throw them) of those compiler:

  • Dasm
  • TMPx
  • Ca65
  • Acme
  • KickAssembler
  • Tass64
  • Glass (Z80)

In the video you can see a true session of usage where a binary is reverse engineered into a source that can be compiled again.

Binary are in jar (java) or specific for Windows (win32 o win64).

If you start using it, you cannot go back to previous tool you used before!
JC64dis speed up your reverse engineering analysis by a 10 factor at least.

Source code at: https://github.com/ice00/jc64

Provided example obtained from reverse engineering some PSID files:

  • Aleatory Composer's player (tune "Sigma" by V.H.Berry (c) 1989)
  • Americana's player (tune "The Dark SideHalley Mission" by ? (c) 1986 Americana)
  • Ariston music editor (tune "Dark Side" by Wally Beben (c) 1988 Incentive)
  • Background Music Editor (tune "Escape from New York" by ? (c) 1986 Crackman Crew)
  • Chris Murray's player (tune "Henry's House" by Chris Murray (c) 1984 English Software)
  • Clever Music's player (tune "Fairlight" by Graham Jarvis & Rob Hartshorne (c) 1986 The Edge)
  • Commodore Cracking Crew Music Editor (tune "Trans-X" by Richard S. (Zap) & Pex T. (Zax) (c) 1987 Commodore Cracking Crew)
  • DoubleTracker's player (tune "Brainwash #1" by Alex (c) 1993 Citadel)
  • Electrosound 64 player (tune "Mission of Mercy" by Peter Clarke (c) 1986 Peter Clarke)
  • Garry Kitchen's GameMaker (tune "The William Tell Overture" by Alex DeMeo & Stephen Gaboury <?> (c) 1985 Activision)
  • Georg Brandt's player (tune "Odissea Veneziana" (c) 1986 64'er/Markt & Technik)
  • Georg Grandt Rhythm CS (tune "RPS-Demo" (c) 1986 64'er/Markt & Technik)
  • Georg Brandt's player with digi (tune "Barsenfieber" (c) 1989 Falken Verlag)
  • Ivan Del Duca's player (tune "Modulus" by Ivan Del Duca (c) 1988 Systems Editoriale)
  • Kawasaki Synthetizer player (tune "Major" by Ryo Kawasaki (c) 1983 Sight&Sound Music Software)
  • Keith Bowden's player (tune "Roundabout" by Keith Bowden (c) 1984 Pan Books)
  • Master Composer player (tune "Maniac" by Paul Kleimeyer (c) 1983 Access Software Inc.)
  • Matt Gray player (tune "Serpent Demo" by Matt Gray (c) 1987 Matt Gray)
  • Music Assembler player (tune "MC_01" by Marco Swagerman (c) 1988 Dutch USA Team )
  • Music Assembler player (tune "Magazine Intro Tune" by Reyn Ouwehand (c) 1989 Reyn Ouwehand
  • Music Mixer player (tune "Michael" by Arkadiusz Zych (Smart Monkey) (c) 1991 Silver Dream
  • Music Works (tune "I Play Football Champ" by Ivan Venturi (c) 1992 Simulmondo)
  • Neil Brennan's player (tune "The Way of the Exploding Fist" (c) 1985 Melbourne House)
  • Novaload player (tune "Elite Loader" by Mark Cooksey (c) 1985 Elite)
  • Rob Hubbard's Companion player (tune "Synth Sample III" by Rob Hubbard (c) 1985 Rob Hubbard)
  • Rockmonitor II player (tune "Rockmonitor 2" by Marco Swagerman & Oscar Giesen (c) 1987 Dutch USA Team)
  • RockMonitor V (tune "Rockmonitor 5 Demosong" by Oscar Giesen (OPM) (c) 1988 Dutch USA Team)
  • Ryo Kawasay player (tune "Kawasaki Synthesizer Theme Song" by Ryo Kawasaki (c) 1983 Sight&Sound Music Software)
  • SID Sequencer's player (tune "Triad" by V.H.Berry (c) 1988)
  • Soprol player (tune "Hollywood Poker" by Holger Gehrmann (c) 1987 Golden Games)
  • Soundcontrol player (tune "Soundcontrol 2" by Holger Gehrmann (c) 1985 HG-Software Systems)
  • SoundMaster player (tune "Last Ninja Mix" by Michiel Soede (c) 1988 SoedeSoft)
  • SoundMonitor player (tune "Shades (filter corrected)" by Chris Hülsbeck (c) 1986 Markt & Technik)
  • Stephen Ruddy player (tune "Ghouls 'n' Ghosts" by Tim Follin (c) 1989 US Gold/Capcom)
  • Stuart Taylor's player (tune "Walk of Life" by Stu Taylor (c) 198? Stu Taylor)
  • Synth Executor player (tune "Nobody's Diary" by Georg Feil (c) 2007 Georg Feil)
  • Synthicat's player (tune Abyss" by Karsten Kekert (Synthicat) (c) 1987 Kingsoft)
  • Ten-Tracker player (tune "Ten Tracker Test" by Sebastian Bachlinski (Moog) (c) 1991 Keen Acid)
  • The Game Creator player (tune "Mind Control" by David & Richard Darling (c) 1984 Mastertronic)
  • Voice Tracker player (tune "3LUX Intro" by The Bill (c) 1993-95 3LUX")
True example of player source code obtained from binary:


Discord channel: #jc64dis

Patreon support: Ice Team

---

This project uses:

YourKit Java Profiler

YourKit

YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications.

YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, YourKit YouMonitor

--- 

This is the estimated value of JC64dis version 1.9:


---

JSIDPLAY2 - SIDLD patch file for generate the BIN file to use from JC64dis by listening to PSID file (Compiled program as torrent file)

Example of how to use patched JSIDLAY2:

Updated 3 days ago
StatusReleased
CategoryTool
PlatformsWindows, macOS, Linux
Rating
Rated 4.0 out of 5 stars
(1)
AuthorIce Team
TagsCommodore 64, disassember, mos6502, z80

Download

Download NowName your own price

Click download now to get access to the following files:

jc64dis-java.zip 12 MB
jc64dis-win64.zip 50 MB
jc64dis-win32.zip 48 MB
jc64dis-win.zip 12 MB
jc64dis-installer.zip 13 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

Hi! Thanks for this tool, it's getting better all the time. One little tweak I'd love to see is to have only one space between the opcode and data, instead of two. Great work, it works really well!

Thanks.

I will add an option in next version

ok, there is a little trick in this.

Actually it is already used 1 char of separator for the longest possible opcode that is NOOP (undocumented), so all the others get 2 chars for having the right alignment (this is why 2 was the min allowed).

In this case I will have to "force" that when 1 char is used, NOOP potentially will break the aligment (but this will not be a problem as it not have operands) and comments should adjust themself.

Ok, some NOOP has operands, however implementation works

(2 edits)

Very feature full yet still very promising. Is there a place like a Discord channel where people can talk & ask questions?

(+1)

hi,

you have to open the block comment and delete the contents. On saving the program will remove the comment.


Just created one: https://discord.com/channels/917434373442269204/917434373442269207

Thanks. Link doesn't work. I think if you provided an "invite link" it would work.

(+1)

https://discord.gg/8br52Wv6KE

This is a great tool. Is there a way to stop it detecting the SID frequency tables? Or at least to allow the labels and comments to be deleted? It's very annoying to have labels and comments that can't be deleted no matter how hard you try.

Options added in git source. Will be available in 1.6 version. Thanks

Thanks Stefano!

Wow ... I am impressed. Trying to run it on a M1 Mac and it seems to work...  Trying to find my way through the UI now.

Good. Thanks

Nice update!

Thanks.

Near to come the support for patching the memory while disassembling

Expect version 0.8 soon (being testing right now). Version 0.7 has a (wrong) 20KB limit instead of 65KB in input file.


Added even new features..