You can always ignore the BIOS routines and directly touch hardware registers/etc. so as long as you know precisely what hardware you are dealing with. Of course, this is what modern OSes do for most hardware after bootstrapping since calling back into BIOS isn't really an option.
BIOS routines are purely an abstraction layer, though the abstraction is somewhat leaky and my understanding is that most hardware was trying to be IBM compatible even when software skips the BIOS routines and directly touches hardware interfaces.
The thing is, as far as I know you do not need to use the video BIOS routines even to set the video mode. After all, the video BIOS routines are also just routines that run on the CPU, the only advantage they really have is that of any abstraction, the fact that using it allows you to be compatible with any card that implements that software interface even if it doesn't implement the same exact hardware interface. But as far as I know, if you know you're dealing with a VGA compatible card, you can set the mode by directly flipping around CRTC registers and it should work just fine.
However, since GPUs tended to vary widely when going beyond VGA modes (although I believe even the original VGA controller was capable of 800x600x4 with a suitably lenient autosync monitor), VESA VBE was introduced to make that much easier again.
Windows actually runs the VBIOS in an emulator / VM for switching modes with the default GPU driver.
You know, I thought UEFI actually was doing the same thing, but I am mistaken, at least for anything resembling modern UEFI.
Apparently, modern UEFI just doesn't bother supporting classic Video BIOS option ROMs at all, only supporting UEFI option ROMs. Then for those... you either need to hope your GPU has one for your host CPU architecture, or you can use X86EmulatorDxe, a Qemu-based LGPL module that can run AMD64 drivers on AArch64, which hasn't been updated in a few years, or Intel's MultiArchUefiPkg, a more modern solution using Unicorn Engine that supports both AArch64 and RISC-V. Which is also LGPL, but.. Unicorn Engine itself is GPL, which is obviously a potential licensing issue for any would-be users. And, Intel archived it (probably alongside tons of their other open source projects) earlier this year, so it is no longer being maintained by them. Or, finally, you can have an option ROM containing machine-independent EFI Byte Code... which is no longer required by the UEFI spec, was never really used (apparently, the primary toolchain was a proprietary Intel C compiler that is no longer updated.) So who knows how many UEFI implementations still support it. It was removed from EDK2 in 2023, so presumably newer firmwares won't handle it at all.
I'm sure most people don't care about the trainwreck that is UEFI, but I found this tangent to be surprisingly interesting. At this point, treating AMD64 as a lingua franca of PC-based computers might just be the best way forward rather than trying to invent virtual machines. If they wanted to go the VM route, they should've committed fully and only supported OpROMs that were architecture-independent from the gitgo.
All of this just so we can initialize the video card and display some messages at boot, huh.
BIOS routines are purely an abstraction layer, though the abstraction is somewhat leaky and my understanding is that most hardware was trying to be IBM compatible even when software skips the BIOS routines and directly touches hardware interfaces.
e.g. you can see documentation for the VGA card here: https://wiki.osdev.org/VGA_Hardware
The thing is, as far as I know you do not need to use the video BIOS routines even to set the video mode. After all, the video BIOS routines are also just routines that run on the CPU, the only advantage they really have is that of any abstraction, the fact that using it allows you to be compatible with any card that implements that software interface even if it doesn't implement the same exact hardware interface. But as far as I know, if you know you're dealing with a VGA compatible card, you can set the mode by directly flipping around CRTC registers and it should work just fine.
Same for disk controllers and etc.