IRIX 3dfx Voodoo driver and glide2x IRIX port

Developers have successfully ported 3dfx Voodoo drivers and the Glide2x API to IRIX, specifically targeting SGI O2 (IP32) systems, enabling legacy 3D hardware support on classic workstations.
At the moment only SST1 (Voodoo1) is supported on IP32 (O2). Only tested on IRIX 6.5.30 with RM7000C CPU.
-driver sources (SST1 and CVG support on IP32) https://github.com/sdz-mods/tdfx_irix
-glide2x IRIX port (SST1 on IP32) https://github.com/sdz-mods/glide_irix
-hinv wrapper with 3dfx support: https://github.com/sdz-mods/hinv_3dfx
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: init — 3Dfx Voodoo1/Voodoo2 driver
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: registering for Voodoo1 and Voodoo2
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: attaching Voodoo1 (SST-1) as card 0
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: SST-1 BAR0 mapped: reg_kva=bb000000 reg_phys=0x1b000000 fb_kva=bb400000 fb_phys=0x1b400000
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: IP32 write-gather skipped for SST-1 (single BAR)
Mar 23 13:48:33 5A:IRIS unix: NOTICE: tdfx: card 0 (Voodoo1 (SST-1)) reg_phys=0x1b000000 fb_phys=0x1b400000
Mar 23 13:48:37 5A:IRIS unix: NOTICE: tdfx: card 0 accessible at /hw/tdfx0
Mar 23 13:48:37 5A:IRIS unix: NOTICE: tdfx: 1 card(s) registered
Mar 23 13:48:33 5E:IRIS lboot: Module /var/sysgen/boot/tdfx.o dynamically loaded.
IRIS 31# ./test20
test20:
mipmap modes
2.46
Resolution: 640x480
Press A Key To Begin Test.
Couldn't determine cpu type. Using i586
initEnumHardware: calling pciOpen
fxirix: 1 3Dfx card(s) opened
pciOpen: hasDev3DfxIrix=1
pciOpenIrix: numDevices=1
initEnumHardware: pciOpen OK
initEnumHardware: slot 0 vendor=0x121a device=0x1
initEnumHardware: SST1 defined, checking TDFXVID=0x121a SST1DID=0x01
initEnumHardware: SST1 card detected at slot 0
fxirix: device 0 TDFX_GET_REGBASE=0x1b000000
fxirix: card 0 reg_base=0x1b000000 fb_base=0x1b400000 reg_size=4194304 fb_size=12582912
fxirix: map card 0 reg window phys=0x1b000000 size=16777216
fxirix: mmap fd=3 offset=0x0 length=16777216
fxirix: device 0 TDFX_GET_REGBASE=0x1b000000
SetGrxClk: tex write sstbase=4000000 addr=4f00000
vidInit: A (after VCLK_ENABLE)
vidInit: B (timing regs done)
vidInit: C (SetResolution done)
vidInit: D (before CalcGrxClk)
vidInit: E (CalcGrxClk done)
SetGrxClk: tex write sstbase=4000000 addr=4f00000
fxirix: device 0 TDFX_GET_REGBASE=0x1b000000
grTexClampMode: tmu=0 hw=4000000 packerFix=0x4e20000
grTexClampMode: before PW1, SST_TMU(hw,0)=4000800
grTexClampMode: before TMU write addr=0x4000b00 val=0x800000c0
grTexClampMode: readback done, updating shadow
grTexClampMode: shadow updated, calling GR_END
grTexClampMode: returning
_grTexDetailControl: tmu=0 detail=0x40ff addr=0x4000b08
_grTexDetailControl: write+readback done
_grTexDetailControl: returning
IRIS 32# hinv_3dfx
CPU: QED RM7000 Processor Chip Revision: 5.1
FPU: QED RM7000 Floating Point Coprocessor Revision: 5.0
1 802 MHZ IP32 Processor
Main memory size: 1024 Mbytes
Secondary unified instruction/data cache size: 256 Kbytes on Processor 0
Ternary unified instruction/data cache size: 1 Mbyte on Processor 0
Instruction cache size: 16 Kbytes
Data cache size: 16 Kbytes
FLASH PROM version 4.18
Integral SCSI controller 0: Version ADAPTEC 7880
Disk drive: unit 2 on SCSI controller 0
Integral SCSI controller 1: Version ADAPTEC 7880
On-board serial ports: tty1
On-board serial ports: tty2
On-board EPP/ECP parallel port
CRM graphics installed
Integral Ethernet: ec0, version 1
Video: MVP unit 0 version 1.4
with no AV Card or Camera.
Vice: TRE
Graphics board: 3dfx Voodoo
IRIS 33# hinv_3dfx -v
CPU: QED RM7000 Processor Chip Revision: 5.1
FPU: QED RM7000 Floating Point Coprocessor Revision: 5.0
1 802 MHZ IP32 Processor
Main memory size: 1024 Mbytes
Secondary unified instruction/data cache size: 256 Kbytes on Processor 0
Ternary unified instruction/data cache size: 1 Mbyte on Processor 0
Instruction cache size: 16 Kbytes
Data cache size: 16 Kbytes
FLASH PROM version 4.18
Integral SCSI controller 0: Version ADAPTEC 7880
Disk drive: unit 2 on SCSI controller 0 (unit 2)
Integral SCSI controller 1: Version ADAPTEC 7880
On-board serial ports: tty1
On-board serial ports: tty2
On-board EPP/ECP parallel port
CRM graphics installed
Integral Ethernet: ec0, version 1
PCI Adapter ID (vendor 0x9004, device 0x8078) PCI slot 1
PCI Adapter ID (vendor 0x9004, device 0x8078) PCI slot 2
PCI Adapter ID (vendor 0x121a, device 0x0001) PCI slot 3
Video: MVP unit 0 version 1.4
with no AV Card or Camera.
Vice: TRE
Graphics board: 3dfx Voodoo (unit 0)
Vendor: 3Dfx Interactive Device ID: 0x0001
Register base: 0x1b000000 size: 4096 KB
Framebuffer base: 0x1b400000 size: 12288 KB
Source: Hacker News









