Dolphin, the GameCube and Wii emulator - Forums

Full Version: Dolphin-specific hardware acceleration?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

ehaskell

I'm asking mostly out of curiosity as I have no knowledge of IC design, but is it feasible to develop a chip that performs the graphics operations that are so difficult to emulate precisely on modern PCs? I've read that there are these "fab labs" that can make ICs. Presumably, you hand them a blueprint and they fabricate it for you. I don't know how capable they are, but it's been like 14 years since the gamecube. At that time, the chips in the console were top-of-the-line. Today, surely enthusiasts are capable of producing a chip akin to those in the gamecube? I don't mean replicating the chips transistor for transistor as that would be in direct violation of copyright law; However, implementing the more troublesome operations (and in our own words) seems like it would move emulation toward exactness without slowing down games. Implementing these algorithms in hardware is as much a violation of copyright law as it is in software. The dolphin emulator is still here, so it can't be in violation.

As well, I don't know a whole lot about computer architecture / motherboards / how the GPU communicates with the rest of the computer, etc. Y'all probably know more than I do. I imagine that said chip could plug into a PCI express slot or something and complement the CPU and GPU rather than replace them. Would this work with a current motherboard or are they more fussy than that? Could the chip communicate via USB or is that too slow?
Feel free to use a big FPGA, I think it's quite possible to rebuild the GC CPU + GPU in such a way. But the effort is very huge :/ And it's also likely cheaper to just buy a GC :/
FPGAs are really expensive at that size, but it wouldn't be unreasonable to make a proper ASIC (supporting high internal resolutions to kill the 'buy a GC' argument) if we could get enough customers to pledge to buy one. However, I really doubt we ever could. If you happen to have a very rich friend who can afford to make a run of 10,000+ of these chips, it might be worth it.
If you have 50 people, 3 years and $MM budgets maybe that would be an option.
To be honest, I'm not sure if 50 persons over 3 years is enough :/

ehaskell

Stange how that works, eh? Plenty of individuals around the world and throughout history have written great things -- books, programs -- and without needing much money to do so. I thought the same would go for designing an ASIC. It's built from primitive components -- transistors and the like. It just seems so simple. You're telling me one person, or even (say) the number of major contributors to dolphin, could not design an advanced chip within a reasonable amount of time?

Giving hobbyists the ability to compute anything they want in a programming language with no barriers of cost is pretty powerful, no doubt. And, as a society, we've reaped benefits from this. At least 30% of the internet is powered by linux and that began as an idea in the mind of one person. Still today, a vast amount of linux contributions come from hobbyists. It should be the same for the hardware that does the actual computation. You can't eliminate the cost of manufacturing entirely, but it should be a lot like how you can order something online, tailor-made for you, and then have it arrive at your door with minimal cost. If there's no market for this, then it seems like there's a gap that needs filling.
If someone owned a FPGA big enough, it wouldn't be that hard (relative to going through all the work to make a dedicated chip) to make something with verilog or similar, but the FPGA itself would cost a fuckload of money. The Broadway chip in a Wii (without even considering the GPU) has around 2,000,000 transistors, so to be safe I'd say this would need a 2,000,000-gate FPGA, and these are the kind of kit that's so expensive there's no quoted price, and you have to ask. This is the 'easy' solution, and it only solves it for one person.

The hard, but more effective solution would be to design an ASIC that implements the Broadway chip's instruction set exactly, which would not be easier than writing this whole emulator, and then finding someone to make it. If you make tens of millions of a chip, like AMD or nVidia or any other Global Foundries or TSMC charge around $50 for a somewhat complex chip, which isn't too far off the cost of materials and labour, but if you're making fewer chips, then you need to pay to set things up, too, and that'd cost a lot, maybe even more than a licence to start making Broadway processors themselves from IBM.

The long and short of it is that something that multi-billion dollar companies spend years developing and manufacturing is out of the scope of a man in a shed with some knowledge and enthusiasm.
I don't think this is the best idea because of cost and benefit. It would make more sense to develop dolphin in a way that bypasses openGL or DirectX and work directly with the graphics chip in the same way the Gamecube and Wii did. This would give the same boost with the same effort involved (the graphics API would have to be made from scratch on the new chip anyways as well, except now you have all the documentation of previous dolphin builds to help out) Maybe a DolphinOS could be made, or modified Linux drivers like what they did with Gallium3D to make DirectX11 work natively. http://www.phoronix.com/scan.php?page=ar...3d11&num=1
(10-11-2015, 07:36 AM)phly95 Wrote: [ -> ]I don't think this is the best idea because of cost and benefit. It would make more sense to develop dolphin in a way that bypasses openGL or DirectX and work directly with the graphics chip in the same way the Gamecube and Wii did. This would give the same boost with the same effort involved (the graphics API would have to be made from scratch on the new chip anyways as well, except now you have all the documentation of previous dolphin builds to help out) Maybe a DolphinOS could be made, or modified Linux drivers like what they did with Gallium3D to make DirectX11 work natively. http://www.phoronix.com/scan.php?page=ar...3d11&num=1

No this wouldn't be a good idea. At all. Do you realize that if they did that not only would the work be monumental, everyone would have to run the same GPU for it to even work because making it work for more then one GPU is just stupid. Also do you even know about the Gamecube/Wii's GPU architecture?