Curt Vendel Posted June 3, 2004 Share Posted June 3, 2004 ******************************************************************************* * * STUNES.S by Kevin G. Osborn * ADAPTED FOR SPHINX --- A GAME OF SKILL AND CHANCE * Contains subroutines * TUNER * SCRAPALL * SCRAPONE * TUNIN ******************************************************************************* ******************************************************************************** * SIMPSONG VERSION 0.035 * * THIS SIMPLE SOUND DRIVER HAS, IN SOME WAYS, FEWER FEATURES BUT USES LESS RAM * AND ROM AND DOES NOT BACK UP SOUNDS FOR LATER (SOMETIMES MUCH LATER) * CONTINUATION. IT FEATURES 256 NOTE TUNES, SINGLE DURATION PER TUNE, ENDLESS * TUNES. IF A VALUE IN THE CONTROL OR VOLUME TABLES HAS THE HIGH BIT SET, THAT * VOLUME OR CONTROL WILL REMAIN IN EFFECT TILL THE END OF THE TUNE. * AN FF IN THE FREQUENCY TABLE WILL TERMINATE THE TUNE, AN FE WILL CAUSE IT TO * RESTART. AN FD WILL DECREMENT TUNREPT. IF THIS IS NON-ZERO, THE TUNE * CONTINUES. IF IT IS ZERO, THE NEXT BYTE IN FREQ. TABLE IS S TUNE WHICH * SHOULD BE CALLED. TUNREPT IS SET IN TUNIN. * * AS A NEW WHIZZY FEATURE, TUNER ALSO SUPPORTS RESTS. IF BIT 6 IS SET (NOT BIT 7 * ALSO) IN A FREQUENCY TABLE ENTRY, IT SILENCES SOUND IN THAT CHANNEL FOR THE * NUMBER OF FRAMES INDICATED IN THE REMAINING 5 BITS. * * NOTE ALSO THAT IN THIS VERSION A DURATION OF 1 INDICATES CHANGING SOUND EVERY * FRAME. THIS IS A CHANGE OVER VERSION .03 WHERE 0 INDICATED ONCE PER FRAME * SAMPLING. * SUBROUTINES: * SCRAPALL -- KILL ALL TUNES. SHOULD BE CALLED AT POWERUP, CHANGING PLAYERS, * AND GAME OVER * * SCRAPONE -- KILL A PARTICULAR TUNE. PUT THE NUMBER OF THE TUNE YA WANNA * AXE IN THE ACCUMULATOR. * * TUNIN -- START THAT TUNE YOU PUT IN ACC. * * THE ABOVE ROUTINES PRESERVE THE X AND Y REGS * * TABLES NEEDED ARE: * RAM: *DCH0 DS 1 ONE BYTE--DURATION CNTR CHAN. 0 *DCH1 DS 1 ONE BYTE--DURATION CNTR CHAN. 1 *TUNNUM DS 1 ONE BYTE--TUNE NUM FOR CHAN. 0 *TUNNUM1 DS 1 ONE BYTE--TUNE NUM FOR CHAN. 1 *TINDEX0 DS 1 ONE BYTE--NOTE POINTER 0 *TINDEX1 DS 1 ONE BYTE--NOTE POINTER 1 *CINDEX0 DS 1 CONTROL INDEX *CINDEX1 DS 1 *VINDEX0 DS 1 VOLUME INDEX *VINDEX1 DS 1 *TUNREPT0 DS 1 TUNE REPEAT COUNTER *TUNREPT1 DS 1 *MPTRL EQU KTEMP0 ZERO PAGE TEMP(NOT GAMEPLAY) *MPTRH EQU KTEMP1 ZERO PAGE TEMP(NOT GAMEPLAY) *TUNTEMP EQU TEMP0 ANY GAMEPLAY TEMP * ROM: * DURTABL ONE DURATION IN FRAMES PER TUNE * TBASE LOW ADDRESS OF THE START OF FREQ DATA BY TUNE NUMBER * TBASEH DITTO FOR HIGH ADDRESS * VBASE LOW ADDRESS OF THE START OF VOL DATA BY TUNE NUMBER * VBASEH DITTO FOR HIGH ADDRESS * CBASE LOW ADDRESS OF THE START OF CTRL DATA BY TUNE NUMBER * CBASEH DITTO FOR HIGH ADDRESS * PRYOR PRIORITY BY TUNE NUMBERS -- ZERO THE LOWEST * VOLTABL VOLUMES * FREQTABL FREQUENCIES * CTLTABL CONTROLS ZERODEF RSEG CODE6 ******************************************************************************** * SCRAPALL * KILL ALL TUNES. SHOULD BE CALLED AT POWERUP, CHANGING PLAYERS, * AND GAME OVER * USES A , DOESN'T USE X OR Y ;IF WE CAN USE X HERE, THEN WE CAN SAVE A BYTE SCRAPALL LDA #0 STA AUDV0 ;CLEAR SOUND REGISTERS STA AUDV1 LDA #$FF STA TUNNUM ;FLAG NO TUNES, BOTH CHANNELS STA TUNNUM1 RTS ; IF YOU WANT, LOOP THIS UP ******************************************************************************** * SCRAPONE * KILL A PARTICULAR TUNE. PUT THE NUMBER OF THE TUNE YA WANNA * AXE IN THE ACCUMULATOR. ;CAN WE USE X OR Y HERE?? SCRAPONE CMP TUNNUM ;ON CHAN 0? BNE CKCH1 LDA #0 STA AUDV0 ;CLEAR REGISTER LDA #$FF STA TUNNUM ;FLAG NO TUNE, CHANNEL 0 RTS CKCH1 SEC SBC TUNNUM1 ;ON CHAN 1? BNE REETS ;IF NON ZERO, RETURN STA AUDV1 ;CLEAR REGISTER LDA #$FF STA TUNNUM1 ;FLAG NO TUNE, CHAN 1 REETS RTS ******************************************************************************** * TUNIN * START THAT TUNE YOU PUT IN ACC. TUNIN STA TUNTEMP BIT GAMEU BPL REETS2 TYA ;SAVE Y,X REGS ON STACK PHA TXA PHA LDY #1 TROIKA LDA TUNNUM,Y ;FIRST CHECK FOR AN EMPTY CHANNEL CMP #$FF BEQ DO TRKNX DEY BPL TROIKA LDA TUNNUM1 ;THIS IS DONE TO PREVENT GLITCHINESS AND #$7F TAY LDA TUNNUM AND #$7F TAX LDA PRYOR,Y LDY #1 CMP PRYOR,X BCC REPTUN1 LDY #0 REPTUN1 LDA TUNNUM,Y AND #$7F TAX LDA PRYOR,X LDX TUNTEMP CMP PRYOR,X BCS ROOTS DO LDX TUNTEMP CPX #HISCOR0 BCC REGDO CPX #LOSCOR1+1 BCS REGDO LDA #4 ;REPEAT HISCORE TUNES FOUR TIMES STA TUNREPT0,Y ;BEFORE GOING TO ENDING REGDO TXA ;PLAY TUNE X ON CHANNEL Y ORA #$80 ;SET HIGH BIT STA TUNNUM,Y LDA #BACKGR0 ;PUNT BOTH CHANNELS OF BACKGROUND JSR SCRAPONE LDA #BACKGR1 JSR SCRAPONE ROOTS PLA ;RESTORE X,Y REGISTERS TAX PLA TAY REETS2 RTS ******************************************************************************** *TUNER SHOULD BE CALLED ONCE PER FRAME, NO INPUTS, AND IT OPERATES WITH *A TOTAL DISREGARD FOR REGISTER SANCTITY. EACH TUNE CAN BE 256 NOTES LONG *IF YOUR TUNES ARE VERY SMALL, YOU COULD DO AWAY WITH ALL THE INDIRECT STUFF TUNER ;PUT A CHECK FOR ATTRACT MODE HERE BIT GAMEU BMI NOREETS ; RTS WHEN IN ATTRACT MODE LDA #0 STA AUDV0 ;TURN OFF SOUND STA AUDV1 BEQ REETS2 * PLAY CHANNELS 0 AND 1 * NOREETS LDX #1 TUNLOP LDY TUNNUM,X INY BNE NETN ;TUNNUM=FF DO NEXT CHANNEL JNXTCH JMP NXTCH NETN DEY BPL BOOGIE * INITIALIZE A NEW TUNE (HIGH BIT ON Y IS SET) * TYA AND #$7F STA TUNNUM,X TAY LDA #1 STA DCH0,X ;START (DCHANNEL(X)=1) LDA #$FF ; INCREMENTS ON THE FIRST CALL STA TINDEX0,X ;AND INDEXES WILL BE ZEROED. STA CINDEX0,X STA VINDEX0,X LDA #0 STA VRUN,X BOOGIE LDA TBASE,Y STA MPTRL LDA TBASEH,Y STA MPTRH ;MPTR = FREQUENCY BASE ADDRESS DEC DCH0,X ;DEC DURATION BNE JNXTCH LDA DURTABL,Y ;NEW DURATION STA DCH0,X LDY TINDEX0,X ;FREQUENCY INDEX (OFF OF BASE) INC CINDEX0,X INC VINDEX0,X INY LDA (MPTRL),Y ;FETCH FREQUENCY CMP #$FF ;IS IT OVER? BNE CKENL STA TUNNUM,X ;END THIS FUNKY TUNE LDA #0 STA AUDV0,X BEQ JNXTCH ;JMP NEXT CHANNEL SKIPTWO INY JMP PSTFREQ ;Y BETTER NOT BE ZERO HERE CKENL CMP #$FE ;CODE FOR PLAYING TUNE AGAIN BEQ FOOBEQ CKNXTT CMP #$FD BNE SKIP ;DO A NORMAL FREQUENCY! * CODE $FD --> JUMP TO ANOTHER TUNE * INY ;DEFINATELY SKIP TO NEXT BYTE DEC TUNREPT0,X ;IF NOT DONE REPEATING, SKIP THIS AND BNE SKIPTWO ;NEXT BYTE IN FREQ TABLE. LDA (MPTRL),Y ;NEXT BYTE IS NEW TUNE STA TUNNUM,X TAY LDA TBASE,Y STA MPTRL LDA TBASEH,Y STA MPTRH ;LOAD NEW BASE * CODE $FE --> PLAY THE TUNE AGAIN * FOOBEQ LDY #0 TYA STA CINDEX0,X ;RESET CONTROL, VOLUME INDEXES STA VINDEX0,X STA VRUN,X PSTFREQ LDA (MPTRL),Y ; STFREQ BPL SKIP ;IF BIT 7 CLR, DO A REST * CHANGE THE DURATION * ; HUH INY ; LDA (MPTRL),Y ; STA DCH0,X ;STORE DURATION ; DEY ; LDA (MPTRL),Y ; INY ; JMP STIT0 ;STORE FREQUENCY * CHECK FOR A REST * SKIP ASL A BPL STIT ;STORE FREQ IF BIT 6 CLEAR LSR A AND #$BF ;RESET BIT 6 STA DCH0,X ;USE REMAINING 5 BITS FOR TYA ;A DURATION OF SILENCE STA TINDEX0,X DEC VINDEX0,X DEC CINDEX0,X ;HOLD CONTROL AND VOLUME INDEXES LDA #0 ;SILENCE STA AUDV0,X BEQ NXTCH ;JMP NEXT CHANNEL * STORE OUT THE FREQUENCY * STIT LSR A STIT0 STA AUDF0,X ;STORE AUDIO FREQUENCY TYA STA TINDEX0,X ;TINDEX = Y * LOOK UP VOLUME * DEC VRUN,X BPL CTRLOAD LDY TUNNUM,X LDA VBASE,Y STA MPTRL LDA VBASEH,Y STA MPTRH ;MPTR = VOLUME BASE LDY VINDEX0,X ;Y = VINDEX LDA (MPTRL),Y TAY AND #$0F STA AUDV0,X ;STORE AUDIO VOLUME TYA BMI CTRLOAD ;HIGH BIT SET LSR A LSR A LSR A LSR A STA VRUN,X INC VINDEX0,X * LOOK UP CONTROL * CTRLOAD DEC VINDEX0,X LDY TUNNUM,X LDA CBASE,Y STA MPTRL LDA CBASEH,Y STA MPTRH LDY CINDEX0,X ;Y = CINDEX LDA (MPTRL),Y BPL STCTRL DEY ;REPEAT FOREVER AND #$7F STCTRL STA AUDC0,X ;STORE AUDIO CONTROL TYA STA CINDEX0,X ;CINDEX = Y NXTCH DEX ;X = 0 (NEXT CHANNEL) BMI ROTS JMP TUNLOP ;DO CHANNEL 0 ROTS RTS RUNBACK ;PUT A CHECK FOR ATTRACT MODE HERE BIT GAMEU BMI NORTSBK ; RTS WHEN IN ATTRACT MODE LDA #0 STA AUDV0 ;TURN OFF SOUND STA AUDV1 RTS * PLAY CHANNELS 0 AND 1 * NORTSBK LDX #1 BAKLOP LDY BACKNUM,X LDA TBASE,Y STA MPTRL LDA TBASEH,Y STA MPTRH ;MPTR = FREQUENCY BASE ADDRESS DEC DBK0,X ;DEC DURATION BNE JNEXBK LDA DURTABL,Y ;NEW DURATION STA DBK0,X LDY TBINDX0,X ;FREQUENCY INDEX (OFF OF BASE) INC CBINDX0,X INC VBINDX0,X INY LDA (MPTRL),Y ;FETCH FREQUENCY CMP #$FE ;CODE FOR PLAYING TUNE AGAIN BNE STITBK * CODE $FE --> PLAY THE TUNE AGAIN * REPEATER LDY #0 TYA STA CBINDX0,X ;RESET CONTROL, VOLUME INDEXES STA VBINDX0,X STA VBRUN,X PLOKRST LDA (MPTRL),Y ; LOOKRST BPL SKIPBK ;IF BIT 7 CLR, DO A REST * CHANGE THE DURATION * ; HUH1 INY ; LDA (MPTRL),Y ; STA DBK0,X ;STORE DURATION ; DEY ; LDA (MPTRL),Y ; INY ; BNE STITBK ;STORE FREQUENCY * CHECK FOR A REST * SKIPBK ASL A BPL STITBK ;STORE FREQ IF BIT 6 CLEAR LSR A AND #$BF ;RESET BIT 6 STA DBK0,X ;USE REMAINING 5 BITS FOR TYA ;A DURATION OF SILENCE STA TBINDX0,X DEC VBINDX0,X DEC CBINDX0,X ;HOLD CONTROL AND VOLUME INDEXES JNEXBK JMP NEXBK * STORE OUT THE FREQUENCY * STITBK TYA STA TBINDX0,X ;TINDEX = Y * LOOK UP VOLUME * DEC VBRUN,X BPL CBLOAD LDY BACKNUM,X LDA VBASE,Y STA MPTRL LDA VBASEH,Y STA MPTRH ;MPTR = VOLUME BASE LDY VBINDX0,X ;Y = VINDEX LDA (MPTRL),Y BMI CBLOAD ;HIGH BIT SET LSR A LSR A LSR A LSR A STA VBRUN,X INC VBINDX0,X * LOOK UP CONTROL * CBLOAD DEC VBINDX0,X LDY BACKNUM,X LDA CBASE,Y STA MPTRL LDA CBASEH,Y STA MPTRH LDY CBINDX0,X ;Y = CINDEX LDA (MPTRL),Y BPL STCBX DEY ;REPEAT FOREVER STCBX TYA STA CBINDX0,X ;CINDEX = Y NEXBK DEX ;X = 0 (NEXT CHANNEL) BMI ROTSBK JMP BAKLOP ;DO CHANNEL 0 ROTSBK RTS BACKON BIT GAMEU BPL NOBAKON LDA DEATH BNE NOBAKON ;NOT WHEN BIRD IS DYING LDA TUNNUM AND TUNNUM+1 CMP #$FF BNE NOBAKON LDX #1 BAKONLP LDA BACKNUM,X STA TUNNUM,X LDA DBK0,X STA DCH0,X LDA TBINDX0,X STA TINDEX0,X LDA CBINDX0,X STA CINDEX0,X LDA VBINDX0,X STA VINDEX0,X LDA VBRUN,X STA VRUN,X DEX BPL BAKONLP NOBAKON RTS BRDSHOT EQU 0 ;TUNE NUMBERS RICCHET EQU 1 UWERUN EQU 2 ALADIN0 EQU 3 ALADIN1 EQU 4 UWEEXP EQU 5 SCBEXPL EQU 6 GLDEXPL EQU 7 SWIM EQU 8 ENDGAM0 EQU 9 ENDGAM1 EQU 10 MINISHOT EQU 11 VHDEATH EQU 12 CUCKOO1 EQU 13 CUCKOO2 EQU 14 NHIERO1 EQU 15 NHIERO2 EQU 16 NHIERO3 EQU 17 HMISS3 EQU 18 SPTUNE EQU 19 ;SPAWN RUNNING EQU 20 JWTUNE EQU 21 ;JEWEL SFINKS EQU 22 XLPOWER EQU 23 POWRUSE EQU 24 SPHXBM0 EQU 25 SPHXBM1 EQU 26 MINIBM EQU 27 HISCOR0 EQU 28 HISCOR1 EQU 29 LOSCOR0 EQU 30 LOSCOR1 EQU 31 HISEND0 EQU 32 HISEND1 EQU 33 LOSEND0 EQU 34 LOSEND1 EQU 35 BACKGR0 EQU 36 BACKGR1 EQU 37 FLASHT0 EQU 38 FLASHT1 EQU 39 BACKNUM DB BACKGR0,BACKGR1 ******************************************************************************** * pointer tables. TBASE DB L(BRDSHOTF),L(RICCHETF),L(UWERUNF),L(ALADIN0F),L(ALADIN1F) DB L(UWEEXPF),L(SCBEXPLF),L(GLDEXPLF) DB L(SWIMF),L(ENDGAM0F),L(ENDGAM1F) DB L(MINISHTF) DB L(VHDEATHF),L(CUCKOO1F),L(CUCKOO2F) DB L(NHIERO1F),L(NHIERO2F),L(NHIERO3F),L(HMISS3F) DB L(SPAWNF),L(RUNNINGF) DB L(JEWELF),L(SFINKSF),L(XLPOWERF) DB L(POWRUSEF),L(SPHXBM0F),L(SPHXBM1F),L(MINIBMF) DB L(HISCOR0F),L(HISCOR1F),L(LOSCOR0F),L(LOSCOR1F) DB L(HISEND0F),L(HISEND1F),L(LOSEND0F),L(LOSEND1F) DB L(BACKGR0F),L(BACKGR1F),L(FLASHT0F),L(FLASHT1F) TBASEH DB H(BRDSHOTF),H(RICCHETF),H(UWERUNF),H(ALADIN0F),H(ALADIN1F) DB H(UWEEXPF),H(SCBEXPLF),H(GLDEXPLF) DB H(SWIMF),H(ENDGAM0F),H(ENDGAM1F) DB H(MINISHTF) DB H(VHDEATHF),H(CUCKOO1F),H(CUCKOO2F) DB H(NHIERO1F),H(NHIERO2F),H(NHIERO3F),H(HMISS3F) DB H(SPAWNF),H(RUNNINGF) DB H(JEWELF),H(SFINKSF),H(XLPOWERF) DB H(POWRUSEF),H(SPHXBM0F),H(SPHXBM1F),H(MINIBMF) DB H(HISCOR0F),H(HISCOR1F),H(LOSCOR0F),H(LOSCOR1F) DB H(HISEND0F),H(HISEND1F),H(LOSEND0F),H(LOSEND1F) DB H(BACKGR0F),H(BACKGR1F),H(FLASHT0F),H(FLASHT1F) VBASE DB L(BRDSHOTV),L(RICCHETV),L(UWERUNV),L(ALADIN0V),L(ALADIN1V) DB L(UWEEXPV),L(SCBEXPLV),L(GLDEXPLV) DB L(SWIMV),L(ENDGAM0V),L(ENDGAM1V) DB L(MINISHTV) DB L(VHDEATHV),L(CUCKOO1V),L(CUCKOO2V) DB L(NHIERO1V),L(NHIERO2V),L(NHIERO3V),L(HMISS3V) DB L(SPAWNV),L(RUNNINGV) DB L(JEWELV),L(SFINKSV),L(XLPOWERV) DB L(POWRUSEV),L(SPHXBM0V),L(SPHXBM1V),L(MINIBMV) DB L(HISCOR0V),L(HISCOR1V),L(LOSCOR0V),L(LOSCOR1V) DB L(HISEND0V),L(HISEND1V),L(LOSEND0V),L(LOSEND1V) DB L(BACKGR0V),L(BACKGR1V),L(FLASHT0V),L(FLASHT1V) VBASEH DB H(BRDSHOTV),H(RICCHETV),H(UWERUNV),H(ALADIN0V),H(ALADIN1V) DB H(UWEEXPV),H(SCBEXPLV),H(GLDEXPLV) DB H(SWIMV),H(ENDGAM0V),H(ENDGAM1V) DB H(MINISHTV) DB H(VHDEATHV),H(CUCKOO1V),H(CUCKOO2V) DB H(NHIERO1V),H(NHIERO2V),H(NHIERO3V),H(HMISS3V) DB H(SPAWNV),H(RUNNINGV) DB H(JEWELV),H(SFINKSV),H(XLPOWERV) DB H(POWRUSEV),H(SPHXBM0V),H(SPHXBM1V),H(MINIBMV) DB H(HISCOR0V),H(HISCOR1V),H(LOSCOR0V),H(LOSCOR1V) DB H(HISEND0V),H(HISEND1V),H(LOSEND0V),H(LOSEND1V) DB H(BACKGR0V),H(BACKGR1V),H(FLASHT0V),H(FLASHT1V) CBASE DB L(BRDSHOTC),L(RICCHETC),L(UWERUNC),L(ALADIN0C),L(ALADIN1C) DB L(UWEEXPC),L(SCBEXPLC),L(GLDEXPLC) DB L(SWIMC),L(ENDGAM0C),L(ENDGAM1C) DB L(MINISHTC) DB L(VHDEATHC),L(CUCKOO1C),L(CUCKOO2C) DB L(NHIERO1C),L(NHIERO2C),L(NHIERO3C),L(HMISS3C) DB L(SPAWNC),L(RUNNINGC) DB L(JEWELC),L(SFINKSC),L(XLPOWERC) DB L(POWRUSEC),L(SPHXBM0C),L(SPHXBM1C),L(MINIBMC) DB L(HISCOR0C),L(HISCOR1C),L(LOSCOR0C),L(LOSCOR1C) DB L(HISEND0C),L(HISEND1C),L(LOSEND0C),L(LOSEND1C) DB L(BACKGR0C),L(BACKGR1C),L(FLASHT0C),L(FLASHT1C) CBASEH DB H(BRDSHOTC),H(RICCHETC),H(UWERUNC),H(ALADIN0C),H(ALADIN1C) DB H(UWEEXPC),H(SCBEXPLC),H(GLDEXPLC) DB H(SWIMC),H(ENDGAM0C),H(ENDGAM1C) DB H(MINISHTC) DB H(VHDEATHC),H(CUCKOO1C),H(CUCKOO2C) DB H(NHIERO1C),H(NHIERO2C),H(NHIERO3C),H(HMISS3C) DB H(SPAWNC),H(RUNNINGC) DB H(JEWELC),H(SFINKSC),H(XLPOWERC) DB H(POWRUSEC),H(SPHXBM0C),H(SPHXBM1C),H(MINIBMC) DB H(HISCOR0C),H(HISCOR1C),H(LOSCOR0C),H(LOSCOR1C) DB H(HISEND0C),H(HISEND1C),H(LOSEND0C),H(LOSEND1C) DB H(BACKGR0C),H(BACKGR1C),H(FLASHT0C),H(FLASHT1C) ******************************************************************************** DURTABL DB $01 ;BRDSHOT DB $01 ;RICCHET DB $02 ;UWERUN DB $04 ;ALADIN0 DB $04 ;ALADIN1 DB $01 ;UWEEXP DB $01 ;SCBEXPL DB $01 ;GLDEXPL DB $03 ;SWIM DB $04 ;ENDGAM0 DB $04 ;ENDGAM1 DB $02 ;MINISHOT DB $02 ;VHDEATH DB $01 ;CUCKOO1 DB $01 ;CUCKOO2 DB $05 ;NHIERO1 DB $05 ;NHIERO2 DB $05 ;NHIERO3 DB $02 ;HMISS3 DB $02 ;SPAWN DB $03 ;RUNNING DB $02 ;JEWEL DB $02 ;SFINKS DB $03 ;XLPOWER DB $04 ;POWRUSE DB $02 ;SPHXBM0 DB $02 ;SPHXBM1 DB $03 ;MINIBM DB $08 ;HISCOR0 DB $08 ;HISCOR1 DB $08 ;LOSCOR0 DB $08 ;LOSCOR1 DB $08 ;HISEND0 DB $08 ;HISEND1 DB $08 ;LOSEND0 DB $08 ;LOSEND1 DB $02 ;BACKGR0 DB $02 ;BACKGR1 DB $06 ;FLASHT0 DB $06 ;FLASHT1 PRYOR DB $01 ;BRDSHOT OR THESE EVEN?? DB $02 ;RICCHET DB $02 ;UWERUN DB $05 ;ALADIN0 DB $05 ;ALADIN1 DB $03 ;UWEEXP DB $03 ;SCBEXPL DB $03 ;GLDEXPL DB $03 ;SWIM DB $09 ;ENDGAM0 DB $09 ;ENDGAM1 DB $04 ;ANY MINISPHINX OR SPHINX SHOT DB $06 ;VHDEATH DB $07 ;CUCKOO1 DB $07 ;CUCKOO2 DB $04 ;NHIERO1 DB $04 ;NHIERO2 DB $04 ;NHIERO3 DB $04 ;HMISS3 DB $03 ;SPAWN DB $02 ;RUNNING DB $04 ;JEWEL DB $03 ;SFINKS DB $04 ;XLPOWER DB $04 ;POWRUSE DB $05 ;SPHXBM0 DB $05 ;SPHXBM1 DB $04 ;MINIBM DB $0A ;HISCOR0 DB $0B ;HISCOR1 DB $0A ;LOSCOR0 DB $0B ;LOSCOR1 DB $0C ;HISEND0 DB $0D ;HISEND1 DB $0C ;LOSEND0 DB $0D ;LOSEND1 DB $00 ;BACKGR0 DB $00 ;BACKGR1 DB $08 ;FLASHT0 DB $08 ;FLASHT1 ******************************************************************************** * FREQTABL RICCHETF DB $44,$07,$07,$03,$06,$03,$06,$03,$06,$FF BRDSHOTF DB $00,$01,$02,$03,$04,$05,$07,$09,$0B,$0D,$0F,$12,$14,$16 DB $18,$1C,$1B,$1A,$1C,$1B,$1A,$1C,$FF ALADIN0F DB $1F,$1F,$48,$14,$44,$14,$44 DB $15,$15,$48,$14,$14,$48 DB $14,$14,$48,$13,$13,$48 DB $1D,$1D,$1D,$1D,$1D,$1D,$1D,$1D DB $1F,$1F,$48,$14,$14,$15,$15 DB $14,$14,$15,$15,$14,$14,$15,$15 DB $14,$14,$48,$13,$13,$48 DB $1D,$1D,$1D,$1D,$1D,$1D,$1D,$1D DB $1F,$1F,$48,$14,$44,$14,$44 DB $15,$15,$48,$14,$14,$48 DB $14,$14,$48,$13,$13,$48 DB $1D,$1D,$1D,$1D,$1D,$1D,$1D,$1D DB $1F,$1F,$48,$14,$14,$15,$15 DB $14,$14,$15,$15,$14,$14,$15,$15 DB $14,$14,$48,$13,$13,$48 DB $1D,$1D,$1D,$1D,$1D,$1D,$1D,$1D DB $1F,$1F,$48,$14,$44,$14,$44 DB $15,$15,$48,$14,$14,$48 DB $14,$14,$48,$13,$13,$48 DB $1D,$1D,$1D,$1D,$1D,$1D,$1D,$1D DB $1F,$1F,$48,$14,$14,$15,$15 DB $14,$14,$15,$15,$14,$14,$15,$15 DB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F DB $FF ALADIN1F DB $5F ;31 DB $5F ;62 DB $5F ;93 DB $5F ;124 DB $5F ;155 DB $5F ;186 DB $5F ;217 DB $5F,$48 ;248+8=256 FRAMES OF SILENCE DB $13,$13,$12,$12,$0F,$0F,$0E,$0E DB $0C,$0C,$48,$0F,$0F,$0E,$0E DB $0C,$0C,$48,$0F,$0F,$0E,$0E DB $0C,$0C,$0B,$0B,$0C,$0C,$0E,$0E DB $0F,$0F,$48,$13,$13,$14,$14 DB $13,$13,$12,$12,$0F,$0F,$0E,$0E DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$12,$12,$12,$12 DB $13,$13,$48,$13,$13,$14,$14 DB $18,$18,$18,$18,$14,$14,$14,$14 DB $13,$13,$14,$14,$13,$13,$12,$12 DB $0F,$0F,$0F,$0F,$0F,$0F,$0E,$0E DB $0F,$0F,$48,$0C,$0C,$0E,$0E DB $0F,$0F,$12,$12,$13,$13,$16,$16 DB $13,$13,$13,$13,$13,$13,$13,$13 DB $FF UWEEXPF DB $16,$15,$14,$13,$12,$11,$41,$0F DB $00,$0C,$01,$00,$0C,$00,$FF GLDEXPLF DB $17,$17,$06,$06,$05,$04,$04,$04,$FF ENDGAM0F DB $1F,$1F,$48,$14,$44,$14,$44,$15,$15,$48,$14,$14 DB $48,$14,$14,$48,$13,$13,$48,$1D,$1D,$1D,$1D DB $1D,$1D,$1D,$1D,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$FF ENDGAM1F DB $13,$13,$12,$12,$0F,$0F,$0E,$0E,$0C,$0C,$48,$0F,$0F DB $0E,$0E,$0C,$0C,$48,$0F,$0F,$0E,$0E,$0C,$0C,$0B,$0B DB $0C,$0C,$0E,$0E,$09,$09,$09,$09,$09,$09,$09,$09,$FF MINISHTF DB $03,$00,$07,$07,$05,$1F,$1F,$1F,$FF VHDEATHF DB $19,$1A,$1B,$1C,$1D,$1E,$1F,$1A DB $04,$05,$06 DB $07,$08,$09,$0A,$0B,$0C,$0D,$0E DB $0F,$10,$11,$12,$13,$14,$15,$16 DB $17,$18,$19,$1A,$1B,$1C,$1D,$1E,$FF CUCKOO1F DB $1E,$1D,$1F,$1A,$1E,$1C,$1F,$1A DB $0C,$0C,$0C,$06,$05,$06,$0F,$0F DB $0F,$0F,$0F,$0F,$03,$06,$04,$03 DB $06,$04,$0C,$0C,$0C,$03,$05,$04 DB $0F,$0F,$0F,$0F,$0F,$0F,$03,$04 DB $06,$04,$06,$04,$0C,$0C,$0C,$03 DB $06,$05,$0F,$0F,$0F,$0F,$0F,$0F,$FF CUCKOO2F DB $00,$00,$00,$00,$00,$00,$00,$00 DB $03,$04,$05,$03,$04,$05,$03,$04 DB $05,$03,$04,$05,$03,$04,$05,$03 DB $04,$05,$03,$04,$05,$03,$04,$05 DB $03,$04,$05,$03,$04,$05,$03,$04 DB $05,$03,$04,$05,$03,$04,$05,$03 DB $04,$05,$03,$04,$05,$03,$04,$05,$FF NHIERO1F DB $17,$16,$12,$11,$0F,$FF NHIERO2F DB $45,$12,$11,$0F,$45,$12,$FF NHIERO3F DB $11,$0F,$0E,$0F,$45,$0B,$0B,$0B,$FF HMISS3F DB $45,$13,$15,$17,$18,$19,$1A,$1C,$15 DB $1F,$1D,$1F,$1D,$1F,$1D,$1F,$1D,$FF SPAWNF DB $17,$17,$18,$18,$19,$19,$FF RUNNINGF DB $1F,$1F,$1F,$49,$14,$12,$10,$0F,$FE ;REPEATS JEWELF DB $8,$7,$6,$5,$4,$3,$4,$4 DB $4,$4,$4,$4,$4,$4,$4,$4 DB $4,$4,$4,$4,$4,$4,$4,$4,$4,$4,$FF SFINKSF DB $5,$4,$3,$2,$1,$8,$7,$6 DB $5,$4,$3,$3,$4,$3,$2,$FE ;REPEATS XLPOWERF DB $13,$43,$11,$43,$E,$43,$9,$9,$9,$9,$FF UWERUNF DB 9,$42,8,$42,4,$42,8,$42 DB 7,$42,4,$42,6,$42,5,$42,6,$FF SWIMF DB $8,$F,$8,$F,$8,$F,$8,$F DB $8,$F,$8,$F,$8,$F,$8,$F,$FE ;REPEATS SCBEXPLF DB $06,$07,$0C,$10,$12,$15,$15,$00 DB $14,$18,$14,$12,$0E,$08,$07,$00,$FF SPHXBM0F DB $08,$08,$03,$03,$04,$04,$06,$06 DB $08,$08,$03,$03,$04,$04,$06,$06 DB $08,$08,$03,$03,$04,$04,$06,$06 DB $08,$08,$03,$03,$04,$04,$06,$06,$FF SPHXBM1F DB $0A,$0A,$0A,$0A,$0B,$0B,$0C,$0C DB $0D,$0D,$0A,$0E,$0F,$0F,$10,$10 DB $11,$11,$12,$12,$13,$0C,$14,$14 DB $15,$0A,$16,$16,$17,$09,$18,$18,$FF MINIBMF DB $12,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$FF POWRUSEF DB $07,$0B,$08,$0B,$07,$0B,$08,$0B,$07,$0B,$FF HISCOR0F DB $0B,$09,$13,$06,$08,$0B,$0D,$11 DB $0E,$0D,$0E,$0B,$09,$0D,$08,$11 DB $0B,$06,$13,$05,$04,$13,$08,$09 DB $0B,$13,$10,$FD,HISEND0,$0E,$0D,$10,$11,$11,$FE ;REPEATS HISEND0F DB $0D,$11,$11,$11,$11,$FF HISCOR1F DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $12,$12,$12,$12,$12,$12,$12,$12 DB $FD,HISEND1,$12,$12,$12,$12,$0F,$0F,$0F,$0F,$FE ;REPEA HISEND1F DB $0F,$0F,$0F,$0F,$0D,$0D,$0D,$0D,$FF LOSCOR0F DB $0B,$09,$06,$09,$08,$0B,$0D,$10 DB $11,$0E,$0D,$0E,$09,$0D,$08,$11 DB $0D,$0B,$09,$06,$13,$06,$08,$09 DB $0B,$13,$10,$FD,LOSEND0,$0E,$0D,$10,$11,$11,$FE ;REPEATS LOSEND0F DB $0D,$11,$11,$11,$11,$FF LOSCOR1F DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $12,$12,$12,$12,$12,$12,$12,$12 DB $FD,LOSEND1,$12,$12,$12,$12,$0F,$0F,$0F,$0F,$FE ;REPEATS LOSEND1F DB $0F,$0F,$0F,$0F,$0D,$0D,$0D,$0D,$FF BACKGR1F BACKGR0F DB $B,$B,$B,$B,$B,$B,$B,$B DB $B,$B,$B,$B,$B,$B,$B,$B DB $C,$C,$C,$C,$C,$C,$C,$C DB $C,$C,$C,$C,$C,$C,$C,$C,$FE FLASHT0F DB $0D,$0E,$10,$11,$0D,$0E,$12,$13 DB $0D,$0E,$10,$11,$0D,$0E,$12,$13,$FF FLASHT1F DB $09,$08,$06,$13,$09,$08,$13,$05 DB $09,$08,$06,$13,$08,$08,$13,$05,$FF ******************************************************************************** * VOLTABL RICCHETV DB $1F,$08,$07,$06,$05,$04,$02 BRDSHOTV DB $09,$18,$17,$16,$25,$24,$23,$22,$21 ALADIN0V DB $14,$04,$04 DB $14,$14 DB $14,$14 DB $75 DB $14,$34 DB $75 DB $14,$14 DB $75 DB $14,$04,$04 DB $14,$14 DB $14,$14 DB $75 DB $14,$34 DB $75 DB $14,$14 DB $75 DB $14,$04,$04 DB $14,$14 DB $14,$14 DB $75 DB $14,$34 DB $56 DB $32,$13,$12,$11 ALADIN1V DB $15,$16,$17,$18 DB $19,$17,$18 DB $19,$17,$18 DB $19,$1A,$19,$18 DB $17,$17,$16 DB $17,$18,$19,$1A DB $B9,$3A DB $1A,$19,$18 DB $37,$38 DB $19,$18,$19,$1A DB $3B,$3C DB $1C,$1D,$1C DB $1B,$1A,$19,$18 DB $39,$08,$07,$06,$05 UWEEXPV DB $04,$05,$06,$07,$08,$09,$0F DB $0E,$0C,$09,$08,$06,$04 GLDEXPLV DB $18,$07,$06,$05,$04,$03,$02 ENDGAM0V DB $14,$04,$04,$14,$14 DB $14,$14,$75,$74 ENDGAM1V DB $15,$16,$17,$18,$19,$17,$18 DB $19,$17,$18,$19,$1A,$19 DB $18,$17,$06,$05,$04,$03,$02,$01 MINISHTV DB $0F,$07,$08,$06,$04,$03,$02,$01 VHDEATHV DB $18,$17,$16,$15 DB $E8 DB $37 DB $36,$35 CUCKOO1V DB $08,$07,$06,$05,$04,$05,$06,$07 DB $F5,$F5,$F5 CUCKOO2V DB $73,$F3,$F3,$F3 NHIERO1V DB $88 NHIERO2V DB $28,$8 NHIERO3V DB $38,$28 HMISS3V DB $1A,$1B,$1C,$1D DB $1E,$1D,$1C,$1B SPAWNV DB $8A RUNNINGV DB $23,$33 JEWELV DB $3,$14,$15,$6,$19 DB $7,$8,$9,$A,$19,$18 DB $17,$16,$15,$4,$3,$2,$1 SFINKSV DB $47,$8,$19 DB $1A,$B,$1E,$C,$D XLPOWERV DB $A,$A,$A,$1A,$9,$8 UWERUNV DB 3,6,5,4 DB 3,3,3,3,6 SWIMV DB 2,3,4,5,4,3,$22 DB 3,4,5,4,3,$22 SCBEXPLV DB $15,$16,$17,$18 DB $19,$18,$17,$16 SPHXBM0V DB $0D,$0E,$2F,$0E,$0D,$0C DB $0B,$0A,$09,$08,$07,$06,$05,$04 DB $1A,$19,$18,$17 DB $16,$15,$14,$13 SPHXBM1V DB $7F DB $7E DB $7D DB $1C,$19,$17,$15 MINIBMV DB $1F,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05 POWRUSEV DB $08,$07,$06,$05,$04,$03,$02,$02,$01,$01 LOSCOR0V LOSEND0V HISCOR0V HISEND0V DB $88 HISCOR1V HISEND1V DB $18,$17,$16,$15 DB $14,$13,$12,$11 DB $08,$17,$06,$15,$04,$03 DB $08,$07,$06,$05,$08,$07,$06,$05 LOSCOR1V DB $08,$05,$02,$90,$F0,$08,$05,$02,$00 LOSEND1V DB $08,$05,$03,$02 BACKGR1V BACKGR0V DB 6,6,4,2,1,$61,$31 DB 6,6,4,2,1,$61,$31 FLASHT0V FLASHT1V DB $78,8,7,6,5,4,3,2,1 ******************************************************************************** * CTLTABL MINISHTC DB $83 RICCHETC DB $08,$08,$8F ALADIN0C HMISS3C ENDGAM0C DB $81 HISEND0C HISCOR0C DB $0D,$0D,$04,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$04,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D BACKGR0C BACKGR1C LOSCOR1C LOSEND1C HISEND1C HISCOR1C DB $8A LOSEND0C LOSCOR0C DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$0D,$0D,$0D,$0D DB $0D,$0D,$0D,$0D,$04,$8D FLASHT0C POWRUSEC ALADIN1C ENDGAM1C RUNNINGC DB $8D BRDSHOTC UWEEXPC UWERUNC SWIMC MINIBMC GLDEXPLC DB $88 JEWELC DB $08,$08,$08,$08,$08,$08,$84 XLPOWERC CUCKOO2C NHIERO1C NHIERO2C NHIERO3C DB $84 VHDEATHC DB $03,$07,$0F,$08,$08,$08,$08,$08 DB $84 CUCKOO1C DB $08,$08,$08,$08,$08,$08,$08,$08 DB $84 SPAWNC DB $D,$1,$D,$1,$D,$1 SFINKSC DB $8F SCBEXPLC DB $D,$D,7,7,4,4,$F,$F DB $84 SPHXBM0C DB $08,$03,$08,$03,$08,$03,$08,$08 DB $08,$03,$08,$03,$08,$03,$08,$08 DB $08,$03,$08,$03,$08,$03,$08,$08 DB $08,$03,$08,$03,$08,$03,$08,$08 SPHXBM1C DB $08,$08,$03,$08,$08,$03,$08,$08 DB $03,$08,$08,$03,$08,$08,$03,$08 DB $08,$03,$08,$04,$03,$08,$08,$03 DB $08,$08,$03,$08,$08,$03,$08,$08 FLASHT1C DB $0D,$0D,$0D,$04,$0D,$0D,$04,$0D DB $0D,$0D,$0D,$04,$0D,$0D,$04,$0D ** END * SPHINX.S--SVEX.S ZERODEF * ALIEN STUFF ORG $FF80 ; $FF80 - $FFF7 RESERVED FOR ALIEN ALIEN DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;120 FOR ALIEN * VECTORS FOR STARTUP ORG $FFF8 DB $FF,$87 DB L(HANDLER),H(HANDLER) ;DLI HANDLER NMI DB L(STARTUP),H(STARTUP) ; STARTUP VECTOR DB 0,0 ;IRQ VECTOR NOT USED END ********SSCROBJ.S NEW SCROLLING OBJECT SHIT ZERODEF RSEG CODEF ; SCRLOAD SCANS THE SCROLLING OBJECT BUFFER FOR STAMPS THAT ARE READY TO BE ; LOADED, AND PUTS THEM INTO THE LOADER TABLES. ; IT IS RUN ONCE EVERY COARSE SCROLL. SCRBUFSZ EQU 10 ; SIZE OF SCROLLING OBJECT BUFFER INITVP EQU -15 ; INITIAL VP FOR MOST OBJECTS SCRLDRTS RTS SCRLOAD BIT GCOARSE BPL SCRLDRTS ; DO ONLY ON COARSE SCROLLS LDX #SCRBUFSZ SCRLDLP DEX BMI SCRLDRTS ; ALL DONE LDY STAMPID,X BMI SCRLDLP ; NOT AN ACTIVE BUFFER SLOT DEC ZONESBK,X BPL SCRLDLP ; NOT TIME YET STX TEMP0 ; SAVE X SINCE WE ARE LOADING THIS ONE LDA HPOS,X STA TEMP1 ; WE NEED THE HPOS ALL OVER THE PLACE JSR GETASLOT ; GET SLOT NUMBER FOR OBJECT IN X BPL FUCKTHIS ; NO SLOT AVAILABLE SO PUNT JMP SCRPUNT FUCKTHIS LDA SCRSL,Y ; START FILLING IN LOADER TABLES STA SLTBL,X LDA SCRSH,Y STA SHTBL,X LDA SCRSM,Y STA SMTBL,X LDA SCRPW,Y STA PWTBL,X LDA TEMP1 ; HPOS CLC ADC SCRHOFF,Y SEC SBC SCRDELTA STA HPTBL,X LDA SCRVP,Y CLC ADC SCRDELTA STA VPTBL,X LDA SCRY,Y STA YTBL,X LDA SCRCOL,Y STA COLSTAT,X BEQ NOCOLBOX ; NO COLISION BOX FOR THIS STAMP LDA TEMP1 ; HPOS LSR A CLC ADC SCRXOFF,Y ; ARE THESE AFFECTED BY SCRDELTA ???? STA COLX1,X CLC ADC SCRWDTH,Y STA COLX2,X LDA TEMP1 ; HPOS LSR A CLC ADC SCRZOFF,Y STA COLZ1,X CLC ADC SCRDPTH,Y STA COLZ2,X LDA SCRYOFF,Y STA COLY1,X CLC ADC SCRHGHT,Y STA COLY2,X NOCOLBOX LDA SCRDX,Y CMP #$FF BEQ AHIERO SEC SBC SCRDELTA AHIERO STA TEMP6 CLC ADC SCRDD,Y ; CALCULATE DF STA TEMP10 JSR OBJINS ; PUT IT IN THE LINKED LIST CPY #20 BNE DISP1 JSR MINIINIT JMP SCRPUNT DISP1 CPY #22 BNE DISP2 JSR FIREINIT JMP SCRPUNT DISP2 CPY #30 BNE DISP3 JSR SXFLINIT JMP SCRPUNT DISP3 CPY #31 BNE SCRPUNT JSR SXFHINIT SCRPUNT LDX TEMP0 ; GET SET TO CONTINUE LDA #-1 STA STAMPID,X ; MARK BUFFER SLOT AS UNUSED INC FRBUFPTR ; PUSH BUFFER SLOT BACK ONTO STACK LDY FRBUFPTR TXA STA FRBUFSTK,Y JMP SCRLDLP SCRSL DB L(CANEH) ; HIERO 1 0 DB L(MANWSTAF) ; HIERO 2 1 DB L(FEATHER) ; HIERO 3 2 DB L(EYEH) ; HIERO 4 3 DB L(AHNKH) ; HIERO 5 4 DB L(BIRDH) ; HIERO 6 5 DB L(SUNOWTRH) ; HIERO 7 6 DB L(BOWLH) ; HIERO 8 7 DB L(GEM) ; JEWEL 1 8 DB L(EGG) ; JEWEL 2 9 DB L(BAR) ; JEWEL 3 10 DB L(BIGPYR0) ; SM PYR BOT 11 DB L(BIGPYR1) ; SM PYR TOP 12 DB L(OPEPYR0) ; LG PYR BOT 13 DB L(OPEPYR1) ; LG PYR MID 14 DB L(OPEPYR2) ; LG PYR TOP 15 DB L(OBELISK0) ; OBELISK BOT 16 DB L(OBELISK1) ; OBELISK MID 17 DB L(OBELISK2) ; OBELISK TOP 18 DB L(MINISPH0) ; MINI BOT 19 DB L(MINISPH1) ; MINI TOP 20 DB L(POT) ; FIRE POT 21 DB L(TIP1) ; FIRE TIP 22 DB L(SPHINXL1) ; SPHINX LEFT BOT 23 DB L(SPHINXL2) ; SPHINX LEFT 24 DB L(SPHINXL3) ; SPHINX LEFT 25 DB L(SPHINXL4) ; SPHINX LEFT TOP 26 DB L(SPHINXR2) ; SPHINX RIGHT BOT 27 DB L(SPHINXR3) ; SPHINX RIGHT 28 DB L(SPHINXR4) ; SPHINX RIGHT TOP 29 DB L(SPFACE1L) ; SPHINX FACE BOT 30 DB L(SPFACE1H) ; SPHINX FACE TOP 31 SCRSH DB H(CANEH) ; HIERO 1 DB H(MANWSTAF) ; HIERO 2 DB H(FEATHER) ; HIERO 3 DB H(EYEH) ; HIERO 4 DB H(AHNKH) ; HIERO 5 DB H(BIRDH) ; HIERO 6 DB H(SUNOWTRH) ; HIERO 7 DB H(BOWLH) ; HIERO 8 DB H(GEM) ; JEWEL 1 DB H(EGG) ; JEWEL 2 DB H(BAR) ; JEWEL 3 DB H(BIGPYR0) ; SM PYR BOT DB H(BIGPYR1) ; SM PYR TOP DB H(OPEPYR0) ; LG PYR BOT DB H(OPEPYR1) ; LG PYR MID DB H(OPEPYR2) ; LG PYR TOP DB H(OBELISK0) ; OBELISK BOT DB H(OBELISK1) ; OBELISK MID DB H(OBELISK2) ; OBELISK TOP DB H(MINISPH0) ; MINI BOT DB H(MINISPH1) ; MINI TOP DB H(POT) ; FIRE POT DB H(TIP1) ; FIRE TIP DB H(SPHINXL1) ; SPHINX LEFT BOT DB H(SPHINXL2) ; SPHINX LEFT DB H(SPHINXL3) ; SPHINX LEFT DB H(SPHINXL4) ; SPHINX LEFT TOP DB H(SPHINXR2) ; SPHINX RIGHT BOT DB H(SPHINXR3) ; SPHINX RIGHT DB H(SPHINXR4) ; SPHINX RIGHT TOP DB H(SPFACE1L) ; SPHINX FACE BOT DB H(SPFACE1H) ; SPHINX FACE TOP SCRSM DB H(CANEH+$1100-$1000) ; HIERO 1 DB H(MANWSTAF+$1100-$1000) ; HIERO 2 DB H(FEATHER+$1100-$1000) ; HIERO 3 DB H(EYEH+$1100-$1000) ; HIERO 4 DB H(AHNKH+$1100-$1000) ; HIERO 5 DB H(BIRDH+$1100-$1000) ; HIERO 6 DB H(SUNOWTRH+$1100-$1000) ; HIERO 7 DB H(BOWLH+$1100-$1000) ; HIERO 8 DB H(GEM+$1100-$1000) ; JEWEL 1 DB H(EGG+$1100-$1000) ; JEWEL 2 DB H(BAR+$1100-$1000) ; JEWEL 3 DB H(BIGPYR0+$1100-$1000) ; SM PYR BOT DB H(BIGPYR1+$1100-$1000) ; SM PYR TOP DB H(OPEPYR0+$1100-$1000) ; LG PYR BOT DB H(OPEPYR1+$1100-$1000) ; LG PYR MID DB H(OPEPYR2+$1100-$1000) ; LG PYR TOP DB H(OBELISK0+$1100-$1000) ; OBELISK BOT DB H(OBELISK1+$1100-$1000) ; OBELISK MID DB H(OBELISK2+$1100-$1000) ; OBELISK TOP DB H(MINISPH0+$1100-$1000) ; MINI BOT DB H(MINISPH1+$1100-$1000) ; MINI TOP DB H(POT+$1100-$1000) ; FIRE POT DB H(TIP1+$1100-$100) ; FIRE TIP DB H(SPHINXL1+$1100-$1000) ; SPHINX LEFT BOT DB H(SPHINXL2+$1100-$1000) ; SPHINX LEFT DB H(SPHINXL3+$1100-$1000) ; SPHINX LEFT DB H(SPHINXL4+$1100-$1000) ; SPHINX LEFT TOP DB H(SPHINXR2+$1100-$1000) ; SPHINX RIGHT BOT DB H(SPHINXR3+$1100-$1000) ; SPHINX RIGHT DB H(SPHINXR4+$1100-$1000) ; SPHINX RIGHT TOP DB H(SPFACE1L+$1100-$1000) ; SPHINX FACE BOT DB H(SPFACE1H+$1100-$1000) ; SPHINX FACE TOP SCRPW DB $7E ; HIERO 1 DB $7D ; HIERO 2 DB $7E ; HIERO 3 DB $7D ; HIERO 4 DB $7D ; HIERO 5 DB $7E ; HIERO 6 DB $7D ; HIERO 7 DB $7D ; HIERO 8 DB $BE ; JEWEL 1 DB $9E ; JEWEL 2 DB $7D ; JEWEL 3 DB $7C ; SM PYR BOT DB $7E ; SM PYR TOP DB $77 ; LG PYR BOT DB $77 ; LG PYR MID DB $79 ; LG PYR TOP DB $7E ; OBELISK BOT DB $7E ; OBELISK MID DB $7E ; OBELISK TOP DB $F8 ; MINI BOT DB $F8 ; MINI TOP DB $FE ; FIRE POT DB $9E ; FIRE TIP DB $F7 ; SPHINX LEFT BOT DB $F7 ; SPHINX LEFT DB $F7 ; SPHINX LEFT DB $F7 ; SPHINX LEFT TOP DB $FA ; SPHINX RIGHT BOT DB $FA ; SPHINX RIGHT DB $FA ; SPHINX RIGHT TOP DB $FD ; SPHINX FACE BOT DB $FD ; SPHINX FACE TOP SCRHOFF DB 0 ; HIERO 1 DB 0 ; HIERO 2 DB 0 ; HIERO 3 DB 0 ; HIERO 4 DB 0 ; HIERO 5 DB 0 ; HIERO 6 DB 0 ; HIERO 7 DB 0 ; HIERO 8 DB 0 ; JEWEL 1 DB 0 ; JEWEL 2 DB 0 ; JEWEL 3 DB 0 ; SM PYR BOT DB 4-16 ; SM PYR TOP DB 0 ; LG PYR BOT DB 0-16 ; LG PYR MID DB 4-32 ; LG PYR TOP DB 0 ; OBELISK BOT DB 0-16 ; OBELISK MID DB 0-32 ; OBELISK TOP DB 0 ; MINI BOT DB 0-16 ; MINI TOP DB 0 ; FIRE POT DB 0 ; FIRE TIP DB 0 ; SPHINX LEFT BOT DB 0-16 ; SPHINX LEFT DB 0-32 ; SPHINX LEFT DB 0-48 ; SPHINX LEFT TOP DB 35-16 ; SPHINX RIGHT BOT DB 35-32 ; SPHINX RIGHT DB 35-48 ; SPHINX RIGHT TOP DB 8-16 ; SPHINX FACE BOT DB 8-32 ; SPHINX FACE TOP SCRVP DB INITVP ; HIERO 1 DB INITVP ; HIERO 2 DB INITVP ; HIERO 3 DB INITVP ; HIERO 4 DB INITVP ; HIERO 5 DB INITVP ; HIERO 6 DB INITVP ; HIERO 7 DB INITVP ; HIERO 8 DB INITVP ; JEWEL 1 DB INITVP ; JEWEL 2 DB INITVP ; JEWEL 3 DB INITVP ; SM PYR BOT DB INITVP ; SM PYR TOP DB INITVP ; LG PYR BOT DB INITVP ; LG PYR MID DB INITVP ; LG PYR TOP DB INITVP ; OBELISK BOT DB INITVP ; OBELISK MID DB INITVP ; OBELISK TOP DB INITVP ; MINI BOT DB INITVP ; MINI TOP DB INITVP-3 ; FIRE POT DB INITVP-2 ; FIRE TIP DB INITVP ; SPHINX LEFT BOT DB INITVP ; SPHINX LEFT DB INITVP ; SPHINX LEFT DB INITVP ; SPHINX LEFT TOP DB INITVP-4 ; SPHINX RIGHT BOT DB INITVP-4 ; SPHINX RIGHT DB INITVP-4 ; SPHINX RIGHT TOP DB INITVP+2 ; SPHINX FACE BOT DB INITVP+2 ; SPHINX FACE TOP SCRY DB 0 ; HIERO 1 DB 0 ; HIERO 2 DB 0 ; HIERO 3 DB 0 ; HIERO 4 DB 0 ; HIERO 5 DB 0 ; HIERO 6 DB 0 ; HIERO 7 DB 0 ; HIERO 8 DB 1 ; JEWEL 1 DB 1 ; JEWEL 2 DB 1 ; JEWEL 3 DB 1 ; SM PYR BOT DB 2 ; SM PYR TOP DB 1 ; LG PYR BOT DB 2 ; LG PYR MID DB 3 ; LG PYR TOP DB 1 ; OBELISK BOT DB 2 ; OBELISK MID DB 3 ; OBELISK TOP DB 1 ; MINI BOT DB 2 ; MINI TOP DB 1 ; FIRE POT DB 16 ; FIRE TIP DB 1 ; SPHINX LEFT BOT DB 2 ; SPHINX LEFT DB 3 ; SPHINX LEFT DB 4 ; SPHINX LEFT TOP DB 1 ; SPHINX RIGHT BOT DB 2 ; SPHINX RIGHT DB 3 ; SPHINX RIGHT TOP DB 2 ; SPHINX FACE BOT DB 3 ; SPHINX FACE TOP SCRCOL DB HIEROCOL ; HIERO 1 DB HIEROCOL+1 ; HIERO 2 DB HIEROCOL+2 ; HIERO 3 DB HIEROCOL+3 ; HIERO 4 DB HIEROCOL+4 ; HIERO 5 DB HIEROCOL+5 ; HIERO 6 DB HIEROCOL+6 ; HIERO 7 DB HIEROCOL+7 ; HIERO 8 DB TREASCOL ; JEWEL 1 DB TREASCOL+1 ; JEWEL 2 DB TREASCOL+2 ; JEWEL 3 DB PASSVCOL ; SM PYR BOT DB PASSVCOL ; SM PYR TOP DB PASSVCOL ; LG PYR BOT DB PASSVCOL ; LG PYR MID DB PASSVCOL ; LG PYR TOP DB PASSVCOL ; OBELISK BOT DB PASSVCOL ; OBELISK MID DB PASSVCOL ; OBELISK TOP DB PASSVCOL ; MINI BOT DB MINICOL ; MINI TOP DB PASSVCOL ; FIRE POT DB FIRECOL ; FIRE TIP DB PASSVCOL ; SPHINX LEFT BOT DB PASSVCOL ; SPHINX LEFT DB PASSVCOL ; SPHINX LEFT DB 0 ; SPHINX LEFT TOP DB PASSVCOL ; SPHINX RIGHT BOT DB PASSVCOL ; SPHINX RIGHT DB 0 ; SPHINX RIGHT TOP DB SPHNXCOL ; SPHINX FACE BOT DB 0 ; SPHINX FACE TOP SCRXOFF DB -7 ; HIERO 1 DB -7 ; HIERO 2 DB -7 ; HIERO 3 DB -7 ; HIERO 4 DB -7 ; HIERO 5 DB -7 ; HIERO 6 DB -7 ; HIERO 7 DB -7 ; HIERO 8 DB -4 ; JEWEL 1 DB -4 ; JEWEL 2 DB -4 ; JEWEL 3 DB -4 ; SM PYR BOT DB -2 ; SM PYR TOP DB -8 ; LG PYR BOT DB -6 ; LG PYR MID DB -3 ; LG PYR TOP DB -3 ; OBELISK BOT DB -3 ; OBELISK MID DB -2 ; OBELISK TOP DB -3 ; MINI BOT DB -2 ; MINI TOP DB -2 ; FIRE POT DB -3 ; FIRE TIP DB -10 ; SPHINX LEFT BOT DB 4 ; SPHINX LEFT DB -9 ; SPHINX LEFT DB 0 ; SPHINX LEFT TOP DB -12 ; SPHINX RIGHT BOT DB -9 ; SPHINX RIGHT DB 0 ; SPHINX RIGHT TOP DB -2 ; SPHINX FACE BOT DB 0 ; SPHINX FACE TOP SCRWDTH DB 12 ; HIERO 1 DB 12 ; HIERO 2 DB 12 ; HIERO 3 DB 12 ; HIERO 4 DB 12 ; HIERO 5 DB 12 ; HIERO 6 DB 12 ; HIERO 7 DB 12 ; HIERO 8 DB 6 ; JEWEL 1 DB 6 ; JEWEL 2 DB 6 ; JEWEL 3 DB 8 ; SM PYR BOT DB 4 ; SM PYR TOP DB 17 ; LG PYR BOT DB 12 ; LG PYR MID DB 6 ; LG PYR TOP DB 6 ; OBELISK BOT DB 6 ; OBELISK MID DB 4 ; OBELISK TOP DB 10 ; MINI BOT DB 8 ; MINI TOP DB 5 ; FIRE POT DB 7 ; FIRE TIP DB 6 ; SPHINX LEFT BOT DB 6 ; SPHINX LEFT DB 18 ; SPHINX LEFT DB 0 ; SPHINX LEFT TOP DB 24 ; SPHINX RIGHT BOT DB 18 ; SPHINX RIGHT DB 0 ; SPHINX RIGHT TOP DB 4 ; SPHINX FACE BOT Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.