Wiisx Classic Controller

< Wiimote‎ | Extension Controllers

I've seen games with Gamecube compatibility not list it, but never Classic. 2) Only thing I can think of to do is to plug it in after you turn on your Wiimote to be sure it gets recognized. If you can't control the pointer on the Wii menu with it, than you might a controller problem, but if it works in the Wii menu and not in the game, odds are. In today's Homebrew tutorial I show you how to install Wiisx onto the Homebrew channel. Wiisx is a PlayStation 1 emulator and if you have any suggestions for. Classic Controller plug inserted into the External Extension Connector on the bottom of the Wii Remote Set down the Wii Remote and hold the Classic Controller with both hands. The Wii Remote does. SORRY FOR SHAKY CAMERA!!!!! In this vid i teach you how to get wiisx on your wii. You must have a wii with homebrew channel, an sd card or USB flash drive. WiiSX / CubeSX are ports of the PS1 emulator, PCSX, to the Nintendo GC/Wii. Links: Downloads: WiiSX Beta 2.1 Source Code Hits: 9539 Size: 946 Kb; CubeSX.

  • 1Data Format

The Wii Motion Plus starts off at register 0xA60000 instead of register 0xA40000, because it has its own extension port on the back allowing a Nunchuk for example to be plugged in along with the Wii Motion Plus. BUT it changes to 0xA40000 once it is activated by writing 04 to 0xa600fe.

The Wii Motion Plus is first identified by the 6 bytes: 00 00 A6 20 00 05 at register address 0x(4)a600fa (instead of 0x(4)a400fa like a regular extension). Games attempt to detect the Wii Motion Plus by trying to read the two-byte expansion identifier at 0xA600FE (they try up to 3 times, then wait 8 seconds, then check again). If a Wii Motion Plus is not present, or it has already been activated, then the attempt to read those bytes will fail with error 7.

Fcpx 10.3 download mac

Classic

The extension is initialised by writing 0x55 to 0x(4)a600f0. But there is no need to write 00 to 0x(4)a500fb, since Wii games don't do that. While the Motion Plus is initialising, the value at 0x(4)a600f7 changes from 0x02 to 0x04 to 0x08 to 0x0C to 0x0E then stays at 0x0E. There is no need to read this byte, since games don't. While initialising, the 128 bytes from 0x(4)a60050 - 0x(4)a600cf also change briefly, but randomly, after the extension is initialized. More examples of this data block changing over time can be found here: Three Data Samples from Wii Motion Plus (Google Doc)

The 32 bytes from 0x(4)a60020 are, as usual, calibration information, described as follows.

Writing 0x04 to 0x(4)A600FE activates the MotionPlus as the 'active' extension. This does 3 things (with no additional initialization):

  • A status report (0x20) will automatically be sent indicating that a normal extension has been plugged in, if and only if there was no extension plugged into the MotionPlus pass-through extension port.
  • The standard extension identifier at 0x(4)A400FA now reads 00 00 A4 20 04 05
  • Extension reports now contain MotionPlus data.

Writing 0x55 to 0x(4)A400F0 deactivates the MotionPlus, and activates the Nunchuk or other extension plugged into the back of the Motion Plus. It does these things (with no additional initialization):

  • A status report (0x20) will always be sent indicating that a normal extension has been unplugged.
  • The Motion Plus extension identifier at 0x(4)A600FA now reads 00 00 A6 20 04 05
  • Another status report (0x20) will always be sent indicating that a normal extension has been plugged in.
  • The standard extension block at 0x(4)A40000 now reads from the Nunchuk (or other extension)
  • Extension reports no longer contain MotionPlus data


It is possible to read from both Motion Plus and an extension controller at the same time by activating the MotionPlus in one of the pass-through modes suggested by DogP. When activated, this interleaves extension controller data with MotionPlus data on every other read. Data passing through are modified to make room for 3 bookkeeping bits. Two pass-through modes are currently known, one with modifications adapted to the NunChuck, and one with modifications adapted to the Classic Controller (but suitable for Guitar, Drums, or Turntable).

Aashiqui 2 songs free download

