NMM2CSV - Edit tables with Excel instead of Nightmare [UPDATED TO V1.0]

#Don’t you hate having to manually change bytes one at a time in Nightmare?
You’ve got that fancy schmancy spreadsheet with everyone’s stats and growths. painstakingly tweaked for that perfect balance (or not, I don’t judge), but you’re just clicking dropdowns and typing values like some kind of caveman.

##Never again, I say to you!

#Get NMM2CSV (.exe)

#Get NMM2CSV (Python 3.6)

##Get preripped CSVs (FE8)

Just put all the NMMs you want to rip in the same directory as the rom you want to rip from, like so:

Now simply drag and drop your rom onto n2c.exe, and it will rip the data straight from the heart of the rom, convert it into a CSV spreadsheet, and tie it up with a neat little bow! (Editor’s Note: bow will be implemented in a later release)


###Is that not a thing of beauty?

#But wait, it gets BETTER!

Look at all them numbers. It’s great when they actually represent, y’know, NUMBERS, but what about when they mean something else, like Weapon Abilities?

###Introducing Definitions
Included with NMM2CSV is a handy little file called “Table Definitions.txt”. It comes with a few definitions already, and you can customise it however you like! Let’s take a peek at some of the defaults I’ve included.

//Weapon Ability 1 definitions: #define IsWeapon 0x1 #define IsMagic 0x2 #define IsStaff 0x4 #define Indestructible 0x8 #define Unsellable 0x10 #define IsBrave 0x20 #define MagicDamage 0x40 #define Uncounterable 0x80

The best way to see how this works is with an example!

First, let’s open up FE8 Item Editor.csv and make Eirika’s Rapier an unbreakable brave unsellable weapon.

Next, we double click c2ea.exe to process our tables:

Finally, we open up Event Assembler and tell it to assemble “Table Installer.txt” into “fe8.gba” (this step will show a lot of warnings about ‘Redefining csvmacro’ if you do more than one file at a time, don’t worry about it):

###It’s that easy.


I love you


because I’m dumb I only almost fully understand this.
but I second @Agro thank you!!
I may make a video of this, too!
(once I learn da wayz)


All of those numbers in Weapon Ranks end in 1…

Does this mean we can start units in between ranks now*? (Like have Neimi with 45 Bow Level, meaning she gets to C Bows faster) If so I could kiss you.

* If we always could, I didn’t know.

How has nobody asked if this is compatible with any ROM and it’s modules, or just SS?

We always could do that, yeah. This tool doesn’t really do anything that Nightmare can’t (yet), it just makes life easier for the hacker.

And yes, this is compatible with any ROM, assuming that the modules are correct.

1 Like

You also need Python35.dll to run it. Why wasn’t this mentioned? The desktop I use for hacking doesn’t have i :sweat:

Why wasn’t this mentioned?

Because this topic is 1 hour old and you’re the first to try it lol

Anyways, thanks for the heads up, added it to the link.

1 Like

Now if I can just like, cheat, and copypaste some shit from my google docs, I can skip like 90% of development wheee

Edit: future note for Yeti, you should do this too

Ok, you should no longer need any dlls to run it.


Yay portable installations. The c2d file is independent of roms too!

The romless, ea-installing future is in the works.

Can you make a version that takes --to-stdout as a commandline option and if given that, writes the output of a csv file to stdout instead of a file? Or rather, a version that only does one csv file?

New Update! Now you can use EA Definitions files to make your tables 100x more readable!

1 Like

Updated: thanks to the new features in EA v10.0, you can now put your tables inline in free space!

#include TableInstaller.event in some free space, and in the first cell of the CSV, put “INLINE Label_name” to show that the table is to be included inline. This makes expanding and repointing a table much easier as you can now update the pointer to wherever Label_name is located, as well as add entries to the end of the table without issue.


I almost fully understand this but from what I do understand, damn this is really awesome! This is going to make the hacking process much faster~ Circles, you are awesome.

Here’s some pre-ripped CSVs for vanilla FE8, so you only have to edit and run C2EA without worrying about N2C:

1 Like

This is really cool! I might use it for my FF1 hacking.

Is any particular version of EA required or is V9.10 still good?

V10.0 or beyond (newest is preferred)

1 Like

UPDATE: Fixed a glitch where N2C.exe searches for nightmare modules in the ROM’s directory instead of the N2C directory.

1 Like

Repointing is easier than ever with C2EA now able to automatically repoint files. Also you no longer need to drag and drop, if you do not drop a file it will open a file select dialog instead.


I’m new to hacking and don’t know what I’m doing, but I got this to work for FE8 roms but can’t get it to work with FE7. I have my nightmare modules and make the spreadsheets with n2c fine, but when I try c2ea I immediately get something like this:

  File "C:\Fe7 Hack Test\Tables\c2ea.py", line 124, in <module>
  File "C:\Fe7 Hack Test\Tables\c2ea.py", line 118, in main
    rom = process(csvfile, index, rom)
  File "C:\Fe7 Hack Test\Tables\c2ea.py", line 65, in process
    for row in table:
_csv.Error: field larger than field limit (131072)

So, does this mean there’s something wrong with my modules? Or FE7 has too many modules? Or is there something with c2ea that I’m missing here?

It’s an error in one of your modules, yeah. IIRC it’s one of the animation ones?

1 Like