Posts for Pokota

1 2
11 12 13 31 32
Post subject: I found an eleven-foot pole
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
memory.write won't work for other games because it's poking values into ram as opposed to drawing on the display surface. On that note, you probably shouldn't be using memory.write at all unless you're trying science. Can you post the relevant lua script? I cannot read a sealed book. I can't help with something I can't see.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I don't know about Masterjun, but I call it "outside the scope of this thread."
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Warp wrote:
Mathematicians seem very divided on the question of whether you can say that eg. "1+2+4+8+16+... = -1". Some are ok with it, others are categorically against it.
sum(2x) is infinite when you're using a Totally Regular Summation Method. It only generates a cosmic underflow error when we start using other methods. I'm not good enough with infinite sums to explain how Euler's summation using the general formula of 1 + y2 + y3 + y4 ... = 1/(1 - y) leads to -1 tho. E: Had it explained to me. Say S is the sum of 2x S = 1 + 2 + 4 + 8 ... This means 2S, double the sum of 2x, would be this: 2S = 2 + 4 + 8 + 16 ... What happens when we take S - 2S? S - 2S = 1 + (2 - 2) + (4 - 4) + (8 - 8) ... S - 2S = 1 -S = 1 S = -1
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Phallosvogel, I direct you to this post by Synx.
Synx wrote:
GIM does not work on an n64 because the n64 crashes. The only way to perform the glitch is with an emulator that emulates the game differently than an n64 would. The closest GIM gets to being legit is when performed on dolphin, since that is an official emulator by nintendo and there is a release of Ocarina of Time available for gamecube. Even so this is the "Nintendo 64 Games" subforum and therefore any run using GIM should be irrelevant here.
In short, what we thought was an emulation error might actually be usable in a run. To be more precise, GIM crashes on Real Hardware but not in an Emulated system, apparently due to inaccuracies in the graphics rendering systems. That there's Real Hardware usage of GIM is very exciting, even if the route is trash, since that opens the door for GIMing in other places.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
the sequel's cards change after a new game+
In CoS, it's not that the cards themselves change because of ng+, it's that you pick the other deck when you start over but keep what you found in the previous game. Fixed-location cards and received card combos both work off of which deck you pick at the start (like in PSS). I don't know if cards/combos are retained in PSS, as I've not completed it on my own yet. And you're guaranteed the prize card (a Harry Potter card) in CoS for completing regardless of which deck you start with, but it's effectively only available for use starting from ng+.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Spikestuff wrote:
evknucklehead wrote:
You trade the Abra for a Mr. Mime, not Lickitung. The Lickitung trade comes later with a Slowbro.
Besides, this, is there any notable issues in this cleaned up version of the subs? http://pastebin.com/F2W97S6r Feedback would be nice. Don't mention how the numbers go from 202 to 204 while skipping 203 (for example), that's just merging stuff, it'll be fixed in the final.
If anyone's confused as to how to actually view these subtitles, they're in .srt format; save it as a .srt file and point $media_player to them when you're watching your local encode of the run.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
It is; I'm working on a replacement temp encode as we speak.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I normally enjoy TASes that don't skip levels/play on the hardest difficulty. I don't enjoy this one, largely because stage 3 exists. I can't fault the runner for that, it's just the nature of increasing-length simon says minigames.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
It should be disabled (if it's enabled then the lag frames will proceed normally which prevents you from precisely changing the inputs); this way we can rule out something simple as the cause. Since it's not the simple thing that's the problem, may as well go to the area creaothcann linked to. You'll need your BizHawk version and OS information when you go to post there.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Ethanagor: In Config -> Customize... -> Advanced, is "Frame advance button skips non-input frames" enabled or disabled?
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Nah, I just want to have some good control over party composition so that I can pin down the addresses for team.charindex. The PHS is just the first time we have full-ish on-demand party composition control. If you're interested, we could use a github repository to coordinate this work better instead of clogging up the thread with it.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Right before PHS is fine; I just don't want to play through the flashback. You can upload wch files to userfiles, by the way.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I got fed up with the Aeris/Aerith argument and decided to just use a placeholder name (that and it's usually the option I pick on my casual runs). Once everything else is in place and ready for production protags[3] really will get overwritten by getAeri(crit_rng). Regarding addresses, if you have them please share them and save me the time of researching them myself so that I can implement/test. Even if you're just linking to a page that someone else put up. E: Do you have a movie file up through getting the PHS? I don't really want to play my own way through Midgar and the Flashback.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I'll need the ram addresses and algorithms for most of that. The critical hit script I was working off of only looked at one monster, and there are as many as five enemy slots. What I have:
Language: lua

-- Definitions and relative addresses are referencing http://wiki.qhimm.com/view/FF7/Battle/Battle_Mechanics rng_index = 0x62e18 rng_table = 0x62e10 enemies = { ["levels"] = { [0]=0xf8589, [1]=0x0, [2]=0x0, [3]=0x0, [4]=0x0 }, ["health"] = { [0]=0x0, [1]=0x0, [2]=0x0, [3]=0x0, [4]=0x0 }, ["ATB"] = { [0]=0x0, [1]=0x0, [2]=0x0, [3]=0x0, [4]=0x0 } } team = { ["levels"] = { [0]=0xf83e9, [1]=0xf8451, [2]=0xf84b9 }, ["luck"] = { [0]=0xf83f5, [1]=0xf845d, [2]=0xf84c5 }, ["charindex"] = { [0]=0x0, [1]=0x0, [2]=0x0 }, ["ATB"] = { [0]=0x0, [1]=0x0, [2]=0x0 }, ["Limit"] = { [0]=0x0, [1]=0x0, [2]=0x0 } } function getAeri(value) if (value >= 0x100) then newvalue = value % 256 getAeri(newvalue) elseif (value >=0) then timer = bit.band(bit.ror(value,4),1) if timer == 0 then return "Aeris" elseif timer == 1 then return "Aerith" else return "error in function getAeri() - timer is neither odd nor even" end else return "error in function getAeri() - was passed negative value" end end protags = { [0] = "Cloud", [1] = "Barret", [2] = "Tifa", [3] = "The Slum Drunk", -- This gets overwritten by the GetAeri() function anyway [4] = "Red XIII", [5] = "Cait Sith", [6] = "Cid", [7] = "Yuffie", -- The Young Cloud/Sephiroth flags are unneccesary for the purposes of this script, [8] = "Vincent" -- as those battles should only slow down to Sephiroth reviving Young Cloud. } function generateCrit(luck, level, foelevel) sum = mainmemory.read_u8(luck) + mainmemory.read_u8(level) - mainmemory.read_u8(foelevel) div = math.floor(sum / 4) return div end function generateRNG(addr1, addr2, addr3) table_offset = mainmemory.read_s32_le(addr3) step1 = mainmemory.read_u8(addr2 + (table_offset + 1)) % 8 step2 = mainmemory.read_u8(addr1 + step1) step3 = mainmemory.read_u8(addr2 + (table_offset + 2)) % 8 step4 = mainmemory.read_u8(addr1 + step3) step5 = bit.lshift(step4, 0x8) step6 = step2 + step5 return math.floor((step6*99)/0xFFFF)+1 end while true do --[[crit_table = {} for i = 0, 2 do for j = 0, 4 do crit_table[i][j] = generateCrit(team.luck[i], team.level[i], enemies.level[j] end end]] rindex = mainmemory.read_u8(rng_index) rvalue = mainmemory.read_u8(rng_table + rindex) crit_rng = generateRNG(0x83084, rng_table, rng_index) gui.text(0, 20, "RNG Index " .. rindex .. " = " .. rvalue) gui.text(0, 40, " Crit RNG = " .. crit_rng) gui.text(0, 60, " " .. getAeri(rvalue)) -- Pass rindex for version 1 behavior, pass rvalue for version 2 behaviour, pass crit_rng for version 3 bahevir. emu.frameadvance() end
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
There's no turning npcs that do on-sight battles in Gen 1, so the next question is "do the runs no longer sync properly at the next trade point without that wasted time?"
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
The "physically walk around your room" is extremely limiting in terms of game mechanics and game design.
Turn your thinking around. Instead of just a room, imagine a room with a treadmill. (Yeah that's the best I've got but it's still forward progress).
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
regarding tattles: I believe only unique encounters get the bin. If you can encounter it more than once, you'd best tattle.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
If you've got someone else's inputs for some of it, make sure they're credited as a co-author. Beyond that, I'm not sure.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I've removed the temp encode since this is now formally published.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
http://tasvideos.org/userfiles/ E: Thank you much, here's your temp encode. Link to video
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
@scorpianman42: If your BK2 is in userfiles I'll put up an encode over the next 24 hours.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Looks into eternity There's a desync roughly five billion years in. Not entirely certain how given it's self-generated, but there's a desync.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
Voted meh. Saw it real-time and with Pong as the payload a few months back.
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
I took another look through the first movie; how much time is lost from field message speed not being set to the fastest setting?
Adventures in Lua When did I get a vest?
Pokota
He/Him
Experienced Forum User
Joined: 2/5/2014
Posts: 779
This is still a thread, yo. Still working on updating the FF7 Crit Indicator script.
Language: lua

function generateCrit(luck, level, foelevel) sum = mainmemory.read_u8(luck) + mainmemory.read_u8(level) - mainmemory.read_u8(foelevel) div = math.floor(sum / 4) return div end function generateRNG(addr1, addr2, addr3) step1 = mainmemory.read_u8((addr2 + mainmemory.read_s32_le(addr3) + 1) % 8) step2 = mainmemory.read_u8(addr1 + step1) step3 = mainmemory.read_u8((addr2 + mainmemory.read_s32_le(addr3) + 2) % 8) step4 = mainmemory.read_u8(addr1 + step3) step5 = step4 * 256 step6 = step2 + step5 return math.floor((step6*99)/65535)+1 end while true do crit1 = generateCrit(0xf83f5, 0xf83e9, 0xf8589) crit2 = generateCrit(0xf845d, 0xf8451, 0xf8589) crit3 = generateCrit(0xf84c5, 0xf84b9, 0xf8589) crit_rng = generateRNG(0x83084, 0x62e10, 0x62e18) if crit1>=crit_rng then gui.text(0,50,"Critical Hit from Character 1 on Monster A!") else gui.text(0,50,"") end if crit2>=crit_rng then gui.text(0,60,"Critical Hit from Character 2!") else gui.text(0,60,"") end if crit3>=crit_rng then gui.text(0,70,"Critical Hit from Character 3!") else gui.text(0,70,"") end gui.text(0,30,"Enemy 1 crit% = " .. crit1 .. " " .. crit2 .. " " ..crit3) gui.text(0,40,"crit_rng = " .. crit_rng) emu.frameadvance() end
I've got some memory digging to do for the extensions I want to make (using character names instead of "Character 1," supporting multiple targets, ensuring that the addresses I do have are accurate...)
Adventures in Lua When did I get a vest?
1 2
11 12 13 31 32