Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I made a clip detailing various applications of Save Retreat Glitching as it applies to Golden Sun. If my explanations in the video were poor, feel free to ask questions.
http://www.youtube.com/watch?v=tKWZuCaLzWs
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I think there is merit for both a glitched and non-glitched run for both games in the series. I think perhaps judges should recommend a decision on that if this particular run happens to be rejected.
This run was played with autofire buttons and even slowed down in menu sections, thus I don't think it demonstrates good TAS quality. This run is good as a test run, but I think much is missing that could've been done to make a game this text heavy more entertaining. (RNG optimization, sanctum warp, and optimal menu movement were all missing.)
Unfortunately I have to vote no, because this appears to be largely of test run quality.
I think the GS1 data would actually have worse characters than the GS2 default.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I got this run to work, I'm not entirely sure if the rom version is correct, but it may be right.
Can you explain why you hit random buttons sometimes in between text boxes, or is there no reason?
12625: Just to point out something before it comes up. Look at the dialog just after frame 12625. When you interrupt the pauses in speech ("Umm") by pressing A, if you have to close the dialog the frame after, you can't hit A two frames in a row. If you did want to close a very short dialog you should hit B to break the pause and then A to close it.
14105: You lost a frame here. It is one frame slower to press Right, A then it is to hit B.
I figured that sanctum warping was faster, and you confirmed it. =p
I tied you getting out of Dalia, so your walking is close to optimal. My finding with Golden Sun 1 was that it is equally fast to walk straight (up) then (left) as it is to walk diagonal (up and left). Using this information I speculate it is possible to save 1 frame around half the corners if you are tedious. I don't think it is worth spending your time to do this right now though.
Alhafra or Mikasalla seems to be the first place you can buy Sacred Feathers. I'm not sure how sacred feathers affect the step value to the next battle exactly, but I did describe the step value earlier in this thread. Maybe 'Avoid' is all you need. I never looked into this thoroughly.
It may be that you should have wasted a turn in the last battle in your WIP in order to manipulate the step value for the next random encounter (outside Dalia) to be higher.
Renaming Jenna would surely have saved some frames by now. I do not know how much Garet, Ivan, and Mia come up in discussion.
Without renaming Jenna I would've only been able to beat your current WIP by just a few frames, so it is currently good work. I will be paying close attention to your choices with the RNG, and I look forward to seeing what sort of 'Retreat Glitch' opportunities you find. I intend to give advice as much as I can if you continue this run. I will try to post a video detailing all possible ways of retreat glitching during the weekend, because there are 3 uses I have found, and I only have one on video.
I found a few useful bits in the GameFAQs guide by Iron Knuckle. I'm thinking you were supposed to rename all characters if you were to be optimal.
I hacked together a text skipping code at one point. I am not positive it skips text optimally currently. It is also very inefficient currently. Ideally it would savestate every 20 frames or so and every time it clears a box or something.
local UserInputAD = 0x020330f0
local YesNoAD = 0x020330fc
local NoMovingAD = 0x02000060
local tempstate = {}
local value
local Break
Break = 0
value = 2
tempstate[value] = savestate.create()
while true do
if memory.readbyte(NoMovingAD) == 16 and Break == 0 then
savestate.save(tempstate[value])
end
while memory.readbyte(NoMovingAD) == 16 and Break == 0 do
savestate.load(tempstate[value])
vba.frameadvance()
vba.frameadvance() -- We need to respond two frames ahead of time.
if memory.readbyte(UserInputAD) ~= 0 then
if memory.readbyte(UserInputAD) == 150 then --End of phrase
savestate.load(tempstate[value])
joypad.set(1,{["A"]=true})
vba.frameadvance()
vba.frameadvance()
savestate.save(tempstate[value])
else
savestate.load(tempstate[value]) -- Mid phrase
joypad.set(1,{["B"]=true})
vba.frameadvance()
savestate.save(tempstate[value])
end
elseif memory.readbyte(YesNoAD) == 1 then
savestate.load(tempstate[value])
vba.frameadvance()
vba.frameadvance()
vba.frameadvance()
vba.frameadvance()
vba.frameadvance() -- Five frames before action is allowed.
savestate.save(tempstate[value])
vba.pause()
while memory.readbyte(YesNoAD) == 1 do
vba.frameadvance()
end
savestate.save(tempstate[value])
else
if memory.readbyte(NoMovingAD) ~= 16 then
savestate.load(tempstate[value])
savestate.save(tempstate[value])
Break = 3 -- To account for 2 frame barrier
vba.pause()
else
savestate.load(tempstate[value])
vba.frameadvance()
savestate.save(tempstate[value])
end
end
end
if Break > 3 then -- To account for 2 frame barrier
Break = Break - 1
end
vba.frameadvance()
end
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I intend to watch this over the weekend. I've done some work with this game, and was intending to TAS the first game at some point.
Do you intend to use the retreat glitch and the save retreat glitch as shown in my video here?: http://www.youtube.com/watch?v=4i6c6BfK_u0
I can show some more uses for this as they relate to the first game.
Honestly, I think TASing Golden Sun 1 is a much simpler run than The Lost Age. I think it makes more sense to learn things while TASing a shorter game before investing 6 hours in doing The Lost Age optimally.
We should move discussion to here: http://tasvideos.org/forum/viewtopic.php?t=8159
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
From my understanding the situation is as follows.
There are 60 or so stars in SM64 that have no random elements interfering. These 60 stars are hexable, and this is why the game is 'hexable'. The part people seem to be missing is that these hexable stars interfere with the randomness.
There is some sort of either universal timer or extremely random RNG controlling enemy behavior. Since variables are 32 bits, the repetition of a sequence of RNGs could take hours of gameplay. There are probably on the order of 4294967296 RNG possibilities. To say you could get a 100 coin star with many enemies to synchronize by copying and pasting is laughable.
Say that you want to make a 120 star TAS, and you hex in the first star of the run. Then you TAS the second star (which for example is 100 coins or involves random elements.) Now someone improves the first star by one second. You hex in the first star. Now the second star desynchronizes. The only way to get it to synchronize may be to wait one second after the first star for the RNG to get back to the same point (maybe this isn't even possible.) Now in order to preserve the gains you must redo the second star and all other subsequent random stars in the run because the randomness has been altered.
Basically after the first 100 coin star the run does, anything hexable will most likely destroy that effort.
But there is good news. With all the improvements coming all the time, as the length of the run approaches zero, the likelihood of the run being produced approaches 1. =)
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
There are a few, but it's kind of hard to justify starting from a save state while not completing the game as fast as possible. For example why not just start with a completed save file and go beat the final boss. It's a bit arbitrary. Why not directly copy the completed file to a new file and go beat the final boss. Your guidelines are "Starts from SRAM, but does not directly copy SRAM to new file, but essentially accomplishes the same thing anyway."
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Glitcher, while you've come up with an interesting approach, pre-recorded SRAM data generally means a rejected run.
In my eyes all this run would really do is 'half copy a completed game and walk to the ending', which doesn't really seem worthwhile.
That's some shady area between starting a new game and walking to the end of an already completed save file.
It is novel for percentage and banana purposes, but I would probably vote no because it starts with data in SRAM which generally (in my opinion) doesn't make for a logical run in TAS.
This game doesn't even work in the emulator, so of course this is all speculation.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
If you do not want to describe how to do it, you should perhaps release a .smv (rerecording input file) such that we can at least decipher how to do it.
I would suggest you should release this glitch (at least by Private Message) to TASers to further the knowledge available for improving the published TASes.
I assure you that the SMW TASers here have a comprehensive knowledge of most of the glitches in the game. If you have indeed found something unknown, they may be able to make good use of it.
If your concern is not making it public, I'm sure they can keep it a secret for some time.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I probably should've mentioned earlier that you should never push up against things like boxes while waiting for them to explode, as it takes Bomberman a bit to get running again. You should run back and forth to keep or get running speed. It's only a few frames lost each time though. I made this mistake once or twice early on in my run.
I think you've also been missing the trick where you throw a bomb to fall faster and grab a platform or land faster. Dropping a bomb is good in most circumstances, but in a couple spots I think throwing could save a few frames. You did use this in a couple spots, but you didn't use it in a couple seemingly similar spots.
Overall pretty good. Just try to note those two things to save a few more frames in the coming levels.
I'll try to resume progress on the any% in about two weeks.
Also, holy ****, Mupen runs so much better on my new computer.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Erokky is just trollin. We have a neverending 'competition' in IRC to see who can insult the other the most. One could incorrectly infer that we actually hate each other, but it's all in good fun I assure you. I doubt he actually voted meh on the run.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I can definitely see how this could be considered 'poor game choice' to someone who has never played the game. The run was undertaken primarily to demonstrate what TASing can do to a game notorious for its ridiculous grinding.
I'm actually surprised how positive the feedback has been given the game choice. ^_^
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Ah, right. So this category is something like, "Glitches the game to run through massive amounts of code to hit the debug menu code."
It's quite similar to memory corruption, but values aren't actually changed, they are just read in a very glitched manner.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I personally think blatant memory corruption or SRAM corruption should have its own category in most or all cases.
It is my opinion that the Earthbound categories should be something similar to the following:
(1:) Run with memory corruption
(2:) Run without memory corruption, but still major glitches
(3:) Run satisfying some completionist conditions or perhaps just banning certain glitches in run (2:)
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Solid run. (I'd recommend everyone skip the first 5 minute intro battle.) While not the most entertaining run in existence, watching the AI get clowned by various strategies is quite amusing. I feel like the deck stacking could've been done more optimally. I'm not sure why switching out 30 energies at a time is necessary when you only need like 2 of them or something. Perhaps there is a good explanation for that or perhaps this isn't the most optimally brute forced run in existence. Either way I think it is a minor concern. Yes vote; glad to see a run of this game.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Try to take this as constructive criticism.
Commentary should be discussion that enhances or adds value to the viewing of the material. Narrating the obvious is not good commentary. "He does a BLJ" was something that the commentary stated at one point. First of all, many people viewing know what a BLJ is and can infer that the TASer is indeed BLJing. For those others who don't know what a "BLJ" is, you neither defined it nor discussed it. You entirely missed both audiences.
You just sort of state miscellaneous thoughts/narrations of what is going on and really offer no details that one wouldn't observe watching the run without some guy talking in the background.
I was unimpressed and turned it off after about 3 minutes .
There is really no rule for this, as only a couple runs have had good commentary done. I personally think the author(s) (and perhaps the site to a minimal extent) should have to approve any commentary officially posted with any run.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
I forgot to talk about how having more enemies on the screen makes the RNG increment more, and having less enemies on the screen makes the RNG increment less. You will notice in some walking portions that the bot found a solution to remove a ridiculous amount of enemies from the screen. This occurs from Padal to Telaine to the Cave of Beore and from the Airship to Gorfun. The walk to Ligena was also heavily manipulated, but I forget whether it was more or less. The only thing we had to change was a couple lines in the RNG pathing code. Most extreme instances in the run we had to increment the RNG less than average to achieve the desired result. It just happened this way.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
The run is complete in 1:50:17. Parts 1 through 10 are available on my youtube channel.
Part 1Part 2Part 3Part 4Part 5Part 6Part 7Part 8Part 9Part 10Here is the final smv.
We are working on the submission text and may submit this weekend.
Here is the best real time run just for comparison.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
The speedrun competitions forum is only for Non-TAS related material (and obviously doesn't get used much. Might as well post in the General Forum, because I wouldn't really consider it "Off Topic."
The best "TAS challenges" seem to be ones that give opportunities for creative solutions, so perhaps keep that in mind.
Experienced Forum User, Published Author, Player
(208)
Joined: 7/7/2006
Posts: 798
Location: US
Ordered a new desktop a few days ago to play starcraft 2 better.
Processor/CPU : AMD Phenom™ II X6 1055T
Memory : 6GB Dual Channel DDR3 SDRAM3 1333MHz - 4 DIMMS
Video card/GPU : ATI Radeon HD 5670 1GB
Hard Drive : 640GB 7200 RPM (I have another 500 GB to add to this.)
Operating system : Windows 7 Home Premium, 64Bit
I could've gotten the Radeon 5770 for another 80 bucks, but I didn't think it would be necessary.