Benjamin Popp 79287250ff Officially Support Vega
* relax egg move compatibility: allow more than 2 pointers to it
* more strict when finding pcs tables
- some fan games include new versions of tables, but leave the old tables where they were with nothing pointing to it. Before we used the new anchor to tell where a table ended. Lacking that anchor, we can determine that the new text is part of the NEXT table and not the CURRENT table using a huristic.
- if the additional element appears to be text, but the _next_ element would start with a space, then the additional element might be a different width.
- if the extra spaces after the additional element are only enough to get 4-byte aligned, then the additional element is in this table, but is the last element. The spaces are just for word alignment.
* require that abilitynames's first pointer lives somewhere in the first 0x100000 bytes. This prevents us from finding false-positive pointers much later in the ROM, even if the data has been moved. (Note that FR, LG, and Emerald all have this pointer within the first few pages of data, while Ruby/Sapphire have it much later.)
* require that trainerclassnames have more than one thing pointing to them. This reduces false positives, even given our relaxed PCS Table searching logic.
2019-05-19 20:17:38 -05:00
2019-05-19 20:17:38 -05:00
2018-09-15 15:28:22 -05:00
2019-02-05 21:01:53 -06:00

Hex Maniac Advance

A hex editor designed for editing Pokemon GBA games

(This project is still very new. This ReadMe is more of a vision document. As the project grows, the ReadMe will become an introduction document, with usage / tutorials / implementation details moving to the Wiki.)

Motivation

A few years ago, I thought it would be fun to try and make a custom version of FireRed. What I found was a vibrant community of hackers using a variety of tools, each with a specific purpose. Advance Starter, Advance Trainer, Advance IntroEdit, TM Editor Pro, A-Tack, Advance Map, Nameless Tile Map Editor, YAPE, Pokedex Order Editor... the list goes on and on.

Each tool was useful in its own way, but each presented only a peep-hole into what was going on inside the game. Most tutorials for advanced or specific things involved asking you to use a Hex Editor, repoint tables, or open and close multiple programs. While working on my project, I would often have my screen littered with different windows, each serving a specific purpose. These tools work, and they work well. But I often found myself wanting to see a more whole view of the file, instead of just peeking.

The Goal of this Software (small version)

I want to create a Hex Editor that can provide a richer editor experience specifically for pokemon gba games.

  • Ruby
  • Sapphire
  • FireRed
  • LeafGreen
  • Emerald

Here's a list of some of the minimal features I would need in order for this tool to provide any value:

  • Standard Hex Editor features (data entry, Find/Goto, Copy/Paste)
  • Multiple simultaneous open files
  • Automatic pointer recognition / navigation
  • Moving data
  • Forking / joining data

The Goal of this Software (ideal version)

I want to create a generalized data editor that can recognize data within the file and provide appropriate edit options for it.

Here's a list of nice features I'd like to implement eventually:

  • Recognition of images / palettes. Drag-drop support to add images/palettes. Image/palette editor.
  • Recognition of music / sounds. Music / sound editor.
  • Recognition of strings. Support for editing text / automatic repointing.
  • Recognition of map data, including tilesets, event data, scripting, and assembly routine links. Editing and repointing support.
  • Recognition of other commonly edited data, such as evolutions, attacks, abilities, stats, and trainers.
  • Making the program itself scriptable, so it can be used as an environment for useful one-off utilities for decapitalization, randomization, or balancing.

Obviously this is a much more in-depth list. These features could take quite some time (or never get done), but the idea is to design the editor with these future features in mind.

Description
A tool for editing tables, text, scripts, images, and other data in Pokemon GBA games
Readme MIT 20 MiB
Languages
C# 99.9%