Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- header
- lorom
- ;------------------;
- ; Defines ;
- ;------------------;
- !FreeSpace = $278000
- !FreeRAMz = $010B ; Used for level number. Make sure it's the same one as the one in levelASM, if you use levelASM.
- !FreeRAM = $7EC287 ; 4 RAM addresses! ($7EC287-$7EC28A)
- ;------------------;
- ; Hijax ;
- ;------------------;
- org $008DAC
- JML AutoStim
- org $00A5E8
- JML LevelStim
- ORG $05D8B9
- JSR Levelnummain
- ORG $05DC46
- Levelnummain: LDA $0E ;Load level number
- STA !FreeRAMz ;Store it in free stack RAM
- ASL A ;Multiply A by 2, probably to recover old code?
- RTS ;Return from subroutine
- ;------------------;
- ; Custom Routine ;
- ;------------------;
- org !FreeSpace
- !CodeSize = End-AutoStim
- db "STAR"
- dw !CodeSize-$01
- dw !CodeSize-$01^$FFFF
- AutoStim:
- PHB ; Wrapper.
- PHK ;
- PLB ;
- REP #$30 ; AXY = 16-bit.
- LDA $010B ; \ Level number : 8 in Y.
- PHA ; | Level number - AND #$0007 in X.
- LSR A ; |
- LSR A ; |
- LSR A ; |
- TAY ; |
- PLA ; |
- AND #$0007 ; |
- TAX ; /
- SEP #$20 ; A = 8-bit.
- LDA.w LevelTable,y ; \ Check if Layer 3 image is supposed to be uploaded.
- AND.w ANDTable,x ; |
- SEP #$10 ; XY = 8-bit.
- BEQ Return ; / If not, return.
- LDA !FreeRAM+3 ; \ If run once, return.
- BNE Return ; /
- LDA #$01 ; \
- STA !FreeRAM+3 ; /
- REP #$20 ; A = 16-bit.
- LDA !FreeRAM ; \ Get address to upload in pointer.
- STA $00 ; |
- SEP #$20 ; |
- LDA !FreeRAM+2 ; |
- STA $02 ; /
- PHK ; \ Jump to stripe image upload routine.
- PER Return-1 ; |
- PEA $84CE ; |
- JML $00871E ; /
- Return:
- STZ $2115 ; Original hijack.
- LDA #$42
- PLB
- JML $008DB1
- ANDTable:
- db $80,$40,$20,$10,$08,$04,$02,$01 ; Don't change.
- LevelTable:
- db %01000000,%00000000 ; Levels 0-F
- db %00000000,%00000000 ; Levels 10-1F
- db %00000000,%00000000 ; Levels 20-2F
- db %00000000,%00000000 ; Levels 30-3F
- db %00000000,%00000000 ; Levels 40-4F
- db %00000000,%00000000 ; Levels 50-5F
- db %00000000,%00000000 ; Levels 60-6F
- db %00000000,%00000000 ; Levels 70-7F
- db %00000000,%00000000 ; Levels 80-8F
- db %00000000,%00000000 ; Levels 90-9F
- db %00000000,%00000000 ; Levels A0-AF
- db %00000000,%00000000 ; Levels B0-BF
- db %00000000,%00000000 ; Levels C0-CF
- db %00000000,%00000000 ; Levels D0-DF
- db %00000000,%00000000 ; Levels E0-EF
- db %00000000,%00000000 ; Levels F0-FF
- db %00001110,%00000000 ; Levels 100-10F
- db %00000000,%00000000 ; Levels 110-11F
- db %00000000,%00000000 ; Levels 120-12F
- db %00000000,%00000000 ; Levels 130-13F
- db %00000000,%00000000 ; Levels 140-14F
- db %00000000,%00000000 ; Levels 150-15F
- db %00000000,%00000000 ; Levels 160-16F
- db %00000000,%00000000 ; Levels 170-17F
- db %00000000,%00000000 ; Levels 180-18F
- db %00000000,%00000000 ; Levels 190-19F
- db %00000000,%00000000 ; Levels 1A0-1AF
- db %00000000,%00000000 ; Levels 1B0-1BF
- db %00000000,%00000000 ; Levels 1C0-1CF
- db %00000000,%00000000 ; Levels 1D0-1DF
- db %00000000,%00000000 ; Levels 1E0-1EF
- db %00000000,%00000000 ; Levels 1F0-1FF
- ; This table determines which levels should upload a stripe image, and which levels should not.
- ; 0 = don't upload stripe image, 1 = do upload stripe image.
- LevelStim:
- LDX $0701 ; Original hijack.
- STX $0903
- LDA $010B
- ASL A
- CLC
- ADC $010B
- TAX
- LDA.l LayerPointerTable,x
- STA !FreeRAM
- SEP #$20
- LDA.l LayerPointerTable+2,x
- STA !FreeRAM+2
- LDA #$00
- STA !FreeRAM+3
- REP #$20
- JML $00A5EE
- LayerPointerTable:
- dl LayerImg1, Clouds, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 0-F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 10-1F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 20-2F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 30-3F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 40-4F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 50-5F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 60-6F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 70-7F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 80-8F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 90-9F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels A0-AF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels B0-BF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels C0-CF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels D0-DF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels E0-EF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels F0-FF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 100-10F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 110-11F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 120-12F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 130-13F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 140-14F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 150-15F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 160-16F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 170-17F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 180-18F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 190-19F
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1A0-1AF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1B0-1BF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1C0-1CF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1D0-1DF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1E0-1EF
- dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1F0-1FF
- ; Per-level pointer to stripe image tables.
- Clouds:
- incbin smwl3clouds.stim
- LayerImg1:
- incbin stim.stim
- End:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement