Skip to content
James Groom edited this page Dec 19, 2023 · 1 revision

EmuHawk doesn't natively support Python scripting, but there are 2 community-developed options for using Python.

birds-eye by SkiHatDuckie:

  • for BizHawk 2.9.1: binaries, upstream source
  • Feedback and support: GitHub
  • Script interacts with the API indirectly (using TCP socket connection with external tool)
  • The script and the emulator are two separate processes (i.e. the script does not have to terminate when BizHawk is terminated. You could open up BizHawk again, open up the external tool, and then reconnect the script--this also works vice versa).
  • Script currently does not have access to the full API (support for other functions would need to be added to the bindings library/socket client birds-eye-lib)
  • All python libraries are available as usual.
  • External tool functions as middleware (is that the right word?) between the script and emulator. Controls communication between the two.
  • When a script is connected to the external tool, the emulator becomes I/O blocked. It will not advance a frame until a message is received from the script and a response is sent back from the external tool.

HissHawk by tuxie:

  • for BizHawk 2.6.2: binaries, upstream source
  • Feedback and support: TASVideos Forum
  • Script interacts with the API directly (using pythonnet and external tool)
  • The script's state is dependent on the emulator's state (similar to lua scripts and external tools)
  • Access to basically everything the API offers + what .Net offers (similar to external tools)
  • Python distribution must be in PATH, and must have the libraries pythonnet and find_pythonlib installed.
Clone this wiki locally