Save yourself the effort of redoing all the existing research:https://nouveau.freedesktop.org/wiki/
Edit: and perhaps clicking through links
would've been prudent as well.
This article does not specify how to do anything, just points to some docs. The documentatino for the nvidia cards (from envytools) is very complex, and is not really intended for beginners. It would be nice to have an article explaining the basics, such as switching video modes.
So you'd rather try to reverse engineer the cards by yourself as you mentioned than you'd try to follow the actual documentation (even if sparse)? Getting any native video driver working, even just in basic 2D is a really complex task. I'd advise you to start with other drivers and stick to VESA/VGA as long as possible.
Well, my idea was to essentially translate the VESA BIOS code from a nVidia card into C.
I may have incorrectly assumed that mode setting is just a specific command supported by the card (since each card has specific modes it supports).
The envytools docs seem to be talking mostly talking about how to control the GPU (the processor, not the graphics card itself), which is what lead me to think that said documentation is perhaps only interested on the operation of the GPU.
And as for setting VGA modes manually: is there actually a standard way to do this without the BIOS? There are tons of documentation on the VGA on the internet, and they all use the BIOS for mode switching, and it is non-trivial to set the mode by just playing around with VGA registers. I did see code for switching to mode 13h etc without the BIOS, but it relied on register dumps, which suggests that the author themself did not know what they were doing.
What starting point should I then take? Is it the CRT registers that I need to understand first?