Self Randomizer Installer

This is how to install on a new project. Please see the following links:

I’ve spent the past couple months working on randomizers for Pokemblem, AW2, FE7, FE6, and FE8 (no thread release yet for fe8).

This installer adds a config menu when you start the game and randomizes aspects of the game and lets you choose some common modes like casual mode, 0% growths, and 100% growths. It can be applied to most fegba projects.

It takes over the first page of your stat screen, so install after skill sys / mss.

This uses BWLData + 0x3a to save randomizer data, so do not use unit 0x3A (or change the ram address in definitions.s).

Installation instructions:

Summary

To add new hacks here:

  • Download GitHub - Veslyquix/SRR_FEGBA & open in febuilder (April 2024 version or later)
  • Also download GitHub - Veslyquix/ASM and put it in the same folder as SRR_FEGBA if you want the debugger
  • Febuilder Settings → Options → Event Assembler ColorzCore.exe

    (This adds the FILL command.)
  • Copy an existing hack installer, rename it to MyProject.event, and copy things based on the instructions below.
  • In Febuilder, open advanced editors
    • Text Table (top left address) is TextTable
    • Insert EA->.A_Test_Install.event
      • This generates MyProject.event_assembler.sym
      • Open it and copy the addresses for:
        • MagCharTable, MagClassTable, and Skill_Getter
  • Open item editor. If bottom right does not say WeaponLockArray,
    then uncomment #define NoWepLock
  • Leave #define DoNotUseAutoGetters alone unless you can be bothered
    to define the addresses for Get_Hp_Growth etc.
    • This only matters for growth bonus items
  • Open Hex editor. If data at 0xF10000 is not 0xFFs, then try defining free space based on what Insert EA says
  • Choose #include "../.FE8_FebuilderSkillsys2021_or_later_Installer.event" as the default
  • Optionally, read and configure .FE8_Installer.event for more fine-tuned settings.
  • Insert EA->Installer.event

Testing it

- If status screen page 1 crashes, try `#include "../.FE8_FebuilderSkillsys2020ish.event"` instead 
- Test a round of combat, enemy phase, and status screen. 
- If any fail, then the hack 
may be incompatible or require further investigation 
- Could also be the randomized BGM track doesn't work (try turning BGM to vanilla) 
- Or maybe a specific battle animation is broken 
  • If Skill_Getter is not generated…
    • Open in no$gba
    • Set break point on 0x80036BC (DrawIcon)
    • Open Stat Screen with a unit that knows skills & skip to final
      call(s) of DrawIcon that are being used from Skill_Getter
    • Go up a few lines to find this block of code
mov r0,r8
ldr r1,=Skill_Getter
mov r14,r1
.short 0xF800
- Copy Skill_Getter 

I’m happy to implement some more config options in the installer for the next little while if there are some things you want turned off or adjusted for your hack. I’m looking forward to trying out some projects that make use of this.

24 Likes

Sacred Mistakes RandoSacred Mistakes Rando 2
Neat.

I mean, this seed is dreadful, but that it works is incredible.

7 Likes

So, a couple of notes for FE8;

Even if a character lands on one of their vanilla classes, their palettes don’t apply (so it completely ignores alt palettes, I’m guessing?)

Characters that end up rolling as dancers also pick up item IDs that were originally rings, even if they’re no longer rings.

Some weapons show a negative hit chance (?) even if they aren’t really. Seems to happen somewhere north of 120, though I got it as low as 104. I can only assume this is just a UI glitch that’s not dissimilar to what I’ve seen with my hack of FE7 where the UI combat stats show Mani Katti to have double Mt when it looks at total combat stats from the Equip screen.

Monster class player characters are weird in the arena.

Trainee characters can apparently roll promoted classes, including Super Trainees.

Player max HP is restricted to 60, even if it’s set higher elsewhere.

1 Like

If classes are randomized for that allegiance, their char palettes are ignored.

The list of rings is now dynamically generated based on your item table like I did for weapons/staves/found items.

Do you have all trainee classes marked as unpromoted? Two lists are made: one for classes with “promoted” bitflag checked off and another with it checked on. Recruit 0x37 and 0x47 are both viable for unpromoted, while recruit 0x3A only appears for promoted units. You can use the macro NeverRandomizeIntoClass if you’d like.

I added the option to have a getter for max hp. Just provide an address for prMaxHPGetter:

This is because of your rom / an old skillsys bug, not vanilla. I’ve added MaxWeaponHitrate which if you set to <128, you’ll no longer experience this issue I believe.

I’ve made it so units/classes with the monster weapons bitflag cannot enter the arena.

Thanks for the feedback.

2 Likes

