Jump to content

Need Help manipulating FE1for footage


EnigmaticGuy
 Share

Recommended Posts

Hey there, I'm working on a project that requires i get lots of oddly specific video footage from things in FE1 that's near impossible or would be super complicated to do through gameplay, I need an easy way to get any item i want and give enemies specific weapons, Though any other hack or cheats would be helpful as well, Basically i need to be able to orchestrate any fight i need so if anyone knows a way i would greatly appreciate the help 

Edited by EnigmaticGuy
Link to comment
Share on other sites

3 minutes ago, EnigmaticGuy said:

Hey there, I'm working on a project that requires i get lots of oddly specific video footage from things in FE1 that's near impossible or would be super complicated to do through gameplay, I need an easy way to get any item i want and give enemies specific weapons, Though any other hack or cheats would be helpful as well, Basically i need to be able to orchestrate any fight i need so if anyone knows a way i would greatly appreciate the help 

Howdy! As it happens, I have a lot of experience hacking FE1! I can easily set up any scenario you wish, or tell you how to do it. For example, the playable unit data during gameplay is just past $6a00 in RAM, and the enemy data a few scrolls after that (can't remember the exact addresses but they're easy to find). I've also got a ROM map of all the data in the game. What are you looking for?

Link to comment
Share on other sites

Basically i want to test out Marth's limits as well as get more footage of the Falchion and try it out against all types of enemies, It has a fairly unique mechanic in the first game that you don't get to play around with a lot so I'd like to test it out on all enemy types freely, Also against enemies with unique weapons like the Levin Sword, It'd be super helpful to have an easy way to get footage of all his possible battle animations including seeing him fight all the different kinds spells 

Edited by EnigmaticGuy
Link to comment
Share on other sites

The easiest way to test this kind of stuff quickly is to use an hex editor in an emulator like FCEUX. The quickest way would probably be to use Mars and the thief in Talis Chapter 1. So Prince Mars's data is the first of the unit data stack, starting at $6a90 in RAM. His first inventory slot is at $6aa3, which is set to 0x05 for Rapier. You change that to 0x0b for Falchion. As a fun fact, Falchion's Mars-exclusivity property allows him to use it as any class in the game. Trying to use it with some of them will crash, but it's fun to play around with. The Talis thief's data starts at $71aa in RAM, and his first item slot is at $712d (0x02 for Iron Sword). If editing RAM in an emulator isn't an option or you need more explanation, let me know. You can also change the starting data in the ROM or I can even make a patch with the changes you need.

Link to comment
Share on other sites

I'm fairly unexperienced with hex editing but I'll give it a shot thank you very much for the info
Edit: I'm pretty lost I'm in FCEUX's Hex editor I'm unsure how to find the data you listed or what to touch, Also does the English patch i use matter?

 

Edited by EnigmaticGuy
Link to comment
Share on other sites

Which English patch you use probably won't matter. I know mine is fine, and I'm pretty sure any of the other ones haven't messed with unit data.

As an overview, units in FE1 are represented as a set of 27 / 0x1b bytes, with each byte representing a property of the unit. For example, the first three bytes are Name, Class, and Level. All the units of an army are arranged one after the other somewhere in RAM. The stack of units ends with a "unit" whose name is 0x00 (the first byte being 0x00). The player unit stack begins at $6a90 in RAM (also called NES Memory by FCEUX), and the enemy army begins at $7008.

In the below image I've highlighted all the bytes that represent Mars, the first unit in the player stack.

img1.thumb.PNG.ba91c33ab19e5fafc7c60ce92c8722cd.PNG

Right at the end of Mars's data you see one sequence, 05 00 00 00 which represent his four items slots (Rapier, empty, empty, empty). The following sequence 1c 00 00 00 represent the remaining uses on those items/weapons (28, 0, 0, 0). You can change Mars's Rapier to any item of your choosing by typing over its byte (0x05). Falchion's index number is 0x0b if that's what you want to try. You can find all the items in the game by simply changing this byte and checking the menu. If you want to make Mars's first item unbreakable, change its uses (0x1c) to 0x00 or 0xff.

img2.PNG.742a1e9e7500d75f223292e62d1766d0.PNG

This is the enemy stack. I've highlighted the set of bytes that represent the Thief who spawns close enough for Mars to attack him. You can change his stats to your liking by just typing over those values.

What you'll probably want to do is set a save state (Shift + F<number>) before you start messing with the values. Then, change either character's stats, test what you want to, then load state (F<number>). You can also enable Mars to move again after he's taken his turn by typing a 0x00 at his "moved" flag byte $6aa0. He'll still appear grayed out, but you can select and move him again.

Hope that made sense! 🙂

If you need to know more index numbers of things, I can give them or even just link you Darmann's public doc that has all the info.

Link to comment
Share on other sites

I wrote up a quick guide to the structure of units as unit_guide.txt. I also threw in the item/name/class lists from Darmann's note, with some updates to the names. Also, if you add a cheat in FCEUX to $7674, it acts as a "chapter warp" code if you need to change locations for some reason. The player and enemy unit stacks stay in the same location in RAM for every chapter.

img3.PNG.82ffafcbd20c75f8f37e2528f6ae03b0.PNG

classes.txt items.txt names.txt unit_guide.txt

Link to comment
Share on other sites

The AI byte is actually the enemy's first usability slot, which is determined by the "AI Byte" passed when the enemies are added onto the map. Editing AI is easiest when you edit it in the ROM where enemy units load from, which starts at 0x20AE5. Change the AI Byte for the enemy, then load up the chapter and the unit will have the new AI.

Enemy units are structured in the ROM as follows:

0 = Name
1 = Class
2 = Level (Unit stats are scaled by this)
3 = Equipped Weapon
4 = Dropped Item
5 = Y Position
6 = X Position
7 = AI Byte
8 = Spawn Turn (As a reinforcement unit)
9 = Destination Y (Used by AI)
10 = Destination X (Used by AI)

Some of the AI values I've noted are:

0x1d = Guard, attack when enemy in range, move to Destination X and Y if they're not (0, 0)
0x38 = Thief, find shortest path to villages and loot them
0x4 = Follow Mars, don't attack (Minerva)
0x35 = Charge forth and attack like Sigurd
0x2e = Healer AI, heal allies, run from enemies
0x50 = Cuddle? Get close to enemies but don't attack

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...