(Link to video)

Categories

  • 100% completion
  • Heavy luck manipulation
  • Forgoes save data corruption
  • Corrupts memory
  • Major skip glitch
  • Heavy glitch abuse

Game Objectives

  • Emulator used: BizHawk 2.2.2
  • Aims for fastest completion time.
  • Catches all 151 Pokémon as quickly as possible.
  • ...like, really, really quickly.
  • Does not modify Pokédex flags
  • Does not use arbitrary code execution.
  • Is really boring.

About the run

Some terms or concepts used in the TAS (such as Cooltrainer) have been explained in the previous submission by MrWint. The justification for platform choice and version choice, and explanation of luck manipulation are mostly the same as the current "warp glitch" submission by gifvex, except that Blue version is used over Red version as it manipulates the required trainer ID faster than Red version, factoring in time lost from Blue version's slower preset player name.

Intro

  • Soft reset is pressed 15 times. 16 inputs are required to perform a soft reset and each delays 1 frame. The delays are used to manipulate the trainer ID and allow a soft reset later with just 1 input.
  • A trainer ID of 0xbe05 is manipulated. The bytes are aligned in memory in the expanded item pack where 0xbe is the quantity of some Master Balls and 0x05 is a Town Map item.
  • The player is named the preset BLUE name. The name does not appear enough times before fastest text speed (0 frames per character) is acquired to be worth naming 1 character.
  • The rival is named ",./xox". Each pair of characters corresponds to an item and its quantity in the expanded item pack. The items are TM44 x242, TM43 x183, and BLUE x183. TM44 x242 is merely filler to reduce lag caused by glitched item names, but the TM43 item and BLUE x183 are necessary for the main farming glitch.

Pallet Town

  • Charmander is chosen as the starter Pokemon. DVs (values used to calculate stats) of exactly 0x1024 are manipulated. Charmander has a fast battle for both rival and Weedle.
  • The rival battle is lost because the rewards are not needed. Four 1/256 growl fails from Charmander and three 1/39 damage roll Tackles (+ one non-1/39) from Squirtle are manipulated.
  • Battle animation is ON and saves 30 frames over OFF. The Poke Ball animation costs 10 frames, but each Tackle animation saves 10 frames over a fixed delay when animations are off.

Viridian Forest

  • Options are set in the gate before the forest. Menu speed varies by map and the gate is the best available before Weedle. The menu also skips a 2 frame delay in movement.
  • Weedle is defeated with a combination of four 1/39 damage rolls and four critical hits. Charmander wins the battle with 40/40 Growl PP and 30/35 Scratch PP in order.
  • The cursor is moved to SAVE now because directional inputs are disabled later.

Pewter City

  • An antidote was picked up in Viridian Forest and 5 more items are bought to reach 6 items. Three Poke Balls are used to catch Pokemon and an Escape Rope ends up in slot 6.
  • A trigger causes dialogue with the Brock fan, but the start menu is able to be buffered before the cutscene movement begins. The game is saved and soft reset.
  • After more dialogue, movement is able to be buffered before the trigger catches the player again, and allows the player to pass the Brock Fan before Brock is defeated.
  • The Brock Fan is talked to from the right and invalid cutscene movement data is read that enables walk through walls. The game attempts to find the player's coordinates in memory and load the appropriate data, but (y:16, x:36) is not defined by the game. It finds 0x1024 in Charmander's DVs and loads data from 0x1E28 due to Charmander's move PP.

Cerulean Cave

  • A Ditto is caught and swapped to slot 1. When a transformed Pokemon swaps its first move with a slot it does not have, it will swap move ID 0x00 into the first slot, known as "Cooltrainer".
  • Cooltrainer's invalid name can cause a buffer overflow that copies saved screen data over enemy Pokemon data. This is done to turn a wild Pokemon into MissingNo. and catch it using the screen data saved when opening the party menu. The buffer overflow also sets an audio fade-out value that causes MissingNo.'s Pokedex jingle to be skipped.
  • MissingNo.'s invalid seen flag sets bit 7 of the item quantity in slot 6. The Escape Ropes went from a quantity of 1 to a quantity of 129 and 2 are tossed to unset bit 7.
  • MissingNo.'s Pokedex entry never unsets the flag to flip sprites horizontally. This affects Cooltrainer, so Ditto's summary is viewed because the page unsets the flag.
  • Cooltrainer is activated again with screen data saved when opening the item menu. This MissingNo. catch sets bit 7 again and the Escape Ropes now have a quantity of 255.

Obtaining Item Underflow

