Skip to content

ROM expansion annoyances and ROM type validation inflexibility #333

@PhoenixBound

Description

@PhoenixBound

For 6 MB EarthBound ROMs, the authoritative header is the one at address 40FFB0, but CoilSnake currently checks the data at file address 00FFB0 to verify whether the ROM it's looking at is an EarthBound ROM. Moreover, it checks a field of the ROM header that some people would like to change (its ROM name, displayed in some emulators like snes9x), and only after compiling CCScript. This makes it difficult to change the ROM header or clean things up.

The 6 MB case is especially important to deal with, because we've had not one but two popular EarthBound romhacks cause problems for people using old versions of snes9x and even certain flashcarts. They were expanded to 6 MB (sometimes out to necessity, sometimes due to early development decisions that carried forward for years), and the exhirom expansion leaves the old unused header data in bank C0. Snes9x's heuristics for determining the ROM format and the correct location of the header used to get confused by this old data and misidentify the ROM format. Clearing out the header data there fixes the problem, but it also makes the ROM no longer be recognized as a valid EarthBound ROM by CoilSnake when compiling a project.

  • Make it possible to change things like the name in the ROM header.
  • When expanding the ROM, clear out the old unused header data at C0FFB0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions