Infiltrator Disassembler for C64

This Commodore 64 software tool allows you to completely reverse engineer any assembly language listing with several extra additions. It comes included with the ability to load a .PRG image, VICE snapshot, has a hex disassembler, a Disassembler, Sprite memory view, bitmap view, Character sets and screens view, and a SINE Analysis view. To get these buttons to work, you must first load the PRG or VICE snapshot with the tool.

The Hex View

Clicking on the HEX button opens up the Hex view window. This area is divided into several tabs for a 16 Bytes View, 32 Bytes View, CIA1/CIA2/VIC-II, and CRAP view. The 16 Bytes View is set by default since it is standard for the Commodore 64. In this area you can view the file’s hexadecimal address (listed as bytes going across), and in the far right is a section reserved for the PET Ascii bytes. This is very helpful to locate messages in files, character data, and so much more. The 32 Bytes expands it to read even more bytes. The CIA window allows you to view the CIA (Complex Interface Adapter) areas reserved for this file.

The Disassembler

This window allows you to view the assembly language listing for the file loaded into the tool. You will first need to load the file into this section. Click on the Disasemble button first. Wait until the Progress bar at the bottom right is filled with green then click on the tab Diassembler. You can click each tab Options, Disassembler to move back and forth. Now the window fills the file’s contents. You can use the mouse to navigate the scroll bar, the middle mouse button to cycle through the contents, or the Page Up and Page Down keys to quickly scroll through a listing.

Now there are two windows divided for the Disassembler. The panel on the left contains a drop down that allows you to quick move through memory banks. These are labeled as JUMP JAMs, JUMP BADs, CALL JAMs, CALL BADs, Branch JAMs, Branch BADs, Interpreter 1, Interpreter 2, Interpreter 3, Sequence 1, Sequence 2, Sequence 3, Snippets/Startup, CIA 1, CIA 2, Graphics, Interrups, Sprites, SID, Screen RAM ($0400), Color RAM ($D800), Clear Screen, Search References, and Quick Search. Selecting any of these will load up the found memory addresses matches that specific selection. So for example, you could easily see all of the Sprites locations by choosing Sprite and clicking on the corresponding memory location. Once that memory location is chosen, the window on the right will update to point to the correct memory address you have clicked on. If you look at the top of the right window (below the tabs), you will see several smaller black divides that list a range of memory addresses. Clicking on any of these will quickly navigate you to that correct bank of memory.

The Sprites window

Opening up this window, by clicking on the SPR button will launch the Sprites window. In this section you can get a visual display of the sprites found in the file. There are several areas of interest here. The top part contains a tab for Single Color and Multi Color sprite definitions. Below this is the Background Color for the sprite area. Then the Color can be selected for the corresponding sprite in the next selection down. Going down from here is an area titled Memory that divides the memory into values ranging for $000 – $FFFF (in 4096 bytes for each section). This allows you to quickly view a row of sprites (0-7). Once you click on the Memory area on the left, you will get a snapshot of sprites 0-7 (going to the right), and sprites 0-7 going vertically. Finally there is a button for Export as BMP to allow you to save a bitmap copy of the sprites contained here.

The BMP window

Using the BMP button, you can view a screenshot of bitmap data found in the loaded file. The window is divided into several tabs listed as Bitmaps Single Color, Bitmaps Multicolor Char, and Bitmaps Multicolor (Koala). Going down in the left panel you will see color settings for the Background and regular Color. Below this is an area titled Memory that allows you view large segments of data loaded into Infiltrator. This can often be used to locate startup title screens. Finally there is an Export as BMP button used to save the data contained here. The Bitmaps Multicolor Char allows you to see the data set as multicolors, and the Bitmaps Multicolor (Koala) contains the Koala snapshots. The window on the right loads in the appropriate data from the file.

The Character Set window

This section is divided into two tabs labeled, Screen and Charset/Single Color, and Screen and Charset/Multi Color. On the right is an area titled RAM Bank which allows you to set the appropriate bank for the data. Colors can be adjusted likewise with the Background and Color selectors. Below this is a section listed as Screen, which breaks down screen memory for the files. Next to this is an area that says Charset to allow you to see the appropriate character set contained in the loaded file. Below this is the ability to save the data as a BMP using the Export as BMP button. In this example, I have loaded in character data for Batman the Movie game.

The SINE Analysis window

This section allows you to view the SID data contained in the file. At the top of the screen is an area divided into several selectors. These are listed as Color Theme, Bytes per Seconds, Begin, End, a button for Play Data as Wave, and a button for Save Data as Wave. Going down on the right side is an area where you can select the SINE wave titled as RAM Bank. Below this is an area called Gridcolors which allows you to change the colors on your display. As usual, the main display is captured in the right window. When you click on the Play Data as Wave button you can often get a strange array of sounds. Be sure to lower your speaker and close your windows as often the audio can be quite creepy since it is bundling together a bunch of data contained in those sections. However if you do locate a specific SID area, it is possible to play the music that exists there.