Reply 20 of 56, by blueshogun96
- Rank
- Newbie
Sorry I haven't said anything in about a week, I have to work on this in what spare time I have from week to week. So far, I did figure out how to attach PCI devices to DOSBox (not too bad once you look over the code a few times), but the problem is that it's identified as a "Early PCI non-VGA device". I think I may have gotten the endianness of the PCI registers wrong (I used a 256-byte aligned structure and copied it into the 256 byte array; probably a stupid thing to do) so I'll have to try and fix that later. Once the card is successfully detected, then I can see what else it may take to emulate this card.
EDIT: Keep in mind that the NV1 is a "multi-function" device, meaning it has more than one function. I think it's safe to only emulate the VGA compatible function. If not, then I guess this is going to be a bit harder than I thought. Not sure if I'd have to add them both as seperate PCI_Device classes, but we'll see.
Other than that, I did find a bloke somewhere in the UK on the falconfly 3Dfx forums willing to sell me his NV1 card. When he gets back to me, I can buy it and hopefully ease the pain of reverse engineering the card's inner GPU registers.
wrote:Don't listen to the naysayers. I, for one, am looking forward to the ability to play Panzer Dragoon with the best image quality.
That's the spirit! 😏
wrote:NV1 was one of those chips that didn't do bilinear filtering so the games look a lot like CPU rendering but with some extras. […]
NV1 was one of those chips that didn't do bilinear filtering so the games look a lot like CPU rendering but with some extras.
Games
3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D))Most are OEM releases and really hard to find.
Appreciate the list (further fuels my cause!), I knew there were more games, but I guess I didn't search hard enough, heh.
EDIT2: I was right, I just got the endianness wrong. Wow, I feel stupid as that's normally a rookie/newbie mistake (and I don't claim to be the best of emu authors either as I'm probably one of the least skilled, 🤣). So now the card is officially recognized and Win95 acknowledges that it's an Diamond Edge 3D. Toshinden also recognizes it, but since I haven't added any of the registers, it just crashes.
One more random bit of information; I'm assuming anyone reading this already knows this, but I'll outline it just in case. The NV1 has two valid vendor IDs (for both PCI functions 0 and 1):
- NVIDIA: 0x10DE
- SGS Thompson: 0x104A
I'm using the SGS Thompson one for the time being, but in the end, I don't think it really matters. So that's why it says Edge3D instead of NV1. I'll start adding support for MMIO registers next time I start working on this. Thanks.