VOGONS


Voodoo 2 4444SX

Topic actions

Reply 42 of 88, by sdz

User metadata
Rank Member
Rank
Member

I ported the changes to the 4444SX, now the FPGA generates the video clock that the FBI requests, feeds it into the FBI, then it takes the video clock output from the FBI and feeds it into the MMCM to generate required internal clocks for HDMI and for sampling the RGB bus.

S1.jpg
Filename
S1.jpg
File size
1.21 MiB
Views
803 views
File license
Public domain

Still messed up. The right side of the card doesn't have those memory buffers installed, so I'll add them and test with them next. If that's not it, then something could be wrong with the FBI itself (as in how it's configured).

Reply 43 of 88, by sdz

User metadata
Rank Member
Rank
Member

A few days ago I probed all the FBI RGB out pins, to see any of them are stuck, as that would explain the green tint. All signals showed transitions, so the FBI should have been OK.
Before adding the memory buffers, I managed to get Xilinx's ILA (integrated logic analyzer) working. This can be configured to sample various signal, hold them into memory and then slowly output them via JTAG.

First I sampled the upper 8 bits corresponding to the green color, and synced them with the pixel clock coming from the FBI. 3 bits were always stuck. Then I sampled them with an indepedent clock, just to rule out the unlikely case that the FBI actually sends those values, and they were still stucked.

CAPTURE1.png
Filename
CAPTURE1.png
File size
93.24 KiB
Views
770 views
File license
Public domain

Only possible reason is the FPGA, so I decided to replace it. After I removed it, I saw this:

20240217_162851.jpg
Filename
20240217_162851.jpg
File size
1.67 MiB
Views
770 views
File license
Public domain

Clearly some of the balls weren't soldered at all, including the balls used for those data bits. I'm not sure why that happened, maybe I didn't clean be board enough before soldering.

After soldering in a new FPGA:

20240217_173322.jpg
Filename
20240217_173322.jpg
File size
1.85 MiB
Views
770 views
File license
Public domain
20240217_173308.jpg
Filename
20240217_173308.jpg
File size
1.22 MiB
Views
770 views
File license
Public domain

Good colors on the 4444SX! Yay!

At least 1 TMU clearly has an issue, so that's next to investigate.

Last edited by sdz on 2024-02-17, 16:39. Edited 1 time in total.

Reply 44 of 88, by hard1k

User metadata
Rank Oldbie
Rank
Oldbie

Any sufficiently advanced technology is indistinguishable from magic!

Fortex, the A3D & XG/OPL3 accelerator (Vortex 2 + YMF744 combo sound card)
AWE64 Legacy
Please have a look at my wishlist (hosted on Amibay)

Reply 45 of 88, by bloodem

User metadata
Rank Oldbie
Rank
Oldbie

Just stumbled upon this thread and... I'm lost for words.
Amazing work, @sdz!

1 x PLCC-68 / 2 x PGA132 / 5 x Skt 3 / 9 x Skt 7 / 12 x SS7 / 1 x Skt 8 / 14 x Slot 1 / 5 x Slot A
5 x Skt 370 / 8 x Skt A / 2 x Skt 478 / 2 x Skt 754 / 3 x Skt 939 / 7 x LGA775 / 1 x LGA1155
Current PC: Ryzen 7 5800X3D
Backup PC: Core i7 7700k

Reply 46 of 88, by sdz

User metadata
Rank Member
Rank
Member

Fixed the TMU issue:

https://www.youtube.com/watch?v=WFN9KXECng8

20240217_183140.jpg
Filename
20240217_183140.jpg
File size
1.22 MiB
Views
753 views
File license
Public domain

It's alive!!!

Now I need to add the missing FBI, re-enable SLI and implement support for other resolutions/refresh rates. But first I'll play some Quake II on it 😀

Edit: the framerate drops as I enable wireframe in donut.exe, that's normal.

Reply 47 of 88, by PD2JK

User metadata
Rank Oldbie
Rank
Oldbie

My utmost respect, keep it up!

i386 16 ⇒ i486 DX4 100 ⇒ Pentium MMX 200 ⇒ Athlon Orion 700 | TB 1000 ⇒ AthlonXP 1700+ ⇒ Opteron 165 ⇒ Dual Opteron 856

Reply 49 of 88, by zuldan

User metadata
Rank Member
Rank
Member
sdz wrote on 2024-02-17, 16:33:
Fixed the TMU issue: […]
Show full quote

Fixed the TMU issue:

https://www.youtube.com/watch?v=WFN9KXECng8

20240217_183140.jpg

It's alive!!!

Now I need to add the missing FBI, re-enable SLI and implement support for other resolutions/refresh rates. But first I'll play some Quake II on it 😀

Edit: the framerate drops as I enable wireframe in donut.exe, that's normal.

Fantastic work! When will it go on Tindie and are you shipping the first batch on Monday 😂

Reply 51 of 88, by hard1k

User metadata
Rank Oldbie
Rank
Oldbie

