Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function round(num, numDecimalPlaces)
- local mult = 10^(numDecimalPlaces or 0)
- return math.floor(num * mult + 0.5) / mult
- end
- function printMemoryDomains(x,y)
- local list = {}
- list = memory.getmemorydomainlist()
- local curr = memory.getcurrentmemorydomain()
- local num = table.getn(list)
- local i
- gui.text(x,y,"Current: " .. curr)
- for i=0,num do
- gui.text(x,y + 15*(i+1),list[i])
- end
- end
- function printLocation(x,y)
- --0x7BABC related to movement startup
- XSpeed = memory.readfloat(0x7BAE4, true, "RDRAM")
- YSpeed = memory.readfloat(0x7BAEC, true, "RDRAM")
- Speed = math.sqrt(XSpeed * XSpeed + YSpeed * YSpeed)
- gui.text(x,y + 0,"X: " .. round(memory.readfloat(0x7BACC, true, "RDRAM"),4))
- gui.text(x,y+15,"Y: " .. round(memory.readfloat(0x7BAD4, true, "RDRAM"),4))
- gui.text(x,y+30,"XSpeed: " .. round(XSpeed,4))
- gui.text(x,y+45,"YSpeed: " .. round(YSpeed,4))
- gui.text(x,y+60,"Speed: " .. round(Speed,4))
- end
- --84EE6 and 84EEE strongly related to "area/zone or maybe music"
- --memory.write_u16_be(0x084EE6, 2, "RDRAM")
- --memory.write_u16_be(0x084EEE, 2, "RDRAM")
- --memory.write_u16_be(0x08536A, 2, "RDRAM")
- function printItems(x,y)
- for i=1,30 do
- Item = memory.readbyte(0x8CF78 + (i -1), "RDRAM")
- if Item ~= 255 then
- gui.text(x,y + 15*(i-1), "Item:" .. globalItemList[Item+1])
- end
- end
- end
- function printAgility (x,y)
- --gui.text(x,y + 15*0,"Agi(?): " .. round(memory.readfloat(0x7BC14, true, "RDRAM"),4))
- --gui.text(x+200,y + 15*0,"/800")
- gui.text(x,y + 15*1,"AgiField: " .. round(memory.readfloat(0x7BC18, true, "RDRAM"),4))
- gui.text(x+200,y + 15*1,"/1000")
- gui.text(x,y+15*2,"AgiTown: " .. round(memory.readfloat(0x7BC1C, true, "RDRAM"),4))
- gui.text(x+200,y + 15*2,"/2000")
- gui.text(x,y+15*3,"AgiBattle:" .. round(memory.readfloat(0x7BCA0, true, "RDRAM"),4))
- gui.text(x+200,y + 15*3,"/50")
- gui.text(x,y+15*4,"MPRecharge: " .. round(memory.readfloat(0x7BC0C, true, "RDRAM"),4))
- gui.text(x+200,y + 15*4,"/35")
- --gui.text(x,y+15*3,"Camera: " .. round(memory.readfloat(0x85D3C, true, "RDRAM"),4))
- --gui.text(x,y+15*4,"Camera: " .. round(memory.readfloat(0x85DAC, true, "RDRAM"),4))
- --gui.text(x,y+15*5,"Camera: " .. round(memory.readfloat(0x85DE4, true, "RDRAM"),4))
- --gui.text(x,y+15*6,"Camera: " .. round(memory.readfloat(0x85E54, true, "RDRAM"),4))
- gui.text(x,y+15*7,"BattleLastX: " .. round(memory.readfloat(0x86B18, true, "RDRAM"),4))
- --gui.text(x,y+15*8,"BattleLastZ: " .. round(memory.readfloat(0x86B1C, true, "RDRAM"),4))
- gui.text(x,y+15*8,"BattleLastY: " .. round(memory.readfloat(0x86B20, true, "RDRAM"),4))
- gui.text(x,y+15*9,"CameraCenteredHereX: " .. round(memory.readfloat(0x86DD8, true, "RDRAM"),4))
- --gui.text(x,y+15*9,"CameraCenteredHereZ: " .. round(memory.readfloat(0x86DDC, true, "RDRAM"),4))
- gui.text(x,y+15*10,"CameraCenteredHereY: " .. round(memory.readfloat(0x86DE0, true, "RDRAM"),4))
- --gui.text(x,y+15*9,"ArenaX: " .. round(memory.readfloat(0x88188, true, "RDRAM"),4))
- --gui.text(x,y+15*10,"ArenaX: " .. round(memory.readfloat(0x881B8, true, "RDRAM"),4))
- --gui.text(x,y+15*11,"ArenaX: " .. round(memory.readfloat(0x8C5A4, true, "RDRAM"),4))
- end
- function printEncounterCounter(x,y)
- gui.text(x,y,"EncCount: " .. memory.read_u16_be(0x8C578, "RDRAM"))
- gui.text(x+190,y,"/2000")
- gui.text(x,y + 15,"Increment: " .. round(memory.readfloat(0x8C574, true, "RDRAM"),4))
- end
- function freezeEncounterCounter()
- memory.write_u16_be(0x8C578, 0, "RDRAM")
- memory.writefloat(0x8C574, 0, true, "RDRAM")
- end
- function highEncounterCounter()
- memory.write_u16_be(0x8C578, 1800,"RDRAM")
- end
- function printEnemyStats(x,y)
- EnemiesLeft = memory.readbyte(0x07C993, "RDRAM")
- TimeUntilYouAct = memory.read_u16_be(0x07C99A, "RDRAM")
- gui.text(x,y,"ToAct:" .. TimeUntilYouAct)
- NumEnemies = EnemiesLeft -- For Now, Not Ideal
- if NumEnemies > 0 then
- for i=1,NumEnemies do
- Base = 0x07C99C --next = 0x07CAC4
- WalkDec1 = memory.read_u16_be(0x07C99C + 296*(i-1), "RDRAM")
- RelatedToAttacking = memory.read_u16_be(0x07C99E + 296*(i-1), "RDRAM")
- RelatedToAttacking2 = memory.read_u16_be(0x07C9A0 + 296*(i-1), "RDRAM")
- FloatSomething = memory.readfloat(0x7C9A8 + 296*(i-1), true, "RDRAM")
- CurrHP = memory.read_u16_be(0x07C9A2 + 296*(i-1), "RDRAM") --9A2 and ACA and BF2 --7C993 = dead? 3 = alive, 2 = dead? (296 = 0x128)
- MaxHP = memory.read_u16_be(0x07C9A4 + 296*(i-1), "RDRAM")
- X = memory.readfloat(0x7C9BC + 296*(i-1), true, "RDRAM")
- Z = memory.readfloat(0x7C9C0 + 296*(i-1), true, "RDRAM")
- Y = memory.readfloat(0x7C9C4 + 296*(i-1), true, "RDRAM")
- RapidlyChanging1 = memory.read_u16_be(0x07C9C6 + 296*(i-1), "RDRAM")
- RapidlyChanging2 = memory.read_u16_be(0x07C9D4 + 296*(i-1), "RDRAM")
- RapidlyChanging3 = memory.read_u16_be(0x07C9D6 + 296*(i-1), "RDRAM")
- RapidlyChanging4 = memory.read_u16_be(0x07C9DC + 296*(i-1), "RDRAM")
- RapidlyChanging5 = memory.read_u16_be(0x07C9DE + 296*(i-1), "RDRAM")
- Float1 = memory.readfloat(0x7C9E0 + 296*(i-1), true, "RDRAM")
- Float2 = memory.readfloat(0x7C9E4 + 296*(i-1), true, "RDRAM")
- Float3 = memory.readfloat(0x7C9E8 + 296*(i-1), true, "RDRAM")
- Float4 = memory.readfloat(0x7C9EC + 296*(i-1), true, "RDRAM")
- Float5 = memory.readfloat(0x7C9F0 + 296*(i-1), true, "RDRAM")
- ID = memory.readbyte(0x07CA0D + 296*(i-1), "RDRAM") --A0D
- RapidlyChanging6 = memory.read_u16_be(0x07CA10 + 296*(i-1), "RDRAM")
- RapidlyChanging7 = memory.read_u16_be(0x07CA12 + 296*(i-1), "RDRAM")
- RelatedToAttacking3 = memory.readbyte(0x07CA19+ 296*(i-1), "RDRAM")
- Dunno1 = memory.readbyte(0x07CA1B+ 296*(i-1), "RDRAM")
- Atk = memory.read_u16_be(0x07CAAC + 296*(i-1), "RDRAM")
- Agi = memory.read_u16_be(0x07CAAE + 296*(i-1), "RDRAM")
- Def= memory.read_u16_be(0x07CAB0 + 296*(i-1), "RDRAM")
- --Exp does not appear to be here. Total Exp for battle maybe?
- gui.text(x+100*(i-1),y+15,"HP:" .. CurrHP .. "/" .. MaxHP)
- gui.text(x+100*(i-1),y+30,"At:" .. Atk)
- gui.text(x+100*(i-1),y+45,"De:" .. Def)
- gui.text(x+100*(i-1),y+60,"Ag:" .. Agi)
- gui.text(x+100*(i-1),y+75,"ID:" .. ID)
- gui.text(x+100*(i-1),y+90,"WalkDec:" .. WalkDec1)
- gui.text(x+100*(i-1),y+105,"2:" .. Dunno1)
- --gui.text(x+100*(i-1),y+120,"3:" .. Dunno3)
- end
- end
- end
- --Solvaring
- --Zelse
- --Nepty
- --Shilf
- --Fargo
- --Guilty
- --Beigis Stats in ROM at D87944
- --Mammon in ROM at D8797C --Offset is 0x38
- --*
- --*
- --6 areas and bosses
- --
- --0x112664 07D0BF 07D0AF 07D0AE 07D0AD 07D0AA 07D0A9
- --1 96 68 9 39 8 39
- --0 116 112 90 41 89 41
- --255 136 184 144 38 144 38
- --0 156 164 32 40 31 40
- --0 176 192 140 39 140 39
- --39 39 39 39 39 8 144 39 9 68 96 65 141
- --41 41 41 41 41 89 144 41 90 112 116 129 147
- --Were Hare ADC094 80, 140, 0.07
- --Hell Hound 130, 170, 0.084
- --Man Eater 115, 135, 0.084
- --Big Mouth ADC13C 130, 70, 0.105
- --Parassault 90, 150, 0.077
- --Orc Jr 90, 150, 0.077
- --Gremlin 90, 140, 0.084
- --Skeleton 90, 135, 0.084
- --Ghost Hound 90, 238, 0.084
- --Merrow 130, 170, 0.084
- --Wolf Goat 80, 125, 0.084, 130, 170, 0.091
- --*
- --Goblin B6337C
- --Frog King
- --Apophis
- --Mad Doll
- --Death Hugger
- --Kobold
- --Man Trap
- --Bat
- --Frog Knight
- --Marionasty
- --Dark Goblin
- --Hot Lips
- --Ghost Stalker B6361C
- --Treant
- --Cockatrice
- --*
- --Multi-Optics BBDE9C
- --Mimic
- --Crawler
- --Scorpion
- --Scare Crow
- --Wyvern
- --Skelebat
- --Cryshell BBE024
- --Blood Jell
- --Caterpillar (9) -- C7D935 is interesting, may be red herring
- --Fish Man
- --*
- --Sandman (ID 0) C317EC
- --Werecat
- --Nightmare
- --Blue Man
- --Winged Sunfish
- --Gloon Wing
- --Ogre (ID 6)
- --Rocky (ID 7)
- --Red Wyvern
- --FlamedMane
- --Magma Fish
- --RedRose (ID 11)
- --WhiteRoseKnight: C31A8C
- --*
- --Orc C9BE54
- --Ghost C9BE8C
- --Will o Wisp
- --Sprite
- --JackoLantern
- --Arachnoid
- --Lamia
- --Temptress
- --Pixie
- --Grangach
- --Thunder Jell
- --Termant
- --*
- --Judgment HP: CC443C
- --Pin Head HP: CC44AC
- --Pale Rider: CC4474
- --Spriggan: CC44E4
- --RNG ROM
- --023BE2 =16838 and 023BE6 = 20077
- --41C64E6Dh + 3039h
- --12345 or 13345 ??
- --023BE4
- --RNG RAM
- --022FE0
- --memory.write_u16_be(0x22FE2, 0, "RDRAM")
- --memory.write_u16_be(0x22FE4, 300, "RDRAM")
- --memory.write_u16_be(0x22FE6, 0, "RDRAM")
- --Avalanche Y starts at 0x86F2C
- function printStats(x,y)
- local Exp = memory.read_u32_be(0x07BA90, "RDRAM")
- local HPLv = memory.readbyte(0x07BAB0, "RDRAM")
- local MPLv = memory.readbyte(0x07BAB1, "RDRAM")
- local AgiLv = memory.readbyte(0x07BAB2, "RDRAM")
- local DefLv = memory.readbyte(0x07BAB3, "RDRAM")
- local Lv = memory.readbyte(0x07BAB4, "RDRAM")
- local CurrHP = memory.read_u16_be(0x7BA84, "RDRAM")
- local MaxHP = memory.read_u16_be(0x7BA86, "RDRAM")
- local HPSub = memory.readbyte(0x7BAA9, "RDRAM")
- local CurrMP = memory.read_u16_be(0x7BA88, "RDRAM")
- local MaxMP = memory.read_u16_be(0x7BA8A, "RDRAM")
- local MPSub = memory.readbyte(0x7BAAB, "RDRAM")
- local Def = memory.readbyte(0x7BA8F, "RDRAM")
- local DefSub = memory.readbyte(0x7BAAF, "RDRAM")
- local Agi = memory.readbyte(0x7BA8D, "RDRAM")
- local AgiSub = memory.readbyte(0x7BAAD, "RDRAM")
- gui.text(x,y+0,"HP: " .. CurrHP .. "/" .. MaxHP .. " (" .. HPSub .. "/" .. globalStatTable[HPLv+1] ..")")
- gui.text(x,y+15,"MP: " .. CurrMP .. "/" .. MaxMP .. " (" .. MPSub .. "/" .. 4*globalStatTable[MPLv+1] ..")")
- gui.text(x,y+30,"Def: " .. Def .. " (" .. DefSub .. "/" .. 2*globalStatTable[DefLv+1] ..")")
- gui.text(x,y+45,"Agi: " .. Agi .. " (" .. AgiSub .. "/" .. globalStatTable[AgiLv+1] ..")")
- gui.text(x,y+60,"Lv: " .. Lv .. " (" .. Exp .. "/" .. globalLvTable[Lv+1] .. ")")
- end
- function HP50()
- memory.write_u16_be(0x7BA84, 50, "RDRAM")
- end
- function setSpirits(f,e,wa,wi)
- memory.writebyte(0x7BAA4, f, "RDRAM")
- memory.writebyte(0x7BAA5, e, "RDRAM")
- memory.writebyte(0x7BAA6, wa, "RDRAM")
- memory.writebyte(0x7BAA7, wi, "RDRAM")
- end
- function setStats(HP,MP,De,Ag)
- memory.write_u16_be(0x7BA86, HP, "RDRAM")
- memory.write_u16_be(0x7BA8A, MP, "RDRAM")
- memory.writebyte(0x7BA8F, De, "RDRAM")
- memory.writebyte(0x7BA8D, Ag, "RDRAM")
- end
- function stackOfJewelsAndWings()
- --Earth Orb opens Connor Fortress door.
- --Wind Jade opens door to access Blue Cave.
- --Water Jewel reopens ship.
- memory.writebyte(0x8CF78, 20, "RDRAM")
- memory.writebyte(0x8CF79, 21, "RDRAM")
- memory.writebyte(0x8CF7A, 22, "RDRAM")
- memory.writebyte(0x8CF7B, 14, "RDRAM")
- memory.writebyte(0x8CF7C, 15, "RDRAM")
- memory.writebyte(0x8CF7D, 16, "RDRAM")
- memory.writebyte(0x8CF7E, 17, "RDRAM")
- memory.writebyte(0x8CF7F, 18, "RDRAM")
- memory.writebyte(0x8CF80, 19, "RDRAM")
- end
- function setupLvTable(tmpTable)
- --This table is calculated off the current level.
- local i
- for i=1,99 do
- tmpTable[i] = memory.read_u32_be(0x05493C+4*(i-1),"ROM")
- end
- return tmpTable
- end
- function printLvTable(x,y,tmpTable)
- local i
- for i=1,99 do
- gui.text(x,y+i*15,tmpTable[i])
- end
- end
- function setupStatTable(tmpTable1)
- --This table is calculated off the concept of numStatLevels, not current level.
- local i
- for i=1,70 do
- tmpTable1[i] = memory.read_u16_be(0x054ACC+2*(i-1),"ROM")
- end
- return tmpTable1
- end
- function printStatTable(x,y,tmpTable1)
- --ROM 0x054909 is starting stats I think?
- local i
- for i=1,70 do
- gui.text(x,y+i*15,tmpTable1[i])
- end
- end
- function printObjectCoordinates(x,y)
- --memory.writefloat(0x86F2C, 1600, true, "RDRAM")
- BrianX = memory.readfloat(0x7BACC, true, "RDRAM")
- BrianY = memory.readfloat(0x7BAD4, true, "RDRAM")
- for i=1,10 do
- Timer = memory.read_u16_be(0x86F1C + 60*(i-1), "RDRAM")
- X = memory.readfloat(0x86F24 + 60*(i-1), true, "RDRAM")
- Z = memory.readfloat(0x86F28 + 60*(i-1), true, "RDRAM")
- Y = memory.readfloat(0x86F2C + 60*(i-1), true, "RDRAM")
- XDiff= (BrianX - X)
- YDiff= (BrianY - Y)
- D = math.sqrt(XDiff*XDiff + YDiff*YDiff)
- A = math.atan2(XDiff,YDiff)*(180/(math.pi))
- j=0
- if i > 5 then
- j=1
- end
- if (Timer > 0) then
- gui.text(x+140*(i-j*5-1),y+0*15 + j*100,"Timer: " .. Timer)
- gui.text(x+140*(i-j*5-1),y+1*15 + j*100,"X: " .. round(X,3))
- gui.text(x+140*(i-j*5-1),y+2*15 + j*100,"Z: " .. round(Z,3))
- gui.text(x+140*(i-j*5-1),y+3*15 + j*100,"Y: " .. round(Y,3))
- gui.text(x+140*(i-j*5-1),y+4*15 + j*100,"D: " .. round(D,3))
- gui.text(x+140*(i-j*5-1),y+5*15 + j*100,"A: " .. round(A,3)) --16 angles
- end
- end
- --F1C Timer
- --F24 X
- --F28 Z
- --F2C Y
- --F60 X
- --F64 Z
- --F68 Y
- end
- globalItemList = {
- "0. Spirit Light",
- "1. Fresh Bread",
- "2. Honey Bread",
- "3. Healing Potion",
- "4 Dragon's Potion",
- "5. Dew Drop",
- "6. Mint Leaves",
- "7. Heroes Drink",
- "8. Silent Flute",
- "9.Celine's Bell",
- "10.Replica",
- "11.Giant's Shoes",
- "12.Silver Amulet",
- "13.Golden Amulet",
- "14.White Wings",
- "15.Yellow Wings",
- "16.Blue Wings",
- "17.Green Wings",
- "18.Red Wings",
- "19.Black Wings",
- "20.Earth Orb",
- "21.Wind Jade",
- "22.Water Jewel",
- "23.Fire Ruby",
- "24.Eletale Book",
- "25.Dark Gaol Key",
- }
- -- Initializations
- local i
- globalLvTable = {}
- globalLvTable = setupLvTable(globalLvTable)
- globalStatTable = {}
- globalStatTable = setupStatTable(globalStatTable)
- memory.usememorydomain("RDRAM")
- ----------------------------
- --Changes go down here.--
- ----------------------------
- local tmp
- --for i=0x1,0xFFFF00 do
- --if memory.readbyte(i) == 9 then
- --if memory.readbyte(i+1) == 9 and memory.readbyte(i+2) == 9 and memory.readbyte(i+3) == 9 then
- --end
- --end
- --memory.writebyte(0x07BAB4, 10, "RDRAM")
- --HP50()
- setSpirits(38,39,40,41)
- setStats(200,100,250,250)
- while true do
- --memory.write_u32_be(0x7508C, 0, "RDRAM") -- did this do something?
- ---memory.write_u16_be(0x22FE2, 0, "RDRAM")
- --memory.write_u16_be(0x22FE4, 300, "RDRAM")
- ---memory.write_u16_be(0x22FE6, 0, "RDRAM")
- --4 same as 0
- --RNG increment 0,N,1 rotates in a circle around you.
- --RNG increment 0,0,0 stays in one spot
- --Thing1
- --memory.writefloat(0x86FA4, 1600, true, "RDRAM")
- stackOfJewelsAndWings()
- HP50()
- --highEncounterCounter()
- --memory.writebyte(0x07CAB2,0,"RDRAM")
- --memory.writebyte(0x07CAB5,0,"RDRAM")
- --memory.writebyte(0x07CAB4,0,"RDRAM")
- --memory.writebyte(0x07CAB3,0,"RDRAM")
- --freezeEncounterCounter()
- --printEnemyStats(50,10)
- printEncounterCounter(100,500)
- printStats(100,420)
- --printLocation(100,150)
- printAgility(100,230)
- printItems(400,250)
- printObjectCoordinates(50,10)
- --printMemoryDomains(100,115)
- --printLvTable(100,115,globalLvTable)
- --printStatTable(100,115,globalStatTable)
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement