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

Sports Illustrated: Golf Classic

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Sports Illustrated: Golf Classic

Also known as: Golf Classic (EU)
Developer: Unexpected Development
Publisher: Malibu Games
Platforms: Game Boy, Super Game Boy
Released in US: July 1995
Released in EU: 1995


CodeIcon.png This game has unused code.
SourceIcon.png This game has uncompiled source code.
SoundIcon.png This game has unused sounds.


Sports Illustrated: Golf Classic uses Super Game Boy sound effects and has a very good soundtrack... there isn't much more.

Unused Super Game Boy Sounds

The game has a SOUND table fully programmed for both A and B type sounds along with the recommended pitch/volume settings, as with the Tetris 2 (Game Boy) sound test. The game does not use B type sounds.

Game Genie code ??8-53B-7FA ID 00-30, 31-4A will replace the menu selection sound with any of the unused sounds.

There is also a routine that loads the unused mute command, and a separate routine that sets the unused SOUND bytes. Game Genie code ??6-1FF-E6A will set the unused bytes to any value.

Unused Text

There is some weird copyright string at 20010 in game ROM:

19930610N.Nakano

filling empty area of one of the bank offset tables.

Uncompiled SNES Code

For some reason, a large amount of uncompiled SNES assembly code is scattered around the ROM.

0x012D00

        
  353  0000                  ;
  354  0000                  ; General DMA transfer
  355  0000                  ;

0x013FD0

0                  
  436  0000                

0x014180

    ds      1               ;Current screen number
  441  0007                  Key_delay       ds      1               ;Key down flag (for toggle select)
  442  0008                  
  443  0008                  Tran_x          ds      2               ;Tranlsation X direction
  444  00

0x01441C

49  0011                  Angle_X         ds      1
  450  0012                  Sin_ret         ds      2
  451  0014                  Cos_ret         ds      2
  452  0016                  
demo.X65                                          ......PAGE 0009
LINE#  LOC   CODE

0x01441C

  477  0035                  clip_y_min      ds      1               ;Clip limits for 3d-window
  478  0036                  clip_y_max      ds      1
  479  0037                  clip_x_min      ds      1
  480  0038                  clip_x_max      ds      1
  481  0039                  
  482  0039                  Screen_count    ds      1
  483  003A                  Vertex_count    ds      2
  484  003C                  
  485  003C                  Idle    ds              2
  486  003E                  ;_____________________________________________________________________________
  487  003E                          org     $8000                   ;Starts $8000 (mode 20)
  488  8000                  
  489  8000                  Reset
  490  8000  78                      sei                             ;disable interupts
  491  8001  18                      clc                             ;clear carry
  492  8002  FB                      xce                             ;goto 65816 mode
  493  8003  5C 07 80 80             jmp     ~resetfast              ;force bank update
  494  8007                  
  495  8007                  resetfast
  497  8007                  ;*****************************************************************************
  498  8007                  ;*                                                                              *
  499  8007                  ;*                      sfxinit.sfx                                             *
  500  8007                  ;*              Super FamiCom Initialization file                               *
  501  8007                  ;*              Programmed by: Wayne A. Shirk      

0x017069

              x  ;
  619  80F4  A9 00        x                  lda     #00
  620  80F6  8D 33 21     x                  sta     SetIni          ;
  621  80F9               x  ;
demo.X65                                          ......PAGE 0012
LINE#  LOC   CODE       LINE
  622  80F9               x  ;
  623  80F9               x  ;*********************** Initialize PPU Registers *****************************
  624  80F9               x  ;
  625  80F9               x  
  626  80F9  8D 00 42     x                  sta     NmiTimEn        ;
  627  80FC  8D 01 42     x                  sta     WrIO            ;
  628  80FF  8D 02 42     x                  sta     WrMpyA          ;
  629  8102  8D 03 42     x                  sta     WrMpyB          ;
  630  8105  8D 04 42     x                  sta     WrDivL          ;
  631  8108  8D 05 42     x                  sta     WrDivH          ;
  632  810B  8D 06 42     x                  sta     WrDivB          ;
  633  810E  8D 07 42     x                  sta     HTimeL          ;
  634  8111  8D 08 42     x                  sta     HTimeH          ;
  635  8114  8D 09 42     x                  sta     VTimeL          ;
  636  8117  8D 0A 42     x                  sta     VTimeH          ;
  637  811A  8D 0B 42     x                  sta     MDmaEn          ;
  638  811D  8D 0C 42     x                  sta     HDmaEn          ;
  639  8120  8D 0D 42     x                  sta     MemSel          ;
  640  8123               x  
  642  8123  AD 0D 42     x          lda     MemSel
  643  8126  09 01        x          ora     #$01
  644  8128  8D 0D 42     x          sta     MemSel                  ;Go to high speed
  645  812B               x  ;******************************************************************************
  646  812B               x  ;       SNS Development manual.
  647  812B               x  ;******************************************************************************
  648  812B               x  Code_Start
  649  812B  A9 00        x          lda     #$00                    ;Set BG Mode
  650  812D  8D 05 21     x          sta     BgMode                  ;Mode 0
  651  8130  A9 40        x          lda     #$40                    ;Set BG Size & SC Data VRAM Address
  652  8132  8D 07 21     x          sta     Bg1Sc                   ;Size=0, SC base=0
  653  8135  A9 00        x          lda     #$00                    ;BG Charter Name Addr in VRAM
  654  8137  8D 0B 21     x          sta     Bg12NBA                 ;base=8k
  655  813A  A9 01        x          lda     #$01                    ;Screen 1 main
  656  813C  8D 2C 21     x          sta     TMain                   ;
  657  813F  A9 01        x          lda     #01                     ;Turn on Auto Controller read
  658  8141  8D 00 42     x          sta     NmiTimEn                ;Turn off NMI
  659  8144               x  ;_________________________________________________________
  660  8144               x  ;       Setup Translation values
  661  8144               x  ;_________________________________________________________
  662  8144               x  Def_Tran
  663  8144               x          Acc16
  665  8144  C2 20       ax1         REP     #$20    
  666  8146              ax  
  667  8146  A9 26 00    ax          lda     #38
  668  8149  8D 0C 00    ax          sta     Tran_z
  669  814C  9C 08 00    ax          stz     Tran_x
  670  814F  9C 0A 00    ax          stz     Tran_y
  671  8152              ax  
  672  8152  AF 00 80 81 ax          lda     ~Obj_cnt
  673  8156  8D 3A 00    ax          sta     Vertex_count
  674  8159              ax  
  675  8159              ax          Acc8
  677  8159  E2 20        x1         SEP     #$20    
  678  815B               x  
  679  81

0x01A462

  830  8220                  ; Y Border
  831  8220                  
  832  8220  AE 35 00                ldx     Clip_Y_Min
  833  8223                  db_y
  834  8223  AD 37 00                lda     Clip_X_Min              ;Y Value
  835  8226  3A                      dec   

0x01C180

    ax          sta     Cord_pointer
  951  82BA              ax  ;*****************************************************************************
  952  82BA              ax  ;       Rotate about Z axis
  953  82BA              ax  ;       A> Temp4=Y*Sin(A)
  954  82BA              ax  ; 

0x01C14C

 960  82BD  AE 16 00    ax          ldx     Cord_Pointer            ;Setup cordinate pointer
  961  82C0              ax  ;-----------------------------------------------------------------------------
  962  82C0              ax  ;                       Y*Sin() -> Temp4
  963  82C0       

0x01CAF2

  ax          eor     #$ffff                  ;Make positive if negative (ABS)
  988  82E2  1A          ax          inc     A                       ;2's comp offset
  989  82E3  CE 1D 00    ax          dec     Neg_Flag                ;Note its really negative
  990  82E6              ax  USignDivA
  991  82E6  8D 04 42    ax          sta     WrDivL                  ;Dividend (Low&High)
  992  82E9              ax          Acc8
  994  82E9  E2 20        x1         SEP     #$20    
  995  82EB               x  
  996  82EB  A9 7F        x          lda     #$7f                    ;Divisor
  997  82ED  8D 06 42     x          sta     WrDivb
  998  82F0               x          Acc16
 1000  82F0  C2 20       ax1         REP     #$20    
 1001  82F2              ax  
 1002  82F2  EA          ax          nop
 1003  82F3  EA          ax          nop
 1004  82F4              ax  
 1005  82F4  AD 1D 00    ax          lda     Neg_Flag                ;Determine if orginal value was neg.
 1006  82F7  F0 09       ax          beq     PosDivA                 ;If not save to TEMP
 1007  82F9              ax  
 1008  82F9  AD 14 42    ax          lda     RdDivL                  ;Get value
 1009  82FC  49 FF FF    ax          eor     #$FFFF                  ;Invert
 1010  82FF  1A          ax          inc     A                       ;2's offset
 1011  8300  80 03       ax          bra     SkipDivA                ;Save it
 1012  8302              ax  PosDivA
 1013  8302  AD 14 42    ax          lda     RddivL                  ;Get Result (quotient)
 1014  8305              ax  SkipDivA
 1015  8305  8D 25 00    ax          sta     Temp4        

