10 ms·
Reverse-Engineering NES Tetris to Add Hard Drop
- LinguaBrowse 6y agoThere are a few broken images there; could those be fixed?
- Grustaf 6y agoMaybe someone can reverse engineer the webpage and fix them?
- nuller 6y agoI am an html expert. I can help!
- ldjb 6y agoThe animations use the WebP image format. They work for me in Google Chrome on Android, but some browsers may struggle to display them.
- RodgerTheGreat 6y agoParticularly in the context of low-resolution pixelated graphics using a limited color palette, WebP seems a strictly inferior choice to the universally-supported GIF.
- loloquwowndueo 6y agoBurn all gifs https://burnallgifs.org/archives/ https://burnallgifs.org/archives/
- RodgerTheGreat 6y agoIf I follow, you are suggesting that web users protest a format that has been in the public domain for 17 years by instead using a format which has existed for less than 3, and in the process render content inaccessible to anyone not using a bleeding-edge browser?
- loloquwowndueo 6y agoI suggest we burn all gifs. Whether that leads to what you said is for you and others to decide :)
- digitalsushi 6y agoI mean all the licensing and incompatibility questions aside, one very cool thing about these newer formats is they (intentionally? unintentionally?) reduce our carbon footprint a little bit, by trying to save delivery costs. It would be pretty neat if my mac could make a thumbnail of a webp on my desktop, though. I mean without installing software, overriding security policies, or turning it into a developer laptop.
- gmueckl 6y agoIs there a good data set on energy requirements for transmission versus compression/decompression of data? Is it really that much in favor of compressed data?
- RodgerTheGreat 6y agoAs a concrete comparison, I downloaded the first webp figure on the page, "soft-drop-animation. The webp is 63,250 bytes. I used imagemagick to convert this file into a gif, resulting in a 119,265 byte file. I then ran the result through gifsicle[0] with maximum compression (-O3) to losslessly optimize it, producing a gif that is 29,711 bytes; less than half of the size of the original webp. As I noted higher on the comment chain, this usage scenario is particularly favorable to the gif format, while webp might come out ahead for photographic sources. [0] https://www.lcdf.org/gifsicle/man.html https://www.lcdf.org/gifsicle/man.html
- dubcanada 6y agoWhat browser are you using? Most support animated WebP so you must be using something old?
- shakna 6y agoSafari on macOS doesn't support animated WebP [0] except for Big Sur and later, which is pretty recent. [0] https://caniuse.com/webp https://caniuse.com/webp
- jwandborg 6y agoAccording to that page, Safari for Mac OS is at least one step behind every major browser except IE. I think it's fair to ask whether the images are broken or the Safari release process is broken.
- smoldesu 6y agoThanks for sharing this website, it's insane how far behind the curve Safari is on... well, every technology.
- PurpleFoxy 6y agoI have asked a few times at work if we can drop safari support because it’s blocking so many new features. No luck so far.
- smoldesu 6y agoGood luck.
- deleted 6y ago[deleted]
- stevebox 6y agoI just changed the graphics from webp to gif which should address this problem!
- RodgerTheGreat 6y agoThank you!
- deleted 6y ago[deleted]
- atum47 6y agoThe show piece at the bottom is kinda cheating, right? One of Tetris challenge is to visualize where the piece will land. Nice project never the less.
- bubblesorting 6y agoDepends on what rule book you're using :) Ghost pieces default to `on` in Guideline Tetris.
- Wowfunhappy 6y agoThey also mandate EasySpin/Infinity, which breaks the game, so I basically don’t trust anything the say. >:)
- bubblesorting 6y agoIt can break Marathon, but infinity spins are not a great strategy for Ultra, Sprint, or 1:1 multiplayer.
- Wowfunhappy 6y agoI agree, but I play Marathon, and it sucks. :( Tetris Effect would have been so much better if EasySpin could be turned off.
- jrrrr 6y agoIt's a challenge, but it's an uninteresting one.
- digitalsushi 6y agoI think that today we're just admiring the custom paint job on an old commuter car, and not the design of the car itself.
- atum47 6y agoNo doubt about that. As I said, it is a nice project. My comment about "cheating" was directed to the player not to the designer of the project. I had the physical game [1] as a child and I don't remember it having the ghost piece. 1 - https://www.google.com/search?q=tetris+original+console&bih=689&biw=393&hl=pt-BR&tbm=shop&oq=tetris+console+or&gs_lcp=Cg5tb2JpbGUtc2gtc2VycBABGAAyCAgAEBYQHhAYOgIIADoGCAAQBxAeOgQIABAeOgYIABAIEB46BAgAEBM6CAgAEBYQHhATOgYIABAWEB5Q8klYgE5gx1doAHAAeACAAaQCiAHhB5IBAzItNJgBAKABAaoBEm1vYmlsZS1zaC13aXotc2VycMABAQ&sclient=mobile-sh-serp https://www.google.com/search?q=tetris+original+console&bih=...
- deleted 6y ago[deleted]
- gorkish 6y agoWhy release a custom patching tool instead of a standard IPS rom patch?
- Karunamon 6y agoNot as fun :) Besides, you just need the old and new roms to generate an IPS, eg. https://www.marcrobledo.com/RomPatcher.js/ https://www.marcrobledo.com/RomPatcher.js/ And someone has already requested this: https://github.com/stevebob/mos6502/issues/1 https://github.com/stevebob/mos6502/issues/1
- deleted 6y ago[deleted]
- stevebox 6y agoI honestly did not know that IPS existed until just now! I've added a link to download the patch.
- p1necone 6y agoThere's a whole community out there around this stuff that you might be interested in reading about. Check out romhacking.net.
- wzdd 6y agoReally liked the description of the thought processes behind finding the relevant bits of code through memory inspection in this write-up.
- slk500 6y agoamazing stuff! This is what hacking is about
- rafaelvasco 6y agoYou did a great service for Humanity! Game is now much much better to play.
- nicetryguy 6y agoI have also added hard drop to NES Tetris. Heh. What are the odds? This hack strays further away from vanilla NES Tetris though and contains further speed, control and graphics modifications; and lacks that fancy looking ghost piece. https://www.romhacking.net/hacks/4973/ https://www.romhacking.net/hacks/4973/ My approach of hard drop implementation was different, honestly i just looped the piece down routine until it hit the ground. His approach breaks the scoring system though, mine doesn't =p Anyway, this was a great article! Nice rundown of the NES architecture.
- stevebox 6y agoGlad you enjoyed the article! Is there a reference somewhere for how scoring should behave with respect to hard drop? I'm interested in fixing it.
- nicetryguy 6y agoWhen a piece hits the ground, a point is added for every line you were holding the down button. So, you could probably just take the height difference of the ghost piece and the real piece and add it to the score. Remember to set carry when subtracting =p I'll bet by directly moving the piece coordinates you bypassed this. I really like your ghost piece =)
- Gary754 6y agoIncredible. Pair this with game genie faster auto shift and I've got myself the ideal Tetris. My only request would be to have the option to disable ghost effect. Thanks so much for making this! https://igarageband.org/garageband-for-pc-windows-download/ https://igarageband.org/garageband-for-pc-windows-download/
- dudleypippin 6y agoDelightful writeup. Two bits that stood out for me: - The incremental nature of exploration of this type. Often, the results are shown without the messy bits like "then I made it just teleport the piece to a specific spot to test". That matches how many of us operate, I'm sure. - The use of a number of varied tools from the toolbox. Falling back to the trusty "sort | uniq" after talking about Rust and emulators with built-in memory peeking functionality? Nice!