Public feed #603927

WIP GlovePIE script edit

public text v1 · immutable
Raw Edit
·published 2007-07-05 05:37 UTC
rendered paste body
/* Zelda: Ocarina of Time with Nunchuk, Battery Meter, and PJ64 Control - BMH version 1.1.
Written by BMH (based on Kunal Khiyani & vkapadia scripts)
Edited by Jeshua
*/ 
// 
// Set your emulator to these values: 
// Analog Stick = Up, Down, Left, and Right Arrow Keys 
// Start = S 
// Z-Button = z 
// R-Button = r 
// A-Button = a 
// B-Button = b 
// L-Button = l 
// C-Up = NUMPAD8
// C-Down = NUMPAD5
// C-Left = NUMPAD4
// C-Right = NUMPAD6
// 
// 
// CONTROLS: 
// 
// Wiimote: 
// 
// Shake the wiimote = use sword 
// D-pad = C buttons / Alt. PJ64 Control
// A =  A (blue button/ context sensitive button) / Alt. Moon Jump/Map
// B trigger = Use shield 
// Minus = Green button (skip text/navigate through menus) 
// Home = Nothing 
// Plus = Start (/red button in menus) 
// 1 = Start 
// 2 = Moon Jump/Map
// 
// Nunchuk: 
// 
// Shake the nunchuk = spin attack 
// Analoge stick = movement 
// C = Activate Alternates
// Z = Z-targeting 


/* Backup script clips
// Nunchuk movement: 
if 2 > Wiimote1.Nunchuk.JoyX > 0.5 then 
Right = true 
wait 60 ms 
Right = false 
endif 
if -2 < Wiimote1.Nunchuk.JoyX < -0.5 then 
left = true 
wait 60 ms 
left = false 
endif 
if 2 > Wiimote1.Nunchuk.JoyY > 0.5 then 
down = true 
wait 60 ms 
down = false 
endif 
if -2 < Wiimote1.Nunchuk.JoyY < -0.5 then 
up = true 
wait 60 ms 
up = false 
endif 
*/

// Spin attack (needs work/Fail rate is too high) 
if (wiimote.Nunchuk.RawAccX  > 20) then 
up      = true 
wait    10 ms 
left    = true 
wait    10 ms 
up      = false 
wait    10 ms 
down    = true 
wait    10 ms 
left    = false 
wait    10 ms 
right   = true 
wait    10 ms 
down    = false 
wait    10 ms 
up      = true 
wait    10 ms 
right   = false 
B       = true 
wait    10 ms 
B and up = false 
wait           600 ms 
wiimote.Rumble = false 
endif
 
/* Modifying to work with battery script better
// LEDs & rumble during spin attack 
if (wiimote.Nunchuk.RawAccX  > 20) then 
wait 90 ms 
wiimote.Rumble = true 
wait 20 ms 
Wiimote.Led1 = 1 
wait 75 ms 
Wiimote.Led2 = 1 
wait 75 ms 
Wiimote.Led3 = 1 
wait 75 ms 
Wiimote.Led4 = 1 
wait 75 ms 
Wiimote.Led1 = 0 
wait 75 ms 
Wiimote.Led2 = 0 
wait 75 ms 
Wiimote.Led3 = 0 
wait 75 ms 
Wiimote.Led4 = 0 
wait 75 ms 
wiimote.Rumble = false
endif 
*/

// Nunchuck controls 
Z = wiimote.Nunchuk.ZButton // Z-Target/Focus

if Wiimote.Nunchuk.CButton then
F5  =  Wiimote.Up        // Save
F7  =  Wiimote.Down      // Restore
F2  =  Wiimote.Left      // Pause
F12 =  Wiimote.Right     // End Emulation
L   =  Wiimote.A         // Moon Jump/Map
else
NUMPAD8 = Wiimote.Up     // C-Up
NUMPAD4 = Wiimote.Left   // C-Left
NUMPAD6 = Wiimote.Right  // C-Right
NUMPAD5 = Wiimote.Down   // C-Down
L       = Wiimote.Two    // Moon Jump/Map
endif
/*
if Wiimote.Nunchuk.Cbutton then

// Nunchuk movement: 

  if 2 > Wiimote1.RawAccX > 0.5 then
   Right = true;
   wait 60 ms;
   Right = false;
  endif

  if -2 < Wiimote1.RawAccX < -0.5 then
   left = true
   wait 60 ms
   left = false
  endif

  if 2 > Wiimote1.RawAccY > 0.5 then
   down = true
   wait 60 ms
   down = false
  endif

  if -2 < Wiimote1.RawAccY < -0.5 then
   up = true
   wait 60 ms
   up = false
  endif

else
*/
// Nunchuk movement: 

  if 2 > Wiimote1.Nunchuk.JoyX > 0.5 then
   Right = true
   wait 60 ms
   Right = false
  endif

  if -2 < Wiimote1.Nunchuk.JoyX < -0.5 then
   left = true
   wait 60 ms
   left = false
  endif

  if 2 > Wiimote1.Nunchuk.JoyY > 0.5 then
   down = true
   wait 60 ms
   down = false
  endif

  if -2 < Wiimote1.Nunchuk.JoyY < -0.5 then
   up = true
   wait 60 ms
   up = false
  endif

//endif


// Wiimote controls: 
S = wiimote.Plus 
b = wiimote.Minus 
r = wiimote.b 
a = Wiimote.A 
S = wiimote.One 

// Swordfighting 
if (wiimote.RelAccX > 25) or (wiimote.RelAccY > 25) or (wiimote.RelAccZ > 15) then 
B = true 
wiimote.Rumble = true 
wait 60 ms 
B = false 
wait 100 ms 
wiimote.Rumble = false 
endif

//A full battery gives 0xC0 (192)
var.Batt = wiimote.Battery / 48

if true then
wait 5 seconds
//it sends an instruction that tells the Wiimote to actually
//send the report.
Wiimote.Report15 = 0x80 | Int(wiimote.Rumble)
end if

//Display the battery level of your wiimote using the four LEDs on the bottom.
//Battery level is displayed in four levels increasing to the right, like a cell
//phone battery gauge. As the battery gets close to the next level down, the LED
//for the current level will blink.

//Blink rate
var.Blink = 500ms

debug = "Battery level: " + 100*48*var.Batt/192 + "%"

if 0<=var.Batt<=0.25 then
Wiimote.Leds = 1
wait var.Blink
Wiimote.Leds = 0
wait var.Blink
elseif 0.25 < var.Batt<=1 then
Wiimote.Leds = 1
elseif 1 < var.Batt<=1.25 then
Wiimote.Leds = 3
wait var.Blink
Wiimote.Leds = 1
wait var.Blink
elseif 1.25 < var.Batt<=2 then
Wiimote.Leds = 3
elseif 2 < var.Batt<=2.25 then
Wiimote.Leds = 7
wait var.Blink
Wiimote.Leds = 3
wait var.Blink
elseif 2.25 < var.Batt<=3 then
Wiimote.Leds = 7
elseif 3 < var.Batt<=3.25 then
Wiimote.Leds = 15
wait var.Blink
Wiimote.Leds = 7
wait var.Blink
elseif 3.25 < var.Batt<=4 then
Wiimote.Leds = 15
else
Wiimote.Leds = 0
endif