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 CWTC game, with drought counter, etc?
  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.
    Adonis Mouse likes this.

Share This Page