ZSR Forums

=> Ocarina of Time => Topic started by: Bonooru on February 21, 2012, 06:40:25 PM



Title: Rethinking Completion Requirements
Post by: Bonooru on February 21, 2012, 06:40:25 PM
Does getting to the credits via wrong warping actually count as "completing" the game? It seems to me that sequence breaking into the credits is a neat trick but you haven't completed the game so it shouldn't count. Analogy super fun time: If you are trying to read a book as quickly as possible being completely ok with skipping bits along the way, do you jump to the last page or do you read the acknowledgements at the end? you read the last page not the acknowledgements.

I guess that the point that Im trying to make is that I think that the final credits cutscene is the acknowledgements (giving the people who helped make the game credit, you know like credits...) and not the true end of the game. I think that the game ends when you beat ganon, that is the last significant thing that the player does in the game and so it ends the game. The cutscene afterwards is just a bonus to wrap up the story.

*prepares to dodge the incoming wave of dissent


Title: Re: Is wrong warping to the credits completing the game?
Post by: D U F I on February 21, 2012, 06:55:22 PM
lol


Title: Re: Is wrong warping to the credits completing the game?
Post by: Slowking on February 21, 2012, 06:57:31 PM
no! I will not have this discussion here, too!


Title: Re: Is wrong warping to the credits completing the game?
Post by: aleckermit on February 21, 2012, 07:01:37 PM
The goal of Any% has always been to reach the credits cutcene. The only reason "Beat Ganon" has been a phrase used for finishing the game is because we didn't think it was possible to skip Ganon.


Title: Re: Is wrong warping to the credits completing the game?
Post by: RingRush on February 21, 2012, 07:43:26 PM
Casual Angle of Attack: Is the introduction part of the game? I think many speedrunners and most casual players think the game starts at the beginning of the intro. Why then would the run not terminate at the end at the ending of the outro? Time stopping at Ganon was because that was a direct and convenient representation of your final time (and partially it was a remenant of SDA timing, where what matters is first and last non-cutscene input that takes you to the end of the credits).

Technical Angle of Attack: Remember how we use glitching because we don't care about what people "think" is playing the game? We will skip to the ending because we don't care about what people "think" ends the game. I don't understand how people can argue that Ganon is the ending over a screen that EXPLICITLY SAYS "THE END". How is this up to interpretation? THE END is the end. It maybe anticlimactic, and it may not "feel right", but we don't care about what "feels right" (like seriously, does RBA "feel right" to anyone?)

WARNING: TECHNICAL STUFF AHEAD

I copied this post from TASVideos. It was from a thread on Super Mario World, which was completed in a similar way (jump to The End screen using glitchs).

Quote
No you can not move Mario. The game no longer is in a level, it it has changed its mode of processing entirely. In this glitch the game mode is changed to #$26 (as I explained like three times now). But let me bring the actual code into this now:

First lets talk about how SMW actually processes its game loop. There is a small infinite loop that basically checks if NMI has run, and once it has it will run a routine called "RunGameMode". So lets take a look at the game loop:


GameLoop:
        LDA $10                       ;$00806B        |\ Main wait loop
        BEQ GameLoop                  ;$00806D        | | $10 is set in NMI to $00
        CLI                           ;$00806F        | | Enable interrupts
        INC $13                       ;$008070        | | Increment frame counter
        JSR RunGameMode               ;$008072        | | Run the game
        STZ $10                       ;$008075        | | Clear $10
        BRA GameLoop                  ;$008077        |/ Back to the wait loop



As you can see, the game simply runs in an infinite loop. So the real important thing to us is what happens in the different game modes. So lets take a look at the routine next.


RunGameMode:
   LDA.w $0100                   ;$009322        | Load the current game mode
   JSL ExecutePtr                ;$009325        | Call the execute pointer routine



Simple enough, So what does this mean? It means there are a series of pointers that control game execution.

So here are the important game mode pointers to us, I have snipped non-important ones.