Note that the remaining sections make heavy use of the pokered disassembly labels. Each time a new label is mentioned or referenced much later than previous references, the address in square brackets will be listed next to it.
  • Item Underflow is obtained via the "Dry Underflow" method. Escape Rope x43 is created as a side effect to save a quantity toss later.
  • The Use/Toss Menu is brought up to fix the item menu's cursor bounds (set to 1 during Item Underflow), which is currently set so that the cursor can move to at most the second item before scrolling the menu. Not resetting this value would cause the game to render more of item 0x00 (referred to as []j.) which the name lookup causes enough lag to be slower than bringing up the Use/Toss Menu.
  • Escape Rope x43 is swapped into the 9th slot. The 43 (0x2b) represents the lower byte of a pointer used for the main farming glitch.
  • The []j. item below is swapped with a TM43 in the Rival Name Underflow memory section. This forms the pointer 0xf32b, which points to the quantity of the third and last 0xff item (CANCEL).
  • The Options item ([]j. x129) is swapped with the Palette item (Old Amber x0), setting the delay between printing letters to zero.
  • One Master Ball is tossed from Master Ball x3, setting the Last Outside Map warp location to 2, the internal ID of Pewter City.
  • Full Restore x77 is swapped with item 0x7d to reduce lag later on. Item 0x7d belongs to a family of items known as TMTRAINER items, which their names are not properly terminated and read from a backup of the screen tiles, causing considerable lag.
  • []j. x255 is swapped with Moon Stone x10. This sets the source of the value copied to wWalkCounter [0xcfc5] to 0 during the buffer overflow used in the main farming glitch.
  • []j. x1 is tossed from the []j. x255 stack so that the buffer overflow, terminated by 0xff, does not end prematurely.
  • An HM03 is swapped with item 0x9e (4 8 4 8). This does two things: preserves an HM03 for later to be swapped with an unavoidable HM03 x255 that appears when warping to Pewter City, and removes an undesirable TMTRAINER item which would have to be swapped out later anyway to avoid generating lag during the main farming glitch.
  • A Master Ball x4 is swapped out from the game's warp entries and placed in a location that would cause the internal ID of Master Ball (0x01) to be copied to wIsInBattle [0xd057] during the main farming glitch.
  • []j. x1 is tossed from a []j. x0 (corresponding to wEnemyBattleStatus3 [0xd069] for the buffer overflow) to get []j. x255, which sets the end terminator of the buffer overflow.
  • The inventory is wrapped around to reach the start of the inventory, which happens due to the game using 8-bit addition to determine offsets for scrolling menus. Tossing a []j. x0 to reset the cursor to the start of the inventory was found to be slower due to additional lookups of the []j.'s item name.
  • CANCEL x2 is tossed from the third CANCEL's quantity to set it to 0xfe, representing a mart for the game's text ID engine.
  • Exiting Cerulean Cave wrong warps us to Pewter City.
  • Escape Rope x255 is swapped into the map's text pointer. Escape Rope x12 is tossed from Escape Rope x255, giving us Escape Rope x243 which points to 0xf31d.
  • Town Map x255 is swapped with the Town Map generated from the trainer ID to get rid of the 0xff quantity value.
  • The Current Map item is swapped with item 0xae (BLUE), corresponding to Indigo Plateau's Pokémon Center. This allows us to access a PC to change boxes during the main farming glitch, while not generating 0xff bytes upon loading a new map due to a lack of South and East Connections. If the setup was done in an indoor map with no connections, then we would have to toss CANCEL items which is slower as it resets the inventory to the top of the menu.
  • Master Ball x190 (quantity generated from TID) is swapped with Town Map (item ID generated from TID). The item ID of Master Ball corresponds to flags handling print delays, which the whole value requires bit 0 set and bit 1 reset for faster text delay. If bit 0 is reset, then text is forced to display at one frame per character, while if bit 1 is set, then text placed through the "text string" engine (e.g. PC menu options) would be delayed.
  • Master Ball x190 is swapped into a location where its quantity corresponds to wEnemyMonSpecies2 [0xcfd8] for the buffer overflow.
  • The bottom HM03 is swapped with the top HM03 to get rid of the 255 quantities.
  • The player moves to (y:9, x:16), to be able to interact with the now (invisible) sign-turned-mart vendor.
  • With the aforementioned item manipulation, the mart list overflows into other memory regions, allowing us to efficiently catch the remaining 148 Pokémon. Pokémon Storage System boxes are changed every 20 Pokémon (22 for the first round) using the Indigo Plateau PC at (y:07, x:15).
  • Once all remaining 148 Pokémon are captured, all party Pokémon except Ditto are deposited into the PC to save time on the Hall of Fame cutscene.
  • The player walks two steps down to prepare for a fast Hall of Fame warp.
  • TM40 x198 is swapped with Town Map (quantity representing the map ID for the map's north connected map).
  • TM40 x80 is tossed from TM40 x198, giving us TM40 x118, which the quantity corresponds to the Hall of Fame map ID.
  • Parlyz Heal x0 is swapped with HM05, setting the player's y-coordinate to 0 (quantity representing the player's y-coordinate).
  • The player walks up into the Hall of Fame. The two steps down taken earlier were necessary to put the player in a location where the player could walk upwards.

Major Terminology/Concepts

Quantity 255

When the game has to completely remove an item from the inventory, it shifts the items below in order to fill up the empty item slot, until it reaches the end of list terminator (marked as CANCEL). If an item with a quantity of 255 is below the tossed item, then the game mistakes the quantity of 255 for the end of list terminator and stops shifting the remaining items upwards. This leads to interesting side effects such as duplicating the 255 quantity item, or having another item represent the cancel button (despite not actually being the 0xff item). While the former effect makes obtaining the farming setup faster, the latter effect is relevant in obtaining Item Underflow.

Item Underflow/Dry Underflow

When the game merges two same items via swapping, it checks if the on-screen menu needs to be resized (note that this only refers to the current four items shown on screen). If the resulting list length is one, then the menu should be resized to 01 (only being able to use the first item). However, if a merge was somehow accomplished so that the resulting list length is zero (or any other value), then the menu is not resized. In normal gameplay, this does not matter as it is impossible to merge two items with only one item in the inventory. However, by having a non-CANCEL item act as the cancel button, we can merge two items together while having only one item in the inventory. By doing this twice, we can underflow the number of items in the inventory to 255.

