ROM Hack FEFTwiddler - Fire Emblem Fates Save Editor

  • Thread starter Thread starter Soaprman
  • Start date Start date
  • Views Views 1,207,001
  • Replies Replies 3,744
  • Likes Likes 32
Yes.
Code:
07 xx xx xx xx xx xx 01 xx


Those flags are also exist in the game's files. I think the game use OR operator to both flags, then use the result to determine if a character can use those weapons. I actually implement that idea in the DragonVein.cs file.
Thank you so much.
 
That easy? Alright then, good thing I'm already doing Classic.

EDIT: She didn't die when I did an Invasion skirmish, but she did when I did a Challenge. Stay dead!
She resurrected somehow, I'm gonna try to kill her in the main storyline and see what happens. Yes, I am playing on Classic.
 
In order to properly revive a character, you need to unset the death flag and also move them to the living characters block. Same goes for killing characters.

The current code in FEFTwiddler uses the flag to decide which block to write a character to when saving, so I think it'll do that automatically if you go in the hex editor and remove or add the death flag. That said, I haven't tested that and there could be a bug in there.

It's something I'll look into when I go to actually implement killing/reviving.
 
@Soaprman I had issue last night. when i try to open a save i get an error. Unhandled exception has occurred in you application. This has never happened before
 
You need to post a screenshot of the error message or give me your save file or something. I can't help you otherwise.
And all I do is try to open a save
 

Attachments

  • capture image.png
    capture image.png
    6.4 KB · Views: 356
@Soaprman It looks like global files don't load yet.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: Region1 block 2 must be 215 bytes in length
at FEFTwiddler.Model.GlobalSaveRegions.Region1.set_RawBlock2(Byte[] value)
at FEFTwiddler.Model.GlobalSaveRegions.Region1.set_Raw(Byte[] value)
at FEFTwiddler.Model.GlobalSaveRegions.Region1..ctor(Byte[] raw)
at FEFTwiddler.Model.GlobalSave.Read()
at FEFTwiddler.Model.GlobalSave.ReadFromFile(SaveFile file)
at FEFTwiddler.Model.GlobalSave.FromSaveFile(SaveFile file)
at FEFTwiddler.GUI.MainForm.openFileToolStripMenuItem_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1055.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
FEFTwiddler
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file://psf/Home/Downloads/FEFTwiddler.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1055.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1055.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1068.2 built by: NETFXREL3STAGE
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1055.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1055.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Xml.Linq
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
Click Details and give me a picture of that.
Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at FEFTwiddler.Config.get_StartupPath()
   at FEFTwiddler.GUI.MainForm.openFileToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1078.0 built by: NETFXREL3STAGE
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
FEFTwiddler
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Cash%20Money%20Chris/Desktop/FEFTwiddler.exe
 
So I just did some testing, and found that changing units' bitflags for the unique weapons will get you shadowbanned even if those units aren't wielding the weapons in question. Just a heads-up for those of you who wanted to know.
Rip my dreams of royal children and their parents
 
  • Like
Reactions: Relic Song
So I just did some testing, and found that changing units' bitflags for the unique weapons will get you shadowbanned even if those units aren't wielding the weapons in question. Just a heads-up for those of you who wanted to know.
That's to be expected, with the exception of Dragon Vein usage and some other few flags, they're checked off of the actual character block inside GameData, so if you want someone to wield something you'd need to romhack the bitflags onto them.
 
  • Like
Reactions: Relic Song
So I just did some testing, and found that changing units' bitflags for the unique weapons will get you shadowbanned even if those units aren't wielding the weapons in question. Just a heads-up for those of you who wanted to know.
awww ;-; thanx for the heads up

--------------------- MERGED ---------------------------

why my Scarlet (whose dead) shows up as alive in the editor?

--------------------- MERGED ---------------------------

she shows as alive after i beat the game...
 
  • Like
Reactions: Relic Song
I'm increasingly getting the impression that I need to straighten out the code that decides how to show dead units in the GUI.

To anyone reporting issues with Scarlet or any other dead units: please answer the following if you can:

* Is the "Dead" checkmark checked? Should it be?
* Is the unit in the "dead" block? Should they be?
* Have you done anything in the past to alter this unit's deadness? This includes moving the unit to the dead block or unsetting the flag. Know that the death flag is in the same block as the shield and einherjar flags, so if you ever followed any instructions saying to set all five bytes to 00 to remove the shield icon or something, you'd have also unset the death flag in the process.

It's also possible that my understanding of the death flag is off. I'm currently actually checking for two values (0x10 and 0x08 in the first byte of the five-byte "flag" block a little before the equipped skill block). Maybe only one of those actually applies and the other was set in the saves I looked at by coincedence.

Also, remember: It's way easier for me to diagnose problems if you send me your saves!
 
upload_2016-4-27_19-13-25.png
didnt touch her yet, but my older save before i beat the game shows her as dead....

--------------------- MERGED ---------------------------

my current file

--------------------- MERGED ---------------------------

older save before i beat the game
 

Attachments

@Thunder Kai: Thanks for the saves. I'll take a look.

The death flag and chapter died on are separate values, so it's possible to have one without the other (though it shouldn't happen). Maybe some sort of funny business somewhere in the code unset the flag on Scarlet between the backup save and the current save.
 
That doesn't happen on mine.
She dies sometime in Revelation. Are you playing Revelation?

View attachment 47179didnt touch her yet, but my older save before i beat the game shows her as dead....

--------------------- MERGED ---------------------------

my current file

--------------------- MERGED ---------------------------

older save before i beat the game
This is also what my Scarlet looks like.
 

Site & Scene News

Popular threads in this forum