Posts for jlun2

Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
r57shell wrote:
I don't wanna repeat myself. No one listening anyways. I would better continue watching this.
I thought it was mentioned somewhere they lack people coding it to change the site. Not sure if it applies to this as well.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Alyosha wrote:
Dwedit wrote:
I don't think DMC channel state at bootup is consistent. Try playing Blades of Steel, and see how the demo changes every time you play it.
I tested it for a bit using different DMC timer start states, and it looks like you are probably correct. That sucks :( I thought we had a good chance of console verifying this run, but if that is true it seems unlikely.
I have no idea what DMC timer means, but would it be possible to set this to some known, "legit" value to make things consistent on console?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
https://www.youtube.com/watch?v=rvuMC89K6D0 "Pokémon Red/Blue/Yellow: Virtual Console differences compilation"
7) The Nintendo 3DS emulator ignores unknown opcodes, which allows certain glitches to function differently such as two 'pseudo-LG' move effects in Red/Blue and Yellow (see https://www.youtube.com/watch?v=qzbeTrdHCXw and https://www.youtube.com/watch?v=8cnyjQ_UqRc). 8) There is a discrepancy between how a Game Boy would half player money with an invalid digit (A-F) in it (as money is coded in binary-coded decimal) and a Nintendo 3DS running the Virtual Console release (see https://www.youtube.com/watch?v=9iFDqWEF_uI).
Especially on point 7, how much of the glitches does it affect in VC? Would it affect speedruns?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Alyosha wrote:
jlun2 wrote:
Alyosha wrote:
So, did reverting the change fix the problem? feos, jlun2, nrg_zam?
Sorry for the late reply, but at the latest interim, the buttons are back for me.
How about the scroll bars? @feos: In the latest dev build copying/cutting cells isn't working for me and when I do that it just leaves the clipboard empty and pasting doesn't do anything.
Scroll bars seems to appear again, but for GBC core, whenever I misclick and click on this region next to "A" in the interim I get : http://imgur.com/a/guHiw
System.NullReferenceException: Object reference not set to an instance of an object. at BizHawk.Client.EmuHawk.TAStudio.TasView_MouseDoubleClick(Object sender, MouseEventArgs e) at System.Windows.Forms.Control.OnMouseDoubleClick(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Alyosha wrote:
So, did reverting the change fix the problem? feos, jlun2, nrg_zam?
Sorry for the late reply, but at the latest interim, the buttons are back for me.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Alyosha wrote:
Everything works and looks correct to me. What OS are you working with jlun2? You and nrg_zam seem to be having the same issue. @feos: do you think my commit that fixed the original issue i was having should be reverted? It seems like it might be cause of problems here. Maybe then i can find a more surgical fix for windows 10, since I'll at least be able to see the problem, without messing things up for other users.
http://imgur.com/p9n4kIR Edition: Windows 10 Home Version 1607 OS Build: 14393.576 How about you?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'll see if optimizing the input, but pressing "A" on Harry at the same frame as the movie would allow the "28" to occur. Also, can you please check if there's some 2nd RNG affecting this? Edit: It doesn't work; even if the last "A" press is the same frame, changing the previous A makes it 13. Changing 0x00F8 in WRAM ~5 frames before 0BCA (damage dealt) is set changes to 13. Although the addresses around it seems to be for sprite animation. I suspect its the frame that changes 0x0BCA that's responsible, since if the hit changes it at frame 26166 it hits 28, but it hits 13 at other frames. Edit 2: Nevermind, landed a different hit at 26166 and it was 13. Edit 3: Brute force check every frame naively by delaying 1 frame then pressing "A"
Language: lua

memory.usememorydomain("System Bus") local frame_start = emu.framecount() local state = {"Checklag","Wait","Reload","Fix","Done"} function waitframe(frame) while (frame >= 0) do emu.frameadvance() frame = frame-1 end end --[[ algorthim for checking rng start before land hits 1. save state at enemy select 2. press "A" not on lag frame 3. wait 200 frames and see if crit 4. reload save 5. advance frame 6. repeat ]]-- --0BCA local damage_dealt = 0 --needs to be outside loop so it won't get reset while true do local frame_now = emu.framecount() local frame_dif = 0 --difference between this frame and start frame local statenow = state[1] savestate.saveslot(1) while statenow == state[1] do frame_now = emu.framecount() --C3A1 at 37 == cursor gone. 36 == cursor here savestate.saveslot(1) console.log("Reached 1 "..emu.framecount()) if memory.readbyte(0xC3A1) == 37 then --just in case statenow = state[2] break end if memory.readbyte(0xC3A1) == 36 then joypad.set({A = 1}) emu.frameadvance() statenow = state[2] break end emu.frameadvance() end while statenow == state[2] do console.log("Reached 2") waitframe(5) if memory.readbyte(0xC3A1) == 36 then --the enemy select cursor still exists, something went wrong with state1 statenow = state[4] break else waitframe(200)--200 if you want to crit, 400 for npc statenow = state[3] break end end while statenow == state[3] do console.log("Damage: "..memory.readbyte(0x0BCA,"WRAM").." prev "..damage_dealt) if damage_dealt == 0 then damage_dealt = memory.readbyte(0x0BCA,"WRAM") elseif damage_dealt == memory.readbyte(0x0BCA,"WRAM") then frame_dif = frame_dif + 1 savestate.loadslot(1) emu.frameadvance() statenow = state[1] break elseif damage_dealt ~= memory.readbyte(0x0BCA,"WRAM") then console.log("Done. Frame pressed at: "..frame_now.." Started at frame: "..frame_start) console.log("You waited "..frame_now-frame_start.." frames") client.pause() statenow = state[5] break else console.log("IDFK?") client.pause() statenow = state[5] break end end while statenow == state[4] do --something went wrong with state2, go try reload console.log("Reached 4") savestate.loadslot(1) emu.frameadvance() joypad.set({A = 1}) emu.frameadvance() statenow = state[2] break end while statenow == state[5] do emu.frameadvance() end emu.frameadvance() end
Edit: Made the script take account into damage and damage from previous delay, in case some other goal is in mind.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
In the latest interim build: 1. Open a game 2. Open a tasproj file using the "File>Movie>Recent" dialogue 3. Don't frame advance; it should be at frame 0/whatever 4. Open up TAStudios
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at BizHawk.Client.EmuHawk.InputRoll.DoBackGroundCallback(PaintEventArgs e, List`1 visibleColumns) at BizHawk.Client.EmuHawk.InputRoll.DrawBg(PaintEventArgs e, List`1 visibleColumns) at BizHawk.Client.EmuHawk.InputRoll.OnPaint(PaintEventArgs e) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
http://i.imgur.com/7Blrfpu.png It then gives the errors shown. Also completely unrelated, but whenever I open TAStudios, my RAM watch window clears out. Can this please be changed so that it doesn't do that? Edit: Why were the buttons in TAStudio regarding the branches and markers removed? Similarly with the scrollbar.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
http://tasvideos.org/userfiles/info/36050262009454538 I believe I did it. This beats the boss in 5 turns, with both alive. However, attempting to optimize the input causes the last hit to land 13 rather than 28. I'm worried it may be some desync, given the RNG appears to be the same, so can you please check if this syncs for you? Edit: Delaying the last "A" press also changes the hit from 28 to 13 for some reason.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Hey, while messing around with Harry and Ron, I seemed to have accidentally skipped an enemy's turn. This happened at the first boss fight, where Ron went first, then I tried to flee with Harry. The game was paused a bit, so I pressed "A", and suddenly it was Ron's turn again. I think the first boss is much more approachable now, just let me try and see if I could make something work first. Edit: Nevermind; unfortunately, this does not advance the RNG, so it still won't work since I would only be able to use Ron, and he'll end up out of MP. I mean, of course unless using only Ron to cast Flipendo 17+ times while Harry skips the turn over and over ends up being faster. lol In other words, right now, if I get the knight to 2 more hits left, it appears I'm left with only Harry. Allowing Ron to live would work, but ends up using Flipendo since Harry has to keep skipping turns. Maybe advance the RNG with Flipendo? IDK. Edit 2: http://tasvideos.org/userfiles/info/35962672901060452 Quick input file where I used this trick + Flipendo to advance the RNG so Ron could crit the knight. It works, but I'm not sure if it would be faster than to heal.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ThunderAxe31 wrote:
ThunderAxe31 wrote:
I just discovered how to prevent the graphical glitch to "THE END" screen, tough the game will still freeze: instead of swapping Pokémon 7 with 8, swap 6 with 8. But as I said, this only corrects the graphical part of the problem; the game will still freeze and not save the progress.
I was wrong about this. What made it change was not the different Pokémon swap, but the different amount of time taken in order to close the menu. I'm doing some experiments, and looks like for every frame you close the menu later, a different script is triggered after the credits. I already got some very interesting results, like getting the game softresetted or getting teleported to a glitched location. This may even bring a way to mimic the correct credits end perfectly! Edit: this is the most interesting one I've encountered so far. It happens if you close the menu 3 frames later in FractalFusion's movie file: http://i.imgur.com/ggPIEMD.png Edit 2: it looks like the game executes the next commands found in the WRAM after finishing the credits.
Given that you cancelled it, I suppose this means you failed to find a way to make the post-game contents work properly?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
fsvgm777 wrote:
There's no Dutch language option in the European version. The language options available are English, French (Français) and German (Deutsch).
Oh. Sorry about that. Thanks! Also will finish the rest of the submission text; was busy IRL.
Post subject: Re: Wonder Mail
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Likeanoob wrote:
I see what you guys are getting at... idk why TASVids would disallow anything that would make the game faster (isn't a TAS trying to make the game as fast as possible?) but I've never been apart of the TAS community so I wouldn't know these things. The thing is that we need a great amount of frustration TMs in order to accomplish the idea we are going for (1-2 shotting all the bosses in the game) so idk how we would do that efficiently that would be any faster than using wonder mail, the only thing I see is that we buy a frustration TM in the shop after Skarmory, then find a ton in Mt. Thunder and also finding a link box to link them all together (my original plan was to have 4x frustration on partner and 3x on starter with a move that can kill the Mankey in Uproar forest) I just think it's a little dumb that we cannot use a feature of the game to speed it up but what do i know ¯\_(ツ)_/¯
If it helps, try making a "test" run with Frustration, and one without. And by test run I mean the boss fights with the only difference being Frustration. That way, if Frustration via Wondermail ends up getting rejected, it would still allow others to know how much time it would've cost (rather than "it makes battles shorter" without an approximate time). Edit: Hopefully better wording: Find how much time would be lost/gained without/with Frustration, and hope that helps argueing why it is needed.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Legit question: Would it help if the site code was open sourced (not user data though) and allow anyone to try and help? Or is that already a thing and I'm just under a rock?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Mantidactyle wrote:
Pokémon Stadium should fail, the game checks regularly if the transfer pack + game inserted are connected / have been connected / have been disconnected. I'll try a setup tonight on French Stadium with 7EME ETAGE when I get back home.
Does it check far too frequently to exploit, or are there some window to do so? Also can the check be spoofed?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
arandomgameTASer wrote:
Well! Publication of this should be interesting. Its identical to the anniversary hack adelikat did, so maybe it should obsolete that? Idk.
I thought the vault allows for multiple console versions, but I'm not sure how it would apply here.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I know it's rather late, but this may be an idea for 2018 I guess? Post #445289 https://www.youtube.com/watch?v=SL_Zuc0tlvo "Pokémon R/B/Y: Bringing arbitrary code execution to other games" It even has a proof of concept.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Regarding BizHawk, is it the same for both GBA cores there?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm still working on this run. I'm at the last 3 rooms before the boss. Just for future reference: The fire ghosts appear in 4 rooms: 0x5A, 0x55, 0x53, 0x54 then boss fight. I need to manipulate the into the sprinklers to make them vulnerable. I'm having trouble finding how their addresses move around, but it seems for the purpose of the TAS it is in the following, all in Combined WRAM: Room 0x5A 01B194 - X 01B198 - Y 01B19C - XSpeed Room 0x55 018BB0 - X1 018BB4 - Y1 018BB8 - XSpeed1 018D20 - X2 018D24 - Y2 018D28 - XSpeed2 018D5C - Ghost 2 is on fire; 0x60 means on fire and 0x1 means its not 018F54 - X3 018F58 - Y3 018F5C - XSpeed3 Room 0x53 017118 - X1 01711C - Y1 017120 - XSpeed1 017288 - X2 01728C - Y2 017290 - XSpeed2 016FA8 - X3 016FAC - Y3 016FB0 - XSpeed3 Room 0x54 017EF8 - X1 017EFC - Y1 017F00 - XSpeed1 017D88 - X2 017D8C - Y2 017D90 - XSpeed2 018068 - X3 01806C - Y3 018070 - XSpeed3 I hope to finish this run soon, but I'm having terrible luck for the last part.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Does the game count this as "beated" after a hard reset then? ie. Mewtwo cave is open, Hall of Fame is available at PC, and whatever other post-credit effects appear.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm not sure how useful this is to anyone, but since I already wrote it: Assigning discrete values to an array in a single line:
Language: lua

local Array = {} --Because some of the values are all over the place function assign_multi(string,...) for i, v in ipairs(arg) do Array[v] = string end end assign_multi("Village",20,46,97,131,132) assign_multi("Forest",2,3,133) assign_multi("Village 2",88,141,166,168)
Checking if a key in keyboard has been pressed, then react after a set amount of frames: Download inputdelay.lua
Language: lua

function inputdelay(inputs, delay) local is = input.get() local start = false if inputs ~= nil and (is[tostring(inputs)] ~=nil) then console.log(is) while (delay > 0) do emu.frameadvance() delay = delay -1 end start = true return start end return start end while true do if inputdelay("C",30) then gui.text(0,0,"Hi") --debugging end emu.frameadvance() end
Mouse input checking: Download mouse.lua
Language: lua

--checks the mouse position during a click relative to the client and see if its within some range function get_mouse_pos(x,y,width,height) mx = input.getmouse().X my = input.getmouse().Y --input.getmouse() is already relative to client if (mx > x and mx <x> y and my < y+height) then return true end return false end while true do if (input.getmouse().Left and get_mouse_pos(0,50,80,20)) then gui.drawText(0,30,"Hello") end emu.frameadvance() end
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
endrift wrote:
Ok, I got a copy of Emerald yesterday so I can put some serious time into seeing what I can do to get it syncing on hardware in the next few days.
So, how did it go? Anything different between the console and emulator?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. Open TAStudios 2. Drag the movie into TAStudios (or load the movie, then open TAStudios) 3. See the buttons? Those are the buttons corresponding to what you pressed. If you don't see anything on the "piano roll", try clicking on it or something 4. To go to a specific frame, double click it, then click on the frame's entry on "markers" at the bottom right. Oh, and unlike rerecording, you can also copy paste input, rewind, and view input on the fly. The TAStudio "tasproj" file is a zip file, so if the project gets corrupted or anything and won't open, treat it as a zip file and extract the input file from there.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
On the latest version, 1.11.9.1, I accidentally clicked the spot next to player 1 in TAStudios for gbc: Spot in the black outline:
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at BizHawk.Client.EmuHawk.TAStudio.TasView_MouseDoubleClick(Object sender, MouseEventArgs e) at System.Windows.Forms.Control.OnMouseDoubleClick(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
http://imgur.com/wWg5PTF