why nes tetris covers your screen in garbage after a single into level 160

  Рет қаралды 13,936

HydrantDude

HydrantDude

Күн бұрын

Пікірлер: 64
@RKelleyCook
@RKelleyCook 11 ай бұрын
Whelp, this video might have set the record for the nichest knowledge of all time.
@bermchasin
@bermchasin 11 ай бұрын
nah, there is someone out there that knows all the lyrics to every Recebba Black song.
@kiwi_2_official
@kiwi_2_official 7 ай бұрын
set theory
@joe_z
@joe_z 11 ай бұрын
I love your cute little T-pieces running around in the NES making the game work. They have so much personality ❤
@jthecollector6108
@jthecollector6108 11 ай бұрын
i think i finally understand why the "infinite" confetti isn't infinite on PAL (if this was even known before). since the frames last 17% longer, the tile countdown can actually reach 0 and finish before it is interrupted again. speaking of PAL, it would be interesting to see where the crashes are on that version.
@Patashu
@Patashu 11 ай бұрын
I thought this was wrong, but I just looked it up, and while the PAL CPU Hz IS lower, the frames are longer by a greater % than the CPU is slower, so it does indeed have more time to do stuff per frame. Interesting!
@jthecollector6108
@jthecollector6108 11 ай бұрын
update to the above: if FCEUX isn't failing me, the earliest crash on PAL (for all intents and purposes) should be a single into level 181 with a crash timing of 33227 cycles. i need someone to verify this though.
@wiirambo7437
@wiirambo7437 11 ай бұрын
​@@jthecollector6108On the PAL version of Tetris the crash happens on later levels than on NTSC because the frame is longer. (I tested the standonle ROM, I did not test the combo cartige ROM. I modded the game so I never goes past level 18 speed and I can start on high levels) The first crash I was able to trigger was a single into level 180, but this seems to have low odds of happening. In general singles only have a low probability to crash. Singles on level 181 and 182 have a low chance to crash. A single into level 183 seems to have the highest chance of crashing but not 100%. Singles on 183 and 184 are risky bust still way less risk than single on level 157 NTSC. Singles on level 185 trigger corruption glitches but no crash. There is no "infinite confetti" on PAL inestead the screen flashes. (I now know why) The PAL version can not crash by just placing a piece with out a lineclear, because the calculations without a lineclear always happen before the end of the frame. At about level 194 other lineclears start to become dangerous. I need to test that behavoir more, I don't know which is the first crash with other lineclears. Levels 196 to 199 are dagerous for linclears other than singles but by far not as bad as level 169 (or 170) on NTSC.
@richardpike8748
@richardpike8748 9 ай бұрын
@@jthecollector6108I feel like you could pose this question to the tetris discord and they'd eat it up (assuming this is new knowledge)
@MikeDolanFliss
@MikeDolanFliss 11 ай бұрын
As a lifetime tetris player and computer scientist / epidemiologist, I love these deep cuts HD. Thanks for all the work you do for the scene, for science, for tetris!
@Jethcon
@Jethcon 11 ай бұрын
the little tetris pieces are so cute i want a plushie so badddd i need to hug ittt
@naumbtothepaine0
@naumbtothepaine0 11 ай бұрын
>decrement before checking the counter Knowing how the dev initially thought no one would get pass level 29, I love how much horror lying in this code, it works as long as it works lol, and the something waiting for the FF terminator is literally me hostage in ranked matches waiting for the FF from my teammate
@Random1785YT
@Random1785YT 11 ай бұрын
I don’t know what he’s saying just looking at the drawings they’re so adorable
@omegahaxors9-11
@omegahaxors9-11 11 ай бұрын
Huh so this explains why Tetris is always eventually fatal when you get it. Make sure to get a Tetris shot if you get cut on rusty metal.
@TheDeadtra
@TheDeadtra 11 ай бұрын
Another Video by our Hydrant dude. Just great work man keep on going!
@Lykrast
@Lykrast 11 ай бұрын
I love the cute lil drawings!!
@TariosGD
@TariosGD 11 ай бұрын
0:50 I kept hearing "next preview's sprite staging" as "next previous sprite staging"
@triskai
@triskai 11 ай бұрын
I love these videos so much lol
@Periwinkleaccount
@Periwinkleaccount 11 ай бұрын
0:20 “I accidentally stopped recording the drawing here lmaoooo guess we do reveals with paper instead then”
@go_gazelle
@go_gazelle 11 ай бұрын
Just a fan here, although I once got 188 lines on GameBoy Tetris as a 13-year-old in 1995. I would love to see your spreadsheet containing all possible killscreens. If it were public, fans like myself could see all the roadblocks on the way to defeating level 255, and would therefore be able to better follow and appreciate each player's journey to get there. In a recent video about Blue Scuti's achievement, aGameScout shows a glimpse of the spreadsheet, and provides a link, but the link is broken. From that gimpse, I can tell that casual fans, myself included, will need a tutorial on how to understand the various acronyms and comments. Do you know what level Blue, Fractal, and Andy started at? It seems like for them, the line count at single-line level transition is always (level# -1) / 10 - 50. I would have assumed that meant they were starting at level 6, but given some levels take more or less than 10 lines to clear, I have no idea anymore. Thanks. Brett
@hydrantdude3642
@hydrantdude3642 11 ай бұрын
hm, link shouldn't be broken. docs.google.com/spreadsheets/d/1zAQIo_mnkk0c9e4-hpeDvVxrl9r_HvLSx8V4h4ttmrs/edit?usp=sharing fractal & scuti started on 19, andy on 18. the first level will last until you have cleared 10*level lines, ie lvl 9 start = lvl 10 at 100 lines. this desyncs at levels > 10, where 10-15 all proceed to next level at 100 lines, and then they start increasing again 16+, so that's where that difference of 6 is coming from; 18 to 19 at 130 lines, 19 to 20 at 140 lines.
@XxCrystalPhoenix
@XxCrystalPhoenix 11 ай бұрын
THIS IS SO WELL PUT-TOGETHER ❤
@dwcalle
@dwcalle 11 ай бұрын
Great explanation!!
@feisty-trog-12345
@feisty-trog-12345 11 ай бұрын
I love the style of these videos, such a good explanation. How come you refer to the VBlank Interval as NMI though? Is the VBlank interrupt the only non-maskable one on the NES?
@Starwort
@Starwort 11 ай бұрын
I'm not entirely sure but I think it's either 1) any NMI trigger/handler causes the memory corruption or 2) (more likely imo) as you guessed VBlank is the only (interesting) NMI trigger used by Tetris
@hydrantdude3642
@hydrantdude3642 11 ай бұрын
Yeah there's no other interrupts that happen on NES tetris, just vBlank. I think maybe some games set the PPU to send more interrupts for better timing info? Don't quote me on that though. Probably poor practice on my part to use the terms interchangeably.
@wiirambo7437
@wiirambo7437 11 ай бұрын
@@hydrantdude3642And for some reason the NMI can be disabled, which sort of goes against what an NMI is...
@hydrantdude3642
@hydrantdude3642 11 ай бұрын
​@@wiirambo7437yeah it's funny that it's called non-maskable when you can literally turn it off if you want to. doing that for the scoring frame would patch the crash and related bugs.
@ricogoins
@ricogoins 11 ай бұрын
THIS is so cute i love it AND so interesting to learn
@Pumpnation801
@Pumpnation801 11 ай бұрын
One of the densest sub 10 min videos i ever wayched
@matheuscabral9618
@matheuscabral9618 11 ай бұрын
HYDRANT DUUUUUDE THE MAN THE LEGEND
@kingyodah5415
@kingyodah5415 11 ай бұрын
Simple game, made for a potato CPU and it contains lot more interesting things than some modern games do. Even if i dont properly understand any of this, i do get the general story behind things being explained and i aint done being amazed
@DecayedPony
@DecayedPony 11 ай бұрын
The only suggestion I'd add would be including a short video of what the video describes, can't find any thing showing this online.
@hydrantdude3642
@hydrantdude3642 11 ай бұрын
awful quality but kzbin.info/www/bejne/ZqOXfpSigMaHf6c 0:46 for limited confetti. 2:50 for infinite confetti.
@DecayedPony
@DecayedPony 11 ай бұрын
@@hydrantdude3642 Thank you!
@wernerderchamp
@wernerderchamp 11 ай бұрын
Very well described. I do have a few thoughts through. I'm not too deep into this, so I might be drawing completely wrong conclusions. From your older videos, it looks like the scoring algorithm is always starting at the same time during a frame since the crashes require the PPU to interrupt precisely at certain instructions, yet its very reproduceable. This brings me to the assumption that there must be some code waiting for the PPU interrupt after all of this. If the PPU happens before (like when the scoring is too long), this would skip a frame. With this in mind, could we somehow extend some other routine and make the game run at slower speed?
@KitaruTC
@KitaruTC 11 ай бұрын
Yes, you're spot on; there is a place in code where the CPU waits for the PPU to keep game timing consistent. Under normal circumstances, all game logic completes in less than one video frame and enters an infinite busyloop to wait for the vblank interrupt. The interrupt code unsets a wait flag so that, when returning from interrupt, the busyloop is allowed to exit and proceed to the next frame of logic. On the other hand, when scoring calculation starts taking too long, we end up with a lag frame; The CPU won't reach the busyloop before the vblank interrupt. When returning from interrupt, the CPU picks back up from where it left off, reaches the busyloop, and waits for the _next_ vblank interrupt. So, the scoring frame's logic will end up stretching over the course of 2+ video frames, but (assuming the crash is missed) we'll be able to pick back up as normal after that.
@wernerderchamp
@wernerderchamp 11 ай бұрын
@@KitaruTC Thank you for your reply!
@KitaruTC
@KitaruTC 11 ай бұрын
@@wernerderchamp No problem!
@LavaCreeperPeople
@LavaCreeperPeople 11 ай бұрын
interesting information
@NatitaJr
@NatitaJr 10 ай бұрын
I love how the scenario of each one is just about this worker in the shape of a Tetris piece just acts stupid and delusional, it’s like a teacher teaching in an interesting way.
@liquink
@liquink 11 ай бұрын
Thank you very much for tgis explainimg video. Your work is very educated. ❤
@aliengenie8896
@aliengenie8896 11 ай бұрын
Doesn't the 6502 have an instruction that switches the processor into BCD mode? Does that get turned off when the NMI happens or is there a way to get it stuck like that and trash everything?
@jondorthebrinkinator
@jondorthebrinkinator 11 ай бұрын
The 6502 core in the NES processor actually has all the BCD circuitry removed, so the opcodes are just NOPs
@YTDeepshock
@YTDeepshock 11 ай бұрын
Mood.
@waldofrick
@waldofrick 11 ай бұрын
so 160 will be the first level 155+ topout
@jakerussell135
@jakerussell135 11 ай бұрын
how is it that clearing lines can cause a crash at 155-170 or something, but then never between 180 and 248?
@hydrantdude3642
@hydrantdude3642 11 ай бұрын
because the crash happens when a particular routine is interrupted, and if the scoring takes so long it doesn't even get to that routine before the interrupt, there won't be a crash.
@jaspbcat7903
@jaspbcat7903 11 ай бұрын
@HydrantDude your profile picture is my minecraft skin lol
@greatcanadianmoose3965
@greatcanadianmoose3965 11 ай бұрын
Now I am no expert in low level programming, but couldn't this be used for an arbitrary code execution exploit?
@MetaKnight68
@MetaKnight68 11 ай бұрын
The game crash can be used for ACE since it happens due to reading RAM as code (and Kirjava, Fractal, & HydrantDude have done some work in researching it which you can find online if you look hard enough), but as far as I can tell, confetti isn't useful because it's interpreting the data as parameters for the drawing routine, not executing the data as code.
@cspiff
@cspiff 11 ай бұрын
Given that the NES has no networking and no writable storage media, I'm not sure how you'd ever get any exploit code onto the system in the first place.
@Patashu
@Patashu 11 ай бұрын
@@cspiff in ACE you use the controllers to write exploit code. there's also the gimmick way where you write a payload using a different cartridge and hot swap them before RAM is cleared, which is used in 100th Coin's ACE video on SMB1
@wernerderchamp
@wernerderchamp 11 ай бұрын
@@Patashu Yeah, but its unfortunately going to stay TAS only. It would be sick if users could abuse it to take over the game like with 1st Gen Pokemon. We'd need some way to interrupt the game flow and store user input in some point at RAM, then exec it. Unless we can abuse some routine, that probably needs 5-10 bytes written.
@biggiemac42
@biggiemac42 11 ай бұрын
@@cspiff you can write into the high score tables for A and B type, including the name you enter, the score you get, and the level you top out on.. question becomes whether that is enough to boostrap up the next level where you get to use controller inputs to program higher amount of complexity
@pineapplewhatever5906
@pineapplewhatever5906 10 ай бұрын
Why does placing a piece crash the game in the last few levels?
@LilHana
@LilHana 10 ай бұрын
the game adds score every time you place a piece, its just that 0 line clears add 0 to the score a million times. this is usually fine until the last few levels
@rawtone.
@rawtone. 5 ай бұрын
"who" "who what" "who asked" LMFAOOOOOOOOOO
@probablyintervert
@probablyintervert 11 ай бұрын
i dont even know what tetris is
@thewhitefalcon8539
@thewhitefalcon8539 11 ай бұрын
It's the game where you try to make whole rows out of falling shapes
@Migueleludelia
@Migueleludelia 11 ай бұрын
1st like
@frkieran
@frkieran 11 ай бұрын
the volume of your video is way too low
@CarlTheBoneCrusher
@CarlTheBoneCrusher 11 ай бұрын
First Comment!
NES Tetris DAS: Tools to understand it and improve your skill
8:17
Finding CRACK
13:51
DEFI BRILATOR
Рет қаралды 3,1 МЛН
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
Can Chess, with Hexagons?
10:59
CGP Grey
Рет қаралды 3,9 МЛН
How NES Tetris's Hardest Challenge Was Beaten by a 12 Year Old
14:05
why you get stuck on the same level for 800 lines
4:03
HydrantDude
Рет қаралды 21 М.
Tetris, but the Pieces are Made out of Triangles
12:36
aGameScout
Рет қаралды 842 М.
Why Stairs Suck in Games... and why they don't have to
11:24
Nick Maltbie
Рет қаралды 1,5 МЛН
why clearing a single at level 155 crashes nes tetris
5:06
HydrantDude
Рет қаралды 102 М.
Python laid waste to my C++!
17:18
Sheafification of G
Рет қаралды 157 М.
I Made a 32-bit Computer Inside Terraria
15:26
From Scratch
Рет қаралды 4,1 МЛН
How Did I Complete This IMPOSSIBLE Tetris Challenge!?!?
16:10
fractal161
Рет қаралды 426 М.
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН