mercredi 3 janvier 2007

Forum WiiPiiCii

J'ai mis en place un forum de discussion afin de pouvoir discuter de vos problèmes, c'est un peu plus pratique que de faire ça dans les commentaires.
Des news et des tutoriaux sont également postées sur ce forum.

http://wiipiicii.free.fr/forum/

Venez nombreux !

mardi 2 janvier 2007

Jouer "correctement" à HL2 avec la Wiimote

Il y a quelques semaines, une vidéo montrait qu'il était possible de jouer à HL2 avec la wiimote, mais à l'époque il n'était pas possible d'utiliser le nunchuk ni le pointeur IR.
Maintenant oui !

Voici une autre vidéo qui le prouve :
http://archives.grapefruitage.com/player.php?id=10002

Les contrôles :


Le script pour GlovePIE :
http://wiipiicii.free.fr/TestHL2.PIE

Ce script peut être utiliser dans n'importe quel mods HL2 (Stargate TLS ou Mammouth Party par exemple :D ) ou même FPS (suffit de bien le paramétrer).
Je vous conseilles de régler la sensibilité dans les options d'HL2, de décocher "Joystick activé" s'il est coché.

Le Speaker de la Wiimote décrypté

Il est maintenant possible d'utiliser la haut-parleur de la Wiimote sur PC, afin d'y envoyer des sons, de la musique etc...

Voici un script pour GlovePIE (v0.27 ou 0.28) permettant d'emettre des sons sur la Wiimote :)
Il suffit de copier/coller ceci dans GlovePIE et de cliquer sur "Run"
// Carl Kenner's Wiimote Speaker Test script! Version 2
// A = start sound, B = stop sound
// Minus = decrease sample frequency
// Plus = increase sample frequency
// It takes a short time to start (due to delays built into Poke)

// Change the next line to set the rate at which sound data is sent
// BUT it must be low enough for the wiimote to respond to the B button
// it may depend on your PC speed. Must be at least 91 for freq 13.
pie.FrameRate = 120 Hz

if not var.initialized then
var.freq = 13 // Set sample rate = 3640 Hz (so computer can keep up)
var.volume = 0x40 // volume = 40 ??? Seems to be about max
debug = var.freq
var.initialized = true
end if

if var.On and (not Wiimote.One) and (not Wiimote.Two) then
// Report 18, send 20 bytes, square wave, 1/4 sample rate freq
WiimoteSend(1, 0x18, 20 shl 3, 0xCC,0x33,0xCC,0x33,0xCC,0x33,0xCC,0x33,0xCC,0x33, 0xCC,0x33,0xCC,0x33,0xCC,0x33,0xCC,0x33,0xCC,0x33)
else if var.On and Wiimote.One then
// Report 18, send 20 bytes, square wave, 1/2 sample rate freq
WiimoteSend(1, 0x18, 20 shl 3, 0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3, 0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3)
else if var.On and Wiimote.Two then
// Report 18, send 20 bytes, square wave, 1/8 sample rate freq
WiimoteSend(1, 0x18, 20 shl 3, 0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC, 0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33)
end if


if pressed(Wiimote.A) then
// Enable Speaker
Wiimote.Report14 = 0x04 | Int(Wiimote.Rumble)
// Mute Speaker
Wiimote.Report19 = 0x04 | Int(Wiimote.Rumble)
// Write 0x01 to register 0xa20009
WiimotePoke(1, 0x04a20009, 0x01)
// Write 0x08 to register 0xa20001
WiimotePoke(1, 0x04a20001, 0x08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0x04a20001, 0x00)
WiimotePoke(1, 0x04a20002, 0x00)
WiimotePoke(1, 0x04a20003, 0x00)
WiimotePoke(1, 0x04a20004, var.freq)
WiimotePoke(1, 0x04a20005, var.volume) // 40
WiimotePoke(1, 0x04a20006, 0x00)
WiimotePoke(1, 0x04a20007, 0x00)
// Write 0x01 to register 0xa20008
WiimotePoke(1, 0x04a20008, 0x01)
// Unmute speaker
Wiimote.Report19 = 0x00 | Int(Wiimote.Rumble)
var.On = true
end if
if Wiimote.Home then
var.freq= abs(Wiimote.RawForceY)
if var.freq <13
var.freq=13
endif
debug = var.freq
WiimotePoke(1, 0x04a20004, var.freq)
WiimotePoke(1, 0x04a20005, var.volume)
end if

if pressed(Wiimote.B) then
var.On = false
Wiimote.Report19 = 0x04 | Int(Wiimote.Rumble) // Mute Speaker
Wiimote.Report14 = 0x00 | Int(Wiimote.Rumble) // Disable speaker
end if

if pressed(Wiimote.Plus) then
var.freq--
debug = var.freq
// Mute Speaker
Wiimote.Report19 = 0x04 | Int(Wiimote.Rumble)
// Write 0x01 to register 0xa20009
WiimotePoke(1, 0x04a20009, 0x01)
// Write 0x08 to register 0xa20001
WiimotePoke(1, 0x04a20001, 0x08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0x04a20001, 0x00)
WiimotePoke(1, 0x04a20002, 0x00)
WiimotePoke(1, 0x04a20003, 0x00)
WiimotePoke(1, 0x04a20004, var.freq) // max volume?
WiimotePoke(1, 0x04a20005, var.volume)
WiimotePoke(1, 0x04a20006, 0x00)
WiimotePoke(1, 0x04a20007, 0x00)
// Write 0x01 to register 0xa20008
WiimotePoke(1, 0x04a20008, 0x01)
// Unmute speaker
Wiimote.Report19 = 0x00 | Int(Wiimote.Rumble)
end if

if pressed(Wiimote.Minus) then
var.freq++
debug = var.freq
// Mute Speaker
Wiimote.Report19 = 0x04 | Int(Wiimote.Rumble)
// Write 0x01 to register 0xa20009
WiimotePoke(1, 0x04a20009, 0x01)
// Write 0x08 to register 0xa20001
WiimotePoke(1, 0x04a20001, 0x08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0x04a20001, 0x00)
WiimotePoke(1, 0x04a20002, 0x00)
WiimotePoke(1, 0x04a20003, 0x00)
WiimotePoke(1, 0x04a20004, var.freq) // max volume?
WiimotePoke(1, 0x04a20005, var.volume)
WiimotePoke(1, 0x04a20006, 0x00)
WiimotePoke(1, 0x04a20007, 0x00)
// Write 0x01 to register 0xa20008
WiimotePoke(1, 0x04a20008, 0x01)
// Unmute speaker
Wiimote.Report19 = 0x00 | Int(Wiimote.Rumble)
end if


Appuyer sur A pour mettre en marche le Speaker
Appuyer sur B pour arrêter le speaker
Rester appuyer sur Home pour diminuer la fréquence
Appuyer sur - pour diminuer la fréquence
Appuyer sur + pour augmenter la fréquence
Appuyer sur 1 ou 2 pour changer le rythme

Des applications plus concrètent risque d'arriver très bientôt (pour WiiTar et WiiLaser par exemple).
Maintenant toutes les fonctionnalités de la Wiimote sont exploitables, reste a avoir des applications qui gèrent tout ça :)

Wiimote + Lance Missile USB = ?

ça :

1er "vrai" jeu

Voici l'un des premiers jeux conçus pour être utilisé avec la Wiimote sur un PC.
Ce jeu s'appelle WiiSticks, le but du jeu est de tenir 1 baton en équilibre grâce à 2 wiimotes ou alors 1 wiimote et 1 nunchuk.

Voici une vidéo du jeu :

Ainsi que des screens de la "v2" :

Ce jeu n'est pas encore disponible au public :(

Infos complémentaires :
http://www.ogre3d.org/phpBB2/viewtopic.php?t=27509

Dans le même genre, il y a un jeu de trampoline (par le même developpeur) :