Perhaps the greatest convenience feature of modern consoles is the wireless controller. Eliminating the risk of tripping over cords and enabling play in all manner of poorly ergonomic positions, they added huge comfort to the console gaming experience. [ismell] was no fan of the Dreamcast’s original controller, and the cable was too short to boot. It was time to bring the 360 Wireless controller to Sega’s swansong.
Early attempts by [ismell] involved a Windows computer acting as a USB host for the 360 controller, which would then send out commands back to the Dreamcast via a Cypress EZ-USB FX2 microcontroller. If this sounds esoteric and messy, that’s because it is. It was also too slow to reliably work, as the Dreamcast’s Maple controller bus expects updates every millisecond, else it considers the controller disconnected.
Instead, a dedicated USB host was needed to speak to the 360 controller and also the Dreamcast. [ismell] landed on the MicroZed 7010, a System on Chip that also packs an FPGA on board. With Petalinux running on the board, it interfaces with the Xbox 360 USB wireless controller interface, and then sends the data out over a custom “network” driver that sends packets to the Dreamcast over the Maple bus.
It’s by no means a simple hack, and the MicroZed is far from cheap, but it works and works well as shown in the video below. We’ve seen other wireless controller adapters over the years, too – like the wild BlueRetro build. We always love to see a good retro console hack, so don’t be shy about sending in your own!
Continue reading “Wireless 360 Controllers Now On The Dreamcast”
Microsoft’s original Xbox was regarded curiously by gamers and the press alike at launch. It was bigger, bulkier, and featured an eldritch monstrosity as its original controller. Thankfully, Microsoft saw fit to improve things later in the console’s lifespan with the Controller S, but nothing quite compares to the simple glory of the Xbox 360 controller. Now, there’s a way to use one on your original Xbox.
This project is the work of [Ryzee119], who previously adapted the controller for use with the Nintendo 64. An Arduino Pro Micro, acting as a master controller, talks to a MAX3421 USB host controller, which interfaces with an Xbox 360 wireless receiver, either genuine or third-party. The Arduino reads the data from the wireless receiver and then emulates a standard controller to the original Xbox. The system can handle up to four players on wireless 360 controllers, requiring an extra Arduino per controller to act in slave mode and emulate the signals to the original Xbox. In testing, lag appears roughly comparable with an original wired controller. This is a particularly important consideration for fast-paced action games or anything rhythm based.
It’s a well executed, fully featured project that should improve your weekly Halo 2 LAN parties immensely. No more shall Greg trip over a controller cable, spilling Doritos and Mountain Dew on your shagpile carpeting. Video after the break.
[Thanks to DJ Biohazard for the tip!]
Continue reading “Use Your 360 Controllers On The Original Xbox”
Taking a stroll through the woods in the midst of autumn is a stunning visual experience. It does, however, require one to live nearby a forest. If you are one of those who does not, [Koen Hufkens] has recently launched the Virtual Forest project — a VR experience that takes you though a day in a deciduous forest.
First off, you don’t need a VR apparatus to view the scenery. Web-browsers and most smart phones are capable of displaying the 360 degree images. The Raspberry Pi 2-controlled Ricoh Theta S camera is enclosed in a glass lamp cover and — with the help of some PVC pipe — mounted on a standard fence post. Power is delivered ingeniously via a Cat5e cable, and a surge protector has also been included in case of lightning strikes. Depending on when you view the website, you could be confronted with a black screen, or a kaleidoscope of color.
Continue reading “A Virtual Glimpse Into The Forest”
After the release of Mortal Kombat X, [Zachery’s] gaming group wanted to branch out into the fighter genre. They quickly learned that in order to maximize their experience, they would need a better controller than a standard gamepad. A keyboard wasn’t going to cut it either. They wanted a fight stick. These are large controllers that look very much like arcade fighting controls and include a joystick and large buttons. [Zachery’s] group decided to build their own fight stick for use with a PC.
[Zachery] based his build around the TeensyLC, which is a 32 bit development board with an ARM processor. It’s also compatible with Arduino. The original version of his project setup the controller as a HID, essentially emulating a keyboard. This worked for a while until they ran into compatibility issues with some games. [Zachery] learned that his controller was compatible with DirectInput, which has been deprecated. The new thing is Xinput, and it was going to require more work.
Using Xinput meant that [Zachery] could no longer use the generic Microsoft HID driver. Rather than write his own drivers, he decided to emulate the XBOX 360 controller. When the fight stick is plugged into the computer, it shows up as an XBOX 360 controller and Windows easily installs the pre-built driver. To perform the emulation, [Zachery] first had to set the VID and PID of the device to be identical to the XBOX controller. This is what allows the Microsoft driver to recognize the device.
Next, the device descriptor and configuration descriptor had to be added to the Teensy’s firmware. The device descriptor includes information such as USB version, device class, protocol, etc. The configuration descriptor includes additional information about the device configuration. [Zachery] used Microsoft Message Analyzer to pull the configuration descriptor from a real XBOX 360 controller, then used the same data in his own custom controller.
[Zachery] programmed the TeensyLC using the Arduino IDE. He ran into some trouble here because the IDE did not include the correct device type for an Xinput device. [Zachery] had to edit the boards.txt file and add three lines of code in order to add a new hardware device to the IDE’s menu. Several other files also had to be modified to make sure the compiler knew what an Xinput device type was. With all of that out of the way, [Zachery] was finally able to write the code for his controller.
[Chlazza] let us know about their Xbox hard drive to SATA adapter, allowing the use of an Xbox 360 (original) hard drive on a PC without voiding the drive’s warranty. Looking for a fun and enriching experience read: really bored and inspired by a previous adapter we featured, [Chlazza] set out to make their own and ended up succeeding with a board that costs less than $1 in parts. Of course the drive uses its own Fat32 based file system so there is still some hacking to do if you intended to read the data, but this is a step in the right direction.
[Golan Levin] found a way to unwrap the 360 degree images he created with his camera. He’s using a Sony Bloggie HD camera which comes with a 360 degree attachment for the lens. This produces a donut shaped image (seen in the upper left) that was not all that palatable to [Golan]. He used Processing and openFrameworks to create a program that lets him unwrap the donut into a flat image, or create a ring of video where the viewer is at the center and can scroll left or right to see the rest of the filmed environment. He released the source so you can adapt the program if you’re using a different 360 video setup.
Packshotnik is a circuit designed to help with creating 360 degree images. It consists of a main board and motorized rotating platform. The board can send IR signals to a camera to snap pictures at intervals in the rotation. The source code, schematic, and pcb files are all available from the project page. While he is using this primarily for rotating 360 degree images, you could also just plop your camera onto the platform and end up with panoramic sets.