1 2
5 6
Post subject: BisqBot Request: Zelda 1
Joined: 5/3/2004
Posts: 1203
It seems likely that BisqBot in an appropriately modified form is suitable for optimizing almost all of Zelda 1 due to the highly compartmentalized nature of the game. Sure, all of Phil's sequences look great, but so did most of Bisqwit's play in MM1 until Bisqwit showed us the true potential of bot-powered searches. It will be a whole lot of work, but I request that Bisqwit -- or someone capable of appropriating, modifying, and competently using his code -- do a complete remake of the Zelda 1 run.
Former player
Joined: 3/8/2004
Posts: 1107
I'm guessing that the speed that bisqbot makes a TAS at depends on the speed of the computer and it tests out each button sequence at greater than 100% speed? Is there any way to somehow set it up so that 20 people can each run some program on their computer so that bisqbot can use all that processing power to progress through making the TAS 20 times as fast?
Active player (277)
Joined: 5/29/2004
Posts: 5712
Well, you would want to set some limits, like "Get to the door expending no more than 5 bombs and 10 arrows" or something like that. I'm really not sure how you could work weapon switches in there.
put yourself in my rocketpack if that poochie is one outrageous dude
Active player (432)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Michael Fried wrote:
I'm guessing that the speed that bisqbot makes a TAS at depends on the speed of the computer and it tests out each button sequence at greater than 100% speed? Is there any way to somehow set it up so that 20 people can each run some program on their computer so that bisqbot can use all that processing power to progress through making the TAS 20 times as fast?
My computer should be one of "them" to be qualified for the task. It has 1024 RAM so sign me up for the task if Bisqwit or others are interested.
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
Are you proposing that we build a distributed grid of TAS machines? I like that idea. In order for bisqbot to be able to play, it needs goals and ways of telling if it has reached (or is able to reach) them. For Rockman, Bisqwit figured out the weapon drop algorithm and programmed the bot to scan for it. For Mario, the bot can detect its horizontal progress. Etc. Game genie codes or disassenblies would be a good start.
Former player
Joined: 3/30/2004
Posts: 1354
Location: Heather's imagination
So what, are we creating an optimised route with specific constraints (like item switches) at certain points, and the bot's job is to minimise the time spent in each room?
someone is out there who will like you. take off your mask so they can find you faster. I support the new Nekketsu Kouha Kunio-kun.
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
I know nothing about Zelda 1. I've seen two different TAS' and can extrapolate a good deal from it. You could sic the bot on big room battles or for really tricky luck manipulation. What paths to take between rooms would probably have to be figured out by a human and locked in ahead of time.
Joined: 8/1/2004
Posts: 143
Location: Colorado
Heh, I like the idea. Instead of SETI@Home, lets do TAS@Home.
Former player
Joined: 3/8/2004
Posts: 1107
Are you proposing that we build a distributed grid of TAS machines? I like that idea. If that's the word for it then that's what I'm suggesting. My suggestion is that all of our computers work together on the same TAS. Btw here's a list of some addresses in LoZ, I'd assume this would be useful in programming Bisqbot to play LoZ: 0=don't have, 1=have or X=# of the item 0038: Time left until bomb explosion (0-1/X=explodes instantly/never 0070: Horizontal position on screen (lower/higher=more left/right on screen) 0084: Vertical position on screen (lower/higher=higher/lower on screen) 00BC: Explosion phase (0/1-15/18/19/32-255=no explosion/flames that only hurt you/repetitive explosions/nonstop explosions/flames 00EB: Location in overworld (0-15/16-31...=1st row of screens/2nd row...) 00FA: Buttons being pressed (0/1/2/4/8/16/32/64/128/various sums=none/right/left/down/up/start/select/B/A/various combinations, setting something to not being pressed is like autofire because it only sets it every other frame) 0305-030C and 0310-0317: Heart container appearance (0-9/10-35/36/101/102/242=numbers/letters/nothing/half full/empty/full, note that this only affects graphics, not the actual life you have left) 03CC: Candle speed/distance (0/32/145=endless still flame/normal/loops across screen many times) 0513: Blue candle flame (0/X=unlimited/none) 0523: Level whistle takes you to (X=X+1) (turn code on then off to warp to 1 higher or lower than that level) 052F: Progress in lost woods/hills (3=3 movements done already, just 1 left to finish the maze) 0657: Sword (1/2/3=normal/white/magical) 0658: Bombs 0659: Arrow (1/2=normal/silver) 065A: Bow 065B: Candle (1/2=blue/red) 065C: Whistle 065D: Bait 065E: Potion (1/2=blue/red) 065F: Magic Wand 0660: Raft 0661: Book of Magic 0662: Ring (1/2=blue/red) 0663: Ladder 0664: Magical Key 0665: Power Bracelet 066C: Stopwatch 066D: Rupee 066E: Key 066F: # of heart container and how many are full (17(X-1)-Y=X heart containers with X-Y full) 0670: Fullness of the last heart container (0/1-127/128-255=empty/half full/full) 0671: Triforce (0/X/255=none/various combinations/all) 0674: Boomerang 0675: Magical Boomerang 0676: Magical Shield
Joined: 10/24/2005
Posts: 1080
Location: San Jose
yarbles wrote:
Heh, I like the idea. Instead of SETI@Home, lets do TAS@Home.
Sounds like a plan. The problem is, do we have experienced enough coders to make this work seamlessly? How would we distribute the rom legally? If we manage to do this (I think it's not feasible at the moment, though) We should make certain sections of 1 game a Work Unit... Then when one game is done, we move on to a new one. I personally think SMB should be the first one, though. Then Zelda, then SMB3... Ah well, one can dream.
<agill> banana banana banana terracotta pie! <Shinryuu> ho-la terracotta barba-ra anal-o~
Former player
Joined: 3/8/2004
Posts: 1107
Sounds like a plan. The problem is, do we have experienced enough coders to make this work seamlessly? How would we distribute the rom legally? You don't need to distribute it, people already have it. Edit: And if you wouldn't know how to set it up, just ask those SETI people to help!
Joined: 5/3/2004
Posts: 1203
I surmise that a true SETI@Home like approach would require you to enumerate, somehow, all to-be-tested sequences of button presses, which I don't think is a feasible task. I did not examine Bisqwit's code for his MM1 branded BisqBot, but I have the sneaking suspicion there was a random component in the generation of button sequences. As such, a more likely scenario for a group approach is this: - We all have a copy of the TAS current up to the latest "official progress" - We all run BisqBot configured to look for the same goal - After some amount of time, we all report on the shortest sequence we could find, and we use the shortest valid sequence to update the official TAS, and redistribute the TAS - One of the coders updates BisqBot with a new configuration for the next goal, and BisqBot is redistributed - Rinse and repeat This isn't as super fancy as some of you are envisioning, but it has the added advantage of being pretty simple, provided someone can work out appropriate configurations for BisqBot to achieve specific goals in Zelda. Another interesting thing that could be done with a distributed approach is to try out many different button sequence generating algorithms. Over the course of completing the game, we would amass a large amount of data concerning the efficacy of various algorithms that might help give the coders an intuition about which methods are most effective in which circumstances, and perhaps, why. No matter what, BisqBotting almost all of Zelda 1 (even if only in small chunks at a time) will be a huge undertaking for the coders, and, if a distributed approach is adopted, will obviously require an unprecedented amount of organization and cooperation amongst all of us. But I feel in my heart it is something that must be done, and I know it is within our grasp. Zelda 1 is not only hugely popular, but seems the perfect game to smash into oblivion with BisqBot. A TAS so constructed has the potential to be the magnum opus of our entire community.
Active player (277)
Joined: 5/29/2004
Posts: 5712
Okay, now you're just talking crazy
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 4/11/2004
Posts: 104
This is talking about having a computer make all or most of an entire run, rather than using a computer to find the best sequence to manipulate luck in a single instance. No sir, I don't like it.
Joined: 7/28/2005
Posts: 83
Location: Montreal, Canada
I have a few 64-bit 1024 megs o' ram machines at my disposal if the timing of this is correct. Sign me up!
Joined: 5/3/2004
Posts: 1203
Makou wrote:
This is talking about having a computer make all or most of an entire run, rather than using a computer to find the best sequence to manipulate luck in a single instance. No sir, I don't like it.
The point is that Zelda is made up almost exclusively of hundreds of "single instances."
Joined: 4/11/2004
Posts: 104
xebra wrote:
The point is that Zelda is made up almost exclusively of hundreds of "single instances."
Maybe I'm a little disconnected from reality, but do we even know what the algorithm the game uses to determine item drops is? Is it even something so complicated, as it was in Megaman 1, that a "bot" is absolutely necessary to manipulate the drops? I don't know about anybody else, but part of the reason I enjoy these movies, emulator-assisted or otherwise, is because I know there's still a human element involved through most of the game. Do a run made entirely, or even mostly, by a "bot," and you strip that away.
Joined: 5/3/2004
Posts: 1203
The idea behind using a bot for Zelda 1 is not to do anything so mundane as manipulate drops. The point is to optimize the hundreds of short fighting sequences.
Active player (277)
Joined: 5/29/2004
Posts: 5712
They both seem mundane to me, getting items more readily versus getting enemies killed slightly more quickly by having them end up closer to you or something.
put yourself in my rocketpack if that poochie is one outrageous dude
Player (70)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
Sign me up for this too! :D However.. Woulden't it be easier if BisqBot could use ini files or something, with data that contains instructions. Then we won't need to patch BisqBot over and over again.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Highness wrote:
Woulden't it be easier if BisqBot could use ini files or something, with data that contains instructions. Then we won't need to patch BisqBot over and over again.
That's what I suggested in the first post of the thread you linked to. So far, I haven't been able to derive a description language that would be versatile enough yet. Each situation is so different. TNSe suggested embedding an interpreter of Perl/Python/Ruby. (Because those languages are generally cleaner/easier to edit than C++, and it doesn't need recompilation.) Such possibility is open (and I'd prefer Ruby), but there's no avoiding at least some level of programming skills is needed when adjusting the algorithm. (The level of not being afraid to change some number and try what happens.)
Player (80)
Joined: 3/11/2005
Posts: 352
Location: Oregon
Mmm. Perl.
#!/usr/bin/perl -w
use bisqbot::fceu::smb1;
ideamagnate| .seen aqfaq <nothing happens> DK64_MASTER| .seen nesvideoagent * DK64_MASTER slaps forehead
ventuz
He/Him
Player (123)
Joined: 10/4/2004
Posts: 940
I'd vote Ruby.. im learning Ruby and VB in my class
JXQ
Experienced player (750)
Joined: 5/6/2005
Posts: 3132
Makou wrote:
Do a run made entirely, or even mostly, by a "bot," and you strip [the human element] away.
I agree, but for a different reason, I think. If I was working on the movie myself and incorporated a Bisqbot program to do as much optimization as is talked about here, I wouldn't be very proud of my result, but that's because to me, it's easy to press certain buttons on certain frames, but figuring out the path (the bigger picture) is what I enjoy the most when doing a TAS. Leave that to a computer to figure out and, well, I personally just wouldn't have as much fun with the process. Plus, after watching the Zelda 1 movie, I don't think Bisqbot is going to make enough of an improvement to go through the trouble of organizing a big network of continually-updated random-searching optimizing source code.
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Joined: 5/3/2004
Posts: 1203
JXQ wrote:
Plus, after watching the Zelda 1 movie, I don't think Bisqbot is going to make enough of an improvement to go through the trouble of organizing a big network of continually-updated random-searching optimizing source code.
I think you're being needlessly pessimistic. BisqBot drastically improved the sequences it played in Rockman. I would be very surprised if it wasn't possible to cut the length of all the fighting sequences in Zelda 1 by 20% at the very least.
1 2
5 6