From c99ab3e42c6894c533c0e1493d5dd8c10c451c35 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 26 Jun 2011 23:35:30 +0000 Subject: [PATCH] RBI Baseball script written by me --- output/luaScripts/RBIBaseball.lua | 178 ++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 output/luaScripts/RBIBaseball.lua diff --git a/output/luaScripts/RBIBaseball.lua b/output/luaScripts/RBIBaseball.lua new file mode 100644 index 00000000..799959b6 --- /dev/null +++ b/output/luaScripts/RBIBaseball.lua @@ -0,0 +1,178 @@ +--RBI Baseball script +--Written by adelikat +--Shows stats and information on screen and can even change a batter or pitcher's hand + +local PitchingScreenAddr = 0x001A; +local PitchingScreen; + +local p1PitchHealthAddr = 0x060D; +local p1PitchHealth; + +local p2PitchHealthAddr = 0x061D; +local p2PitchHealth; + +local p1OutsAddr = 0x0665; +local p1Outs; + +local pitchtypeAddr = 0x0112; +local pitchtype; + +local P1currHitterPowerAddr = 0x062B --2 byte +local P1currSpeedAddr = 0x062D +local P1currContactAddr = 0x062A + +local P2currHitterPowerAddr = 0x063B --2 byte +local P2currSpeedAddr = 0x063D +local P2currContactAddr = 0x063A + +local topinningAddr = 0x0115 + +--Extra Ram map notes +--0627 = P1 Batter Lefy or Righty (even or odd) +--0628 = P1 Bat average 150 + this address +--0629 = P1 # of Home Runs +--0638 = P2 Bat average 2 150 + this address +--0639 = P2 # of Home Runs +--0637 = P2 Batter Lefy or Righty (even or odd) + +--060x = P1 pitcher, 061x = P2 pitcher + +--0607 = +--Right digit = P1 Pitcher Lefty or Right (even or odd) +--Left digit = P1 Pitcher drop rating + +--0609 = P1 Sinker ball speed +--060A = P1 Regular ball Speed +--060B = P1 Fastball Speed +--060C = P1 Pitcher Curve rating left digit is curve left, right is curve right + +--0114 = Current Inning +--0115 = 10 if bottom of inning, 0 if on top, controls which player can control the batter + +--0728 & 0279 - In charge of inning music + +--TODO +--A hotkeys for boosting/lowering current pitcher (p1 or 2) health +--fix pitcher L/R switching to not kill the left digit (drop rating) in the process +--Do integer division on curve rating +--Outs display is wrong +--Music on/off toggle + +while true do + +memory.writebyte(0x0726, 0) --Turn of inning music +memory.writebyte(0x0727, 0) +memory.writebyte(0x0728, 0) +memory.writebyte(0x0729, 0) + +inningtb = memory.readbyte(topinningAddr); +i = input.get(); + +--Switch P1 batter hands +if (i.K == true) then + if (inningtb == 0x10) then + memory.writebyte(0x0607, 0) + end + if (inningtb == 0) then + memory.writebyte(0x0627, 0) + end +end + +if (i.L == true) then + if (inningtb == 0x10) then + memory.writebyte(0x0607, 1) + end + if (inningtb == 0) then + memory.writebyte(0x0627, 1) + end +end + +--Switch P2 batter hands +if (i.H == true) then + if (inningtb == 0x0) then + memory.writebyte(0x0617, 0) + end + if (inningtb == 0x10) then + memory.writebyte(0x0637, 0) + end +end + +if (i.J == true) then + if (inningtb == 0x0) then + memory.writebyte(0x0617, 1) + end + if (inningtb == 0x10) then + memory.writebyte(0x0637, 1) + end +end + +PitchingScreen = memory.readbyte(PitchingScreenAddr); + +------------------------------------------------------- +if (PitchingScreen == 0x003E) then +gui.text(186,24, "Toggle Hand\nH/J"); +gui.text(1,24, "Toggle Hand\nK/L"); + +pitchtype = memory.readbyte(pitchtypeAddr); + +--What the pitcher will pitch +if (pitchtype == 0) then + gui.text(100,1,"Sinker!!"); +end +if (pitchtype == 2) then + gui.text(100,1,"Fast Ball") +end +if (pitchtype == 1) then + gui.text(100,1,"Regular Pitch") +end + +--Top of Inning +if (inningtb == 0) then + gui.text(186,1,"Health " .. memory.readbyte(0x061D)) + gui.text(186,128,"Drop " .. memory.readbyte(0x0617) % 16) + gui.text(186,136,"CurveL " .. memory.readbyte(0x061C) / 16) + gui.text(186,144,"CurveR " .. memory.readbyte(0x061C) % 16) + gui.text(186,152,"Fast SP " .. memory.readbyte(0x061B)) + gui.text(186,160,"Reg SP " .. memory.readbyte(0x061A)) + gui.text(186,168,"Sink SP " .. memory.readbyte(0x0619)) + + P1currPower = memory.readbyte(P1currHitterPowerAddr) + (memory.readbyte(P1currHitterPowerAddr+1) * 256); + gui.text(1,176, "Power: " .. P1currPower); + P1currSpeed = memory.readbyte(P1currSpeedAddr); + gui.text(1,168, "Speed: " .. P1currSpeed); + P1currCt = memory.readbyte(P1currContactAddr); + gui.text(1,160, "Contact: " .. P1currCt); +end + +--Bottom of Inning +if (inningtb == 0x10) then + gui.text(1,1,"Health " .. memory.readbyte(0x060D)) + gui.text(1,128,"Drop " .. memory.readbyte(0x0607) % 16) + gui.text(1,136,"CurveL " .. memory.readbyte(0x060C) / 16) + gui.text(1,144,"CurveR " .. memory.readbyte(0x060C) % 16) + gui.text(1,152,"Fast SP " .. memory.readbyte(0x060B)) + gui.text(1,160,"Reg SP " .. memory.readbyte(0x060A)) + gui.text(1,168,"Sink SP " .. memory.readbyte(0x0609)) + + P2currPower = memory.readbyte(P2currHitterPowerAddr) + (memory.readbyte(P2currHitterPowerAddr+1) * 256); + gui.text(188,176, "Power: " .. P2currPower); + P2currSpeed = memory.readbyte(P2currSpeedAddr); + gui.text(188,168, "Speed: " .. P2currSpeed); + P2currCt = memory.readbyte(P2currContactAddr); + gui.text(188,160, "Contact: " .. P2currCt); +end + +end +------------------------------------------------------- + +if (PitchingScreen == 0x0036) then + +p1Outs = memory.readbyte(p1OutsAddr); +gui.text(1,1, "Outs " .. p1Outs); + +end +------------------------------------------------------- + +emu.frameadvance() + +end \ No newline at end of file