Development screenshots

Discussion of development and patch submission.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Development screenshots

Post by SarahWalker »

Since the Development forum is currently empty, I thought I'd start posting some screenshots of current developments.

The first update is of the ViRGE S3D emulation, which has got to the point that some games can be (slowly!) played on it. Tomb Raider and Terminal Velocity (with affine texturing) work, though the lack of alpha on some textures is quite noticeable. Perspective texturing currently looks like it's using the wrong mipmap levels.
virge_cube.png
virge_cube.png (80.08 KiB) Viewed 57058 times
virge_tomb.png
virge_tomb.png (233.71 KiB) Viewed 57058 times
virge_terminal_affine.png
virge_terminal_affine.png (123.86 KiB) Viewed 57058 times
virge_terminal_perspective.png
virge_terminal_perspective.png (60.08 KiB) Viewed 57058 times
virge_croc.png
virge_croc.png (90.26 KiB) Viewed 57058 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Fixed the texture LOD issue, and implemented blending and more texture modes. Still some issues though - as can be seen below, Quake and Jedi Knight have texture issues and some missing triangles.
virge_croc.png
virge_croc.png (166.55 KiB) Viewed 57034 times
virge_quake.png
virge_quake.png (189.88 KiB) Viewed 57034 times
virge_jedi.png
virge_jedi.png (169.15 KiB) Viewed 57034 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Fixed the perspective issues (overflow), and the missing triangles by switching to emulating a ViRGE/DX as well as the original; I suspect the D3D drivers for the original chip are broken but don't own one to test.
virge_quake.png
virge_quake.png (197.8 KiB) Viewed 57007 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Made more improvements to the ViRGE emulation - better subpixel correction removes most polygon gaps, fixed issues with mipmapping, and implemented dithering (though as ViRGE dithering is extremely poor this will be optional).

Annoyingly, it's getting difficult to determine whether rendering issues are bugs in the emulator or bugs in S3's drivers; eg Turok has issues when mipmapping is enabled (as shown below), which turn out to also be present on real hardware. GLQuake is also prone to driver bugs screwing up the rendering in strange and interesting ways.
Turok mipmap.png
Turok mipmap.png (203 KiB) Viewed 56236 times
Turok no mipmap.png
Turok no mipmap.png (250.09 KiB) Viewed 56236 times
Forsaken.png
Forsaken.png (265.71 KiB) Viewed 56236 times
G-Police.png
G-Police.png (159.55 KiB) Viewed 56236 times
Incoming.png
Incoming.png (188.04 KiB) Viewed 56236 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Fixed a stupid IDE bug (transfers of 256 sectors were handled incorrectly), Windows 2000 now works. This is the most recent version of Windows that will run on PCem; XP requires instructions not present on any CPU currently emulated.
win2k.png
win2k.png (108.07 KiB) Viewed 55359 times
nerd73
Posts: 116
Joined: Wed 24 Sep, 2014 11:16 pm

Re: Development screenshots

Post by nerd73 »

TomWalker wrote:Fixed a stupid IDE bug (transfers of 256 sectors were handled incorrectly), Windows 2000 now works. This is the most recent version of Windows that will run on PCem; XP requires instructions not present on any CPU currently emulated.
win2k.png
What about the WinChip? I've seen XP install and run on the original WinChip before.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

I was going off the Winchip datasheet, which stated that CMPXCHG8B was disabled due to 'a bug in Windows NT' - from what you're saying this isn't actually the case. I don't think you're missing much though; while XP will run on PCem if CMPXCHG8B is added, it is _extremely_ slow.
nerd73
Posts: 116
Joined: Wed 24 Sep, 2014 11:16 pm

Re: Development screenshots

Post by nerd73 »

TomWalker wrote:I was going off the Winchip datasheet, which stated that CMPXCHG8B was disabled due to 'a bug in Windows NT' - from what you're saying this isn't actually the case. I don't think you're missing much though; while XP will run on PCem if CMPXCHG8B is added, it is _extremely_ slow.
Yeah, that is true. (Well, it might be a bit faster at 240 MHz if PCem allows the CPU to run at 100% full power)

PS: Pentium or K6 emulation anytime soon?
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

pentium.png
pentium.png (22.26 KiB) Viewed 54354 times
pentium_2.png
pentium_2.png (38.21 KiB) Viewed 54354 times
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Development screenshots

Post by leilei »

I'm guessing 60 and 66 are left out until the FDIV bug's recreated

There are also 150MHz PMMXes out there. Laptops though
Last edited by leilei on Sun 16 Nov, 2014 2:21 pm, edited 1 time in total.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

60 and 66 are left out until I add support for a socket 4 motherboard...
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

winxp.png
winxp.png (351.85 KiB) Viewed 54338 times
nerd73
Posts: 116
Joined: Wed 24 Sep, 2014 11:16 pm

Re: Development screenshots

Post by nerd73 »

TomWalker wrote:
winxp.png
Awesome!
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Floating point is fun. Unreal requires that comparisons between -infinity and -infinity return equal, which is the case with x87 but isn't the case with GCC. I've gotten it to work by using some inline assembly, but this only seems to work correctly when optimisation is disabled - not helpful! Still some more debugging to do...
unreal.png
unreal.png (144.18 KiB) Viewed 53692 times
unrealtournament.png
unrealtournament.png (135.43 KiB) Viewed 53692 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Video of Unreal Tournament running : http://youtu.be/32Y3azSPvho
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Development screenshots