*snip*
dw InLevelGameMode                    ; 14 - In level
*snip*
dw CODE_009F6F                        ; 26 - Fade to the end
dw CODE_00963D                        ; 27 - load the end
dw CODE_009F7C                        ; 28 - Fade in to the end
dw Return00968D                       ; 29 - END (last game mode in SMW)



In game mode 14 is when you are controlling Mario and the level is executing as normal. The code for game mode 14 is huge, I won't torture you with that unless you want to see the code for it.

Game mode 26 is the code there the game will fade out to enter F-Blank (brightness of 00 with the negative bit set) in preparation for game mode #$27 to upload graphics.


CODE_009F4C:
        LDA.w $0DAE                   ;$009F4C        |\ Calculate the current brightness step
        CLC                           ;$009F4F        | |
        ADC.w DATA_009F2F,Y           ;$009F50        | |
        STA.w $0DAE                   ;$009F53        |/ Store the current brightness ($2100 mirror)
        CMP.w DATA_009F33,Y           ;$009F56        |\ If the brightness has not reached the desired brightness
        BNE CODE_009F66               ;$009F59        |/
        INC.w $0100                   ;$009F5B        | Increment the game mode (putting you at game mode #$27)
        LDA.w $0DAF                   ;$009F5E        |\ Flip the Mosaic/Fade direction
        EOR.b #$01                    ;$009F61        | |
        STA.w $0DAF                   ;$009F63        |/
CODE_009F66:
        LDA.b #$03                    ;$009F66        |\ Copy the mosaic mirror to the mosaic register
        ORA.w $0DB0                   ;$009F68        | |
        STA.w $2106                   ;$009F6B        |/
Return009F6E:
        RTS                           ;$009F6E        | Done with game mode 26

CODE_009F6F:
        DEC.w $0DB1                   ;$009F6F        |\ Keep the current game mode active
        BPL Return009F6E              ;$009F72        | |
        JSR KeepModeActive            ;$009F74        |/
CODE_009F77:
        LDY.w $0DAF                   ;$009F77        |\ Load the current Mosaic/Fade direction
        BRA CODE_009F4C               ;$009F7A        |/ Branch to an earlier portion of code



Game mode #$27 is where the actual graphics are uploaded. This game mode simply prepares the screen in F-Blank.


CODE_00963D:
        JSR CODE_0085FA               ;$00963D        | Turns off IO and does some DMA
        JSR Clear_1A_13D3             ;$009640        | Clean RAM $131A to $13D3
        JSR SetUpScreen               ;$009643        | Do some screen setup
        JSR CODE_00955E               ;$009646        | Upload the layer graphics to VRAM
        LDA.b #$19                    ;$009649        |\ Set some screen properties(such as palette settings)
        STA.w $192B                   ;$00964B        | |
        LDA.b #$03                    ;$00964E        | |
        STA.w $192F                   ;$009650        | |
        LDA.b #$03                    ;$009653        | |
        STA.w $1930                   ;$009655        |/
        JSR UploadSpriteGFX           ;$009658        |\ Upload the palette and graphics
        JSR LoadPalette               ;$00965B        |/
        LDX.b #$0B                    ;$00965E        | Load the loop index
CODE_009660:                          
        LDA.w TheEndPalettes,X        ;$009660        |\ Do some palette corrections
        STA.w $08A7,X                 ;$009663        | |
        LDA.w DATA_00B71A,X           ;$009666        | |
        STA.w $08C7,X                 ;$009669        | |
        LDA.w DATA_00B726,X           ;$00966C        | |
        STA.w $08E7,X                 ;$00966F        | |
        DEX                           ;$009672        | |
        BPL CODE_009660               ;$009673        |/
        JSR CODE_00922F               ;$009675        | DMA the palettes to CGRAM (they were in mirrors before)
        LDA.b #$D5                    ;$009678        |\ Set and load a layer three image (THE END text)
        STA $12                       ;$00967A        | |
        JSR LoadScrnImage             ;$00967C        |/
        JSL CODE_0CAADF               ;$00967F        | Copy some sprites to OAM (the characters)
        JSR CODE_008494               ;$009683        | Run the OAM size table routine
        LDX.b #$14                    ;$009686        |\ Useless loads, probably old leftover code
        LDY.b #$00                    ;$009688        |/
        JMP CODE_009622               ;$00968A        | Jump ahead
                                      
CODE_009622:                          
        JSR KeepModeActive            ;$009622        | Keep the game mode active(unused since there is no $0DB1 check)
        LDA.b #$09                    ;$009625        |\ Set the background mode
        STA $3E                       ;$009627        |/
        JMP CODE_0093EA               ;$009629        | Jump ahead
                                      
CODE_0093EA:                          
        LDA.b #$01                    ;$0093EA        |\ Set to the cutscene mode
        STA.w $0D9B                   ;$0093EC        |/
        LDA.b #$20                    ;$0093EF        |\ Update some screen settings
        JSR ScreenSettings            ;$0093F1        |/
        INC.w $0100                   ;$0093F4        | Increment the game mode
        LDA.b #$81                    ;$0093F7        |\ Renable NMI
        STA.w $4200                   ;$0093F9        |/
        RTS                           ;$0093FC        | Done with game mdoe #$27




Game mode #$28 is a small game mode that shares most of the code with #$26. This game mode is responsible for doing the fade-in effect.


CODE_009F7C:
        DEC.w $0DB1                   ;$009F7C        |\ Check if the game mode should be kept active
        BPL Return009F6E              ;$009F7F        |/
        LDA.b #$08                    ;$009F81        |\ Set the number of frames to delay the fade-in steps
        JSR CODE_009F2B               ;$009F83        |/
        BRA CODE_009F77               ;$009F86        | Run the fade code from game mode #$26 (opposite direction)



And lastly, game mode #$29. The simplest one of them all.



Return00968D:
   RTS



Thats it. The game just simply returns. It has nothing more to do. For all intents and purposes, the game is done with execution.

Hopefully this helps clarify what a "winning" state in SMW is.


And hopefully this helps clarify that winning is hard coded into games (or at least, games that require a manual reset after The End like Ocarina of Time). You don't need to completely understand the code (I know I don't), just pay attention to the annotations especially about the game modes and how game mode 29 is a state that sets the game to be finished. Whatever the game mode 29 equivalent is for Ocarina of Time, we've reached it. Someone brought up in a different chat about the infinite credits loop, which we can put ourselves in. That isn't beating the game precisely because the game won't play out until The End and obtain the "game completed" game state.

