<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Multi WiiMote support</title>
<description> Hello everybody,

Who have a c source code example to control two WiiMotes with the standard libogc library.
I would like to add multi player mode to Pong2 but do not know how? Looking forward to your reactions.

wplaat</description><link>http://forum.wiibrew.org/read.php?11,9481,9481#msg-9481</link><lastBuildDate>Mon, 18 May 2026 14:32:49 +0200</lastBuildDate>
<generator>Phorum 5.2.23</generator>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9561#msg-9561</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9561#msg-9561</link><description><![CDATA[ Your welcome. Good luck on your projects :)]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Thu, 05 Feb 2009 21:21:31 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9552#msg-9552</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9552#msg-9552</link><description><![CDATA[ Hi Arikado,<br /><br />It is working. Great!!! I did not know that you could sync the WiiRemote by this hidden button on the Wii Console.<br />Wants again many thanks now i can build a multi player version of Pong2 and other game i created. bye!<br /><br />wplaat]]></description>
<dc:creator>wplaat</dc:creator>
<category>Coding</category><pubDate>Thu, 05 Feb 2009 20:54:57 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9543#msg-9543</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9543#msg-9543</link><description><![CDATA[ No problem wplaat, I hope I was clear enough. Its redundant, but just remember you have to check input for each channel and then change the variables for each paddle accordingly. I wrote a small game called battle pong (look for the link to the source in the topic "making a head to head online game" (sorry I&#039;m on a psp so I cant link now )). It has two player support so its (extremely simple) source may help you out.]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Thu, 05 Feb 2009 17:35:49 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9533#msg-9533</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9533#msg-9533</link><description><![CDATA[ Hi Arikado, Thanks for you fast reply. I will try this evening and let you known if this is solving my problem. Best regards...]]></description>
<dc:creator>wplaat</dc:creator>
<category>Coding</category><pubDate>Thu, 05 Feb 2009 15:19:13 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9514#msg-9514</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9514#msg-9514</link><description><![CDATA[ Theres nothing wrong (although I barely skimmed the code), you just dont know how to sync the wiimote to your Wii XD<br /><br />No worries though, I&#039;ll tell you how: Press the sync button on your wii next to your SD slot. After five seconds press the sync button on your second wiimote (orange button underneath the wiimotes battery cover).<br /><br /><b>EDIT:</b> I take that all back. There are a ton problems with your code.<br />Try this:<br /><br /><pre class="bbcode">
u32 wpaddown = WPAD_ButtonsDown(WPAD_CHAN_0);
u32 wpadup = WPAD_ButtonsDown(WPAD_CHAN_0);
u32 wpadheld = WPAD_ButtonsHeld(WPAD_CHAN_0);
u32 wpaddown1 = WPAD_ButtonsDown(WPAD_CHAN_1);
u32 wpadup1 = WPAD_ButtonsDown(WPAD_CHAN_1);
u32 wpadheld1 = WPAD_ButtonsHeld(WPAD_CHAN_1);


// Scan for button events
if (wpadheld & BUTTON_A) buttonScroll(x1+40,y1+40);

if (wpaddown & BUTTON_A) buttonA(x1+40,y1+40);
if (wpadup & BUTTON_A) selectedA=false;

if (wpaddown & BUTTON_HOME) buttonExit(0);

if (wpaddown & BUTTON_1 ) button1x();
if (wpadup & BUTTON_1) selected1=false;

if (wpaddown & BUTTON_2 ) button2y();
if (wpadup & BUTTON_2) selected2=false;

if (wpadheld1 & BUTTON_A) buttonScroll(x1+40,y1+40);

if (wpaddown1 & BUTTON_A) buttonA(x1+40,y1+40);
if (wpadup1 & BUTTON_A) selectedA=false;

if (wpaddown1 & BUTTON_HOME) buttonExit(0);

if (wpaddown1 & BUTTON_1 ) button1x();
if (wpadup1 & BUTTON_1) selected1=false;

