experimental/pickup_delay.s

Download file

Release 2026-11-04-r2 · SHA256 d3e1523a3c8f8b0c7df5be4bf016ab659c4a6cfae2f7997f80c8fa9d075faf63 · Click a line number for a direct link.

1| Optional ordinary human B release: minimum six native skater interaction ticks.2| Native ABAA owns countdown; native14E54 owns contact admission. No frame,3| collision, puck movement, CPU pass, keeper save or RNG hook is added.4| Off=0, On=1 at F010. Four independent tagged records4D2A..4D31 (Light gap).5| +0 human release, +4 mapped load, +8 mapped store, +12 season-only reset.6    .equ VALUE,0xFFFFF0107    .equ MAP,0xA130F18    .text9    .globl _start10_start:11    bra.w release12    bra.w load13    bra.w put14    bra.w reset1516release:17    move.w %sr,-(%sp)18    movem.l %d0/%a0,-(%sp)19    cmpi.w #1,VALUE20    bne.w released21    btst #3,0x62(%a3)22    beq.w released23    tst.w 0x34(%a3)24    bmi.w released25    move.w 0x52(%a3),%d026    cmpi.w #11,%d027    bhi.w released28    cmp.w 0xFFFFB7AA,%d029    bne.w released30    tst.w 0xFFFFD41231    bne.w released32    btst #0,0xFFFFC2FA33    bne.w released34    btst #2,0xFFFFC2F235    bne.w released36    btst #3,0xFFFFC2F637    bne.w released38    move.b 0xFFFFC2EA,%d039    andi.b #0x11,%d040    bne.w released41    move.b 0xFFFFC2EC,%d042    andi.b #0x81,%d043    bne.w released44    btst #0,0x63(%a3)45    bne.w released46    lea 0xFFFFB04A,%a047    moveq #11,%d048actors:49    tst.w 0x34(%a0)50    ble.s next                      | native keeper and inactive roles never change51    tst.b 0x5E(%a0)52    bmi.s next                      | preserve special/long signed native lock states53    cmpi.b #6,0x5E(%a0)54    bcc.s next                      | never shorten passer/injury/other native cooldown55    move.b #6,0x5E(%a0)56next:57    adda.w #128,%a058    dbra %d0,actors59released:60    movem.l (%sp)+,%d0/%a061    move.w (%sp)+,%sr62    rts6364record:65    lea 0x209A55,%a0                | native, Full, Light, Mini; two logical bytes each66    tst.w 0xFFFFF06C67    beq.s record_done68    move.w 0xFFFFF06A,%d069    subq.w #1,%d070    cmpi.w #2,%d071    bhi.s record_done72    addq.w #1,%d073    lsl.w #2,%d074    adda.w %d0,%a075record_done:76    rts77load:78    move.w %sr,-(%sp)79    movem.l %d0-%d1/%a0,-(%sp)80    clr.w VALUE81    bsr.s record82    moveq #0,%d083    move.b (%a0),%d084    move.w %d0,%d185    andi.w #0xFE,%d186    cmpi.w #0x70,%d187    bne.s loaded88    not.b %d089    cmp.b 2(%a0),%d090    bne.s loaded91    not.b %d092    andi.w #1,%d093    move.w %d0,VALUE94loaded:95    movem.l (%sp)+,%d0-%d1/%a096    move.w (%sp)+,%sr97    rts98put:99    move.w %sr,-(%sp)100    movem.l %d0-%d1/%a0,-(%sp)101    bsr.w record102    moveq #0x70,%d0103    cmpi.w #1,VALUE104    bne.s write105    addq.w #1,%d0106write:107    move.b %d0,(%a0)108    not.b %d0109    move.b %d0,2(%a0)110    lea 0x208001,%a0111    moveq #0,%d0112    move.w #0x1FFD,%d1113sum:114    add.b (%a0),%d0115    addq.l #2,%a0116    dbra %d1,sum117    not.b %d0118    move.b %d0,(%a0)119    not.b %d0120    move.b %d0,2(%a0)121    movem.l (%sp)+,%d0-%d1/%a0122    move.w (%sp)+,%sr123    rts124reset:125    move.w 0xFFFFF06C,-(%sp)126    move.w #1,0xFFFFF06C             | native→fresh season never resets the native choice127    clr.w VALUE128    bsr.w put129    move.w (%sp)+,0xFFFFF06C130    rts131