Archive: Gaming

Page 2 of 4 1 2 3 4

February 21, 2008

SIXAXIS hacks

Hackszine reader IraqiGeek writes:

I made an application that uses libusb-Win32 and PPJoy to map the Sony Sixaxis into a windows joystick with the accelerometers working and mapped.

Unfortunately, the gyro on my sixaxis seems to be faulty. So, while the code is already there to read the gyro data, it can't be used for anything.

The installation process is not exactly the shortest, but I've made a step-by-step how-to describing it.

I did a little digging and there are a couple of other noteworthy SIXAXIS hacks. In addition to IraqiGeek's driver, there is another Windows SIXAXIS driver that people are using with some success. I also was able to find a third Windows driver which contains full source, in case you want to do something more interesting than play games.

Speaking of more interesting, there also exists an open source library for Linux. If you check out the above video, you can see that a gumstix embedded computer is using the SIXAXIS input to control a number of servos.

The six R/C servos are connected to a Gumstix board with built-in Bluetooth module. Inertial measurements from the SIXAXIS are received directly through a PF_BLUETOOTH socket (not through the joystick API, due to HID descriptor issues). Heuristics explicitly discriminate between two types of motion (rotation or translation).

The author was even able to use this setup to control a small helicopter. Pretty cool stuff, I must say.

Anyone know if the SIXAXIS sensor data can be easily polled with an Arduino? Maybe this could be a be a cheap option for a 6DOF IMU.

