lushen124 / Universal-FE-Randomizer

Properly universal this time.
MIT License
98 stars 28 forks source link

[FE6] Multiple bugs and minor suggestions #392

Open Salron opened 2 years ago

Salron commented 2 years ago

By far the biggest issue:
Delphi Shield is broken, it does not protect against flyer weaknesses, regardless of the enemy weapon.
My hypothesis is because it doesn't protect against anti-dragon effects, the game is somehow interpreting bows and the like as being anti-dragon instead of anti-flyer. Maybe this is because of the Add random effects feature? Unsure.
Just as a note, I don't have any pegasus/falcoknight units in my randomized roster, so I can't test it on them.
I opened the rom up in FEBuilder, and the Delphi Shield is indeed checked off to have its effect, and I couldn't find any way to fix it with my minimal FEBuilder experience.

Another bug that was already reported is the dragon effectiveness on Wyrmslayer and all the legendary weapons being broken, as the Manakete effectiveness was replaced with Demon Dragon and Divine Dragon effectiveness instead, the Binding Blade seems untouched though.
However that bug is easily fixed by editing the rom in FEBuilder, so its not a big deal.
Another bug I encountered was with the "LOOSE gender restriction" feature. It's supposed to make units who randomize into non-genderlocked classes have the version of the class that reflects their gender, but I've had several characters get put into the opposite gender version instead.

I'm not sure if this counts as a bug, but I do see it as a major flaw with the system
Bishop is a class with C staves, yet in multiple runs I've seen several characters randomize into Bishop with a staff rank lower than C, and also once saw a Bishop start with E light rank even though their base is supposed to be D light, but that was the previous Yune version.
Units should not be able to have weapon ranks below the base of their class, please fix this.
Also the "strict matching" feature doesn't seem to function properly. In my experience it functions more closely to the "match rank" function.

The changelog is attached so you can see my settings and all the issues I list below reflected there
FE6 RANDOMIZED.zip

Examples:
Marcus starts with a silver lance and Iron sword normally, he was replaced with Hero Geese who had a silver axe and steel axe. The steel axe is an E rank weapon, so that matches up with Marcus' Iron sword, but it should've been an iron weapon to more closely match him, additionally, it should just be an iron sword to begin with, Marcus had a silver and iron weapon of 2 different types, with the iron one being the sword, so logically, Geese should've had a Silver axe and iron sword.
Another example: B route Geese starts with a steel axe and handaxe, these are both E rank weapons. He was replaced with armor knight Lilina, who had 2 Iron lances. These are both E ranks as well, so that matches up, but they should've been a steel lance and javelin.

Another example: A route Geese starts with a brave axe, a B rank Brave weapon. A route armor knight Lilina has a horseslayer to replace that, which is not a brave weapon, nor is it a B rank weapon, this does not match up. Another example: Bartre comes with a Brave axe in the B route, a B rank weapon, he was replaced by Sage Zeiss, who came with aircalibur, a B rank weapon, thats good. But he also came with a Physic staff that he can't use, as he has D staves. Now Bartre only has one weapon, so technically Zeiss should only have one weapon too I suppose, so I probably shouldn't complain about getting extra free stuff, but units shouldn't come with items they can't use.
I probably forgot some things, but those are most of the issues I've encountered.

If I may make a suggestion, can there be an option added to choose how much characters are autoleveled? As it currently stands, it seems autoleveling always promotes units at level 10, but this results in some units joining in a very weak state when certain units are switched around
Could there be an option added for us to choose what level the autoleveling promotes them at? Maybe something based on the chapter? So for example, units that replace prepromotes in ch1-10 are autoleveled and promoted at 10, but then prepromotes joining in ch11-20 are autoleveled to 15? And so on. It doesn't have to be those exact numbers, but an option to play around with in that vein would be really nice.

I love all the work you do on this sick tool, and look forward to any future improvements made.
Thank you.

lushen124 commented 2 years ago

The Delphi shield is probably the same issue as #371. Apparently the game checks specific pointers, which I've repointed in order to make additional effectiveness combos. I'll have to track down references to the old address and create a new list of addresses.

The dragon effectiveness sounds like an oversight on my part when creating the new effectiveness combos and should be easily fixable.

Loose gender restriction is supposed to try and match gender if available, but that might just be an errant ! sign that is causing issues if it's consistently assigning the opposite. I thought I had tested this, but maybe not FE6 specifically.

As far as weapon levels for playable characters is concerned, it tries to match that character's normal ranks to their new class, so a character that normally joins with C rank will have that C rank transfer to the weapon type used by the new class. I'm not sure if that fits your example exactly, but it doesn't currently take into account starting weapon levels of the class as the minimum, though we could still do that.

It does sound like strict matching is failing in those cases. Strict matching should do exactly as you said, so it's weird that it's falling back to loose matching in these cases. I'll have to take a look. The weapon levels being too low also probably explains getting assigned a weapon that a character can't use, though if that's the case, the bug is because of a certain combination of randomization settings. The change log helps, so thanks for that.

I've had to tweak the autoleveling logic so many times, that yeah, it probably is worth just exposing that as an option. 🙂

Salron commented 2 years ago

Thanks for the detailed response, appreciate it. I managed to fix the Delphi Shield issue by taking cross referencing the effectiveness pointer for all bows/ballista/aircalibur from a vanilla FE6 patched with the translation and overwriting the value the randomizer had for them, which was 8830543. Also would you happen to know why Clarine(Juno replacement) spawned with multiple items including Armads? It's strange because Juno doesn't normally have a starting inventory, not to mention the random S rank weapon that Clarine couldn't use.

Keep up the great work, thank you.