Injecting A Bit Of Rust Via DLL

Ever been frustrated that a software package was missing a feature you want? In the best-case scenario, the software would be open source and you could just tweak the code and rebuild. But in many cases, the software is closed-source. In the case of [Faster than lime], he found a SNES emulator (Snes9X) that didn’t support controllers to showcase the technique. So with a little bit of Rust, he wrote some code that could be injected into the emulator via DLL injection.

It’s a fantastic tutorial that shows the technique. He starts by creating a Rust project that uses the DLL-Syringe crate (the rust version of dependency management). This crate does much of the heavy lifting involved with injecting a DLL into a target process. The rest of the journey is an excellent process of going through the Windows documentation and implementing the features. The DLL just reads the controller and then sends the right input to the program. In the end, [Faster than lime] has a great injected DLL and we have a wonderful time learning about Rust and debugging in an injection environment!

It’s been a while since we last covered DLL injection, and it’s nice to see how the process has evolved. Video after the break.

Continue reading “Injecting A Bit Of Rust Via DLL”

Passion Project Turns BeagleBone Into Standalone Super NES

So you want to play some retro games on your BeagleBone, just load up Linux and start your favorite emulator right? Not if you’re serious about it. [Andrew Henderson] started down this path with the BeagleBoard-xM (predecessor of the BeagleBone Black) and discovered that the performance with Snes9X wasn’t quite what he had in mind. He got the itch andĀ created a full-blown distro called BeagleSNES which includes bootloader and kernel hacks for better peformance, a custom GUI, and is in the process of developing hardware for the embedded gaming rig. Check out the documentation that goes along with the project (PDF); it’s a blueprint for how open source project guides should be presented!

The hardware he’s currently working on is a Cape (what add-on boards for the BBB are called) that adds connectors for original Nintendo and Super Nintendo controllers. It also includes an RTC which will stand in for the real-time clock features included in some cartridges (Pokemon Yellow). Also in the works is a 3D printed enclosure which would turn it into a portable, something like this other BBB portable hack.

Check out a demo of what BeagleSNESĀ can do in the video after the break.

Continue reading “Passion Project Turns BeagleBone Into Standalone Super NES”

PS3 Ubuntu Install For Emulation

snes9x

Gizmodo has done us all a favor by wading through many forum posts and condensing them into a handy guide to installing Ubuntu on your Playstation 3. It covers some of the caveats of going this route. You have to backup all of your game data before starting since the system repartitions the drive. Ubuntu installs without any problem, but because the cell processor is a PowerPC architecture it means not everything has been ported to it. There are a few things you need to install to get the Sixaxis controller to be recognized as a joystick. Super Nintendo emulator SNES9X is available and works, mostly. It doesn’t support fullscreen and cries if you reconfigure the buttons.

Supporting developers through alternate operating systems isn’t new to Sony. With the original Playstation, they released Net Yaroze, a consumer grade dev kit. The Playstation 2 was the first time they officially supported Linux on a game console (our first Linux machine). The ground breaking thing about the Playstation 3 was bundling in Linux support with every single console; no specialized hardware needed. Unfortunately they’re not near as open with the PSP.