The Cutting Room Floor now has a Patreon page. Thanks for all your support!

If you've blocked our ad, please consider unblocking it.
We promise it isn't annoying. No flash, no sound, ever.

Ads by Project Wonderful! Your ad here, right now: $0

Sports Illustrated: Golf Classic

From The Cutting Room Floor
(Redirected from Golf Classic)
Jump to: navigation, 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)