Gameboy Binary Ninja plugin

March 3, 2024 ยท View on GitHub

Description

A Binary Ninja plugin to load Game Boy ROMs and disassemble Game Boy architecture bytecode (Sharp LR35902).

Based on bnGB by Hugo Porcher (icecr4ck). Extended by Carl Svensson (ZetaTwo)

For a list of changes, read the changelog.

Improvements

  • Added proper IO register symbols
  • Added ISR symbols
  • Fixed some incorrect branching
  • Fixed some incorrect addressing modes
  • Implemented LLIL lifting

Todo

  • Fix sub_d (stop disas from 0)
  • Handle HALT/RESET/EI/DI opcodes in LLIL
  • Handle BCD (DAA opcode and test the half carry flag)
  • Thorough testing

Installation

Either install the plugin from the plugin manager or manually clone the repository to your plugin directory.

Minimum version

This plugin has been tested on the following versions of Binary Ninja:

  • release - 3.5.4526

References

Testing

License

This plugin is released under a MIT license.