English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General > Coders. Releases

 
 
Thread Tools
Old 26 May 2024, 21:41   #1
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Aira Force - an interactive reassembler

I’ve been developing a GUI for the excellent ira “reassembler”. It is available for download for Windows, Mac and Linux at https://howprice.itch.io/aira-force Sorry it doesn't run on Amiga!



The goal was to streamline the iteration time, adding an easy to use intuitive interface. I find it quite useful and will be making it available soon (Edit: Now available at link above).

As requested in the Small IRA Tutorial thread, here’s a little preview video demonstrating the live analysis feature I’m working on: [ Show youtube player ].

This was inspired by Hoffman's steams and associated challenges.

EDIT: The tool does not contain an Amiga emulator; just enough to help the disassembly figure out where to go and what's being accessed.

Last edited by hop; 28 May 2024 at 20:49.
hop is offline  
Old 27 May 2024, 01:30   #2
copse
Registered User
 
Join Date: Jul 2009
Location: Lala Land
Posts: 601
Looking great. I especially like the show documentation option. I do most of mine in Ghidra decompiling to C with the aid of the disassembly, and that'd be a time saver.
copse is offline  
Old 27 May 2024, 13:12   #3
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,835
I’m eager to test it.
kamelito is offline  
Old 27 May 2024, 13:41   #4
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
the tool I wanted to write for 20 years
jotd is offline  
Old 27 May 2024, 15:12   #5
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Quote:
Originally Posted by jotd View Post
the tool I wanted to write for 20 years
If it assists your productivity in any way then I will be very happy indeed.

I'm currently testing on my small test suite of go-to binaries to catch any low hanging fruit. Then I guess I can post a pre-release build here, or stick one on itch.io so it can be better managed. I don't have a website.
hop is offline  
Old 27 May 2024, 19:23   #6
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
itch.io seems to be down so I'll post a Windows package here (EDIT: Removed: See itch.io link in original post). I've let the Linux and Mac builds rot a little, so if you really need one let me know (EDIT: Now available)

There is a readme in the zip, with more info.

Most actions can be performed in 1-3 ways:
1. Keyboard
2. Main menu
3. Context menus

Most keyboard shortcuts can be found by looking at the menu items. There is a list at the bottom of the readme. Hopefully the editing keys are as you expect:

Code:
  Up                                  Select previous line
  Down                                Select next line
  Page Up                             Move up one page
  Page Down                           Move down one page
  G                                   Goto (context sensitive)
  Ctrl+G                              Goto address/symbol/line
  Left                                Navigate backwards
  Right                               Navigate forwards
  C                                   Convert to Code
  D                                   Convert to Data
  T                                   Convert to Text
  R                                   Rename label
  L                                   Add label
  ;                                   Add comment above selected line
                                      (lines can have multiple comments)
  F2                                  Edit comment on selected line
  B                                   Add banner
  P                                   Define pointer
  E                                   Define equate
  Delete                              Delete label/comment/banner/pointer
                                      (context sensitive)
  Esc                                 Close dialogue popup
  Ctrl+F                              Find
  Ctrl+Tab                            Switch window
  etc
The Analysis (WIP) keys should be like most debuggers

Code:
F5 Run
F6 Break
F11 Step Into (no step over or out yet sorry)
F9 toggle breakpoint
etc
The high level interactive disassembly workflow follows the ira workflow:

File > Preprocess… to begin analysis of a new binary and generate the .cnf config file (this is like the project file). I suggest you use a non zero offset and entry for hunk files if you want to use the Live Analysis/Debugger so that the "load" address of the relocated binary doesn't overlap ABSEXECBASE and exception vectors.

Use File > Process with config… to load a previously disassembled binary and process using the config

- Check the output window for any errors or warnings
- Identify code, data and text areas
- Identify missing labels required to allow the code to be reassembled
correctly

A good goal is to get the built-in VASM reassembly working, and ideally producing an identical binary (there may be differences in hunk files due to ordering etc, but binaries should be OK)

Understand the code:
- Rename labels and and comments to aid user code analysis
- Run Live Analysis (noddy 68000 emulator traversal) to auto-identify custom and LVO offsets and identify new code areas

- Use the final disassembly as required e.g. to fix bugs, add features
or optimise

There will be lots of bugs! I have only tested this on a small set of binaries. I have a TODO list several metres long, but I've tried to keep on top of bugs. I have a habit of using asserts and fatals to catch bugs fast, but I've tried to remove most of them from user-dependent code.

If you have any feedback, I'd love to hear it. Please let me know of anything needs to change or doesn't make any sense.

I'll release the source code for this when I have all the basic features in that I want (alpha) or if I stop working on it.

Big thanks to @phx and TTE for all of their support.

Last edited by hop; 30 May 2024 at 13:04.
hop is offline  
Old 27 May 2024, 22:37   #7
copse
Registered User
 
Join Date: Jul 2009
Location: Lala Land
Posts: 601
Out of curiosity, what support have TTE given?
copse is offline  
Old 28 May 2024, 08:05   #8
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Quote:
Originally Posted by copse View Post
Out of curiosity, what support have TTE given?
TTE? Without Hoffman's streams this product would not exist. He and his followers showed me just how much fun it is reverse engineering Amiga software. The first few hours of Action Replay action were a revelation, and I've learned an awful lot about the Amiga from the followers/team chat. They have offered technical advice and QA throughout. Thanks!
hop is offline  
Old 28 May 2024, 08:42   #9
malko
Ex nihilo nihil
 
malko's Avatar
 
Join Date: Oct 2017
Location: CH
Posts: 4,997
Quote:
Originally Posted by hop View Post
itch.io seems to be down so I'll post a Windows package here. I've let the Linux and Mac builds rot a little, so if you really need one let me know. [...]
I propose you to take your 1st post as the "depository" here in eab. Otherwise it will be a headache to keep track of the various releases when the thread will have more than a page
Examples:

