Table of Contents
- What this file does
- Overlays
- Determining the pointer table structure
- Overlay Addresses & Slot Assignments
What this file does
From our assumptions, the file ONMOVR.BIN is used for anything related to the player’s data stats, equipment and more.
This includes:
- Shop items [Armor, Weapons, Items]
- Skills/Techniques
- Gold/XP
- Any “Pause” menu items [Controller/Camera Settings]
Overlays
There are three(3) main overlay files used at any given time in game.
We’ll call them: LoadOverlay, LoadCnstOverlay, & LoadProgOverlay.
Their respective names correlate to the addresses in memory listed below.
That means LoadCnstOverlay loads an overlay from ONMOVR.BIN to the CnstOverlayAddress.
Given that, only three(3) overlays can be active at the same time (at my current knowledge). One(1) from OVR.BIN, two(2) from ONMOVR.BIN.
Given the base addresses, the size a single overlay can have is limited, but that shouldn’t be an issue.
It should be mentioned that findings so far are explicitly calls to load overlays from the main executable (SCPS_101.05).
Overlays can load other overlays, given they don’t interefere.
Overlay-to-overlay loads have not been researched yet.
For certain scenarios, the main Overlay Drawing method can be copied into ONMOVR_002 (since pretty much all cutscenes in the dungeons use it).
- it doesn’t patch the method everywhere, and since other text patching methods are already in ONMOVR_002, it fits the purpose
- Scenarios include some menus and certain dialogs (popup text w/o the colored overlay) from the main executable, which means we’ll have a mix of variable width font in ASCII, and Full Width
Determining the Pointer Table Structure - ONMOVR.BIN
We believe it could be:
- Following the same pattern as
OVR.BINas it:- follows the mentioned pattern
- Count checks out
- table pattern visibly stops after selected area
- columns only contain increasing values in an unbroken pattern
- The offset should only be shifted by two
2, the size also shifted by2. - This one MAY be the table for the whole BIN file.
Overlay Addresses and Slot Assignments
Base Adresses for overlays:
| Type | Address |
|---|---|
| ProgOverlay | 0x80153eb0 |
| BaseOverlay | 0x80158138 |
| CnstOverlay | 0x8015f328 |
| SubOverlay | 0x80156CA4 |
All entries are base 0.
LoadCnstOverlay calls at addresses:
8001c91c-> Slot 0168002a5dc-> Slot 0168003c794-> Slot 0168003270c-> Slot 0188007af40-> Slot 0278002a588-> Slot 027
LoadProgOverlay calls at addresses:
8002c708-> Slot 0008007ae24-> Slot 0018001cd4c-> Slot 002 (“DEMO PLAY”)8003f950-> Slot 003 (“DEMO PLAY”)8001cd7c-> Slot 0198003d44c-> Slot 0198002a4f0-> Slot 0288002a6ec-> Slot 0288002a70c-> Slot 028