if (wpaddown1 & BUTTON_2 ) button2y();
if (wpadup1 & BUTTON_2) selected2=false;</pre><br />Do you see what I did there? You have to check for <i>each individual channel</i> you cant just check for the first channel. Also, there are probably similiar problems in your buttonA(), button1x(), button2y(), and buttonScroll() functions.]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 22:19:55 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9513#msg-9513</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9513#msg-9513</link><description><![CDATA[ Hello everybody,<br /><br />I have added the lines, but still my second WiiMote will not sync (Blue leds keep blinking and after 30 second go out) here is my main loop. Wait do i wrong?<br /><br />int main()<br />{<br />// Init main variables<br />int x1=0, y1=0, x2=0, y2=0;<br /><br />// Init video layer<br />VIDEO_Init();<br /><br />// Init wiimote layer<br />WPAD_Init();<br />WPAD_SetIdleTimeout(60); // Wiimote is shutdown after 60 seconds of innactivity.<br />//WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR); // enable accelerometers and IR<br />WPAD_SetDataFormat(WPAD_CHAN_ALL,WPAD_FMT_BTNS_ACC_IR);<br /><br />// Set Shutdown Callbacks.<br />SYS_SetPowerCallback( doPowerOff );<br />WPAD_SetPowerButtonCallback( doPadPowerOff );<br /><br />// Obtain the preferred video mode from the system<br />// This will correspond to the settings in the Wii menu<br />rmode = VIDEO_GetPreferredMode(NULL);<br /><br />// allocate framebuffer (Needed for JPG welcome images)<br />frameBuffer[0] = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));<br /><br />// Initialise the console, required for printf<br />console_init(frameBuffer[0],20,20,rmode-&gt;fbWidth,rmode-&gt;xfbHeight,rmode-&gt;fbWidth*VI_DISPLAY_PIX_SZ);<br /><br />// Set up the video registers with the chosen mode<br />VIDEO_Configure(rmode);<br /><br />if (rmode-&gt;xfbHeight==528)<br />{<br />// TV mode PAL 50Hz<br />yOffset = 25;<br />yjpegOffset = 25;<br />}<br />else<br />{<br />// TV mode PAL 60Hz<br />yOffset = 25;<br />yjpegOffset = 0;<br />}<br /><br />// Tell the video hardware where our display memory is<br />VIDEO_SetNextFramebuffer(frameBuffer[0]);<br /><br />// Make the display visible<br />VIDEO_SetBlack(FALSE);<br /><br />// Flush the video register changes to the hardware<br />VIDEO_Flush();<br /><br />// Init Fat<br />fatInitDefault();<br /><br />// Load highscore from SD card<br />loadLocalHighScoreFile(HIGHSCORE_FILENAME);<br /><br />// Load setting from SD card<br />loadSettingFile(SETTING_FILENAME);<br /><br />// Init Http thread<br />initThreads();<br /><br />// Init game variables<br />initImages();<br />initGame();<br />initSound();<br />initGameBoard();<br />initBest();<br /><br />// Init FreeType font engine<br />GRRLIB_InitFreetype();<br /><br />// Show Intro screens<br />drawIntroScreen(0);<br />drawIntroScreen(1);<br />drawIntroScreen(2);<br /><br />// Init GRRLib graphics library<br />GRRLIB_InitVideo();<br />GRRLIB_Start();<br /><br />// Make screen black<br />GRRLIB_FillScreen(0xFFFFFF);<br />GRRLIB_Render();<br /><br />// Repeat forever<br />while(!bPowerOff )<br />{<br />// icon angle<br />if (++angle&gt;=MAX_ANGLE) angle=0;<br /><br />// Init StateMachine<br />initStateMachine();<br /><br />// Draw game board and other items (buttons, bubbles, etc...)<br />drawScreen(x1+40, y1+40);<br /><br />// Scan for button events<br />WPAD_SetVRes(0, 640, 480);<br />WPAD_ScanPads();<br />u32 wpaddown = WPAD_ButtonsDown(WPAD_CHAN_0);<br />u32 wpadup = WPAD_ButtonsDown(WPAD_CHAN_0);<br />u32 wpadheld = WPAD_ButtonsHeld(WPAD_CHAN_0);<br /><br />// Scan for ir events<br />ir_t ir1;<br />WPAD_IR(WPAD_CHAN_0, &ir1);<br />x1=ir1.sx-WSP_POINTER_X;<br />y1=ir1.sy-WSP_POINTER_Y;<br /><br />// Scan for ir events<br />ir_t ir2;<br />WPAD_IR(WPAD_CHAN_1, &ir2);<br />x2=ir2.sx-WSP_POINTER_X;<br />y2=ir2.sy-WSP_POINTER_Y;<br /><br />// Scan for button events<br />if (wpadheld & BUTTON_A) buttonScroll(x1+40,y1+40);<br /><br />if (wpaddown & BUTTON_A) buttonA(x1+40,y1+40);<br />if (wpadup & BUTTON_A) selectedA=false;<br /><br />if (wpaddown & BUTTON_HOME) buttonExit(0);<br /><br />if (wpaddown & BUTTON_1 ) button1x();<br />if (wpadup & BUTTON_1) selected1=false;<br /><br />if (wpaddown & BUTTON_2 ) button2y();<br />if (wpadup & BUTTON_2) selected2=false;<br /><br />// Draw wiiremote ir pointer<br />GRRLIB_DrawImg( x1, y1, 96, 96, images.pointer, ir1.angle, 1, 1, 255 );<br />GRRLIB_DrawImg( x2, y2, 96, 96, images.pointer, ir2.angle, 1, 1, 255 );<br />GRRLIB_Render();<br />}<br /><br />// Shut the system down.<br />if ( bPowerOff )<br />{<br />SYS_ResetSystem( SYS_POWEROFF, 0, 0 );<br />}<br /><br />return 0;<br />}]]></description>
<dc:creator>wplaat</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 22:10:36 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9498#msg-9498</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9498#msg-9498</link><description><![CDATA[ You&#039;ll also need to make sure you&#039;re setup to read that additional Wiimote. In your init line, make sure you have WPAD_SetDataFormat(WPAD_CHAN_ALL,WPAD_FMT_BTNS_ACC_IR);]]></description>
<dc:creator>Tantric</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 18:18:45 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9495#msg-9495</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9495#msg-9495</link><description><![CDATA[ Just change WPAD_CHAN_0 to WPAD_CHAN_1 to look for controller input from a second controller.<br /><br /><b>EDIT</b>: Oh and you&#039;ll still need your WPAD_CHAN_0 code too. WPAD_CHAN_1 <i>only</i> looks for input from the second wiimote.]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 17:46:03 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9485#msg-9485</guid>
<title>Re: Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9485#msg-9485</link><description><![CDATA[ Hello,<br /><br />supply another channel to the WPAD_XXX functions to read from another controller connected to the wii.<br /><br />e.g.<br /><pre class="bbcode">
WPAD_ScanPads();
u32 btn = WPAD_ButtonsDown(WPAD_CHAN_1);
</pre>]]></description>
<dc:creator>koopa</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 15:33:37 +0100</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,9481,9481#msg-9481</guid>
<title>Multi WiiMote support</title><link>http://forum.wiibrew.org/read.php?11,9481,9481#msg-9481</link><description><![CDATA[ Hello everybody,<br /><br />Who have a c source code example to control two WiiMotes with the standard libogc library.<br />I would like to add multi player mode to Pong2 but do not know how? Looking forward to your reactions.<br /><br />wplaat]]></description>
<dc:creator>wplaat</dc:creator>
<category>Coding</category><pubDate>Wed, 04 Feb 2009 13:08:52 +0100</pubDate></item>
</channel>
</rss>