Posts for Tub


Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Scepheo wrote:
Tub wrote:
Polls would be more fun if the radio buttons were surrounded by <label> tags so you could click the whole text, not just the tiny button. I just can't hit those things with my zapper!
I think your otherwise good point might completely be lost in this thread.
Of course one might try posting in the proper thread. Don't let it be said that I'm not a patient man, but there are limits. The best bet is to catch Nach in one of his troll threads. Those are usually a sign that he's both bored and in a good mood, making him susceptible to thinly veiled feature requests.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Polls would be more fun if the radio buttons were surrounded by <label> tags so you could click the whole text, not just the tiny button. I just can't hit those things with my zapper!
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Sir VG wrote:
It's raining runs! Hallelujah!
You got the lyrics wrong, it should be: "It's raining miserable little piles of secrets! Hallelujah!"
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Lex wrote:
The primary colors of light are red, green, and blue.
Just to clarify, there's nothing too special about these "primary" colors from a physical perspective. These three colors were chosen because they correspond well to the three types of color-detecting photoreceptor cells (cones) in our eyes. By sending light at these three wavelengths, the three types of cones can be triggered individually, thus recreating most colors perceivable by humans. There are animals with different color vision than ours, and many of those can easily distinguish between a picture on a monitor and the real thing.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Bisqwit wrote:
This elaborate code for level 17 (pointers) calculates and highlights the actual solution to the puzzle. Surprisingly most of the puzzles it generates are actually unsolvable. You have to click Execute a few times to get a solvable one.
Nobody said you have to accept the puzzle as given to you. In the first iteration of the loop, set up a connection from start to exit, then break out of the loop. Finding the top left and bottom right teleporters is easy, for example with an array sort. Then connect them, break and play. Probably not intended, doesn't even need the canvas functions.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Above all, I think that the poll should remain accessible to anyone, including people new to the site that haven't memorized all the rules. If anything, I'd reduce the barrier for participation - we want as broad a spectrum of opinions as we can get. "Yes, vault" and "Yes, moons" would be a differentiation someone new couldn't make. Same for "It's entertaining and ok to publish" versus "It's entertaining but violates some rules". Adding these or similar options means that we will lose some votes, simply because some viewers cannot answer the question they were given.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Is the computer cheating? In level 2 (the maze), I noticed that the maze fills the whole map with objects and I'm not allowed to overwrite any existing block with 'space' or 'exit'. Yet the predefined function continues to place an exit at a random position.. 13 is indeed difficult. I solved it using something similar to a "global variable" to save some state information. Is it possible without? Level 19 is throwing security errors and displays a black screen. I doubt that's intentional?
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
This is one of the games where all the TASing tools can be used to their extreme. High precision input, high speed button mashing, luck manipulation, abusing bugs only findable by disassembling the game. It's absolutely technically impressive, shows obvious differences to an unassisted speedrun, and thus must be starred.
m00
Post subject: Re: In which Alden posits questions?
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
alden wrote:
Is this related to this book? Or are Germans just obsessed with oddly-hued ursines.
Correct. Walter Moers is someone who seems to think that being offensive equals humor. Thus, all his other characters are just horribly offensive, but lacking any wit or humor or social criticism or anything else that would redeem them. From "Das kleine Arschloch" (the little asshole) to comics about hitler - you're better off not knowing them. It's surprising that the same person managed to create Käpt'n Blaubär. A lovable, retired sea captain that spends his days retelling his life on sea to his grandchildren. Like any proper seafarer would, he embellishes his stories to the point that even his grandchildren call him out on it - but somehow, he always manages to present some proof that appears to confirm his stories. A bunch of lovable characters, fantastic stories, and a grandfather/grandchildren-dynamic that any child could wish for - it's a great show not just for children. This game, however, appears to be utter crap.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Also, the princess is always in the last castle you're checking. ;) Making sure that parts of the game with random elements aren't trivialized by dumb luck.. I wouldn't call that "cheating" but rather "proper gamedesign". At least in singleplayer games, where you're not competing with a computer player. If you want the player to visit three locations to get the MacGuffin, you can either make sure the MacGuffin is always in the third location you check, or you could add a MacGuffin-Vendor that requires three plot trinkets, and hide the plot trinkets in said locations. Sure, the first choice is somewhat dishonest if the player is told it could be anywhere. But it's not necessarily worse than introducing questionable plot trinkets. In most cases I wouldn't even call it unfair. Your task is to finish all three dungeons, get on with it.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
I think it was The Saboteur where they went one step further than rubberband AI. In one race, the cars were specifically scripted so you'd be overtaken by everyone during the first lap, then you'd work your way back to position 1 during the second. I suppose they wanted to make the race more exciting, since it isn't even a racing game. In GTA San Andreas, there's a mission where you need to find a person in one of three ambulances. No matter which ambulance you check first, it's always the wrong one. Pretty tame example, but fits your "dead end" definition.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
amaurea wrote:
Unless one excludes the undead pause trick from the category.
It's not just the undead pause trick (I like the name!) that is excluded from the list of tricks done in ingame-runs. There are a few others that can shave off a few frames of ingame time at the expense of a lot of frames of realtime. Like equipping/unequipping highjump-boots or beams in certain situations. Possibly exiting/re-entering a room to reset enemies for drops (the current runs don't contain much farming, but it'd be a viable option in some hacks). So far, the ingame-TASers have chosen to avoid using these tricks to the extreme, because they knew that a fully optimized ingame-run wouldn't be as entertaining. But as a result, the category has always been somewhat ill-defined, and I believe any of the ingame-runs could be made faster simply by making it look bad.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
The run was pretty boring, devoid of clever tricks or technically impressive optimizations. And so repetetive. It's just an entirely uninteresting game, both for TASing and for watching.
jlun2 wrote:
Is maximum score even vault-able? I mean, is this the fastest possible way to beat the game? Would a non-max score run be faster?
The Vault-tier also has restrictions about sport-games.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
ais523 wrote:
(IIRC last time this came up, someone looked into the code, and confirmed that it looked entirely intentional.) I don't believe there's a difference between cheat and debug codes; they're basically the same thing, given that the purpose of most cheat codes is for testing the game, and then those codes are left in the game for players to discover.
Not quite. It was certainly a code that was intentionally put in for debugging. The code is very straightforward, it's not a weird side-effect of a bug or something. But it was not meant for players to discover. Because if you use it without extensive knowledge of the code, it crashes the game. The fact that it remains accessible is an oversight from the developers, i.e. a bug.
feos wrote:
That's weird how people defend use of GT code and don't suggest any fixes to the rules.
Mostly because no fixes are required. http://tasvideos.org/MovieRules.html
Cheats, debugging codes, and arcade continues are not allowed [..] These rules are not strict, but are motivated by the same concept as the guideline that says you should play on the hardest difficulty. [..]
Since this code allows a route that's more difficult than the GT-less run would be, I'd say that this case is already covered in the rules; we just need to agree whether the exception applies here or not. But several people have suggested or agreed on the suggestions to keep ACE runs in separate categories, but to remove any restricting rules from these categories.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
DrJones wrote:
In my opinion, the players should act as if the code of cheats and debug features wasn't inside the ROM, as using them artificially lowers the game's difficulty
Usually yes. In this case, the resulting route is anything but easier. The code opens up a different route that's a lot shorter, but also very difficult. At least two new tricks were employed in this run just to make the route work. And that's not counting any of the crazyness after GT. And isn't it usually the goal of TASes to find routes that are short, but tricky to pull off in a TAS and impossible to do realtime?
DrJones wrote:
Once you use one of these codes, you are no longer competing on the same ground as the other people
Which is what "glitched" categories are for, to separate runs like these from the "normal" runs.
DrJones wrote:
and you are not doing what you are supposed to do, which is beating a game in its most difficult form (as intended by the game creators) in the fastest "legal" way.
I don't think any super metroid speedrun has completed the game in an intended, "legal" way for over ten years. Where we draw the line between acceptable and inacceptable game abuse is a matter of opinion, but drawing it at the intentions of the developers is not only impossible to verify, it would also disqualify most of the movies on this site.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Zeupar wrote:
Tub wrote:
About the GT code: When we reach the point of arbitrary code execution, all gloves are off, and I don't think it's important to keep restrictions such as "play on hardest difficulty", "don't use cheat codes" and similar.
Are you speaking in general?
Mostly. I don't think it makes sense to allow 20 different, absolutely gamebreaking things, but avoid another gamebreaking thing just because it may under some definitions be considered a "cheat code", which there are non-strict rules against. Heck, the rule against cheat codes mentions the konami code, because 30 lives make the game too easy. How is a glitch that turns Samus invincible not worse than that? The intention of the ban against cheatcodes is to prevent trivial runs that could be repeated unassisted, and to avoid the notion that TASes are "cheating". Both reasons are valid in unglitched playthroughs, but don't make much sense in glitched runs. I've stated before that IMHO the only strict rule should be that the run can (theoretically) be reproduced on a real console with an unmodified game. All the other rules are just incarnations of the mantra: "Make awesome runs!". If a run that's clearly awesome contradicts one of the rules, screw the rule. If a run abides by any and all rules, but is boring, screw vault the run. Of course it's always the grey areas in between that we tend to disagree on. Runs that are kinda, but not totally awesome? Queue 30 pages of discussion. Still, I don't think anyone's answer to the question "Did you find this movie entertaining?" should be influenced by the rules, nor should a judge value the rules higher than the viewer response.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
An interesting side effect of the pause glitch is that the game clock stops running while Samus health is 0, which makes the ingame clock about 20 seconds lower than it should be by the point that GT is reached, therefore displaying a 00:05 at the end instead of 00:06
If the ingame time is wrong anyway, I would've just set it to 00:00 (or any other obviously bogus value) to prevent confusion. But that minor nitpick doesn't stop me from voting yes. About the GT code: When we reach the point of arbitrary code execution, all gloves are off, and I don't think it's important to keep restrictions such as "play on hardest difficulty", "don't use cheat codes" and similar. Those rules were made to keep the gameplay interesting, but this run isn't really about the gameplay, is it? That being said, I think it is exactly the GT code that makes the remaining gameplay interesting in this run. Making a beeline for the most dangerous territory in the game, ignoring any roadblocks the developers placed on the way, with a complete disregard for her own life - and even her own death. Saturn's GT code run suffered, because the second half was very similar to existing runs. A GT-less ACE run would suffer, because the first half would be very similar to existing runs. Combining both makes for an awesome and unique run.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Those are some pretty sick routes. About as sick as that poor monkey is going to get. Yes vote on both submissions.
m00
Post subject: Re: Seemingly everyone hates c++
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
antd wrote:
Can anyone recommend a language that will enable me to learn more, build general desktop apps, and perhaps complement python?
To "learn more", C or even assembler will certainly force you to help you to learn more about the inner workings of your computer. Which is a good skill to have if you ever need to debug a binary third-party-dll, an emulator rom or similar. Understanding the basics is also important if you ever need to really really optimize some algorithms. That being said, if all you ever want is some simple desktop apps, it's doubtful whether these skills are worth learning.
EEssentia wrote:
[Qt] Partly because it requires its own IDE which is garbage
The garbage part is debatable, the requirement part is simply false. Their IDE is a pretty recent thing, and most Qt devs would continue to use something else until it matures enough.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
I guess using the special charge beams to get rid of PBs has been considered, but rejected because it'd introduce another pause menu?
This is solved by using x-ray and starting the charge while x-ray is active.
Wait, do you even have x-ray at that point? AFAIK GT code doesn't give it to you. Do you keep it if you picked it up on your way to GT, or is there another trick up your sleeve?
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Cpadolf wrote:
EDIT: Also the game will be paused for 110 frames and move forward ~60-61 frames between every pause, so it's very slow. I think in this run health should last till about the pre lava dive room before the pause abuse would start to take place.
Hmm.. you take about 10 energy of heat damage per second, which means that saving 100 energy ~ 600 frames of gameplay ~ 1100 frames ~ 18 seconds of pause menu. I'm glad the 6 second item jingle for an additional e-tank is shorter.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Eye Of The Beholder wrote:
I'm not familiar with the pause glitch. Is there any example of it working? Would it just allow Samus to travel through the heat areas wasting less health?
The pause menu slowly fades in and out. During the fading animation, you can still move samus for a while, but the game won't go to the "Game Over" screen until the fading animation is finished. So you can stay at 0 energy forever as long as you keep fading in and out of the menu. Since your energy cannot go below 0, you're basically invincible for as long as you want, and all you need to do is to eventually gain 1 energy back. The downside is of course that all that menu fading is tedious and boring and wastes a lot of realtime, especially if you want to use it from entering norfair until reaching GT.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Cpadolf wrote:
From what I can understand it seems like the room conditions have to be pretty specific in order to achieve total control, what are the chances that these conditions can be met in a reasonable time in a room somewhat close to GT?
The way I understand the awesome writeup, the OAM method hinges on finding a sprite with the third byte 0x42 or 0x3e. You can run around with a memory watch and look for either of those values to appear at $402 in different rooms. http://patpend.net/technical/snes/snes.txt explains those bytes:
|   0     Byte   0             xxxxxxxx           x: X-location.             |
|         Byte   1             yyyyyyyy           y: Y-location.             |
|         Byte   2             abcdeeeC           a: Vertical flip.          |
|                                                 b: Horizontal flip.        |
|                                                 c: Playfield priority.     |
|                                                 d: Playfield priority.     |
|                                                 e: Pallete #.              |
|         Byte   3             CCCCCCCC           C: Character data.         |
Palette, Playfield priority and Character data are probably hardcoded per sprite. So 6 bits of "random" data with 2 valid values, if you want to talk about chances then I'd say only 1 in 32 sprites qualifies as a candidate. Once you found a usable sprite, you need to get it at the correct screen position with the correct flip bits set. Vertical flip must be 0 for both values, which is good. Horizontal flip must be 1 for 0x42, 0 for 0x3e. Depending on the sprite, if it cannot be flipped, move on. Now you have to move it into the correct screen position. If the sprite doesn't move and/or the room doesn't scroll, that may be difficult. Last, the sprite has to be at the correct index in the sprite list, so it appears at $400. I couldn't find any reference to that address, so I'm not sure how far down the list that is. But in a room with few sprites, if you cannot add enough sprites via beams and/or bombs, that may be a problem. And we don't know if the order of the sprites can be manipulated in a meaningful way - are they ordered by screen position, by playfield priority, by something entirely different? Understanding the OAM algorithms would probably make this way easier. /edit: apparently, I'm too slow.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
As promised, here's my proof: Requirements:
  • every natural number has a sum of distinct fibonacci numbers, as generated by the greedy algorithm
  • F(1) + .. + F(k-1) = F(k+1) - 1
