/Ironmon-Tracker

Bizhawk script compatible with Pokemon Emerald, Leaf Green, and Fire Red that tracks relevant data for the ironMON challenge.

Primary LanguageLuaMIT LicenseMIT

Ironmon-Tracker

Ironmon-Tracker_v0 2 0-min

General Information

Ironmon-Tracker is a collection of lua scripts for the Bizhawk emulator (v2.8 or higher) or mGBA emulator* (v0.10.0 or higher) used to track IronMon attempts.

*mGBA's lua scripting is currently limited and doesn't provide any drawing functionality, this means the tracker on mGBA is purely text-based in the scripting window as we can't draw images/screens like on Bizhawk.

For more information on IronMon, see http://ironmon.gg

We have a set of Wiki pages documenting various parts of the tracker, including a full Feature List.

If you have any issues using the tracker, check the FAQ & Troubleshooting page first to see if your issue has a known solution. If your issue isn't listed there, or if you find any bugs or have feature requests, feel free to create a GitHub issue or let us know in the IronMon Discord server.

This project is based on MKDasher's PokemonBizhawkLua project.

Supported Games

For NDS (gen 4/5) games, please use the NDS IronMon Tracker by OnlySpaghettiCode

Currently supported Pokémon games / languages:

Version Ruby Sapphire Emerald FireRed LeafGreen
English ✔️ ✔️ ✔️ ✔️ ✔️
Spanish ✔️
French ✔️
Italian ✔️
German ✔️
Japanese

We'd ideally like to support all non-English versions if we can, progress updates can be found here.

Installation

  1. Download the Ironmon Tracker
    • You can get the latest project release from the Releases section of this Github repository.
  2. Get a Supported Emulator
    • We recommend using the Bizhawk emulator (Windows/Linux only)
      • Download Bizhawk (v2.8 or higher)
      • If you are on Windows, make sure to also download and run the prereq installer first
      • If you are on Linux, we recommend using Bizhawk 2.9 or higher
    • Alternatively, you can use the MGBA emulator (Windows/Mac/Linux)
  3. Install and Setup
  4. Quickstart Guide
    • After getting it all setup, check out the Quickstart Guide for an overview on how to use the Tracker and learn about all of the information that it displays.

Latest Changes

Log Viewer shows Pre-evolutions

image

See the project's Wiki for a full Version Changelog.

Contributing

If you'd like to contribute to the tracker, great! Here's some information for you on our processes and setup.

If you're planning to implement a new feature, we'd ask that you either open a feature request issue on GitHub or talk to us in the Ironmon Discord server about your idea first. This is so we can discuss if it's a good fit for the tracker and how best to implement the feature, before you go through any effort of coding it up.

What is a good fit for the Ironmon Tracker?

Generally, we try to avoid revealing too much information that a player can't gather themself in-game in some way. For example, we won't show a Pokémon's EVs and IVs directly as you don't get that information in the games. We also like to try and make toggleable options for certain features for those that would rather have them disabled.

Additionally, if the feature involves a UI element on the tracker screen, we want to make it as clear and simple to use as we can. There's limited space on the tracker screens so we also want to avoid cramming too many things in or extending the current size of the tracker (as this would mess with many people's stream layouts).

Development Set-Up

There are a couple of VS Code extensions which we recommend, which should automatically be recommended to you in your VS Code:

Lua Versions:

  • Bizhawk 2.8 uses Lua 5.1, this is the version currently set in our .vscode/settings.json file for linting.
  • Bizhawk 2.9 and mGBA use Lua 5.4
    • Since we intend to still support Bizhawk 2.8 the code must be compatible with both Lua 5.1 and 5.4

Emu-specific Lua documentation:

Branches and Processes

The primary branches of the Ironmon-Tracker repository are as follows:

  • Main: This is kept in a state of the latest release. We merge into this branch from dev when we are ready to do the final checks and make a new release.
  • Dev: This is essentially the "staging" build of the next release, where the majority of contributions merge into.
  • Beta-Test: This branch is for test builds that Tracker users can opt-in to trying out. It regularly gets updated with new features from the dev branch.

Make your PRs to the Dev branch.

The workflow we'd recommend for contributing:

  1. Create a fork of the repository.
  2. Create a branch on your local fork for your new feature/contribution. Make your commits to this branch.
  3. When you are ready to send it to us for review, open a Pull Request back to this repository. Request to merge into the Dev branch.
  4. We'll review the Pull Request and decide whether it needs some changes / more work or if we're happy to merge it in.