errantSquam / Raddomizer

A FE12 randomizer
GNU General Public License v3.0
0 stars 1 forks source link

An FE12 randomizer, complete with a GUI and built-in instructions!

Get the latest version here!

Intro

Raddomizer is a randomizer for New Mystery of the Emblem. The features are lightweight, and easy to understand. No command line stuff or manual decompression — just pop the unpacked ROM folder into the program and it'll randomize things for you.

This randomizer is a joint effort by LT (me), Radd and Vennobennu. Coding by LT and Vennobennu, documentation by Radd (more info further down in the readme)

It includes a few additional features for an improved gameplay experience, such as removing Prf weapon locks, as well as gendered weapon locks. Also, playable Ballisticians, with their sprites ported over from Shadow Dragon!

How to Install

Simply grab the latest release from here: https://github.com/eLTehh/Raddomizer/releases

Input Format

You'll want an unpacked New Mystery ROM for this one. Patched ROMs with the English translation should work fine, as well. (Not sure about any gameplay mods; if pointers are switched around, Raddomizer might not randomize the classes properly.)

The input directory selected should look like either of the following:

  1. The unpacked ROM
    .
    ├── data                  
    ├── overlay                 
    ├── arm7.bin                    
    ├── arm9.bin                    
    ├── banner.bin                   
    ├── header.bin
    ├── y7.bin
    └── y9.bin
  2. The FIRST data folder (not the second one)
    .
    ├── 2                  
    ├── 3                 
    ├── ascii                    
    ├── av                    
    ├── b                   
    ...(and many more folders, including data)

A tool you can use to unpack your ROM is DSLazy.

Putting the randomized files back into the game

Once you've specified your output directory (or if not, Raddomizer will output the files in its own installed directory) and clicked Randomize, your files should be ready.

Make a copy of your unpacked ROM folder, drag the data folder (once again, this is the FIRST data folder, not the second!) inside, and allow it to replace existing files.

Then, pack the folder back into a ROM, and enjoy your randomized New Mystery!

Sample Screenshots

Known Issues

Class slots (in the Reclass window) seem to fit randomization results, but fliers have been shown to exceed the amount of class slots. Need more testing, unsure if this is the result of changing ROMs in the middle of a run.

If any known issues are found, please send your log alongside the error report!

Reporting Errors

You can use Github's Issues page, or the FEU thread. To attach files on Github, you can drag it inside the comment box.

Please include the following while submitting your report:

If the randomizer ran into an error while randomizing:

If the error is found during gameplay:

If the randomizer straight up doesn't run

Regarding MacOS support

At the time, MacOS does not support any tools that can unpack/pack DS ROMs. Unarchiver has been tested, and .nds file formats do not seem to be supported anymore. Thus, any .nds unpackers would have to be run on a Windows VM, so there isn't much point in deploying a Mac version of Raddomizer. The issue is being looked into, but not a primary concern right now. Raddomizer will try to support MacOS when it becomes viable.

Requests for new features

Sure, I'd appreciate your input. However, to set expectations, Raddomizer is something developed in my spare time, so there's no deadline or guarantee they'll be implemented.

In order to prevent myself from getting overwhelmed, my priority is a functional and easy to use randomizer. So bugs will be prioritized over new features.

How did you do all that? Did you document the information somewhere?

Documentation for FE12 can be found in the Wiki, as well as a few Action Replay codes to help improve the gameplay experience. Once again, special thanks to Radd for documenting FE12's data structure!

Future Roadmap: Awakening randomizer...?

A bunch of code/decompression algorithms have been written for Awakening, though nothing concrete has been done yet. Most of the code could probably be ported over. Holding off on this right now due to some roadblocks with growths encryption, and unsure if other programmers may be working on an Awakening randomizer as I speak.

Special Thanks

Testers: Xylon73, Gammer, Harb1ng3r

GUI feedback/advice: Virize

FE12 Nightmare Modules by a variety of FEU users

FE12 Growth Cyphers by Mrkisuke, and the original documentation by SciresM

Nintendo LZ compression/decompression by magical

Icons by svgrepo.com