Join Date: Mar 2012
Liked 3,803 Times in 2,470 Posts
Mentioned: 945 Post(s)
Tagged: 0 Thread(s)
[LOL] WiiU Emulator S.C.R.E.W
This was posted 9 days ago and as I didn't see any point posting this over at WiiUHaX I thought I would drop this here for the LULZ
*The binary is on gbatemp, I haven't downloaded it or virus checked it*
S.C.R.E.W - Wii U Emulator
Satisfactory Coupling, Revolutionary Emulator, Wii (U).
S.C.R.E.W. is the first Wii U emulator for the PC. Unlike the other eighty-seven emulators from me, I decided to write this one a different way. This emulator is plugin focused (a la Jabo spec), because I figured people would like it if S.C.R.E.W would take a few more plug-ins. Since the method I used to write this emulator is unorthodox, I have documented the process so people appreciate how much work went into this program.
After all, everybody loves a well-documented S.C.R.E.W, right?
One of the biggest draws and selling points of the Wii U is the wireless tablet controller. Being one of the newest and most complex additions to consoles, I decided to tackle this first and get it out of the way. After magic-ing up some reverse-engineering elves and setting them to work on the wireless protocols (after all, input is better with more hands), I took measurements of the axis and other output data from the tablet. After finishing the code to replay the inputs to the emulator, it was time for the Great Replay Of inPut Emulation to be titled.
I initially figured that S.C.R.E.W. would be best starting off with the G.R.O.P.E. and I'm now glad I went that way.
Since at this point I hadn't yet gotten inside the main bits as far as emulation goes, I figured sound emulation would be an easy way to detect my progress. Sound in most cases is fairly-well understood, and to my surprise the Wii U's sound control is so nice that even my plugin produced amazing sound quality. Dubbing it the Reverberating Undulations, Breathtaking. I put the finishing touches on it (panning controls, etc.) and the R.U.B. was done!
If you can hear reactions you know you're doing well, and R.U.B. was a good way to make that happen.
Since I could send input to the emulated system and get sound back, I figured it was time to get right up in there. Without proper main CPU emulation, little to no software will launch (only CoD doesn't need the CPU, and nobody plays that). This was supposed to be a relatively short process, since the CPU is in the same family as the GC/Wii model and documentation was readily available, but it turns out Nintendo actually coated the CPU in peanut butter specifically to thwart my attempts to hack it. After an entire seven minutes of licking the peanut butter off (**** you I'm supposedly a canine I'll lick whatever I want) I was able to finish the timings and extra features of the plugin, naming it the Internal Synchronized Emulated Reproduced Technology.
After the work I had put in earlier, it was damn well time to I.N.S.E.R.T.
Many people today will tell you that graphics matter a lot, and the Wii U's capability for graphics is much better than the Wii's. The GPU on the Wii U is definitely an improvement, but is simple in it's design. After all, it's just a continuation of an old design that's meant to be functional, and enthusiasts even like having them in pairs. The Raster Animation Control Kernel plugin was done quickly enough. Working with the GPU was easier than the CPU, since the important bits are pointed out pretty easily, but there was a lot of flexibility I needed to account for, so a good control panel needed to be installed.
While you're having fun with S.C.R.E.W. you might want to play with the controls on the R.A.C.K.
The Wii U's optical format is somewhat like blu-ray but obviously proprietary, so I didn't have much documentation to work with. As I wasn't able to follow all the protocols, there's some oddities. While the plugin works and feeds the ISO data to the emulator, it's constantly active and spinning the disc, so it earned the title of Perpetual Upload Manipulation Presence since it's constantly moving in a repetitive motion.
So be aware of a constant P.U.M.P in the S.C.R.E.W. as it's pretty much required for it to work at this point.
The Wii U has a lot of online functions, and thankfully Nintendo's only using 1024-bit encryption and my elves were able to crack that after enough doses of LSD. After I spent a few hours logging the Wii U's connection and data, I found that I'd need to split the plugin in two and have the second half attach to the first. While it's not normal to have one job done by two plugins, sometimes having two working on the same job is better. I finished typing random **** into a hex editor, and the Connection Replay Emulation, Attached Measures plugin was complete.
I figured it's best to finish the S.C.R.E.W. with some C.R.E.A.M., reaching those networking streams all over the place.
Unfortunately, as I was going to compile the final version I got really excited and my keyboard was suddenly coated in some unidentifiable substance. Since the keyboard is where files are stored (since that's where we type them in, duh), I have to wait until I can get it repaired before I release S.C.R.E.W. I do have a prerelease binary compiled, but as of now it only runs on OS/2 through Cheap://WINE.
Via: Rydian @ GBATEMP
and believe it or not: there are people who think this is real...