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"
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I moved some notes to the game resource page. Additionally, I realized it may not be worth skipping the battery completely, since the Jackhammer needed at the 4th stage uses them. I'll have to check. Edit: It's rather unfeasible to skip batteries. There's one in stage 3 where it wastes too much time skipping it, and the battery-hog jackhammer for stage 4 is needed for clues. Also regarding stage 4: This appears if you try to skip the last clue. Getting past this point by partner swapping makes the game reset. Also (U) seems to be consistently faster: https://docs.google.com/spreadsheets/d/1uXRFNfgXhN8DkqeK4fnQJQ82njt3f_gewkzII9HxSNE/edit?usp=sharing Amount of "A" presses needed for dialogue regarding the spreadsheet.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
MUGG wrote:
outdated About info When opening Help > About, it brings up that one joke screen with flashy animations. In the top left corner is a "BizBox" button (for some reason) which brings up a real About window. But that window tells it's 1.11.4 from December 20 2015.
What. I just checked now, and clicking Help > About gave me and no other screen. I'm on windows 10, if it means anything.
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"
Personman wrote:
I don't think I'm going to actually watch this, but I vote yes on the strength of the excellent writeup.
And then this will get to moons before scoring like ~3 lol. ;)
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 if it's answered before, but for these functions event.onmemoryexecute event.onmemoryread event.onmemorywrite How exactly do I know which one to use for an address?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
A minor issue, but it seems for "insert # of frames", in order to have 1,000+ frames inserted, you have to type 999, then press up over and over. Can this please be made to allow another digit?
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"
The emulator crashed when I attempted to save a tasproj file, and now the file's corrupted. Is there anyway to save it, or just rely on my memory and hope I still remember the route?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
MUGG wrote:
In 1.11.6, I get this error consistently. I played a gameboy game.
System.InvalidOperationException: Lua surface is already locked: emu at
BizHawk.Client.EmuHawk.DisplayManager.LockLuaSurface(String name) at
BizHawk.Client.EmuHawk.GuiLuaLibrary.DrawNew(String name)
1. load luascript 2. close lua console while client is paused 3. drag and drop luascript on client If you close lua console while client is not paused, it doesn't give the error.
Hey, I remember getting something like that: Post #429629 http://imgur.com/ceVJHfR No idea why, but it "disappears" when I deleted everything and redownloaded BizHawk. It comes back every now and then however, and I have no clue why.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. For RNG? Well there's this:
Instead of choosing a different seed each time the game boots up (and by extension, a different sequence of pseudo-random numbers), Emerald always sets its seed as 0. This means that every time the game starts, the same numbers are always output in the same order. In an attempt to hide this, Emerald asks its RNG to spit out numbers at a considerable pace; approximately 60 times per second. Each of these instances is known as a "frame".
http://www.smogon.com/ingame/rng/emerald_rng_intro 2. Also, I've read this bit:
At first glance, battle videos don't appear to have any useful purpose, other than for entertainment. However, a video can be used to save and restore a specific PRNG value. Using a battle video allows cart players to reach frames that were once thought to be out of reach, as one can advance to a very high frame and save a value within quick reach of the target frame.
http://www.smogon.com/ingame/rng/emerald_rng_intro#battlevideos In terms of a TAS of the battle frontier, that actually sounds (potentially) helpful, since someone mentioned the battle frontier rng cannot be manipulated during the battles, so if I understand this right, the battle videos can be used to "save" a good RNG.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Can you manually edit the save file and check if the game still loads it? Also if this leads to something, maybe request for subframe input.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ISSOtm wrote:
According to TheZZAZZGlitch's video, when creating the save, the first segment is chosen randomly, and each save shifts every segment right by two segments (ie 23456789ABCD would turn into 0123456789ABCD). For normal players, there is a 1/2 chance that 0 will never be the first segment no matter what. But no video game randomness is TAS-proof, so that's no problem for us.
What value/address determines this? :o
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Migu wrote:
So I finally got around to testing this. It seems it's only possible on the U version: https://youtu.be/hekfvFdPA9E
Is that the only location, or do other places work?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ISSOtm wrote:
Don't they just turn into Dittos ?
Don't think that would always be the case, since I'm aware (for XD) there's that Bingo minigame where you play as a munchlax. While normally impossible to obtain outside it, glitched may allow it to be possible. Maybe.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Bobthefloater wrote:
TL;DR you do not play a person with average speed, strength etc. in video games, so your controller (ie you) shouldn't limit you to those options.
Now I'm curious what would happen if we had a portal TAS video played back on the rift.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Found another glitch, this time it closes BizHawk. Tested on 1.11.6: 1. Open TAStudios 2. Make some input for several hundred frames; I held "Up" for the entire time 3. Add a new branch at several hundred frames in 4. Go back to the top of the piano roll and remove some of the input 5. Let the movie play to around half way 6. Update the branch from step 3 7. Go back to the top of the piano roll again and readd input to ~100 frames
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 System.Collections.Generic.SortedList`2.GetByIndex(Int32 index)
   at System.Collections.Generic.SortedList`2.ValueList.get_Item(Int32 index)
   at BizHawk.Client.Common.TasStateManager.StateToRemove()
   at BizHawk.Client.Common.TasStateManager.MaybeRemoveStates()
   at BizHawk.Client.Common.TasStateManager.SetState(Int32 frame, Byte[] state, Boolean skipRemoval)
   at BizHawk.Client.Common.TasStateManager.Capture(Boolean force)
   at BizHawk.Client.Common.TasMovie.GreenzoneCurrentFrame()
   at BizHawk.Client.Common.MovieSession.HandleMovieAfterFrameLoop()
   at BizHawk.Client.EmuHawk.MainForm.StepRunLoop_Core(Boolean force)
   at BizHawk.Client.EmuHawk.MainForm.ProgramRunLoop()
   at BizHawk.Client.EmuHawk.Program.SubMain(String[] args)
