;credit Lui37 for making this. header !free_dp = $60 ; 2 bytes needed !use_SA1 = 1 ; 0 = no, 1 = yes if !use_SA1 sa1rom !SA1_addr = $6000 else lorom !SA1_addr = $0000 endif org $008275 autoclean JML NMI_hijack org $00838F LDY #$1E ; adjust the timing for the JML org $008394 autoclean JML IRQ_hijack freecode NMI_hijack: STZ !free_dp STZ !free_dp+1 LDA $0D9B|!SA1_addr BNE .special LDA $7FC01A ; LM layer 3 settings stuff AND #$08 BEQ .not_enabled REP #$20 LDA $0D9D|!SA1_addr ; put the status bar on the main screen STA !free_dp AND #$FBFF ORA #$0004 STA $212C ; STA $212E SEP #$20 .not_enabled JML $008292 .special JML $00827A IRQ_hijack: NOP ; my god LDA $22 ; original code blah STA $2111 LDA $23 STA $2111 LDA $24 STA $2112 LDA $25 STA $2112 LDA $3E STA $2105 LDA $40 STA $2131 REP #$30 LDA !free_dp ; it is never not time to fast BEQ .not_enabled STA $212C ; put layer 3 on the sub screen ; STA $212E .not_enabled PLB PLY PLX PLA PLP RTI