If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
🎄 Merry Christmas, TCRF! 🎄

Wayne Gretzky and the NHLPA All-Stars (Genesis)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Wayne Gretzky and the NHLPA All-Stars

Developer: Time Warner Interactive
Publisher: Time Warner Interactive
Platform: Genesis
Released in US: 1995
Released in EU: 1995
Released in AU: 1995


SourceIcon.png This game has uncompiled source code.


One of the many, many sports games on the Sega Genesis during the '90's.

Uncompiled Code

Two chunks of uncompiled code can be found within the game. The first of these chunks begins at 4AE00 and ends at 4BFDF.

CODEPLACE      ; PLOTTING SHADOWS!
                                
 MOVE.L #DUDVAR,A5      ; GET POINTER TO SECTION
 MOVE.W #DUDCHUNKIND,D5         ; INDEX!
                                                        
.PS1
 TST.W (A5,D5)                  ; CHECK IF PLAYER ON
 BEQ.S .NOSHAD
 TST.W DUDSHADFR(A5,D5)
 BEQ.S .NOSHAD                  ; SKIP IF NO SHADOW TO PLOT!
 
 MOVE DUDX(A5,D5),D0
 MOVE DUDYS(A5,D5),D1
 BEQ.S .NOSHAD          ; IF Y = 0- SKIP HIM
        
 LSR.W	#PSHIFT,D0             ; SAVE Y VALUE OF PUCK!
        SUB D2,D1               ; GET POSITION OF PUCK LESS ALTITUDE
        MOVE.W D1,SPY                           
        SUB WINDOWX,D0        ; GET WINDOWY
        MOVE.W D0,SPX
                                                  				                                                                
;;        MOVE PUCKFR,D0              ; AND PLOT THE PUCKER!
;;         JSR SAFEVIDEO_PLOT                 ; GENERAL PLOT TO VIDEO TAPE!
;        JSR SAFEGENERAL_PLOT
 
        POP D1                  
        TST.W PERIODOVER        ; IF REGULAR PERIOD OVER!
        BNE.S .SKIPSHAD
                                        
        MOVE.W D1,SPY
        MOVE #$5,D0              ; AND PLOT THE SHADOW!
        BSR SAFEVIDEO_PLOT                 ; GENERAL PLOT TO VIDEO TAPE!
 
.SKIPSHAD               
        RTS  
 
 
 XDEF INITDUDELIST
INITDUDELIST
 CLR.W PTEMP
                                                
 MOVE #(NUMDUDS+2)*2,D2         ; MAKE BIGGER  FOR PUCK AND GOALS....
                           
 MOVE.L #PLOTDUDELIST,A1        ; GET PLOT LIST!
.ID2
 MOVE.W PTEMP,D0
 ADD #$80,PTEMP
 MOVE D0,(A1)+                  ; SAVE WHICH GUY TO PLOT!
 SUBQ #2,D2                     ; ONE LESS GUY!
 BPL.S .ID2                      ; NOT DONE YET!
 
 MOVE.W #$FFFF,(A1)+            ; FLAG FOR END!
 RTS
 
 
SORTDUDES
; OK- THIS ONE GOES THROUGH DUDES AND JUST REA-ARRANGES THEM ONE AT A TIME...
 MOVE.L #DUDVAR,A5      ; GET POINTER TO SECTION
 
 tst.w gamenum
 beq.s .MAINGAME
 
; UHH- HERE CLEAR ALL PUCKX AND THAT SHIT...
 MOVE.W #LGOALDUD,D5            ; POINT TO LEFT GOAL...
 CLR.W DUDYS(A5,D5)
 CLR.W DUDFR(A5,D5)
 MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
 CLR.W DUDYS(A5,D5)
 CLR.W DUDFR(A5,D5)
 MOVE.W #PUCKDUD,D5            ; POINT TO LEFT GOAL...
 CLR.W DUDYS(A5,D5)
 CLR.W DUDFR(A5,D5)
 BRA .SORTEM
 
.MAINGAME
 MOVE.W #LGOALDUD,D5            ; POINT TO LEFT GOAL...
 MOVE.W GOALX,D0
 ASL #PSHIFT,D0
 MOVE.W D0,DUDX(A5,D5)
 MOVE.W GOALY,D0
 ASL #PSHIFT,D0
 MOVE D0,DUDYS(A5,D5)
 ADD D0,D0
 MOVE D0,DUDY(A5,D5)
 MOVE.W #4,DUDFR(A5,D5)
                      
 MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
 MOVE.W GOALX+2,D0
 ASL #PSHIFT,D0
 MOVE.W D0,DUDX(A5,D5)
 MOVE.W GOALY+2,D0
 ASL #PSHIFT,D0
 MOVE D0,DUDYS(A5,D5)
 ADD D0,D0
 MOVE D0,DUDY(A5,D5)
 MOVE.W #4+FLIP,DUDFR(A5,D5)
 
 MOVE.W #PUCKDUD,D5            ; POINT TO LEFT GOAL...
; MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
 MOVE.W PUCKX,DUDX(A5,D5)
 MOVE.W PUCKY,D0
 MOVE.W D0,DUDY(A5,D5)
 
 SUB.W PUCKA,D0                 ; TAKE OFF ALTITUDE!
 LSR #1,D0
 MOVE.W D0,DUDYS(A5,D5)
 MOVE.W PUCKFR,DUDFR(A5,D5)
                
 
.SORTEM        
; ANYWAYS SORT THE DAMN THING...
 MOVE.L #PLOTDUDELIST,A1        ; GET PLOT LIST!
.SDL
 MOVE.W (A1),D5                 ; GET GUY....
 MOVE.W 2(A1),D4                ; GET OTHER GUY!
 BMI.S .SWAPDONE                     ; OK- DONE...
        
 MOVE DUDY(A5,D5),D0
 CMP DUDY(A5,D4),D0
 BHS .NOSWAP            ; equal no swap!
                        
; WOW! SWAP THEM!
 MOVE D4,(A1)
 MOVE D5,2(A1)
 
.NOSWAP
 ADDQ.L #2,A1                     ; GO TO NEXT...
 BRA .SDL
 
.SWAPDONE
 RTS
 
 
; END OF FILE
; COACH.A       -
;
;
;       HANDLES PAUSED OPTIONS AND COACHING OPTIONS DURING GAMEPLAY!
 
	OPT	NOABSPCADD,E,NOCASE
	NAME	FLUFF
 
; SO LINE CHANGE CAN BE CALLED FROM COACHING SCREEN!
 
 
 
 INCLUDE S:ASM.INC
 INCLUDE S:DMA.INC
 INCLUDE S:SOUNDS.INC
                               
	SECTION CODE,,C
 
        
     XREF _gemspauseall
     XREF _gemsresumeall
 
 XREF SAVELINES                  ; OK- SAVE THE LINES       
 XREF CLEARRVSCREEN
 XREF CLEARLVSCREEN
                                       
 XREF FROMCOACHLINE0
 XREF FROMCOACHLINE1
 
        XREF SETSTATS
        XREF CLEARMOSTVSCREEN                        
        XREF CLEARVSCREEN                        
        XREF CLEARSCREENA
        XREF CLEARSCREENB
        XREF SETALLPAL

The second chunks begins at BAA00 and ends at BAFE6.

IF LESS THAN! */
MYIFL MACRO P1,P2,P3
         CMP.W P2,P1
         BLO.S P3         
     ENDM               
 
        
;/* LONG JUMP IF LESS */
MYIFLL MACRO P1,P2,P3
         CMP.W P2,P1
         BLO P3         
     ENDM               
                                
; IF LESS THAN! */
MYIFLE MACRO P1,P2,P3
         CMP.W P2,P1
         BLS.S P3         
     ENDM               
 
; DOES A QUICKY COMPARISON! */
MYIFG MACRO P1,P2,P3
         CMP.W P2,P1
         BHI.S P3         
     ENDM               
          
MYIFGL MACRO P1,P2,P3
         CMP.W P2,P1
         BHI P3         
     ENDM               
 
MYIFGE MACRO P1,P2,P3
         CMP.W P2,P1
         BHS.S P3
     ENDM               
                  
MYIFNE MACRO P1,P2,P3
         CMP.W P2,P1
         BNE.S P3         
     ENDM               
 
 
BOXCHECK MACRO X,Y,LEFT,RIGHT,TOP,BOTTOM
 LOCAL .NOTHIT,.BCDONE
 MYIFL X,LEFT,.NOTHIT
 MYIFG X,RIGHT,.NOTHIT
 MYIFL Y,TOP,.NOTHIT
 MYIFG Y,BOTTOM,.NOTHIT
 SETEQ
 BRA.S .BCDONE
.NOTHIT
 SETNE
.BCDONE
 ENDM
 
 
 
 
 
                                 
RANGERLH MACRO REG,LOW,HIGH
 LOCAL L1,L2
 
; CHECKS IF SOMETHING IN RANGE!
 IFL LOW,REG,L1          ; IF WAY PAST THEN WRAPPED UNDER- NOT NEGATIVE!
 MOVE.W LOW,REG           ; IF SO, STOP!
 BRA.S L2                  ; WHY NEEDED?
                                            
L1:                    
 IFG HIGH,REG,L2       ; IS IT LOWER THAN BOTTOM  THEN KOSHER!?
 MOVE.W	HIGH,REG


(Source: evilhamwizard)