It is not really that it has less, it is more that injecting the macro into the ROM is memory inefficient.
The answer is "not really", you'd have to play it back to figure out what frames are at what framerate.
It (understandably) wont fall under normal publication rules for emulator. If .gzm (and console only) becomes an accepted format it could fall under Standard as the only useful glitch not used (at the time of creation) is SRM.
The Macro is stored in RAM, so it is not the ROM that is too big, but that when it loads it puts the macro into RAM. I was unclear in my explanation. In fact macro injection is memory inefficent, so this is not an issue on a real N64, but this macro is close to the limit the N64 can play without running out of memory too.
I do not actually know, I've asked the main developer of GZ, so I'll return with an answer when I have it :)
Basically having GZ as an "Approved Emulator" for Ocarina of Time?
I should specify, this is the number of actual visual frames, and not input frames. This means instead of constant 60 FPS it is measuring 20 FPS at normal gameplay, 30 FPS at pausing, and 60 FPS at the title screen (given the n64 actually lags so much it's more like 30 frames per second on title screen).
Example: The 100% TAS .gzm has 220626 inputs (or frames), but if it was the input frames it would instead be 674650. It is evident that 220626*3 is a little less than 674650, because some of the frames in the 220626 count is recorded at 30FPS or 60FPS.
extra ram: https://github.com/TASEmulators/BizHawk/compare/master...glankk:BizHawk:16mb
official documentation on macro (.gzm): https://www.practicerom.com/manual/menus/macro/index.html
The .gzm file itself is just a binary file, where:
First 4 bytes is number of inputs (or frames)
Next 4 bytes is number of RNG seeds (scene transitions)
The next 4*[number of frames] bytes are input data
The next 12*[number of rng seed] bytes are RNG seeds
The next 4 bytes is n_oca_input (usally zeroed out)
The next 4 bytes is n_oca_sync (usally zeroed out)
The next 4 bytes is n_room_load (usally zeroed out)
The next 4 bytes is number of rerecords
And the last 4 bytes is the last recorded frame
I have to say I do not understand your steps to run this on emulator especially with that github project or the instructions to open a menu in game to then run what you are calling a macro. Could you make a short video on how to make this file then run it in BizHawk?
Sorry, I thought it might not be clear as it is a little complicated. Here is a video that shows how to build gz and inject a macro.
https://www.youtube.com/watch?v=-sh3kQ3Cnqw
I will agree with other commentors that yes, this is not a vanilla OoT ROM. The gameplay is however functionally the same. The Submission notes have my view on it.