LWA (Lucky Wins Again)

LWA, or "Lucky Wins Again" (poking fun at my successful attempts of finding new ways to break the Gen 1/2 glitched speedruns) is the main farming glitch used to catch the remaining 148 Pokémon in the game. The glitch abuses the capability for a mart to create a buffer overflow. When a mart is loaded, the game copies the list to wItemList [0xcf7b], terminated by 0xff. Therefore if we were to create a mart that has a terminator much later than expected, the copied data would overflow into unrelated memory. By controlling the buffer overflow, we can overwrite five main variables allowing us to catch Pokémon at a very fast rate. These variables are:
  • wEnemyMonSpecies2 [0xcfd8]: Read from when catching enemy Pokémon and is used to determine the resulting Pokémon caught, regardless of other similar variables.
  • wIsInBattle [0xd057]: Writing a value of 1 to this address allows throwing Poké Balls outside of battle.
  • wCurOpponent [0xd059]: Starts a battle if this value is non-zero. Must be kept as zero to prevent battles from being generated.
  • wBattleType [0xd05a]: Indicates if this is a non-standard battle (Old Man battle or Safari Zone battle). Must be kept as zero to prevent thrown Poké Balls from glitching out.
  • wEnemyBattleStatus3 [0xd069]: When a Pokémon is captured, the game sets a flag to indicate not to generate new DVs for the Pokémon. This is done in a very weird way, by setting a flag corresponding to whether the Pokémon has transformed or not, and has a side effect of causing subsequent out-of-battle captures to become Dittos (referred to as "Dittoization", and caused due to an assumption made by the programmers that a transformed Pokémon is a Ditto). Therefore, we want to clear this flag. This was the limiting factor for the efficiency of previous glitches, as the buffer overflow method used could not manage to clear this variable, requiring a battle to be completed (by running away) or a save and reset to happen. As this variable is cleared with the corruption, we do not need to do any additional steps to be able to capture more Pokémon.
Other relevant variables that are affected as a side effect of the buffer overflow:
  • wFontLoaded [0xcfc4]: Bit 0 determines whether font is loaded over the VRAM space for sprite walking patterns. Coincidentally, bit 0 is reset during the corruption, and in normal gameplay this would mean the player is transitioning to a different map via a warp, so the game assumes the LCD is disabled (allowing unrestricted access to VRAM) and directly copies the sprite walking patterns to VRAM. This saves time over if bit 0 was set, as the function to copy to VRAM while the screen is enabled would be called instead, thus wasting 5 frames (1 per sprite) every time the mart is closed.
  • wWalkCounter [0xcfc5]: Stores the remaining about of player sprite advances to perform. Longer values mean waiting more, so naturally we want to set this to zero.
  • wAudioFadeOutControl, wAudioFadeOutCounterReloadValue, and wAudioFadeOutCounter [0xcfc7-0xcfc9]: Writing a non-zero value to wAudioFadeOutControl will cause the game to start fading out audio, from the internal volume of 0x77 to 0x00 (in decrements of 0x11). This has a side effect of skipping sound effects, allowing us to bypass forced waits for certain sound effects, such as Pokémon cries. wAudioFadeOutCounterReloadValue, which reloads wAudioFadeOutCounter whenever it hits zero, is coincidentally loaded with 246 allowing for a fadeout long enough to keep the music playing until a cry is played (which sets volume to 0x33, then to 0x77).
To create this custom mart, text pointer manipulation is used. Firstly, the base text pointer is replaced to be 0xf31d (echo RAM copy of wNumBagItems [0xd31d]). From there, 0xf32f, the location where the Pewter Museum sign would read its text using pointer lookup, is manipulated to 0xf32b, which points to the earliest possible address that we can set up this glitch (anything earlier would require tossing the "CANCEL" item which requires too much preparation). At 0xf32b, we set its value to 0xfe. This causes the game to call the mart code instead, as in the text ID engine the game checks the first byte of the text to see if it matches specific values and does alternate functions based on them. In this case, 0xfe will treat the NPC (or sign) as a mart. By removing any early instances of 0xff, setting the actual terminator much later, and manipulating the expanded inventory pack to align correctly with the destination, we can create a buffer overflow that will desirably corrupt memory according to the above values to efficiently catch Pokémon.

Alternatives considered

  • Setting up another text pointer to bring up Bill's PC: The first iteration of the route had slightly better swaps and less movement, however creating a "fake" PC doesn't work out, as changing boxes from a PC that isn't accessed through the game's "hidden object" code (which also handles PCs) will result in the base text pointer being erroneously overwritten.
  • Using a single ROM based pointer to create the glitched mart: While only requiring the preparation of one pointer instead of two, there are no values in ROM that can represent a suitable pointer for the glitched mart without needing to toss the three CANCEL items at the start of the inventory for the buffer overflow to be successful.

Reasons for rejection

LWA isn't very interesting to watch and becomes boring pretty quickly, but the overall goal (catching all Pokémon) is considered 100% and is thus Vault-able. However, it could be deemed rejectable for not being entertaining enough for Moons and using somewhat arbitrary restrictions for Vault, which aims to go as fast as possible. These restrictions are in particular:
  • Does not modify Pokédex flags.
  • Does not execute arbitrary code.
