Posts for Masterjun


Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
That's a great explanation for the run with that submission text! Now I just need an explanation for the submission text.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Alright, I'm joining this contest, but I'm not alone! MMMM Masterjun, MediaMagnet, Micro500, Mothrayas. Now with hopefully better route planning! Logo by Mothrayas, totally inspired by first draft by me lol. Also loading animation... Also, edit: MUGG left the team, and micro500 joined the team.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Post subject: Explanation of the glitch
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Posting everything I have so far. After hours of reverse engineering literally everything that happens (juggling two emulators, a bunch of scripts, tons of logs, etc. you get the idea), I found out a lot of things that don't happen. Process of elimination then got me to a conclusion which was quickly confirmed by a conversation with link_7777 (thanks for that!). With that I then wrote a bot that would test a bunch of possible situations, but that was only possible thanks to the emu.totalexecutedcycles() implemented by adelikat (thanks for that!). Let's start with things we already got by simply trying: Changing button presses changes if the glitch works or not. So how does changing the button presses, !which, when processed, are not even read!, change the glitch results? Now let's start with the further explanations: The obvious thing that I already found out last time is how the whole process will jump to an address in the wrong bank. It will execute a bunch of bogus code and maybe land in the credits routine mode. Now the question is, what is the difference between a result of a simple crash and a credits jump? Logging both, comparing files, critical point at a certain JSR $3C37, which jumps into the mirrors of the PPU registers.
3C37:  00  BRK
<BRK>
3C39:  00  BRK
<BRK>
3C3B:  00  BRK
<BRK>
3C3D:  00  BRK
<BRK>
3C3F:
I stopped at $3C3F because that's where the code differs. $3C3F is a mirror of $2007 which is the PPUDATA register. The important part here is the fact that we're not in VBlank (the part of the frame where the scanline laser reverts back to the top left of the screen), and reading PPU registers when not in VBlank will give us strange values[1], values used by the PPU drawing pixels on the screen. What does this tell us? It means two things: 1. Changing the pixels on the screen could change the results of the glitch. 2. Changing the time at which $3C3F is executed could change the results of the glitch. And how do you change the timing? Exactly! Different button presses lead to different branch paths in the button processing code and thus lead to different timing. This also means that it's possible to exchange different buttons (assuming they both aren't accessed beyond the processig) and still get the credits! (Which is confirmed to work.) Most importantly though, which timing do we need now? The problem is that even small cycles amounts can and will change the outcome completely, so I wrote a bot that tries every single cycle (to like +300, because we won't be able to change it much more). The only cycles it found was the one we already got, and this one, which resets you to the start of the room. The one we already got requires so many buttons, and changing buttons before the frame with the mandatory Start barely changes the cycles, so it won't be possible to reduce that two frame input to a single one. At least not without changing the pixels on the screen, which is what I'm trying currently. [1] - You might have seen that $3C37 is also a mirror of $2007, but it seems like the first read of that register (including mirrors) in non-VBlank gives you a stable 00.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Alyosha wrote:
c64248952    A:7E X:FF Y:62 S:FC P:nvUBdizc    $3C78:A8        TAY
c64248954    A:7E X:FF Y:62 S:FC P:nvUBdizc    $3C7A:10 00     BPL $3C7C
c64248957    A:7E X:FF Y:62 S:FC P:nvUBdizc    $3C8C:87        UNDEFINED
c64248960    A:7E X:FF Y:62 S:FC P:nvUBdizc    $3C9E:23        UNDEFINED
c64248963    A:7E X:FF Y:62 S:FC P:nvUBdizc    $3CA0:A8        TAY
c64248970    A:7E X:FF Y:62 S:F9 P:nvUBdIzc       $0029:48        PHA
There are 2 TAY's here that aren't moving A to Y, a jump to $0029 that I can't tell where it's coming from, and execution jumping from 3C8C to 3C9E on the 87 instruciton (which is just supposed to AND X and A.)
This seems like the usual case of not logging what actually happens. This happens a lot with stuff I do and emulators I use so I'm kind of used to it really. For example, take a look at that first TAY. No matter how you turn it, it should be a 1-byte instruction. However the next instruction is 2 bytes further, clearly indicating that the instructions executed and the instructions logged are different. The location being executed seems to be the huge chunk of mirrors of the 8 bytes PPU registers. And reading PPU registers not meant to be read results in open bus behavior, which would explain the strange logging (and execution, for that matter).
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
I didn't know there was a Metal Force GBA version !?!?
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
I'll just let you know that this run syncs on FCEUX 2.2.3 (currently the latest version).
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
The exotic Moth.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Post subject: oh no spoilers
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
dwangoAC wrote:
Fortunately, SMW is a very quick hop into complete control and it has the advantage of SMW which means we can easily show SMW. At one point, we'll allow Twitch Chat to SMW which could get kind of crazy.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Changed the version from Europe to USA, since that's the version you used. Anyone wants to make a reply or at least vote?
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
ThunderAxe31 wrote:
FractalFusion wrote:
At the end of the credits in both TASes, the end screen glitches out and it is not possible to press a button to go back to the title screen. Is the game considered to have completed properly then?
Its not up to me to decide, but I think there are probably no problems, since the game ending cutscene and then the credits are correctly triggered.
I'd be careful with this. Simply calling a print_credits routine does not count as beating the game. For reference, see this submission. So I think a full technical explanation (such as in this post) is mandatory.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Hold on everyone. This discussion should not be about whether Discord or IRC is better. This discussion should be about why we, as a site, need a Discord server. Give reasons why the site should go through the trouble of setting up and managing a Discord server.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Arcree2 wrote:
I don't understand why we still use a simple chat when tas need to send files, images and to talk with audio.
That's because the IRC channel not a place to do active TASing with your team. It's the chat for the site. If everyone were to use IRC for their TASing talks, then it would overflow really fast. Feel free to use a private Discord server with your TASing team.
Arcree2 wrote:
And a big problem with IRC: We can't see the past messages.
That's the big reason why I don't use Discord. Imagine over 100 people in a channel and you're away for like a week. There is no way you will read the backlog that contains silly talk 80% of the time anyways.
Masterjun wrote:
I see Discord as a place where all the twitch chatters meet to flood me with messages in seperate channels so I can't easily ignore it.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
No they actually just show 60fps and 30fps. That site is, in fact, exactly what it doesn't look like.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Post subject: Re: Be careful with 60 FPS on YouTube
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
feos wrote:
Masterjun wrote:
2: Drop frames to fit the timing of the game and audio, meaning it will drop one frame every ~10 seconds but doesn't change the audio or length of the movie:
Language: avisynth

ChangeFPS(60)
Will that be any better than what youtube will do?
What YouTube does without any FPS change (notice the drops at frame ~290). What YouTube does with AssumeFPS (notice how it's better, the length of the video is a tiny little bit longer and the pitch is slighly lower). What YouTube does with ChangeFPS (notice how it's better, also, frame 608 is missing). So yes, it's better than what YouTube does automatically, because it can't properly drop frames.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
So, uuuh, what was the point of those test links?
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Alyosha wrote:
Based on your arguments above, you could have arrived at the same judgement right when the run was put on the workbench, without any votes one way or the other, in which case, what was the point of voting?
Take a look at our Voting Guidelines.
  • Post your opinion. Judges weigh thoughtful posts far more than silent votes.
  • If the movie entertained you try to mention what aspects in particular you found entertaining.
Votes not changing one specific outcome, and votes never changing an outcome in general are two very different things. Don't imply the latter one if the former one happened once.
Alyosha wrote:
I don't see the harm in saying 'well the previous run went to vault but people seem to like this one so let's put it in moons and see how it does in ratings.' I think this is better then pre-supposing an outcome.
A judge doesn't pre-suppose an outcome. A judge decides on an outcome. Your suggestion people seemed to like the previous run but it went to Vault, now people like this run which barely changed so let's put it into Moons puts the player above the audience. The Judge Guidelines state that we have to be fair towards both. In particular: Too many bad publications turn the audience away.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Koh1fds wrote:
I upload not 60 fps, but original 60.098 fps video.
Yes, you're completely right. That was my problem. (Fixed version) I'm going to edit the first post.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
I looked at a few factors when judging this run. First of all, the viewer feedback. Submissions that are faster than a previous run usually have a higher support than new game submissions (not by a lot, but a bit). Looking at the posts in the thread it seemed like a bunch of them knew the game beforehand (which might push the support even further, see Metal Force submission). But even then, 15 Yes votes is quite a lot. Next one, the game itself. This run shows 33 minutes of repeating gameplay without the viewer knowing what's the goal of each level, while looking like a well-made RTA run. Remember that, for Moons, game choice is a strong factor. Doesn't look too good here. And I'm not judging this on my own: Which brings me to the final factor, the previous publications. As Mothrayas already stated, the previous run went into the Vault. Now, look at the votes that submission got. Looks the same as here. Then, look at the ratings that submission got. Looks like Vault. I had to compare the runs and decide whether the improvements were entertaining enough to grant a publication in Moons. Look at the time comparison in the submission text. Reminder that 3-4 in-game seconds were saved in each level from pausing the game (meaning no actual real-time improvement). Most of the time you can't even see the optimizations. We had a run with good votes, but due to bad ratings it went into the Vault. Now we have a slightly better run with good votes and mostly unchanged entertainment value. How would you predict are the ratings going to be? For everyone arguing that a judge should just look at the votes and decide from there, or that a 15-0 ratio automatically assures a place in Moons, just look at the previous run and the ratings then. How would you argue against over 30 ratings?
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
This should be the converted srt file from the video. Hetfield90, just putting the information in the video and not putting anything in the submission text is bad. Imagine your accout being removed or anything else that causes the video to not be available anymore. It would make this submission text useless. At least put the subtitles in here and seperate them in different stages or levels.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Or you just save the script file in UTF-8 encoding and later open the created file in UTF-8 encoding, too. Sounds easier doesn't it? Btw, in Lua 5.3 you can insert a specific UTF-8 encoding of a Unicode character into a string by using the escape \u{XXX} where XXX are one or more hexadecimal digits. It also provides a native utf8 library with for example utf8.char().
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Yeah we can also just set up a loop in RAM, switch games and then start ACE from power-on...
IRC wrote:
<true> "who wants to see super metroid beaten in 2 minutes? it requires super mario world"
Does the video really say new kind of credits warp? I mean I guess 2 years ago is kind of new if you're already on that topic for several decades or so.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Playing a different game inside a game, cool idea! Now where does this idea have anything with TASing though?
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Why do you make your own round_to_integer function instead of simply
Language: lua

math.floor(number+0.5)
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)