I've finally gotten around finishing some of the craziest features in my native fifo player:
![[Image: IWO1Tji.png]](http://i.imgur.com/IWO1Tji.png)
The left window is Dolphin, running a homebrew application called native fifo player. This application waits for incoming network connections of a client application from which it can download fifo logs and run them (either in Dolphin, or even on native hardware). The right window is dffclient, a native Qt application which acts as a client - i.e. it's used to upload a fifo log to the homebrew application over network (via localhost in this case, since I'm just running the native fifoplayer in Dolphin - I could just as well upload it to my actual Wii though).
The dffclient can do even more though: For the fifo log that it uploaded, it provides a full list of decoded commands which get streamed to the GPU. And what's more, if you select one of the commands (here: Command 34, 615201000b, which is somewhat cryptic), you get completely accessible information about the specific command: In this case, I selected a GPU command which triggers EFB copies, and dffclient automatically lists each register field and provides convenient GUI widgets to access them.
Of course, it would be boring if I stopped there. I can in fact play around with the GUI widgets and change them. The changes will get reflected in the GPU command list and communicated with the homebrew application - which allows for on-the-fly modifying of fifo logs during playback! I've taken a screenshot, where I toggled the "Downscale" option:
![[Image: G3ygGnG.png]](http://i.imgur.com/G3ygGnG.png)
Now, this surely looks like random crap, but I didn't expect anything else by changing the downscale parameter. The point, however, is that this proves that the feature actually works
![[Image: IWO1Tji.png]](http://i.imgur.com/IWO1Tji.png)
The left window is Dolphin, running a homebrew application called native fifo player. This application waits for incoming network connections of a client application from which it can download fifo logs and run them (either in Dolphin, or even on native hardware). The right window is dffclient, a native Qt application which acts as a client - i.e. it's used to upload a fifo log to the homebrew application over network (via localhost in this case, since I'm just running the native fifoplayer in Dolphin - I could just as well upload it to my actual Wii though).
The dffclient can do even more though: For the fifo log that it uploaded, it provides a full list of decoded commands which get streamed to the GPU. And what's more, if you select one of the commands (here: Command 34, 615201000b, which is somewhat cryptic), you get completely accessible information about the specific command: In this case, I selected a GPU command which triggers EFB copies, and dffclient automatically lists each register field and provides convenient GUI widgets to access them.
Of course, it would be boring if I stopped there. I can in fact play around with the GUI widgets and change them. The changes will get reflected in the GPU command list and communicated with the homebrew application - which allows for on-the-fly modifying of fifo logs during playback! I've taken a screenshot, where I toggled the "Downscale" option:
![[Image: G3ygGnG.png]](http://i.imgur.com/G3ygGnG.png)
Now, this surely looks like random crap, but I didn't expect anything else by changing the downscale parameter. The point, however, is that this proves that the feature actually works