Nunchuck pass-through mode :

  • Activated by writing 0x05 instead of 0x04 to 0x(4)A600FE
  • Data passing through drops the least significant bit of the three accelerometer values
  • Bit 7 of byte 5 is moved to bit 6 of byte 5, overwriting it
  • Bit 0 of byte 4 is moved to bit 7 of byte 5
  • Bit 3 of byte 5 is moved to bit 4 of byte 5, overwriting it
  • Bit 1 of byte 5 is moved to bit 3 of byte 5
  • Bit 0 of byte 5 is moved to bit 2 of byte 5, overwriting it

Classic Controller or Musical Instrument pass-through mode:

  • Activated by writing 0x07 instead of 0x04 to 0x(4)A600FE
  • Data passing through drops the least significant bit of the axes of the left (or only) joystick
  • Bit 0 of Byte 4 is overwritten
  • Bits 0 and 1 of Byte 5 are moved to bit 0 of Bytes 0 and 1, overwriting what was there before

There is no requirement to use the correct mode for the extension, but otherwise the bitshift/move wouldn't make sense. Using the Nunchuk in classic controller mode would clobber a significant bit in the middle of the Z acceleration. Using the Classic controller in Nunchuk mode would clobber some of the buttons.


Data Format

The Wii Motion Plus reports its information as 6 bytes of data, readable at 0x(4)a40008 (or 0x(4)a40000 in some cases) and streamable using Data Reporting Modes that include Extension bytes (unused bytes are filled with 0x00). The data is packed into the six bytes as follows:

Usb
Bit
Byte76543210
0Yaw Down Speed<7:0>
1Roll Left Speed<7:0>
2Pitch Left Speed<7:0>
3Yaw Down Speed<13:8>Yaw slow modePitch slow mode
4Roll Left Speed<13:8>Roll slow modeExtension connected
5Pitch Left Speed<13:8>10

While the Wiimote is still, the values will be about 0x1F7F (8,063), although it is best to calibrate for a few seconds every time you start, to get the actual zero values.

Voltage reference is 1.35V that you can assume it as 8192 unit (half of the ADC range), using 2.27 mV/deg/s, 8192 is 595 deg/s (1.35V/2.27mV), you must divide by ~13.768 unit/deg/s (8192/595) to know the correct deg/s.

At high speed (slow bit = 0) raw values read are small with the same deg/s to reach higher values on top, so you must multiply it by 2000/440 (they are the max reference in the two modes in deg/s [1]). Example: reading 8083 raw value and assuming 8063 as zero, 20 unit in slow/normal mode are 1,45 deg/s and in fast mode are 1.45*2000/440=6.59 deg/s.

Yaw/Roll/Pitch fast/slow bits are 1 when the Wii Remote is rotating slowly (or not rotating at all), 0 when the Wii Remote is rotating fast.

Extension connected is 1 when an extension is connected to the MotionPlus extension port.

Note: The definition of yaw, pitch, and roll, are slightly different for the gyros and accelerometers. Accelerometers measure angles relative to gravity. Gyros measure angles relative to the Wii Remote. If the Wii Remote is up the right way, then they are the same. But if the Wii Remote is on its side, then what the gyros call 'pitch' is actually what the accelerometers would call 'yaw'.

The correct way to measure orientation is to maintain a rotation matrix (or alternatively a quaternion) of the current orientation (relative to gravity), and update it each time you get a gyro reading. It will drift a little, so you should reset the matrix's pitch and roll (but not yaw) with the values from the accelerometers whenever the accelerometers and gyros indicate no movement. After significant rotation, you should reset the matrix's yaw to zero when the Wii Remote is pointing near the middle (horizontally) of the sensor bar.


Nunchuck pass-through mode

In this mode, MotionPlus data and modified Nunchuck data are interleaved, you can retrieve one set of data every 3ms (one wm+, one nunchuck, one wm+ and so on).First 6 byte are the motion plus, send a byte 0, wait some time that WM+ retrieve and overwrite its buffer, and now read other 6 byte that are the nunchuck data.If you don't wait some time (3ms between every request), WM+ give incorrect data, mixing byte with nunchuck.The data format for the Motion Plus does not change, but the data format of the nunchuck is different than the normal way:


