Reading the code & standing on the shoulders of giants. We have a wonderful technical community for NES tetris that has modded the game and knows it inside and out. The amazing Michael Birken was the first to research the majority of the game's mechanics for the AI he created and posted it to his blog on meatfighter.com/nintendotetrisai. But since then, the community has created a full disassembly of the game's code, which is my source for figuring out a lot of things. I'll just shoutout a ton of cool people who have made discoveries: kitaru (the OG mechanic knower, I learned a great deal from him), kirjava (incredible romhacker responsible for making the community's practice rom & parts of disassembly), negativemaya(disassembly contributer, built a cycle counter for the crash), fractal161(excellent hacker and contributed to crash research), jazzthief81(made the first disassembly), ejona (base for the modern disassembly), and I'm probably missing people, too. Generally, though, if I want to know something, I first check meatfighter, then ask kitaru if I think he knows, then figure it out myself from the disassembly because the knowledge probably doesn't exist yet.
I learned basic python at a summer camp in middle school but other than that I have had no formal instruction on coding. Completely self-taught in assembly using the 90s-lookin webpage for 6502 opcodes. Assembly is really fun to learn, it's like a puzzle; I find it way more interesting than high-level languages.
@@hydrantdude3642 Been programming for a couple years but have never tried to learn assembly, feeling a bit tempted to after watching some of your videos
About the color bug after level 138, I have a question. Without modifying the memory allocated by that variable, could it be a possible fix turning the type from "signed int" into "unsigned int" and change the check operation from "subtract 10 till negative" into "actual_level mod 10" and search the result in the table? If we use "mod" operations, negative numbers doesn't show up, and so we can ignore them This should work for every level... well technically at level 256 the colors will be selected from column 0 instead of column 6 and subsequent levels will carry away this problem (level 257 column 1, and so on...) BUT, at least, using this method will prevent any weird access outside of the 0-9 table, since the variable that is responsible for doing so can't have any value outside of 0-9 (since we are using mod 10 operation) What do you think about this? And plz consider I am new to programming, so if I made some kind of mistake, plz tell me
So this is the legendary scholar
I’m curious, how did you learn all of this? Like everything about how Tetris is made, and where you got the knowledge to understand it all
Reading the code & standing on the shoulders of giants. We have a wonderful technical community for NES tetris that has modded the game and knows it inside and out. The amazing Michael Birken was the first to research the majority of the game's mechanics for the AI he created and posted it to his blog on meatfighter.com/nintendotetrisai. But since then, the community has created a full disassembly of the game's code, which is my source for figuring out a lot of things. I'll just shoutout a ton of cool people who have made discoveries: kitaru (the OG mechanic knower, I learned a great deal from him), kirjava (incredible romhacker responsible for making the community's practice rom & parts of disassembly), negativemaya(disassembly contributer, built a cycle counter for the crash), fractal161(excellent hacker and contributed to crash research), jazzthief81(made the first disassembly), ejona (base for the modern disassembly), and I'm probably missing people, too. Generally, though, if I want to know something, I first check meatfighter, then ask kitaru if I think he knows, then figure it out myself from the disassembly because the knowledge probably doesn't exist yet.
@@hydrantdude3642 I see, thanks for the answer! And how did you learn how to read the code? College? Self-taught?
Satan whispers you secrets when you play if you just offer some donuts and cola.
I learned basic python at a summer camp in middle school but other than that I have had no formal instruction on coding. Completely self-taught in assembly using the 90s-lookin webpage for 6502 opcodes. Assembly is really fun to learn, it's like a puzzle; I find it way more interesting than high-level languages.
@@hydrantdude3642 Been programming for a couple years but have never tried to learn assembly, feeling a bit tempted to after watching some of your videos
About the color bug after level 138, I have a question.
Without modifying the memory allocated by that variable, could it be a possible fix turning the type from "signed int" into "unsigned int" and change the check operation from "subtract 10 till negative" into "actual_level mod 10" and search the result in the table?
If we use "mod" operations, negative numbers doesn't show up, and so we can ignore them
This should work for every level... well technically at level 256 the colors will be selected from column 0 instead of column 6 and subsequent levels will carry away this problem (level 257 column 1, and so on...)
BUT, at least, using this method will prevent any weird access outside of the 0-9 table, since the variable that is responsible for doing so can't have any value outside of 0-9 (since we are using mod 10 operation)
What do you think about this? And plz consider I am new to programming, so if I made some kind of mistake, plz tell me
Assembly doesn't have a modulo operation
Bugged colors can be fixed with one game genie code EPAOKA
Wait, that's to technical; what are these letters supposed to mean? And which one is the tournament version?
Would you explain (in details) why level 255 is theoretically the last level?
there is no detail to go into. the level is stored in one byte, and a byte has the capacity to represent the numbers 0-255.
You are a mogger bro 🗿
Sharp jawline
A10 hunter eyes
Full eyebrows
LMFAO
First