0x01DA5D

 8335  8D 06 42     x          sta     WrDivb
 1053  8338               x          Acc16
 1055  8338  C2 20       ax1         REP     #$20    
 1056  833A              ax  
 1057  833A  EA          ax          nop
 1058  833B  EA          ax          nop
 1059  833C              ax  
 1060  833C  AD 1D 00    ax          lda     Neg_Flag                ;Determine if orginal value was neg.
 1061  833F  F0 09       ax          beq     PosDivB                 ;If not save to

0x01F1E9

 ax  
 1156  83B9  49 FF FF    ax          eor     #$ffff                  ;Make positive if negative (ABS)
 1157  83BC  1A          ax          inc     A                       ;2's comp offset
 1158  83BD  CE 1D 00    ax          dec     Neg_Flag                ;Note its really negative
 1159  83C0              ax  USignDivD
 1160  83C0  8D 04 42    ax          sta     WrDivL                  ;Dividend (Low&High)
 1161  83C3              ax          Acc8
 1163  83C3  E2 20        x1         SEP     #$20    
 1164  83C5               x  
 1165  83C5  A9 7F        x          lda     #$7f                    ;Divisor
 1166  83C7  8D 06 42     x          sta     WrDivb
 1167  83CA               x          Acc16
 1169  83CA  C2 20       ax1         REP     #$20    
 1170  83CC              ax  
 1171  83CC  EA          ax          nop
 1172  83CD  EA          ax          nop
 1173  83CE              ax  
 1174  83CE  AD 1D 00    ax          lda     Neg_Flag                ;Determine if orginal value was neg.
 1175  83D1  F0 09       ax          beq     PosDivD                 ;If not save to TEMP
 1176  83D3              ax  
 1177  83D3  AD 14 42    ax          lda     RdDivL                  ;Get value
 1178  83D6  49 FF FF    ax          eor     #$FFFF                  ;Invert
 1179  83D9  1A          ax          inc     A                       ;2's offset
 1180  83DA  80 03       ax          bra     SkipDivD                ;Save it
 1181  83DC              ax  PosDivD
 1182  83DC  AD 14 42    ax          lda     RdDivL
 1183  83DF              ax  SkipDivD
 1184  83DF  8D 2B 00    ax          sta     Temp7                   ; Temp3=Cos(A)*Y
 1185  83E2              ax  ;-----------------------------------------------------------------------------
 1186  83E2              ax  ;                               Finish Calculations
 1187  83E2              ax  ; X'=X*Cos(A)-Y*Sin(A) => X'=Temp7-Temp4
 1188  83E2              ax  ; Y'=X*Sin(A)+Y*Cos(A) => Y'=Temp6+Temp5
 1189  83E2              ax  ; Z'=Z
 1190  83E2              ax  ;-----------------------------------------------------------------------------
 1191  83E2              ax  Y_Value_Z
 1192  83E2  AD 29 00    ax          lda     Temp6                   ;Get X*Sin(A)
 1193  83E5  8D 21 00    ax          sta     Temp2                   ;setup for twos add
 1194  83E8  AD 27 00    ax          lda     Temp5                   ;Get Y*Cos(A)
 1195  83EB  8D 23 00    ax          sta     Temp3                   ;setup for twos add
 1196  83EE  20 58 82    ax          jsr     Twos_add                ;do it
 1197  83F1  9D 00 11    ax          sta     Temp_Buffer_Y,x         ;save values (buffer for later translation
 1198  83F4              ax  X_Value_Z
 1199  83F4  AD 2B 00    ax          lda     Temp7                   ;Get X*Cos(A)
 1200  83F7  8D 21 00    ax          sta     Temp2                   ;setup for twos add
 1201  83FA  AD 25 00    ax          lda     Temp4                   ;Get Y*Sin(A)
 1202  83FD              ax  
 1203  83FD              ax  ; invert second value
 1204  83FD              ax  
 1205  83FD  49 FF FF    ax          eor     #$ffff                  ;flip bits
 1206  8400  1A          ax          inc     A                       ;add 1
 1207  8401  8D 23 00    ax          sta     Temp3                   ;setup for twos add
 1208  8404  20 58 82    ax          jsr     Twos_add             
[snip]
R8407  9D 00 10
[snip]
    Temp_Buf
[snip]
e it (16bit)

0x025BA0

	HDMA0ADDH
C	HDMA0ADDL
C	HDMA0BANK
C	HDMA0LNUM
C	HDMA1ADDH
C	HDMA1ADDL
C	HDMA1BANK
C	HDMA1LNUM
C	HDMA2ADDH
&C	HDMA2ADDL
%C	HDMA2BANK

0x027134

 00 00  x          dw      $0000,$0000,$0000,$0000
 5388  B810               x  ;1
 5389  B810  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5390  B818  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5391  B820               x  ;2
 5392  B820  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5393  B828  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5394  B830               x  ;3
 5395  B830  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5396  B838  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5397  B840               x  ;4
 5398  B840  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5399  B848  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5400  B850               x  ;5
 5401  B850  00 00 00 00  x          dw      $0000,$0000,$0000,$ff00
 5402  B858  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5403  B860               x  ;6
 5404  B860  00 00 00 00  x          dw      $0000,$0000,$0000,$ff00
 5405  B868  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5406  B870               x  ;7
 5407  B870  00 00 00 00  x          dw      $0000,$0000,$0000,$ff00
 5408  B878  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5409  B880               x  ;8
 5410  B880  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5411  B888  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5412  B890               x  ;9
 5413  B890  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5414  B898  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5415  B8A0               x  ;10
 5416  B8A0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5417  B8A8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5418  B8B0               x  ;11
 5419  B8B0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5420  B8B8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5421  B8C0               x  ;12
 5422  B8C0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5423  B8C8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5424  B8D0               x  ;13
 5425  B8D0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5426  B8D8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5427  B8E0               x  ;14
 5428  B8E0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5429  B8E8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5430  B8F0               x  ;15
 5431  B8F0  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5432  B8F8  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5433  B900               x  ;16
 5434  B900  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5435  B908  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5436  B910               x  ;17
 5437  B910  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5438  B918  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
demo.X65                                          ......PAGE 0098
LINE#  LOC   CODE       LINE
 5439  B920               x  ;18
 5440  B920  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5441  B928  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5442  B930               x  ;19
 5443  B930  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5444  B938  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5445  B940               x  ;20
 5446  B940  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5447  B948  00 00 00 00  x          dw      $0000,$0000,$0000,$0000
 5448  B950              
[snip]
R50  00 00 00 0
[snip]
  $0000,$000
[snip]
  B958  00 0

0x032580

0000                  INDEX8          macro
  319  0000                                  OFF16I          ;index reg set to 8 bit mode
  320  0000                                  SEP     #$10    
  321  0000                                  endm    
  322  0000                  
  323  0000                  ACC16           macro
  324  0000                                  on

0x03386D

#trfword
  398  00

0x03FFE8

36  0000                

0x036730

        sta     M7ParaC         ;Low
  582  809F  8D 1D 21     x                  sta     M7ParaC         ;High
  583  80A2  8D 1E 21     x                  sta     M7ParaD         ;Low
  584  80A5  A9 01        x                  lda     #01             
  585  80A7  8D 1E 21     x                  sta     M7ParaD         ;High

0x0371E8

itialize PPU Registers *

0x037E11

  670  814F  9C 0A 00    ax          stz     Tran_y
  671  8152              ax  
  672  8152  AF 00 80 81 ax

0x037FE8

       sta     Scale

0x038F7E

  740  81BB  88          ax          dey                             ;increment counter
  741  81BC  D0 F9       ax        

0x03AB60

        x  
  864  8248               x  ;*****************************************************************
  865  8248               x  ;       Draw Test image
  866  8248               x  ;       Use bitmap
  867  8248               x  ;*****************************************************************
  868  8248  20 A8 82     x          jsr     Draw_object
  869  824B               x  ;*****************************************************************
  870  824B               x  ;       Turn up brightness
  871  824B               x  ;*****************************************************************
  872  824B               x  Screen_On
  873  824B  A9 01        x          lda     #01             ; bg1
  874  824D  8D 2C 21     x          sta     TMain
  875  8250  A9 0F        x          lda     #$0f            ;max value 16
  876  8252  8D 00 21     x          sta     IniDisp         ;full bright
  877  8255  4C F7 89     x          jmp     Wait_Nmi        ; end of init code
  878  8258               x  ;/////////////////////////////////////////////////////////////////////////////
  879  8258               x  ;       Subroutines
  880  8258   

0x03B16C

and returns in Temp2

0x03B2EC

Carry bit
  892  82

0x03B453

0
12
3
1
12
124
52
;test for positive
  89

0x03BFC1

 Index16
  943  82AA  C2 10       ax1         REP     #$10    


(Source: nensondubois)