Live data from Hacker News

Bad Apple but it's played inside Super Mario Bros

tasvideos.org

41–46 of 46 posts

Re: Bad Apple but it's played inside Super Mario Bros

#41

Earlier quoted context omitted.

I'd love a laymane overview of what you've done here

I'm not the author, but these video-in-game projects typically work with a few phases: 1. Get the game into a specific state by performing specific actions, moving to specific positions, performing specific inputs, etc. so that a portion of the game state in RAM happens to be an executable program. 2. Jump to that executable code such as by corrupting the return address in the stack with a buffer overflow 3. (optiona…

Specifically, this TAS abuses the fact that SMB doesn't clear RAM on bootup to use SMB3 to write $16 to the "continue world" RAM location, and then hotswaps to SMB1 to start the game in World N-1 which makes the rest of the TAS possible. If you download the TAS and use it with SMB1 on an emulator, the included base savestate will already have $16 in that RAM location, for convenience. The main HN link for this submission has the full technical writeup.

Re: Bad Apple but it's played inside Super Mario Bros

#42
post #5
post #4

Earlier quoted context omitted.

The entire TAS file takes about 16 MB, far more than the 4 KB of RAM on the NES. During the audio + video playback, the TAS is streaming via the controller by making inputs roughly 500 times per frame (15 kHz).

Indeed, if you want to see what is possible with only a Famicom (or NES) itself you can have a look at Little Limit's incredible Bad Apple "port" [1]. This recording is from an emulator [2], but I know from personal experience that it plays perfectly fine on my "New Famicom" (HVC-101). This is not to detract from how amazing the posted ACE is, but it is indeed different in terms of data limitations. [1]: https://litt…

The submitted run here is also technically "only a Famicom (or NES)". The only difference is the rate of input from the controller to feed the data. Outside of the need to start in N-1 (which can be done on hardware with unmodified games by booting up SMB3 and then hotswapping to SMB1), if you feed these same controller inputs, frame by frame, to a real NES with no modifications, using an unmodified retail copy of SMB1 (and SMB3), this will work.

The only "modification" is wholly external to the system, and is necessary to feed the controller inputs at a superhuman rate. The SMB1 (and SMB3) code is the exact same code Nintendo shipped on mask ROMs, and the Famicom (or NES) is also completely unmodified.

Re: Bad Apple but it's played inside Super Mario Bros

#43
post #42
post #5

Earlier quoted context omitted.

Indeed, if you want to see what is possible with only a Famicom (or NES) itself you can have a look at Little Limit's incredible Bad Apple "port" [1]. This recording is from an emulator [2], but I know from personal experience that it plays perfectly fine on my "New Famicom" (HVC-101). This is not to detract from how amazing the posted ACE is, but it is indeed different in terms of data limitations. [1]: https://litt…

The submitted run here is also technically "only a Famicom (or NES)". The only difference is the rate of input from the controller to feed the data. Outside of the need to start in N-1 (which can be done on hardware with unmodified games by booting up SMB3 and then hotswapping to SMB1), if you feed these same controller inputs, frame by frame, to a real NES with no modifications, using an unmodified retail copy of SM…

This is art, so arguing about exact boundaries is pointless in my book. But can we at least agree that there is rather a big difference between "This is something that plays from a standard cartridge with a standard mapper on the Famicom/NES you have from your childhood" and "This is something that plays from a standard cartridge with a standard mapper on the Famicom/NES you have from your childhood with a modified superhuman-speed controller to in real time feed 16 times the amount of data of the largest cartridge ever released for the system"?

Re: Bad Apple but it's played inside Super Mario Bros

#44
post #2

Super cool. Is it mentioned anywhere how big the payload is? How many button presses? Are the audio samples "streamed" or does it all fit in NES RAM?

Hey, I'm the TASer who put this run together. This was 5.8 million inputs. I share the full assembly code in the tasvideos writeup: https://tasvideos.org/8991S#HereSTheAsmCode To summarize what I put in the writeup, the 7-bit PCM audio was streamed in at approximately 25 Khz, (reading from the controller and writing to address $4011 every 71 CPU cycles.) while occasionally dipping to 9 Khz while streaming in the grap…

Incredible work! I recently gave a talk about TASing to an audience of CS grad students, and of course I had to mention your SMB3 runs. Your videos are phenomenal at making this stuff accessible outside of hardcore gaming circles.

Re: Bad Apple but it's played inside Super Mario Bros

#45

I've read the post but I still have no idea what this is. Where is the data coming from? Why does it involve playing part of SMB to start with? Besides the sprites used, what does this have to do with SMB at all? How is this different from just a custom ROM that would play this music video? Could you even fit this much data into a ROM? I feel like there's a bunch of context you need to understand what this is about,…

There is a community of speed runners, who try to reach goals in video games as fast as possible, either with or without using glitches in the game, sometimes by hand and sometimes with tools, including tools that completely automate the entire process. The goals are usually related to completing the game or portions of the game, often as quickly as possible, as thoroughly as possible, or while doing as little as pos…

An important detail is that the TAS is tool-assisted (as the name says), but it could conceivably run on original, unmodified hardware (besides the input assistance that allows things that no human being could perform).

Re: Bad Apple but it's played inside Super Mario Bros

#46
post #15
post #7

can this be done on real hardware with a modified controller?

https://www.youtube.com/watch?v=OJXxmD_Qk2o This is a video of it running on a console, though I'm uncertain how the inputs were provided

Behold the TASbot

https://tasvideos.org/TASBot

> TASBot is best described as a special R.O.B. robot outfitted with Legos to hold a custom circuit board that can exactly mimic the behavior of a video game controller. TASBot can play games on real video game consoles with superhuman abilities, usually leading to game breaking glitches in front of live audiences.

Post reply on HN