LibAlleg does not have a guide on framerate-independent game logic, which makes removing the FPS cap difficult. No worries, I could do multithreading.
Except for some ungodly reason, the renderer is hard-capped at 60 frames per second, agnostic to my own code. This is "120"
I only found this out the hard way when my timescale math inadvertently caused the publisher intro to be twice as long instead of just being double the framerate.
At that time I had not implemented a delta timer because I was relying on Allegro's event timers for pacing, so I had no way of viewing the framerate until I took this screenshot. You can probably imagine the hours I wasted trying to fix my code not realizing what was happening.
*sigh* time to contact the IRC again...
@gentoobro After talking with some Allegro experts and clearing things up I had decided that the built-in event timer is good enough for managing game logic. It abstracts all of the math involving timings for me. The reason I use my own delta time math here for the renderer, instead of creating a second Allegro timer for it, is so that I have enough control over it to monitor render performance.
Other OpenGL software runs at any framerate just fine and I have VSync off on Picom (my X11 compositor) so it might be an internal limitation. Have not tested on Windows yet.