Josh's NES Tetris Hacks and Mods

Thread in 'Research & Development' started by Josh Tolles, 2 Jan 2016.

  1. Oh....Ok I got it...Never thought of setting gravity counter behind #00. :)

    The pre-gravity is actually controlled by $004E, the "down" autorepeat timer. At $98E6, #00 is loaded and written to $004E during spawn. I can change that to #F6, which makes it "float" ten frames, but $0045 is also counting, so it drops as soon as $004E reaches "00".

    SNES adds ten frames in addition to the normal gravity frames.

    So I could change it to #F4 which would work for Level 19, or #F3 which would work for 18, etc. but nothing universal.

    That's not to say $0045 can't be written to #F6. But the pre-gravity function won't work.

    So I found where $0045 get set to #$00 during spawn: at $98BA. Problem is, $00A4 and $0041 also get set at the same time. Not sure what $00A4 is, but $0041 is sprite position. Can't mess with that!

    Edit 2:
    Eureka! I figured it out. I'll swap out $0045 and $004E at their respective "reset" positions. $004E will get reset to #$00 at $98BA and I'll use $98 E6 to set $0045 to #$F6.

    Edit 3:
    Boom shaka laka, baby! SNES gravity rules for NES:


    I don't know what good it is, except it makes NES incredibly easy. I got a 800k off a 19 start the first time I tried it. It eliminates the killscreen, which is nice, but, again, it that would make maxing a lot easier. What the hell, I guess it is something that makes the game funner! :D
    Last edited: 22 Apr 2017
    Kitaru likes this.
  2. I wrote a new ROM mod that makes piece distribution more even.

    The original program can be seen here:
    Screenshot 2017-04-21 at 5.52.43 PM.png
    Basically, the game "rolls" a number between 0 and 7.

    0, 1, 2, 3, 4, 5, and 6 represent pieces T, J, Z, O, S, L, and I

    A "7" doesn't correlate to any Tetris piece, and is an automatic re-roll.

    I had an idea to turn 7 into a longbar, but kitaru suggested assigning it to the least frequent piece, which I thought was brilliant. I couldn't come up with a simple way to do it, but I wrote up a program that finds the least frequent piece and it seems to work ok.

    Basically, I "hi-jack" the program and send it to an unused portion of the ROM on the event that a a 7 comes up:
    Screenshot 2017-04-21 at 5.51.15 PM.png
    This is the new program. $D700 is the start of the program that detects the least frequent piece. Ties go to the first number checked. ($D6F6-$D6FD is for a re-roll on a repeat of the previous piece.)
    Screenshot 2017-04-21 at 5.50.15 PM.png

    I may re-visit this and go into more detail, but I ran out of time for now.
    FerSave and Burbruee like this.
  3. Hey! Do you have the rom with hard dropping, holding, and t-spinning yet?
    Raul1138 likes this.
  4. I'm interested in trying it out as well. Would be nice if you can share IPS patch
    Raul1138 likes this.
  5. I haven't parsed the entire thread, so forgive me if it's already been mentioned, but I would love to play some NES Tetris with the TGM1 randomizer. Any chance we could see that here?
  6. Not with a game genie code, but it should be a fairly easy hack.
  7. Hi there, sounds like you guys are doing great work.

    Are there any modded ROMs that simulate the CTWC game, with drought counter, etc?
    Last edited: 2 Dec 2019
  8. I'm not entirely sure, but what you're probably referring to (drought counter) is not part of the game but rather part of the overlay/software that redraws the game states for the stream with added stats and information.
    That's also the reason why the CTWC stream can show HD/Full HD footage for a 256x240 game.

    There are definitely some other ROMs with built-in stats, but someone else has to help you with that.
    Rory76 likes this.

Share This Page