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 and SAP of Atari 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)
  • Al Lowe's player (tune "Donald Duck's Playground" by Al Lowe (c) 1985 Walt Disney/Sierra)
  • Americana's player (tune "The Dark SideHalley Mission" by ? (c) 1986 Americana)
  • Ariston music editor (tune "Dark Side" by Wally Beben (c) 1988 Incentive)
  • Assassin Sample Mixer (tune Das "Boot" by Oktawian Czyrek (Puma) (c) 1995 Puma)
  • Background Music Editor (tune "Escape from New York" by ? (c) 1986 Crackman Crew)
  • Barry Leitch player (tune "Visage" by Barry Leitch (c) 1988 Barry Leitch)
  • Basically Music player (tune VIDemo by Heretic <?> (c) Chaos Production)
  • Bytemare player (tune "2 Demo Tune" by Stephan Schloepke (Magic Man) (c) 1990 Crazy)
  • Charles Deenen's player (tune "Infinity" by Reyn Ouwehand (c) 1989 Scoop Designs)
  • Chris Grigg player (tune "L.A. Crackdown" by Chris Grigg <?> (c) 1988 Epyx)
  • 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)
  • D.A.I.S.Y. player (tune "Looking for freedom" by Dirk (I.S.M.) (c) 1989 I.S.M.)
  • David (Beerlord) player (tune "Killer Games" by David (Beerlord) (c) 2001 Beerlord)
  • David Dunn player (tune "Elite" by David Dunn & Aidan Bell (c) 1985 Firebird)
  • 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)
  • Future Composer (tune "Battle Valley" by Jeroen Tel (C) 1988 Rack-It)
  • 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)
  • Gilles Soulet player (tune "Albedo" by Gilles Soulet (c) 1988 Myriad)
  • Harald Rosenfeldt's player (tune "Cleopha" by Harald Rosenfeldt (c) 1989 64'er/Markt & Technik)
  • Ivan Del Duca's player (tune "Modulus" by Ivan Del Duca (c) 1988 Systems Editoriale)
  • Jeroen Kimmel player (tune "Think Twice III" by Jeroen Kimmel (Red) (c) 1987 The Judges)
  • Jeremy Thorne player (tune "Pubjumper Mario" by Jeremy Thorne" (c) 1983 Mr. Computer Products)
  • Johannes Bjerregaard's player (tune "Sweet" by Johannes Bjerregaard (c) 1988 Upfront/Starion)
  • Kawasaki Synthetizer player (tune "Major" by Ryo Kawasaki (c) 1983 Sight&Sound Music Software)
  • K-Byte player (tune WarGames by Paul Jaquays (c) 1984 Coleco)
  • Keith Bowden's player (tune "Roundabout" by Keith Bowden (c) 1984 Pan Books)
  • Kenneth W. Arnlod player (tune "Ultima III - Exodus" by Kenneth W. Arnold (c) 1983 Origin Systems)
  • MacGyver/ESV player (tune "Break Dance" by MagGyver (c) 1988 Digitize Design Group)
  • MacMusic player (tune "Every Breath You Take" by Phil Stone (c) 1985 Passport Designs)
  • Mark Trotter's player (tune "Sam's Jam" by Mark Trotter (c) 1984 Abrasco
  • 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)
  • Maurizio Feletto player (tune "Fire-Drill" by Maurizio Feletto (c) 1987 Logic Software)
  • Microrhythm's player (tune "Microrhythm" by Simon Pick (c) 1986 Firebird)
  • Modulator player (tune "Hotel" by Bernhard Arenz (c) 1985 Ariolasoft)
  • 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)
  • Nick Scarim'player (tune "Spy vs Spy" by Nick Scarim (c) 1984 First Star Software)
  • Novaload player (tune "Elite Loader" by Mark Cooksey (c) 1985 Elite)
  • P.A.S.S. (tune "New Years Day" by Bob Landwehr (c) 1985 Parabola)
  • Peter Liepa's player (tune "Bulder Dash" by Peter Liepa (c) 1984 First Star Software) SID|POKEY
  • Power Music player (tune "Delta-Music" by ? (c) 1989 64'er/Markt & Technik)
  • 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)
  • Sequencer player (tune "Kobold" by Thomas Kratzig (c) 1985 64'er/Markt & Technik)
  • Sidplayer64 (tune "Scroll Machine" by Jori Olkkonen (Yip) (c) 1986 Purebyte)
  • SIDDuzz'It DIGI player (tune "Electronic Transfer" by Glenn Rune Gallefoss (c) 2001 SHAPE/Blues Muz)
  • SID Sequencer's player (tune "Triad" by V.H.Berry (c) 1988)
  • Song Writer (tune "Song Writer - REM10" by Jeremy Thorne (c) 198? Jeremy Thorne)
  • 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)
  • SounDemon player (tune "Bojojoing" by Otto Jorvinen (SounDemoN) (c) 2005 Dekadence)
  • 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)
  • Spinnaker Software player (tune "Grandma's House" by Nick Scarim (c) 1984 Spinnaker Software)
  • Stephen Ruddy player (tune "Ghouls 'n' Ghosts" by Tim Follin (c) 1989 US Gold/Capcom)
  • Steve Turner's player (tune "Morpheus" by Steve Turner (c) 1988 Graftgold/Rainbird)
  • 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)
  • The music shop player (tune "Canon in D" by Don Williams ? (c) 1985 Brudenburg Software)
  • Ubik's Music player (tune "Incredible Shrinking Sphere" by Anthony Lees (c) 1989 Electric Dreams)
  • Voicemaster Covox player (tune "Ninja Master" by ? (c) 1986 Firebird)
  • Voice Tracker player (tune "3LUX Intro" by The Bill (c) 1993-95 3LUX")
  • YIP digi (tune "Netherworld" by Jori Olkkonen (Yip) (c) 1988 Hewson)
  • Yip Megasound music editor (tune "Megasound Musiceditor" by Jori Olkkonen (Yip) (c) 1988 C=lehti/Tecnopress)
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:

StatusReleased
CategoryTool
PlatformsWindows, macOS, Linux
Rating
Rated 4.5 out of 5 stars
(2 total ratings)
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 25 MB
jc64dis-win64.zip 63 MB
jc64dis-win32.zip 61 MB
jc64dis-installer.zip 23 MB
jc64dis-win.zip 25 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..