Unofficial Lockjaw patches

Thread in 'Discussion' started by jujube, 16 Feb 2008.

  1. jujube

    jujube Unregistered

    sorry i never got around to documenting the changes i made (and now herc is trying to confuse me further [​IMG]). i'm not quite satisfied with my patch yet, so hopefully i'll have another update soon. i'll be adding more functionality to "tap left" and "tap right" to make them influence the kick behavior. here's an example of what i think can be done.


    CCW rotation here with rotation processed before movement will cause the L to fall in the hole. this can be good if the hole is deeper, but it's bad in this case.

    Code:
    |     | |     | |     |
    |@  L  | |@ L   | |@LL   |
    |@ LLL  | |@LLL   | |@ L   |
    |@@ @@@@@@ | |@@ @@@@@@ | |@@L@@@@@@ |
     ----------  ----------  ----------
    but with "tap left" pressed while rotating CCW, the piece will rotate CW 3 times, and the seldom used (6 o'clock->9 o'clock) kicks will make sure this happens.
    Code:
    |     | |     | |LL    |
    |@  L  | |@ L   | |@L    |
    |@ LLL  | |@LLL   | |@L    |
    |@@ @@@@@@ | |@@ @@@@@@ | |@@ @@@@@@ |
     ----------  ----------  ----------
     
  2. no no,jujube, i didnt ment to confuse you in any way.


    that thing with vi was just a joke, related to the "real programmers do.." - that real programmers stuff is a running joke about different aspects of hardcore programmers, that deny any IDE or class browser etc. a good friend of mine is such a person - he is still programming exclusively with JOE (that little tiny ascii editor) .. i by myself am more a visual type of programmer and need class browsers, code completion etc. so there was the next idea to suggest you codeblocks, in case you didnt know it - that thing has lots of tools to make programmin easier.


    my post was rather offtopic and not related to that topic directly .
     
  3. jujube

    jujube Unregistered

    i was just joking [​IMG]

    that isn't really offtopic here, if it has to do with programming in C++.
     
  4. jujube

    jujube Unregistered

    http://www.sendspace.com/file/k0pabp


    the "tap left" and "tap right" keys now influence the kick behavior. i also made a small change in the I (12 o'clock->9 o'clock) kick table.
     
  5. jujube

    jujube Unregistered

    i am so happy right now because...


    rotate CW + rotate CCW = rotate CW twice

    rotate CCW + rotate CW = rotate CCW twice

    rotate CCW and CW in the same frame = rotate CCW twice


    and this still works:


    exe for LJ 0.44:

    http://www.sendspace.com/file/3ybcsq


    edit: i'm working on the kick tables.


    http://www.sendspace.com/file/jukahs

    the T is behaving better with 180 rotation.
     
  6. jujube

    jujube Unregistered

    i think this project is near completion now. i've cleaned out the rubbish from the wallkick tables and left things in a sensible order, while considering 20G finesse first and twists second. some T twists won't work, namely the SRS EZ-T-spin single cave and T-spin triple (and all spin triples for that matter). i had to make the T stay at center when rotating before moving, for finesse reasons, and this limited some of my kick options.


    J, L, S, and Z all behave very well, and i doubt i'll change anything with them. i might make some small changes in the next few days with the I kicks though.


    the tapping, tap kicking, and 180 rotation are working fine, and i don't see anything else at this time that can be improved with rotation and shift handling.


    i made a color scheme that may be very confusing at first [​IMG] but it seems normal after a little time. it isn't just to be different, it's meant to reduce tetlag with the idea that your JRS moves will stay with JRS if your brain keeps things separate that way. i don't know if it'll work or not. i included my ljblocks.bmp and ljconn.bmp with the exe, but of course you can replace them with the originals.


    http://www.sendspace.com/file/nux66c
     
  7. with a 180 kick table, the KPT could go down even further.
     
  8. jujube

    jujube Unregistered

    yeah, very true. maybe i'll try and add 180 tables at some time.


    update: the I is trying a little bit harder to go far left with the first CCW rotation.

    http://www.sendspace.com/file/arhp4w
     
  9. jujube

    jujube Unregistered

    i made a small change with the J and L kicks that makes a big difference with 180 rotation. while i was at it, i brought back a J/L twist from earlier versions that doesn't seem to break anything.


    tap kicking is also much better now, because you don't need to press left or right while doing it (but it still works if you do). you just hold down a tap key then rotate to get the altered kick behavior. this feature is much more useful now.


    http://www.sendspace.com/file/9250mr


    edit: fixed a T immobility when against the right wall and rotating 9 o'clock -> 6 o'clock.

    http://www.sendspace.com/file/7lkh2j
     
  10. jujube

    jujube Unregistered

    Code:
    hold down rotate right then rotate left
    
    | J   | |     |
    | JJJ  | |     |
    |@@@@@  | |@@@@@JJJ |
    |@@@@@@@ | |@@@@@@@J |
     ----------  ----------
    
    
    hold down "tap right" then rotate right + rotate left
    
    | J   | |     |
    | JJJ  | |     |
    |@@@@@@  | |@@@@@@JJJ |
    |@@@@@@@@ | |@@@@@@@@J |
     ----------  ----------
    there are now 180 kick tables and tapkick tables, making many placements like the one above possible without pressing "left" or "right." the tap keys are also smarter now, only activating when you press them initially or when one of them is held down when you press a rotation key.


    the tapkick tables are pretty simple. if you rotate JLSTZ clockwise, it makes an SRS rotation + ( 1, 1), and (-1, 1) for CCW rotation. but the I can be tapkicked from it's spawning position to columns 1 or 10 (press tap right + CW or tap left + CCW).


    http://www.sendspace.com/file/ren3ax
     
  11. jujube

    jujube Unregistered

    i made a way for 180 rotation to be canceled, which is useful for twists where the piece ends up in it's spawning orientation. here's how the rotation and tap keys work now:


    Code:
    for these sequences, when pressing each key hold it down through the remainder of the sequence.
    
    tapkick left = (tap left or tap right) + rotate CCW
    tapkick right = (tap left or tap right) + rotate CW
    180 rotation CCW = rotate CCW + rotate CW
    180 rotation CW = rotate CW + rotate CCW
    tapkick 180 = (tap left or tap right) + [(CCW + CW) or (CW + CCW)]
    cancel 180 = (CCW or CW) + (tap left or tap right) + (CCW or CW)
    
    canceling 180 isn't as inelegant as it may sound though. here's an example:
    
    |  T  | |  T  | |  T  | |     |
    | TTT@@@ | | TT @@@ | |  TT@@@ | |  T@@@ |
    |@@@@ @@ | |@@@@T @@ | |@@@@ T @@ | |@@@@TTT@@ |
     ----------  ----------  ----------  ----------
           rotate CCW  tap right  rotate CW
    
    the 2nd rotation here follows the normal kick tables.
    there are also new 180 kicks for I,S,Z. i like this one a lot:

    Code:
    again, hold each key down until the sequence is over.
    
    |     | |     | |I    | |     |
    | IIII | |IIII   | |I    | |     |
    | @@@@@@@@ | | @@@@@@@@ | |I@@@@@@@@ | | @@@@@@@@ |
    |  @@@@@ | |  @@@@@ | |I @@@@@ | |IIII@@@@@ |
     ----------  ----------  ----------  ----------
             left   rotate CCW  rotate CW
    for best results remember to use 16ms/60Hz DAS.


    http://www.sendspace.com/file/1s3h6s
     
  12. jujube

    jujube Unregistered

    JRS2


    i've added left/right movement which is handled as a rotation without rotation. so instead of the piece moving one column per frame with gravity pulling it down each frame, it goes through a series of kick tests to determine where it should go in 20G, and it goes there instantly.


    because it's a "rotation" it doesn't repeat, which means many more kick options (i.e. S left + CCW, S CCW, S right + CCW all have their own kick tables) without the piece continuing to move left or right after it kicks. and 180 rotation works the same as before with separate kick tables.


    it's going to take a while to work on the kick tables because there are so many. i have a playable version ready to try though.


    JRS2 for LJ 0.44


    remember to use the "JRS2 left" and "JRS2 right" keys, and remember the O shifts 1 column when you rotate it.
     
  13. jujube

    jujube Unregistered

    i fixed bugs that prevented JRS2 left/right from working at game start, when a piece spawns, and when you use hold. now by default a piece will shift only after it spawns in the center (turning initial rotation on breaks JRS2, and initial movement does nothing), and if you keep JRS2 left/right held down it repeats for each piece (mimicking diagonal movement).


    i also added a third rotation key called "rotate back" which does the opposite of 180 rotation (it rotates left by default). so while pressing "rotate left," press "rotate right" to 180 or press "rotate back" to rotate right (which only makes sense because 180 is more commonly used than rotate back, so most of the time you're only using 5 or 6 keys instead of 6 or 7 if the rotate back key did a 180).


    and the kick tables are coming along well.


    JRS2 for LJ 0.44
     
  14. jujube

    jujube Unregistered

    JRS2 (a 20G only rotation system) has lock on release now. just press a sequence of keys while keeping each one held down, then release to lock. while testing i'm getting anywhere from 1.6 to 2.0 kpt.


    Code:
    use the "rotate left / rotate back" key for right wall finesse and simple twists.
    
    |     | |    J |
    |   J | |    J |
    |   JJJ| |   JJ |
     ----------  ----------
    
    |  T  | |     |
    |@@ TT@@@@ | |@@ T@@@@ |
    |@@@ T @@@ | |@@@TTT@@@ |
     ----------  ----------
    
    if "special rotate left" is held down, it rotates back to the right.
    "special rotate left" + "special rotate right" in either order does a 180 rotation with it's own kicks (with different kicks for 180 left and 180 right, and for more basic 180 kicks press "rotate left / rotate back" followed by "special rotate left"). "JRS2 left" and "JRS2 right" won't repeat (and they affect the kicks) so they should be used instead of left and right.

    rotation and movement before or during a hold press carry over, so try and hit hold and rotation and/or movement at the same time for speediness. you don't need ARE but i use initial rotation anyway to make sure no inputs are skipped. by default JRS2 left/right are never skipped.

    and if you have a crappy keyboard like mine:
    make sure you test your keys in notepad so that no inputs are skipped when holding down multiple keys.

    Code:
    these assignments work ok for me:
    
    special rotate left:    2
    special rotate right:   4
    rotate left / rotate back: 3
    JRS2 left:         left arrow
    JRS2 right:        right arrow
    hold:           up arrow
    lock (used occasionally): down arrow
     
  15. jujube

    jujube Unregistered

    replays are working again, after i broke that feature in the last patch. i also removed a 1 frame delay for movement (which was added to maintain consistent 20G initial movement) without breaking intended initial behavior. like before, initial rotation and movement work by turning initial rotation on in options, while the initial movement option does nothing.


    the left/right keys are used for movement now, and i made some tweaks in the wallkick tables.


    a replay file is included with the patch.


    edit: update:

    more conservative kicks for these situations:

    inital 180 rotation after a hold press

    180 rotation when both special rotation keys are pressed in the same frame
     
  16. jujube

    jujube Unregistered

Share This Page