A downloadable tool for Windows, macOS, and Linux
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:
- Memory area (from $0000 to $FFFF)
- Preview of 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:
- 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)
- Basically Music player (tune VIDemo by Heretic <?> (c) Chaos Production)
- Charles Deenen's player (tune "Infinity" by Reyn Ouwehand (c) 1989 Scoop Designs)
- 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.)
- 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)
- 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)
- Johannes Bjerregaard's player (tune "Magnetic Fields" by Johannes Bjerregaard (c) 1986 Ace Crackings)
- 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)
- 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)
- 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
- 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)
- 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)
- 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)
- 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)
- Voice Tracker player (tune "3LUX Intro" by The Bill (c) 1993-95 3LUX")
- Yip Megasound music editor (tune "Megasound Musiceditor" by Jori Olkkonen (Yip) (c) 1988 C=lehti/Tecnopress)
Discord channel: #jc64dis
Patreon support: Ice Team
This project uses:
YourKit Java Profiler
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||27 days ago|
|Platforms||Windows, macOS, Linux|
|Tags||Commodore 64, disassember, mos6502, z80|
Click download now to get access to the following files:
- JC64dis 2.527 days ago
- JC64dis 2.4Dec 18, 2022
- JC64dis 2.3Oct 01, 2022
- JC64dis 2.2Aug 27, 2022
- JC64dis 2.1Jun 12, 2022
- JC64dis 2.0Apr 04, 2022
- JC64dis 1.9Mar 22, 2022
- JC64dis 1.8Feb 17, 2022
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!
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
Very feature full yet still very promising. Is there a place like a Discord channel where people can talk & ask questions?
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.
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
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.
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..