Edit : Haven't checked the zip yet, but according to its name, it's 64 bit only. Any plan to compile it for x86 ? It will for sure please the people having fully functional PC that do not intend to buy a new one soon

Last edited by malko; 28 May 2024 at 08:53.
malko is offline  
Old 28 May 2024, 09:00   #10
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Quote:
Originally Posted by malko View Post
I propose you to take your 1st post as the "depository" here in eab. Otherwise it will be a headache to keep track of the various releases when the thread will have more than a page
Thanks. That's great advice. I'll do that now.

Quote:
Originally Posted by malko View Post
Haven't checked the zip yet, but according to its name, it's 64 bit only. Any plan to compile it for x86 ? It will for sure please the people having fully functional PC that do not intend to buy a new one soon
That should be possible. If so, I'll add it to the itch.io page (see original post). EDIT: Added AiraForce-0.6.0-win32.zip to the downloads. Hope this works.

Last edited by hop; 28 May 2024 at 10:18.
hop is offline  
Old 28 May 2024, 13:26   #11
tolkien
AmigaMan
 
tolkien's Avatar
 
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 763
This is awesome. Tried It yesterday for a few minutes but seems a fantastic tool.
Thanks so much.
tolkien is offline  
Old 28 May 2024, 13:56   #12
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
I've just uploaded Linux packages to https://howprice.itch.io/aira-force

Tested on Ubuntu LTS. I'm not really a Linux user, so please report any issues if you are.


Last edited by hop; 28 May 2024 at 15:54.
hop is offline  
Old 28 May 2024, 14:20   #13
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Quote:
Originally Posted by tolkien View Post
This is awesome. Tried It yesterday for a few minutes but seems a fantastic tool.
Thanks so much.
Thank you. I hope you find it useful.
hop is offline  
Old 28 May 2024, 15:35   #14
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Mac dmg now available at https://howprice.itch.io/aira-force

hop is offline  
Old 28 May 2024, 16:34   #15
Cyprian
Registered User
 
Join Date: Jul 2014
Location: Warsaw/Poland
Posts: 192
Quote:
Originally Posted by hop View Post
I’ve been developing a GUI for the excellent ira “reassembler”. It is available for download for Windows, Mac and Linux at https://howprice.itch.io/aira-force
thanks, great tool

Would it be possible to add other 68k binaries, e.g. Atari PRG/TOS ?
Cyprian is offline  
Old 28 May 2024, 17:08   #16
hop
Registered User
 
Join Date: Apr 2019
Location: UK
Posts: 231
Quote:
Originally Posted by Cyprian View Post
Would it be possible to add other 68k binaries, e.g. Atari PRG/TOS ?
Thanks!

This is an interesting idea. This is an Amiga-focussed tool, and it will certainly stay that way until it hits V1.0. This could possibly be something that could be added post-launch, possibly as a fork.

I don't have time to fall in love with another platform! As a stretch goal, I am considering supporting my other loves of the Z80-based Spectrum and SG-1000/MSX. That would be a major reworking, and probably require removing ira altogether, or writing the Z80 equivalent.

However, a large portion of the existing functionality is 68K-related, so it might not be too much work. I'd have to check to what extent the underlying toolchain of ira and vasm support the Atari formats. Then all the Amiga stuff would have to be worked around. It's certainly possible, but not something I can see myself having time to investigate any time soon. When I release the code feel free to have a look.
hop is offline  
Old 28 May 2024, 17:57   #17
malko
Ex nihilo nihil
 
malko's Avatar
 
Join Date: Oct 2017
Location: CH
Posts: 4,997
Quote:
Originally Posted by hop View Post
That should be possible. If so, I'll add it to the itch.io page (see original post). EDIT: Added AiraForce-0.6.0-win32.zip to the downloads. Hope this works.
Whaou, already !
Will free some time this week to test it. Thanks
malko is offline  
Old 28 May 2024, 19:01   #18
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,033
Quote:
Originally Posted by Cyprian View Post
thanks, great tool

Would it be possible to add other 68k binaries, e.g. Atari PRG/TOS ?
If my memory not failed, exist Amiga program which can convert Atari ST PRG files to Amiga EXE format files.
Don_Adan is offline  
Old 28 May 2024, 19:11   #19
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,193
Great job getting this far! I've started it and tried some basic stuff, and that seems to work well, but I'll have to give it a proper spin to really judge
paraj is offline  
Old 28 May 2024, 19:41   #20
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by hop View Post
However, a large portion of the existing functionality is 68K-related, so it might not be too much work. I'd have to check to what extent the underlying toolchain of ira and vasm support the Atari formats.
Besides AmigaOS vasm (and vlink) support 68k output for Atari TOS, X68000 and Unix (a.out and ELF). And several binary formats, like raw-binary, S-Records, I-Hex.
Also IRA was already prepared for multiple 68k platforms by Nicolas Bastien, like Atari and Megadrive.
A few weekends ago I nearly started to implement Atari support in IRA, which is not too difficult, but then got distracted again.
phx is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Interactive symbolic bitop calculator paraj Coders. Asm / Hardware 2 07 May 2017 22:13
What was that interactive interview with the Sensible Software team? Mark_C Nostalgia & memories 1 10 June 2004 03:38
Amiga Interactive Guide gets a facelift... Amiga1992 Amiga websites reviews 5 22 March 2003 18:50
Amiga Interactive Guide Twistin'Ghost Amiga websites reviews 0 13 July 2002 13:05
Nightbreed Interactive Movie Steve support.Games 19 04 October 2001 18:43

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 21:33.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11855 seconds with 16 queries