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.

    Edit:
    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:

    TKUONAIK
    VNVPNAAA
    IKVOOETG

    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.
     
    Burbruee likes 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
     

Share This Page