experimental/forumfix.s

Download file

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

1| Fixes reported on the NHL94 forum (2026-10-28), found in the community disassembly2| (abdulahmad/NHL94Genesis, routine names below) and the mechanics notes of3| nhl94dotcom/NHL94MatchViewer docs/GENESIS_MECHANICS.md.4| +0 friction ($AC12, updateplayers): "runaway speed" - the deceleration-off flag (pflags bit 0)5|    leaks onto a person's skater after a fall into the boards or a takeover during a pass, so6|    bursts stack past 20,000. A pad-controlled skater (bit 3) never keeps it.7| +4 penalty shot awarded ($ED96, puckshootout): the puck also loses its vertical speed and is put8|    in no-collision mode (bit 2), so a puck still moving in a net cannot score after the whistle.9| +8 penalty shot set up ($EF92, puckpenshot, first call): no-collision mode off again - it was10|    only cleared by a faceoff puck drop, so a puck flipped over the glass after the award11|    whistle stayed a "ghost" through the net and boards for the whole shot.12    .text13    .globl _start14_start:15    bra.w friction16    bra.w psaward17    bra.w pssetup18    bra.w passflight19friction:                              | replaces btst #0,$62(a3) / beq.w +4 / moveq #9,d220    btst #3,0x62(%a3)21    beq.s 1f22    bclr #0,0x62(%a3)                  | a person's skater: normal friction231:  btst #0,0x62(%a3)24    beq.s 2f25    moveq #9,%d2262:  rts27psaward:                               | replaces clr.w $B772 / clr.w $B77428    clr.w 0xFFFFB77229    clr.w 0xFFFFB77430    clr.w 0xFFFFB77631    bset #2,0x62(%a3)32    rts33pssetup:                               | replaces bclr #1,$62(a3) (pfna); the caller's beq.w stays34    bclr #1,0x62(%a3)35    beq.s 9f36    bclr #2,0x62(%a3)37    andi.b #0xFB,%ccr                  | Z clear: "it was a new assignment"389:  rts3940| The experimental builder consumes a cached plain-patched ROM, so changes in41| patch.py alone do not reach this build. Wrap its existing goalie timing code;42| retain that exact path for goalies and clamp only skater flight times.43passflight:44    jsr 0x2FF14045    tst.w 0x34(%a3)46    beq.s 8f47    cmp.w #2,%d248    bge.s 8f49    moveq #2,%d2508:  rts51