If you wrong warp to the Fire Temple it would be ridiculous to say "I am not in the Fire Temple", as the game code proves otherwise. Likewise, if you wrong warp to the credits and reach The End, it would be ridiculous to say "I have not reached the end".


Title: Re: Is wrong warping to the credits completing the game?
Post by: Bonooru on February 21, 2012, 08:14:58 PM
All right, my issues have been dealt with. Carry on


Title: Re: Is wrong warping to the credits completing the game?
Post by: RingRush on February 21, 2012, 09:36:34 PM
I will now hijack this topic for my own question. Someone can split this if this ends up going back to the original topic.

Should we require killing Ganon in 100%? Should we ban RBA/BA altogether in 100% in light of all the new and previous controversies? Discuss.


Edit: For the record I believe in banning RBA/BA completely in 100%, since it is solves so many amiguities and replaces a multitude of difficult arbitrary rulings with one comparatively easier arbitrary ruling.


Title: Re: Is wrong warping to the credits completing the game?
Post by: Goldenboy on February 21, 2012, 09:41:08 PM
I think if we do allow RBA/BA in the 100% like we currently do, then we should skip killing Ganon since the only thing we "obtain" from killing him is the ending cutscene, which we could warp to already. Although, this is all a moot point if RBA/BA gets banned anyways. It would probably get really complicated to route out, but a 100% with RBA/BA would be really cool.


