FreeBE/mach64/notes.txt

79 lines
3.2 KiB
Plaintext
Raw Permalink Normal View History

2024-05-29 19:55:33 +03:00
______ ____ ______ _____ ______
| ____| | _ \| ____| / / _ \| ____|
| |__ _ __ ___ ___| |_) | |__ / / |_| | |__
| __| '__/ _ \/ _ \ _ <| __| / /| _ | __|
| | | | | __/ __/ |_) | |____ / / | | | | |
|_| |_| \___|\___|____/|______/_/ |_| |_|_|
ATI mach64 driver implementation notes.
This driver is currently a limited implementation of VBE/AF for mach64.
It is not very well tested and may not work for you (if it doesn't,
give me your system description and a description of the problems).
It has a built-in table of known VESA modes, as well as all non-VESA
modes that the mach64 BIOS supports, but currently the non-VESA mode
setting doesn't work properly, so only VESA modes are enabled. However,
it is able to take advantage of extra VESA modes provided by tools like
Scitech Display Doctor.
It supports 8, 15, 16, 24, and 32 bits per pixel, if available. It
currently provides acceleration for these primitives:
DrawScan()
DrawPattScan()
DrawRect()
DrawPattRect()
BitBlt()
SrcTransBlt() (not in 24bpp)
DrawLine() (not in 24bpp)
These accelerated functions are planned and may be provided in the
future:
DrawTrap() (actually the mach64 seems to be able to draw entire
polygons, too bad there isn't a DrawPoly() in VBE/AF;
DrawTri() and DrawQuad() may be possible, but since
they are not widely used, who cares about them)
PutMonoImage() (using HOST transfer, perhaps)
BitBltSys() (using HOST transfer)
SrcTransBltSys() (same here)
SetCursor()
SetCursorPos()
SetCursorColor()
ShowCursor()
This driver is not portable to anything but DOS+DPMI, since it uses
DPMI to communicate with the mach64 BIOS.
Both linear and banked modes are supported, but SetBank32 is in the
current (sloppy) implementation not fully relocatable, but this should
rarely be a problem since linear modes are much more fun anyway.
If you want to have 32bpp and 1600x1200 modes without having to
install Scitech Display Doctor, define REFUSE_VESA and try to find out
why the mach64 mode settings doesn't work properly, then uncomment the
appropriate extra modes, and report to me.
Virtual heights above screen height (for hardware scrolling) may not
work properly above 8bpp, I'm not sure why yet, but it looks like it
could be a bug in Allegro.
DrawLine does not seem to be rounded exactly like Allegro's, which
becomes evident when clipping.
I'm not sure how to do patterns. It is possible to load an 8x8 mono
pattern into the mach64 registers and use it, but I'm not sure how,
but I made a guess and implemented that, and it seems to work, but
I'm not totally sure. As for color patterns, I have just disabled
them since I haven't figured out how to do those yet. It would be
possible to use Shawn's technique; to bitblt them from offscreen VRAM,
but use TILE_X enabled for automatic tiling, but it doesn't seem
worthwhile at present, if there is a better way.
Ove Kaaven <ovek@arcticnet.no>