Posts for flagitious

1 2 3 4
20 21
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Nitrodon, if you light the first torch before the second goes out, the second never goes out. Omni, the same thing but skip the two frames that are up+left+right, left+down. I don't know if it is possible to use this for other stair orientations.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Here is a new trick I discovered on accident while trying to pixel port, it allows you to walk down stairs diagonally, in the example shown it saves about 10 frames. It can also be used to go left. http://golfscript.com/temp/diagonalstairs2.smv Also here is a use for that glitch tompa discovered which doesn't make Link invisible and saves some time. http://golfscript.com/temp/tompastrick.smv
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I redid the test ganon fight, it turns out that the first phase can be done just as fast with tempered sword, and the final phase can be done within 25 seconds the speed of having silver arrows (timing from end of ganon's darkness dialog). I did not do any luck manipulation, which could speed it up some more by making ganon take less time to teleport, and possibly getting 4 hits per light instead of 3 (I was only about 25 frames too slow to do this one of the times). http://golfscript.com/temp/ganonnobow.smv Tompa, I started making a bug run (fastest time to kill ganon, anything goes), and I now fully appreciate how much precision you have in your run. I would not redo the run unless it would result in large time savings due to the amount of effort required for your precision.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
A while back, I think erokky had decided it was faster to not get the gold sword (even while getting the silver arrows), because the ganon fight can still be just about as fast. If this would save 10 seconds over the gold sword then it would really make deciding the fastest route difficult (sorry to complicate). Also one other note, I said my ganon fight was 50 seconds slower than published tas, but you'll have pegasus boots, the firerod, and better precision.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Ok made the wip for a bug run with killing ganon. The ganon fight is not totally optimized, and its about 50 seconds slower than the published tas, but without golden sword and silver arrows. Your estimate of 1:30 savings skipping super bomb and 30 seconds penalty on other various things makes it close (although I think that estimate was for lvl 2 sword?). http://golfscript.com/temp/bug2.smv
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
superbacon wrote:
Heh, that's part of radblast's 3 Heart Run that I uploaded for him. He's the one who discovered the method of beating Ganon without Silver Arrows, and he presented his findings in the SNES LTTP boards on GameFAQs. It's good that this discovery is getting some attention from the LTTP TAS community, though.
Hey, and it is also good that someone from gfaqs is following the tas efforts. Although I bet if the trick ends up saving time tompa is going to wish you spoke up sooner! Tompa, after your analysis it is safe to say sticking with the master sword is definitely slower. But maybe sticking with the tempered sword and skipping the silver arrows may still be faster. The first three forms of ganon will be about the same speed (only the first might take longer). The last form takes radblast about 1:20 to do, but he isn't tasing it (and he could have used the glitch where you only have to light one torch each time). Pendant bosses in ganon's tower will be slower and require more arrows to kill, and the turtle rock boss will be a little slower too. There might be some additional time saved by changing dark world dungeon order since crystal 2 wouldn't need to be done so late to end up where super bomb is bought. I am going to make a WIP for a bug run using a new route that is different than radblast's, it will mostly be sloppy, but I'll try to make the ganon fight decent so we can get a better estimation of how long that will take. Also I saw this post by assassin17 that explains the mothula damage bug. I have not fully understood it yet. I still have hope that a spin attack can be used on mothula :). http://www.gamespot.com/snes/rpg/legendofzeldaalinkttp/show_msgs.php?topic_id=m-1-43959744&pid=588436
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Well true, but what I meant was that the tempered sword could already have been skipped, but now you could skip saving the smithy too, possibly making it worth while (although I would guess not).
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I saw this vid on youtube, the people at the gamefaqs board found a way to kill ganon without the silver arrows. It is to basically hit him with the sword right before he starts to teleport away. If used, it could impact route choices since they big bomb could be skipped (and even getting your sword tempered, although that may still be worth it).
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I don't know why it happens, I never even noticed differences in time it took to warp when I did my TAS. On mothula, glad you could kill it faster than straight 4 hits even if it wasn't spin attack. Also Desbreko firerod probably isn't viable because it does half the damage of the sword, but maybe if it were possible to get your double hits to be triple or more then that could be sweet.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Cool cool, anyways not sure that it is the boss hp for all bosses, just assumed it is since it was for mothula. The fact that helmasaur and other bosses have separate entities made me realize that it could be a false assumption. I could try to find some other useful memory addresses although I can't think of any besides link's xy coordinates, do you have those already?
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Looking good. It was really fast to get that extra 300, would that have been faster than the rupee room even without the going through wall to get the hammer trick? When I fought against mothula in the original run, I was able to hit it with a spin attack once doing double damage. It was pretty early on in my attempt so I didn't save it, only later to realize that it is apparently impossible to hit it with a spin attack. I have tried a bunch to recreate it then and some more recently with no luck. It is possible I had messed up which save state is what remembering how many hits left on a state, but I was sure I had done it then. Mothula is kinda weird in that sometimes normal hits don't connect and I never figured out why. Anyways this address 7e0E50 is boss hp, it might help if you try to figure it out. If it seems impossible to hit with a spin attack don't waste too much time on it, I could have been wrong, I estimate 50% possible, 50% I am error.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Hey how is going Tompa? Any WIPs even if it is just the dark palace still? 152 frames is very nice, it looked perfect already. I'm alright with waiting too if you prefer to make us crave it even more.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I had no idea it was so involved to maintain tasvideos. It is very gracious of you to in advance make sure it carries on undisrupted. But even more gracious to run it all along. Thanks Bisqwit. I think I can host the image server, that one looks like it doesn't require shell access to maintain and uses less than 300 gigabyte of bandwidth per month?
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
That is really cool getting the hammer like that. It might be possible to pass through those type of barriers on land too. I know it is possible if you use something to push you onto the starting edge of one (like in first room with bad guys in the master sword castle dungeon). I have vague memory of passing though one not entering from the edge, but still getting pushed by ball and chain thing. But that was so long ago I could be remembering it wrong.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Looking good, can't wait to see more.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I concur with AngerFist. But also I think that you should probably not restart regardless of what the trick is, the game is just too long. Even if you restart, you might then get say 2/3 through the game and discover something else, now you would face the same dilemma except you would feel even more obligated to restart since you did before. You would be better served completing the game, discovering as much as you can, and then if you feel like the total savings is worth it doing it again. That might sound like alot of work, but really it is less than restarting every time a new trick is discovered, plus this way you have a completed run to show for your effort earlier. This point is moot for now since you seem to have found all non bad glitch tricks at first usage, but it is such a long game it is bound to happen, props of course if it doesn't :) Non exploration glitch run, is not well defined. When I made the first TAS I thought it was, but soon after watching TASes of other games I realized it is kind of arbitrary and not well defined. You have now made it even more undefined. Still though, I can't think of well defined rule that would keep the game familiar to viewers, so I guess it will just require your best judgement.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I was only concerned with measuring comparisons when I wrote that insert function, otherwise yeah that is a terrible function.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I did some quick test on the smoothsort. Instead of measuring run time, I am just counting comparisons. "Almost sorted" isn't really very meaningful so instead let us look at making small changes to a sorted array and how many more comparisons it requires. Some possible changes are swap two adjacent items, swap two distant items, and move an item to some other location, sliding items in between. Comparison counts, sorting a list with smoothsort of size 100,000
199971 in order already
4289498 random shuffled
3253547 reversed
201517 random adjacent swaps (1000 of them), avg +1.5 per swap
309452 random distance swaps (1000 of them), avg +109 per swap
1411142 random slides (1000 of them), avg +1211 per slide
It seems to handle slides really poorly, even though I would consider those as nearly sorted, for example 0 2 3 4 5 6 7 1 8 9 is pretty close to sorted.... Also alot of those 1000 slides, were canceling each out to some degree so the situation is even worse, most elements were less than 10 positions from their sorted locations, with the 1% of points that were slid being about 40,000 away. I created a new algorithm to see how it does. The algorithm is very simple, it basically repeatedly does a binary search to find where an element goes, then places it there. To make it work well for nearly sorted data, it starts the search where the previous element was placed. Source is here
template<typename RI, typename IntType>
void insert(IntType val, RI a, RI b) {
	for(; a<=b; a++) swap(val, *a);
}

