Disassembling large programs

All 680x0 related coding posts in this section please.

Moderators: simonsunnyboy, Mug UK, Zorro 2, Moderator Team

Captain Atari
Captain Atari
Posts: 277
Joined: Mon Mar 03, 2008 10:33 pm

Disassembling large programs

Postby mlynn1974 » Thu Aug 24, 2017 11:20 pm


Sorry if this has been asked before. I would like to disassemble the HitSquad version of Head Over Heels to allow keyboard controls and possibly redefinable keys so I don't have to play this with a joystick. I know using Steem I can play it with the joystick remapped to keys but I couldn''t do that on a real ST.

Anyway I tried disassembling it with Easy Rider 4 but it seems to output dc.b instead of the actual instructions for about half of the code.
This isn't caused by the code being encrypted as part of the copy protection because MonST can load it fine.

Easy Rider output:
DC.B 'H',$E7,$E0,$E0,'Hz',$00,$12
... continues until MOVE.L A7,$23680 much further down.

MonST output:
MOVEM.L D0-D2/A0-A2,-(A7)
... the first instruction is shown correctly.

Has anyone seen this problem before?

This doesn't seem to be problem because of MOVEM.L because a very simple program is disassembled correctly by Easy Rider 4:
MOVEM.L D0-D2/A0-A2,-(A7)
MOVEM.L (A7)+,D0-D2/A0-A2

On Windows 68kd.exe by Bart Trzynadlowski can disassemble Head Over Heels correctly, but its output isn't a format that can be easily loaded and re-assembled by GenST.
Still got, still working: Atari 4Mb STe, 520STFM, 2.5Mb STF.
Hardware: Cumana CSA 354, Ultimate Ripper, Blitz Turbo, Synchro Express II (US and UK Versions).

Hardware Guru
Hardware Guru
Posts: 2034
Joined: Sat Sep 10, 2005 11:11 am
Location: Kosice, Slovakia

Re: Disassembling large programs

Postby mikro » Fri Aug 25, 2017 2:45 am

I used TT Digger with much more success than Easy Rider. But it takes some time to get used to its UI. ;)

Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm

Re: Disassembling large programs

Postby AtariZoll » Fri Aug 25, 2017 7:09 am

I disassembled about 10 games and TOS 1.04 with Devpac 3. That can be pretty time consuming process - up to couple days for 1 SW.
It is just that MON can not determine is there some 68000 code or just data, so you must enter all data areas manually - and in some cases must give size too for it - for instance in case of address lists it must be l, and then it will set them as labels. In 1 case it appeared that there were too much data areas, more than can fit in MON input buffer, so I needed to split it in 2 parts, and then had extra job to combine 2 S files. As I tried, Easy Rider is nothing better.
However, I really don't see that you need to disasm. some game exec. for smaller changes. You can put your keyboard code to some safe space in RAM and adding just branch there from game. Then you will need Steem Debugger to trace down exact locs where input is read .
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.

User avatar
Mug UK
Posts: 11406
Joined: Thu Apr 29, 2004 7:16 pm
Location: Stockport (UK)

Re: Disassembling large programs

Postby Mug UK » Fri Aug 25, 2017 8:29 am

Use the right-click mouse to toggle between opcode / data view layout. Select the area that you to change, then use the appropriate key combinations as below image.


You can force disassemble a block of data back into code via the Ctrl & X option as well as reformatting the data display via the T key combination, e.g. data into neater lines of text with carriage returns displayed properly.

Also use the attached CONVERT.PRG (by Stew) which will convert an EasyRider disassembly into something a bit more compact (the bulk of spaces are converted to tabs, it's all put back into lower-case) and generally nicer to read through when you import it into GenST.
You do not have the required permissions to view the files attached to this post.
My main site: http://www.mug-uk.co.uk - slowly digging up the bits from my past (and re-working a few): Atari ST, Sega 8-bit (game hacks) and NDS (Music ripping guide).

I develop a free Word (for Windows) add-in that's available for Word 2007 upwards. It's a fix-it toolbox that will allow power Word users to fix document errors. You can find it at: http://www.mikestoolbox.co.uk

Retro freak
Retro freak
Posts: 14
Joined: Sun Jan 14, 2007 5:04 pm
Location: [S]carab^Scoopex

Re: Disassembling large programs

Postby StingRay » Fri Apr 27, 2018 10:58 pm

I tried a lot of the available Atari disassemblers and was satisfied with none! Hence the way I deal with disassembling Atari stuff is as follows: I convert the binary to a standard Amiga executable (I have coded my very own tool for that which handles debug symbols and other stuff) and then simply use ReSource on Amiga! This approach works best when there are not many TOS/GEMDOS calls of course.
We live, we die, we multiply.

Social Media


Return to “680x0”

Who is online

Users browsing this forum: No registered users and 5 guests