How do insert a new chapter in a vanilla game?

And by this, i want to add a new chapter between Pale Flower of Darkness and Night of Farewells…But i dont want to overwrite anything, just add a new one. Here is the deal…
First, i have done some eventing…well editing events on vanila chapters, so ii know how to do some stuff. For example, made the four fanged offense chapters go to crazed beast on both Modes by changing one byte at the MNCH from 22 to 21…but i could not find the table that gives those IDs…or well it is the World Map Event reference that uses those Ids…Now there are some templates of chapters, but as i said, i want to add a new one not overwrite…Do the:
EventPointerTable(0x__,MAP_OFFS)

EventPointerTable(0x__,Chapter)

ORG 0x______

Reppoint the map and chapter into the list? Im not exactly sure what to put there, the ID or the Pointer to my chapter? and even then how do i make it go in the order i said, i mean before Night of Farewells and after Pale Flower of darkness?

I checked Archs tutorial, but i could not find anything about it…Now can the Event reference table and chapter data table be expanded?? Im so confused right now…

just pick an unused chapter from the chapter data list and MNCH to that

in the chapter data editor there’s an index for “chapter events”, so change that to the correct pointer index

1 Like

You’ll also want to change the “MNCH ChapterID” code (if you dsassemble PFoD) to take the player to your new interlude chapter, which will then MNCH into Night of Farewells.

1 Like

Unused chapters are the last ones?
So then in the EventPointerTable(0x__,Chapter) i just put…lets say 0x43, and map an ORG i put the offset where i put chapter and map also uses offset right? and then do what Arch says right?

Uhh…i think i dont get it… By “chapter events” you mean Event Data reference or Chapter reference Pointer. One has a pointer list and the other a byte id list…Im still confused…So the module im using is chaptder data editor…? Wich chapters are unused? Using a “cut scene” chapter would crash the game right?

So if you want to do full custom full custom then here’s what you’re going to have to do

Step 1. Open up the chapter data editor which tells you that the table is at C9A200 and is 68 entries that are 152 Bytes large each. Multiply that number and get it in hex. Which is 2860.

Step 2. Open the rom in HxD or your hex editor of choice, Go to C9A200, select from the start, 2860 bytes in total. Copy this. You’re going to find free space (part of the rom where there is no data, I don’t work with FE7 but I hear that there’s a lot of documented free space, so I’m sure you’ll find it on here.) now paste the data at the free space.

Step 3. In HxD we’re going to repoint the Chapter Data Table from C9A200 to your new location, so you’re going to do a hex serch for 00 A2 C9 08. Then, you’re going to replace it with the new pointer in reverse, Do if you inserted something to D20000 You would do a Find/Replace for 00 00 D2 08. Save. Now go and edit the Nightmare Module to your new location, otherwise it’ll still edit the old one.

Step 4. Now we’re going to increase the amount of chapters by 1 So from 68 entries to 69, that’ll give you a new chapter to build in the table, however we’re going to need an Event Reference Table. So go to Event Table References editor. And you’ll have a list of all new Tilesets and object data So we’re going to go down to when the references stop, that’s 0xCA and onwards. So when you go EventPointerTable(0x__,Chapter) It’ll be 0xCA.

Step 5. Now, we’ve got to insert the chapter itself using Event Assembler, so the basic way to do this is, at the top of your event file, putting ORG$ Offset, where the Offset is where you’re inserting it into free space.

Step 6. Now when you insert the event file, it’ll write to that ORG the event and it’ll write CA in the Event Reference Table, the offset. So now, When you open the Rom in Nightmare and Open the Chapter Data Reference table, you’ll go to your new entry, scroll down to “Event Data Reference” And change that to 0xCA.

There’s also world map events which I’ve not personally done. That, but it’s very much like writing a new event. Now I work in 6, not 7, but that all functioned for me. So I hope this helps.

2 Likes

Thanks a Lot, ill try and see if that can be reppointed, als the event reference table also needs the map offset in the, lets say CB? Anyway ill try out the reppointing and expanding

That is correct. You’ll need to manually put in the offset for the map (note. You want to start the offset with 8 and then put in the offset you’ve inserted it to. Using the D20000 Example again. If you inserted the map, you’d go to CB and type in 08D20000. I try to put tables in very open space, so I can expand as much as I need.

Also it can absolutely be repointed as I and others have had to do it.