One little problem now: SInce i've worked on the ET3000/ET4000 emulation, it seems to have broken the CGA emulation(which was about perfect afaik). Now 8088MPH shows several screens twice vertically(one good copy and one bad copy at the bottom). Also the scrolling vertical text seems to scroll off the top of the screen now.
Scali? Reenigne?
I think it still worked one week ago (commit c6a5cfd, the last commit of 2016/06/10). I have changed some things for better compatibility with the SVGA/VGA, but it appears some of them have broken the CGA emulation?
Edit: Confirmed still working at commit 6144117 (2016/06/12).
Edit: After returning to the current commit from 2016/06/16 1:54(which somehow seems to introduce the bug), I think it might have something to do with the offset between scanlines?
Edit: The bugs have been fixed: The way the byte mode affected the new row offset(compared to the previous row, VGA CRTC register 13h), Start address(index 0xC and 0xD) and cursor location (index 0xE and 0xF) all needed to be shifted left ONLY when the VGA is in byte mode(to apply CGA timings to the VGA modes, which count in byte instead of words, like the CGA does). There also was an error in applying the clock shift to the cursor location(shifting it up on the screen). This has been removed(as this is usually done when rendering only. as It doesn't affect the address pointed to(the character in VRAM).
8088 MPH works without problems now again.
Windows 3.0 in 256 colors still seems to fail though:(
Anyone can see what's going wrong?
The entire VGA/CGA/SVGA(ET3000/ET4000) emulation:
https://bitbucket.org/superfury/x86emu/src/6f … /vga/?at=master
Edit: It seems even the normal VGA games on the ET3000 (Tested with Ultima 6) go wrong on the ET3000, while working on the normal VGA emulation:
The attachment 213.png is no longer available
The attachment Ultima6_VGA_x86EMU.zip is no longer available
The attachment 214.png is no longer available
The attachment Ultima6_ET3000_x86EMU.zip is no longer available
Edit: The updated source code of the above images and files, with et4000.h/c renamed to tseng.h/c(Since it's not purely the Tseng ET4000 graphics card being emulated).
https://bitbucket.org/superfury/x86emu/src/ad … /vga/?at=master
Anyone can see what's going wrong here? Is the VRAM itself incorrect? Or is the rendering incorrect?
Within the .zip files:
VGA_ATT.bmp, VGA_DAC.bmp: Full dump of the two palettes (Attributes and DAC 256-color table).
vga_*regs.dat: A direct dump of the VGA registers themselves.
VGA256col.bmp: A direct dump of the VRAM(linear graphics assumed) using the offset between rows from the VGA precalculations and each pixel next to each other without padding in VRAM(for comparison).
VRAMtext.bmp: A dump of VGA plane 2 text graphic data in text mode(each bit being pixel on/off for that font).
vga_vram.dat: A full dump of the entire VRAM(256K used for VGA, 512K for ET3000/ET4000(Tseng)).
Anyone can see what's going wrong?