Post by leilei »

I've seen that model lighting issue before in a completely different engine I was working on hacking colored lighting into. I'm guessing it's not getting clamped to 0 or something else is pushing it beyond 0?
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Annoyingly, after spending the last couple of days trying to track down the cause of the lighting issue, it turned out to be a bug in UT's non-MMX software renderer; I've been able to reproduce it on my main machine by running with -nommx. One of the gouraud-shaded triangle routines sets itself up like :

Code: Select all

Rstart = R1
Gstart = G1
Bstart = B1
dRY = (G2-G1) / dY
dGY = (B2-B1) / dY
dBY = (R2-R1) / dY
I'll leave it as an exercise to the reader as to why this doesn't work very well. The MMX version runs fine. I can only assume Epic didn't have any old P166s hanging around the office in 1999.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

pcem_3dfx.png
pcem_3dfx.png (73.75 KiB) Viewed 53173 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Lots of progress on Voodoo emulation, some more screenshots :
pcem_3dfx2.png
pcem_3dfx2.png (63.59 KiB) Viewed 53053 times
pcem_q2_3dfx.png
pcem_q2_3dfx.png (237.2 KiB) Viewed 53053 times
pcem_gta_3dfx.png
pcem_gta_3dfx.png (280.18 KiB) Viewed 53053 times
pcem_unreal_3dfx.png
pcem_unreal_3dfx.png (363.29 KiB) Viewed 53053 times
pcem_3dmark_3dfx.png
pcem_3dmark_3dfx.png (489.74 KiB) Viewed 53053 times
pcem_q3_3dfx.png
pcem_q3_3dfx.png (147.64 KiB) Viewed 53053 times
pcem_ultrahle_3dfx.png
pcem_ultrahle_3dfx.png (237.67 KiB) Viewed 53051 times
Alegend45
Posts: 85
Joined: Sat 26 Apr, 2014 4:33 am

Re: Development screenshots

Post by Alegend45 »

Holy shit UltraHLE in a PC emulator. That's funny.
SA1988
Posts: 274
Joined: Wed 30 Apr, 2014 9:38 am

Re: Development screenshots

Post by SA1988 »

Alegend45 wrote:Holy shit UltraHLE in a PC emulator. That's funny.
Correction, it is a N64 emulator for PC.
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: Development screenshots

Post by Battler »

- SA1988: He said UltraHLE in a PC emulator, not is a PC emulator.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

A number of fixes get BeOS 5 working... mostly. You have to run using the 'Award SiS 496/497' system to get the mouse working, and there seems to be some kind of FPU issue.
pcem_beos5pe.png
pcem_beos5pe.png (61.92 KiB) Viewed 51891 times
Edit: FPU issue turned out to be a missing instruction.
pcem_beos5pe2.png
pcem_beos5pe2.png (57.81 KiB) Viewed 51887 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

A couple of screenshots of the PS/1 ROM-based GUI from the recent PS/1 work. Note for those trying this, the MESS 'ibmps1es' ROM set appears to be corrupt and won't work.
pcem_ps1_1.png
pcem_ps1_1.png (51.17 KiB) Viewed 51299 times
pcem_ps1_2.png
pcem_ps1_2.png (37.77 KiB) Viewed 51299 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

A couple of CPU fixes get DESQview/X working :
pcem_desqviewx.png
pcem_desqviewx.png (53.95 KiB) Viewed 50646 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Fixed a stupid FPU bug, Half-Life now appears to work with no issues (previously the train at the beginning would sometimes turn the wrong way and the player would fall out of it) :
pcem_halflife.png
pcem_halflife.png (497.55 KiB) Viewed 50267 times
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Uploaded a few videos of current PCem builds running stuff :

https://www.youtube.com/watch?v=bAOdsKvbW-0 - Colin McRae Rally
https://www.youtube.com/watch?v=PpHTYy3LLec - Tony Hawks 2
https://www.youtube.com/watch?v=3A4dTDhCB5M - House of the Dead 2
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Development screenshots

Post by SarahWalker »

Nice to see that IBM's graphics designers got to do something with the PS/2. If the Model 50 can't boot you get some ASCII art :
ps2_nodisc.png
ps2_nodisc.png (37.47 KiB) Viewed 44373 times
and playing with the 55SX, if the self test fails you get this masterpiece :
ps2_bad.png
ps2_bad.png (38.16 KiB) Viewed 44373 times
User avatar
ppgrainbow
Posts: 479
Joined: Thu 04 Sep, 2014 7:03 am
Contact:

Re: Development screenshots

Post by ppgrainbow »

Obviously, for the model 50 (top screenshot), the ASCII art tells you to "insert a diskette in drive A and press F1 to continue".

As for the model 55SX (bottom screenshot), these error codes 160 (Planar ID), 162 (system options not set) 163 (time and date not set and 201 (memory test failed) mean that something is wrong and user needs to run setup to fix the issue.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Development screenshots

Post by leilei »

I've seen that 55SX's error on a '96 Thinkpad by holding down keyboard keys, rebooting after ERROR and doing it again. so if a cat sits on a keyboard for awhile you'll have to send it back to ibm (it really means RTFM, but i like to think of it as the ibm building)

This is no doubt done to reduce localization costs for bios support.
Post Reply