don't click here

Source Code accidently compiled into games

Discussion in 'Technical Discussion' started by evilhamwizard, Feb 11, 2010.

  1. evilhamwizard

    evilhamwizard

    Researcher
    1,389
    442
    63
    I love when games are accidentally compiled with files that shouldn't have been compiled. My favorite being source code. Do you know of any games that do this by accident (except for Sonic 2NA)? Here's a nice one:

    This comes from ESPN Baseball Tonight:

    Code (ASM):
    1. entry point: 00000200
    2. no relocation info
    3. executable
    4.  
    5.  START      END     LENGTH    FILE            SECTION   TYPE
    6.  
    7. 00000000  00000007  000008  X.OUT            >(ORG)     T
    8. 00000000  00000007  000008  MAIN.O            (ORG)     T ORG
    9.  
    10. 00000060  0000008f  000030  X.OUT            >(ORG)     T
    11. 00000060  0000008f  000030  MAIN.O            (ORG)     T ORG
    12.  
    13. 00000100  00000100  000000  X.OUT            >(ORG)     T
    14. 00000100  00000100  000000  MAIN.O            (ORG)     T ORG
    15.  
    16. 00000100  000001ff  000100  X.OUT            >(ORG)     T
    17. 00000100  000001ff  000100  MAIN.O            (ORG)     T ORG
    18.  
    19. 00000200  00000ac3  0008c4  X.OUT            >(ORG)     T
    20. 00000200  00000ac3  0008c4  MAIN.O            (ORG)     T ORG
    21.  
    22. 00000ac4  0001272b  011c68  X.OUT            >.text     T
    23. 00000ac4  00000baf  0000ec  MAIN.O            .text     T
    24. 00000bb0  000069a7  005df8  WCS.O             .text     T
    25. 000069a8  0000fe73  0094cc  AI.O              .text     T
    26. 0000fe74  00010f2f  0010bc  LOGOS.O           .text     T
    27. 00010f30  0001101f  0000f0  LZWDECOM.O        .text     T
    28. 00011020  0001157f  000560  PPGE_PM.O         .text     T
    29. 00011580  0001159f  000020  PPGE_PMC.O        .text     T
    30. 000115a0  00012437  000e98  PPGE_GD.O         .text     T
    31. 00012438  00012507  0000d0  PPGE_GDC.O        .text     T
    32. 00012508  00012508  000000  GRAPHICS.O        .text     T
    33. 00012508  00012508  000000  FIELD.O           .text     T
    34. 00012508  00012508  000000  STRIPS.O          .text     T
    35. 00012508  00012508  000000  BATTART.O         .text     T
    36. 00012508  00012508  000000  LBATTART.O        .text     T
    37. 00012508  00012508  000000  FIELDART.O        .text     T
    38. 00012508  00012508  000000  FIELDRUN.O        .text     T
    39. 00012508  00012508  000000  FIELDTHR.O        .text     T
    40. 00012508  00012508  000000  FIELDCAT.O        .text     T
    41. 00012508  00012508  000000  RUNNER.O          .text     T
    42. 00012508  0001258b  000084  SOUND.O           .text     T
    43. 0001258c  0001272b  0001a0  STATS.O           .text     T
    44.  
    45. 00020000  0005ac4b  03ac4c  X.OUT            >sounds    D
    46. 00020000  0005ac4b  03ac4c  GEMS.O            .text     T
    47. 0005ac4c  0005ac4c  000000  GEMS.O            .data     D
    48. 0005ac4c  0005ac4c  000000  GEMS.O            .bss      B (00)
    49.  
    50. 0005ac4c  0006b3f7  0107ac  X.OUT            >field     D
    51. 0005ac4c  0006b3f7  0107ac  FIELD.O           field     D
    52.  
    53. 0006b3f8  001dad87  16f990  X.OUT            >graphics  D
    54. 0006b3f8  0006b477  000080  LOGOS.O           graphics  D
    55. 0006b478  00088963  01d4ec  GRAPHICS.O        graphics  D
    56. 00088964  0008fe1b  0074b8  FIELD.O           graphics  D
    57. 0008fe1c  000951bf  0053a4  STRIPS.O          graphics  D
    58. 000951c0  000bb8df  026720  BATTART.O         graphics  D
    59. 000bb8e0  000c4fbf  0096e0  LBATTART.O        graphics  D
    60. 000c4fc0  000e67a7  0217e8  FIELDART.O        graphics  D
    61. 000e67a8  00101297  01aaf0  FIELDRUN.O        graphics  D
    62. 00101298  0012ac7f  0299e8  FIELDTHR.O        graphics  D
    63. 0012ac80  001a1b67  076ee8  FIELDCAT.O        graphics  D
    64. 001a1b68  001dad87  039220  RUNNER.O          graphics  D
    65.  
    66. 001dad88  001df02b  0042a4  X.OUT            >tables    D
    67. 001dad88  001dad88  000000  MAIN.O            tables    D
    68. 001dad88  001dbabb  000d34  WCS.O             tables    D
    69. 001dbabc  001dc83b  000d80  AI.O              tables    D
    70. 001dc83c  001dcc4b  000410  LOGOS.O           tables    D
    71. 001dcc4c  001dcf4b  000300  PPGE_PM.O         tables    D
    72. 001dcf4c  001dcf4c  000000  PPGE_PMC.O        tables    D
    73. 001dcf4c  001dcf6b  000020  PPGE_GD.O         tables    D
    74. 001dcf6c  001dcf6c  000000  PPGE_GDC.O        tables    D
    75. 001dcf6c  001dcf6c  000000  GRAPHICS.O        tables    D
    76. 001dcf6c  001dcf8b  000020  FIELD.O           tables    D
    77. 001dcf8c  001df02b  0020a0  STATS.O           tables    D
    78.  
    79. 001df02c  001df02c  000000  X.OUT            >.batt    
    80.  
    81. 001df02c  001f6323  0172f8  X.OUT            >.graphic  D
    82. 001df02c  001f6323  0172f8  LOGOS.O           .graphic  D
    83.  
    84. 00ff0000  00fff197  00f198  X.OUT            >.data     D
    85. 00ff0000  00ff0000  000000  MAIN.O            .data     D
    86. 00ff0000  00ffce23  00ce24  WCS.O             .data     D
    87. 00ffce24  00ffce24  000000  AI.O              .data     D
    88. 00ffce24  00ffce24  000000  LOGOS.O           .data     D
    89. 00ffce24  00ffce24  000000  LZWDECOM.O        .data     D
    90. 00ffce24  00ffce33  000010  PPGE_PM.O         .data     D
    91. 00ffce34  00ffce34  000000  PPGE_PMC.O        .data     D
    92. 00ffce34  00fff013  0021e0  PPGE_GD.O         .data     D
    93. 00fff014  00fff014  000000  PPGE_GDC.O        .data     D
    94. 00fff014  00fff014  000000  GRAPHICS.O        .data     D
    95. 00fff014  00fff014  000000  FIELD.O           .data     D
    96. 00fff014  00fff014  000000  STRIPS.O          .data     D
    97. 00fff014  00fff014  000000  BATTART.O         .data     D
    98. 00fff014  00fff014  000000  LBATTART.O        .data     D
    99. 00fff014  00fff014  000000  FIELDART.O        .data     D
    100. 00fff014  00fff014  000000  FIELDRUN.O        .data     D
    101. 00fff014  00fff014  000000  FIELDTHR.O        .data     D
    102. 00fff014  00fff014  000000  FIELDCAT.O        .data     D
    103. 00fff014  00fff014  000000  RUNNER.O          .data     D
    104. 00fff014  00fff014  000000  SOUND.O           .data     D
    105. 00fff014  00fff197  000184  STATS.O           .data     D
    106.  
    107. 00fff198  00fff1b3  00001c  X.OUT            >.bss      B (00)
    108. 00fff198  00fff198  000000  MAIN.O            .bss      B (00)
    109. 00fff198  00fff1b3  00001c  WCS.O             .bss      B (00)
    110. 00fff1b4  00fff1b4  000000  AI.O              .bss      B (00)
    111. 00fff1b4  00fff1b4  000000  LOGOS.O           .bss      B (00)
    112. 00fff1b4  00fff1b4  000000  LZWDECOM.O        .bss      B (00)
    113. 00fff1b4  00fff1b4  000000  PPGE_PM.O         .bss      B (00)
    114. 00fff1b4  00fff1b4  000000  PPGE_PMC.O        .bss      B (00)
    115. 00fff1b4  00fff1b4  000000  PPGE_GD.O         .bss      B (00)
    116. 00fff1b4  00fff1b4  000000  PPGE_GDC.O        .bss      B (00)
    117. 00fff1b4  00fff1b4  000000  GRAPHICS.O        .bss      B (00)
    118. 00fff1b4  00fff1b4  000000  FIELD.O           .bss      B (00)
    119. 00fff1b4  00fff1b4  000000  STRIPS.O          .bss      B (00)
    120. 00fff1b4  00fff1b4  000000  BATTART.O         .bss      B (00)
    121. 00fff1b4  00fff1b4  000000  LBATTART.O        .bss      B (00)
    122. 00fff1b4  00fff1b4  000000  FIELDART.O        .bss      B (00)
    123. 00fff1b4  00fff1b4  000000  FIELDRUN.O        .bss      B (00)
    124. 00fff1b4  00fff1b4  000000  FIELDTHR.O        .bss      B (00)
    125. 00fff1b4  00fff1b4  000000  FIELDCAT.O        .bss      B (00)
    126. 00fff1b4  00fff1b4  000000  RUNNER.O          .bss      B (00)
    127. 00fff1b4  00fff1b4  000000  SOUND.O           .bss      B (00)
    128. 00fff1b4  00fff1b4  000000  STATS.O           .bss      B (00)
    129.  
    130. RESERVED SYMBOLS
    131.  
    132. 00fff1b4      heap_org
    133. 00000e4c      heap_len
    134. ff1b4  000000  FIELDART.O        .bss      B (00)
    135. 00fff1b4  00fff1b4  000000  FIELDRUN.O        .bss      B (00)
    136. 00fff1b4  00fff1b4  000000  FIELDTHR.O        .bss      B (00)
    137. 00fff1b4  00fff1b4</div>
    138.  
    139. Here's some more from the same game:
    140.  
    141. [CODE=ASM]*                                                                           *
    142. *              Project: Sony ESPN Baseball                                  *
    143. *                                                                           *
    144. *               Module: AI.S                                                *
    145. *                                                                           *
    146. * Module Creation Date: March 1993                                          *
    147. *                                                                           *
    148. *               Author: Russell Shanks                                      *
    149. *                                                                           *
    150. *   Development System: Sierra Systems                                      *
    151. *                                                                           *
    152. *****************************************************************************
    153.  
    154.  
    155.     include MACROS.I
    156.     Include EQUATES.I
    157.     include sound.inc
    158.  
    159. *----------------------------------------------------------------------------
    160.  
    161.  
    162. *****************************************************************************
    163. * PPGE
    164. *****************************************************************************
    165.     include ppge_var.inc
    166.  
    167. *----------------------------------------------------------------------------
    168. *
    169.     section tables
    170.  
    171.     xdef    radar_ytable
    172.     xdef    radar_xtable
    173.  
    174. InitialLogicTable         ;entity descending order
    175.     dc.l    HaloLogic
    176.     dc.l    FieldXLogic,LookEntityLogic,LookEntityLogic
    177.     dc.l    LookEntityLogic,LookEntityLogic,InitialThirdLogic
    178.     dc.l    InitialSecondLogic,InitialFirstRunLogic
    179.     dc.l    InitialBatterLogic,InitialFielderLogic
    180.     dc.l    InitialFielderLogic,InitialFielderLogic
    181.     dc.l    InitialFielderLogic,InitialFielderLogic
    182.     dc.l    InitialFielderLogic,InitialFielderLogic
    183.     dc.l    InitialCatcherLogic,InitialPitcherLogic
    184.  
    185. FielderSelectTable
    186.     dc.w    FBaseman_ptr,Fbaseman_ptr,Sbaseman_ptr,Pitcher_ptr
    187.     dc.w    ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
    188.     dc.w    Fbaseman_ptr,Sbaseman_ptr,Sbaseman_ptr,ShortStop_ptr
    189.     dc.w    ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
    190.     dc.w    RFielder_ptr,RFielder_ptr,RFielder_ptr,CFielder_ptr
    191.     dc.w    LFielder_ptr,LFielder_ptr,LFielder_ptr
    192.  
    193.  
    194. FielderRF_tbl
    195.     dc.w    8,6,7,7,8,8,7,7
    196.  
    197. FielderThrowIS_tbl
    198.     dc.w    3,3,4,4,3,3,4,4     ;only 3 and 4's good here
    199.  
    200.     dc.b  13,13,13,13,13,13,13,13
    201.     dc.b  13,13,13,13,13,13,13,13
    202.     dc.b  13,13,13,13,13,13,13,13
    203.     dc.b  13,13,13,13,13,13,13,13
    204.     dc.b  13,13,13,13,13,13,13,13
    205.     dc.b  13,13,13,13,13,13,13,13
    206.     dc.b  13,13,13,13,13,13,13,13
    207. *       dc.b  14,15,16,17,18,19,20,21
    208.     dc.b  13,13,13,13,13,13,13,13
    209. ballvscale_table
    210. *       dc.b  22,23,24,26,27,28,29,31
    211.   dc.b  13,13,14,14,15,16,17,18
    212. *       dc.b  32,33,34,36,37,38,39,41
    213.   dc.b  20,21,22,23,25,26,27,29
    214. *       dc.b  42,43,44,45,47,48,49,50
    215.   dc.b  30,31,32,33,35,36,37,38
    216. *       dc.b  52,53,54,55,57,58,59,60
    217.   dc.b  40,41,42,43,45,46,47,48
    218. *       dc.b  62,63,64,65,67,68,69,70
    219.   dc.b  50,51,52,53,54,55,56,57
    220. *       dc.b  71,73,74,75,76,78,79,80
    221.   dc.b  61,63,65,68,71,74,76,78
    222.     dc.b  81,83,84,85,86,88,89,90
    223.     dc.b  91,93,94,95,96,97,99,100
    224.     dc.b  101,102,104,105,106,107,109,110
    225.     dc.b  111,112,114,115,116,117,119,120
    226.     dc.b  121,122,123,125,126,127,128,130
    227.     dc.b  131,132,133,135,136,137,138,140
    228.     dc.b  141,142,143,145,146,147,148,150
    229.     dc.b  151,152,153,154,156,157,158,159
    230.     dc.b  161,162,163,164,166,167,168,169
    231.     dc.b  171,172,173,174,176,177,178,179
    232.     dc.b  180,182,183,184,185,187,188,189
    233.     dc.b  190,192,193,194,195,197,198,199
    234.     dc.b  200,202,203,204,205,206,208,209
    235.     dc.b  210,211,213,214,215,216,218,219
    236.     dc.b  220,221,223,224,225,226,228,229
    237.     dc.b  230,231,232,234,235,236,237,239
    238.     dc.b  240,241,242,244,245,246,247,249
    239.     dc.b  250,251,252,254,255,255
    240.  
    241.  
    242. *       dc.b  67,68,69,70,71,72,73,74
    243.    dc.b  31,33,35,37,39,41,43,47
    244. runnervscale_table
    245. *       dc.b  75,76,77,78,79,80,81,82
    246.    dc.b  49,51,53,57,59,61,63,65
    247. *       dc.b  83,84,85,86,87,88,89,90
    248.    dc.b  67,69,71,73,75,77,79,81
    249. *       dc.b  91,92,93,94,95,96,97,98
    250.    dc.b  83,85,87,89,91,93,95,96
    251. *       dc.b   99,100,100,100,100,100,100,100
    252.    dc.b   97,97,98,98,99,99,100,100
    253.     dc.b  100,100,100,100,100,100,100,100
    254.     dc.b  100,100,100,100,100,100,100,100
    255.     dc.b  100,100,100,100,100,100,100,100
    256.     dc.b  100,100,100,100,100,100,100,100
    257.     dc.b  101,102,104,105,106,107,109,110
    258.     dc.b  111,112,114,115,116,117,119,120
    259.     dc.b  121,122,123,125,126,127,128,130
    260.     dc.b  131,132,133,135,136,137,138,140
    261.     dc.b  141,142,143,145,146,147,148,150
    262.     dc.b  151,152,153,154,156,157,158,159
    263.     dc.b  161,162,163,164,166,167,168,169
    264.     dc.b  171,172,173,174,176,177,178,179
    265.     dc.b  180,182,183,184,185,187,188,189
    266.     dc.b  190,192,193,194,195,197,198,199
    267.     dc.b  200,202,203,204,205,206,208,209
    268.     dc.b  210,211,213,214,215,216,218,219
    269.     dc.b  220,221,223,224,225,226,228,229
    270.     dc.b  230,231,232,234,235,236,237,239
    271.     dc.b  240,241,242,244,245,246,247,249
    272.     dc.b  250,251,252,254,255,255
    273.  
    274.  
    275.  
    276. *       dc.b  100,100,100,100,100,100,100,100
    277. *runnervscale_table
    278. *       dc.b  100,100,100,100,100,100,100,100
    279. *       dc.b  100,100,100,100,100,100,100,100
    280. *       dc.b  100,100,100,100,100,100,100,100
    281. *       dc.b  100,100,100,100,100,100,100,100
    282. *       dc.b  100,100,100,100,100,100,100,100
    283. *       dc.b  100,100,100,100,100,100,100,100
    284. *       dc.b  100,100,100,100,100,100,100,100
    285. *       dc.b  100,100,100,100,100,100,100,100
    286. *       dc.b  101,102,104,105,106,107,109,110
    287. *       dc.b  111,112,114,115,116,117,119,120
    288. *       dc.b  121,122,123,125,126,127,128,130
    289. *       dc.b  131,132,133,135,136,137,138,140
    290. *       dc.b  141,142,143,145,146,147,148,150
    291. *       dc.b  151,152,153,154,156,157,158,159
    292. *       dc.b  161,162,163,164,166,167,168,169
    293. *       dc.b  171,172,173,174,176,177,178,179
    294. *       dc.b  180,182,183,184,185,187,188,189
    295. *       dc.b  190,192,193,194,195,197,198,199
    296. *       dc.b  200,202,203,204,205,206,208,209
    297. *       dc.b  210,211,213,214,215,216,218,219
    298. *       dc.b  220,221,223,224,225,226,228,229
    299. *       dc.b  230,231,232,234,235,236,237,239
    300. *       dc.b  240,241,242,244,245,246,247,249
    301. *       dc.b  250,251,252,254,255,255
    302.  
    303.  
    304.  
    305. *       dc.w    #0,#430,#518,#573,#615,#647
    306.     dc.w    #430,#430,#430,#430,#518,#573,#615,#647
    307. walltable
    308.     dc.w    #686,#717,#742,#766,#792,#816,#838,#862  ;16
    309.     dc.w    #878,#893,#913,#924,#925,#925,#925,#925  ;24
    310.     dc.w    #925,#925,#925,#925,#925,#925,#925,#925  ;32
    311.     dc.w    #926,#927,#928,#929,#930,#930,#930,#926  ;40
    312.     dc.w    #922,#918,#914,#910,#906,#902,#898,#894  ;48
    313.     dc.w    #890,#886,#882,#878,#874,#870,#866,#862  ;56
    314.     dc.w    #858,#854,#850,#846,#842,#838,#834,#830  ;64
    315.     dc.w    #826,#822,#818,#814,#810,#806,#802,#798  ;72
    316.     dc.w    #794,#790,#786,#782,#768,#764,#760,#756  ;80
    317.     dc.w    #752,#748,#744,#738,#734,#730,#726,#722  ;88
    318.     dc.w    #718,#714,#710,#706,#704,#700,#696,#692  ;96
    319.     dc.w    #688,#684,#680,#676,#672,#668,#664,#660  ;104
    320.     dc.w    #656,#652,#648,#644,#640,#634,#630,#626  ;112
    321. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;40
    322. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;48
    323. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;56
    324. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;64
    325. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;72
    326. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;80
    327. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;88
    328. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;96
    329. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;104
    330. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;112
    331.  
    332.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;120
    333.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;128
    334.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;136
    335.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;144
    336.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;152
    337.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;160
    338.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;168
    339.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;176
    340.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;184
    341.  
    342.     dc.b  8,8,8,8,8,8,8,8
    343. To1AndHome
    344. *       dc.b  8,8,8,8,8,8,8,8       ;0-7
    345.     dc.b  9,9,9,9,9,9,9,8       ;15
    346.     dc.b  8,8,8,8,8,7,7,7       ;23
    347.     dc.b  7,7,7,6,6,6,6,6       ;31
    348.     dc.b  6,5,5,5,5,5,5,4       ;39
    349.     dc.b  4,4,4,4,4,3,3,3       ;47
    350.     dc.b  3,3,3,3,2,2,2,2       ;55
    351.     dc.b  2,2,1,1,1,1,1,1       ;63
    352.     dc.b  1,1,1,1,1,1,1,1       ;71
    353.     dc.b  1,1,1,1,1,1,1,1
    354.     dc.b  1,1,1,1,1,1,1,1
    355.     dc.b  1,1,1,1,1,1,1,1
    356.     dc.b  1,1
    357.  
    358.     dc.b  1,1,1,1,1,1,1,1
    359.     dc.b  1,1,1,1,1,1,1,1
    360.     dc.b  1,1,1,1,1,1,1,1
    361.  
    362.     dc.b  4,4,4,4,4,4,4,4,4,4
    363. To2And3
    364.     dc.b  4,4,4,4,4,4,4,4,4,4
    365.     dc.b  3,3,3,3,3,3,3,3,3,3
    366.     dc.b  2,2,2,2,2,2,2,2,2,2
    367.     dc.b  1,1,1,1,1,1,1,1,1,1
    368.     dc.b  0,0,0,0,0,0,0,0,0,0
    369.  
    370. *       dc.b  0,0,0,0,0,0,0,0
    371. *       dc.b  0,0,0,0,0,0,0,0,0
    372. *       dc.b  0,0,0,0,0,0,0,0,0
    373.  
    374. FielderScaleTable
    375.     dc.b  0,0,0,0,0,0,0,1         ;8
    376.     dc.b  1,1,1,1,1,1,2,2         ;16
    377.     dc.b  2,2,2,2,2,3,3,3         ;32
    378. *       dc.b  3,3,3,3,4,4,4,4         ;40
    379. *       dc.b  4,4,4,5,5,5,5,5         ;48
    380.     dc.b  3,4,4,4,4,5,5,5         ;40
    381.     dc.b  5,5,5,5,5,5,5,5         ;48
    382.     dc.b  5,6,6,6,6,6,6,6         ;56
    383.     dc.b  6,6,6,6,6,6,6,6         ;64
    384.     dc.b  6,6,6,6,6,6,6,6         ;72
    385.     dc.b  6,6,6,6,6,6,6,6         ;
    386.     dc.b  6,6,6,6,6,6,6,6         ;
    387.     dc.b  6,6,6,6,6,6,6,6         ;
    388.     dc.b  6,6,6,6,6,6,6,6         ;
    389.     dc.b  6,6,6,6,6,6,6,6         ;
    390.     dc.b  6,6,6,6,6,6,6,6         ;
    391.     dc.b  6,6,6,6,6,6,6,6         ;
    392.     dc.b  6,6,6,6,6,6,6,6         ;
    393.     dc.b  6,6,6,6,6,6,6,6         ;
    394.     dc.b  6,6,6,6,6,6,6,6         ;
    395.     dc.b  6,6,6,6,6,6,6,6         ;
    396.     dc.b  6,6,6,6,6,6,6,6         ;
    397.     dc.b  6,6,6,6,6,6,6,6         ;
    398.     dc.b  6,6,6,6,6,6,6,6         ;184
    399.  
    400.  
    401. Pdirectiontable
    402.     dc.b    #0,#128,#0,#128,#192,#160,#224,#224
    403.     dc.b    #64,#96,#32,#64,#64,#64,#64,#64
    404.  
    405.     dc.b  0,0,0,0,0,0,0,0
    406.     dc.b  0,0,0,0,0,0,0,0
    407.     dc.b  0,0,0,0,0,0,0,0
    408.     dc.b  0,0,0,0,0,0,0,0
    409.     dc.b  0,0,0,0,0,0,0,0
    410.     dc.b  0,0,0,0,0,0,0,0
    411.     dc.b  0,0,0,0,0,0,0,0
    412.     dc.b  1,2,3,4,5,6,7,8               ; -8 - -1
    413. radar_ytable
    414.     dc.b  9,10,11,12,13,14,15,16             ; 0-7
    415.     dc.b  17,18,19,20,21,21,22,23             ; 8-15
    416.     dc.b  23,24,25,25,26,27,27,28             ; 16-23
    417.     dc.b  29,29,30,30,31,31,32,32             ; 24-31
    418.     dc.b  33,33,34,34,34,35,35,35             ; 32-39
    419.     dc.b  36,36,36,37,37,37,38,38             ; 40-47
    420.  
    421.     dc.b  38,39,39,40,40,41,41,42             ; 48-55
    422.     dc.b  42,43,43,44,44,45,45,46             ; 56-63   Pitcher's mound y=61
    423.  
    424.     dc.b  46,46,47,47,47,47,48,48             ; 64-71
    425.     dc.b  48,48,48,49,49,49,49,49
    426.     dc.b  49,50,50,50,50,50,50,51
    427.     dc.b  51,51,51,51,51,52,52,52
    428.     dc.b  52,52,52,53,53,53,53,53
    429.     dc.b  53,54,54,54,54,54,54,55
    430.     dc.b  55,55,55,55,55,56,56,56
    431.     dc.b  56,56,56,57,57,57,57,57
    432.     dc.b  57,58,58,58,58,58,58,59
    433.     dc.b  59,59,59,59,60,60,60,60
    434.  
    435.     dc.b  60,60,61,61,61,61,61,61
    436.     dc.b  62,62,62,62,62,62,63,63
    437.     dc.b  63,63,63,63,64,64,64,64
    438.     dc.b  64,64,65,65,65,65,65,65
    439.     dc.b  66,66,66,66,66,66,67,67
    440.     dc.b  67,67,67,67,68,68,68,68
    441.  
    442. Radar_xtable
    443.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
    444.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
    445.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
    446.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
    447.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
    448.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
    449.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
    450.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
    451.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
    452.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
    453.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
    454.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
    455.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
    456.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
    457.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
    458.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
    459.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
    460.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
    461.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
    462.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
    463.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
    464.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
    465.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
    466.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
    467.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
    468.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
    469.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
    470.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
    471.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
    472.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
    473.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
    474.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
    475.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
    476.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
    477.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
    478.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
    479.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
    480.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
    481.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
    482.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
    483.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
    484.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
    485.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
    486.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
    487.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
    488.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
    489.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
    490.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
    491.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
    492.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
    493.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
    494.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
    495.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
    496.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
    497.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
    498.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
    499.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
    500.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
    501.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
    502.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
    503.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
    504.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
    505.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
    506.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
    507.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
    508.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
    509.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
    510.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
    511.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
    512.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
    513.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
    514.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
    515.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
    516.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
    517.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
    518.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
    519.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
    520.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
    521.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
    522.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
    523.     dc.b    #16,#16,#16,#16,#16,#16,#16,#16
    524.     dc.b    #16,#16,#16,#16,#16,#16,#16,#17
    525.     dc.b    #17,#17,#17,#17,#17,#17,#17,#17
    526.     dc.b    #17,#17,#17,#17,#17,#18,#18,#18
    527.     dc.b    #18,#18,#18,#18,#18,#18,#18,#18
    528.     dc.b    #18,#18,#18,#19,#19,#19,#19,#19
    529.     dc.b    #19,#19,#19,#19,#19,#19,#19,#19
    530.     dc.b    #19,#20,#20,#20,#20,#20,#20,#20
    531.     dc.b    #20,#20,#20,#20,#20,#20,#20,#20
    532.     dc.b    #21,#21,#21,#21,#21,#21,#21,#21
    533.     dc.b    #21,#21,#21,#21,#21,#21,#22,#22
    534.     dc.b    #22,#22,#22,#22,#22,#22,#22,#22
    535.     dc.b    #22,#22,#22,#22,#23,#23,#23,#23
    536.     dc.b    #23,#23,#23,#23,#23,#23,#23,#23
    537.     dc.b    #23,#23,#24,#24,#24,#24,#24,#24
    538.     dc.b    #24,#24,#24,#24,#24,#24,#24,#24
    539.     dc.b    #24,#25,#25,#25,#25,#25,#25,#25
    540.     dc.b    #25,#25,#25,#25,#25,#25,#25,#26
    541.     dc.b    #26,#26,#26,#26,#26,#26,#26,#26
    542.     dc.b    #26,#26,#26,#26,#26,#27,#27,#27
    543.     dc.b    #27,#27,#27,#27,#27,#27,#27,#27
    544.     dc.b    #27,#27,#27,#28,#28,#28,#28,#28
    545.     dc.b    #28,#28,#28,#28,#28,#28,#28,#28
    546.     dc.b    #28,#29,#29,#29,#29,#29,#29,#29
    547.     dc.b    #29,#29,#29,#29,#29,#29,#29,#29
    548.     dc.b    #30,#30,#30,#30,#30,#30,#30,#30
    549.     dc.b    #30,#30,#30,#30,#30,#30,#31,#31
    550.     dc.b    #31,#31,#31,#31,#31,#31,#31,#31
    551.     dc.b    #31,#31,#31,#31,#32,#32,#32,#32
    552.     dc.b    #32,#32,#32,#32,#32,#32,#32,#32
    553.     dc.b    #32,#32,#33,#33,#33,#33,#33,#33
    554.     dc.b    #33,#33,#33,#33,#33,#33,#33,#33
    555.     dc.b    #33,#34,#34,#34,#34,#34,#34,#34
    556.     dc.b    #34,#34,#34,#34,#34,#34,#34,#35
    557.     dc.b    #35,#35,#35,#35,#35,#35,#35,#35
    558.     dc.b    #35,#35,#35,#35,#35,#36,#36,#36
    559.     dc.b    #36,#36,#36,#36,#36,#36,#36,#36
    560.     dc.b    #36,#36,#36,#37,#37,#37,#37,#37
    561.     dc.b    #37,#37,#37,#37,#37,#37,#37,#37
    562.     dc.b    #37,#38,#38,#38,#38,#38,#38,#38
    563.     dc.b    #38,#38,#38,#38,#38,#38,#38,#38
    564.     dc.b    #39,#39,#39,#39,#39,#39,#39,#39
    565.     dc.b    #39,#39,#39,#39,#39,#39,#40,#40
    566.     dc.b    #40,#40,#40,#40,#40,#40,#40,#40
    567.     dc.b    #40,#40,#40,#40,#41,#41,#41,#41
    568.     dc.b    #41,#41,#41,#41,#41,#41,#41,#41
    569.     dc.b    #41,#41,#42,#42,#42,#42,#42,#42
    570.     dc.b    #42,#42,#42,#42,#42,#42,#42,#42
    571.  
    572.  
    573. CPitchType_tbl
    574.     dc.w    0,0,0
    575.     dc.w    #Joy_U,#Joy_U,#Joy_U
    576.     dc.w    #Joy_D,#Joy_D,#Joy_D
    577.     dc.w    #Joy_L,#Joy_L,#Joy_L
    578.     dc.w    #Joy_R,#Joy_R,#Joy_R
    579.  
    580. ; 0 down middle, 1 high, 2 low, 3 left, 4 right
    581.  
    582.     xdef PlayerPos_EntityNum_tbl
    583.  
    584. PlayerPos_EntityNum_tbl
    585.     dc.w    #Pitcher_ptr,#Pitcher_ptr   ; s/r pitcher
    586.     dc.w    #FBaseman_ptr
    587.     dc.w    #SBaseman_ptr
    588.     dc.w    #TBaseman_ptr
    589.     dc.w    #ShortStop_ptr
    590.     dc.w    #LFielder_ptr
    591.     dc.w    #RFielder_ptr
    592.     dc.w    #CFielder_ptr
    593.     dc.w    #Catcher_ptr
    594.     dc.w    #Batter_ptr
    595.  
    596.  
    597. AFFlipTable
    598.     dc.w    FBaseman_ptr,TBaseman_ptr
    599.     dc.w    SBaseman_ptr,ShortStop_ptr
    600.     dc.w    RFielder_ptr,LFielder_ptr
    601.  
    602.     section .text
    603.  
    604. BatRangeTable
    605.     dc.w    BatLowHitRange,BatMidHitRange
    606.     dc.w    BatHighHitRange,BatMidHitRange
    607.  
    608.  
    609.     xdef    AI
    610.     xdef    NullLogic
    611.     xdef    BatSwing_000
    612.     xdef    Pitch_000
    613.     xdef    Bounds_RL
    614.     xdef    HaloLogic
    615.     xdef    FieldXLogic
    616.     xdef    LookEntityLogic
    617.     xdef    InitialBallLogic
    618.     xdef    BallShadowLogic
    619.     xdef    InitialCatcherLogic
    620.     xdef    InitialPitcherLogic
    621.     xdef    InitialBatterLogic
    622.     xdef    InitialCameraLogic
    623.     xdef    FractionalMultiply
    624.     xdef    InitialFielderLogic
    625.     xdef    InitialRunnerLogic
    626.     xdef    InitialFirstRunLogic
    627.     xdef    InitialSecondLogic
    628.     xdef    InitialThirdLogic
    629.  
    630. ***********************************************************************
    631. Cosine          MACRO
    632.  
    633.         movem.l \1/A0,-(sp)
    634.         lea.l   Cosine_Table,A0
    635.  
    636.         lsl.w   #1,\1
    637.         move.w  (A0,\1.w),\3
    638.         muls.w  \2,\3
    639.  
    640.         movem.l  (sp)+,\1/A0
    641.  
    642.         ENDM
    643.  
    644. Sine            MACRO
    645.  
    646.         movem.l \1/A0,-(sp)
    647.         lea.l   Sine_Table,A0
    648.  
    649.         lsl.w   #1,\1
    650.         move.w  (A0,\1.w),\3
    651.         muls.w  \2,\3
    652.  
    653.         movem.l  (sp)+,\1/A0
    654.  
    655.         ENDM
    656.  
    657. Atan            MACRO
    658.  
    659.         movem.l \1/\2/A0,-(sp)
    660.         lea.l   ArcTAN_Table,A0
    661.         lsr.l   #8,\1
    662.     IFEQ    ArcTan_Bytes-1
    663.         lsr.l   #1,\1
    664.     ELSEC
    665.         lsr.l   #1,\1
    666.     ENDC
    667.         add.l   #$8000,\2
    668.         clr.w   \2
    669.         swap    \2
    670.  
    671.         tst.l   \2
    672.         bne     .do_div\@
    673.  
    674.         move.w  #0,\3
    675.         bra     .atx\@
    676. .do_div\@
    677.         divu.w  \2,\1
    678.  
    679.         cmp.w   #$80,\1
    680.         blt     .adj\@
    681.  
    682.         move.w  #$20,\3
    683.         jmp     .atx\@
    684. .adj\@
    685.         sub.w   #1,\1
    686.         bpl     .do_shift\@
    687.         clr.w   \1
    688. .do_shift\@
    689.     IFEQ    ArcTan_Bytes-1
    690.         move.w  \1,\2
    691.         and.w   #$7E,\1
    692.  
    693.         move.w  (A0,\1.w),\3
    694.         btst    #0,\2
    695.         bne     .got_atan\@
    696.  
    697.         lsr.w   #8,\3
    698. .got_atan\@
    699.         and.w   #$00FF,\3
    700.     ELSEC
    701.         lsl.w   #1,\1
    702.         move.w  (A0,\1.w),\3
    703.     ENDC
    704. .atx\@
    705.         movem.l  (sp)+,\1/\2/A0
    706.  
    707.         ENDM
    708.  
    709. AI
    710.         movem.l D0-D7/A0-A6,-(sp)
    711.     move.l  sp,StackDebugPtr
    712.         move.w  Num_Entities,D7
    713. NORL
    714.     cmp.l   StackDebugPtr,sp
    715.     bne     NORL
    716.         lea.l   VTentity,A0
    717.         sub.l   #1,D7
    718.         bmi     _AI_done
    719.         move.l  D7,D0
    720.         asl.l   #Index_Shift,D0
    721.  
    722. *               cmp.w   #0,VTFon(A0,D0.w)       ;is this entity to be processed?
    723. *                beq     NORL                    ;if not then get the next one
    724.  
    725.         cmp.w   #2,RunnerExists
    726.         ble     .c1
    727.         cmp.w   #Batter_ptr,d0
    728.         ble     .c1
    729.         tst.w   VTFrend(a0,d0.w)
    730.         bne     .c1
    731.         move.w  d7,d6
    732.         and.w   #1,d6
    733.         move.w  VBlank_cnt,d5
    734.         and.w   #1,d5
    735.         eor.w   d5,d6
    736.         bne     NORL
    737. .c1
    738.         move.l  VTseq_step(A0,D0.w),D1  ;does this entity have AI?
    739.         beq     NORL                    ;if not then get the next one
    740.         move.l  D1,A1
    741.         jmp     (A1)                    ;otherwise do AI
    742. _AI_done
    743.         movem.l (sp)+,D0-D7/A0-A6
    744.         rts
    745.  
    746. *****************************************************************************
    747.  
    748. NullLogic       jmp     NORL
    749.  
    750. InfOutfline     equ     SBase_Y-$50000
    751. BILine1y       equ     #$34    ;20
    752. BILine2y       equ     #$c
    753.  
    754. Grab_Radius     equ     $20000
    755.  
    756.  
    757. BallSpeed       equ     $-200000
    758. Pball_x         equ     406
    759. Pball_y         equ     -21
    760.  
    761. BatHitFrame     equ     15           ;18
    762. CheckSwingFrame equ     15           ;18
    763.  
    764. RBatBoxMin     equ     $ffcc
    765. RBatBoxMax     equ     $ffe0  ;$ffe5
    766. LBatBoxMin     equ     $20    ;$1b
    767. LBatBoxMax     equ     $34
    768.  
    769. PitcherMaxL     equ     $fffc
    770. PitcherMaxR     equ     $4
    771.  
    772. BatHitToRunStrip equ    $0
    773.  
    774. SlowPitchSpeed equ     $08
    775. SlowPitchSpeedz equ     $2
    776. MediumPitchSpeed equ    $09
    777. MediumPitchSpeedz equ   $2
    778. FastPitchSpeed equ     $0b  ;a
    779. FastPitchSpeedz equ     $1
    780.  
    781. StraightPitch   equ     $0
    782. RightCurvePitch equ     $1
    783. LeftCurvePitch equ     $2
    784. UpCurvePitch   equ     $4
    785. DownCurvePitch equ     $8
    786. GroundFriction equ     $00000b00      ;500
    787.  
    788. BatLowHit       equ     $0
    789. BatMidHit       equ     $2
    790. BatHighHit     equ     $4
    791. Bunt           equ     $6
    792.  
    793.  
    794. BatYRangeLow   equ     $95   ;$082
    795. BatYRangeMid   equ     $a0   ;$095
    796. BatYRangeHigh   equ     $0ac
    797.  
    798. *BallRangeHigh equ     $0b2     ;off bottom of screen
    799. BallRangeHigh   equ     $0c0     ;off bottom of screen
    800.  
    801. BallMaxX       equ     $0400    ;off right of screen
    802. BallMinX       equ     $fc00    ;off left of screen
    803.  
    804. HitBoxY         equ     $095
    805. HitBoxTop       equ     $0b0     ;90
    806. HitBoxBottom   equ     $030
    807. HitBoxLeft     equ     $fff3
    808. HitBoxRight     equ     $b
    809.  
    810. Fielder_Reach   equ     $d0
    811. FielderRunSpeed equ     $5800  ;10000
    812.  
    813. Strike         equ     $0001
    814. Ball           equ     $ffff
    815. HT_Home_Run     equ     #1
    816. HT_Outf         equ     #2
    817. HT_Ord         equ     #0
    818. HT_Foul         equ     #3
    819. HT_Bunt         equ     #4
    820. HT_IFPop       equ     #5
    821.  
    822. BatLowHitRange equ     124  ;#$48
    823. BatMidHitRange equ     153  ;#$90
    824. BatHighHitRange equ     156  ;#$cb  
    825.  
    826. MaxZHeight     equ     #$400000
    827.  
    828.  
    829.  
    830. ballvscale_lo   equ     -7
    831. ballvscale_high equ     BallRangeHigh
    832.  
    833. *****************************************************************************
    834. WaitOnAnimation
    835.     tst.w   VTFrdir(a0,d0.w)    ;if animation not running don't wait
    836.     beq     setnextseq
    837.     tst.w   VTFrend(a0,d0.w)
    838.     beq     .done
    839. setnextseq
    840.     move.l  VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
    841.     clr.w   VTFrdir(a0,d0.w)
    842. .done   jmp     NORL
    843.  
    844. *****************************************************************************
    845. WaitOnCatchAnimation
    846.     jsr     checktags
    847.     tst.w   VTFrdir(a0,d0.w)    ;if animation not running don't wait
    848.     beq     .setnextseq
    849.     tst.w   VTFrend(a0,d0.w)
    850.     beq     .done
    851. .setnextseq
    852.     move.l  VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
    853.     clr.w   VTFrdir(a0,d0.w)
    854. .done   jmp     NORL
    855.  
    856.  
    857. **************************************************************
    858.     xdef HRDerbyLogic
    859.  
    860. HRDerbyLogic
    861.     tst.w   DerbyDone
    862.     bne     .waitstart
    863.  
    864.     move.w  Fcontrollers,d1     ;allow S to exit hrderby
    865.     or.w    BControllers,d1
    866.     btst    #Joy_S,d1
    867.     beq     .r1
    868.     lsr.w   #8,d1
    869.     btst    #Joy_S,d1
    870.     beq .waitstart
    871. .r1
    872.     lea.l   DerbyBatterNum,a1
    873.     add.l   BteamAdj,a1
    874.     move.w  (a1),PlayerAtBat
    875.   tst.w PlayerAtBat   ;QUICK PATCH : FIND BUG IN DOSUBS!
    876.   bge   .bp1
    877.   clr.w PlayerAtBat
    878. .bp1
    879.     tst.w   DerbyEvent
    880.     beq     .done
    881.     jsr     DisplayDerbyInfo
    882.  
    883.     cmp.w   #15,DerbyPitchNum
    884.     blt     .done
    885.  
    886.     tst.w   NumGamers
    887.     beq .dr
    888.     tst.w   DerbyPlayer
    889.     bne .dr
    890.     jsr Clear_ScrollA
    891. .dr
    892.     jsr DisplayDerbyRanking
    893.  
    894.     cmp.w   #1,NumGamers    ;derby over if 1 player mode
    895.     blt     .derbydone
    896.     tst.w   DerbyPlayer     ;or if player 2 is done
    897.     beq     .c1
    898. .derbydone
    899.     move.w  #1,DerbyDone
    900.     clr.w   VTFrdir(a0,d0.w)
    901.     clr.w   FComputer
    902.     bra     .done
    903. .c1
    904.     move.w  #1,NeedNewBatter
    905.     eor.l   #2,FTeamAdj
    906.     eor.l   #2,BTeamAdj
    907.     move.w  BTeamNum,d1
    908.     move.w  FTeamNum,BTeamNum
    909.     move.w  d1,FTeamNum
    910.     clr.w   DerbyPitchNum
    911.     clr.w   DerbyScore
    912.     eor.w   #1,DerbyPlayer
    913.     jsr     SwitchPlayerPal
    914. .done
    915.     jmp     NORL
    916. .waitstart
    917.     clr.w   VTfrdir(a0,d0.w)
    918.     move.w  Fcontrollers,d1
    919.     or.w    BControllers,d1
    920.     btst    #Joy_S,d1
    921.     beq     .checkc
    922.     lsr.w   #8,d1
    923.     btst    #Joy_S,d1
    924.     bne     .checkc
    925.     clr.w   FComputer       ;Reset Controllers
    926.     clr.l   FTeamAdj
    927.     move.l  #2,BTeamAdj
    928.     clr.w   killradarentities
    929.     clr.w   runsht
    930.     clr.w   runsvt
    931.     move    #0,FadeDirection        ;Fade Down Field
    932.     move    #2,FadeSpeed
    933.     clr.w   PracticeMode
    934.     StopSound       #S_DIGITALCROWD
    935.    jsr _Initgems
    936.     JSR     StartFadeDown
    937.     jsr     WaitForFadeUp
    938.     move.l  #VCTRL,A4               *; Macros use these registers
    939.     move.w  #$9000+000000,(A4)   ;R16= | 0 | 0 |VS1|VS0| 0 | 0 |HS1|HS0| Scroll Size (00=32,01=64,10=XX,11=128)
    940.     jmp     WarmEntry   ;DoGame
    941. .checkc
    942.     btst    #Joy_C,d1
    943.     beq     .done
    944.     lsr.w   #8,d1
    945.     btst    #Joy_C,d1
    946.     bne     .done
    947. *   jsr Clear_ScrollA
    948.     clr.w   DerbyDone
    949.     clr.w   DerbyPitchNum
    950.   move.w #14,derbypitchnum
    951.     clr.w   DerbyScore
    952.     move.w  #1,DerbyEvent
    953.     move.w  #1,NeedNewBatter
    954.     move.w  #1,FComputer
    955.     tst.w   NumGamers
    956.     bne .c1
    957.     clr.w   DerbyPlayer
    958.     jmp NORL
    959.  
    960. **************************************************************
    961.     xdef PracticeModeLogic
    962.  
    963. PracticeModeLogic
    964.     move.w  Fcontrollers,d1
    965.     or.w    BControllers,d1
    966.     btst    #Joy_S,d1
    967.     beq     .c1
    968.     lsr.w   #8,d1
    969.     btst    #Joy_S,d1
    970.     bne     .c1
    971.     bset    #Joy_S,d1
    972.     move.w  d1,BControllers
    973.     move.w  d1,FControllers
    974.     jsr     DisplayPractMsg
    975.     add.w   #1,temp4
    976.     cmp.w   #2,temp4
    977.     blt     .c1
    978.     jmp     DoGame
    979. .c1
    980.     move.w  Fcontrollers,d1
    981.     or.w    BControllers,d1
    982.     btst    #Joy_C,d1
    983.     beq     .done
    984.     lsr.w   #8,d1
    985.     btst    #Joy_C,d1
    986.     bne     .done
    987.  
    988.     move.w  #1,temp4
    989.     clr.w   d1                ;set debounce next round
    990.     bset    #Joy_C,d1
    991.     move.w  d1,BControllers
    992.     move.w  d1,FControllers
    993.  
    994.     eor.l   #2,FTeamAdj
    995.     eor.l   #2,BTeamAdj
    996.     move.w  Fcomputer,d1
    997.     move.w  Bcomputer,Fcomputer
    998.     move.w  d1,Bcomputer
    999.     jsr     DisplayPractMsg
    1000. .done
    1001.     jmp     NORL
    1002.  
    1003. HeavyCameraLogic
    1004.     movem.l a2,-(sp)
    1005.  
    1006.     lea.l   Vtentity+FieldX_ptr,a1
    1007.     tst.w   VTfon(a1)
    1008.     bne     _YNotReset
    1009.  
    1010. *  lea.l        Vtentity+ball_ent_ptr,a2
    1011. *  move.l       VTsped(a2),d2
    1012. *  asl.l        #4,d2
    1013. *  move.w       VTdir(a2),d1
    1014. *  jsr  GetEndPoint
    1015. *  add.l        VTy(a2),d2
    1016. *  move.l       d2,d1           ;leading y coordinate
    1017.  
    1018.     move.l  VTy(a0,d0.w),d1
    1019.     cmp.w   #BallHit_ps,Playstage
    1020.     beq .r0
    1021.     move.w  Active_Fielder,d3    ;if ball thrown
    1022.     move.l  VTy(a0,d3.w),d1      ;follow active fielder
    1023.  
    1024. *   move.l  VTy(a0,d0.w),d1
    1025. .r0 sub.l   Oldy,d1
    1026.     bge     _DY_Positive
    1027.     asr.l   #3,d1
    1028.     cmp.l   #-8*$10000,d1
    1029.     bge     _NDyok
    1030.     move.l  #-8*$10000,d1
    1031. _NDyok
    1032.     move.l  d1,PCamDy
    1033.     bra     _CamDyDone
    1034.  
    1035. _DY_Positive
    1036.     asr.l   #3,d1
    1037.     cmp.l   #8*$10000,d1
    1038.     ble     _PDyok
    1039.     move.l  #8*$10000,d1
    1040. _PDyok
    1041.     move.l  d1,PCamDy
    1042.  
    1043. _CamDyDone
    1044.     move.l  Oldy,d1
    1045.     add.l   PCamDy,d1
    1046.     move.l  d1,VTy(a0,d0.w)
    1047.     bra     _nowx
    1048.  
    1049. _YNotReset
    1050.     move.l  VTy(a0,d0.w),d1
    1051.     cmp.w   #BallHit_ps,Playstage
    1052.     beq .r1
    1053.     move.w  Active_Fielder,d3
    1054.     move.l  VTy(a0,d3.w),d1
    1055. .r1
    1056.     move.l  d1,d2
    1057.     and.l   #$ffff0000,d2
    1058.     move.l  Oldy,d3
    1059.     and.l   #$ffff0000,d3
    1060.     cmp.l   d2,d3
    1061.     beq     _nowx
    1062.     sub.l   Oldy,d1
    1063.     asr.l   #4,d1
    1064.     bpl     _YDY_Positive
    1065.     cmp.l   NCamDY,d1
    1066.     bge     _NsetNCamDy
    1067.  
    1068.     move.l  NCamDy,d1
    1069.     cmp.l   #-8*$10000,d1
    1070.     ble     _YNDyok
    1071.     sub.l   #$4000,d1
    1072. _NSetNCamDY
    1073.     move.l  d1,NCamDy
    1074. _YNDyok
    1075.     move.l  d1,PCamDy
    1076.     bra     _YCamDyDone
    1077.  
    1078. _YDY_Positive
    1079.     cmp.l   NCamDY,d1
    1080.     ble     _PSetNCamDY
    1081.  
    1082.     move.l  NCamDy,d1
    1083.     cmp.l   #8*$10000,d1
    1084.     bge     _YPDyok
    1085.     add.l   #$4000,d1
    1086.  
    1087. _PSetNCamDY
    1088.     move.l  d1,NCamDY
    1089.  
    1090. _YPDyok
    1091.     move.l  d1,PCamDy
    1092.  
    1093. _YCamDyDone
    1094.     move.l  Oldy,d1
    1095.     add.l   PCamDy,d1
    1096.     move.l  d1,VTy(a0,d0.w)
    1097. _nowx
    1098.     tst.w   VTFon(a1)
    1099.     bne     _XNotReset
    1100.  
    1101. *  lea.l        Vtentity+ball_ent_ptr,a2
    1102. *   move.l      VTsped(a2),d2
    1103. *   asl.l       #4,d2
    1104. *   move.w      VTdir(a2),d1
    1105. *   jsr GetEndPoint
    1106. *   add.l       VTx(a2),d1 ;leading x Coordinate
    1107.  
    1108.     move.l  Vtx(a0,d0.w),d1
    1109.     cmp.w   #BallHit_ps,Playstage
    1110.     beq .r2
    1111.     move.w  Active_Fielder,d3
    1112.     move.l  VTx(a0,d3.w),d1
    1113. .r2
    1114. *   move.l  Vtx(a0,d0.w),d1
    1115.     sub.l   Oldx,d1
    1116.     bge     _DX_Positive
    1117.     asr.l   #3,d1
    1118.     cmp.l   #-16*$10000,d1    ;16
    1119.     bge     _NDxok
    1120.     move.l  #-16*$10000,d1    ;16
    1121. _NDxok
    1122.     move.l  d1,PCamDx
    1123.     bra     _CamDxDone
    1124.  
    1125. _DX_Positive
    1126.     asr.l   #3,d1
    1127.     cmp.l   #16*$10000,d1    ;16
    1128.     ble     _PDxok
    1129.     move.l  #16*$10000,d1    ;16
    1130. _PDxok
    1131.     move.l  d1,PCamDx
    1132.  
    1133. _CamDxDone
    1134.     move.l  Oldx,d1
    1135.     add.l   PCamDx,d1
    1136.     move.l  d1,VTx(a0,d0.w)
    1137.     bra     .done
    1138.  
    1139. _XNotReset
    1140.  
    1141.     move.l  VTx(a0,d0.w),d1
    1142.  
    1143.     cmp.w   #BallHit_ps,Playstage
    1144.     beq .r3
    1145.     move.w  Active_Fielder,d3
    1146.     move.l  VTx(a0,d3.w),d1
    1147. .r3
    1148.     move.l  d1,d2
    1149.     and.l   #$ffff0000,d2
    1150.     move.l  Oldx,d3
    1151.     and.l   #$ffff0000,d3
    1152.     cmp.l   d2,d3
    1153.     beq     .done
    1154.     sub.l   Oldx,d1
    1155.     asr.l   #4,d1
    1156.     bge     _XDX_Positive
    1157.     cmp.l   NCamDX,d1
    1158.     bge     _NsetNCamDx
    1159.  
    1160.     move.l  NCamDx,d1
    1161.     cmp.l   #-16*$10000,d1      ;16
    1162.     ble     _XNDxok
    1163.     sub.l   #$4000,d1
    1164. _NSetNCamDX
    1165.     move.l  d1,NCamDx
    1166. _XNDxok
    1167.     move.l  d1,PCamDx
    1168.     bra     _XCamDxDone
    1169.  
    1170. _XDX_Positive
    1171.     cmp.l   NCamDX,d1
    1172.     ble     _PSetNCamDX
    1173.  
    1174.     move.l  NCamDx,d1
    1175.     cmp.l   #16*$10000,d1   ;16
    1176.     bge     _XPDxok
    1177.     add.l   #$4000,d1
    1178.  
    1179. _PSetNCamDX
    1180.     move.l  d1,NCamDX
    1181.  
    1182. _XPDxok
    1183.     move.l  d1,PCamDx
    1184.  
    1185. _XCamDxDone
    1186.     move.l  Oldx,d1
    1187.     add.l   PCamDx,d1
    1188.     move.l  d1,VTx(a0,d0.w)
    1189.  
    1190. .done
    1191.     movem.l (sp)+,a2
    1192.     rts
    1193.  
    1194.  
    1195. InitialCameraLogic
    1196.     tst.w   PanBack
    1197.     bne     _ResetCamera
    1198.  
    1199.     tst.w   InPitcherIF
    1200.     bne     .done
    1201.     tst.w   Catcherreturn
    1202.     bne     .done
    1203.  
    1204.     bra _movewithball
    1205. .done
    1206.     jmp     NORL
    1207.  
    1208. _movewithball
    1209.     tst.w   BallLocation
    1210.     beq     .chbs
    1211.     lea.l   VTentity,a1
    1212.     moveq.l #0,d1
    1213.     move.w  Balllocation,d1
    1214.     asl.w   #8,d1
    1215.     add.l   d1,a1
    1216.     bra     .smove
    1217. .chbs
    1218.     lea.l   VTEntity+BallShadow_Ent_ptr,a1
    1219.     cmp.w   #HT_Home_Run,Hittype
    1220.     bne     .smove
    1221.  
    1222.     lea.l   VTentity+Ball_ent_ptr,a1    ;follow ball
    1223.     bra     .smove
    1224.  
    1225. .smove
    1226. *  lea.l VTentity+Batter_ptr,a1
    1227.     move.w  #0,d0
    1228.     lea.l   VTentity,a0
    1229.  
    1230.     move.w  #1,d4
    1231.     move.w  VTx(a1),VTx(a0)
    1232.     move.w  VTy(a1),VTy(a0)
    1233.  
    1234.     lea.l   VTentity+FieldX_ptr,a1
    1235.     tst.w   VTfon(a1)
    1236.     beq     .hcl
    1237.     move.w  VTx(a1),VTx(a0)
    1238.     move.w  VTy(A1),VTy(a0)
    1239.  
    1240. .hcl    jsr     HeavyCameraLogic
    1241.     jsr     ScrollXY
    1242. .done
    1243.     lea.l   Vtentity,a0
    1244.     move.w  #0,d0
    1245.     move.l  VTy(a0,d0.w),Oldy
    1246.     move.l  VTx(a0,d0.w),Oldx
    1247.     jmp     NORL
    1248.  
    1249.  
    1250. _ResetCamera
    1251.     lea.l   VTentity+ballshadow_ent_ptr,a1
    1252.     move.w  #3,VTx(a1)
    1253.     move.w  #110,VTy(a1)
    1254.     move.w  #CamULC_X,d0
    1255.     move.w  #CamULC_Y,d1
    1256.     jsr     StepPanCamera1
    1257.     cmp.w   #CamULC_X,Map_ULC_X
    1258.     bne     .done
    1259.     cmp.w   #CamULC_Y,Map_ULC_Y
    1260.     bne     .done
    1261.     clr.w   PanBack
    1262.     lea.l   Vtentity,a0
    1263.     move.w  #CamCenterX,Vtx(a0)
    1264.     move.w  #CamCentery,Vty(a0)
    1265.     move.w  #CamCenterX,oldx
    1266.     move.w  #CamCenterY,oldy
    1267. .done   jmp NORL
    1268.  
    1269. setcamxy
    1270.     movem.l d1/a0-a1,-(sp)
    1271.     lea.l   Vtentity,a0
    1272.     lea.l   VTentity+Ball_ent_ptr,a1
    1273.     move.w  VTx(a1),d1
    1274.     add.w   Map_Center_X,D1
    1275.     sub.w   #128,d1
    1276.     move.w  d1,VTx(a0)
    1277.     move.l  VTy(a1),d1
    1278.     sub.w   #16,d1
    1279.     add.w   Map_Center_Y,D1
    1280.     sub.w   #110,d1
    1281.     move.w  d1,VTy(a0)
    1282.     movem.l (sp)+,d1/a0-a1
    1283.     rts
    1284. *_ResetCamera
    1285. *       clr.w   PanBack
    1286. *       lea.l   Field_Map,A0
    1287.  
    1288. *       move.w  #CamULC_X,D0
    1289. *       move.w  #CamULC_Y,D1
    1290. *       jsr     load_field
    1291. *       jmp     NORL
    1292.  
    1293.  
    1294.  
    1295. StepPanCamera1
    1296. *       D0 = target x position
    1297. *       D1 = target y position
    1298. *
    1299. *       Note: No bounds checking, scroll routines will not
    1300. *       scroll off screen, but camx,camy will get screwed up
    1301.  
    1302.     move.w  d1,d6
    1303.     sub.w   Map_ULC_Y,d6    ; Targy - MapULCY = distanceY
    1304.     beq     .panx
    1305.     bgt     .pand           ; if positive pan down
    1306.     neg.w   d6              ; distanceY = abs(distanceY)
    1307.     move.w      PanSpeed,d5
    1308.     sub.w       #8,d5
    1309.     cmp.w       d5,d6
    1310. *       cmp.w   PanSpeed,d6           ; move max 8 pixels this step
    1311.     ble     .sfu1
    1312.     move.w  PanSpeed,d6
    1313.     sub.w       #8,d6
    1314. .sfu1
    1315.     jsr     scroll_field_up
    1316.     bra     .panx
    1317. .pand
    1318.     move.w      PanSpeed,d5
    1319.     sub.w       #8,d5
    1320.     cmp.w       d5,d6
    1321. *       cmp.w   PanSpeed,d6
    1322.     ble     .sfd1
    1323.     move.w  PanSpeed,d6
    1324.     sub.w       #8,d6
    1325. .sfd1   jsr     scroll_field_down
    1326.  
    1327. .panx
    1328.     move.w  d0,d6        ;get ball x
    1329.     sub.w   Map_ULC_X,d6
    1330.     beq     .done
    1331.     bge     .panr
    1332.     neg.w   d6
    1333.     cmp.w   PanSpeed,d6
    1334.     ble     .sfl1
    1335.     move.w  PanSpeed,d6
    1336. .sfl1
    1337.     jsr     scroll_field_left
    1338.     bra     .done
    1339. .panr
    1340.     cmp.w   PanSpeed,d6
    1341.     ble     .sfr1
    1342.     move.w  PanSpeed,d6
    1343. .sfr1
    1344.     jsr     scroll_field_right
    1345.  
    1346. .done   rts
    1347.  
    1348.  
    1349.  
    1350. ScrollXY
    1351.     movem.l d6/a1,-(sp)
    1352.     lea.l   vtentity,a1
    1353.     move.w  VTy(a1),d6
    1354.     sub.w   #16,d6
    1355.     add.w   Map_Center_Y,D6
    1356.     sub.w   #110,d6
    1357.     sub.w   Map_ULC_Y,d6    ; Targy - MapULCY = distanceY
    1358.     beq     .panx
    1359.     bgt     .pand           ; if positive pan down
    1360.     neg.w   d6              ; distanceY = abs(distanceY)
    1361.     move.w  PanSpeed,d5
    1362.     sub.w   #8,d5
    1363.     cmp.w   d5,d6
    1364.     ble     .sfu1
    1365.     move.w  PanSpeed,d6
    1366.     sub.w   #8,d6
    1367. .sfu1
    1368.     jsr     scroll_field_up
    1369.     bra     .panx
    1370. .pand
    1371.     move.w  PanSpeed,d5
    1372.     sub.w   #8,d5
    1373.     cmp.w   d5,d6
    1374.     ble     .sfd1
    1375.     move.w  PanSpeed,d6
    1376.     sub.w   #8,d6
    1377. .sfd1   jsr     scroll_field_down
    1378.  
    1379. .panx
    1380.     tst.w   HScrol</div>
    1381.  
    1382. Of course, it's incomplete (cuts off). But it's a lot, heh.
    1383.  
    1384. Got anymore? :P
     
  2. evilhamwizard

    evilhamwizard

    Researcher
    1,389
    442
    63
    Yay here's some more, this is from Wayne Gretzsky NHLPA All-Stars (GEN):

    Code (ASM):
    1. CODEPLACE      ; PLOTTING SHADOWS!;
    2.                                
    3.  MOVE.L #DUDVAR,A5      ; GET POINTER TO SECTION
    4.  MOVE.W #DUDCHUNKIND,D5         ; INDEX!;
    5.                                                        
    6. .PS1
    7.  TST.W (A5,D5)                  ; CHECK IF PLAYER ON
    8.  BEQ.S .NOSHAD
    9.  TST.W DUDSHADFR(A5,D5)
    10.  BEQ.S .NOSHAD                  ; SKIP IF NO SHADOW TO PLOT!;
    11.  
    12.  MOVE DUDX(A5,D5),D0
    13.  MOVE DUDYS(A5,D5),D1
    14.  BEQ.S .NOSHAD          ; IF Y = 0- SKIP HIM
    15.        
    16.  LSR.W  #PSHIFT,D0             ; SAVE Y VALUE OF PUCK!;
    17.         SUB D2,D1               ; GET POSITION OF PUCK LESS ALTITUDE
    18.         MOVE.W D1,SPY                          
    19.         SUB WINDOWX,D0        ; GET WINDOWY
    20.         MOVE.W D0,SPX
    21.                                                                                                                                
    22. ;;        MOVE PUCKFR,D0              ; AND PLOT THE PUCKER!;
    23. ;;         JSR SAFEVIDEO_PLOT                 ; GENERAL PLOT TO VIDEO TAPE!;
    24. ;        JSR SAFEGENERAL_PLOT
    25.  
    26.         POP D1                  
    27.         TST.W PERIODOVER        ; IF REGULAR PERIOD OVER!;
    28.         BNE.S .SKIPSHAD
    29.                                        
    30.         MOVE.W D1,SPY
    31.         MOVE #&#036;5,D0              ; AND PLOT THE SHADOW!;
    32.         BSR SAFEVIDEO_PLOT                 ; GENERAL PLOT TO VIDEO TAPE!;
    33.  
    34. .SKIPSHAD              
    35.         RTS  
    36.  
    37.  
    38.  XDEF INITDUDELIST
    39. INITDUDELIST
    40.  CLR.W PTEMP
    41.                                                
    42.  MOVE #(NUMDUDS+2)*2,D2         ; MAKE BIGGER  FOR PUCK AND GOALS....
    43.                            
    44.  MOVE.L #PLOTDUDELIST,A1        ; GET PLOT LIST!;
    45. .ID2
    46.  MOVE.W PTEMP,D0
    47.  ADD #&#036;80,PTEMP
    48.  MOVE D0,(A1)+                  ; SAVE WHICH GUY TO PLOT!;
    49.  SUBQ #2,D2                     ; ONE LESS GUY!;
    50.  BPL.S .ID2                      ; NOT DONE YET!;
    51.  
    52.  MOVE.W #&#036;FFFF,(A1)+            ; FLAG FOR END!;
    53.  RTS
    54.  
    55.  
    56. SORTDUDES
    57. ; OK- THIS ONE GOES THROUGH DUDES AND JUST REA-ARRANGES THEM ONE AT A TIME...
    58.  MOVE.L #DUDVAR,A5      ; GET POINTER TO SECTION
    59.  
    60.  tst.w gamenum
    61.  beq.s .MAINGAME
    62.  
    63. ; UHH- HERE CLEAR ALL PUCKX AND THAT SHIT...
    64.  MOVE.W #LGOALDUD,D5            ; POINT TO LEFT GOAL...
    65.  CLR.W DUDYS(A5,D5)
    66.  CLR.W DUDFR(A5,D5)
    67.  MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
    68.  CLR.W DUDYS(A5,D5)
    69.  CLR.W DUDFR(A5,D5)
    70.  MOVE.W #PUCKDUD,D5            ; POINT TO LEFT GOAL...
    71.  CLR.W DUDYS(A5,D5)
    72.  CLR.W DUDFR(A5,D5)
    73.  BRA .SORTEM
    74.  
    75. .MAINGAME
    76.  MOVE.W #LGOALDUD,D5            ; POINT TO LEFT GOAL...
    77.  MOVE.W GOALX,D0
    78.  ASL #PSHIFT,D0
    79.  MOVE.W D0,DUDX(A5,D5)
    80.  MOVE.W GOALY,D0
    81.  ASL #PSHIFT,D0
    82.  MOVE D0,DUDYS(A5,D5)
    83.  ADD D0,D0
    84.  MOVE D0,DUDY(A5,D5)
    85.  MOVE.W #4,DUDFR(A5,D5)
    86.                      
    87.  MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
    88.  MOVE.W GOALX+2,D0
    89.  ASL #PSHIFT,D0
    90.  MOVE.W D0,DUDX(A5,D5)
    91.  MOVE.W GOALY+2,D0
    92.  ASL #PSHIFT,D0
    93.  MOVE D0,DUDYS(A5,D5)
    94.  ADD D0,D0
    95.  MOVE D0,DUDY(A5,D5)
    96.  MOVE.W #4+FLIP,DUDFR(A5,D5)
    97.  
    98.  MOVE.W #PUCKDUD,D5            ; POINT TO LEFT GOAL...
    99. ; MOVE.W #RGOALDUD,D5            ; POINT TO LEFT GOAL...
    100.  MOVE.W PUCKX,DUDX(A5,D5)
    101.  MOVE.W PUCKY,D0
    102.  MOVE.W D0,DUDY(A5,D5)
    103.  
    104.  SUB.W PUCKA,D0                 ; TAKE OFF ALTITUDE!;
    105.  LSR #1,D0
    106.  MOVE.W D0,DUDYS(A5,D5)
    107.  MOVE.W PUCKFR,DUDFR(A5,D5)
    108.                
    109.  
    110. .SORTEM        
    111. ; ANYWAYS SORT THE DAMN THING...
    112.  MOVE.L #PLOTDUDELIST,A1        ; GET PLOT LIST!;
    113. .SDL
    114.  MOVE.W (A1),D5                 ; GET GUY....
    115.  MOVE.W 2(A1),D4                ; GET OTHER GUY!;
    116.  BMI.S .SWAPDONE                     ; OK- DONE...
    117.        
    118.  MOVE DUDY(A5,D5),D0
    119.  CMP DUDY(A5,D4),D0
    120.  BHS .NOSWAP            ; equal no swap!;
    121.                        
    122. ; WOW!; SWAP THEM!;
    123.  MOVE D4,(A1)
    124.  MOVE D5,2(A1)
    125.  
    126. .NOSWAP
    127.  ADDQ.L #2,A1                     ; GO TO NEXT...
    128.  BRA .SDL
    129.  
    130. .SWAPDONE
    131.  RTS
    132.  
    133.  
    134. ; END OF FILE
    135. ; COACH.A       -
    136. ;
    137. ;
    138. ;       HANDLES PAUSED OPTIONS AND COACHING OPTIONS DURING GAMEPLAY!;
    139.  
    140.     OPT NOABSPCADD,E,NOCASE
    141.     NAME    FLUFF
    142.  
    143. ; SO LINE CHANGE CAN BE CALLED FROM COACHING SCREEN!;
    144.  
    145.  
    146.  
    147.  INCLUDE S:ASM.INC
    148.  INCLUDE S:DMA.INC
    149.  INCLUDE S:SOUNDS.INC
    150.                                
    151.     SECTION CODE,,C
    152.  
    153.        
    154.      XREF _gemspauseall
    155.      XREF _gemsresumeall
    156.  
    157.  XREF SAVELINES                  ; OK- SAVE THE LINES      
    158.  XREF CLEARRVSCREEN
    159.  XREF CLEARLVSCREEN
    160.                                        
    161.  XREF FROMCOACHLINE0
    162.  XREF FROMCOACHLINE1
    163.  
    164.         XREF SETSTATS
    165.         XREF CLEARMOSTVSCREEN                        
    166.         XREF CLEARVSCREEN                        
    167.         XREF CLEARSCREENA
    168.         XREF CLEARSCREENB
    169.         XREF SETALLPAL
    Here's some more from the same game:

    Code (ASM):
    1. MYIFL MACRO P1,P2,P3
    2.          CMP.W P2,P1
    3.          BLO.S P3        
    4.      ENDM              
    5.  
    6.        
    7. ;/* LONG JUMP IF LESS */
    8. MYIFLL MACRO P1,P2,P3
    9.          CMP.W P2,P1
    10.          BLO P3        
    11.      ENDM              
    12.                                
    13. ; IF LESS THAN!; */
    14. MYIFLE MACRO P1,P2,P3
    15.          CMP.W P2,P1
    16.          BLS.S P3        
    17.      ENDM              
    18.  
    19. ; DOES A QUICKY COMPARISON!; */
    20. MYIFG MACRO P1,P2,P3
    21.          CMP.W P2,P1
    22.          BHI.S P3        
    23.      ENDM              
    24.          
    25. MYIFGL MACRO P1,P2,P3
    26.          CMP.W P2,P1
    27.          BHI P3        
    28.      ENDM              
    29.  
    30. MYIFGE MACRO P1,P2,P3
    31.          CMP.W P2,P1
    32.          BHS.S P3
    33.      ENDM              
    34.                  
    35. MYIFNE MACRO P1,P2,P3
    36.          CMP.W P2,P1
    37.          BNE.S P3        
    38.      ENDM              
    39.  
    40.  
    41. BOXCHECK MACRO X,Y,LEFT,RIGHT,TOP,BOTTOM
    42.  LOCAL .NOTHIT,.BCDONE
    43.  MYIFL X,LEFT,.NOTHIT
    44.  MYIFG X,RIGHT,.NOTHIT
    45.  MYIFL Y,TOP,.NOTHIT
    46.  MYIFG Y,BOTTOM,.NOTHIT
    47.  SETEQ
    48.  BRA.S .BCDONE
    49. .NOTHIT
    50.  SETNE
    51. .BCDONE
    52.  ENDM
    53.  
    54.  
    55.  
    56.  
    57.  
    58.                                  
    59. RANGERLH MACRO REG,LOW,HIGH
    60.  LOCAL L1,L2
    61.  
    62. ; CHECKS IF SOMETHING IN RANGE!;
    63.  IFL LOW,REG,L1          ; IF WAY PAST THEN WRAPPED UNDER- NOT NEGATIVE!;
    64.  MOVE.W LOW,REG           ; IF SO, STOP!;
    65.  BRA.S L2                  ; WHY NEEDED?
    66.                                            
    67. L1:                    
    68.  IFG HIGH,REG,L2       ; IS IT LOWER THAN BOTTOM  THEN KOSHER!;?
    69.  MOVE.W HIGH,REG
     
  3. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,120
    913
    93
    Long-term happiness
    Code (Text):
    1. ; UHH- HERE CLEAR ALL PUCKX AND THAT SHIT...
    Man, these guys are just as professional with their commenting as I am =P
     
  4. evilhamwizard

    evilhamwizard

    Researcher
    1,389
    442
    63
    Huge amount of source code for Dragon's Lair (EU) NES (aka the terrible game that AVGN reviewed a few years back):

    Code (ASM):
    1. ;--------------------------------------
    2.  
    3. B3B_END
    4.     IF    B3B_END>$BFFF
    5.         PRINTF "**** BANK $3B too long !! ****"
    6.     ENDIF
    7.  
    8.  
    9. ; End of bank $3A/$3B
    10. ; --- -- ---- -------
    11.  
    12. ;======================================
    13.  
    14. ; Start of bank $39
    15. ; ----- -- ---- ---
    16.  
    17.     ORG    $139,$A000
    18.  
    19. ;--------------------------------------
    20. ; Sprite attribute tables
    21. ; ------ --------- ------
    22.  
    23. SPR3_ATAB_L
    24.     DL    A_B0
    25.     DL    A_B1
    26.     DL    A_B2
    27.     DL    A_B3
    28.     DL    A_B4
    29.     DL    A_B5
    30.     DL    A_B6
    31.     DL    A_B7
    32.     DL    A_B8
    33.     DL    A_B9
    34.     DL    A_B10
    35.     DL    A_B11
    36.     DL    A_B12
    37.     DL    A_B13
    38.     DL    A_B14
    39.     DL    A_B15
    40.     DL    A_B16
    41.     DL    A_B17
    42.     DL    A_B18
    43.     DL    A_B19
    44.     DL    A_B20
    45.     DL    A_B21
    46.     DL    A_B22
    47.     DL    A_B23
    48.     DL    A_B24
    49.     DL    A_B25
    50.     DL    A_B26
    51.     DL    A_B27
    52.     DL    A_B28
    53.     DL    A_B29
    54.     DL    A_B30
    55.     DL    A_B31
    56.     DL    A_B32
    57.     DL    A_B33
    58.  
    59. SPR3_ATAB_H
    60.     DH    A_B0
    61.     DH    A_B1
    62.     DH    A_B2
    63.     DH    A_B3
    64.     DH    A_B4
    65.     DH    A_B5
    66.     DH    A_B6
    67.     DH    A_B7
    68.     DH    A_B8
    69.     DH    A_B9
    70.     DH    A_B10
    71.     DH    A_B11
    72.     DH    A_B12
    73.     DH    A_B13
    74.     DH    A_B14
    75.     DH    A_B15
    76.     DH    A_B16
    77.     DH    A_B17
    78.     DH    A_B18
    79.     DH    A_B19
    80.     DH    A_B20
    81.     DH    A_B21
    82.     DH    A_B22
    83.     DH    A_B23
    84.     DH    A_B24
    85.     DH    A_B25
    86.     DH    A_B26
    87.     DH    A_B27
    88.     DH    A_B28
    89.     DH    A_B29
    90.     DH    A_B30
    91.     DH    A_B31
    92.     DH    A_B32
    93.     DH    A_B33
    94.  
    95. A_B0    DS    34,2
    96.     DS    22,1
    97.     DS    8,0
    98. A_B1    DS    31,2
    99.     DS    24,1
    100.     DS    9,0
    101. A_B2    DS    34,2
    102.     DS    25,1
    103.     DS    5,0
    104. A_B3    DS    21,2
    105.     DS    16,1
    106.     DS    7,2
    107.     DS    8,1
    108.     DS    12,0
    109. A_B4    DS    9,2
    110.     DS    12,1
    111.     DS    1,0
    112.     DS    18,2
    113.     DS    24,1
    114. A_B5    DS    28,2
    115.     DS    31,1
    116.     DS    5,0
    117. A_B6    DS    31,2
    118.     DS    21,1
    119.     DS    12,0
    120. A_B7    DS    28,2
    121.     DS    23,1
    122.     DS    13,0
    123. A_B8    DS    9,2
    124.     DS    15,1
    125.     DS    1,0
    126.     DS    24,2
    127.     DS    15,1
    128. A_B9    DS    37,2
    129.     DS    20,1
    130.     DS    7,0
    131. A_B10    DS    14,2
    132.     DS    10,1
    133.     DS    40,0
    134. A_B11    DS    25,0
    135.     DS    11,2
    136.     DS    25,1
    137.     DS    3,0
    138. A_B12    DS    15,2
    139.     DS    36,1
    140.     DS    13,0
    141. A_B13    DS    9,2
    142.     DS    17,1
    143.     DS    1,0
    144.     DS    16,2
    145.     DS    21,1
    146. A_B14    DS    31,2
    147.     DS    31,1
    148.     DS    2,0
    149. A_B15    DS    9,2
    150.     DS    13,1
    151.     DS    1,0
    152.     DS    18,2
    153.     DS    23,1
    154. A_B16    DS    29,2
    155.     DS    32,1
    156.     DS    3,0
    157. A_B17    DS    12,2
    158.     DS    17,1
    159.     DS    1,0
    160.     DS    8,2
    161.     DS    22,1
    162.     DS    4,0
    163. A_B18    DS    13,0
    164.     DS    6,1
    165.     DS    45,0
    166. A_B19    DS    18,0
    167.     DS    2,1
    168.     DS    34,3
    169.     DS    10,1
    170. A_B20    DS    52,3
    171.     DS    12,1
    172. A_B21    DS    64,0
    173. A_B22    DS    46,1
    174.     DS    18,0
    175. A_B23    DS    11,0
    176.     DS    20,1
    177.     DS    10,2
    178.     DS    23,3
    179. A_B24    DS    25,0
    180.     DS    23,3
    181.     DS    16,0
    182. A_B26    DS    58,0
    183.     DS    6,1
    184. A_B33
    185. A_B27            DS    64,1
    186. A_B28    DS    15,3
    187.     DS    17,0
    188.     DS    32,1
    189. A_B29    DS    11,0
    190.     DS    20,2
    191.     DS    33,3
    192. A_B30    DS    18,3
    193.     DS    46,0
    194. A_B31
    195. A_B25    DS    64,3
    196. A_B32             DS    32,2
    197.     DS    23,1
    198.     DS    9,0
    199.  
    200. ;--------------------------------------
    201.  
    202. ; Gold bonus screen
    203. ; ---- ----- ------
    204.  
    205. ; IN
    206. ; --
    207. ; A = 0-No bonus , 1-Normal bonus , 2-Big bonus
    208.  
    209. G_BONUS1
    210.     TAX
    211.     BNE    !1    ;No bonus
    212.     RTS
    213. !1
    214.     LDA    #3    ;Preload with start adding to
    215.     DEX        ;10's digit.
    216.     BEQ    !2
    217.     LDA    #2    ;Change to adding to 100's
    218. !2            ;digit.
    219.     STA    ZPAGE_BYTE9    ;Store which digit to start
    220.             ;adding to.
    221.  
    222.     LDA    PL_GOLD
    223.     ORA    PL_GOLD+1    ;Don't do gold bonus if no
    224.     ORA    PL_GOLD+2    ;gold.
    225.     CMP    #246
    226.     BNE    !3
    227.     RTS
    228. !3
    229.  
    230.     LDA    #0
    231.     STA    N_COLAP_CHR
    232.     STA    N_BONUS_FLAG
    233.  
    234.     JSR    SET_S0
    235.  
    236.     LDA    #128    ;Stop music
    237.     JSR    START_TUNE
    238.  
    239.     JSR    DISABLE_NC
    240.  
    241.     LDA    #GR_1ST+24          ;Background bank for chrs
    242.     STA    N_BG_BANK1
    243.     LDA    #GR_1ST+24+2
    244.     STA    N_BG_BANK2
    245.  
    246.     LDA    #PAL_1
    247.     JSR    CLS
    248.  
    249.     LDA    #21    ;'GOLD BONUS'
    250.     JSR    DRAW_SCR39
    251.  
    252.     JSR    D_GB    ;Draw gold bars
    253.  
    254.     JSR    ENABLE_CN
    255.  
    256.     LDA    #$FF
    257.     STA    CDF_A1+1
    258.  
    259.     JSR    SPR_CLEAR        ;All sprite off screen
    260.     LDA    #39                       ;Put on split CHR
    261.     STA    $200    ;Y
    262.      LDA    #64  
    263.     STA    $201    ;Character
    264.     LDA    #BIT5
    265.     STA    $202    ;Ctr
    266.     LDA    #16
    267.     STA    $203    ;X
    268.     LDA    #1
    269.     STA    N_DMA_FLAG
    270.     WAIT_FRAME
    271.  
    272.     JSR    ENABLE_SPR
    273.  
    274.     LDX    #0
    275.     JSR    FADE_IN
    276.  
    277.     LDX    #20    ;Wait before starting
    278.     JSR    M_WAIT_FRAME
    279.  
    280.     LDY    #>SCR_START+(32*16)+10-2
    281.     LDX    #<SCR_START+(32*16)+10-2
    282.     LDA    PL_GOLD+2    ;1's of gold
    283.     JSR    GB_R
    284.     LDY    #>SCR_START+(32*20)+10-2
    285.     LDX    #<SCR_START+(32*20)+10-2
    286.     LDA    PL_GOLD+1    ;10's of gold
    287.     JSR    GB_R
    288.     LDY    #>SCR_START+(32*24)+10-2
    289.     LDX    #<SCR_START+(32*24)+10-2
    290.     LDA    PL_GOLD    ;100's of gold
    291.     JSR    GB_R
    292.  
    293.  
    294.     LDX    #80    ;Wait before exiting
    295.     JSR    M_WAIT_FRAME
    296.  
    297.     LDX    #0
    298.     JSR    FADE_OUT
    299.  
    300.     RTS
    301.  
    302. ;------------------
    303.  
    304. ; Draw gold bonus bars
    305.  
    306. D_GB
    307.     LDA    #13    ;X1,X10,X100
    308.     JSR    PR_STR_TAB
    309.     LDA    #14
    310.     JSR    PR_STR_TAB
    311.     LDA    #15
    312.     JSR    PR_STR_TAB
    313.  
    314.     LDY    #>SCR_START+(32*16)+10
    315.     LDX    #<SCR_START+(32*16)+10
    316.     LDA    PL_GOLD+2    ;1's of gold
    317.     JSR    GB_D
    318.     LDY    #>SCR_START+(32*20)+10
    319.     LDX    #<SCR_START+(32*20)+10
    320.     LDA    PL_GOLD+1    ;10's of gold
    321.     JSR    GB_D
    322.     LDY    #>SCR_START+(32*24)+10
    323.     LDX    #<SCR_START+(32*24)+10
    324.     LDA    PL_GOLD    ;100's of gold
    325.     JSR    GB_D
    326.  
    327.     RTS
    328.  
    329. ;------------------
    330.  
    331. ; Draw a highlighted bar
    332.  
    333. ; IN
    334. ; --
    335. ; X - LSB Screen address of bar left
    336. ; Y - MSB Screen address of bar left
    337. ; A = Number in bar
    338.  
    339. GB_D
    340.     PHA
    341.     LDA    #0
    342.     STA    ZPAGE_BYTE11
    343.     PLA
    344.  
    345.     SEC
    346.     SBC    #246
    347.     STA    ZPAGE_BYTE10        ;Number highlighted
    348.     BEQ    !1
    349.  
    350.     LDA    #PAL_1
    351.     STA    PR_ATTR
    352.  
    353. ; Draw highlighted ones
    354.  
    355. !2    JSR    D_G2X2
    356.     INC    ZPAGE_BYTE11    ;Number drawn
    357.     DEC    ZPAGE_BYTE10
    358.     BNE    !2
    359.  
    360.    
    361. ; Draw unhighlighted ones
    362.  
    363. !1
    364.     LDA    #PAL_3
    365.     STA    PR_ATTR
    366.  
    367. !4    LDA    ZPAGE_BYTE11
    368.     CMP    #10
    369.     BNE    !3
    370.     RTS
    371. !3    JSR    D_G2X2
    372.     INC    ZPAGE_BYTE11
    373.     JMP    !4
    374.  
    375.  
    376. ; Draw a gold 2x2
    377. ; ---- - ---- ---
    378.  
    379. D_G2X2
    380.     STX    ZPAGE_WORD1
    381.       STY    ZPAGE_WORD1+1
    382.  
    383. ; Set attribute
    384.     LDA    PR_ATTR
    385.     JSR    SET_SCR_ATTR    ;Set attribute for quad
    386.  
    387.     LDX    ZPAGE_WORD1
    388.     LDY    ZPAGE_WORD1+1
    389. ; Draw top line
    390.     STY    VDP_VRAM_PTR
    391.     STX    VDP_VRAM_PTR
    392.  
    393.     LDA    #$69
    394.     STA    VDP_VRAM_DATA
    395.     LDA    #$6A
    396.     STA    VDP_VRAM_DATA
    397.  
    398. ; Downline and draw second line
    399.     TXA
    400.     CLC
    401.     ADC    #32
    402.     TAX
    403.     BCC    !1
    404.     INY      
    405. !1    STY    VDP_VRAM_PTR
    406.     STX    VDP_VRAM_PTR
    407.  
    408.     LDA    #$6B
    409.     STA    VDP_VRAM_DATA
    410.     LDA    #$6C
    411.     STA    VDP_VRAM_DATA
    412.  
    413.     LDX    ZPAGE_WORD1
    414.       LDY    ZPAGE_WORD1+1
    415.     INX
    416.     INX
    417.    
    418.     RTS
    419.  
    420. ;------------------
    421. ; Clear a bar
    422.  
    423. ; IN
    424. ; --
    425. ; X - LSB Screen address of bar left
    426. ; Y - MSB Screen address of bar left
    427. ; A - Number in bar to start with
    428.  
    429. GB_R
    430.  
    431.     SEC
    432.     SBC    #246
    433.     STA    ZPAGE_BYTE10
    434.     STY    ZPAGE_WORD11+1
    435.     STX    ZPAGE_WORD11
    436.  
    437.  
    438. !3    LDA    ZPAGE_BYTE10
    439.     BEQ    !5
    440.     ASL    A    ;Icons 2 chrs wide
    441. !1    LDY    ZPAGE_WORD11+1    ;Add offset to screen address
    442.     ADC    ZPAGE_WORD11
    443.     TAX
    444.  
    445.     JSR    CON_SCR_ATTR    ;Calc attribute address
    446.     STX    N_BONUS_AADR    ;Set up NMI to draw attribute
    447.     STY    N_BONUS_AADR+1
    448.  
    449.     STA    N_BONUS_ATTR    ;PAL_3 in rlevant bits
    450.     EOR    #$FF
    451.     STA    N_BONUS_AMASK    ;Hole for attribute
    452.     LDA    #1
    453.     STA    N_BONUS_FLAG
    454.     STA    N_BG_FLAG
    455.  
    456.     LDA    #24
    457.     STA    ZPAGE_BYTE11
    458.  
    459.     LDA    #1    ;Add to score
    460.     LDY    ZPAGE_BYTE9
    461.     JSR    SC_ADD
    462.  
    463.     LDY    #18            ;Make sound FX
    464.     JSR    FX_TRIGGER
    465.  
    466. !4    JSR    PANEL_SCAN
    467.     LDA    #1                  
    468.     STA    N_BG_FLAG            
    469.     WAIT_FRAME
    470.     DEC    ZPAGE_BYTE11
    471.     BNE    !4
    472.  
    473.     DEC    ZPAGE_BYTE10
    474.     BNE    !3
    475.  
    476. !5
    477.     DEC    ZPAGE_BYTE9
    478.  
    479.     RTS
    480.  
    481. ;--------------------------------------
    482. ; Setup NMI vars to change score digits
    483. ; ----- --- ---- -- ------ ----- ------
    484.  
    485. ; Scan the scores,lives and gold and if any need changing then
    486. ; setup one digit to be changed.
    487.  
    488. PANEL_SCAN
    489.     LDA    N_P_FLAG
    490.     BEQ    !1    ;Still waiting for update
    491.     RTS
    492. !1
    493.  
    494. ;   Scan current player score,gold or lives
    495.  
    496.     LDX    #PL_VARS_LEN-1
    497. PS_LP    LDA    PL_SC,X
    498.     CMP    PL_DATA_SO,X    ;Search for any differences
    499.     BNE    PS_FND
    500.     DEX
    501.     BPL    PS_LP
    502.  
    503. ;   Scan dormat players score
    504.  
    505.     LDX    #5-1    ;Just do score
    506. PS_LP2    LDA    PL_SC+P_VARS_LEN,X
    507.     CMP    PL2_DATA_SO,X    ;Search for any differences
    508.     BNE    PS_FND1
    509.     DEX
    510.     BPL    PS_LP2
    511.  
    512.     RTS
    513.  
    514. PS_FND1    STA    PL2_DATA_SO,X    ;Set onscreen for pl 2 score
    515.     SEC
    516.     SBC    #246-$0A
    517.     STA    N_P_CHR    ;Set character to draw
    518.  
    519.     LDA    PL_NUM
    520.     BNE    PS_SNMI    ;This is player 1's score(Lft)
    521.     JMP    PS_RGT    ;This is player 2's score(Rgt)
    522.  
    523.  
    524. PS_FND
    525.     STA    PL_DATA_SO,X    ;Set onscreen var
    526.     SEC
    527.     SBC    #246-$0A
    528.     STA    N_P_CHR    ;Set character to draw
    529.  
    530.     LDA    PL_NUM
    531.     BEQ    PS_SNMI    ;This is player 1's score(Lft)
    532.             ;This is player 2's score(Rgt)
    533. PS_RGT    TXA
    534.     CMP    #5    ;If Gold or lives alternate
    535.     BCS    !1    ;with whoose go it is
    536.     CLC
    537.     ADC    #PL_VARS_LEN    ;If score swap their sides
    538.     TAX
    539. !1
    540.  
    541. ; Setup vars to get NMI to draw a score digit.
    542.  
    543. PS_SNMI
    544.     LDA    P_ATAB,X
    545.     STA    N_P_SADR
    546.     LDA    #>SCR_START
    547.     STA    N_P_SADR+1
    548.  
    549.     LDA    #1
    550.     STA    N_P_FLAG
    551.  
    552.     RTS
    553.  
    554.  
    555. ; Screen address offset table
    556.  
    557. P_ATAB    DB    96+96+9    ;Player 1 score
    558.     DB    96+96+10
    559.     DB    96+96+11
    560.     DB    96+96+12
    561.     DB    96+96+13
    562.     DB    96+64+24    ;         Gold
    563.     DB    96+64+25
    564.     DB    96+64+26
    565.     DB    96+64+5    ;         Lives
    566.     DB    96+64+6
    567.     DB    96+96+18    ;Player 2 score
    568.     DB    96+96+19
    569.     DB    96+96+20
    570.     DB    96+96+21
    571.     DB    96+96+22
    572.  
    Here's the largest chunk:

    Code (ASM):
    1. XSPEED
    2.     STA    D_VARS+D_XSP_OFF+1,X
    3.  
    4.     LDA    ZPAGE_BYTE2
    5.     AND    #SDC_DOWN  
    6.     BNE    DI_CRAWLING_R
    7.  
    8. ;    Throw while standing up facing right
    9.  
    10.     LDA    DIRK_X_ONSCR
    11.     CLC        ;Setup dagger starting X
    12.     ADC    #24
    13.     BCS    !1
    14.     CMP    #230
    15.     BCC    !2
    16. !1    RTS        ; Error, Off edge
    17. !2    STA    D_VARS+D_X_OFF,X
    18.     LDA    DIRK_Y
    19.     SEC
    20.     SBC    #52
    21.     STA    D_VARS+D_Y_OFF,X
    22.     JMP    DI_XVXY_END
    23.  
    24. ;    Throw while crawling right
    25.  
    26. DI_CRAWLING_R
    27.     LDA    DIRK_X_ONSCR
    28.     CLC
    29.     ADC    #38
    30.     BCC    !1
    31.     RTS        ; Error, Off edge
    32. !1    STA    D_VARS+D_X_OFF,X
    33.     LDA    DIRK_Y
    34.     SEC
    35.     SBC    #31
    36.     STA    D_VARS+D_Y_OFF,X
    37.  
    38.  
    39. DI_XVXY_END
    40.     LDA    D_E_FRAC    ;Subtract energy from Dirk
    41.     CLC        ;for each weapon thrown
    42.     ADC    #16
    43.     STA    D_E_FRAC
    44.     BCC    !1
    45.     LDA    #-1
    46.     JSR    DIRK_NRG_ADD
    47. !1
    48.  
    49.     LDY    #1    ;Preload with normal dagger FX
    50.     LDX    WEAPON_TYPE
    51.     DEX
    52.     BNE    !2
    53.     LDY    #15    ;Axe throw FX
    54. !2    JMP    FX_TRIGGER    ;and 'RTS'
    55.  
    56. ;------------------
    57. ; Process all currently running daggers
    58.  
    59. D_PROCESS
    60.     LDX    #2*D_VAR_LEN    ;Offset to current dagger vars
    61. DP_LOOP
    62.     LDA    D_VARS+D_X_OFF,X
    63.     BEQ16    DP_END    ;This dagger isn't on
    64.  
    65.     LDA    #D_GRAVITY
    66.     CLC
    67.     ADC    D_VARS+D_YSP_OFF,X
    68.     STA    D_VARS+D_YSP_OFF,X    ;Add gravity to
    69.     BCC    !1      ;speed
    70.     INC    D_VARS+D_YSP_OFF+1,X
    71. !1
    72.  
    73.     CLC
    74.     ADC    D_VARS+D_YF_OFF,X
    75.     STA    D_VARS+D_YF_OFF,X    ;Add Y speed to Yf
    76.     LDA    D_VARS+D_YSP_OFF+1,X    ;and Y
    77.     ADC    D_VARS+D_Y_OFF,X
    78.     STA    D_VARS+D_Y_OFF,X
    79.  
    80.     LDA    D_VARS+D_YSP_OFF+1,X
    81.     BMI    BP_STILL_GOING
    82.     CMP    #7
    83.     BCC    BP_STILL_GOING
    84.  
    85.  
    86. ; Stop this dagger
    87.  
    88. BP_STOP
    89.     LDA    #0     ;the end
    90.     STA    D_VARS+D_X_OFF,X    ;If so,stop dagger
    91.     JMP    DP_END
    92. BP_STILL_GOING
    93.  
    94.     LDA    D_VARS+D_XSP_OFF,X
    95.     CLC           ;Add X speed to
    96.     ADC    D_VARS+D_XF_OFF,X    ;dagger X
    97.     STA    D_VARS+D_XF_OFF,X
    98.     LDA    D_VARS+D_XSP_OFF+1,X
    99.     ADC    D_VARS+D_X_OFF,X
    100.     CMP    #255-(D_XSPEED/256)
    101.     BCS    BP_STOP       ;Gone off edge of
    102.     STA    D_VARS+D_X_OFF,X    ;screen
    103.  
    104.     LDA    D_VARS+D_TYP_OFF,X
    105.     BEQ16    DP_DAG_SP
    106.  
    107.  
    108. ; Draw an axe and fireball
    109.  
    110. DP_AF_SP
    111.     LDA    D_VARS+D_X_OFF,X
    112.     STA    ZPAGE_WORD5
    113.     LDA    D_VARS+D_Y_OFF,X
    114.     STA    ZPAGE_WORD6    ;Setup X and Y's
    115.     LDA    #0
    116.     STA    ZPAGE_WORD5+1
    117.     STA    ZPAGE_WORD6+1
    118.  
    119.     LDA    D_VARS+D_TYP_OFF,X
    120.     CMP    #1
    121.     BEQ    DP_AXE_SP         ;Axe specific draw
    122.  
    123.  
    124. ;  Specific draw for fireball
    125.  
    126.     LDA    D_VARS+D_ANI_OFF,X
    127.     CMP    #3
    128.     BCC    DP_FB_AOK
    129.     LDA    #0
    130. DP_FB_AOK    TAY                      ;Animate the fireball
    131.     CLC
    132.     ADC    #1
    133.     STA    D_VARS+D_ANI_OFF,X
    134.  
    135.     LDA    D_VARS+D_XSP_OFF+1,X
    136.     BMI    DP_FB_LEFT
    137.  
    138.     SET16    ZPAGE_WORD2,DP_FB_LDEF
    139.      LDA    #BIT6
    140.     JMP    DP_FB_DEF_END
    141. DP_FB_LEFT
    142.     SET16    ZPAGE_WORD2,DP_FB_RDEF
    143.     LDA    #0
    144. DP_FB_DEF_END
    145.     STX    ZPAGE_BYTE10    ;Preserve X
    146.     TAX        ;Setup X for SPR_DRAW
    147.  
    148.     TYA
    149.     ASL    A
    150.     STA    ZPAGE_BYTE1
    151.     ASL    A
    152.     CLC        ;6 bytes per animation
    153.     ADC    ZPAGE_BYTE1    ;entry.
    154.     ADD16_A    ZPAGE_WORD2
    155.  
    156.     LDA    #128+1            ;Window number
    157.  
    158.     JSR    SPR3_DRAW_39    ;Draw sprite
    159.  
    160.     LDX    ZPAGE_BYTE10    ;Restore X
    161.  
    162.     JMP    DP_END
    163.  
    164.  
    165. ; Specific draw for axe
    166.  
    167. DP_AXE_SP
    168.     LDA    D_VARS+D_ANI_OFF,X
    169.     CMP    #4
    170.     BCC    DP_AXE_AOK
    171.     LDA    #0
    172. DP_AXE_AOK    TAY        ;Animate the dagger
    173.     CLC
    174.     ADC    #1
    175.     STA    D_VARS+D_ANI_OFF,X
    176.  
    177.     LDA    D_VARS+D_XSP_OFF+1,X
    178.     BMI    DP_AXE_LEFT
    179.  
    180.     SET16    ZPAGE_WORD2,DP_AXE_LDEF
    181.      LDA    #0
    182.     JMP    DP_AXE_DEF_END
    183. DP_AXE_LEFT
    184.     SET16    ZPAGE_WORD2,DP_AXE_RDEF
    185.     LDA    #BIT6
    186. DP_AXE_DEF_END
    187.     STX    ZPAGE_BYTE10    ;Preserve X
    188.     TAX        ;Setup X for SPR_DRAW
    189.  
    190.     TYA
    191.     ASL    A
    192.     STA    ZPAGE_BYTE1
    193.     ASL    A
    194.     CLC        ;6 bytes per animation
    195.     ADC    ZPAGE_BYTE1    ;entry.
    196.     ADD16_A    ZPAGE_WORD2
    197.  
    198.     LDA    #128+1    ;Window number
    199.  
    200.     JSR    SPR3_DRAW_39    ;Draw sprite
    201.  
    202.     LDX    ZPAGE_BYTE10    ;Restore X
    203.  
    204.     JMP    DP_END
    205.  
    206.  
    207. ; Draw a dagger
    208.  
    209. DP_DAG_SP
    210.     LDY    #0
    211.     LDA    D_VARS+D_Y_OFF,X
    212.     STA    (SD_PAGE_PTR),Y    ;Setup Y of dagger sprites
    213.     LDY    #4
    214.     STA    (SD_PAGE_PTR),Y
    215.  
    216.     LDA    D_VARS+D_X_OFF,X
    217.     DEY        ; Y=3
    218.     STA    (SD_PAGE_PTR),Y    ;Setup X of dagger sprites
    219.     CLC
    220.     ADC    #8
    221.     LDY    #7
    222.     STA    (SD_PAGE_PTR),Y
    223.  
    224.     LDA    D_VARS+D_XSP_OFF+1,X
    225.     BMI    DP_CHR_LEFT
    226.  
    227. ;   Setup dagger characters for going right
    228.  
    229.     LDA    #$14+64
    230.     LDY    #1
    231.     STA    (SD_PAGE_PTR),Y    ;Characters
    232.     LDA    #$13+64
    233.     LDY    #5
    234.     STA    (SD_PAGE_PTR),Y
    235.     LDA    #0+SPR_CTR_X_FLIP
    236.     JMP    DP_CHR_SEND
    237.  
    238. ;   Setup dagger characters for going left
    239.  
    240. DP_CHR_LEFT
    241.     LDA    #$13+64
    242.     LDY    #1
    243.     STA    (SD_PAGE_PTR),Y    ;Characters
    244.     LDA    #$14+64
    245.     LDY    #5
    246.     STA    (SD_PAGE_PTR),Y
    247.     LDA    #0
    248. DP_CHR_SEND
    249.  
    250.     LDY    #2
    251.     STA    (SD_PAGE_PTR),Y    ;Attribute
    252.     LDY    #6
    253.     STA    (SD_PAGE_PTR),Y
    254.  
    255.     LDA    SD_PAGE_PTR    ;Move over 2 sprites
    256.     CLC
    257.     ADC    #8
    258.     BNE    !1
    259.     LDA    #4
    260. !1    STA    SD_PAGE_PTR
    261.  
    262. DP_END
    263.     TXA
    264.     SEC        ;Move to next daggers vars
    265.     SBC    #D_VAR_LEN
    266.     TAX
    267.     BCS16    DP_LOOP
    268.  
    269.     JMP    SET_NORM_BANK         ;and 'RTS'
    270.  
    271. ;--------------------------------------
    272. ; Cameo screens
    273. ; ----- -------
    274.  
    275. CAMEO
    276.     LDA    #128    ;Stop tune playing
    277.     JSR    START_TUNE
    278.  
    279.     LDX    SCR_NUM            ;Setup BG bank
    280.     LDA    CAM_B_TAB,X
    281.     BEQ    !1
    282.     STA    N_BG_BANK1
    283.     CLC
    284.     ADC    #2
    285.     STA    N_BG_BANK2
    286.  
    287.     WAIT_FRAME
    288.     LDA    VDP_CTR_VAR0    ;Force screen 1
    289.     AND    #NOT-HORI_SWAP    ;to get rid of the
    290.     STA    VDP_CTR_VAR0    ;dash.
    291.     STA    VDP_CTR_REG0
    292.  
    293.     LDA    #-1
    294.     LDX    SCR_NUM
    295.     DEX
    296.     BEQ    !2            ;Don't scroll entrance cameo
    297.     LDA    #-6      
    298. !2    STA    N_SC_X
    299.     JSR    DISABLE_NC            ;Turn off NMI and CHR's
    300.  
    301.     LDA    #PAL_1
    302.     JSR    CLS          ;Clear screen
    303.  
    304.     LDX    SCR_NUM     ;Draw screen
    305.     LDA    CAM_S_TAB,X
    306.     JSR    S7_DS
    307.  
    308.     LDX    SCR_NUM               ;Draw attributes
    309.     LDA    CAM_A_TABL,X
    310.     STA    ZPAGE_WORD1
    311.     LDA    CAM_A_TABH,X
    312.     STA    ZPAGE_WORD1+1
    313.     SET_VRAM_PTR 27C8
    314.     LDX    #56
    315.     JSR    SI_SET_ATTR2  
    316.  
    317.     LDA    #0            ;Leave dash on other screen
    318.     STA    N_SPLIT
    319.  
    320.     JSR    ENABLE_CN
    321.  
    322.     LDX    SCR_NUM
    323.     LDA    CAM_F_TAB,X
    324.     PHA
    325.     TAX
    326.     JSR    FADE_IN
    327.  
    328.     LDX    #100    ;Wait for 100 frames
    329.     JSR    M_WAIT_FRAME
    330.  
    331.     PLA
    332.     TAX
    333.     JSR    FADE_OUT
    334.  
    335. !1
    336.      RTS
    337.  
    338. CAM_B_TAB    DB    0    ; 0 - Drawbridge
    339.     DB    GR_1ST+38    ; 1 - Entrance hall
    340.     DB    GR_1ST+42                  ; 2 - Mines
    341.     DB    GR_1ST+46                  ; 3 - Reaper
    342.     DB    0                 ; 4 -
    343.     DB    GR_1ST+50                  ; 5 - Singe
    344.     DB    0                    ; 6 - Elevator
    345.     DB    0                         ; 7 - Treasury
    346.     DB    0                         ; 8 - Dungeon
    347.  
    348.  
    349. CAM_S_TAB    DB    0    ; 0 - Drawbridge
    350.     DB    31    ; 1 - Entrance hall
    351.     DB    32                         ; 2 - Mines
    352.     DB    33                        ; 3 - Reaper
    353.     DB    0    ; 4 -
    354.     DB    35                  ; 5 - Singe
    355.     DB    0                    ; 6 - Elevator
    356.     DB    0                         ; 7 - Treasury
    357.     DB    0                         ; 8 - Dungeon
    358.  
    359. CAM_F_TAB    DB    0    ; 0 - Drawbridge
    360.     DB    75    ; 1 - Entrance hall
    361.     DB    80                         ; 2 - Mines
    362.     DB    85                        ; 3 - Reaper
    363.     DB    0    ; 4 -
    364.     DB    90                  ; 5 - Singe
    365.     DB    0                    ; 6 - Elevator
    366.     DB    0                         ; 7 - Treasury
    367.     DB    0                         ; 8 - Dungeon
    368.  
    369. CAM_A_TABH    DH    0    ; 0 - Drawbridge
    370.     DH    AM_C102_0    ; 1 - Entrance hall
    371.     DH    AM_C106_0    ; 2 - Mines
    372.     DH    AM_C110_0    ; 3 - Reaper
    373.     DH    0    ; 4 -
    374.     DH    AM_C114_0        ; 5 - Singe
    375.     DH    0        ; 6 - Elevator
    376.     DH    0        ; 7 - Treasury
    377.     DH    0                         ; 8 - Dungeon
    378.  
    379. CAM_A_TABL    DL    0    ; 0 - Drawbridge
    380.     DL    AM_C102_0    ; 1 - Entrance hall
    381.     DL    AM_C106_0    ; 2 - Mines
    382.     DL    AM_C110_0    ; 3 - Reaper
    383.     DL    0    ; 4 -
    384.     DL    AM_C114_0        ; 5 - Singe
    385.     DL    0        ; 6 - Elevator
    386.     DL    0        ; 7 - Treasury
    387.     DL    0                         ; 8 - Dungeon
    388.  
    389.  
    390.  
    391. ;    C102_0 ATTRIBUTE MAP ( 8 X 6 )
    392.  
    393. AM_C102_0
    394.  
    395.     DB    $65,$95,$65,$15,$45,$95,$65,$95
    396.     DB    $EE,$BB,$EE,$33,$CC,$BB,$EE,$BB
    397.     DB    $AA,$22,$00,$00,$00,$00,$88,$AA
    398.     DB    $AA,$22,$00,$00,$00,$00,$88,$AA
    399.     DB    $AA,$22,$00,$00,$00,$00,$88,$AA
    400.     DB    $AA,$AA,$00,$00,$00,$00,$88,$AA
    401.     DB    $AA,$AA,$00,$00,$00,$00,$88,$AA
    402.  
    403.  
    404.  
    405.  
    406. ;    C106_0 ATTRIBUTE MAP ( 8 X 6 )
    407.  
    408. AM_C106_0
    409.  
    410.     DB    $55,$B5,$A5,$A5,$A5,$A5,$F5,$11
    411.     DB    $9D,$AA,$AA,$AA,$AA,$AA,$AE,$11
    412.     DB    $99,$AA,$55,$55,$55,$99,$AA,$11
    413.     DB    $99,$AA,$55,$95,$55,$99,$AA,$11
    414.     DB    $99,$AA,$05,$09,$05,$89,$AA,$11
    415.     DB    $99,$AA,$00,$00,$00,$88,$AA,$11
    416.     DB    $99,$AA,$00,$00,$00,$88,$AA,$11
    417.  
    418. ;    C110_0 ATTRIBUTE MAP ( 8 X 6 )
    419.  
    420. AM_C110_0
    421.  
    422.     DB    $55,$55,$55,$55,$55,$55,$55,$11
    423.     DB    $55,$55,$05,$05,$05,$05,$45,$01
    424.     DB    $15,$00,$00,$00,$00,$00,$44,$00
    425.     DB    $00,$00,$C0,$FF,$33,$00,$44,$00
    426.     DB    $00,$00,$FC,$FF,$FF,$00,$44,$20
    427.     DB    $00,$C0,$FF,$00,$CC,$30,$A6,$22
    428.     DB    $0F,$0F,$0F,$00,$0C,$0F,$0A,$02
    429.  
    430.  
    431. ;    C114_0 ATTRIBUTE MAP ( 8 X 6 )
    432.  
    433. AM_C114_0
    434.  
    435.     DB    $AA,$EF,$77,$55,$FF,$FF,$FF,$33
    436.     DB    $BA,$EE,$77,$55,$FF,$FF,$FF,$33
    437.     DB    $FF,$FA,$86,$55,$FF,$FF,$FF,$33
    438.     DB    $FF,$BF,$AA,$65,$5F,$5F,$5F,$13
    439.     DB    $FF,$FF,$FF,$76,$55,$55,$55,$11
    440.     DB    $FF,$FF,$FF,$FF,$FF,$FF,$FF,$33
    441.     DB    $FF,$FF,$FF,$FF,$FF,$FF,$FF,$33
    442.  
    443.  
    444. ;--------------------------------------
    445.  
    446. B39_END
    447.     IF    B39_END>$BFFF
    448.         PRINTF "**** BANK $39 too long !! ****"
    449.     ENDIF
    450.  
    451.  
    452. ; End of bank $39
    453. ; --- -- ---- ---
    454. ;======================================
    455. ; Start of bank $38
    456. ; ----- -- ---- ---
    457.  
    458.     ORG    $138,$8000
    459.  
    460. ;--------------------------------------
    461. ; Include all the BG animation data.
    462. ; ------- --- --- -- --------- -----
    463.  
    464.     INCLUDE "BG_ANIM.SRC"    ;ACB's and DCB's
    465.     INCLUDE "BG_MAP1.SRC"    ;Bg anims map data
    466.  
    467. ;--------------------------------------
    468. ; Table of pointers to palettes.
    469. ; ----- -- -------- -- ---------
    470.  
    471. SPAL_PTR_TAB
    472.     DW    PAL_BLACK    ;0 - Mines (Bright)
    473.     DW    MI_P1    ;1
    474.     DW    MI_P2    ;2
    475.     DW    MI_P3    ;3
    476.     DW    S_PAL_S2    ;4
    477.     DW    PAL_BLACK    ;5 - Mines (Dark)
    478.     DW    MI_P1    ;6
    479.     DW    MI_P2    ;7
    480.     DW    MI_P4    ;8
    481.     DW    S_PAL_S2    ;9
    482.     DW    DIRK_FLASH_PAL    ;10
    483.     DW    PAL_BLACK    ;11 - Elevator
    484.     DW    ELEV_PAL0    ;12
    485.     DW    ELEV_PAL1    ;13
    486.     DW    ELEV_PAL2    ;14
    487.     DW    S_PAL_S6     ;15
    488.     DW    MI_P5    ;16 - 2 entry candle lit mines
    489.     DW    MI_P6    ;17 - 2 entry bright mines
    490.     DW    S_PAL_S2A    ;18 - 1 entry for lizard king
    491.     DW    S_PAL_S2B    ;19 - 1 entry for normal
    492.     DW    PAL_BLACK    ;20 - Grim reaper
    493.     DW    R00_PAL    ;21
    494.     DW    R01_PAL    ;22
    495.     DW    R02_PAL    ;23
    496.     DW    S_PAL_S2    ;24
    497.     DW    FLASH_PAL    ;25 - 4 ent Lighting flash
    498.     DW    PAL_BLACK    ;26 - Drawbridge
    499.     DW    DB_PAL1    ;27
    500.     DW    DB_PAL2    ;28
    501.     DW    DB_PAL3    ;29
    502.     DW    S_PAL_S0    ;30
    503.     DW    PAL_BLACK    ;31 - Name entry,
    504.     DW    AT_PAL1    ;32 - high score table
    505.     DW    AT_PAL2    ;33 - and title screen
    506.     DW    AT_PAL3    ;34
    507.     DW    AT_SPR_PAL    ;35
    508.     DW    G1_PAL0    ;36 - 'Start' glow
    509.     DW    G1_PAL1    ;37
    510.     DW    G1_PAL2    ;38
    511.     DW    G1_PAL3    ;39
    512.     DW    G1_PAL4    ;40
    513.     DW    PAL_BLACK    ;41
    514.     DW    SG_PAL1    ;42 - Singe's Lair
    515.     DW    SG_PAL2    ;43
    516.     DW    SG_PAL3    ;44
    517.     DW    S_PAL_S0    ;45
    518.     DW    SG_PAL4    ;46 - Dragon on
    519.     DW    PAL_BLACK    ;47 - Entrance Hall
    520.     DW    PAL_BLACK    ;48
    521.     DW    EH2_PAL    ;49
    522.     DW    EH2_PAL    ;50
    523.     DW    S_PAL_S2    ;51
    524.     DW    PAL_BLACK    ;52 - Treasury
    525.     DW    T_PAL0    ;53
    526.     DW    T_PAL1    ;54
    527.     DW    T_PAL2    ;55
    528.     DW    S_PAL_S7    ;56
    529.     DW    SG_PAL    ;57 - Singe bits palette
    530.     DW    PAL_BLACK    ;58 - No fade set of palettes
    531.     DW    PAL_BLACK    ;59   for use with mines drak
    532.     DW    PAL_BLACK    ;60   section and grim reaper
    533.     DW    PAL_BLACK    ;61   end.
    534.     DW    S_PAL_S2    ;62
    535.     DW    SG_PAL5    ;63 - Singe 1 ent green
    536.             DW    SG_FLASH    ;64 - Flash Reaper/Singe white
    537.     DW    R03_PAL    ;65 - Reaper 1 ent blue
    538.     DW    PAL_BLACK    ;66 - End screen palettes
    539.     DW    ES_PAL1    ;67
    540.     DW    ES_PAL2    ;68
    541.     DW    ES_PAL3    ;69
    542.     DW    S_PAL_S0    ;70
    543.     DW    S0_SNK    ;71 - Green for snake s0
    544.                 DW    EH3_PAL    ;72 - End screen (Entrance hall)
    545.     DW    EH3_F    ;73 - Flash snake
    546.     DW    EH3_R    ;74 - Restore snake
    547.     DW    PAL_BLACK    ;75 - Entrance hall cameo
    548.     DW    PAL_BLACK     ;76
    549.     DW    CAM_PAL3     ;77
    550.     DW    CAM_PAL3     ;78
    551.     DW    S_PAL_S0    ;79
    552.     DW    PAL_BLACK    ;80 - Mines cameo
    553.     DW    PAL_BLACK     ;81
    554.     DW    MIN_PAL3     ;82
    555.     DW    MIN_PAL3     ;83
    556.     DW    S_PAL_S0    ;84
    557.     DW    PAL_BLACK    ;85
    558.     DW    PAL_BLACK     ;86
    559.     DW    REAP_PAL3     ;87
    560.     DW    REAP_PAL3     ;88
    561.     DW    S_PAL_S0    ;89
    562.     DW    PAL_BLACK    ;90
    563.     DW    PAL_BLACK    ;91
    564.     DW    SING_PAL3    ;92
    565.     DW    SING_PAL3    ;93
    566.     DW    S_PAL_S0    ;94
    567.     DW    PAL_BLACK    ;95
    568.     DW    EH3_R    ;96 - Restore snake
    569.     DW    EH3_R    ;97
    570.     DW    EH3_R    ;98
    571.     DW    S_PAL_S0    ;99
    572.     DW    PAL_BLACK    ;100 - Credit screens
    573.     DW    R00_PAL    ;101
    574.     DW    R01_PAL    ;102
    575.     DW    CS_PAL    ;103
    576.     DW    S_PAL_S2    ;104
    577.  
    578.  
    579. ; BG palettes
    580.  
    581. FLASH_PAL    DB    WHITE3,WHITE2,WHITE1,WHITE0
    582.     DB    WHITE3,WHITE2,WHITE1,WHITE0
    583.     DB    WHITE3,WHITE2,WHITE1,WHITE0
    584.     DB    WHITE3,WHITE2,WHITE1,WHITE0
    585.  
    586.  
    587. PAL_BLACK    DB    BLACK,BLACK,BLACK,BLACK
    588.     DB    BLACK,BLACK,BLACK,BLACK
    589.     DB    BLACK,BLACK,BLACK,BLACK
    590.     DB    BLACK,BLACK,BLACK,BLACK
    591.  
    592. ; Sprite palettes
    593.  
    594. ; Screen 0 - Drawbridge
    595.  
    596. S_PAL_S0    DB    BLACK,WHITE2,WHITE1,WHITE0
    597.     DB    BLACK,ORANGE2,ORANGE3,YELLOW1
    598.     DB    BLACK,WHITE2,YELLOW2,WHITE0
    599. S0_SNK    DB    BLACK,GREEN3,GREEN2,MID_GREEN1
    600.  
    601.  
    602. S_PAL_S2    DB    BLACK,WHITE2,WHITE1,WHITE0
    603.     DB    BLACK,ORANGE2,ORANGE3,YELLOW1
    604.     DB    BLACK,WHITE2,YELLOW2,WHITE0
    605. S_PAL_S2B    DB    BLACK,ORANGE3,ORANGE2,ORANGE1
    606.  
    607.  
    608. ; Screen 6 - Elevator
    609.  
    610. S_PAL_S6    DB    BLACK,WHITE2,WHITE1,WHITE0
    611.     DB    BLACK,ORANGE2,ORANGE3,YELLOW1
    612.     DB    BLACK,WHITE2,YELLOW2,WHITE0
    613.     DB    BLACK,ORANGE3,ORANGE2,ORANGE1
    614.  
    615.  
    616. S_PAL_S7    DB    BLACK,WHITE2,WHITE1,WHITE0
    617.     DB    BLACK,ORANGE2,ORANGE3,YELLOW1
    618.     DB    BLACK,WHITE2,YELLOW2,WHITE0
    619. S_PAL_S2A    DB    BLACK,WHITE2,LT_GREEN1,LT_GREEN2 ;Lizard king palette
    620.  
    621.  
    622. DIRK_FLASH_PAL    DB    BLACK,WHITE2,WHITE1,WHITE0
    623.     DB    BLACK,WHITE2,WHITE2,WHITE2
    624.     DB    BLACK,WHITE2,WHITE2,WHITE2
    625. ;    DB    BLACK,WHITE1,MID_GREEN1,MID_GREEN0
    626.  
    627. SG_FLASH    DB    BLACK,WHITE3,WHITE3,WHITE3
    628.  
    629. ; Attract mode sprite palette
    630.  
    631. AT_SPR_PAL    DB    BLACK,BLUE2,BLUE2,BLUE1
    632.     DB    BLACK,ORANGE2,ORANGE1,ORANGE0
    633.     DB    BLACK,GREEN3,GREEN2,GREEN1
    634.     DB    BLACK,ORANGE3,ORANGE2,ORANGE1
    635.  
    636. ; Sprite palette for Singe's bits
    637.  
    638. SG_PAL    DB    BLACK,WHITE3,PURPLE2,PURPLE1
    639.  
    640. MI_F    DB    BLACK
    641.  
    642. ;======================================
    643.  
    644.  
    645. B38_END
    646.     IF    B38_END>$9FFF
    647.         PRINTF "**** BANK $38 too long !! ****"
    648.     ENDIF
    649.  
    650. ; End of bank $38
    651. ; --- -- ---- ---
    652. ;--------------------------------------
    653. ; Start of bank $37
    654. ; ----- -- ---- ---
    655.  
    656.     ORG    $137,$A000
    657.  
    658. ; Include screen maps
    659. ; ------- ------ ----
    660.  
    661.     INCLUDE "GR_SMAP2.SRC"
    662.  
    663. B37_END
    664.     IF    B37_END>$BFFF
    665.         PRINTF "**** BANK $37 too long !! ****"
    666.     ENDIF
    667.  
    668.  
    669. ; End of bank $37
    670. ; --- -- ---- ---
    671. ;--------------------------------------
    672. ; Start of bank $36
    673. ; ----- -- ---- ---
    674.  
    675.     ORG    $136,$8000
    676.  
    677. ; Include the ZZ_ and BM_ data for SPR_DRAW
    678. ; ------- --- --- --- --- ---- --- --------
    679.  
    680.     INCLUDE "GR_MAP.SRC"  
    681.     INCLUDE "GR_MAP2.SRC"
    682.     INCLUDE "GR_MAP3.SRC"
    683.  
    684.  
    685. ; ZZ_ and BM_ maps for test sprite
    686.  
    687. BM_TEST    DB    %11000000
    688.     DB    %11000000
    689.  
    690. ZZ_TEST    DB    30,30,30,30
    691.  
    692.  
    693.  
    694. B36_END
    695.     IF    B36_END>$9FFF
    696.         PRINTF "**** BANK $36 too long !! ****"
    697.     ENDIF
    698.  
    699.  
    700. ; End of bank $36
    701. ; --- -- ---- ---
    702.  
    703. ;--------------------------------------
    704. ; Start of bank $34+35
    705. ; ----- -- ---- ------
    706.  
    707.     ORG    $134,$8000
    708.  
    709.     INCBIN    "SCRBLK.INC"
    710.  
    711. B35_END
    712.     IF    B35_END>$BFFF
    713.         PRINTF "**** BANK $34+$35 too long !! ****"
    714.     ENDIF
    715.  
    716.  
    717. ; End of bank $34+$35
    718. ; --- -- ---- -------
    719. ;--------------------------------------
    720. ; Start of bank $32
    721. ; ----- -- ---- ---
    722.  
    723.     ORG    $132,$8000
    724.  
    725. ;--------------------------------------
    726.  
    727.     INCBIN  "ATTR.INC"
    728.  
    729. ;--------------------------------------
    730. ; Collapsing floor collision tables.(X,Screen address)
    731. ; ---------- ----- --------- ------  ----------------
    732.  
    733. ;  Screen 0 - Drawbridge
    734.  
    735. SCR0_COLAP_TAB
    736.     DW    104,9024+13
    737.     DW    112,9024+14
    738.     DW    120,9024+15
    739.  
    740.     DW    $FFFF
    741.  
    742.  
    743. ;  Screen 3 - Grim reaper
    744.  
    745. SCR3_COLAP_TAB  
    746.    
    747. ; Gr #1
    748.     DW    88,9024+11
    749.     DW    96,9024+12
    750.     DW    104
    more more!

    Code (ASM):
    1. ; Table 0 contains pointers to the top left hand corner screen address.
    2.  
    3. SCR_DRAW_TAB0    DW    DL_SCR_TLFT    ;0 - Panel
    4.     DW    DL_SCR_TLFT+(5*32)    ;1 - Draw Bridge
    5.     DW    SCR1_START+(26*32)    ;2 - Reaper floor
    6.     DW    DL_SCR_TLFT+(5*32)    ;3 - Treasury
    7.     DW    SCR1_START+(15*32)+22    ;4 - Reaper
    8.  
    9.     IF    FCS=1
    10.     DW    SCR_START+(9*32)+10    ;5 - SBIM logo
    11.     DW    SCR_START+(13*32)+13    ;6 - Presents
    12.     DW    SCR_START+(12*32)+24    ;7 - TM
    13.     DW    SCR_START+(19*32)+11    ;8 - Released by
    14.     DW    SCR_START+(21*32)+4    ;9 - EPIC logo
    15.     DW    SCR_START+(24*32)+5    ;10- Licensed by Nintendo
    16.     DW    SCR_START+(7*32)+7    ;11- EPIC release
    17.     DW    SCR_START+(12*32)+10    ;12- Developed by
    18.     DW    SCR_START+(14*32)+12    ;13- MotiveTime logo
    19.     DW    SCR_START+(18*32)+1    ;14- Copyright message
    20.     DW    SCR_START+(15*32)+10    ;15- Dragons Lair logo s1
    21.     ENDIF
    22.  
    23.     IF    GBR=1
    24.     DW    SCR_START+(5*32)+9    ;5 - SBIM logo
    25.     DW    SCR_START+(9*32)+11    ;6 - Presents
    26.     DW    SCR_START+(3*32)+9    ;7 - Don Bluth cs2
    27.     DW    SCR_START+(14*32)+10    ;8 - Released by
    28.     DW    SCR_START+(16*32)+6    ;9 - Elite logo
    29.     DW    SCR_START+(24*32)+5    ;10- Licensed by Nintendo
    30.     DW    SCR_START+(7*32)+5    ;11- Elite release
    31.     DW    SCR_START+(12*32)+10    ;12- Developed by
    32.     DW    SCR_START+(14*32)+11    ;13- MotiveTime logo
    33.     DW    SCR_START+(18*32)+1    ;14- Copyright message
    34.     DW    SCR_START+(11*32)+8    ;15- Dragons Lair logo s1
    35.     ENDIF
    36.  
    37.     DW    SCR_START+(3*32)+9    ;16- Dragons Lair logo s2
    38.     DW    SCR_START+(4*32)+23    ;17- TM credits screen 2
    39.     DW    SCR_START+(32*8)+7    ;18- SCORES
    40.     DW    SCR_START+(32*10)+8    ;19- PLAYERS
    41.     DW    SCR_START+(32*13)+8    ;20- MUSIC
    42.     DW    SCR_STAR