Using the PlayStation 3 controller in Bluetooth mode with Linux - Link
SixAxis source driver for Windows - Link
Use your SIXAXIS on Windows (ps3sixaxis_en.exe)- Link
WinSIXAXIS (IraqiGeek's libusb/PPJoy driver) - Link

Posted by Jason Striegel | Feb 21, 2008 07:28 PM
Electronics, Gaming, Linux, Windows | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

February 19, 2008

One-handed Wii controller

motechuck_20080219.jpg

Ryan Culy designed a single-handed, combination Wiimote and Nunchuck (motechuck?), making Nunchuck-enabled Wii games accessible to a friend who is missing a hand. It's a solid concept and a nice looking custom acrylic execution. Benheck named this one his Hack Pick of the Wii-k:

The basic idea is that you strap the nunchuck to one arm and press the analog stick against your leg to use it. The C and Z buttons are ported out and attached to the side of the main Wii-mote, thus making it the main controller but with nunchuck support. I picked this project because it has a good purpose and I've had lots of requests for something similar, and unfortunately haven't gotten around to doing it myself. So this proves it can be done, way to go Ryan!

Wii Controller for Single-Handed Use - [via] Link

Posted by Jason Striegel | Feb 19, 2008 08:53 PM
Gaming | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

February 11, 2008

Wii Twilight Hack

A demo of the first Wii ELF loader is now available for download, thanks to bushing, Segher, and tmbinc. It takes advantage of the Twilight Princess savegame overflow from a couple of weeks ago, but now there's something more substantial for people to try out on their own hardware.

Had my Wii not been stolen, I'd report back with more info, but from what I understand, this isn't working correctly with at least one US Zelda revision.

You can track the latest Wii homebrew progress at the WiiBrew Wiki. From the looks of the video, these guys are probably very close to a bootstrap file that will load in an arbitrary homebrew application.

Wii Twilight Hack - Link
WiiBrew Wiki - Link
Wii Linux Wiki - Link

Posted by Jason Striegel | Feb 11, 2008 08:05 PM
Gaming | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

February 10, 2008

Extracting GTA3 art assets for use in your own game

mygta_20080210.jpg

One of the most frustrating things about homebrew game development is that there's almost an insurmountable amount of work that needs to be done just to get something decent to display on a screen. You can roll your own complete graphics and physics engines and still have nothing to show for it if there are no art assets to load.

QuantumG's solution to the problem was to focus on developing the game engine using the model data from GTA3. Knowing that the art is already functional in another game allows you to focus on your code, and it's more fun when you can see the immediate results of your work.

The blog entry walks you through his experience with extracting and using the mesh, texture, city, and character data and making use of it with the OGRE graphics engine. If you've ever played around with making a game before, but got discouraged for lack of art assets, this is really worth a read.

Using GTA3 art assets in OGRE - Link
OGRE 3D graphics engine - Link

Posted by Jason Striegel | Feb 10, 2008 08:18 PM
Gaming, Software Engineering | Permalink | Comments (2) | TrackBack | Digg It | Tag w/del.icio.us

February 5, 2008

Wii Drum Kit

The Wii Drum Kit is another great example of a tangible user interface made possible with the Wiimote. The latest version adds support for the Nunchuck, so you can use both hands to play your virtual drum kit. This one is a Windows application, and source is available at the This is Not a Label blog.

The Wiimote + Nunchuck combination seems like the perfect interface for an air drum. Different gestures are used to trigger a specific drum, so the high hat is a flick to the side, the snare is a forward hit, etc. There's no kick pedal, of course, but the fist stamping motion that's used is a reasonable alternative.

Wii Drum Kit - Link
Control Your Applications With a Wiimote - Link

Posted by Jason Striegel | Feb 5, 2008 07:18 PM
Gaming, Music, Windows | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

January 28, 2008

Buffer overflow discovered in Wii Zelda

wiizeldaexploit_20080128.jpg

A couple Wii hackers have found a way to glitch Zelda into running unsigned code. From the forum discussion at TehSkeen:

Yes, that's right - an exploit for the Nintendo Wii has been discovered and it allows you to run custom code. The method is pretty simple. Copy over a save file for Zelda, load it and the code runs. Don't get too excited yet. They have only been able to run 4 lines of code, but this is in a days work.

Right now I'm still having trouble reading through the forums due to all the attention this has been getting. I suspect it'll be a little while before the dust settles and we find out the nitty gritty of repeating the hack and making it actually do something useful.

With any luck, this will lead to a small bootstrap loader that will allow homebrew Wii development to take off, similar to the glory days of the Dreamcast.

Zelda Exploit: Run Unsigned Code w/o Modchip - Link
Zelda homebrew exploit - Link

Posted by Jason Striegel | Jan 28, 2008 08:14 PM
Gaming | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

January 23, 2008

Accelerometer motion analysis

wiirot_20080123.jpg

There's an article over on the WiiLi Wiki that goes into great detail describing how to translate 3D accelerometer measurements into an estimation of the position, rotation, and velocity of a device like the Wiimote. By making a few assumptions—people's arms have a limited range of motion, most Wii play doesn't take place in moving vehicles, etc.—it's quite surprising what you can get away with with just the accelerometer data.

The amusingly named (but rarely used) term for the rate of change of acceleration is jerk. The jerk term for the remote shows up in the time derivative of the force recorded by the sensor, along with the rotation term that contains the angular velocity of the remote. We can extract both rotation and linear acceleration if we assume a few things:
  • We know the "up" direction before the motion starts.
  • Throughout the motion, the jerk on the remote perpendicular to the current direction of gravity is small.

Then we can assume the time derivative of the force component which is perpendicular to our current estimate of the up direction is caused by the user rotating the controller only. This allows us to update our estimate of the up direction for the next time step. In each time step, we can also get the linear acceleration of the remote by subtracting our estimate of from the current force sensor report. In effect we are integrating up a coupled set of ordinary differential equations. (Note, need to review the math here. Beware.)

The main problem with this technique is error accumulation in our estimate of "up." Since it is unlikely the user can keep the controller in constant linear motion without injuring themselves, the TV, or their opponent, we can look for times when the total reported force is close to g = 1.0 to recenter . You have to be careful when doing this because it is possible and probably common for the Wiimote to report an acceleration close to g = 1.0 while it is accelerating. When this happens your acceleration vector does not actually point "up" and you will recenter to an incorrect R. This can happen anytime you are accelerating both downward and in the horizontal plane.

I keep thinking that there should be some class of flying vehicle that, when operated under fairly restrained conditions, might be able to get by with just accelerometer measurements to obtain reasonably accurate state information. You could integrate the acceleration data through very limited motions that are within some margin of error, recalibrate, and repeat. This is probably a pipe dream, but I really want a solution for a $50 6DOF IMU. :/

Accelerometer motion analysis - Link

Posted by Jason Striegel | Jan 23, 2008 10:30 PM
Electronics, Flying Things, Gaming, Math, Software Engineering | Permalink | Comments (4) | TrackBack | Digg It | Tag w/del.icio.us

January 12, 2008

Micropolis: Sim City open sourced

simcity_20080112.jpg

Don Hopkins has released a GPLed version of the original Sim City, cleaned up and renamed to the original title, Micropolis:

The "MicropolisCore" project includes the latest Micropolis (SimCity) source code, cleaned up and recast into C++ classes, integrated into Python, using the wonderful SWIG interface generator tool. It also includes a Cairo based TileEngine, and a cellular automata machine CellEngine, which are independent but can be plugged together, so the tile engine can display cellular automata cells as well as SimCity tiles, or any other application's tiles.

The key thing here is to peek inside the mind of the original Maxis programmers when they built it. Remember, this was back in the day when games had to fit inside of 640k so some "creative" programming techniques were employed. SimCity has been long a model used for urban planning and while it's just a game, there are a lot of business rules, ecosystem modeling, social dependencies, and other cool stuff going on in this codebase. It may not be pretty code but it's content sure is interesting to see.

The source will compile for X86/Linux systems, and I'm betting we'll see ports to other platforms at some point. If you're on a Mac and just want to play the game, just run a copy of Ubuntu in an emulator like QEMU and install the binary there.

SimCity Source Code Released to the Wild - [via] Link
Micropolis Downloads - Link

Posted by Jason Striegel | Jan 12, 2008 07:41 PM
Gaming, Retro Gaming | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

January 7, 2008

Using the Boarduino with a Wii Nunchuck

Tod E. Kurt put together a nice Boarduino demonstration, connecting the device to the Wii Nunchuck and using it to control the position of a servo. As you rotate the device, the servo continuously adjusts its position to point straight up.

The Boarduino's small footprint made me want to see how small of a device I could whip up in an hour from some fairly complex components. So I decided to see how small the combination of a Boarduino, a Wii Nunchuck, and a hobby servo motor could be. Here's a little video of the result.

His demo is nicely documented and the source is available and extremely digestible. I've been monkeying around with BS2 hardware for too long. This has convinced me it's time to upgrade.

Boarduino, Wii Nunchucks, and Servos - Link
Boarduino: compact, breadboard compatible Arduino clone - Link
Hook your Wii nunchuck up to an Arduino - Link

Posted by Jason Striegel | Jan 7, 2008 09:44 PM
Electronics, Gaming | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

January 2, 2008

Open source game development

apricot_20080103.jpg

One of the more interesting recent news items is the announcement of Apricot, a new open source game development effort that is promising to produce a complete 3D game and development/production stack by the end of July 08.

The team will work on a cross platform game (at least Linux, Windows, OS X), using Blender for modeling and animation, Crystal Space as 3D engine and delivery platform, and Python for some magic scripting to glue things together. It is not only the purpose to make a compelling 3D game experience, but especially to improve and validate the open source 3D game creation pipeline, with industry-standard conditions.

I've only monkeyed with Crystal Space and Blender in the past, but I'm really impressed to see how far both of these applications have come and how they are now able to integrate with each other. There's a plugin for Blender called blender2crystal which makes it possible to develop maps and characters within the Blender 3D modeler, then export those models (including their physics and animation properties) into scriptable entities that can be used directly in the Crystal Space 3D engine. Tying the functionality of these two applications together is such a good move. Hopefully Apricot will help develop a solid model and some best practices for producing an entire game using these two tools.

If you can't wait until July to start digging through the Apricot code, there are several demos that have been made using Blender and Crystal Space that you should check out. The general outline is that you develop your game's 3D artwork within Blender, use Crystal Space as the underlying 3D engine, and then write your game logic in Python scripts which can control the underlying 3D engine via the CEL (Crystal Entity Layer) API.

Resources:
Project Apricot - Link
Crystal Space (3D Engine) - Link
Blender (3D Modeling Tool) - Link
CEL (Python Scripting for Crystal Space) - Link
blender2crystal - Link
Blender 3D: Noob to Pro WikiBook - Link

Posted by Jason Striegel | Jan 2, 2008 10:51 PM
Gaming, Linux Multimedia, Software Engineering | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

December 31, 2007

Wii homebrew apps now possible

A few days ago at the 24th Chaos Communication Congress a Wii hack was demonstrated that allows arbitrary software to run on the Wii console. Previously, the console was only available via the Gamecube emulation mode. This new hack will allow folks to write homebrew software that can take advantage of the Wii's full capabilities.

Here's a description of the hack from Tysoe_J in the WiiLi forums:

In pressed Wii games, there are two values that are put together to make the on-the-fly decryption key with which the Wii can actually execute the game. One in on the security ring of the manufactured disc, and one is stored by every Wii to decrypt data (the static key). What's happened here is they've got the "Lego Star Wars" game key simply from the disc, and they've got the FULL ("master") key used to decrypt ONLY Lego Star Wars game through dumping Wii memory (this was done by disabling some of the ATi bridge that locks out the RAM during Gamecube mode).

Now, this resulted in the "master" key for Lego Star Wars, and the "disc auth" key for it too. Reverse engineering this resulted in the generic Wii data key, thus allowing them to burn their own data under the disguise of LSW. Then, of course, a drive modchip was needed cos they can't press their own discs...

STILL, that's what's going on... Nintendo wouldn't be able to patch this with a firmware update. They'd have to change hardware keys and most DEFINITELY fix up the ATi lockout bridge too.

Wii Linux, open source Wii games - a lot of stuff should be possible now. Happy new year!

Nintendo Wii Homebrew "Hello World" - [via] Link
24c3 tweezer attack @ WiiLi.org forum - Link

Posted by Jason Striegel | Dec 31, 2007 04:53 PM
Gaming | Permalink | Comments (3) | TrackBack | Digg It | Tag w/del.icio.us

December 23, 2007

Johnny Chung Lee's Wiimote hacks

Johnny Chung Lee, who you may recall from $14 steadicam fame (read about it in Make:01), is also a very proficient Wiimote hacker.

His latest, demonstrated in the video above, is a prototype VR system that uses the Wiimote and a head-mounted IR LED as a head tracking device. The software transforms a standard monitor into a 3 dimensional portal. As you move your head, the objects on the screen are positioned appropriately for your new perspective. Think about adjusting your position to see what's around the side of the screen! The effect is like looking through a window, and it gives an more impressive 3D effect that you'd get with the goofy colored glasses.

Lee has a project page for his Wii creations, which also includes a finger tracking, Minority Report-style device and an interactive whiteboard hack. He's generously provided source for all of these hacks. Return the favor by building something cool.

Johnny Chung Lee's Wii Hacks - Link
Procrastineering Blog - Link

Posted by Jason Striegel | Dec 23, 2007 08:16 PM
Electronics, Gaming, Software Engineering | Permalink | Comments (2) | TrackBack | Digg It | Tag w/del.icio.us

December 18, 2007

Fix a broken Rock Band strummer bar

rockbandfix_20071218.jpg

Several Rock Band players are dealing with an issue with the Fender's strummer bar. If your Strat starts going wonky and doesn't register strums or occasionally double-strums, chances are your problem can be easily solved with a couple of screw drivers.

The problem is that the screw which holds the switch in place can come loose (or was assembled loose at the factory). Over time the entire switch mechanism can rotate out of place. This can cause the switch to stick in a closed position, or close multiple times when the strummer bounces against the untensioned switch.

This is actually a pretty common problem with a lot of different controllers. I've had the same issue with old joysticks and even a few RC car controllers. Whether it's a simple switch, or a control that rotates a potentiometer, if the controller is used frequently and forcefully, the adjustable mount for the sensor can wiggle out of place. It's just a matter of cracking the case and poking around to see what went wrong and correct the problem.

Rock Band: My strummer broke... AND I FIXED IT - [via] Link

Posted by Jason Striegel | Dec 18, 2007 06:50 PM
Gaming | Permalink | Comments (2) | TrackBack | Digg It | Tag w/del.icio.us

November 27, 2007

Using QoS to prioritize your bandwidth

qos_20071127.jpg

You can use the Quality of Service (QoS) feature on many routers to optimize your internet connection for devices and services that are most important to you. Adam at Lifehacker put together a quick walkthrough for tuning the QoS settings on our favorite router firmware, the open-source DD-WRT.

Your internet connection is an indispensable part of your life, but between BitTorrent, Xbox Live, web browsing, and VoIP, sometimes there's not enough bandwidth to go around. But rather than running around the house shutting down all of your computers next time you're experiencing a little lag on Xbox Live or Skype is breaking up on you, you can set up Quality of Service (QoS) rules on your router to distribute bandwidth to your different gadgets and applications based on your priorities. Today I'll show you how.

The nice thing about setting up QoS on your router is that you can prioritize packets by application, IP and MAC address, or a specific router port, all to your own preferences. Everyone has different needs, so you may want to maximize the available bandwidth for VoIP or network gaming, guarantee a chunk of bandwidth for ssh connections or your web server, or throttle down P2P applications so that they don't affect other network services. There's nothing set in stone, so you can really make your router work for you to improve the way your internet connection is utilized.

Ensure a Fast Internet Connection When You Need It - Link

Posted by Jason Striegel | Nov 27, 2007 09:20 PM
Data, Gaming, VoIP, Web | Permalink | Comments (1) | TrackBack | Digg It | Tag w/del.icio.us

November 22, 2007

Wiimote controlled Aibo

wiiaibo_20071122.jpg

What works well for a gaming input device also appears to be a useful tool for human robot interaction. University of Calgary students Cheng Guo and Ehud Sharlin performed a study in which participants tried to pose Aibos and navigate them through obstacles using both keyboards and a Wiimote-based gesture interface:

For the navigation tasks we did not expect that there would be a significant difference between the numbers of errors participants made using the different techniques. However, the data showed the opposite. Participants made 43% more errors with the keypad interface than with the Wiimote interface in the navigation tasks. Many participants felt that this was due to the small key size and the unintuitive mapping between buttons and robot actions.

...

Moreover, gesture input tends to support simultaneous input
compared to button input. As one of the participants
commented, "I could do both hands (both arm movements)
at the same time without a lot of logical thinking (with the
Wiimote/Nunchuk interface), where with the keyboard I
had to press one (button) and the other (button) if I was
doing two hand movements at the same time. Although they
would be intime."

I wonder if the same holds true as the gestures become more complex to support a larger command set. For a reduced set of instructions, however, this really makes a lot of sense. Knowing the spatial position of your hands is completely second-nature, making simple gestures much more intuitive than pressing keys on a keyboard.

Wiimote controlled Aibo - Link, Paper (PDF)

Posted by Jason Striegel | Nov 22, 2007 10:11 PM
Electronics, Gaming | Permalink | Comments (0) | TrackBack | Digg It | Tag w/del.icio.us

Page 2 of 4 1 2 3 4

Bloggers

Welcome to the Hacks Blog!

Brian Jepson.Brian Jepson


Jason Striegel.Jason Striegel


Philip Torrone.Phillip Torrone



See all of the books in the Hacks Series!
Advertise here.

Recent Posts

www.flickr.com
photos in Hacks More photos in Hacks