Title: Re: Is wrong warping to the credits completing the game?
Post by: KingOfHeart on February 21, 2012, 10:18:07 PM
So when will this speed run be done? So OOT could now be beaten within maybe an hour at most?


Title: Re: Is wrong warping to the credits completing the game?
Post by: ZFG on February 21, 2012, 11:27:53 PM
So when will this speed run be done? So OOT could now be beaten within maybe an hour at most?
It's already been under an hour quite a few times now.


Title: Re: Is wrong warping to the credits completing the game?
Post by: Bonooru on February 22, 2012, 02:45:51 AM
Having a 100% run that doesnt defeat ganon, atleast to me, will seem incomplete.


Title: Re: Is wrong warping to the credits completing the game?
Post by: Runnerguy2489 on February 22, 2012, 02:53:48 AM
I will now hijack this topic for my own question. Someone can split this if this ends up going back to the original topic.

Should we require killing Ganon in 100%? Should we ban RBA/BA altogether in 100% in light of all the new and previous controversies? Discuss.
Just ban RBA/BA. Makes it easier.


Title: Re: Rethinking Completion Requirements
Post by: gamestabled on February 22, 2012, 03:15:12 AM
I think that getting to the end cutscene in 100% without Ganon shouldn't be allowed because thats like getting medallions through rba, which isn't allowed unless you also get them legit.


Title: Re: Rethinking Completion Requirements
Post by: Hornlitz on February 22, 2012, 04:02:06 AM
In my opinion, beating a game 100% includes beating every boss in the game, especially the final boss.
By all means, use this new glitch in any% runs, but for 100% runs, I say just stick to the original.


Title: Re: Rethinking Completion Requirements
Post by: Abahbob on February 22, 2012, 04:06:16 AM
Although I don't enjoy it, I say 100% should be able to skip to credits. Ganon/dorf doesn't unlock anything. No items, unlocks, medallions, or even change to any of the pause screens. Screw final boss, FW ftw.


Title: Re: Rethinking Completion Requirements
Post by: Enterim on February 22, 2012, 04:58:55 AM
Are the trials part of the current 100% definition?


Title: Re: Rethinking Completion Requirements
Post by: TheOnlyOne on February 22, 2012, 06:09:56 AM
I agree to banning RBA/BA in 100%. It’s simpler that way. (Although, doesn’t that make 100% longer?  The current record becomes obsolete… negatively?)

But say RBA/BA is in a 100%, I don’t know what I think about killing Ganon. The same could be asked for MST (with RBA/BA, etc.) Especially now that you can re-obtain the light medallion. Beating the trials, then skipping to the credits seems silly, but it would probably be a little faster.

But I do have a slightly different category idea that I think would make good use of the wrong warp, still show lots of the game, and doesn’t bother with such a question. How about this: defeat all (10) bosses. Nothing ambiguous about that. Not sure how ‘arbitrary’ such a category would be seen as, but I think at the very least it would be entertaining. A little less arbitrary than ‘enter all blue warps.’ (Funny how that was part of the technical MST definition to my understanding. But even that becomes muddled with the wrong warps. Are we really entering the warp, etc. Silly but you get the point.)

Anyway. Just thought I’d throw something out there since everyone seems so preoccupied with modifying old catagories.


Title: Re: Rethinking Completion Requirements
Post by: P.Ommes on February 22, 2012, 01:29:46 PM
In my opinion, beating a game 100% includes beating every boss in the game, especially the final boss.
By all means, use this new glitch in any% runs, but for 100% runs, I say just stick to the original.

this is exactly what i would propose, also
Any% without ganon is great, but in a 100% i want to see everything bashed and slayed :D


Title: Re: Rethinking Completion Requirements
Post by: mzxrules on February 22, 2012, 05:12:15 PM
I disagree with banning RBA/BA completely. It's better to just to say outright that you have to beat Ganon, rather than ban RBA/BA solely to indirectly guarantee a Ganon fight.


