Posts for Vykan12


1 2
13 14 15
18 19
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Suggested screenshot: Caveman attempts to walk on water and fails. Baby Moses would be ashamed. Yes vote, the game is so strange and unpredictable that it maintains entertainment value throughout. Do fix the ending, though, as per Nicos' suggestion.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
After watching this for the 52th time, I can safely say "yes vote".
Voting yes for the cool glitching. Who would've ever expected shooting a fireball at yourself would result in warping levels?
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
This isn't the place to be posting technical difficulties with torrents. Try here.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
This is the tamest Anoobis submission here. What the hell is going on?
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
The default difficulty is fine, no reason this needs to violate the cleared SRAM rule.
Post subject: Some Useful Lua Scripts
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Posting some useful lua scripts I've been using for a while into one convenient place. Credit goes to amaurea, FatRatKnight and DarkKobold for the scripts, and Rolanmen1 and Toothache42 for helping me a bit with memory addresses and ram searches. Download rngdisplay.lua
Language: lua

function nextrng(r1, r2, r3) return AND(XOR(SHIFT(r3, 5), SHIFT(r2, -11), SHIFT(r1, -1), SHIFT(r2,15)),0xFFFF) end function rngsim(n) local rngbase=0x03000000 local result = { memory.readword(rngbase+4), memory.readword(rngbase+2), memory.readword(rngbase+0) } for i = 4, n do result[i] = nextrng(result[i-3],result[i-2],result[i-1]) end return result end local phit = 0x0203A550 local pdmg = 0x0203E1BE local pcrt = 0x0203A556 local ehit = 0x0203A5D0 local edmg = 0x0203E1BC local ecrt = 0x0203A5D6 while true do local nsim = 20 rngs = rngsim(nsim) for i = 1, nsim do gui.text(228, 8*(i-1), string.format("%3d", rngs[i]/655)) end gui.text(210,0,"RNG1:") gui.text(210,8,"RNG2:") gui.text(210,16,"RNG3:") gui.text(194,24,"Next RNs:") gui.text(0,0,"Player") gui.text(0,8,"Hit: " .. memory.readbyte(phit)) gui.text(0,16,"Damage: " .. memory.readbyte(pdmg)) gui.text(0,24,"Crit: " .. memory.readbyte(pcrt)) gui.text(0,40,"Enemy") gui.text(0,48,"Hit: " .. memory.readbyte(ehit)) gui.text(0,56,"Damage: " .. memory.readbyte(edmg)) gui.text(0,64,"Crit: " .. memory.readbyte(ecrt)) emu.frameadvance() end
Download FE_RNGCounter.lua
Language: lua

R2u= memory.readword --***************************************************************************** local function roll(A,B,C) --***************************************************************************** return bit.band(0xFFFF, bit.bxor( bit.rshift(A, 5), bit.lshift(B,11), bit.rshift(B,15), bit.lshift(C, 1) ) ) end --***************************************************************************** local function unroll(A,B,C) --***************************************************************************** --Returns what the previous RNG was. local r= bit.band(0xFFFE,bit.bxor(A, bit.rshift(B, 5), bit.lshift(C, 11))) r= bit.bor(r,bit.band(0x0001,bit.bxor(B,bit.rshift(C,5)))) return bit.bor( bit.lshift(bit.band(0x0001,r),15), bit.rshift(bit.band(0xFFFE,r), 1) ) end local Raddr= 0x03000000 local R= {R2u(Raddr), R2u(Raddr+2), R2u(Raddr+4)} --***************************************************************************** local function RNGmatch(a,b,c) --***************************************************************************** return (R2u(Raddr) == a) and (R2u(Raddr+2) == b) and (R2u(Raddr+4) == c) end --***************************************************************************** local function AdvanceRNG() --***************************************************************************** local RR= {R[1], R[2], R[3]} for i= 0, 2000 do if RNGmatch(R[1],R[2],R[3]) then return i end if RNGmatch(RR[1],RR[2],RR[3]) then R= RR; return -i end table.insert(R,1,roll(R[1],R[2],R[3])); R[4]= nil table.insert(RR,unroll(RR[1],RR[2],RR[3])); table.remove(RR,1) end R[1]= R2u(Raddr) R[2]= R2u(Raddr+2) R[3]= R2u(Raddr+4) return false end local Count, Fail= 0, 0 --***************************************************************************** local function CountRolls() --***************************************************************************** local c= AdvanceRNG() if c then Count= Count+c else Fail= Fail+1; Count= 0 end end --***************************************************************************** local function ShowRolls() --***************************************************************************** gui.text(1,1,Count,"green") gui.text(1,9,Fail,"red") end gui.register(ShowRolls) while true do CountRolls() emu.frameadvance() end
Download Ephase.lua
Language: lua

BattleCheck =1000; -- emu.speedmode('turbo'); CharacterStore = 0x0202AB78; --CharacterStore = 0x0202BCE8; EnemyStore = CharacterStore + 0x3E * 0x48; Phase = 0x0202BCFF; key1 ={}; key1['A']=true; StartF = movie.framecount(); StatM = {'HpC','Lvl','EXP','Hp','Str','Skl','Spd','Def','Res','Lck','Con', 'X', 'Y'}; OffstC = {0x11, 0x8, 0x9,0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x0E, 0x0F}; EnemyM = {'Alive','HpC','X','Y'}; OffstM = {0x00,0x11,0x0E, 0x0F}; Matcher = {}; newcount = 0; for checks = 0,0x3D,1 do Matcher[checks] = {}; for i = 1,13,1 do Matcher[checks][i] = memory.readbyte(CharacterStore+OffstC[i]+checks*0x48); end; end; Estats = {}; for checks = 0,49,1 do Matcher[checks+0x3E] = {}; if memory.readbyte(EnemyStore +0x11+checks*0x48) > 0 then Estats[checks] = {}; Estats[checks][1] = false; Estats[checks][2] = false; Matcher[checks+0x3E][1] = true; for i = 2,4,1 do Matcher[checks+0x3E][i] = memory.readbyte(EnemyStore+OffstM[i]+checks*0x48); end; else Matcher[checks+0x3E][1] = false; end; end; function nextrng(r1, r2, r3) return AND(XOR(SHIFT(r3, 5), SHIFT(r2, -11), SHIFT(r1, -1), SHIFT(r2, 15)),0xFFFF) end rngbase=0x03000000; RNGCheck = savestate.create(); savestate.save(RNGCheck); Unique = 0; FClist = {}; outsl = {}; RNGList = {}; TempC = {}; TempE = {}; Pstat = {}; outs2l = {}; OfX = 6; OfY = 42; SX = 5; SY = 5; for curord = 0,BattleCheck-1,1 do savestate.load(RNGCheck); --RNGLOOP for n = 1,curord,1 do Rtemp = nextrng(memory.readword(rngbase+4), memory.readword(rngbase+2), memory.readword(rngbase+0)); memory.writeword(rngbase+4, memory.readword(rngbase+2)); memory.writeword(rngbase+2, memory.readword(rngbase+0)); memory.writeword(rngbase+0, Rtemp); end; R = {}; for Rl = 0,4,2 do R[Rl/2] = memory.readword(rngbase+Rl); end; --PhaseLoop while memory.readbyte(Phase) == 128 do joypad.set(1,key1); key1.start = (not key1.start) or nil; emu.frameadvance(); gui.text(10,10, string.format('%d of %d done.', curord+1, BattleCheck)); end; outs = ""; for checks = 0,0x3D,1 do Pstat[checks] = false; for i = 1,11,1 do TempC[i] = memory.readbyte(CharacterStore+OffstC[i]+checks*0x48); end; if Matcher[checks][1] ~= TempC[1] then outs = outs .. string.format(' %d %dHP', checks, TempC[1] - Matcher[checks][1]); if TempC[1] == 0 then Pstat[checks] = true; outs = outs .. '-Dead'; end; end; if Matcher[checks][3] ~= TempC[3] then outs = outs .. string.format(' %d %dXP', checks, TempC[3] - Matcher[checks][3]); end; if Matcher[checks][2] ~= TempC[2] then outs = outs .. string.format(' %d +%dLvl', checks, TempC[2] - Matcher[checks][2]); for j = 4,11,1 do outs = outs .. string.format(' %d %d%s', checks, TempC[j] - Matcher[checks][j],StatM[j]); end; end; end; outs2 = ""; for checks = 0,49,1 do for i = 2,4,1 do TempC[i] = memory.readbyte(CharacterStore+OffstM[i]+(checks+0x3E)*0x48); end; if Matcher[checks+0x3E][1] then Estats[checks][1] = false; Estats[checks][2] = false; if Matcher[checks+0x3E][2] ~= TempC[2] then outs2 = outs2 .. string.format(' E%d %dHP', checks, TempC[2] - Matcher[checks+0x3E][2]); if TempC[2] == 0 then Estats[checks][1] = true; outs2 = outs2 .. '-Dead'; end; end; if (Matcher[checks+0x3E][3] ~= TempC[3]) or (Matcher[checks+0x3E][4] ~= TempC[4]) then Estats[checks][2] = true; Estats[checks][3] = Matcher[checks+0x3E][3]; Estats[checks][4] = Matcher[checks+0x3E][4]; Estats[checks][5] = TempC[3]; Estats[checks][6] = TempC[4]; end; end; end; FC = movie.framecount() - StartF; IsUnique = true; for n = 1,Unique,1 do if FClist[n] == FC and outsl[n] == outs and outs2l[n] == outs2 then IsUnique = false; end; end; if IsUnique then -- emu.speedmode('normal'); Unique = Unique + 1; FClist[Unique] = FC; outsl[Unique] = outs; outs2l[Unique] = outs2; for i = 1,25,1 do gui.drawbox(0,0,320,240,'black','black'); gui.text(1,1,"Frames:" .. FC .. " RNG Distance: " .. curord); gui.text(1,10,string.format("RNGx00 = %d RNGx02 = %d RNGx04 = %d", R[0],R[1],R[2])); gui.text(1,20,outs); gui.text(1,30,outs2); gui.drawbox(3,40,238,160, 'black','white'); for checks = 0,0x3D,1 do if Matcher[checks][1] > 0 then if Pstat[checks] then X = Matcher[checks][12]; Y = Matcher[checks][13]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Green','Blue'); else X = Matcher[checks][12]; Y = Matcher[checks][13]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Green','Green'); end; end; end; for checks = 0,49,1 do if Matcher[checks+0x3E][1] then if Estats[checks][2] then X1 = OfX+SX*Estats[checks][3]+2; Y1 = OfY+SY*Estats[checks][4]+2; X2 = OfX+SX*Estats[checks][5]+2; Y2 = OfY+SY*Estats[checks][6]+2; gui.drawline(X1,Y1,X2,Y1,'blue'); gui.drawline(X2,Y1,X2,Y2,'blue'); if Estats[checks][1] then X = Estats[checks][5]; Y = Estats[checks][6]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Red','Blue'); else X = Estats[checks][5]; Y = Estats[checks][6]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Red','Red'); end; else if Estats[checks][1] then X = Matcher[checks+0x3E][3]; Y = Matcher[checks+0x3E][4]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Red','Blue'); else X = Matcher[checks+0x3E][3]; Y = Matcher[checks+0x3E][4]; gui.drawbox(OfX+SX*X,SY*Y+OfY,OfX+SX*X+3,SY*Y+3+OfY,'Red','Red'); end; end; end; end; emu.frameadvance(); end; -- emu.speedmode('maximum'); end; end;
Post subject: Creating a table using BBCode
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
This is a relatively simple question, but I'm trying to make a table using BBCode, but I'm having trouble with the formatting. I tried copying the format of the table used in the recently published Pokemon run, but it doesn't come out quite right.
[div class="deeper"] [table class="wikitable" border="1"][tr][th] Event[/th][th] Statistical Probability[/th][/tr] [tr][td] First on speed tie[/td][td] 1/2[/td][/tr] [tr][td] 50% attack miss[/td][td] 1/2[/td][/tr] [tr][td] Wild encounter[/td][td] 1/9[/td][/tr] [tr][td] 90% attack miss[/td][td] 1/10[/td][/tr] [tr][td] Max damage variation[/td][td] 1/16[/td][/tr] [tr][td] Critical hit[/td][td] 1/16[/td][/tr] [tr][td] 95% attack miss[/td][td] 1/20[/td][/tr] [tr][td] Rare Candy pickup[/td][td] 1/100[/td][/tr] [tr][td] Lv8 Taillow encounter[/td][td] 1/180[/td][/tr] [tr][td] Max crit[/td][td] 1/256[/td][/tr] [tr][td] King's Rock pickup[/td][td] 1/1000[/td][/tr] [tr][td] Lv8 Taillow encounter w/ max attack[/td][td] 1/36000[/td][/tr] [/table][/div]
[div class="deeper"] [table class="wikitable" border="1"][tr][th] Event[/th][th] Statistical Probability[/th][/tr] [tr][td] First on speed tie[/td][td] 1/2[/td][/tr] [tr][td] 50% attack miss[/td][td] 1/2[/td][/tr] [tr][td] Wild encounter[/td][td] 1/9[/td][/tr] [tr][td] 90% attack miss[/td][td] 1/10[/td][/tr] [tr][td] Max damage variation[/td][td] 1/16[/td][/tr] [tr][td] Critical hit[/td][td] 1/16[/td][/tr] [tr][td] 95% attack miss[/td][td] 1/20[/td][/tr] [tr][td] Rare Candy pickup[/td][td] 1/100[/td][/tr] [tr][td] Lv8 Taillow encounter[/td][td] 1/180[/td][/tr] [tr][td] Max crit[/td][td] 1/256[/td][/tr] [tr][td] King's Rock pickup[/td][td] 1/1000[/td][/tr] [tr][td] Lv8 Taillow encounter w/ max attack[/td][td] 1/36000[/td][/tr] [/table][/div] How do I come up with borders, headers, different colors, etc? I checked the faq here, did a search, can't find any information on it.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
In Vaida's chapter, I think you could save time be deploying Dart and dropping him in the mountains. This way you could block all the reinforcements instead of just 3/4.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
That worked, thanks for your effort in helping me.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Again, I still can't log in anywhere aside from the forums. The username/password just shows up as blank even though I filled them in and pressed login. The key thing was what I was referring to, it seems to be an alternate form of cookie, not sure how to disable it though.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Done, didn't help. Maybe the problem is this login name suggestion that always shows up when I try to login. Even when I clear firefox cookies it still shows up and automatically fills in my password when I click it.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I always log in through the forums, I've never actually needed to log into the main site. I changed my password just to see if I was mis-remembering, turns out it's fine. I dunno why it's not working :(
Post subject: Can't submit anything!
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
When I go to this page, I cannot log in. When I put my correct username and password, nothing happens. After I click login or hit enter the username/password field goes blank, and all I see is this: Here's a summary of your permissions in this system: You can log in. You can watch submissions. You can download movies. You can view any page you want. Help?
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Yeah, I renamed it to "test", no change whatsoever, just made a new config file called "vba".
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I feel like the game's trolling me, which is very strange. No vote, that lag is unbearable. I blame the diabetes.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Disabled rewind, no change :( 30 second Fraps recording on youtube. This should help show my problem a little better. Edit: The problem seems to be with the particular movie I'm working on, if I try and record a brand new movie, it works fine. Maybe I accidentally activated some bad setting?
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
SMV file begins from a snapshot
Right off the bat your run's going to get rejected.
Re-record count: 809
*Ugh* You've already submitted 3 runs to the site in a matter of days. I beg of you to do 2 things: 1) Watch some starred runs on the site. This way you'll understand the amount of work and dedication required to make a publishable TAS. 2) If you don't know what frame advance is, make it your best friend.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I didn't know there was a rewind feature. I'm using version 23.5, the one featured on the site this one links to. I'm not sure, but the problem seems to be worse when I run lua scripts.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I have always wondered if it is at all possible to get all Rainbow Vs from a fresh game.
I'm 99% sure it is. I Rainbow Ved with every character a while back, only the first chapter is problematic.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Recording the input file. The problem is almost a non-issue in frame advance, but when I unpause it becomes more of a nightmare. I can't even use turbo. I'll try and record a video if the problem persists (fraps any good?)
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Post subject: Problem with irritating lag while recording
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I'm working on a TAS that's reached almost 200k frames now (might be relevant to problem). Every time I record more of the movie, the framerate gets very annoying, slowing down and speeding up sporadically. However, playback is fine, and so is the emulator with no movie running. Now, the first time this happened my VBA actually crashed, my computer didn't like what VBA was doing and shut it down. I can't remember the nature of the error, unfortunately. I had to re-install VBA and re-name the folder that VBA was contained in, but the frustratingly choppy framerate is still there.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Just a quick question, I've reached a point where the most ideal level-up I can give to any of my main units is a 0-stat level-up. Would you guys rather see that or go the other extreme, as in getting my units excessively good level-ups (5-8 stats)? The latter costs time, no doubt, but some viewers might find it more entertaining.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I wonder how many other runs get triple digit yes voting.
Experienced Forum User, Published Author, Player (98)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Yeah, I figured as much. Chapter 13 is now complete, but I've decided to stop posting WIPs because I'm confident in my ability to handle the run, and I want there to be some surprise factor once the submission rolls in. If you really want to see the WIP, I'll PM it. ===================================================== I found something very interesting when trying to manipulate a Dozla critical on a long enemy phase. It seems the RNG has a stabilizing effect the longer an enemy phase endures. This discovery was based on being very frustrated as Dozla failed to procure an 18% critical over the span of 100 RNs. I used the enemy phase script just before he got attacked, and sure enough 21 crits occurred, which is very close to the expected value of 18. This wasn’t a case of terrible luck either, as missing an 18% crit 100 times in a row is about a 2.41 x 10^(-7) % chance. So, what’s going on here? I did a test where I tracked how many RNs were burned before Dozla was attacked, advanced the RNG by 1, and repeated. Quickly I noticed a pattern: 138 137 136 135 138 136 139 134 ===== 147 146 145 144 143 142 141 140 139 138 ===== 142 141 140 (Stopped here) Notice in the 2nd column in particular, the same outcome is forced over and over again 10 times in a row! As I advance the RNG by 1 on player phase, 1 less RN is burned on enemy phase before Dozla is attacked, hence the “stabilizing” effect. So in those 100 RNs, I may have only gone through 10 outcomes. Missing an 18% crit 10 times in a row is still a minuscule chance, but at least in the realm of sanity. I hope someone can find more information on this, but I do know for certain this is going to discourage ambitious enemy phase manipulations, particularly for rout maps (C15 is the only one left, thankfully).
1 2
13 14 15
18 19