Then BizHawk closes
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
That sounds amazing! :o Could there please be a video guide of those steps as well? I'm tempted to try it, but I once accidentally deleted a pokemon from emerald cloning due to messing up a step, so a visual guide that I can compare to what I'm doing would really help. Also:
Glitch Pokemon can't be transferred to 4th Gen.
I wonder how they check it? Do they simply check the pokemon's ID number or something? And uh....I wonder what happens if you traded a glitch pokemon to XD/Colosseum.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Before I redo the first stage I noticed the room ID address never changes location, and while the position ones do, they seem to always be the same for said ID. So here's a script that displays position depending on the room: Download Scooby.lua
Language: lua

memory.usememorydomain("Combined WRAM") local Scooby = {ptr = 0x0112EC, x = 0x000000, y = 0x000000, speedx = 0x000000, speedy = 0x000000} local Shaggy = {ptr = 0x0130C0, x = 0x000000, y = 0x000000, speedx = 0x000000, speedy = 0x000000} function update(name) if (name == "Scooby") then local char = memory.read_s32_le(Scooby.ptr) - 0x02000000 Scooby.x = char + 0xC Scooby.y = char + 0x10 Scooby.speedx = char + 0x14 Scooby.speedy = char + 0x18 else local char = memory.read_s32_le(Shaggy.ptr) - 0x02000000 Shaggy.x = char + 0xC Shaggy.y = char + 0x10 Shaggy.speedx = char + 0x14 Shaggy.speedy = char + 0x18 end end -- gui.drawText(int x, int y, string message, [Color? forecolor = null], [Color? backcolor = null], [int? fontsize = null], [string fontfamily = null], [string fontstyle = null]) while true do local Scooby_ptr = memory.read_s32_le(Scooby.ptr) --for debug + updating pointers local Shaggy_ptr = memory.read_s32_le(Shaggy.ptr) local GhostHP = memory.readbyte(0x0113A4) --Update Pointers if (Scooby_ptr ~= Scooby.x-0xc+0x02000000 and Scooby_ptr ~= 0) then --this will happen if changed rooms or just started script update("Scooby") --placing this here as to not lag my computer :P end if (Shaggy_ptr ~= Shaggy.x-0xc+0x02000000 and Shaggy_ptr ~= 0) then --pointer + 0xC points to x position. to find the pointer again, subtract 0xC from x address and add 0x02000000 update() --Updates Shaggy instead end --Displays X,Y,SpeedX,SpeedY if (Scooby.x ~= 0x0 or Shaggy.x ~= 0x0) then --Check if the memory address of x is pointing to 0x0. gui.drawText(0,140,"Scooby:"..string.format('%.6f',memory.read_u32_le(Scooby.x)/65536.0)..","..string.format('%.6f',memory.read_u32_le(Scooby.y)/65536.0)..","..memory.read_s32_le(Scooby.speedx)..","..memory.read_s32_le(Scooby.speedy),null,null,10,null,null) gui.drawText(0,150,"Shaggy:"..string.format('%.6f',memory.read_u32_le(Shaggy.x)/65536.0)..","..string.format('%.6f',memory.read_u32_le(Shaggy.y)/65536.0)..","..memory.read_s32_le(Shaggy.speedx)..","..memory.read_s32_le(Shaggy.speedy),null,null,10,null,null) end --Display Ghosts HP if (GhostHP > 0) then gui.drawText(170,20,"HP:"..memory.readbyte(0x0113A4),null,null,10,null,null) end --Debugging --gui.drawText(0,90,"Pointer (Scooby): 0x"..bizstring.hex(memory.read_s32_le(Scooby.ptr)),null,null,10,null,null) --gui.drawText(0,105,"Pointer (Shaggy): 0x"..bizstring.hex(memory.read_s32_le(Shaggy.ptr)),null,null,10,null,null) --Other things gui.drawText(0,120,''..(memory.readbyte(0x00000D) > 0 and 'Cutscene' or ''),null,null,10,null,null) --If it's 1, there's dialogue/cutscene. Else no. gui.drawText(0,130,"Room ID: 0x"..bizstring.hex(memory.readbyte(0x0006B9)),null,null,10,null,null) emu.frameadvance() end
Edit: Going to the first camera at room 0x0E without partner switching is faster by 125 frames. It takes 163 frames initially to grab the Scooby snacks on room 0x0E, but then reduces to 153 frames since I don't need to delay at room 0x0F anymore. It takes 160 frames to grab Scooby snacks on room 0x10 for the first time instead, with no possible savings later. room 0x21 at this point, getting damaged once makes me run at 889 speed temp. normal is 553 getting damaged from first ghost - 149 frames faster getting damaged from the 2nd - too far getting damaged from the 3rd ghost - 154 frames faster getting damaged from the 4th ghost - 153 frames faster Edit2: In an attempt to figure out how room's affect position addresses, I think I found a pointer: 0x0112EC seems to point towards the player's positions so far. I changed my script to reflect that. :)
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Is it possible to skip the hall of fame and jump to the credits directly?
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/30159082452000515 1st stage done; now on (U) with differences below: 76 frames saved from no language select 10 frames wasted due to different timers with the scooby snack at the 3rd room 14 frames wasted on the 5th room due to needing to change back to scooby -------------------------------------------- Also, unrelated to region, it seems if you catch the ghosts in midair, you cancel out the animation for putting the book back. With careful timing, this allows you to instantly use the book as soon as a ghost is captured. While the individual npc's health always changes addresses, the one used to show the bar during a capture seems to be always at 0x0113A4 Combined WRAM. Temp encode: Link to video Edit: Might need to redo stage 1 to get scooby snacks, since it's very useful to run at stage 2's solo section.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Nice! Give how it needs tons of items, I wonder how long it would take for a credits glitch.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
One day, whenever PS3/Xbox360 emulation matures (eventually), there might need a rule allowing multiple console variations, if only because stuff like RNG and timing changes quite a bit between console loads. But uh...banning all sports games from vault even if it's not tied to a (fixed) timer seems kind of extreme. I can't argue against the trivial point however, since I never played this.
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"
itsPersonnal wrote:
New crazy non-TAS record done on an Xbox360 to have even faster loads https://www.twitch.tv/fuff_118/v/59444717
Things like this makes me wonder if it's allowed to have TASes of multiple console versions of a game solely due to situations like this. Maybe I'll ask again once xbox360/PS3 TASes get made a decade later. Hm