I made the mistake here, I thought it was the Super Pupil 'cause it had Dark and Anima, and completely forgot that I did actually change base tier Pupil to have those so one could skill those types up sooner.

That’ll be extremely helpful either way, also is there a way to flag certain character slots as non-randomizible?

Understandable, maybe I’ll just toy with everyone’s portraits so they all wear the right colors… :thinking:

These are the macros from the installer:
NeverChangeIntoItem(id)
NeverChangeFromItem(id)
NeverChangeItem(id) // does both of the above

NeverChangeIntoClass(id)
NeverChangeFromClass(id)
NeverChangeClass(id)

NeverChangeUnit(id)

If the player doesn’t randomize classes, then their personal battle palettes apply as usual. If you want personal palettes to apply always, then comment out these 3 lines:
https://github.com/Veslyquix/SRR_FEGBA/blob/6d224b3aed55463c02b1b1dc57d8827ce1e47f31/.FE8_Installer.event#L231-233
But because battle anims use different palettes, it they will look janky like in the fe8 self randomizer Circles did.

1 Like

Ah, right, I did remember seeing these in the installer event, you even had examples, my fault.

Yeah, they’re all over the place. One day I feel like I should sit down and standardize the vanilla sprites to have… predictable palettes. Not the first to think that I’m sure. But I think there could be some other benefits other than randos, like being able to pinpoint and change specific parts of the palette to code in changes based on equipped weapon.

Hey there!
First of all this is a really awesome project and it’s awesome to randomize hacks.
But I ran into an issue that for me the magic stat got deleted. However Tomes still try to use the magic stat and because of that only have their base might as attack. I really don’t know what happened there.
As seen on other screenshots the magic stat is still present.

Also how are Monster Classes treated? Can they promote or do you need to set that yourself? And prf weapons probably stay locked to their original users.

What hack are you applying this to?

It’s an older one I made that still uses a skillsystem version from 2020 apparently. But it still had the strenght and magic split. I’ll attach two pictures on how it looks in the original and what it looks like with the Randomizer installed.
Robins Bizarre Adventure DE Original
Robins Bizarre Adventure DE Randomizer

2 Likes

Try uncommenting //#define STRMAG_INSTALLED

However, it may require you to provide some addresses if febuilder cannot find them.

Units can be randomized into classes that have wexp.

I didn’t change promotions at all. You gotta set them to be able to promote yourself if you want them to promote.

Bosses and players have a chance to get prfs as long as they can wield the weapon (eg. wexp required, class myrm lock, etc).

That worked like a charm! Thank you very much!

And thanks for the additional information. I can make everything work like that.
I’m excited to see how this will eventually evolve in the future.

So it’s been a while, but I could never figure out how to use this, it always gave me errors.

More importantly, it seems to drop the randomizer going from Lyn Mode to Eliwood/Hector in semi vanilla FE7 projects, at least if you go straight from one mode to the other; if you back out to the main menu and select your new Eliwood/Hector save it will drop you back into the randomizer config screen to re-randomize your save… for better or worse.

Also seemed to be some weird bugs with FE7’s Wyvern Rider F, but I’m assuming that’s strange vanilla behavior and nothing to do with the rando.

I am a little late but looks amazing with the randomizer

Dm me on discord and we can work through it sometime.

I fixed this but not on my master branch.
Screenshot_20240610-202356_Chrome

I’ve been working out of this branch for a while without testing it on people’s hacks, so I haven’t merged this branch into master yet.

Probably. I think I set that class to never randomize into.

1 Like

I wonder if there’s a way to make specific chapters retain at least some logic in regards to doors- either keeping some of the randomization so enemies hold (droppable) door keys or remove that requirement entirely, because forcing characters to stay thieves feels a little… inelegant.

In other funny, non-gameplay related news;

Sprite Override

1 Like

There’s definitions in the installer for setting certain item IDs (among other things, like class IDs) to not be randomized ever. Have to set that up before installing the randomization onto the ROM, though.

Yeah, but I mean having chapter logic specifically, like declaring how many doors are in a chapter, or maybe a script that triggers all door events on an enemies defeated condition (also declarable.)

Maybe the randomizer should automatically include the breakable doors patch, or apply it yourself after installing the randomizer

The randomizer makes it so enemies of any class can use a lockpick. Units will not stay as thieves. Softlocking issues occur when a player thief is the only way to progress, though. There’s a config to make any player class be able to use lockpicks, but it isn’t the default, as it makes thieves feel nearly irrelevant.

Iirc this uses trap rework and reinstalling that to someone’s rom would break dragon veins among other things. (It would set them back to the default, disconnecting them from your events. Using them would most likely crash the game this way.)

1 Like