Aira Force 0.7.6 now available


Full changelog:

  • Add: Recent Files list
  • Add: Export Disassembly option
  • Add: Status window with disassembly, reassembly and diff status
  • Add: Relocated Binary Window
  • Add: Basic binary patching: edit hex, replace instruction with NOP/RTS
  • Improve: Saved options
  • Improve: Option to hide ira -A posterior address/code comment
  • Improve: Rename label referenced by selected line
  • Improve: Goto dialogue tab-completion and history
  • Improve: CPU Window: edit registers, flags, display formats
  • Improve: Hunks Window displays RELOC32 data
  • Fix: Crash when parsing long lines of disassembly
  • Fix: Adding manual EQU with disassembly context menu
  • Fix: Support paths containing spaces

A couple of features require some explaination.

Status Window

It's easy to miss error messages from the disassembler (ira), assembler (vasm) or diff tool in the output. The status window makes it easy to see at a glance the health of the pipeline.

This is what you want to see:

If you see something like this, then there is work do:

For hunk executables it is common for the reassembled executable to be equivalent, but not binary identical to the original source file. The hunk file diff tool is on my todo list. In the meantime, it is common to see this:

And in the output something like this

Reassembled binary to: C:\asm\Sprite.reassembled Comparing source module C:\asm\Sprite with reassembled module C:\asm\Sprite.reassembled Note: Module compare not fully implemented Module file sizes differ, but contents could be equivalent. Module A: 1388 (0x56C) bytes C:\asm\Sprite Module B: 1252 (0x4E4) bytes C:\asm\Sprite.reassembled ERROR: Hunk comparison not implemented ERROR: Comparison failed

This is often because the source file contans debug info or symbols. It can also be due to empty bytes in DATA vs BSS sections. 

It's worth making sure that the Status Window is always visible while you are actively disassembling.

Export Disassembly

Main menu > File > Export Disassembly...

This allows the disassembly to be exported without the ira -A address and machine code comments. These are useful while analysing, but often not wanted when the disassembly is loaded into an external editor for modifications.

CPU Window improvements


Previously the CPU Window was read-only. A context menu has been added, so now you can:

  • Copy register values to clipboard (long, word, byte as hex)
  • Paste values into registers
  • Edit status register flags
  • Configure the display format for general registers: long/word/byte, unsigned/signed, hex/decimal/binary
  • Edit register values
  • Copy/paste/edit exception vectors
  • Offset/scroll the memory pointed at by address registers

The last feature is handy when debugging code with pre-increment or post-increment. It's nice to be able to peek forwards and backwards to see the values in neighboring elements. 

Drag Slider widgets are used to scroll - hold the LMB and move the mouse; CTRL-Click to use as a text input box.

This feature takes up quite a bit of valuable UI space so is disabled by default. Enable it in Options > Options > CpuWindow > Address register deltas

Binary Patching 

This feature allows basic patching. It is disabled by default, but can be enabled in Options > Options > Edit > Source file patching

 Use the disassembly context menu to Patch > NOP/RTS or edit hex directly in the Soure Window.

Edits in the Source window must be saved with File > Save Source File to be applied.

Files

aira-force-win64.zip 3.1 MB
Version 0.7.6 Jul 12, 2024
aira-force-mac.dmg 3.8 MB
Version 0.7.6 Jul 12, 2024
aira-force-linux.tar.gz 3.1 MB
Version 0.7.6 Jul 12, 2024
aira-force-linux.deb 3.1 MB
Version 0.7.6 Jul 12, 2024
aira-force-win32.zip 2.7 MB
Version 0.7.6 Jul 12, 2024
aira-force-raspberrypi.tar.gz 2.9 MB
Version 0.7.6 Jul 12, 2024

Get Aira Force

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.