I haven't done that much research, but I realized that the same "feature" of live gifts occurs by simply extracting the main code from tap ($ 1200-5FFF), skipping all other code @029F and headers @033C.
Then starting with SYS12269 = executes like a "hacked version".
Vic20-Ian confirmed this behavior.
Then OPS wrote ... (congratulations, you posted faster your result)
So I had to look at the loading code for the tap extraction from "The Perils of Willy" to find out why the "allegedly" hacked version donates extra live for every note catched, but the original does not.
I only saw 2 byte differences @029F. Sure, there are minor differences in the main code, but they don't affect any code segment. I still don't know why the program is doing this, but I've found that changing the two bytes @ 029F back to BF 00, packing and running the header code @ 02D3 changes the "hacked version" back to normal behavior, no extra life on notes!
So far, so good. My report. IMO, both versions out there could be such cracked ones. One bad, one good.
One question remains, however: "How does this autostart work?"
The first tape header is only loaded on $ 02FF without touching $ 0302 and $ 0303 (basic warm start vectors), and these addresses are not changed later.
The IRQ vectors are touched, but only after the entire code 02A1 - 02FF is autostarted.
See tap layout screenshot and extracted code below (Vice). BR
Code: Select all
(C:$03fc) m 033c 03fb
>C:033c 03 9f 02 00 03 4d 49 4e .....MIN
>C:0344 45 52 20 0d 4c 4f 41 44 ER .LOAD
>C:034c 49 4e 47 05 00 20 20 20 ING..
>C:0354 20 20 20 20 20 20 20 20
>C:035c 20 20 20 20 20 20 20 20
>C:0364 20 20 20 20 20 20 20 20
>C:036c 20 20 20 20 20 20 20 20
>C:0374 20 20 20 20 20 20 20 20
>C:037c 20 20 20 20 20 20 20 20
>C:0384 20 20 20 20 20 20 20 20
>C:038c 20 20 20 20 20 20 20 20
>C:0394 20 20 20 20 20 20 20 20
>C:039c 20 20 20 20 20 20 20 20
>C:03a4 20 20 20 20 20 20 20 20
>C:03ac 20 20 20 20 20 20 20 20
>C:03b4 20 20 20 20 20 20 20 20
>C:03bc 20 20 20 20 20 20 20 20
>C:03c4 20 20 20 20 20 20 20 20
>C:03cc 20 20 20 20 20 20 20 20
>C:03d4 20 20 20 20 20 20 20 20
>C:03dc 20 20 20 20 20 20 20 20
>C:03e4 20 20 20 20 20 20 20 20
>C:03ec 20 20 20 20 20 20 20 20
>C:03f4 20 20 20 20 20 20 20 20
.C:029f BF 00 "original version"
.C:029f A1 02 "hacked version"
.C:02a1 AD 9F 02 LDA $029F
.C:02a4 C9 A1 CMP #$A1
.C:02a6 F0 03 BEQ $02AB
.C:02a8 4C BF EA JMP $EABF
.C:02ab 2C 24 91 BIT $9124
.C:02ae 68 PLA
.C:02af 68 PLA
.C:02b0 68 PLA
.C:02b1 68 PLA
.C:02b2 68 PLA
.C:02b3 68 PLA
.C:02b4 4C C4 02 JMP $02C4
.C:02b7 78 SEI
.C:02b8 A9 A1 LDA #$A1
.C:02ba 8D 14 03 STA $0314
.C:02bd A9 02 LDA #$02
.C:02bf 8D 15 03 STA $0315
.C:02c2 58 CLI
.C:02c3 60 RTS
.C:02c4 78 SEI
.C:02c5 A9 BF LDA #$BF
.C:02c7 8D 14 03 STA $0314
.C:02ca A9 EA LDA #$EA
.C:02cc 8D 15 03 STA $0315
.C:02cf 58 CLI
.C:02d0 4C F0 02 JMP $02F0
.C:02d3 A9 00 LDA #$00
.C:02d5 8D 70 03 STA $0370
.C:02d8 8D 71 03 STA $0371
.C:02db 8D 72 03 STA $0372
.C:02de 8D 73 03 STA $0373
.C:02e1 8D 74 03 STA $0374
.C:02e4 8D 75 03 STA $0375
.C:02e7 A9 01 LDA #$01
.C:02e9 85 CC STA $CC
.C:02eb 20 ED 2F JSR $2FED
.C:02ee 00 BRK
.C:02ef 00 BRK
.C:02f0 A9 01 LDA #$01
.C:02f2 85 B9 STA $B9
.C:02f4 85 BA STA $BA
.C:02f6 A9 00 LDA #$00
.C:02f8 85 B7 STA $B7
.C:02fa 20 46 F5 JSR $F546
.C:02fd 4C D3 02 JMP $02D3
.C:0300 3A NOOP
.C:0301 C4 83 CPY $83
.C:0303 C4 7C CPY $7C
.C:0305 C5 1A CMP $1A
.C:0307 C7 E4 DCP $E4
.C:0309 C7 86 DCP $86
.C:030b CE 00 00 DEC $0000
(C:$031f) m 033c 03fb
>C:033c 03 00 12 00 60 4d 41 4e ....`MAN
>C:0344 49 43 20 4d 49 4e 45 52 IC MINER
>C:034c 00 00 00 00 00 00 00 00 ........
>C:0354 05 00 00 00 00 00 01 00 ........
>C:035c 00 00 00 00 00 00 00 00 ........
>C:0364 00 00 00 00 00 00 00 00 ........
>C:036c 00 00 00 00 00 00 00 00 ........
>C:0374 00 00 00 00 00 00 00 00 ........
>C:037c 00 00 00 00 00 00 00 00 ........
>C:0384 00 53 20 48 45 41 52 4e .S HEARN
>C:038c 44 45 4e 20 41 4e 44 20 DEN AND
>C:0394 49 20 4c 4f 4d 41 53 00 I LOMAS.
>C:039c 00 00 00 00 00 00 00 00 ........
>C:03a4 00 00 00 00 00 00 00 00 ........
>C:03ac 00 00 00 00 00 00 00 00 ........
>C:03b4 00 00 00 00 00 00 00 00 ........
>C:03bc 00 00 00 00 00 00 00 00 ........
>C:03c4 00 00 00 00 00 00 00 00 ........
>C:03cc 00 00 00 00 00 00 00 00 ........
>C:03d4 00 00 00 00 00 00 00 00 ........
>C:03dc 00 00 00 00 00 00 00 00 ........
>C:03e4 00 00 00 00 00 00 00 00 ........
>C:03ec 00 00 00 00 00 00 00 00 ........
>C:03f4 00 00 00 00 00 00 00 00 ........
follows main code 1200-5FFF