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!
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 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)
- 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")
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.
This is the estimated value of JC64dis version 1.9:
Example of how to use patched JSIDLAY2:
Click download now to get access to the following files:
- JC64dis 2.33 days ago
- JC64dis 2.238 days ago
- JC64dis 2.1Jun 12, 2022
- JC64dis 2.0Apr 04, 2022
- JC64dis 1.9Mar 22, 2022
- JC64dis 1.8Feb 17, 2022
- JC64dis 1.7Jan 01, 2022
- JC64dis 1.6Dec 14, 2021
Log in with itch.io to leave a comment.
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.
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
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.
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..