I think VOGONS has already developed enough to incorporate in a new hardware R&D contractor.

Fortex, the A3D & XG/OPL3 accelerator (Vortex 2 + YMF744 combo sound card)
AWE64 Legacy
Please have a look at my wishlist (hosted on Amibay)

Reply 52 of 88, by sdz

User metadata
Rank Member
Rank
Member

@Bloodem Thanks!
@PD2JK Thanks!
@Greywolf1 😁
@zuldan Maybe next monday 😀
@hard1k I think you're right about that!

While the HDMI output was good and stable, an issue still remained. Sometimes, when starting an application, the image would look like this:

20240217_192113.jpg
Filename
20240217_192113.jpg
File size
1.43 MiB
Views
586 views
File license
Public domain

The chance of this happening was about 3%. If the application looked fine at startup(as in 3dfx logo), it would look fine indefinitely.

So sometimes, something was wrong when the FBI was initialized.
I thought this was because of a glitched clock, as the FBI receives a default memclk of 30MHz, then requests 16MHz for counting the memory, followed by normal operation clock (usually 90MHz.).
All those clocks were generated by a MMCM, and just coupled to the output when a different clock was requested. This can cause problems, even for two identical clocks if they are out of phase.
So, I wasted about 8 hours implementing glitchless clock switching, and, it wasn't that.

Sometimes, the "RAMDAC" wouldn't switch to the correct clock when requested by the FBI, instead it would output the default 30MHz clock. That was the issue.
The FBI sends read and write commands, the pulse width is really small, sometimes even 15ns. And when requesting a read, the "RAMDAC" must output said data before the pulse ends.
There is also no clock from the FBI while doing this, the FBI is clocked by the PCI bus at that point, and the state machine runs asynchronous of the FBI. The timing issues were fixed by running the state machine part of the FPGA at 400MHz instead of 300MHz.

I got an Elgato 4K60 Pro MK2 and did some captures:

https://www.youtube.com/watch?v=jWuLrstyzSA
https://www.youtube.com/watch?v=8s05i3wY6q4

Maybe I set something wrong, but the image looks better with the monitor directly connected to the card.

Last edited by sdz on 2024-02-19, 22:39. Edited 1 time in total.

Reply 53 of 88, by hard1k

User metadata
Rank Oldbie
Rank
Oldbie

Quick lame question, will there be any option to inject audio into the HDMI out? Same thing for the V2 HDMI adapter.

Fortex, the A3D & XG/OPL3 accelerator (Vortex 2 + YMF744 combo sound card)
AWE64 Legacy
Please have a look at my wishlist (hosted on Amibay)

Reply 54 of 88, by sdz

User metadata
Rank Member
Rank
Member

As the V2 4444SX and V2 HDMI add-on cards are, there's no option to inject audio. But it could be implemented in another HW revision. Preferably I2S.

Edit: Adding support for other resolutions and dynamically switching is a pain.

Reply 55 of 88, by sdz

User metadata
Rank Member
Rank
Member

Added support for 640x480 and dynamic resolution switching:

https://www.youtube.com/watch?v=56O484nYDag

For now 640x480@60 and 800x600@60 are implemented. I'll add support for 1024x768@60 next, and higher refresh rates at a later date.

Reply 56 of 88, by hard1k

User metadata
Rank Oldbie
Rank
Oldbie

It's developing so fast, wow!

Fortex, the A3D & XG/OPL3 accelerator (Vortex 2 + YMF744 combo sound card)
AWE64 Legacy
Please have a look at my wishlist (hosted on Amibay)

Reply 57 of 88, by sdz

User metadata
Rank Member
Rank
Member

First SLI test, no TMUs enabled:

S4.jpeg
Filename
S4.jpeg
File size
211.34 KiB
Views
481 views
File license
Public domain

The image looks quite broken, which is odd, as it's running at 800x600 (which should be 24bpp, and only 24bpp is implemented in the FPGA at the moment). I expect only 1024x768 to be forced in 16bpp.
When the FBI outputs 24bpp, it makes two 16bit transfers (the FBI->RAMDAC interface is 16bit wide) at double the pixel clock.
When it outputs 16bpp, only one transfer is made, and the clock is equal with the pixel clock.

S5.jpeg
Filename
S5.jpeg
File size
79.96 KiB
Views
481 views
File license
Public domain

All the modes in the above picture, that don't have Pixel Clock equal to Dot Clock, are actually 16bpp. And there's also this in the driver:

S3.png
Filename
S3.png
File size
12.57 KiB
Views
481 views
File license
Public domain

Reply 58 of 88, by flyguydip

User metadata
Rank Newbie
Rank
Newbie

@sdz What would you charge to combine my two favorite iconic pieces of 3d hardware on to a black pcb if I sent you my cards? I'd love to see a Voodoo2 (or 3) combined with an Aureal Vortex 2 sound card? It would be a truly 3d card that would be outrageous and fantastic.