First post, by superfury
Anyone knows the exact differences in mapping memory from the CPU's point of view?
Also, is the rendering in 8-bit and 16-bit the same as on VGA 8-bit(using normal VGA-compatible rasterizing), using the four planes in the same way?
I'm still having difficulty on the 8-bit and above modes, as well as anything past 800x600x16(e.g. 640x480x256, 1024x768x16, 800x600x256 and the 16-bit color variants as well(same modes as 256 colors, using modes 2Eh etc.).
The display of text rendered using WHATVGA in the 8-bit and 16-bit high-res color modes(640x480 and up) seems to have round holes punched(looks like) into the text, like cheese? The text is slightly garbled and almost unreadable. 8/16-bit rendering itself(DAC) is confirmed working(using mode 13h in 8-bit and 16-bit color modes, although the WHATVGA seems to write it's color gradients(from left to right R, G, B and White gradient bars on top of the 8-bit color gradient bars?)?
Is there a memory addressing error there somewhere?
VGA renderer: https://bitbucket.org/superfury/unipcemu/src/ … /vga_renderer.c
ET3K/ET4K specifics: https://bitbucket.org/superfury/unipcemu/src/ … ga/svga/tseng.c
CPU aperture handling: https://bitbucket.org/superfury/unipcemu/src/ … e/vga/vga_mmu.c
Also, oddly enough in 32K/64K mode it's running in 4-bit pixel mode(instead of the proper 8-bit mode), according to the attribute controller?
Edit: Perhaps a banking bug(bank >0 to 15)?
VRAM usage of banks and planar access(as a DWORD containing all planes) or single access: https://bitbucket.org/superfury/unipcemu/src/ … /vga/vga_vram.h
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io