Bit
Byte76543210
0SX<7:0>
1SY<7:0>
2AX<9:2>
3AY<9:2>
4AZ<9:3>Extension connected
5AZ<2:1>AY<1>AX<1>BCBZ00


Note that AZ, BC and BZ and the least significant bits of AX, AY and AZ are moved. Also, the least significant bit of each accelerometer axis are lost, consider them 0 to keep 10 bit values. Extension connected is usually 1.

Bit 1 of Byte 5 is used to determine which type of report is received : it is 1 when it contains MotionPlus Data and 0 when it contains extension data.

Classic Controller pass-through mode

Easy rascal flatts mp3 download. In this mode, MotionPlus data and modified Classic Controller data are interleaved. The data format for the Motion Plus does not change. Here is the data format for the Classic Controller in this mode:

Wiisx Classic Controller


Bit
Byte76543210
0RX<4:3>LX<5:1>BDU
1RX<2:1>LY<5:1>BDL
2RX<0>LT<4:3>RY<4:0>
3LT<2:0>RT<4:0>
4BDRBDDBLTB-BHB+BRTExtension connected
5BZLBBBYBABXBZR00


Note that BDL and BDU are moved, and each axis of the left joystick loses its least significant bit. Extension connected is usually 1.

Bit 1 of Byte 5 is used to determine which type of report is received : it is 1 when it contains MotionPlus Data and 0 when it contains extension data.

Hardware

Wii Motion Plus, circuit board, top
Wii Motion Plus, circuit board, bottom

The Wii Motion Plus contains two gyro sensors: A dual-axis gyro by InvenSense, the IDG-600(pitch and roll), and a single-axis gyro by EPSON TOYOCOM labelled X3500W (yaw).

Until its release it was speculated that only a dual-axis gyro was included in the Wii Motion Plus. The combined use of a dual-axis gyro and a single-axis gyro is what enables the Wii Motion Plus to report the angular rate in all three axis, thus allowing full orientation tracking.

Specifications of the X3500W are currently unknown, but may be similar to the specifications of the similarly named XV-3500CB (same manufacturer.)

Wii MotionPlus contains RVL-GU chip and EEPROM. RVL-GU chip is a microprocessor NEC 78K0/KC2. It has two firmware modes. I2C bus repeater mode and 'Activated' Gyro mode.Wii_motion_plus_kaiseki (japanese)

T1-T4 on side A are test points for the gyros. W1-W7 on side B are test points for the RVL-GU. In some versions the ground plane has four large solderless pads on side A.

LabelRVL-GU Pin
W1Vss
W2RESET
W3P13/TxD6 (TOOLD)
W4Vdd (tied to P15/TOH0)
W5P14/RxD6
W6P122/X2/EXCLK/OCD0B
W7FLMD0 (TOOLC)

Information

When not activated, the MotionPlus is detected by regular polling (every 8 seconds or so) of 0x(4)a600fe. Writing 0x55 to 0x4A400F0, then 0x00 to 0x4A400FB (standard extension init, works fine even with no extension) re-activates the standard extension, if any, plugged into the MotionPlus pass-through port. The development version of the CWiid driver currently implements this method (without automatic 8 second checks) on the motionplus branch: http://abstrakraft.org/cwiid/browser/branches/motionplus/. Additional information on MotionPlus workings and implementation requirements are at http://abstrakraft.org/cwiid/wiki/MotionPlus.

Nintendo

The combination of 3 linear accelerations with 3 angular rates allows what Nintendo refers to as 1:1 motion tracking, which is another way of saying 6DOF (degrees of freedom) over a short time. It's only valid over short times because of the integration involved to convert accelerations and rates into positions (input errors, when integrated, blow up over time).

In addition to providing yaw, the gyros also allow the software to tell the difference between orientation and acceleration, which are difficult to tell apart from the accelerometers which measure a mixture of both.


Reading 0x100 bytes from 0x(4)a60000 produces the following:

A different (Carl Kenner's) Wiimote and Motion Plus:

Two more:

Wiisx Classic Controller Switch

and

Retrieved from 'https://wiibrew.org/w/index.php?title=Wiimote/Extension_Controllers/Wii_Motion_Plus&oldid=107588'

PSX Emulator for Wii U & Wii.

QUICK USAGE:

  • ISOs can be .bin/.cue (Make sure .cue contains _relative_ directory!), .img, or .iso format
  • To install: Extract the contents of wiiSXR-beta2.2.zip to the root of your SD card
  • For SD/USB: Put ISOs (.bin/.cue or other formats) in the directory named /wiisxr/isos,
    • All save types will automatically be placed in /wiisxr/saves
  • For DVD: ISOs may be anywhere on the disc (requires DVDxV2 on Wii)
  • For actual BIOS: Put SCPH1001.BIN in the directory on SD/USB named /wiisxr/bios
  • Load the executable from the HBC or in the loader of your choice
    • Once loaded, select 'Load ISO' and choose the source and select the ISO to load (Note: to go up a directory select '.', B will exit the file browser)
  • Select 'Play Game' to play
    • The game can be exited any time by pressing a configurable key combination together on a GC pad (START & X), Classic Controller (HOME), Wiimote (- & +), Wiimote+Nunchuck (1 & 2), or the reset button (Note: this must be done to save your game; it will not be done automatically)

CONTROLS:

Wiisx Classic Controller Emulator

Classic
  • Controls are now fully configurable so any button on your controller can be mapped
  • The controller configuration screen presents each PSX button and allows you to toggle through sources
  • There are 4 configuration slots for each type of controller
  • To load a different, previously saved configuration, select the slot, and click 'Load'
  • After configuring the controls as desired, select the slot, and click 'Save'
  • After saving different configurations to the slots, be sure to save your configs in the input tab of the settings frame
  • Clicking 'Next Pad' will cycle through the PSX controllers assigned
  • There is an option to invert the Y axis of the PSX's analog sticks; by default this is 'Normal Y'
  • The 'Menu Combo' configuration allows you to select a button combination to return to the menu

SETTINGS:

  • General
    • Native Saves Device: Choose where to load and save native game saves
    • Save States Device: Choose where to load and save save states
    • Select CPU Core: Choose whether to play games with pure interpreter (better compatibility) or dynarec (better speed)
    • Save settings.cfg: Save all of these settings either SD or USB (to be loaded automatically next time)
  • Video
    • Show FPS: Display the framerate in the top-left corner of the screen
    • Screen Mode: Select the aspect ratio of the display; 'Force 16:9' will pillar-box the in-game display
  • Input
    • Configure Input: Select controllers to use in game
    • Configure Buttons: Enter the controller configuration screen described above
    • Save Button Configs: Save all of the controller configuration slots to SD or USB
    • Auto Load Slot: Select which slot to automatically be loaded for each type of controller
  • Audio
    • Disable Audio: Select to mute the sound
  • Saves
    • Auto Save Native Saves: When enabled, the emulator will automatically load saves from the selected device on ISO load and save when returning to the menu or turning off the console
    • Copy Saves: Not yet implemented
    • Delete Saves: Not yet implemented

CREDITS:

  • * WIISXR fork: mystro256
  • * WIISXR logo: iiiGerardoiii
  • * General Coder: emu_kidid
  • * Graphics & Menu Coder: sepp256
  • * Audio & Core Coder: tehpola
  • * Artwork: drmr
  • * USB 2.0 support: matguitarist
  • * LibWUPC integration: Daxtsu
  • * LibWUPC: https://github.com/FIX94/libwupc
  • * pcsx team http://www.pcsx.net/
  • * pcsx-df http://pcsx-df.sourceforge.net/
  • * pcsxr http://pcsxr.codeplex.com/
  • * pcsx 1.5-test3 mac version by Gil Pederson http://pcsx.gpost.dk/
  • * P.E.Op.S. PSX Gpu & SPU http://sourceforge.net/projects/peops/
  • * franspu
  • * CDRMooby
  • * SSSPSX
  • * Compiled using devKitPro