So, a little while ago I decided to redo my FE5 disassembly in a new format. Progress has been slow, and one of the main things I need to do is to re-add all of the vanilla chapter events from the old repository. This is a slow task, where the process is mostly
- Create a new installer file for the chapter
- Put the sections at their vanilla positions in the main build script
- Copy small chunks of events from old → new
- Fix old event code and macro names
- Look for things that could be macroified
- Building after each chunk to catch mistakes early
Since the new disassembly doesn’t have any of the dialogue or other things disassembled, I have to add their pointers into the definitions area of the chapter’s installer. One of the main goals of the new format is to consolidate the chapter events and event data (and eventually world map events) into one file.
Anyway, the point of this post is to ask if anyone would be willing to help with this. To get started, grab the current repository and follow the readme to set it up (let me know if you have trouble, by the way) and also grab the old version from the releases tab of the repository. Take a look at the currently-added events to get a feel for how they’re structured.
Basically, they look like
.weak
WARNINGS :?= "None"
.endweak
GUARD_FE5_CHAPTER{number} :?= false
.if (!GUARD_FE5_CHAPTER{number})
GUARD_FE5_CHAPTER{number} := true
.include "../../VoltEdge/VoltEdge.h"
; Definitions
.weak
...
.endweak
; Freespace inclusions
.section Chapter{number}EventsSection
...
.endsection Chapter{number}EventsSection
.section Chapter{number}DataSection
...
.endsection Chapter{number}DataSection
.endif ; GUARD_FE5_CHAPTER{number}
where {number}
is the chapter’s number.
In the main build script Build.asm
, the (currently) two sections for each chapter are added to their fixed locations. This involves using the old disassembly’s build script and offset comments:
Say, for chapter 3, I’d check the old build script to find that they’re inside a block that begins with
* = $060000
.logical $8C8000
and in the actual event file
eventChapter3Events ; 8C/E435
which tells me that (if whatever comes directly before/after them isn’t already added) I’ll need to create a block in the new build script that looks like
* := $066435
.logical mapped($066435)
startEvents
.dsection Chapter3EventsSection
endEvents
.endlogical
The same thing is done for the chapter data section:
In the old script:
* = $188000
.logical $B18000
and in the data
eventChapter3Data ; B1/F318
mean that in the new build script I’d add
* := $18F318
.logical mapped($18F318)
startData
.dsection Chapter3DataSection
endData
.endlogical
Anyway, if anyone would like to help, hit me up here or on Discord.