Degreezy

SetEnemyBaseATT

Jan 8th, 2021 (edited)
2,051
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. ASM FILE code\gameflow\battle\battle_s13_2.asm
  2. ________________________________________________________________________________________________
  3. Reference table for ASM to Hex here:
  4. http://info.sonicretro.org/SCHG:68000_ASM-to-Hex_Code_Reference
  5. ________________________________________________________________________________________________
  6. ________________________________________________________________________________________________
  7. SUBROUTINE: SetEnemyBaseATT 78 bytes
  8. 001B15AA...001B15F7
  9. ________________________________________________________________________________________________
  10. 001B15AA: 2F
  11. 001B15AB: 01 move.l d1,-(sp) ;store long-word d1 into stack pointer
  12.  
  13. 001B15AC: 4E
  14. 001B15AD: B9 jsr ;jump to subroutine
  15.  
  16. 001B15AE: 00
  17. 001B15AF: 00
  18. 001B15B0: 82
  19. 001B15B1: C0 j_GetDifficulty
  20.  
  21. 001B15B2: 0C
  22. 001B15B3: 41 cmpi.w,d1 ;compare word (#DIFFICULTY_SUPER) with d1
  23.  
  24. 001B15B4: 00
  25. 001B15B5: 02 #DIFFICULTY_SUPER ;effectively checks for Super
  26. ;00 = Normal
  27. ;01 = Hard
  28. ;02 = Super
  29. ;03 = Ouch!
  30.  
  31. 001B15B6: 67 beq.s ;branch if equal (short)
  32. 001B15B7: 04 ;add to program counter to read new offset (@SuperDifficulty)
  33.  
  34. 001B15B8: 67 beq.w ;branch if equal (word)
  35. 001B15B9: 00
  36. 001B15BA: 00
  37. 001B15BB: 3A ;add to PC to read new offset (@Done) Pointless because of the previous beq instruction
  38.  
  39. @SuperDifficulty
  40. 001B15BC: 42
  41. 001B15BD: 81 clr.l,d1 ;clear long-word in d1
  42.  
  43. 001B15BE: 4E
  44. 001B15BF: B9 jsr
  45.  
  46. 001B15C0: 00
  47. 001B15C1: 00
  48. 001B15C2: 80
  49. 001B15C3: 34 j_GetBaseATT
  50.  
  51. 001B15C4: C2
  52. 001B15C5: FC
  53. 001B15C6: 00
  54. 001B15C7: 05 mulu.w #5,d1 ;multiply word in d1 by 5
  55.  
  56. 001B15C8: E4
  57. 001B15C9: 89 lsr.l #2,d1 ;(binary) in d1, shift bits to the right by 2. Base ATT effectively multiplied by 1.25
  58.  
  59. 001B15CA: 4E
  60. 001B15CB: B9 jsr
  61.  
  62. 001B15CC: 00
  63. 001B15CD: 00
  64. 001B15CE: 80
  65. 001B15CF: AC j_SetBaseATT
  66.  
  67. 001B15D0: 4E
  68. 001B15D1: B9 jsr
  69.  
  70. 001B15D2: 00
  71. 001B15D3: 00
  72. 001B15D4: 82
  73. 001B15D5: C0 j_GetDifficulty
  74.  
  75. 001B15D6: 0C
  76. 001B15D7: 41 cmpi.w, d1
  77. 001B15D8: 00
  78. 001B15D9: 02 #DIFFICULTY_SUPER
  79.  
  80. 001B15DA: 67 beq.s
  81. 001B15DB: 04
  82.  
  83. 001B15DC: 60 bra.w ;branch always
  84. 001B15DD: 00
  85. 001B15DE: 00
  86. 001B15DF: 16
  87.  
  88. 001B15E0: 42
  89. 001B15E1: 81 clr.l,d1
  90.  
  91. 001B15E2: 4E jsr
  92. 001B15E3: B9
  93.  
  94. 001B15E4: 00
  95. 001B15E5: 00
  96. 001B15E6: 80
  97. 001B15E7: 34 j_GetBaseATT
  98.  
  99. 001B15E8: C2
  100. 001B15E9: FC
  101. 001B15EA: 00
  102. 001B15EB: 05 mulu.w #5,d1
  103.  
  104. 001B15EC: E4
  105. 001B15ED: 89 lsr.l #2,d1 ;effectively multiplying base ATT by 1.25 again for Super
  106.  
  107. 001B15EE: 4E jsr
  108. 001B15EF: B9
  109.  
  110. 001B15F0: 00
  111. 001B15F1: 00
  112. 001B15F2: 80
  113. 001B15F3: AC j_SetBaseATT
  114.  
  115. @Done
  116. 001B15F4: 22
  117. 001B15F5: 1F move.l (sp)+,d1
  118.  
  119. 001B15F6: 4E
  120. 001B15F7: 75 rts ;return to subroutine
  121.  
  122. ________________________________________________________________________________________________
  123.  
  124. lsr.l #x, d1
  125.  
  126. HEX #x
  127. E0 #0
  128. E2 #1
  129. E4 #2
  130. E6 #3
  131. E8 #4
  132. EA #5
  133. EC #6
  134. EF #7
  135.  
  136. ________________________________________________________________________________________________
  137.  
  138. 8000 j_GetCombatantName
  139. 8004 j_GetClass
  140. 8008 j_GetYPos
  141. 800C j_GetMaxMP
  142. 8010 j_GetMaxHP
  143. 8014 j_GetXPos
  144. 8018 j_GetUpperMoveType
  145. 801C j_GetStatus
  146. 8020 j_GetCurrentSpecialAbility
  147. 8024 j_GetBaseSpecialAbility
  148. 8028 j_GetBaseMOV
  149. 802C j_GetBaseDEF
  150. 8030 j_GetBaseResistance
  151. 8034 j_GetBaseATT
  152. 8038 j_GetBaseAGI
  153. 803C j_GetCurrentMOV
  154. 8040 j_GetCurrentMP
  155. 8044 j_GetCurrentLevel
  156. 8048 j_GetCurrentHP
  157. 804C j_GetCurrentEXP
  158. 8050 j_GetCurrentDEF
  159. 8054 j_GetCurrentResistance
  160. 8058 j_GetCurrentATT
  161. 805C j_GetEnemyAISetting3233
  162. 8060 j_GetEnemyAISetting36
  163. 8064 j_GetCharacterWord34
  164. 8068 j_GetCurrentAGI
  165. 806C j_GetEnemyIndex
  166. 8070 j_GetSomethingClassType
  167. 8074 j_GetKills
  168. 8078 j_GetDefeats
  169. 807C j_CopyCharacterNameToRam
  170. 8080 j_SetYPos
  171. 8084 j_SetMaxMP
  172. 8088 j_SetMaxHP
  173. 808C j_SetXPos
  174. 8090 j_SetMoveType
  175. 8094 j_SetStatus
  176. 8098 j_SetCurrentProwess
  177. 809C j_SetBaseProwes
  178. 80A0 j_SetBaseMOV
  179. 80A4 j_SetBaseDEF
  180. 80A8 j_SetBaseResistance
  181. 80AC j_SetBaseATT
  182. 80B0 j_SetBaseAGI
  183. 80B4 j_SetCurrentMOV
  184. 80B8 j_SetCurrentMP
  185. 80BC j_SetLevel
  186. 80C0 j_SetCurrentHP
  187. 80C4 j_SetCurrentEXP
  188. 80C8 j_SetCurrentDEF
  189. 80CC j_SetClass
  190. 80D0 j_SetCurrentResistance
  191. 80D4 j_SetCurrentATT
  192. 80D8 j_SetKills
  193. 80DC j_SetDefeats
  194. 80E0 j_SetCharacterWord34
  195. 80E4 j_SetCurrentAGI
  196. 80E8 j_SetEnemyIndex
  197. 80EC j_IncreaseMP
  198. 80F0 j_IncreaseMaxHP
  199. 80F4 j_IncreaseBaseMOV
  200. 80F8 j_IncreaseBaseDEF
  201. 80FC j_IncreaseBaseATT
  202. 8100 j_IncreaseAGI
  203. 8104 j_IncreaseCurrentMOV
  204. 8108 j_IncreaseCurrentMP
  205. 810C j_IncreaseLevel
  206. 8110 j_IncreaseCurrentHP
  207. 8114 j_IncreaseEXP
  208. 8118 j_IncreaseCurrentDEF
  209. 811C j_IncreaseCurrentATT
  210. 8120 j_IncreaseCurrentAGI
  211. 8124 j_IncreaseKills
  212. 8128 j_IncreaseDefeats
  213. 812C j_DecreaseBaseMOV
  214. 8130 j_DecreaseBaseDEF
  215. 8134 j_DecreaseBaseAGI
  216. 8138 j_DecreaseCurrentMOV
  217. 813C j_DecreaseCurrentMP
  218. 8140 j_DecreaseCurrentHP
  219. 8144 j_DecreaseCurrentDEF
  220. 8148 j_DecreaseCurrentATT
  221. 814C j_DecreaseCurrentAGI
  222. 8150 j_GetClassName
  223. 8154 j_SetGold
  224. 8158 j_GetGold
  225. 815C j_IncreaseGold
  226. 8160 j_DecreaseGold
  227. 8164 j_ApplyStatusEffectsAndItemsOnStats
  228. 8168 j_ApplyItemOnStats
  229. 816C j_FindItemName
  230. 8170 j_GetItemDefAddress
  231. 8174 j_GetItemAndNumberOfItems
  232. 8178 j_GetItemType
  233. 817C j_GetEquippedWeapon
  234. 8180 j_GetEquippedRing
  235. 8184 j_BreakItem
  236. 8188 j_RepairItemBySlot
  237. 818C j_EquipItem
  238. 8190 j_UnequipItemIfNotCursed
  239. 8194 j_UnequipItemBySlot
  240. 8198 j_AddItem
  241. 819C j_RemoveItemBySlot
  242. 81A0 j_DropItemBySlot
  243. 81A4 j_UnequipWeapon
  244. 81A8 j_UnequipRing
  245. 81AC j_GetEquippableWeapons
  246. 81B0 j_GetEquippableRings
  247. 81B4 j_IsWeaponOrRingEquippable
  248. 81B8 j_GetEquipmentNewATTandDEF
  249. 81BC j_OrderItems
  250. 81C0 j_IsItemCursed
  251. 81C4 j_IsItemUsableInBattle
  252. 81C8 j_IsItemUsableWeaponInBattle
  253. 81CC j_UnequipAllItemsIfNotCursed
  254. 81D0 j_GetItemInventoryLocation
  255. 81D4 j_GetItemSlotContainingIndex
  256. 81D8 j_FindSpellName
  257. 81DC j_GetSpellDefAddress
  258. 81E0 j_GetSpellAndNumberOfSpells
  259. 81E4 j_GetSpellCost
  260. 81E8 j_LearnSpell
  261. 81EC j_GetCombatantEntryAddress_0
  262. 81F0 j_GetDistanceBetweenEntities
  263. 81F4 j_nullsub_9482
  264. 81F8 j_GetCombatantEntryAddress
  265. 81FC j_NewGame
  266. 8200 j_LevelUp
  267. 8204 j_Promote
  268. 8208 j_DebugModeActionSelect
  269. 820C j_WriteSkirmishScript
  270. 8210 j_sub_C404
  271. 8214 j_CreateSpellRangeGrid
  272. 8218 j_CreateItemRangeGrid
  273. 821C j_sub_C4E8
  274. 8220 j_CreateTargetGridFromUsedItem
  275. 8224 j_sub_C5FA
  276. 8228 j_CreateTargetGridFromSpell
  277. 822C j_CreateTargetGrid
  278. 8230 j_MakeTargetList
  279. 8234 j_MakeTargetListAllies
  280. 8238 j_MakeTargetListEnemies
  281. 823C j_MakeTargetListEverybody
  282. 8240 j_UpdateTargetListAllies
  283. 8244 j_UpdateTargetListEnemies
  284. 8248 j_ConvertCoordToOffset
  285. 824C j_ClearMovableGrid
  286. 8250 j_ClearTargetGrid
  287. 8254 j_GetTargetAtCoordOffset
  288. 8258 j_GetLandEffectSetting
  289. 825C j_GetCurrentTerrainType
  290. 8260 j_SetMovableAtCoord
  291. 8264 j_CheckFlag
  292. 8268 j_SetFlag
  293. 826C j_ClearFlag
  294. 8270 j_UpdateForce
  295. 8274 j_JoinForce
  296. 8278 j_LeaveForce
  297. 827C j_IsInBattleParty
  298. 8280 j_JoinBattleParty
  299. 8284 j_LeaveBattleParty
  300. 8288 j_GetDealsItemAmount
  301. 828C j_AddItemToDeals
  302. 8290 j_RemoveItemFromDeals
  303. 8294 j_AddItemToCaravan
  304. 8298 j_RemoveItemFromCaravan
  305. 829C j_AddAllToStack
  306. 82A0 j_sub_DEFC
  307. 82A4 j_MakeRangeLists
  308. 82A8 j_GenerateTargetRangeLists
  309. 82AC j_MakeBattleEntityCancelMoveString
  310. 82B0 j_GetTerrain
  311. 82B4 j_SetTerrain
  312. 82B8 j_ClearEnemyMoveInfo
  313. 82BC j_GetMoveInfo
  314. 82C0 j_GetDifficulty
Advertisement
Add Comment
Please, Sign In to add comment