Showing posts with label videogames. Show all posts
Showing posts with label videogames. Show all posts
Friday, November 18, 2016
Sunday, November 06, 2016
Battery Replacement for PS4 Controller
Replacing the battery on a PS4 controller is easy. This also makes for better battery life by increasing the capacity from 1000 mAh to 2000 mAh. Very quick and easy, and involves removing the four screws in the bottom of the controller and prying the shell open.
Tuesday, August 16, 2016
Nintendo Wii Classic Controller as Wired USB Gamepad
Wii Classic Controller as a USB-based HID compatible gamepad via Teensy 2.0.
Hardware setup is four connections:
• Orange wire (Wii controller connection top left) to Teensy SDA pin (Teensy 2.0 pin 6)
• Green wire (Wii controller connection bottom right) to Teensy SCL pin (Teensy 2.0 pin 5)
• Blue wire (Wii controller connection bottom left) to Teensy ground
• Red wire (Wii controller connection top right) to Teensy VCC
Download code here: http://milkcrate.com.au/_other/downloads/arduino/WiiClassicUSB.ino
Labels:
arduino,
emulation,
teensy,
videogames,
wii
Thursday, May 26, 2016
XBox 360 Wireless Controller - Max for Live Device
Friday, May 20, 2016
Grandmother by Kitty Horrorshow
My music is in the game Grandmother by Kitty Horrorshow! You can grab it as part of the Haunted Cities collection of games: https://kittyhorrorshow.itch.io/haunted-cities
The original track can be found as part of Biometrics (2010).
The original track can be found as part of Biometrics (2010).
Wednesday, February 17, 2016
Friday, November 06, 2015
Sunday, August 23, 2015
Vectrex Controller to USB HID Joystick
Made with a Teensy 2.0 in the Arduino IDE using the Teensyduino add-on. Download the code here.
The hardware set up is simple - the Vectrex controller end has nine pins. These should be connected to the Teensy as follows:
Vectrex pin 1 to Teensy digital pin 0
Vectrex pin 2 to Teensy digital pin 1
Vectrex pin 3 to Teensy digital pin 2
Vectrex pin 4 to Teensy digital pin 3
Vectrex pin 5 to Teensy analog pin 0
Vectrex pin 6 to Teensy analog pin 1
Vectrex pin 7 to Teensy 5V
Vectrex pin 8 to Teensy ground
Vectrex pin 9 to Teensy ground
The Teensy pinout can be found here. The Teensy should be set to joystick mode in the Arduino IDE under Tools > USB Type.
Labels:
arduino,
emulation,
teensy,
vectrex,
videogames
Sunday, August 24, 2014
'Mountain' Game Controlled via Ableton Live MIDI Data
I really like the game 'Mountain' (grab it here: http://mountain-game.com/) and I wanted to be able to control the synth within 'Mountain' using MIDI data from a DAW such as Ableton Live.
The 'Mountain' game synth is controlled via the computer keyboard, using the row from Z to less than, and from A to K.
An example is shown below:
The output of a MIDI clip is routed through a 'Max for Live Notes to CC with Note Off' device, which converts the pitch of each note to a MIDI CC number and the velocity of each note (including note-off events) to MIDI CC values.
The output of the MIDI track in Ableton Live is sent to the software Osculator - in the image below, the MIDI track output is set to 'Osculator In (Port 8000)'.
This conversion from note / velocity to MIDI CC number / value takes place, so that Osculator is able to map a different keycode value to each and every MIDI pitch individually, rather than dealing with MIDI note data on a channel-by-channel basis.
Each MIDI pitch shows up as its own event in Osculator, which can then be mapped to a keycode value. Osculator has a handy 'Keycode Helper' window for mapping purposes. Z corresponds to keycode 6, X to 7, C to 8 and so on. Using this information, each MIDI CC number can be mapped to a corresponding keycode in Osculator.
Labels:
ableton live,
digital manipulation,
max for live,
max/msp,
osculator,
videogames
Tuesday, May 13, 2014
Thursday, May 01, 2014
DIY USB SNES Controller Adaptor
Made with a Teensy 2.0 in the Arduino IDE using the Teensyduino add-on.
The hardware set up is simple - the SNES controller end has five relevant connections (ground, 5V, data, latch, clock). These should be connected to Teensy power and digital pins 0, 1 and 2 - see below for a photo.
The Teensy pinout can be found here. The Teensy should be set to joystick mode in the Arduino IDE under Tools > USB Type.
The code can be downloaded here: http://milkcrate.com.au/_other/downloads/arduino/SNES_Controller/SNES_Controller.ino
Labels:
arduino,
emulation,
teensy,
videogames
Tuesday, April 22, 2014
SEGA Gamepad Emulation Using Wired Wii Nunchuck
Made with a Teensy 2.0 in the Arduino IDE using the Teensyduino add-on.
The hardware set up is simple - the Nunchuck accessory end has four connections (ground, 5V, data, clock). These should be connected to Teensy power and digital pins 5 and 6 - see below for a photo.
The Teensy pinout can be found here. The Teensy should be set to joystick mode in the Arduino IDE under Tools > USB Type.
The code can be downloaded here: http://milkcrate.com.au/_other/downloads/arduino/chuckJoy/chuckJoy.ino
Teensy Arduino NES USB Controller Adaptor
Made with a Teensy 2.0 in the Arduino IDE using the Teensyduino add-on.
The hardware set up is simple - the NES controller end has five connections (ground, 5V, data, latch, clock). These should be connected to Teensy power and digital pins 0, 1 and 2 - see below for a photo.
The Teensy pinout can be found here. The Teensy should be set to joystick mode in the Arduino IDE under Tools > USB Type.
The code can be downloaded here: http://milkcrate.com.au/_other/downloads/arduino/NES_Controller/NES_Controller.ino
Thursday, January 16, 2014
Mapping Osculator and the Wii Classic Controller for Use with Emulation
The Wii Classic Controller can make a useful peripheral when mapped using Osculator. One down side to mapping the Wii Classic Controller with Osculator into a HID virtual source device in OS X is that the X/Y directions will not map correctly from the D-pad.
The output ranges have to be massaged to go from the neutral position (0.5) to the outer limit (either 0.0 or 1.0 depending on the direction).
This is easily managed using the Scalings Page (command F in Osculator).
Download the Osculator template that I have been using with a PSX emulator here: http://milkcrate.com.au/_other/downloads/other/PSX.oscd
The output ranges have to be massaged to go from the neutral position (0.5) to the outer limit (either 0.0 or 1.0 depending on the direction).
This is easily managed using the Scalings Page (command F in Osculator).
Download the Osculator template that I have been using with a PSX emulator here: http://milkcrate.com.au/_other/downloads/other/PSX.oscd
Monday, February 11, 2013
Saturday, January 19, 2013
Joy Pad Wrap Up and Set
Dave Kudrev put on a great Joy Pad event tonight. Food, booze, music and games. Fun times! Thanks for everyone for coming along and listening to my set.
Listen and download my set here.
Saturday, December 15, 2012
How To: Extract PCM Samples from a GBA ROM
This short tutorial shows how to easily and simply extract the audio sample data stored in GBA ROM images. A similar process can be used for many different types of ROMs.
1. Acquire a .GBA ROM file from which to extract samples.
2. Open up Audacity. Create a new project.
3. Go to File > Import > Raw Data. Navigate to the GBA ROM image file. Note the dialog that opens - allowing you to select:
• Encoding (What sort of audio data are we expecting i.e. bit depth, format)
• Byte order (In which order are we expecting the bits to form each byte e.g. from lowest to highest bit or the reverse)
• Channels (mono / stereo - for many game ROMs this will be mono)
• Start offset (if you know where in the ROM the audio data is stored)
• Amount to import (if you know how much of the ROM space is used by the audio data)
• Sample rate: (at which rate do we need to play back the audio data so that it sounds correct in terms of speed / pitch)
4. For GBA ROMs, a good place to start is:
Signed 8-bit PCM, No Endianness, Mono, 0 bytes offset, 100%, 12000Hz Sample rate.
5. Audacity will import the raw data.
If the settings selected in the import process are accurate or reasonably accurate, you should be able to see an area of the ROM (in the form of the audio waveform) that looks significantly different to the rest of it....
An area that looks more like actual audio waveforms than a square data waveform.
6. Preview the audio. If it does not sound correct, re-import the raw data and change the settings. Repeat this process until the audio sounds correct (as in, the same as the in-game audio).
Once this has been achieved, simply trim the audio down by going to Edit > Remove Audio > Trim.
Export this audio waveform by going to File > Export Selection and saving the file as a standard Wave file.
Friday, September 30, 2011
SEGA Master System Control Pad as USB Joystick for Emulated Games

This is a Teensy-based USB converter for using a SEGA Master System control pad with an emulator. See in the Setup() function below for the hardware configuration. I used a male 9 pin cable for the converter so that I didn't have to splice an actual SEGA control pad cable.
The converter takes button presses from the control pad and sends them to the computer as keyboard presses and releases. W is up, S is down, A is left, D is right, J is button 1 and K is button 2. Simply setup the emulator of your choice with these keyboard buttons.
byte button_1;
byte button_1_previous;
byte button_2;
byte button_2_previous;
byte button_3;
byte button_3_previous;
byte button_4;
byte button_4_previous;
byte button_5;
byte button_5_previous;
byte button_6;
byte button_6_previous;
void setup() {
pinMode(0, INPUT); // up direction = SEGA joystick pin 1
pinMode(1, INPUT); // down direction = SEGA joystick pin 2
pinMode(2, INPUT); // left direction = SEGA joystick pin 3
pinMode(3, INPUT); // right direction = SEGA joystick pin 4
pinMode(4, INPUT); // button 1 = SEGA joystick pin 6
pinMode(5, INPUT); // button 2 = SEGA joystick pin 9
// also connect Teensy ground to joystick pin 8
digitalWrite(0, HIGH); // turn the pullup resistor on
digitalWrite(1, HIGH); // turn the pullup resistor on
digitalWrite(2, HIGH); // turn the pullup resistor on
digitalWrite(3, HIGH); // turn the pullup resistor on
digitalWrite(4, HIGH); // turn the pullup resistor on
digitalWrite(5, HIGH); // turn the pullup resistor on
}
void loop() {
button_1 = digitalRead(0);
if(button_1 != button_1_previous) {
button_1_previous = button_1;
if(button_1 == 0) {
Keyboard.set_key1(KEY_W);
}
else {
Keyboard.set_key1(0);
}
}
button_2 = digitalRead(1);
if(button_2 != button_2_previous) {
button_2_previous = button_2;
if(button_2 == 0) {
Keyboard.set_key2(KEY_S);
}
else {
Keyboard.set_key2(0);
}
}
button_3 = digitalRead(2);
if(button_3 != button_3_previous) {
button_3_previous = button_3;
if(button_3 == 0) {
Keyboard.set_key3(KEY_A);
}
else {
Keyboard.set_key3(0);
}
}
button_4 = digitalRead(3);
if(button_4 != button_4_previous) {
button_4_previous = button_4;
if(button_4 == 0) {
Keyboard.set_key4(KEY_D);
}
else {
Keyboard.set_key4(0);
}
}
button_5 = digitalRead(4);
if(button_5 != button_5_previous) {
button_5_previous = button_5;
if(button_5 == 0) {
Keyboard.set_key5(KEY_J);
}
else {
Keyboard.set_key5(0);
}
}
button_6 = digitalRead(5);
if(button_6 != button_6_previous) {
button_6_previous = button_6;
if(button_6 == 0) {
Keyboard.set_key6(KEY_K);
}
else {
Keyboard.set_key6(0);
}
}
Keyboard.send_now();
}
Labels:
other,
sega master system,
teensy,
videogames
Tuesday, February 02, 2010
South Australia and Political Censoring of the Internet
It is difficult to believe that this level of political censorship and meddling is happening now, in this country, in this state. The state government is almost on cue with larger, federal issues of internet censorship in Australia and the rating of video games in Australia, all of which are aspects of modern culture and the rights of the individual. Is this country going insane?
"South Australia has become one of the few states in the world to censor the internet. The new law, which came into force on January 6, requires anyone making an online comment about next month's state election to publish their real name and postcode."
Read the whole article at news.com.au.
So if you're going to leave a comment on this post, you are now legally required to leave your real name and your postcode too. Surely laws such as this one are a slippery slope once entered into?
For the record, my full name is Sebastian Tomczak and my postcode is 5014.
"South Australia has become one of the few states in the world to censor the internet. The new law, which came into force on January 6, requires anyone making an online comment about next month's state election to publish their real name and postcode."
Read the whole article at news.com.au.
So if you're going to leave a comment on this post, you are now legally required to leave your real name and your postcode too. Surely laws such as this one are a slippery slope once entered into?
For the record, my full name is Sebastian Tomczak and my postcode is 5014.
Subscribe to:
Posts (Atom)















