template<typename RI, typename IntType>
RI bsxfind(IntType v,RI a, RI b, RI x, int width, RI lb, RI rb) {
	if(width >= (rb - lb) * 2) return lower_bound(lb,rb,v);
	if(v<*x) return bsxfind(v,a,b,x-width,width*2, lb, x);
	else return bsxfind(v,a,b,x+width,width*2, x+1, rb);
}

template<typename RandomIterator>
void mysort(RandomIterator begin, RandomIterator end) {
	RandomIterator i,last;
	for(i=begin; i<end; i++) {
		last=bsxfind(*i,begin,i,last,1,begin,i);
		insert(*i,last,i);
	}
}
Since I know what the algorithm does I will list its asymptotic behavior. Note that I am only counting comparisons, my algorithm is actually n^2 for random data because the insert function takes linear time due to my data structure just being an array. already sorted: O(n) reversed: O(n) randomly shuffled: O(n log(n)) k adjacent swaps: O(n+k) k distance swaps: O(n+k*log(n)) k slides: O(n+k*log(n)) Now repeating same measurements.
99999 in order already
2648698 random shuffled
99999 3253547 reversed
101991 random adjacent swaps (1000 of them)
275229 random distance swaps (1000 of them)
236662 random slides (1000 of them)
So it beats smoothsort in every category. I did not list change avg increase per swap because for already sorted data it needs only 1 comparison per item. But if the first element is actually the largest it requires 2 for per item. This has no effect on asymptotic behavior, but would make the results less meaningful. So here are results again, but first and last element swapped before all other changes.
200028 in order already
200027 reversed
201064 random adjacent swaps (1000 of them), avg +1 per swap
275513 random distance swaps (1000 of them), avg +75 per swap
236956 random slides (1000 of them), avg +37 per slide
So it is not hard to make an algorithm that beats smoothsort in comparisons. I would guess that smoothsort is similar, but overcomes the linear insertion time using fibonacci heaps (I don't know what those are yet) but at the cost of more comparisons (but not asymptotically more except slides/reverse). However I could be completely wrong and it uses some other method to seed nearly sorted things well, that could explain its bad slide handling. Omni, that was a fun experiment for me but I also hope it was of some use for you in understanding how smoothsort works, although maybe you were already beyond that part and now focussed on how fibonacci heaps work.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Nice nice. Visually the picking up of the sword didn't look bad, I couldn't see any delay when watching it at regular speed at least.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Hey how is the 3rd pendant going?
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Derakon wrote:
Bombs count as special gear. You can't get them until you get to the overworld.
Bombs do not count as special gear, just none of the monsters before sanctuary have bombs in their drop sequence. Hmm maybe I am wrong though, I can't remember purple guards drop sequence, although it is listed farther back in this thread somewhere. Edit: nm sequence is here http://tasvideos.org/forum/viewtopic.php?p=8622&highlight=#8622 Tompa I have not checked out the WIP yet, but it sounds like you are doing a good job. I'll try to be helpful, but it has been so long since I played and my knowledge of the game is so out of date that it won't be much, not that you need it. Is erokky see around? He had made some good progress, possibly more than he shared in WIPs, which could be of useful reference/comparison/tricks.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Thank you for answering my question. ^^
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I consider philosophical logic as reasoning but not evidence in the sense we are talking about. I was expecting your answer to be either either philosophical or based on personal experience. Either of which would probably be interesting. I would not consider a personal experience to be evidence either, since you could be lying, hallucinating, mistaken, etc. I am not saying that a personal experience for you would not be a good reason for you to believe, only that it would be a bad reason for me to believe since it is not my experience. Edit: Hmm I guess you meant that providing non evidence will lead to arguments which typically go no where. I was more asking for my own interest than arguing though.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
bisqwit wrote:
flagitious wrote:
Why do you think that God exist? Also why do you think that your religion, Christianity, is the correct one? If the answer involves a personal experience, could you please explain it in some detail.
I cannot provide you with the tangible evidence you seek (though many try), and therefore no amount of explanations is going to be fruitful for discussion. Anything I could possibly say is anecdotal at best, even when it is first-hand -- and often, words do no justice to it.
Thanks, although I did not seek evidence, but your personal reasoning.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Dear Bisqwit, Why do you think that God exist? Also why do you think that your religion, Christianity, is the correct one? If the answer involves a personal experience, could you please explain it in some detail. I realize you given brief reasons in response to a couple questions in the past, but the "why" was not the focal point of the questions and as a result your answers only touched upon your reasons.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
1 2 3 4
20 21