Let's assume that F(k), k > 2 is the first fibonacci number we're trying to remove. Show that all numbers can still be represented with F(1) .. F(k-1) and F(k+1) and beyond. In no particular order:
  • 1 .. F(k) - 1: using the greedy algorithm, since all required numbers < F(k) are available
  • F(k): F(k-1) + F(k-2), possible
  • F(k+1) - 1: Using F(1) + .. + F(k-1) = F(k+1) - 1, we know that the sum of all usable numbers smaller than F(k+1) is just barely large enough to reach the highest value we need.
  • F(k) + 1 .. F(k+1) - 1: by taking all summands up to F(k-1) (sum F(k+1)-1), then removing the summands contained in a sequence for 1 <= b <= F(k)-1, we can construct sums from [F(k+1)-1] - [1] to [F(k+1)-1] - [F(k) - 1]. The sequences for b exists per the first bullet point. The lowest number representable with this method is [F(k+1)-1] - [F(k) - 1] = F(k+1)-F(k) = F(k-1), which is lower than F(k) + 1, so this whole interval can be represented.
  • F(k+1): is available as a number, and is thus its own sum.
  • beyond F(k+1): we use the greedy algorithm to get our number below F(k+1), then use the modified strategies for the remainders above.
So, removing any number with k > 2 is possible, and we already know that F(1) = F(2) = 1 can be removed. The third bullet point above is interesting: once we removed a number, we can not remove any higher number F(j), j > k, ever, because we wouldn't be able to represent F(j+1) - 1.
m00
Tub
Experienced Forum User
Joined: 6/25/2005
Posts: 1377
Looks solid and understandable. Unfortunately, I'm afraid thatguy has already run off with the star. Sorry! ;)
m00