Title: Re: Rethinking Completion Requirements
Post by: Bonooru on February 22, 2012, 10:16:29 PM
I think that adding that you must defeat ganon to the list of requirements for 100% deals with the issue most effectively.


Title: Re: Rethinking Completion Requirements
Post by: Thomaz on February 23, 2012, 12:22:35 AM
I agree completely with what Hornlitz said. If you're doing 100%, than logically, you beat the "important" bosses and get the "important" items. I'm using quotations because those things I mentioned can obviously be discussed (getting Gold scale skips Silver Scale is fine, you still get the best end-product; but I suppose not all bosses need to be fought, unless they give you something).

What's the fun and challenge in getting (almost) every item in the game if you're basically gonna hack it in. Why call it 100% if it's not actually 100%? The complexity of the route and the skills needed to do such a run is really what I like about 100% in general and I think this counts for a lot of people. :P

Any% is different, any % is anything goes, to a certain point. It's fun to watch a game be destroyed completely, but I think it should not be just that. Any% needs different categories, like "Major skips redefined" (lol), "regular glitched" and perhaps even non-glitches if you want to push it.

To give you an analogy.

I like to see myself as a Pokémon speedrunner. The first Pokémon games can be even more destroyed than OoT (you can warp to the end in ONE minute), but that shouldn't be the only run. It should not replace any run that uses the "pretty big" glitches like my own run or perhaps, in the future, the 'slow' ZZAZZ route because the run differ so much (and definitely NOT the non-glitched run, but what you do or don't consider a glitch in OoT is very vague and I'm not going there).

I suppose you could almost argue that the one minute warp thing is just more for the lolz than honest and well done, skillfull gameplay (wether that's route planning or the gameplay itself is, for the sake of the argument, not important). While both are glitched any%, they can't be compared at all.

And for 100% (which I am working on), I get all badges, get all Pokémon and beat the Elite Four (might also make a video of the diploma lol), because, honestly, why go out of the way to get every last Pokémon (most through glitches, but there really is no other way without trading, so it's fair) if at the end, you'd just warp to the end. You have to finish what you started.

If I had any say in the matter (back to OoT), I would say:
- Any% warp to the end (for the lolz and because, why not?);
- Any% RBA (it's different enough and actually requires skill);
- 100% non-RBA;

A point could be made for Any% with less glitches, like those on SDA, but I'm leaving that in your hands. :P

Oh, and don't time the credits. We've never done that and I don't see why we would know. It would mean you would have to go back to every created speedrun and retime it because you're adding the credits.

Also, I didn't realise I never registered lol. No wonder the site didn't let me login. <_<


Title: Re: Rethinking Completion Requirements
Post by: thundrio on February 23, 2012, 01:47:14 AM
I understand about what you mean for different categories of glitched any%, but I believe we should leave the definition of any% as "Reach the end of the game as fast as technically possible within the games own constraints (by that I mean no crooked cart/hacking)". Then if you want you can add restrictions to that, such as "any% no Rare Bird Adventure".


Title: Re: Rethinking Completion Requirements
Post by: Cosmo on February 23, 2012, 08:38:09 AM
RBA destroys this game so much harder than the credits warp... I see no reason that any% no credits warp should be a category; it is already horribly glitched and skips everything


Title: Re: Rethinking Completion Requirements
Post by: Kazooie on February 23, 2012, 10:32:25 AM
I completely agree with cosmo about this thing! Any% should be only one category and with credits warp on it. It will only make more categories and in the end that doesn't make any sense! And who knows when new trick is discovered and we will get even lower any% time in oot. We should keep it like it was before ending credits warps was found.


Title: Re: Rethinking Completion Requirements
Post by: UchihaSasuke on February 23, 2012, 11:42:03 AM
i think any% should be kept as is and accept the warp since it is already a really fucked up category.
there's any% no RBA and MST if pople want to see ganon.

also, didn't people say any% was boring anyway?