Other restrictions were self-imposed during the routing of this TAS. These restrictions might not even matter towards fastest completion time as LWA may be the fastest setup anyway, although other setups that do not follow the other self-imposed have not been looked into.
  • Does not use glitches that allow executing arbitrary ROM addresses. Modifying the map script pointer (called every overworld frame) comes close to this as it allows specifying an arbitrary ROM address, but fails to completely cover the entire ROM space as only ROM banks that are used by maps can be executed. It is still not used for this TAS.
  • Does not use glitches that allow writing to an arbitrary destination. The text engine has capability to do this, using the unused command 0x03 to repoint the destination to theoretically any address, then by using the string engine to print text to the specified destination. However, it is unable to write completely arbitrary values as some values are used as "control codes" which do alternate functions that do not result in the byte being written. The invalid mart used in LWA does not fall under this as the destination address of the corruption is fixed, while the source is arbitrarily specifiable.
  • Does not use "mass corruption" glitches. Perhaps the most subjective of the self-imposed restrictions, the TAS forgoes glitches that can cause "mass corruption" (which isn't even well defined) such as party overflow (used in previous RTA speedruns of Pokémon Blue Any% No Save Corruption) or out-of-bounds Pokémon Storage System boxes, which can theoretically be used to write a massive amount of data to WRAM, albeit not entirely chosen arbitrarily. These glitches are forgone because of the general unstability of them, as well as the two mentioned "mass corruption" glitches are not easily manipulable.

Credits:

  • luckytyphlosion: Coming up with the route for the TAS and creating the LWA strategy.
  • gifvex: Botting the entire TAS and suggesting minor route improvements. He chose not to be listed as an author here, because Pokémon is primarily routing-based and LWA is [luckytyphlosion's] creation.
  • Chivu93: While he didn't participate in the making of the TAS, he improved the LWA strategy by using the Master Ball's quantity for the caught Pokémon instead of originally needing to toss a separate item for each Pokémon.
  • MrWint: Faster menuing techinique used in his "SRAM Glitch" TAS.
  • the pokered disassembly: General massive help in documenting the game's code allowing numerous tricks, including the LWA strategy, to be discovered.
  • BGB: Game Boy emulator with an amazing debugger that helped with routing out the TAS.

Noxxa: Judging.
Noxxa: This TAS spawned an interesting discussion on exactly what levels of glitchiness a run can contain while still being considered a legitimate full completion (catch 'em all) movie. Essentially, this movie sets a quite good example: arbitrary code execution and such glitches are not used, as they would break the point of being full completion, setting Pokémon capture flags through memory corruption is not counted (and isn't done), and the movie does run through the game to collect all Pokémon one by one before going to the ending, just like other runs of this category; it just does so more efficiently, cutting out gameplay time between captures and trimming down the capture sequence to its most basic form. Ultimately, it's just full completion to a highly optimized form. As such, this movie is acceptable for the Vault. The rules of the Vault have also been updated as a result of the discussion surrounding this movie, in order to define what levels of glitches are (not) allowed for full completion movies.
Since this movie is much more repetitive in achieving its goal, only relying on one major glitch to collect all Pokémon in one chain, it also can only be accepted in the Vault tier based on entertainment grounds. As such, accepting to the Vault as an improvement to the published "Gotta Catch 'Em All!" movie.
Spikestuff: Gotta Break 'Em All! PUBLISHING!... Wait... that's not how the song goes.

Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
andypanther wrote:
Just out of curiosity, Mothrayas: If someone submitted an Ocarina of Time 100% under the alternative ruleset, would you consider it legit?
I'm not going to answer this here. This question is not even remotely on topic, and there are much more relevant discussion points surrounding this submission that I rather want to have discussed.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Alyosha
He/Him
Editor, Expert player (3514)
Joined: 11/30/2014
Posts: 2713
Location: US
Extrems wrote:
Console-verified using Game Boy Interface.
Cool stuff, that Game Boy Interface is an impressive peice of work. Hopefully it opens the door to more console verified runs and research into emulation differences.
Editor, Skilled player (1158)
Joined: 9/27/2008
Posts: 1084
In the case where we allow any and all sorts of arbitrary corruption, we would- [1860] GBC Pokémon: Yellow Version "save glitch" by p4wn3r in 01:09.63 ... Ah, right. That. Suppose we disallow direct memory edit of a particular region where our Pokédex is. If we still allow ACE, then we would simply execute the lines of code in ROM that normally edits that spot of memory as appropriate, finding a code path that sets the bit and returns back to the ACE state as quickly as possible. Well, let's figure out how to define restrictions to avoid ACE. Let's avoid corrupting the stack. That thing has lots of return pointers, and probably a bunch of local variables. Messing with that messes with program flow. In case it's important, if the game stores the Stack Pointer somewhere in memory, don't corrupt that either. Let's also avoid modifying function pointers. That would almost certainly let us jump anywhere. Even if we're only pointing to another spot in ROM, it would mean we can pick and choose which code runs to some extent, which would still give an incredible amount of control where we can just run the "100%-getting" function a few times, making the 100% definition very fuzzy. In addition to the function pointers, if the game uses an index number to pick a list of functions, restricting ways to modify that would also keep "intended" code going. Obviously, if we can just put in an out-of-range number, we'd be getting out-of-range function pointers that jump to who knows where. This would probably affect using glitch items, although rearranging them is still fine. Poking in-range index values can be considered allowed for this particular restriction. If there are other methods of sending the Program Counter where it doesn't belong, assume that any such methods I missed are to be reasonably restricted in the spirit of trying to come up with these restrictions. Just in case, if the game puts code into memory and executes it there as if it were normal, do not modify that spot of memory prior to the game jumping there. Let's leave data pointers unrestricted for now, so long as inside that data aren't function pointers or other ways for the game to jump into ACE state. If the data overwrites places it shouldn't, make sure that we don't modify function pointers we come across. That shop list thing feels like a data pointer to me. With these thoughts in mind, I want to look at reasons for rejection listed in the submission. Does not use glitches that allow executing arbitrary ROM addresses. Well, my restrictions would catch this, as we're messing with function pointers or something to that extent. Modifying the map scripts would certainly allow us to jump the code and pick out what happens, basically. Does not use glitches that allow writing to an arbitrary destination. Messing with data pointers, not only that but also injecting almost any data desired. My restrictions do not stop this, except for any cases where it would write over "important memory" that I outlined above to prevent ACE. The text engine has an implemented but unused code path, should that be considered unintended execution if that special 0x03 byte is detected? Does not use "mass corruption" glitches. Another thing not caught by my restrictions -- Provided the mass corruption doesn't affect anything important, and itself doesn't run unintended spots of memory as code. Is encountering MissingNo. and that crazy glitched blotch a "mass corruption" of sorts that don't affect anything important outside of hall of fame? Or do you mean more massive sorts of corruption than that, with a good line to define? I would also like to know if there's anything my set of restrictions would have said "no" to what was done in this submission, as well as other techniques that would have gone through that wasn't done. Mostly as a point of comparison, really. I'm mostly trying to put down guidelines to help figure out which restrictions are too much or too little. TASes generally aim for some kind of perfection. We also want to be perfect in where to draw our lines, as natural for a site aiming for perfection in some form.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Before I actually read the whole thing, this is what I think. When one focuses on speed alone under certain rules (tasvideos rules in this case), this speed is what we want, as well as creativity involved into reaching that speed of game completion. As long as it obeys the rules, it's considered a speed record, and even if it's boring, we still publish it (to Vault). We can call it any%. When we talk about full completion instead of fastest completion, an extra goal gets added. But it's important to figure out the priorities. Do we want it to be just as fast as any%, with expected artifacts of full completion obtained by any cost (that fits into the same rules as any%)? Or do we want to see something additional actually achieved gameplay-wise, and only then we want it to be optimized for speed? I don't think the rules for these 2 goals are the same. We allow hacking in game ending as long as the result works the same as after legitimate ending. But when we want to see some creativity in obtaining extra stuff, we have already agreed that we don't want to see plain any%. We do not evaluate TAS merits of a full completion run by artifacts that appear in the end, we evaluate it by superplay involved in obtaining them. When we can hack such artifacts in by corrupting memory, the purpose of the category gets completely defeated. We can use "arbitrary code execution" to complete the game within the any% goals. This proves a point about absolute fastest game completion within certain rules. If from the same point we hack in full completion artifacts, what point does it prove? That you can hack them in? You obviously can, it's total control! But it's not related to actually completing anything. Now we enter gray area. Because you could ask: "Then what is so impressive in ACE speedrun in the first place? You simply hack the ending in, nothing impressive!" To answer that we keep branches that avoid game breaking glitches and still aim for any% rules otherwise. This is because Moons allow to publish such branches as long as they represent enough unique content and entertain the audience. And they are liked exactly because people are interested in "spoiler free" game completion in terms of legitimacy. Some people don't feel like runs with major skip glitches are legit, and for them we have those branches. In short: we allow 2 types on any%! Can we do the same with full completion - keep a branch that hacks in arbitrary completion artifacts and then a branch that actually achieves them through gameplay? I don't think so. Because up to the point if reaching ACE such runs would be the same, and after that point they are virtually the same as well: just stream code that sets some more bits, that's all. Such 2 runs would be too similar to co-exist as separate branches. Therefore means to get completion artifacts without obtaining them in some way don't make sense. However, this leaves us with a question: What if it's not total control? Where do we draw the glitchiness line when we judge game completion? I don't know. I need to read the thread.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Post subject: Behold: legitimacy chaos is already here (maybe)
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I've read the thread, as well as most of the submission text. WOW. I've seen some controversial cases over the years, but this one is out of this world. Pure legitimacy chaos. In a perfect world where we only care about this submission alone, it's acceptable, despite of how crazy things might get. Not using ACE, using in-game methods to actually obtain pokemons, it all makes sense and feels somewhat right. Now, what should we do with rules and policies? Let's say we simply ban ACE in full completion runs, as most of us seem to agree on. How do we ensure it's not used in a given submission? FatRatKnight's post gives a brilliant example of how unmanageable the judgment becomes: the only way to make sure none of the ACE techniques are used is reading the entire code executed by the game over the course of the movie (and beyond, up to ending). Sure, it can be done by some program. Who's making such a program, please? We can make sure ACE is present without any problems, yet it's mostly handled based on trust: the author tells us where arbitrary code is executed and how it is enabled, we look there, we find that it is true (or not). Even then effort should be invested into making sure this particular technique is legit, not an emulator bug, would work on console with some tweaks and precision if needed, etc. How do we make sure no one is silently using some of those "arbitrary" techniques that this run explicitly bans? How do we make sure none of them is used accidentally? What about ACE techniques whose application for a given game isn't known yet, but the author has discovered them and sneakily applied them here and there? What if HappyLee is using some secret ACE techniques to dig into a few walls? We've never checked! Let's look at it from the other side too. Where do we draw the glitchiness borderline when items needed are actually collected non-ACE (supposedly)? As long as an in-game routine that grants you another item is executed, it's legit? In theory, it can gradually become glitchier every time even without ACE. Let's say we keep vaulting such things as long as they don't hack the items in directly. Then what if someone makes a less glitchy run that resembles normal full completion TASes more, and it is Moons worthy? Will we allow a " 100%, no ACE, anything goes otherwise" run alongside a "100%, no memory corruption" run, just like we allow something like this for any%? Even though this run in itself is somewhat clear, I feel we'll have to resolve the above sooner or later anyway. But if you think of it, all this should be used right away to verify this submission as well!
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
I have abstained from commenting on this submission, as I do for most controversial movies, but there's one aspect of the verdict that I find a bit troubling. It looks like the rules for the Vault were updated before accepting the movie. Not commenting on the merit of the movie, it seems disturbing at an institutional level that the person in charge of judging something is capable of unilaterally changing the rules that determine how the judging should be done. Wouldn't it be more appropriate to retract this decision and create the discussion about rule changes to the Vault to see what people think of this? The way it was done it's hard to escape the conclusion that the rules were changed to legitimize the acceptance of this movie, which hampers the credibility of the judging process.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
p4wn3r wrote:
I have abstained from commenting on this submission, as I do for most controversial movies, but there's one aspect of the verdict that I find a bit troubling. It looks like the rules for the Vault were updated before accepting the movie. Not commenting on the merit of the movie, it seems disturbing at an institutional level that the person in charge of judging something is capable of unilaterally changing the rules that determine how the judging should be done. Wouldn't it be more appropriate to retract this decision and create the discussion about rule changes to the Vault to see what people think of this? The way it was done it's hard to escape the conclusion that the rules were changed to legitimize the acceptance of this movie, which hampers the credibility of the judging process.
We don't change rules in order to justify our whims. We discuss everything among staff and only update the rules when we have consensus.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
p4wn3r wrote:
I have abstained from commenting on this submission, as I do for most controversial movies, but there's one aspect of the verdict that I find a bit troubling. It looks like the rules for the Vault were updated before accepting the movie. Not commenting on the merit of the movie, it seems disturbing at an institutional level that the person in charge of judging something is capable of unilaterally changing the rules that determine how the judging should be done. Wouldn't it be more appropriate to retract this decision and create the discussion about rule changes to the Vault to see what people think of this? The way it was done it's hard to escape the conclusion that the rules were changed to legitimize the acceptance of this movie, which hampers the credibility of the judging process.
I've stated my view on the publishability of this movie in this thread, and left it open for discussion for a few days. Nobody voiced any disagreement on it. It was also discussed on IRC prior to my judgment, both among staff and in public, and got no contradictory statements there either, and updated the rules with full approval from every staff member that commented on it (including multiple judges/site admins). It was far from unilateral.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
Nobody in this thread was aware that this thread could introduce rule changes, so there was no request for an comment on this specific matter. Changing the rules affects other decisions, and you even refused to comment on the applicability to other games when requested. So, let me get this straight. This thread is appropriate for gathering feedback prior to rule changes, but is not appropriate for requesting clarification on what the rule change does to other games?
Memory
She/Her
Site Admin, Skilled player (1515)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
p4wn3r wrote:
Nobody in this thread was aware that this thread could introduce rule changes, so there was no request for an comment on this specific matter. Changing the rules affects other decisions, and you even refused to comment on the applicability to other games when requested. So, let me get this straight. This thread is appropriate for gathering feedback prior to rule changes, but is not appropriate for requesting clarification on what the rule change does to other games?
Uh... it's always been the case that rule clarifications can be discussed on workbench threads. There's been plenty cases recently where this has happened, like Super Mario 4 and Math Blaster. The OOT question gave no details and was not really worded in a way that would be interpreted to a wider variety of games. It was just "would these random RTA rules fit".
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
I read a bit of the Math Blaster thread and it's the exact opposite of what you're implying it is. Essentially, a judge decides something and people protest after many pages demanding to reconsider the rule. Then the rules get changed, the dicussion is acknowledged in the change, the decision retracted and the judge casts a new verdict. No problems in the process. Here no one was complaining that the rule is messed up and it gets changed with no mention to any discussion at all in the first decision, so I don't think the case you're referring to applies here.
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
p4wn3r wrote:
Here no one was complaining that the rule is messed up
This post asked for clarification on how the rules should deal with this movie, and if the rules should be modified. I then replied to that post with my interpretation/stance, which was the driving force of the discussion for the rest of the topic. After my interpretation/clarification post, nobody disagreed with said clarification. So I applied it to the rules, after getting a consensus with all staff members involved in the discussion.
p4wn3r wrote:
and it gets changed with no mention to any discussion at all in the first decision
The decision explicitly mentions the "discussion surrounding this movie". That encompasses both this forum topic, and the talks about it on IRC. That said, I don't even see what the issue is here. I should have rejected this movie first for unclear/bad reasons, before updating the rule and accepting this movie?
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
The issue is: a judge does not change the law, never. This violates the principle of separation of powers. Although you are entitled to your interpretation of the rules (a good thing), another, very different is to change them to state your interpretation, because that imposes your interpretation further down. To me the issue is not obvious. If someone accuses me of something and I defend myself saying I did not break the rules and a moderator tells me he updated them and I am banned. Essentially he's saying he can do anything, for any reason. What I have think you should have done is state that the current text is not appropriate and would make you cast a bad decision, and request the change explicitly. Then, only after theach following discussion, if the staff approves in a transparent way, give the verdict.
Memory
She/Her
Site Admin, Skilled player (1515)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
That would be true if websites had to be democracies, which they don't. This was clearly a case that needed extra clarification in vault rules. People discussed these rules and agreed to it. Some of the discussion took place in this thread. Other discussion took place on IRC. Moth didn't go out of his way to change the rules to make it so this submission can be accepted.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
p4wn3r wrote:
The issue is: a judge does not change the law, never. This violates the principle of separation of powers.
Is TASVideos suddenly a country?
p4wn3r wrote:
What I have think you should have done is state that the current text is not appropriate and would make you cast a bad decision, and request the change explicitly. Then, only after theach following discussion, if the staff approves in a transparent way, give the verdict.
Is it just your thoughts, or some approved set of meta-rules TASVideos has been obeying for all these years? Because from what I've seen, this is exactly what happened, just without imposing all those formalities you pretend we have.
p4wn3r wrote:
and request the change explicitly
Request it from whom? Moth is an admin and a senior judge.
p4wn3r wrote:
I read a bit of the Math Blaster thread and it's the exact opposite of what you're implying it is. Essentially, a judge decides something and people protest after many pages demanding to reconsider the rule. Then the rules get changed, the dicussion is acknowledged in the change, the decision retracted and the judge casts a new verdict. No problems in the process.
It took so long to fix the rules because there was disagreement among staff members (and among users). Here, no disagreement was present. Do you disagree with the updated rules? Do you think the movie would have been judged differently by the older rules?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
feos wrote:
Is TASVideos suddenly a country?
Indeed, it is not. However, I should tell you that I have never seen any serious institution that gives someone simultaneously the power to enforce and change the rules without some due process, which you refer later as "those formalities". You can of course disagree, indeed a member seems to be discontent with democratic ideas. In any case, if you don't sympathize with it either, I suggest that you specify how seriously you take your own rules in the Front Page, it would save the members the trouble to figure out how things really work.
feos wrote:
Is it just your thoughts, or some approved set of meta-rules TASVideos has been obeying for all these years? Because from what I've seen, this is exactly what happened, just without imposing all those formalities you pretend we have.
As I said previously, it was my expectation for any place that wishes to be taken seriously, which I assumed were commonplace. Also, most of the time it's the practice of formalizing that stops abuses. For example, I was in a student union where there were elections, and it was required that the exact date and time of the election should be published in a given manner that made it easy for all students to see, and that it should stay there for a given period, because there were cases where the guys in power would suddenly say that the election was the next day at 2 in the morning, and only his friends would go to vote. After the formalism, it stopped.
feos wrote:
Request it from whom? Moth is an admin and a senior judge.
From the community, why not? If the input does not matter, why don't you request that the Workbench be abolished, while we're at it? Just tell people to send emails to the judges and things show up published.
feos wrote:
It took so long to fix the rules because there was disagreement among staff members (and among users). Here, no disagreement was present. Do you disagree with the updated rules? Do you think the movie would have been judged differently by the older rules?
Abscence of disagreement does not imply agreement. And also, could you clarify to me why you think discussions in IRC are a transparent way of discussing rule changes? I will not comment on the specifics of the judging of this movie, because in my eyes it was just a bad decision from Moth to do it the way he did, and my points have only to do with the "formalities" that you don't seem to like.
Judge, Skilled player (1275)
Joined: 9/12/2016
Posts: 1645
Location: Italy
p4wn3r wrote:
I read a bit of the Math Blaster thread and it's the exact opposite of what you're implying it is. Essentially, a judge decides something and people protest after many pages demanding to reconsider the rule. Then the rules get changed, the dicussion is acknowledged in the change, the decision retracted and the judge casts a new verdict. No problems in the process.
Let me clarify: the reason why I decided to give a second chance to the Math Blaster submission was not because "people protested", but instead because I found the arguments brought from a person (in this case feos) to be worthy of being considered, as I wrote in the judgment notes. It's not a matter of how many people protest and how hard they protest, it's a matter of how valid and useful are the argument they bring, may it be from staff people or regular users. And by the way, the rule for educational games didn't get changed, but clarified.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
p4wn3r wrote:
However, I should tell you that I have never seen any serious institution that gives someone simultaneously the power to enforce and change the rules without some due process, which you refer later as "those formalities". You can of course disagree, indeed a member seems to be discontent with democratic ideas. In any case, if you don't sympathize with it either, I suggest that you specify how seriously you take your own rules in the Front Page, it would save the members the trouble to figure out how things really work.
We are able to discuss things before enforcing and changing. And we are able to express disagreement with how the rules were changed. The discussion did happen. No disagreement was present before, during, or after the rule change. What else do you want from people who are able to discuss things before, while, and after changing the rules?
p4wn3r wrote:
As I said previously, it was my expectation for any place that wishes to be taken seriously, which I assumed were commonplace. Also, most of the time it's the practice of formalizing that stops abuses. For example, I was in a student union where there were elections, and it was required that the exact date and time of the election should be published in a given manner that made it easy for all students to see, and that it should stay there for a given period, because there were cases where the guys in power would suddenly say that the election was the next day at 2 in the morning, and only his friends would go to vote. After the formalism, it stopped.
How many cases of judge power abuse at tasvideos can you list?
p4wn3r wrote:
From the community, why not? If the input does not matter, why don't you request that the Workbench be abolished, while we're at it? Just tell people to send emails to the judges and things show up published.
Quote input pieces that didn't matter.
p4wn3r wrote:
Abscence of disagreement does not imply agreement.
Absence of ice-cream doesn't imply elephants. Quote disagreement that you evidenced regarding sanity of the updated rules.
p4wn3r wrote:
And also, could you clarify to me why you think discussions in IRC are a transparent way of discussing rule changes?
Because it is a way to collect all the relevant staff members in one place and discuss things in real time. And you are probably underestimating discussion abilities of other members that are present on IRC. The #tasvideos IRC channel is a public and transparent discussion environment by its nature.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
feos wrote:
p4wn3r wrote:
and request the change explicitly
Request it from whom? Moth is an admin and a senior judge.
Moth did propose some rule elaboration and requested from me that I accept it. I did.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
feos wrote:
How many cases of judge power abuse at tasvideos can you list? Quote input pieces that didn't matter. Quote disagreement that you evidenced regarding sanity of the updated rules.
I am not sure if this is trolling on your part, but you are repeatedly ignoring what I am saying. I am not making any particular accusation against any member of the staff from this site. I am simply saying that usual procedures for something important such a rule change were not followed, namely stating clearly that the text needs updating and invite the community to discuss. I have been a judge in competitions and I have seen two issues. The first was that one judge arrived at the hotel drunk in the company of one of the female competitors after leaving a party. This case was followed by an accusation which caused him to be immediately dismissed and his grades invalidated. Another one was when the coaches complained that some judges were looking at the smartphones during the competitor's presentation. My objection is more like the second case. It is not a grave accusation, but just as it is not acceptable to ignore a presentation you should evaluate and look at your smartphone during it, it is also not acceptable to state in a verdict that you changed the rules. All these things make it look like you're not doing your work properly. In any case, at that time all judges agreed that using smartphones was not appropriate and there were no further issues. Coming up with lame excuses and ask repeatedly irrelevant questions to discredit the complainer does not help your case and just gives the impression that you don't want to be accountable for what you are doing. It saddens me that you, as a judge, do not recognize the importance of procedures.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
It saddens me that you repeatedly ignore the fact that all the needed methods of making sure it's the right decision were used before officially establishing it. It saddens me that you ignore the actual intellectual work we do to handle judgments properly. It saddens me that you blindly call our reasons lame excuses. It saddens me that you invent arbitrary requirements and cargo cults. It saddens me that you switch to personal accusations. It saddens me that you have zero arguments regarding the actual topic at hand.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Memory
She/Her
Site Admin, Skilled player (1515)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
p4wn3r wrote:
In any case, at that time all judges agreed that using smartphones was not appropriate and there were no further issues. Coming up with lame excuses and ask repeatedly irrelevant questions to discredit the complainer does not help your case and just gives the impression that you don't want to be accountable for what you are doing. It saddens me that you, as a judge, do not recognize the importance of procedures.
It would be one thing if multiple people had a problem with it. I'm not a judge and I don't have a problem with people running things this way. I think you're the one with the lame excuses and not the judges, sorry.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Editor, Skilled player (1158)
Joined: 9/27/2008
Posts: 1084
I will add my voice in disagreeing with p4wn3r. Sorry, I'm just not seeing your angle. Is the majority of the visible community here also at fault? I have seen no conflict arisen in the process here. It was discussed in multiple areas, just not collected in this one topic. There is a mention that the rules have been updated in light of this submission in the judging notes, and there still hasn't been any disagreements I can spot since the update. I can see a disagreement with the visible process (brought up by p4wn3r), but still nothing about the updated rule itself. I do not recognize the importance of this detail brought up. I've seen nothing challenging the new rule itself, only the fact it was changed. I personally see the rules adjustment more as a clarification of what is generally assumed than an actual change. Rules are made. Submissions test against these rules. These tests reveal previously glossed over details. It is my impression that every single thread in this Workbench is an opportunity to change the rules, not to enforce them blindly.
Joined: 8/1/2006
Posts: 428
Is there a reachable memory address you can poke to turn "someone's PC" into "Bill's PC"? Even at a text display speed of 1 character per frame, shortening the PC name would save 7-8 seconds. (E): Disregard if the game displays entire lines or boxes in one frame. The longer text does result in extra lines, but not extra boxes, and therefore the time saved would be negligible.
Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host
EgixBacon
He/Him
Player (181)
Joined: 4/15/2013
Posts: 331
Location: In the attic
Okay... if someone ever invents a way for people to meet their past selves, remind me to show the encode of this TAS to six-year-old me. Then again... I'll admit, the first ~10 minutes of this were quite an experience to watch. My thoughts were quickly jumping from "Don't try this at home, kiddies," to "Oh my God what the flying floof is happening?!" ... Aaaaand then it just gets boringly repetitive. Which means that this gets only a weak Yes from me.
FanFiction|Youtube Still on Win7! Take that, Microsoft!