- C 97%
- Makefile 3%
* Adding ability to slice macros * Fixing spelling error in gzmslice part of README * Addressing code review comments |
||
|---|---|---|
| src | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
gz tools
A collection of tools relating to gz, the OoT Practice ROM, mostly tools for manipulating gz macro (.gzm) files.
It provides the following tools:
gzmstat
A simple tool for reading various data in a .gzm file.
Example usage: ./gzmstat macro.gzm
Example output:
macro.gzm:
n_input: 450
n_seed: 4
n_oca_input: 0
n_oca_sync: 0
n_room_load: 0
rerecords: 29
last_recorded_frame: 449
gzm has 4 seeds:
frame: 84, old: 7860f5c3, new: 840aaf88
frame: 177, old: ecdafc54, new: 5876bcf8
frame: 303, old: 3045b7e3, new: faf4f6d2
frame: 448, old: 32eef46a, new: b304498c
n_inputis the number of stored inputs, one per frame of the macro. This also doubles as the duration.n_seedis the number of saved rng seeds. Each saved rng seed stores three numbers: The frame on which the rng seed should be set, the value the rng seed should be before restoring the saved value, and finally the saved value itself.n_oca_input,n_oca_sync,n_room_loadare additional data optionally stored by macros to help movies sync under certain conditions such as playing the ocarina.rerecordsandlast_recorded_frameare the number of rerecords and the frame that was last recorded, used to track when to increment the rerecord counter.
gzmcat
Concatenates two separate macro files together into a single macro file. The two macros are concatenated in such a way that the rng remains synced throughout. In order to do this the first macro must end shortly after entering a loading zone, and the second macro must start just before entering the same loading zone. Concatenating these two macros will stitch them on the frame the scene loads and fix the saved rng values and frame numbers.
Example usage: ./gzmcat macro1.gzm macro2.gzm macro3.gzm
(with macro1.gzm and macro2.gzm satisfying the condition outlined above)
gzmslice
Slices a piece of the input macro from the input starting frame to the input ending frame into a new macro file.
Example usage: ./gzmslice input.gzm output.gzm 0 2000