# EXAMPLE INI file for clever-disasm (Castlevania 2 USA) # Level data tables: # LevelData_Actors # LevelData_ProjectileVelocities # LevelData_Palettes # LevelData_Screens # LevelData_Stairs # LevelData_MetaTiles # LevelData_CategoryThresholds # LevelData_ScreenNumbers -- which includes pointers forward # LevelData_MaxLevelUp # LEVELDATA_ACTORS CertainlyData $10AC0 "" 0 $4 CertainlyCode $4C4A "" 0 $1 CertainlyCode $4C4F "" 0 $1 CertainlyCode $1EEA8 "" 0 $3 CertainlyCode $1EEAD "" 0 $3 CertainlyCode $1F449 "" 0 $4 DataTable $509C $509D 2 1 LevelData_Actors_0_Towns_0aldra 0 $1 DataTable $5204 $5205 2 1 LevelData_Actors_0_Towns_1veros 0 $1 DataTable $5154 $5155 2 1 LevelData_Actors_0_Towns_2aljiba 0 $1 DataTable $509E $509F 2 1 LevelData_Actors_0_Towns_3jova 0 $1 DataTable $5206 $5207 2 1 LevelData_Actors_0_Towns_4ondol 0 $1 DataTable $5156 $5157 2 1 LevelData_Actors_0_Towns_5doina 0 $1 DataTable $5158 $5159 2 1 LevelData_Actors_0_Towns_6yomi 0 $1 DataTable $4EDB $4EDC 2 1 LevelData_Actors_0_Towns_7church 0 $1 DataTable $50A0 $50A1 2 1 LevelData_Actors_0_Towns_8jovaThornWhipSellerRoom 0 $1 DataTable $50A2 $50A3 2 1 LevelData_Actors_0_Towns_9jovaHolyWaterSellerRoom 0 $1 DataTable $5208 $5209 2 2 LevelData_Actors_0_Towns_1_Town_UnknownRoom_2rooms 0 $1 DataTable $520C $520D 2 1 LevelData_Actors_0_Towns_11_Town_UnknownRoom 0 $1 DataTable $515A $515B 2 1 LevelData_Actors_0_Towns_12_Town_UnknownRoom 0 $1 DataTable $515C $515D 2 2 LevelData_Actors_0_Towns_13_Town_UnknownRoom_2rooms 0 $1 DataTable $5160 $5161 2 2 LevelData_Actors_0_Towns_14_Town_UnknownRoom_2rooms 0 $1 DataTable $50A4 $50A5 2 2 LevelData_Actors_0_Towns_15_Town_UnknownRoom_2rooms 0 $1 DataTable $50A8 $50A9 2 2 LevelData_Actors_0_Towns_16_Town_UnknownRoom_2rooms 0 $1 DataTable $520E $520F 2 2 LevelData_Actors_0_Towns_17_Town4ondol_MorningStarSellerRoom_2rooms 0 $1 DataTable $5212 $5213 2 1 LevelData_Actors_0_Towns_18_Town4ondol_DeathStarManRoom 0 $1 DataTable $5214 $5215 2 3 LevelData_Actors_0_Towns_19_Town_UnknownRoom_3rooms 0 $1 DataTable $5164 $5165 2 1 LevelData_Actors_0_Towns_20_Town5doina_GetBackManRoom 0 $1 DataTable $5166 $5167 2 1 LevelData_Actors_0_Towns_21_Town5doina_LaurelSellerRoom 0 $1 DataTable $5168 $5169 2 1 LevelData_Actors_0_Towns_22_Town_UnknownRoom 0 $1 DataTable $516A $516B 2 1 LevelData_Actors_0_Towns_23_Town6yomi_LoneManRoom 0 $1 DataDataTable $4EAB $4EAC 2 24 LevelData_Actors_0_Towns 0 $1 # Actor data tables... They are 4-byte records, indicate as such. Just do it for a select few of them. CertainlyData $50AC "" 4 CertainlyData $50F5 "" 4 CertainlyData $4B56 HitboxTypes_For_Object00_and_47 CertainlyData $4B57 HitboxTypes_For_Object03_07_0B_0D_0F_10_13_14_16_17_1C_1D_1E_21_22_23_24_28_29_2A_2B_2C_2D_2E_2F_34_35_36_37_39_3B_3C_3D_43 CertainlyData $4B5C HitboxTypes_For_Object02_40 CertainlyData $4B5E HitboxTypes_For_Object01_08_09_0A_0C_0E_12_1A_20_33_3E_45 CertainlyData $4B61 HitboxTypes_For_Object05_06_11 CertainlyData $4B64 HitboxTypes_For_Object15_18 CertainlyData $4B65 HitboxTypes_For_Object1F_32_41_48 CertainlyData $4B67 HitboxTypes_For_Object1B CertainlyData $4B6A HitboxTypes_For_Object25 CertainlyData $4B6C HitboxTypes_For_Object26_27_49 CertainlyData $4B6E HitboxTypes_For_Object42_44 CertainlyData $4B6F HitboxTypes_For_Object19_30_31_46 CertainlyData $4B73 HitboxTypes_For_Object3F CertainlyData $4B74 HitboxTypes_For_Object3A CertainlyData $4B77 HitboxTypes_For_Object04 CertainlyData $4B7A HitboxTypes_For_Object38 CertainlyData $4B7C HitboxTypes_For_Object4A DataTable $4AC0 $4AC1 2 75 Actor_HitboxTable CertainlyCode $4C45 ObjectLoadHitbox 0 $1 Comment $4C45 "In: X = Which object, index to ObjectType" Comment $4C45 "Out: $08 = +ycoord, $09 = height-10, $0A = width-6 (ALL MAYBE)" CertainlyData $4B7E HitboxSizes_0 CertainlyData $4B7F HitboxSizes_1 CertainlyData $4B80 HitboxSizes_2 CertainlyData $4B81 HitboxSizes_contd 3 # Mansions in ascending order of max levelup: BE=1, RO=2, BR=3, BO=4, LA=6 DataTable $5AC0 $5AC1 2 2 LevelData_Actors_1_Mansions_7berkeley_2rooms 0 $1 DataTable $5B8E $5B8F 2 2 LevelData_Actors_1_Mansions_8rover_2rooms 0 $1 DataTable $5C48 $5C49 2 4 LevelData_Actors_1_Mansions_9brahm_4rooms 0 $1 DataTable $5EFA $5EFB 2 2 LevelData_Actors_1_Mansions_Abodley_2rooms 0 $1 DataTable $5A00 $5A01 2 4 LevelData_Actors_1_Mansions_6laruba_4rooms 0 $1 DataTable $5344 $5345 2 1 LevelData_Actors_1_Mansions_012345 0 $1 DataDataTable $52B5 $52B6 2 11 LevelData_Actors_1_Mansions 0 $1 DataTable $5FD6 $5FD7 2 3 LevelData_Actors_2_ForestsAndBridges_9_3rooms 0 $1 DataTable $5FDC $5FDD 2 4 LevelData_Actors_2_ForestsAndBridges_8_4rooms 0 $1 DataTable $5FD0 $5FD1 2 3 LevelData_Actors_2_ForestsAndBridges_7_3rooms 0 $1 DataTable $5FCE $5FCF 2 1 LevelData_Actors_2_ForestsAndBridges_6 0 $1 DataTable $6656 $6657 2 2 LevelData_Actors_2_ForestsAndBridges_5_2rooms 0 $1 DataTable $6652 $6653 2 2 LevelData_Actors_2_ForestsAndBridges_4_2rooms 0 $1 DataTable $664A $664B 2 4 LevelData_Actors_2_ForestsAndBridges_3_4rooms 0 $1 DataTable $6648 $6649 2 1 LevelData_Actors_2_ForestsAndBridges_2 0 $1 DataTable $5FCC $5FCD 2 1 LevelData_Actors_2_ForestsAndBridges_1verosForest 0 $1 DataTable $5FC4 $5FC5 2 4 LevelData_Actors_2_ForestsAndBridges_0aldraRightsideVerosLeftside_4rooms 0 $1 DataDataTable $5FB0 $5FB1 2 10 LevelData_Actors_2_ForestsAndBridges 0 $1 DataTable $6F20 $6F21 2 1 LevelData_Actors_3_Wilderness_4 0 $1 DataTable $7211 $7212 2 5 LevelData_Actors_3_Wilderness_3 0 $1 DataTable $6F1C $6F1D 2 2 LevelData_Actors_3_Wilderness_2 0 $1 DataTable $6F1A $6F1B 2 1 LevelData_Actors_3_Wilderness_1strigoiCemetery 0 $1 DataTable $6F16 $6F17 2 2 LevelData_Actors_3_Wilderness_0carmillaCemetery 0 $1 DataDataTable $6DF9 $6DFA 2 5 LevelData_Actors_3_Wilderness 0 $1 DataTable $683B $683C 2 2 LevelData_Actors_4_Wastelands_3_VladGraveyard 0 $1 DataTable $6839 $683A 2 1 LevelData_Actors_4_Wastelands_2_WickedDitch 0 $1 DataTable $6835 $6836 2 2 LevelData_Actors_4_Wastelands_1_SolidCliff 0 $1 DataTable $6831 $6832 2 2 LevelData_Actors_4_Wastelands_0_DiamondGiverPlace 0 $1 DataDataTable $6829 $682A 2 4 LevelData_Actors_4_Wastelands 0 $1 DataTable $73FA $73FB 2 2 LevelData_Actors_5_Ruins_0 0 $1 DataDataTable $73F8 $73F9 2 1 LevelData_Actors_5_Ruins 0 $1 DataTable $4192 $4193 2 6 LevelData_Actors CertainlyCode $4000 Refresh_CurrentLevelData_Actors_Pointer # Actor data format: # Byte0 = X coordinate * 16 # Byte1 = Y coordinate * 16 # Byte2 = Object type (bit 7 = ?) # Byte3 = Remaining HP (or other parameter) # LEVELDATA: PROJECTILE VELOCITIES Comemnt $4E8A "Each data element is 4 bits long." Comment $4E8A "The first table is indexed by CurrentLevelMapType." Comment $4E8A "The 4-bit table is indexed by CurrentLevelSceneNumber." Comment $4E8A " 0 = scale by 1 (that is, no scaling)" Comment $4E8A " 1 = scale by 0.25 (round towards zero)" Comment $4E8A " 2 = scale by 0.5 (round towards zero)" Comment $4E8A " 3 = scale by 1.5 (round away from zero)" Comment $4E8A " 4 = scale by 2" Comment $4E8A " 5 = scale by 4" CertainlyData $4E96 LevelData_ProjectileVelocities_0_Towns CertainlyData $4E9A LevelData_ProjectileVelocities_1_Mansions CertainlyData $4E9D LevelData_ProjectileVelocities_2_ForestsAndBridges CertainlyData $4EA2 LevelData_ProjectileVelocities_3_Wilderness CertainlyData $4EA5 LevelData_ProjectileVelocities_4_Wastelands CertainlyData $4EA7 LevelData_ProjectileVelocities_5_Ruins DataTable $4E8A $4E8B 2 6 LevelData_ProjectileVelocities # LEVELDATA_PALETTES # Table 3: each item has two pointers, one for day & one for night CertainlyData $1FA3E LevelData_Palettes_0_Towns_0aldra_Day CertainlyData $086B2 LevelData_Palettes_0_Towns_1veros_Day CertainlyData $1FB25 LevelData_Palettes_0_Towns_2aljiba_Day CertainlyData $1FA40 LevelData_Palettes_0_Towns_3jova_Day CertainlyData $086B4 LevelData_Palettes_0_Towns_4ondol_Day CertainlyData $1FB27 LevelData_Palettes_0_Towns_5doina_Day CertainlyData $1FB29 LevelData_Palettes_0_Towns_6yomi_Day CertainlyData $08032 LevelData_Palettes_0_Towns_7church_Day_Night CertainlyData $1FA42 LevelData_Palettes_0_Towns_8_9_15_Day CertainlyData $086B6 LevelData_Palettes_0_Towns_10_11_17_18_19_Day_10_11_17_18_Night CertainlyData $1FB2B LevelData_Palettes_0_Towns_12_13_14_20_21_22_23_Day__12_13_14_20_21_22_Night CertainlyData $1FA4C LevelData_Palettes_0_Towns_16laurelvendor_Day CertainlyData $1FA4A LevelData_Palettes_0_Towns_0aldra_3jova_Night CertainlyData $086BE LevelData_Palettes_0_Towns_1veros_4ondol_Night CertainlyData $1FB33 LevelData_Palettes_0_Towns_2aljiba_5doina_6yomi_Night CertainlyData $1FA42 LevelData_Palettes_0_Towns_8_9_Night CertainlyData $1FA48 LevelData_Palettes_0_Towns_15garlicvendor_Night CertainlyData $1FA4C LevelData_Palettes_0_Towns_16laurelvendor_Night CertainlyData $086BC LevelData_Palettes_0_Towns_19laurelvendor_Night CertainlyData $1FB31 LevelData_Palettes_0_Towns_23yomiguy_Night CertainlyData $088E8 LevelData_Palettes_1_Mansions_0larubaEntrance_Day_6 CertainlyData $08D65 LevelData_Palettes_1_Mansions_1berkeleyEntrance_Day_7 CertainlyData $09258 LevelData_Palettes_1_Mansions_2roverEntrance_Day_8 CertainlyData $0969F LevelData_Palettes_1_Mansions_3brahmEntrance_Day_9 CertainlyData $09A6D LevelData_Palettes_1_Mansions_4bodleyEntrance_Day_10 CertainlyData $088F0 LevelData_Palettes_1_Mansions_0larubaEntrance_Night CertainlyData $08D69 LevelData_Palettes_1_Mansions_1berkeleyEntrance_Night CertainlyData $0925E LevelData_Palettes_1_Mansions_2roverEntrance_Night CertainlyData $096A7 LevelData_Palettes_1_Mansions_3brahmEntrance_Night CertainlyData $09A71 LevelData_Palettes_1_Mansions_4bodleyEntrance_Night CertainlyData $0A1C0 LevelData_Palettes_2_ForestsAndBridges_0aldraRightsideVerosLeftside_Day CertainlyData $0A1BE LevelData_Palettes_2_ForestsAndBridges_1verosForest_Day CertainlyData $0A6E9 LevelData_Palettes_2_ForestsAndBridges_2_Day CertainlyData $0A6EB LevelData_Palettes_2_ForestsAndBridges_3_Day CertainlyData $0A6F7 LevelData_Palettes_2_ForestsAndBridges_4_Day CertainlyData $0A6F3 LevelData_Palettes_2_ForestsAndBridges_5_Day CertainlyData $0A1BC LevelData_Palettes_2_ForestsAndBridges_6_Day CertainlyData $0A1C8 LevelData_Palettes_2_ForestsAndBridges_7_Day CertainlyData $0A1CE LevelData_Palettes_2_ForestsAndBridges_8_Day CertainlyData $0A1D4 LevelData_Palettes_2_ForestsAndBridges_9_Day CertainlyData $0A1DC LevelData_Palettes_2_ForestsAndBridges_0aldraRightsideVerosLeftside_Night CertainlyData $0A1DA LevelData_Palettes_2_ForestsAndBridges_1verosForest_Night CertainlyData $0A6FB LevelData_Palettes_2_ForestsAndBridges_2_Night CertainlyData $0A6FD LevelData_Palettes_2_ForestsAndBridges_3_Night CertainlyData $0A707 LevelData_Palettes_2_ForestsAndBridges_4_Night CertainlyData $0A70B LevelData_Palettes_2_ForestsAndBridges_5_Night CertainlyData $0A1E4 LevelData_Palettes_2_ForestsAndBridges_6_Night CertainlyData $0A1E6 LevelData_Palettes_2_ForestsAndBridges_7_Night CertainlyData $0A1EC LevelData_Palettes_2_ForestsAndBridges_8_Night CertainlyData $0A1F2 LevelData_Palettes_2_ForestsAndBridges_9_Night CertainlyData $0B3B2 LevelData_Palettes_3_Wilderness_0carmillaCemetery_Day CertainlyData $0B3B6 LevelData_Palettes_3_Wilderness_1strigoiCemetery_Day CertainlyData $0B3B8 LevelData_Palettes_3_Wildernesss_2_Day CertainlyData $0B7E4 LevelData_Palettes_3_Wildernesss_3_Day CertainlyData $0B3BE LevelData_Palettes_3_Wildernesss_4_Day CertainlyData $0B3C0 LevelData_Palettes_3_Wilderness_0carmillaCemetery_Night CertainlyData $0B3C4 LevelData_Palettes_3_Wilderness_1strigoiCemetery_Night CertainlyData $0B3C6 LevelData_Palettes_3_Wildernesss_2_Night CertainlyData $0B7EE LevelData_Palettes_3_Wildernesss_3_Night CertainlyData $0B3CC LevelData_Palettes_3_Wildernesss_4_Night CertainlyData $0AEBD LevelData_Palettes_4_Wastelands_0_Day CertainlyData $0AEC3 LevelData_Palettes_4_Wastelands_1_Day CertainlyData $0AEC7 LevelData_Palettes_4_Wastelands_2_Day CertainlyData $0AEC9 LevelData_Palettes_4_Wastelands_3_Day CertainlyData $0AECD LevelData_Palettes_4_Wastelands_0_Night CertainlyData $0AED3 LevelData_Palettes_4_Wastelands_1_Night CertainlyData $0AED7 LevelData_Palettes_4_Wastelands_2_Night CertainlyData $0AED9 LevelData_Palettes_4_Wastelands_3_Night CertainlyData $0BC52 LevelData_Palettes_5_Ruins_0_DayOrNight DataTable $8072 $8073 2 48 LevelData_Palettes_0_Towns DataTable $8762 $8763 2 24 LevelData_Palettes_1_Mansions DataTable $9EF9 $9EFA 2 20 LevelData_Palettes_2_ForestsAndBridges DataTable $B28A $B28B 2 10 LevelData_Palettes_3_Wilderness DataTable $AEAD $AEAE 2 8 LevelData_Palettes_4_Wastelands DataTable $BC4E $BC4F 2 2 LevelData_Palettes_5_Ruins DataTable $1F7C5 $1F7C6 2 6 LevelData_Palettes 0 $2 # LEVELDATA_SCREENS (4A) AND LEVELDATA_SCREENSINFO (4B) # 8x7 screens of 32x32 blocks (tile-squaroid assembler): CertainlyData $1F807 LevelData_Screen_Blank CertainlyData $08347 LevelData_Screen_Map0_0_and_0_1_and_0_2_and_0_6 CertainlyData $08577 LevelData_Screen_Map0_0_and_0_1_and_0_3_and_0_4 CertainlyData $0837F LevelData_Screen_Map0_0_and_0_1_and_0_6 CertainlyData $0861F LevelData_Screen_Map0_0_and_0_3_and_0_4_and_0_5_and_0_6 CertainlyData $08187 LevelData_Screen_Map0_10_and_0_13 CertainlyData $08267 LevelData_Screen_Map0_11_and_0_13_and_0_15 CertainlyData $081F7 LevelData_Screen_Map0_14_and_0_15 CertainlyData $0829F LevelData_Screen_Map0_16 CertainlyData $085E7 LevelData_Screen_Map0_1_and_0_2_and_0_4_and_0_5 CertainlyData $0845F LevelData_Screen_Map0_2_and_0_3_and_0_4_and_0_5_one CertainlyData $08507 LevelData_Screen_Map0_2_and_0_3_and_0_4_and_0_5_two CertainlyData $085AF LevelData_Screen_Map0_2_and_0_3_and_0_4_and_0_5_and_0_6 CertainlyData $0853F LevelData_Screen_Map0_2_and_0_4_and_0_5 CertainlyData $0830F LevelData_Screen_Map0_2_and_0_5 CertainlyData $082D7 LevelData_Screen_Map0_3 CertainlyData $083B7 LevelData_Screen_Map0_3_and_0_4_and_0_5_one CertainlyData $08497 LevelData_Screen_Map0_3_and_0_4_and_0_5_two CertainlyData $08427 LevelData_Screen_Map0_4 CertainlyData $084CF LevelData_Screen_Map0_4_and_0_5 CertainlyData $083EF LevelData_Screen_Map0_5 CertainlyData $08117 LevelData_Screen_Map0_7_and_0_12 CertainlyData $0814F LevelData_Screen_Map0_8 CertainlyData $0822F LevelData_Screen_Map0_9_and_0_10_and_0_14 CertainlyData $081BF LevelData_Screen_Map0_9_and_0_11 CertainlyData $089F2 LevelData_Screen_Map1_0_one CertainlyData $08A2A LevelData_Screen_Map1_0_two CertainlyData $08A62 LevelData_Screen_Map1_0_three CertainlyData $08A9A LevelData_Screen_Map1_0_four CertainlyData $08B42 LevelData_Screen_Map1_0_five CertainlyData $08B7A LevelData_Screen_Map1_0_six CertainlyData $08BB2 LevelData_Screen_Map1_0_seven CertainlyData $08BEA LevelData_Screen_Map1_0_eight CertainlyData $0894A LevelData_Screen_Map1_1_one CertainlyData $08982 LevelData_Screen_Map1_1_two CertainlyData $089BA LevelData_Screen_Map1_1_three CertainlyData $08AD2 LevelData_Screen_Map1_1_four CertainlyData $08B0A LevelData_Screen_Map1_1_five CertainlyData $08C22 LevelData_Screen_Map1_1_six CertainlyData $08C5A LevelData_Screen_Map1_1_seven CertainlyData $08C92 LevelData_Screen_Map1_1_eight CertainlyData $08CCA LevelData_Screen_Map1_1_nine CertainlyData $08D02 LevelData_Screen_Map1_1_ten CertainlyData $0888F LevelData_Screen_Map1_11 CertainlyData $09AF5 LevelData_Screen_Map1_13_one CertainlyData $09B2D LevelData_Screen_Map1_13_two CertainlyData $09B65 LevelData_Screen_Map1_13_three CertainlyData $09B9D LevelData_Screen_Map1_13_four CertainlyData $09C0D LevelData_Screen_Map1_13_five CertainlyData $09D25 LevelData_Screen_Map1_13_six CertainlyData $09D5D LevelData_Screen_Map1_13_seven CertainlyData $09D95 LevelData_Screen_Map1_13_eight CertainlyData $09DCD LevelData_Screen_Map1_13_nine CertainlyData $09BD5 LevelData_Screen_Map1_14_one CertainlyData $09C45 LevelData_Screen_Map1_14_two CertainlyData $09C7D LevelData_Screen_Map1_14_three CertainlyData $09CB5 LevelData_Screen_Map1_14_four CertainlyData $09CED LevelData_Screen_Map1_14_five CertainlyData $09E05 LevelData_Screen_Map1_14_six CertainlyData $09E3D LevelData_Screen_Map1_14_seven CertainlyData $09E75 LevelData_Screen_Map1_14_eight CertainlyData $09EAD LevelData_Screen_Map1_14_nine CertainlyData $087E7 LevelData_Screen_Map1_2 CertainlyData $0881F LevelData_Screen_Map1_3 CertainlyData $08DDD LevelData_Screen_Map1_4_one CertainlyData $08E15 LevelData_Screen_Map1_4_two CertainlyData $08E4D LevelData_Screen_Map1_4_three CertainlyData $08E85 LevelData_Screen_Map1_4_four CertainlyData $08F65 LevelData_Screen_Map1_4_five CertainlyData $08F9D LevelData_Screen_Map1_4_six CertainlyData $08FD5 LevelData_Screen_Map1_4_seven CertainlyData $0907D LevelData_Screen_Map1_4_eight CertainlyData $090B5 LevelData_Screen_Map1_4_nine CertainlyData $090ED LevelData_Screen_Map1_4_ten CertainlyData $09125 LevelData_Screen_Map1_4_eleven CertainlyData $08EBD LevelData_Screen_Map1_5_one CertainlyData $08EF5 LevelData_Screen_Map1_5_two CertainlyData $08F2D LevelData_Screen_Map1_5_three CertainlyData $0900D LevelData_Screen_Map1_5_four CertainlyData $09045 LevelData_Screen_Map1_5_five CertainlyData $0915D LevelData_Screen_Map1_5_six CertainlyData $09195 LevelData_Screen_Map1_5_seven CertainlyData $091CD LevelData_Screen_Map1_5_eight CertainlyData $09205 LevelData_Screen_Map1_5_nine CertainlyData $08857 LevelData_Screen_Map1_5_and_1_7_and_1_12_and_1_14 CertainlyData $092C3 LevelData_Screen_Map1_6_one CertainlyData $092FB LevelData_Screen_Map1_6_two CertainlyData $09333 LevelData_Screen_Map1_6_three CertainlyData $093DB LevelData_Screen_Map1_6_four CertainlyData $09413 LevelData_Screen_Map1_6_five CertainlyData $0944B LevelData_Screen_Map1_6_six CertainlyData $094F3 LevelData_Screen_Map1_6_seven CertainlyData $0952B LevelData_Screen_Map1_6_eight CertainlyData $09563 LevelData_Screen_Map1_6_nine CertainlyData $0936B LevelData_Screen_Map1_7_one CertainlyData $093A3 LevelData_Screen_Map1_7_two CertainlyData $09483 LevelData_Screen_Map1_7_three CertainlyData $094BB LevelData_Screen_Map1_7_four CertainlyData $0959B LevelData_Screen_Map1_7_five CertainlyData $095D3 LevelData_Screen_Map1_7_six CertainlyData $0960B LevelData_Screen_Map1_7_seven CertainlyData $09643 LevelData_Screen_Map1_7_eight CertainlyData $09709 LevelData_Screen_Map1_8_one CertainlyData $09741 LevelData_Screen_Map1_8_two CertainlyData $09779 LevelData_Screen_Map1_8_three CertainlyData $097E9 LevelData_Screen_Map1_8_four CertainlyData $09821 LevelData_Screen_Map1_8_five CertainlyData $09859 LevelData_Screen_Map1_8_six CertainlyData $098C9 LevelData_Screen_Map1_8_seven CertainlyData $09901 LevelData_Screen_Map1_8_eight CertainlyData $09939 LevelData_Screen_Map1_8_nine CertainlyData $09971 LevelData_Screen_Map1_8_ten CertainlyData $099A9 LevelData_Screen_Map1_8_eleven CertainlyData $099E1 LevelData_Screen_Map1_8_twelve CertainlyData $097B1 LevelData_Screen_Map1_9_10_one CertainlyData $09891 LevelData_Screen_Map1_9_10_two CertainlyData $09A19 LevelData_Screen_Map1_9_10_three CertainlyData $0A582 LevelData_Screen_Map2_0 CertainlyData $0A5BA LevelData_Screen_Map2_0_and_2_12 CertainlyData $0A4DA LevelData_Screen_Map2_0_and_2_1_and_2_2_3 CertainlyData $0A3FA LevelData_Screen_Map2_0_and_2_2_3 CertainlyData $0A9CC LevelData_Screen_Map2_10 CertainlyData $1F8AF LevelData_Screen_Map2_10_and_3_4 CertainlyData $1F9C7 LevelData_Screen_Map2_11 CertainlyData $0A5F2 LevelData_Screen_Map2_15_one CertainlyData $0A62A LevelData_Screen_Map2_15_two CertainlyData $0A662 LevelData_Screen_Map2_15_three CertainlyData $1F877 LevelData_Screen_Map2_16_17_and_2_18_and_3_10_and_4_5_6 CertainlyData $1F83F LevelData_Screen_Map2_16_17_and_2_18_and_4_5_6 CertainlyData $0A79C LevelData_Screen_Map2_19_one CertainlyData $0A7D4 LevelData_Screen_Map2_19_two CertainlyData $0A95C LevelData_Screen_Map2_19_three CertainlyData $0A994 LevelData_Screen_Map2_19_four CertainlyData $0A3C2 LevelData_Screen_Map2_1_and_2_22 CertainlyData $0A80C LevelData_Screen_Map2_20_one CertainlyData $0A844 LevelData_Screen_Map2_20_two CertainlyData $0A87C LevelData_Screen_Map2_21_one CertainlyData $0A8B4 LevelData_Screen_Map2_21_two CertainlyData $0A8EC LevelData_Screen_Map2_21_three CertainlyData $0A924 LevelData_Screen_Map2_21 CertainlyData $0AB1C LevelData_Screen_Map2_23_one CertainlyData $0ACA4 LevelData_Screen_Map2_23_two CertainlyData $0A4A2 LevelData_Screen_Map2_2_3_and_2_12_and_2_22 CertainlyData $09F89 LevelData_Screen_Map2_2_3_and_2_8_and_2_9 CertainlyData $0ABC4 LevelData_Screen_Map2_24 CertainlyData $1F957 LevelData_Screen_Map2_25_and_4_2 CertainlyData $1F98F LevelData_Screen_Map2_4 CertainlyData $1F8E7 LevelData_Screen_Map2_4_and_2_11_and_2_25 CertainlyData $1F91F LevelData_Screen_Map2_4_and_2_11_and_2_25_and_4_2 CertainlyData $0A432 LevelData_Screen_Map2_5 CertainlyData $0A46A LevelData_Screen_Map2_5 CertainlyData $0A2E2 LevelData_Screen_Map2_6_and_2_13_14_one CertainlyData $0A31A LevelData_Screen_Map2_6_and_2_13_14_two CertainlyData $0A352 LevelData_Screen_Map2_6_and_2_13_14_three CertainlyData $0A38A LevelData_Screen_Map2_6_and_2_13_14_four CertainlyData $0ABFC LevelData_Screen_Map2_7_one CertainlyData $0ACDC LevelData_Screen_Map2_7_two CertainlyData $0AC6C LevelData_Screen_Map2_7_and_2_24 CertainlyData $0AD14 LevelData_Screen_Map2_8 CertainlyData $0AA74 LevelData_Screen_Map2_9_one CertainlyData $0AAAC LevelData_Screen_Map2_9_two CertainlyData $0AAE4 LevelData_Screen_Map2_9_three CertainlyData $0B447 LevelData_Screen_Map3_0_one CertainlyData $0B47F LevelData_Screen_Map3_0_two CertainlyData $0B4B7 LevelData_Screen_Map3_0_three CertainlyData $0B6AF LevelData_Screen_Map3_1_one CertainlyData $0B6E7 LevelData_Screen_Map3_1_two CertainlyData $0B2CA LevelData_Screen_Map3_1_and_3_2_one CertainlyData $0B302 LevelData_Screen_Map3_1_and_3_2_two CertainlyData $0BB2E LevelData_Screen_Map3_2_one CertainlyData $0BB66 LevelData_Screen_Map3_2_two CertainlyData $0BB9E LevelData_Screen_Map3_3_one CertainlyData $0BBD6 LevelData_Screen_Map3_3_two CertainlyData $0BC0E LevelData_Screen_Map3_3_three CertainlyData $0B33A LevelData_Screen_Map3_3_and_3_9 CertainlyData $0BAF6 LevelData_Screen_Map3_4 CertainlyData $0B4EF LevelData_Screen_Map3_5_one CertainlyData $0B527 LevelData_Screen_Map3_5_two CertainlyData $0B55F LevelData_Screen_Map3_5_three CertainlyData $0B597 LevelData_Screen_Map3_5_four CertainlyData $0B5CF LevelData_Screen_Map3_6_one CertainlyData $0B607 LevelData_Screen_Map3_6_two CertainlyData $0B63F LevelData_Screen_Map3_6_three CertainlyData $0B71F LevelData_Screen_Map3_6_four CertainlyData $0B677 LevelData_Screen_Map3_7_one CertainlyData $0B757 LevelData_Screen_Map3_7_two CertainlyData $0B856 LevelData_Screen_Map3_8_one CertainlyData $0B88E LevelData_Screen_Map3_8_two CertainlyData $0B8C6 LevelData_Screen_Map3_8_three CertainlyData $0B8FE LevelData_Screen_Map3_8_four CertainlyData $0B936 LevelData_Screen_Map3_8_five CertainlyData $0B96E LevelData_Screen_Map3_8_six CertainlyData $0B9A6 LevelData_Screen_Map3_8_seven CertainlyData $0B9DE LevelData_Screen_Map3_8_eight CertainlyData $0BA16 LevelData_Screen_Map3_8_nine CertainlyData $0BA4E LevelData_Screen_Map3_8_ten CertainlyData $0BA86 LevelData_Screen_Map3_8_eleven CertainlyData $0BABE LevelData_Screen_Map3_8_twelve CertainlyData $0B78F LevelData_Screen_Map3_9 CertainlyData $0B0F8 LevelData_Screen_Map4_0 CertainlyData $0AFE0 LevelData_Screen_Map4_0_and_4_3 CertainlyData $0B018 LevelData_Screen_Map4_0_and_4_3_and_4_4 CertainlyData $0B050 LevelData_Screen_Map4_0_and_4_4 CertainlyData $0B130 LevelData_Screen_Map4_1_one CertainlyData $0B168 LevelData_Screen_Map4_1_two CertainlyData $0B1A0 LevelData_Screen_Map4_1_three CertainlyData $0B1D8 LevelData_Screen_Map4_1_four CertainlyData $0B248 LevelData_Screen_Map4_2 CertainlyData $0AF70 LevelData_Screen_Map4_3_one CertainlyData $0AFA8 LevelData_Screen_Map4_3_two CertainlyData $0B088 LevelData_Screen_Map4_4_one CertainlyData $0B0C0 LevelData_Screen_Map4_4_two CertainlyData $0B210 LevelData_Screen_Map4_7 CertainlyData $0BCB2 LevelData_Screen_Map5_0_one CertainlyData $0BCEA LevelData_Screen_Map5_0_two CertainlyData $0BD22 LevelData_Screen_Map5_0_three CertainlyData $0BD5A LevelData_Screen_Map5_0_four CertainlyData $0BD92 LevelData_Screen_Map5_0_five CertainlyData $0BDCA LevelData_Screen_Map5_0_six CertainlyData $0BE02 LevelData_Screen_Map5_0_seven CertainlyData $0BE3A LevelData_Screen_Map5_0_eight CertainlyData $0BE72 LevelData_Screen_Map5_0_nine CertainlyData $0BEAA LevelData_Screen_Map5_1 # These tables tell how each map is constructed. CertainlyData $1FB66 LevelData_Screens_0_Towns_0aldra CertainlyData $086F8 LevelData_Screens_0_Towns_1veros CertainlyData $1FB78 LevelData_Screens_0_Towns_2aljiba CertainlyData $1FA86 LevelData_Screens_0_Towns_3jova CertainlyData $1FAA0 LevelData_Screens_0_Towns_4ondol CertainlyData $0870A LevelData_Screens_0_Towns_5doina CertainlyData $1FB92 LevelData_Screens_0_Towns_6yomi CertainlyData $08016 LevelData_Screens_0_Towns_7church CertainlyData $0801C LevelData_Screens_0_Towns_8 CertainlyData $0872C LevelData_Screens_0_Towns_9 CertainlyData $1FBA4 LevelData_Screens_0_Towns_10 CertainlyData $1FBAC LevelData_Screens_0_Towns_11 CertainlyData $08022 LevelData_Screens_0_Towns_12 CertainlyData $0802A LevelData_Screens_0_Towns_13 CertainlyData $1FBBC LevelData_Screens_0_Towns_14 CertainlyData $08734 LevelData_Screens_0_Towns_15 CertainlyData $08010 LevelData_Screens_0_Towns_16 CertainlyData $1FB35 LevelData_Stairs_0_Towns_0aldra CertainlyData $086C0 LevelData_Stairs_0_Towns_1veros CertainlyData $1FB3E LevelData_Stairs_0_Towns_2aljiba CertainlyData $1FA50 LevelData_Stairs_0_Towns_3jova CertainlyData $1FA69 LevelData_Stairs_0_Towns_4ondol CertainlyData $086C5 LevelData_Stairs_0_Towns_5doina CertainlyData $1FB47 LevelData_Stairs_0_Towns_6yomi CertainlyData $08041 LevelData_Stairs_0_Towns_7_8_12 CertainlyData $086E2 LevelData_Stairs_0_Towns_9 CertainlyData $1FB50 LevelData_Stairs_0_Towns_10_14 CertainlyData $1FB5D LevelData_Stairs_0_Towns_11 CertainlyData $08034 LevelData_Stairs_0_Towns_13 CertainlyData $086EF LevelData_Stairs_0_Towns_15 CertainlyData $0803D LevelData_Stairs_0_Towns_16 CertainlyData $08910 LevelData_Screens_1_Mansions_0larubaEntrance CertainlyData $0892A LevelData_Screens_1_Mansions_1berkeleyEntrance CertainlyData $087CF LevelData_Screens_1_Mansions_2roverEntrance CertainlyData $087D5 LevelData_Screens_1_Mansions_3brahmEntrance CertainlyData $08D99 LevelData_Screens_1_Mansions_4bodleyEntrance CertainlyData $08DBB LevelData_Screens_1_Mansions_5 CertainlyData $09287 LevelData_Screens_1_Mansions_6laruba CertainlyData $092A1 LevelData_Screens_1_Mansions_7berkeley CertainlyData $096DD LevelData_Screens_1_Mansions_8rover CertainlyData $096FD LevelData_Screens_1_Mansions_9_10 CertainlyData $087DB LevelData_Screens_1_Mansions_11 CertainlyData $087E1 LevelData_Screens_1_Mansions_12 CertainlyData $09AA9 LevelData_Screens_1_Mansions_13 CertainlyData $09ACB LevelData_Screens_1_Mansions_14 CertainlyData $088F6 LevelData_Stairs_1_Mansions_0larubaEntrance CertainlyData $08907 LevelData_Stairs_1_Mansions_1berkeleyEntrance CertainlyData $087CE LevelData_Stairs_1_Mansions_2_3_11_12 CertainlyData $08D6B LevelData_Stairs_1_Mansions_4bodleyEntrance CertainlyData $08D7C LevelData_Stairs_1_Mansions_5 CertainlyData $09261 LevelData_Stairs_1_Mansions_6laruba CertainlyData $09272 LevelData_Stairs_1_Mansions_7berkeley CertainlyData $096A9 LevelData_Stairs_1_Mansions_8rover CertainlyData $096D8 LevelData_Stairs_1_Mansions_9_10 CertainlyData $09A73 LevelData_Stairs_1_Mansions_13 CertainlyData $09A8C LevelData_Stairs_1_Mansions_14 CertainlyData $0A22C LevelData_Screens_2_ForestsAndBridges_0aldraRightsideVerosLeftside CertainlyData $0A222 LevelData_Screens_2_ForestsAndBridges_1verosForest CertainlyData $0A23E LevelData_Screens_2_ForestsAndBridges_2_3 CertainlyData $0A250 LevelData_Screens_2_ForestsAndBridges_4 CertainlyData $0A262 LevelData_Screens_2_ForestsAndBridges_5 CertainlyData $0A26C LevelData_Screens_2_ForestsAndBridges_6 CertainlyData $0A730 LevelData_Screens_2_ForestsAndBridges_7 CertainlyData $0A73E LevelData_Screens_2_ForestsAndBridges_8 CertainlyData $0A748 LevelData_Screens_2_ForestsAndBridges_9 CertainlyData $0A756 LevelData_Screens_2_ForestsAndBridges_1verosForest0 CertainlyData $0A27A LevelData_Screens_2_ForestsAndBridges_11 CertainlyData $0A28C LevelData_Screens_2_ForestsAndBridges_12 CertainlyData $0A296 LevelData_Screens_2_ForestsAndBridges_13_14 CertainlyData $0A2A0 LevelData_Screens_2_ForestsAndBridges_15 CertainlyData $0A2B2 LevelData_Screens_2_ForestsAndBridges_16_17 CertainlyData $0A2BC LevelData_Screens_2_ForestsAndBridges_18 CertainlyData $0A75E LevelData_Screens_2_ForestsAndBridges_19 CertainlyData $0A76C LevelData_Screens_2_ForestsAndBridges_20 CertainlyData $0A776 LevelData_Screens_2_ForestsAndBridges_21 CertainlyData $0A2C6 LevelData_Screens_2_ForestsAndBridges_22 CertainlyData $0A788 LevelData_Screens_2_ForestsAndBridges_23 CertainlyData $0A792 LevelData_Screens_2_ForestsAndBridges_24 CertainlyData $0A2D0 LevelData_Screens_2_ForestsAndBridges_25 CertainlyData $0A221 LevelData_Stairs_2_ForestsAndBridges_0_2_3_4_11_12_14_16_17_18_22_25 CertainlyData $0A1F8 LevelData_Stairs_2_ForestsAndBridges_1_6_13 CertainlyData $0A218 LevelData_Stairs_2_ForestsAndBridges_5 CertainlyData $0A70F LevelData_Stairs_2_ForestsAndBridges_7 CertainlyData $0A72F LevelData_Stairs_2_ForestsAndBridges_8_20_23_24 CertainlyData $0A714 LevelData_Stairs_2_ForestsAndBridges_9 CertainlyData $0A719 LevelData_Stairs_2_ForestsAndBridges_10 CertainlyData $0A207 LevelData_Stairs_2_ForestsAndBridges_15 CertainlyData $0A71E LevelData_Stairs_2_ForestsAndBridges_19 CertainlyData $0A72B LevelData_Stairs_2_ForestsAndBridges_21 CertainlyData $0B3EF LevelData_Screens_3_Wilderness_0carmillaCemetery CertainlyData $0B401 LevelData_Screens_3_Wilderness_1strigoiCemetery CertainlyData $0B802 LevelData_Screens_3_Wildernesss_2 CertainlyData $0B814 LevelData_Screens_3_Wildernesss_3 CertainlyData $0B826 LevelData_Screens_3_Wildernesss_4 CertainlyData $0B413 LevelData_Screens_3_Wildernesss_5 CertainlyData $0B425 LevelData_Screens_3_Wildernesss_6 CertainlyData $0B433 LevelData_Screens_3_Wildernesss_7 CertainlyData $0B82E LevelData_Screens_3_Wildernesss_8 CertainlyData $0B43D LevelData_Screens_3_Wildernesss_9 CertainlyData $0B850 LevelData_Screens_3_Wildernesss_10 CertainlyData $0B3EE LevelData_Stairs_3_Wilderness_0carmillaCemetery CertainlyData $0B3CE LevelData_Stairs_3_Wilderness_1strigoiCemetery CertainlyData $0B7F8 LevelData_Stairs_3_Wildernesss_2 CertainlyData $0B801 LevelData_Stairs_3_Wildernesss_3_8_10 CertainlyData $0B7FD LevelData_Stairs_3_Wildernesss_4 CertainlyData $0B3D3 LevelData_Stairs_3_Wildernesss_5 CertainlyData $0B3D8 LevelData_Stairs_3_Wildernesss_6 CertainlyData $0B3E5 LevelData_Stairs_3_Wildernesss_7 CertainlyData $0B3EA LevelData_Stairs_3_Wildernesss_9 CertainlyData $0AEFE LevelData_Screens_4_Wastelands_0 CertainlyData $0AF10 LevelData_Screens_4_Wastelands_1 CertainlyData $0AF22 LevelData_Screens_4_Wastelands_2 CertainlyData $0AF34 LevelData_Screens_4_Wastelands_3 CertainlyData $0AF46 LevelData_Screens_4_Wastelands_4 CertainlyData $0AF58 LevelData_Screens_4_Wastelands_5_6 CertainlyData $0AF6A LevelData_Screens_4_Wastelands_7 CertainlyData $0AEFD LevelData_Stairs_4_Wastelands_0_1_2_3_4_5_6_7 CertainlyData $0BC82 LevelData_Screens_5_Ruins_0 CertainlyData $0BCAC LevelData_Screens_5_Ruins_1 CertainlyData $0BC68 LevelData_Stairs_5_Ruins_0 CertainlyData $0BC81 LevelData_Stairs_5_Ruins_1 DataTable $1FB68 $1FB69 2 0 "" 0 $2 DataTable $086FA $086FB 2 0 "" 0 $2 DataTable $1FB7A $1FB7B 2 0 "" 0 $2 DataTable $1FA88 $1FA89 2 0 "" 0 $2 DataTable $1FAA2 $1FAA3 2 0 "" 0 $2 DataTable $0870C $0870D 2 0 "" 0 $2 DataTable $1FB94 $1FB95 2 0 "" 0 $2 DataTable $08018 $08019 2 0 "" 0 $2 DataTable $0801E $0801F 2 0 "" 0 $2 DataTable $0872E $0872F 2 0 "" 0 $2 DataTable $1FBA6 $1FBA7 2 0 "" 0 $2 DataTable $1FBAE $1FBAF 2 0 "" 0 $2 DataTable $08024 $08025 2 0 "" 0 $2 DataTable $0802C $0802D 2 0 "" 0 $2 DataTable $1FBBE $1FBBF 2 0 "" 0 $2 DataTable $08736 $08737 2 0 "" 0 $2 DataTable $08012 $08013 2 0 "" 0 $2 DataTable $08912 $08913 2 0 "" 0 $2 DataTable $0892C $0892D 2 0 "" 0 $2 DataTable $087D1 $087D2 2 0 "" 0 $2 DataTable $087D7 $087D8 2 0 "" 0 $2 DataTable $08D9B $08D9C 2 0 "" 0 $2 DataTable $08DBD $08DBE 2 0 "" 0 $2 DataTable $09289 $0928A 2 0 "" 0 $2 DataTable $092A3 $092A4 2 0 "" 0 $2 DataTable $096DF $096E0 2 0 "" 0 $2 DataTable $096FF $09700 2 0 "" 0 $2 DataTable $087DD $087DE 2 0 "" 0 $2 DataTable $087E3 $087E4 2 0 "" 0 $2 DataTable $09AAB $09AAC 2 0 "" 0 $2 DataTable $09ACD $09ACE 2 0 "" 0 $2 DataTable $0A22E $0A22F 2 0 "" 0 $2 DataTable $0A224 $0A225 2 0 "" 0 $2 DataTable $0A240 $0A241 2 0 "" 0 $2 DataTable $0A252 $0A253 2 0 "" 0 $2 DataTable $0A264 $0A265 2 0 "" 0 $2 DataTable $0A26E $0A26F 2 0 "" 0 $2 DataTable $0A732 $0A733 2 0 "" 0 $2 DataTable $0A740 $0A741 2 0 "" 0 $2 DataTable $0A74A $0A74B 2 0 "" 0 $2 DataTable $0A758 $0A759 2 0 "" 0 $2 DataTable $0A27C $0A27D 2 0 "" 0 $2 DataTable $0A28E $0A28F 2 0 "" 0 $2 DataTable $0A298 $0A299 2 0 "" 0 $2 DataTable $0A2A2 $0A2A3 2 0 "" 0 $2 DataTable $0A2B4 $0A2B5 2 0 "" 0 $2 DataTable $0A2BE $0A2BF 2 0 "" 0 $2 DataTable $0A760 $0A761 2 0 "" 0 $2 DataTable $0A76E $0A76F 2 0 "" 0 $2 DataTable $0A778 $0A779 2 0 "" 0 $2 DataTable $0A2C8 $0A2C9 2 0 "" 0 $2 DataTable $0A78A $0A78B 2 0 "" 0 $2 DataTable $0A794 $0A795 2 0 "" 0 $2 DataTable $0A2D2 $0A2D3 2 0 "" 0 $2 DataTable $0B3F1 $0B3F2 2 0 "" 0 $2 DataTable $0B403 $0B404 2 0 "" 0 $2 DataTable $0B804 $0B805 2 0 "" 0 $2 DataTable $0B816 $0B817 2 0 "" 0 $2 DataTable $0B828 $0B829 2 0 "" 0 $2 DataTable $0B415 $0B416 2 0 "" 0 $2 DataTable $0B427 $0B428 2 0 "" 0 $2 DataTable $0B435 $0B436 2 0 "" 0 $2 DataTable $0B830 $0B831 2 0 "" 0 $2 DataTable $0B43F $0B440 2 0 "" 0 $2 DataTable $0B852 $0B853 2 0 "" 0 $2 DataTable $0AF00 $0AF01 2 0 "" 0 $2 DataTable $0AF12 $0AF13 2 0 "" 0 $2 DataTable $0AF24 $0AF25 2 0 "" 0 $2 DataTable $0AF36 $0AF37 2 0 "" 0 $2 DataTable $0AF48 $0AF49 2 0 "" 0 $2 DataTable $0AF5A $0AF5B 2 0 "" 0 $2 DataTable $0AF6C $0AF6D 2 0 "" 0 $2 DataTable $0BC84 $0BC85 2 0 "" 0 $2 DataTable $0BCAE $0BCAF 2 0 "" 0 $2 # Table 4: each item has two pointers, one to $70 and one to $72 # One of them is Stairs, other is Map/Exit Data DataTable $80D3 $80D4 2 34 LevelData_Screens_0_Towns DataTable $8792 $8793 2 30 LevelData_Screens_1_Mansions DataTable $9F21 $9F22 2 52 LevelData_Screens_2_ForestsAndBridges DataTable $B29E $B29F 2 22 LevelData_Screens_3_Wilderness DataTable $AEDD $AEDE 2 16 LevelData_Screens_4_Wastelands DataTable $BC46 $BC47 2 4 LevelData_Screens_5_Ruins DataTable $1F7FB $1F7FC 2 6 LevelData_Screens 0 $2 RAM $70 LevelData_Screens_pointerLo RAM $71 LevelData_Screens_pointerHi RAM $72 LevelData_Stairs_pointerLo RAM $73 LevelData_Stairs_pointerHi RAM $63 LevelData_MetaTiles_pointerLo RAM $64 LevelData_MetaTiles_pointerHi RAM $6E LevelData_CategoryThresholds_pointerLo RAM $6F LevelData_CategoryThresholds_pointerHi Comment $1D45C "$05:$04 = ($05:A << 2) - ($01:$00)" CertainlyCode $1D45C Math_04word_mul2_and_subtract_00word CertainlyCode $1D4EC Math_Invert16bitWordAt04 CertainlyCode $1D40C LoadLevelDataScreensPointerLo_Byte1_minus1_storeInY CertainlyCode $1D418 LoadLevelDataScreensPointerLo_Byte0_minus1_storeInY CertainlyCode $1E804 LoadLevelDataScreensPointerLo_SomePointerIndexedBy12and14_StoreTo02 Comment $1E810 "$93 = byte0*2" Comment $1E821 "$93 = 2 + (byte0*2) * Unknown12" Comment $1E828 "Y = 2 + 2*(byte0 * Unknown12 + Unknown14)" Comment $1EA5F "$97 = Unknown11 * 8 + Unknown13" Comment $1EA61 "$62 = byte at Ptr02[Temp97] (in bank 2)" Comment $1EA76 "Ptr16 = Ptr63 + Ptr63[0]" Comment $1EA93 "SomePtr[hi at $0F, lo at $09] = Ptr16 + $62 * 16" Comment $1E801 "Ptr16 = PointerToMetaTiles[hi at $0F, lo at $09] + Unknown10*4" CertainlyCode $1EA57 Load_MetaTile_ParticularTileStoreTo16_and_0F09 CertainlyCode $1E7F4 Load_MetaTile_ParticularRowPointerStoreTo16 CertainlyCode $1EA4B Load_Room_MetaTileNumber_StoreTo62 Comment $1EA4B "$02 = Pointer to Room metatile table (56 bytes)" Comment $1EA4B "$97 = Which metatile to select" Comment $1EA4B "Output: $62 = Metatile number" # LEVELDATA_METATILES (5A) # This pointer goes to $63 CertainlyData $1041D LevelData_MetaTiles_0_Towns CertainlyData $10891 LevelData_MetaTiles_1_Mansions CertainlyData $10CF4 LevelData_MetaTiles_2_ForestsAndBridges CertainlyData $1118A LevelData_MetaTiles_3_Wilderness CertainlyData $11620 LevelData_MetaTiles_4_Wastelands CertainlyData $11A3F LevelData_MetaTiles_5_Ruins DataTable $1F7D1 $1F7D2 4 6 LevelData_MetaTiles 0 $4 # LEVELDATA_CATEGORYTHRESHOLDS (5B) # This pointer goes to $6E CertainlyData $1F7E9 LevelData_CategoryThresholds_0_Towns CertainlyData $1F7EC LevelData_CategoryThresholds_1_Mansions CertainlyData $1F7EF LevelData_CategoryThresholds_2_ForestsAndBridges CertainlyData $1F7F2 LevelData_CategoryThresholds_3_Wilderness CertainlyData $1F7F5 LevelData_CategoryThresholds_4_Wastelands CertainlyData $1F7F8 LevelData_CategoryThresholds_5_Ruins DataTable $1F7D3 $1F7D4 4 6 LevelData_CategoryThresholds 0 $4 # LEVELDATA6 CertainlyData $1FA3A LevelData_ScreenNumbers_0_Towns_0aldra_0 CertainlyData $086AC LevelData_ScreenNumbers_0_Towns_1veros_0 CertainlyData $1FB1E LevelData_ScreenNumbers_0_Towns_2aljiba_0 CertainlyData $1FA3B LevelData_ScreenNumbers_0_Towns_3jova_0 CertainlyData $086AD LevelData_ScreenNumbers_0_Towns_4ondol_0 CertainlyData $1FB1F LevelData_ScreenNumbers_0_Towns_5doina_0 CertainlyData $1FB20 LevelData_ScreenNumbers_0_Towns_6yomi_0 CertainlyData $0800B LevelData_ScreenNumbers_0_Towns_7church_0 CertainlyData $0800C LevelData_ScreenNumbers_0_Towns_8_0_9_0_10_1_16_1_18_0_19_2_20_0_22_0_23_0 CertainlyData $0800D LevelData_ScreenNumbers_0_Towns_10_0_16_0_19_0_19_1 CertainlyData $086AE LevelData_ScreenNumbers_0_Towns_11_0 CertainlyData $1FB21 LevelData_ScreenNumbers_0_Towns_12_0 CertainlyData $1FB22 LevelData_ScreenNumbers_0_Towns_13_0 CertainlyData $0800E LevelData_ScreenNumbers_0_Towns_13_1_14_1_15_1_17_1 CertainlyData $0800F LevelData_ScreenNumbers_0_Towns_14_0_15_0 CertainlyData $086AF LevelData_ScreenNumbers_0_Towns_17_0 CertainlyData $1FB23 LevelData_ScreenNumbers_0_Towns_21_0 DataTable $1F9FF $1FA00 2 1 LevelData_ScreenNumbers_0_Towns_0aldra DataTable $1FA08 $1FA09 2 1 "" DataTable $08657 $08658 2 1 LevelData_ScreenNumbers_0_Towns_1veros DataTable $08660 $08661 2 1 "" DataTable $1FAC2 $1FAC3 2 1 LevelData_ScreenNumbers_0_Towns_2aljiba DataTable $1FACB $1FACC 2 1 "" DataTable $1FA0A $1FA0B 2 1 LevelData_ScreenNumbers_0_Towns_3jova DataTable $1FA13 $1FA14 2 1 "" DataTable $08662 $08663 2 1 LevelData_ScreenNumbers_0_Towns_4ondol DataTable $0866B $0866C 2 1 "" DataTable $1FACD $1FACE 2 1 LevelData_ScreenNumbers_0_Towns_5doina DataTable $1FAD6 $1FAD7 2 1 "" DataTable $1FAD8 $1FAD9 2 1 LevelData_ScreenNumbers_0_Towns_6yomi DataTable $1FAE1 $1FAE2 2 1 "" DataTable $08000 $08001 2 1 LevelData_ScreenNumbers_0_Towns_7church DataTable $08009 $0800A 2 1 "" DataTable $1FA15 $1FA16 2 1 LevelData_ScreenNumbers_0_Towns_8_9 DataTable $1FA1E $1FA1F 2 1 "" DataTable $0866D $0866E 2 1 LevelData_ScreenNumbers_0_Towns_10 DataTable $08676 $08677 2 2 "" DataTable $0867A $0867B 2 1 LevelData_ScreenNumbers_0_Towns_11 DataTable $08683 $08684 2 1 "" DataTable $1FAE3 $1FAE4 2 1 LevelData_ScreenNumbers_0_Towns_12 DataTable $1FAEC $1FAED 2 1 "" DataTable $1FAEE $1FAEF 2 1 LevelData_ScreenNumbers_0_Towns_13 DataTable $1FAF7 $1FAF8 2 2 "" DataTable $1FAFB $1FAFC 2 1 LevelData_ScreenNumbers_0_Towns_14 DataTable $1FB04 $1FB05 2 2 "" DataTable $1FA20 $1FA21 2 1 LevelData_ScreenNumbers_0_Towns_15 DataTable $1FA29 $1FA2A 2 2 "" DataTable $1FA2D $1FA2E 2 1 LevelData_ScreenNumbers_0_Towns_16 DataTable $1FA36 $1FA37 2 2 "" DataTable $08685 $08686 2 1 LevelData_ScreenNumbers_0_Towns_17 DataTable $0868E $0868F 2 2 "" DataTable $08692 $08693 2 1 LevelData_ScreenNumbers_0_Towns_18 DataTable $0869B $0869C 2 1 "" DataTable $0869D $0869E 2 1 LevelData_ScreenNumbers_0_Towns_19 DataTable $086A6 $086A7 2 3 "" DataTable $1FB08 $1FB09 2 1 LevelData_ScreenNumbers_0_Towns_20_22_23 DataTable $1FB11 $1FB12 2 1 "" DataTable $1FB13 $1FB14 2 1 LevelData_ScreenNumbers_0_Towns_21 DataTable $1FB1C $1FB1D 2 1 "" CertainlyData $088E3 LevelData_ScreenNumbers_1_Mansions_0larubaEntrance_0 CertainlyData $08D61 LevelData_ScreenNumbers_1_Mansions_1_0_12_0_13_0_14_0_15_0_16_0_17_0 CertainlyData $09257 LevelData_ScreenNumbers_1_Mansions_2roverEntrance_0 CertainlyData $09697 LevelData_ScreenNumbers_1_Mansions_3brahmEntrance_0 CertainlyData $09A69 LevelData_ScreenNumbers_1_Mansions_4bodleyEntrance_0 CertainlyData $040E3 LevelData_ScreenNumbers_1_Mansions_5_0_11_0 CertainlyData $088E4 LevelData_ScreenNumbers_1_Mansions_6laruba_0 CertainlyData $088E5 LevelData_ScreenNumbers_1_Mansions_6laruba_1 CertainlyData $088E6 LevelData_ScreenNumbers_1_Mansions_6laruba_2 CertainlyData $088E7 LevelData_ScreenNumbers_1_Mansions_6laruba_3 CertainlyData $08D5F LevelData_ScreenNumbers_1_Mansions_7_0_18_0 CertainlyData $08D60 LevelData_ScreenNumbers_1_Mansions_7_1_18_1 CertainlyData $09255 LevelData_ScreenNumbers_1_Mansions_8rover_0 CertainlyData $09256 LevelData_ScreenNumbers_1_Mansions_8rover_1 CertainlyData $09698 LevelData_ScreenNumbers_1_Mansions_9brahm_0 CertainlyData $09699 LevelData_ScreenNumbers_1_Mansions_9brahm_1 CertainlyData $0969A LevelData_ScreenNumbers_1_Mansions_9brahm_2 CertainlyData $0969B LevelData_ScreenNumbers_1_Mansions_9brahm_3 CertainlyData $09A6A LevelData_ScreenNumbers_1_Mansions_Abodley_0 CertainlyData $09A6B LevelData_ScreenNumbers_1_Mansions_Abodley_1 DataTable $088C7 $088C8 2 1 LevelData_ScreenNumbers_1_Mansions_0larubaEntrance DataTable $088D0 $088D1 2 1 "" DataTable $08D3A $08D3B 2 1 LevelData_ScreenNumbers_1_Mansions_1_12_13_14_15_16_17 DataTable $08D43 $08D44 2 1 "" DataTable $0924A $0924B 2 1 LevelData_ScreenNumbers_1_Mansions_2roverEntrance DataTable $09253 $09254 2 1 "" DataTable $0967B $0967C 2 1 LevelData_ScreenNumbers_1_Mansions_3brahmEntrance DataTable $09684 $09685 2 1 "" DataTable $09A51 $09A52 2 1 LevelData_ScreenNumbers_1_Mansions_4bodleyEntrance DataTable $09A5A $09A5B 2 1 "" DataTable $088D2 $088D3 2 1 LevelData_ScreenNumbers_1_Mansions_6laruba DataTable $088DB $088DC 2 4 "" DataTable $08D45 $08D46 2 1 LevelData_ScreenNumbers_1_Mansions_7berkeley DataTable $08D4E $08D4F 2 2 "" DataTable $0923D $0923E 2 1 LevelData_ScreenNumbers_1_Mansions_8rover DataTable $09246 $09247 2 2 "" DataTable $09686 $09687 2 1 LevelData_ScreenNumbers_1_Mansions_9brahm DataTable $0968F $09690 2 4 "" DataTable $09A5C $09A5D 2 1 LevelData_ScreenNumbers_1_Mansions_Abodley DataTable $09A65 $09A66 2 2 "" DataTable $08D52 $08D53 2 1 LevelData_ScreenNumbers_1_Mansions_18 DataTable $08D5B $08D5C 2 2 "" CertainlyData $0A1A0 LevelData_ScreenNumbers_2_ForestsAndBridges_0jovaFororest_0 CertainlyData $0A1A1 LevelData_ScreenNumbers_2_ForestsAndBridges_0southBridge_1 CertainlyData $0A1A2 LevelData_ScreenNumbers_2_ForestsAndBridges_0verosForest_2 CertainlyData $0A1A3 LevelData_ScreenNumbers_2_ForestsAndBridges_0verosForest_3 CertainlyData $0A1A8 LevelData_ScreenNumbers_2_ForestsAndBridges_1verosForest_0 CertainlyData $0A6D0 LevelData_ScreenNumbers_2_ForestsAndBridges_2_0 CertainlyData $0A6D1 LevelData_ScreenNumbers_2_ForestsAndBridges_3_0 CertainlyData $0A6D6 LevelData_ScreenNumbers_2_ForestsAndBridges_3_1 CertainlyData $0A6D7 LevelData_ScreenNumbers_2_ForestsAndBridges_3_2 CertainlyData $0A6D8 LevelData_ScreenNumbers_2_ForestsAndBridges_3_3 CertainlyData $0A6DD LevelData_ScreenNumbers_2_ForestsAndBridges_4_0 CertainlyData $0A6DE LevelData_ScreenNumbers_2_ForestsAndBridges_4_1 CertainlyData $0A6DF LevelData_ScreenNumbers_2_ForestsAndBridges_5_0 CertainlyData $0A6E0 LevelData_ScreenNumbers_2_ForestsAndBridges_5_1 CertainlyData $0A19D LevelData_ScreenNumbers_2_ForestsAndBridges_6_0_7_0 CertainlyData $0A19E LevelData_ScreenNumbers_2_ForestsAndBridges_7_1 CertainlyData $0A19F LevelData_ScreenNumbers_2_ForestsAndBridges_7_2 CertainlyData $0A1A9 LevelData_ScreenNumbers_2_ForestsAndBridges_8_0 CertainlyData $0A1AA LevelData_ScreenNumbers_2_ForestsAndBridges_8_1 CertainlyData $0A1AB LevelData_ScreenNumbers_2_ForestsAndBridges_8_2 CertainlyData $0A1B0 LevelData_ScreenNumbers_2_ForestsAndBridges_9_0 CertainlyData $0A1B1 LevelData_ScreenNumbers_2_ForestsAndBridges_9_1 CertainlyData $0A1B2 LevelData_ScreenNumbers_2_ForestsAndBridges_9_2 DataTable $0A149 $0A14A 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_0jovaFororest DataTable $0A152 $0A153 2 4 "" DataTable $0A15A $0A15B 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_1verosForest DataTable $0A163 $0A164 2 1 "" DataTable $0A69A $0A69B 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_2 DataTable $0A6A3 $0A6A4 2 1 "" DataTable $0A6A5 $0A6A6 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_3 DataTable $0A6AE $0A6AF 2 4 "" DataTable $0A6B6 $0A6B7 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_4 DataTable $0A6BF $0A6C0 2 2 "" DataTable $0A6C3 $0A6C4 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_5 DataTable $0A6CC $0A6CD 2 2 "" DataTable $0A165 $0A166 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_6 DataTable $0A16E $0A16F 2 1 "" DataTable $0A170 $0A171 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_7 DataTable $0A179 $0A17A 2 3 "" DataTable $0A17F $0A180 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_8 DataTable $0A188 $0A189 2 3 "" DataTable $0A18E $0A18F 2 1 LevelData_ScreenNumbers_2_ForestsAndBridges_9 DataTable $0A197 $0A198 2 3 "" CertainlyData $0B3A2 LevelData_ScreenNumbers_3_Wilderness_0_0carmillaCemetery CertainlyData $0B3A3 LevelData_ScreenNumbers_3_Wilderness_0_1jomaSwampLeft CertainlyData $0B3A4 LevelData_ScreenNumbers_3_Wilderness_1_0strigoiCemetery CertainlyData $0B3A5 LevelData_ScreenNumbers_3_Wildernesss_2_0 CertainlyData $0B3AA LevelData_ScreenNumbers_3_Wildernesss_2_1 CertainlyData $0B7DA LevelData_ScreenNumbers_3_Wildernesss_3_0 CertainlyData $0B7DB LevelData_ScreenNumbers_3_Wildernesss_3_1 CertainlyData $0B7DC LevelData_ScreenNumbers_3_Wildernesss_3_2 CertainlyData $0B7DD LevelData_ScreenNumbers_3_Wildernesss_3_3 CertainlyData $0B7DE LevelData_ScreenNumbers_3_Wildernesss_3_4 CertainlyData $0B3AB LevelData_ScreenNumbers_3_Wildernesss_4_0 DataTable $0B372 $0B373 2 1 LevelData_ScreenNumbers_3_Wilderness_0carmillaCemetery DataTable $0B37B $0B37C 2 2 "" DataTable $0B37F $0B380 2 1 LevelData_ScreenNumbers_3_Wildernesss_1 DataTable $0B388 $0B389 2 1 "" DataTable $0B38A $0B38B 2 1 LevelData_ScreenNumbers_3_Wildernesss_2 DataTable $0B393 $0B394 2 2 "" DataTable $0B7C7 $0B7C8 2 1 LevelData_ScreenNumbers_3_Wildernesss_3 DataTable $0B7D0 $0B7D1 2 5 "" DataTable $0B397 $0B398 2 1 LevelData_ScreenNumbers_3_Wildernesss_4 DataTable $0B3A0 $0B3A1 2 1 "" CertainlyData $0AE9E LevelData_ScreenNumbers_4_Wastelands_0_0 CertainlyData $0AE9F LevelData_ScreenNumbers_4_Wastelands_0_1 CertainlyData $0AEA4 LevelData_ScreenNumbers_4_Wastelands_1_0 CertainlyData $0AEA0 LevelData_ScreenNumbers_4_Wastelands_1_1 CertainlyData $0AEA1 LevelData_ScreenNumbers_4_Wastelands_2_0 CertainlyData $0AEA2 LevelData_ScreenNumbers_4_Wastelands_3_0 CertainlyData $0AEA3 LevelData_ScreenNumbers_4_Wastelands_3_1 DataTable $0AE6C $0AE6D 2 1 LevelData_ScreenNumbers_4_Wastelands_0 DataTable $0AE75 $0AE76 2 2 "" DataTable $0AE79 $0AE7A 2 1 LevelData_ScreenNumbers_4_Wastelands_1 DataTable $0AE82 $0AE83 2 2 "" DataTable $0AE86 $0AE87 2 1 LevelData_ScreenNumbers_4_Wastelands_2 DataTable $0AE8F $0AE90 2 1 "" DataTable $0AE91 $0AE92 2 1 LevelData_ScreenNumbers_4_Wastelands_3 DataTable $0AE9A $0AE9B 2 2 "" CertainlyData $0BC65 LevelData_ScreenNumbers_5_Ruins_0_0 CertainlyData $0BC66 LevelData_ScreenNumbers_5_Ruins_0_1 DataTable $0BC58 $0BC59 2 1 LevelData_ScreenNumbers_5_Ruins_0 DataTable $0BC61 $0BC62 2 2 "" DataTable $8042 $8043 2 24 LevelData_ScreenNumbers_0_Towns DataTable $873C $873D 2 19 LevelData_ScreenNumbers_1_Mansions DataTable $9EE5 $9EE6 2 10 LevelData_ScreenNumbers_2_ForestsAndBridges DataTable $B280 $B281 2 5 LevelData_ScreenNumbers_3_Wilderness DataTable $AE64 $AE65 2 4 LevelData_ScreenNumbers_4_Wastelands DataTable $BC56 $BC57 2 1 LevelData_ScreenNumbers_5_Ruins DataTable $1F7AB $1F7AC 2 6 LevelData_ScreenNumbers 0 $2 CertainlyCode $1D257 LoadLevelData_ScreenNumbers_PointerForCurrentLevelSceneNumber_Storeto02 # LEVELDATA_MAXLEVELUP CertainlyData $1D5B5 LevelData_MaxLevelUp_0_Towns CertainlyData $1D5B9 LevelData_MaxLevelUp_1_Mansions CertainlyData $1D5BF LevelData_MaxLevelUp_2_ForestsAndBridges CertainlyData $1D5C4 LevelData_MaxLevelUp_3_Wilderness CertainlyData $1D5C7 LevelData_MaxLevelUp_4_Wastelands_and_5_Ruins DataTable $1D5A9 $1D5AA 2 6 LevelData_MaxLevelUp # LEVELDATA_MAPPERCONFIGURATIONS CertainlyData $1CCE9 LevelData_MapperConfigurations_VROMpage0 CertainlyData $1CCEA LevelData_MapperConfigurations_VROMpage1 #################### CertainlyData $10B7E CertainlyData $10B82 CertainlyCode $1D428 UnknownFunc1D428 0 $3 CertainlyCode $1CE41 Check_RunFinalConfrontationActions CertainlyCode $73FF RunFinalConfrontationActions CertainlyCode $7415 FinalConfrontation_RemoveGarlics_And_DisableInput CertainlyCode $7424 FinalConfrontation_AutoControlSimon CertainlyCode $7459 FinalConfrontation_Maybe_MoveDraculaParts CertainlyCode $748F FinalConfrontation_Maybe_ExplodeDracula CertainlyCode $74AC FinalConfrontation_Maybe_PauseBeforeAction CertainlyCode $74E0 FinalConfrontation_Maybe_BeginAction JumpTable $7409 $740A 2 6 FinalConfrontationOperations CertainlyCode $C031 SwampTreadingTest CertainlyCode $C8A2 UnknownFunctionC8A2_CalledFrom1D42A CertainlyCode $429A ObjectAI_object00_23 CertainlyCode $4FAA ObjectAI_object01 CertainlyCode $6513 ObjectAI_object02_Leech CertainlyCode $43B4 ObjectAI_object03_Skeleton CertainlyCode $627E ObjectAI_object04_FishMan CertainlyCode $53E1 ObjectAI_object05_Knight CertainlyCode $63E8 ObjectAI_object06_TwoHeadedCreature CertainlyCode $440F ObjectAI_object07_WaterSplash CertainlyCode $67CA ObjectAI_object08_Eyeball CertainlyCode $67F2 ObjectAI_object09 CertainlyCode $6A45 ObjectAI_object0A_MedusaHead CertainlyCode $5562 ObjectAI_object0C_ThrownBone CertainlyCode $5622 ObjectAI_object0D_JumpingSkeleton CertainlyCode $4425 ObjectAI_object0E JumpTable $445B $445C 2 4 ObjectAI_object0E_actions JumpTable $457B $457C 2 7 ObjectAI_object21_22_34_actions1 JumpTable $45AD $45AE 2 7 ObjectAI_object21_22_34_actions2 JumpTable $4FC2 $4FC3 2 4 ObjectAI_object01_actions JumpTable $537D $537E 2 3 ObjectAI_object14_actions JumpTable $54B1 $54B2 2 3 ObjectAI_object0F_actions JumpTable $5585 $5586 2 3 ObjectAI_object0C_actions JumpTable $5661 $5662 2 3 ObjectAI_object0D_actions JumpTable $56FC $56FD 2 3 ObjectAI_object3E_actions JumpTable $5786 $5787 2 3 ObjectAI_object20_actions JumpTable $57EA $57EB 2 6 ObjectAI_object1F_actions JumpTable $594A $594B 2 3 ObjectAI_object11_actions JumpTable $5CF5 $5CF6 2 5 ObjectAI_object42_actions JumpTable $6226 $6227 2 3 ObjectAI_object13_actions JumpTable $628C $628D 2 5 ObjectAI_object04_actions JumpTable $6375 $6378 2 3 ObjectAI_object15_actions JumpTable $6456 $6457 2 3 ObjectAI_object3C_actions JumpTable $6AB9 $6ABA 2 3 ObjectAI_object3F_actions JumpTable $6B1F $6B20 2 6 ObjectAI_object1B_actions JumpTable $6C32 $6C33 2 5 ObjectAI_object3B_actions JumpTable $6D2F $6D30 2 4 ObjectAI_object3A_actions JumpTable $70A8 $70A9 2 3 ObjectAI_object16_actions JumpTable $712B $712C 2 3 ObjectAI_object41_actions JumpTable $7327 $7328 2 4 ObjectAI_object1D_actions JumpTable $739E $739F 2 3 ObjectAI_object32_actions CertainlyCode $545B ObjectAI_object0F CertainlyCode $72E2 ObjectAI_object10_Skull CertainlyCode $5934 ObjectAI_object11 CertainlyCode $6185 ObjectAI_object12_Wolf CertainlyCode $6210 ObjectAI_object13_Werewolf CertainlyCode $5362 ObjectAI_object14 CertainlyCode $6367 ObjectAI_object15_Mudman CertainlyCode $7092 ObjectAI_object16_HoodedSkeleton CertainlyCode $4F8C ObjectAI_object17_TownZombie CertainlyCode $6E95 ObjectAI_object18 CertainlyCode $7070 ObjectAI_object19_DragonBones_Part1 CertainlyCode $44EA ObjectAI_object1A CertainlyCode $6B0C ObjectAI_object1B_Raven CertainlyCode $69F4 ObjectAI_object1C CertainlyCode $730A ObjectAI_object1D_FlamingMan CertainlyCode $71BD ObjectAI_object1E CertainlyCode $57D3 ObjectAI_object1F_SlimeyMansion CertainlyCode $5762 ObjectAI_object20 CertainlyCode $454B ObjectAI_object21_22_34_FloatingPlatform CertainlyCode $505A ObjectAI_object24_TownSign CertainlyCode $53BF ObjectAI_object25_CrystalBallAndBodypartBag CertainlyCode $4335 ObjectAI_object26_27_ClueBook CertainlyCode $4EE2 ObjectAI_object28 CertainlyCode $4F50 ObjectAI_object29_2B_35_TownMonkAndLady CertainlyCode $4F0B ObjectAI_object2A_TownBoy CertainlyCode $4F7D ObjectAI_object2C_TownSittingMan CertainlyCode $43CC ObjectAI_object2D_2E_2F_VendorAndPriest CertainlyCode $438F ObjectAI_object30_31_33_Fireball CertainlyCode $7386 ObjectAI_object32 CertainlyCode $426F ObjectAI_object36_MonsterDiedFlame CertainlyCode $429B ObjectAI_object37_Heart CertainlyCode $6E66 ObjectAI_object38 CertainlyCode $6A6F ObjectAI_object39_FlamingFlyingPirateSkeleton CertainlyCode $6D11 ObjectAI_object3A_Mummy CertainlyCode $6C1E ObjectAI_object3B_Gargoyle CertainlyCode $6431 ObjectAI_object3C_Ferryman_Part1 CertainlyCode $64DC ObjectAI_object3D_Ferryman_Part2 CertainlyCode $56E1 ObjectAI_object3E_FallingStone CertainlyCode $6AA0 ObjectAI_object3F_Plant CertainlyCode $6E21 ObjectAI_object40 CertainlyCode $7119 ObjectAI_object41_SlimeyOutside CertainlyCode $5CD8 ObjectAI_object42 CertainlyCode $436C ObjectAI_object43_Maybe_Swamp CertainlyCode $5E1B ObjectAI_object44 CertainlyCode $5DD2 ObjectAI_object45 CertainlyCode $5EDD ObjectAI_object46 CertainlyCode $7594 ObjectAI_object47_DraculaMaybe CertainlyCode $768A ObjectAI_object48 CertainlyCode $52FD ObjectAI_object49 CertainlyCode $6FF4 ObjectAI_object4A_DragonBones_Part2 CertainlyCode $750A ObjectAI_object4B CertainlyCode $7577 ObjectAI_object4C CertainlyCode $769F ObjectAI_object4D_DraculasDeath CertainlyCode $52F4 UnusedObjectAI_52F4_DevolvesIntoDraculasFireball CertainlyCode $56E0 UnusedObjectAI_56E0_DoesNothing CertainlyCode $4E79 Unused4E79 CertainlyCode $4E7E Unused4E7E CertainlyCode $6558 UnusedObjectAI_6558_SkeletonThatBehavesLikeFlamingMan CertainlyCode $63BE UnusedObjectAI_63BE_DealsWithMudmanSprites CertainlyCode $65C7 UnusedObjectAI_65C7_StationaryFireball JumpTable $6570 $6571 2 4 UnusedObjectAI_6558_actions JumpTable $65DF $65E0 2 3 UnusedObjectAI_65C7_actions CertainlyCode $12D16 DecodePassword_VerifyIt CertainlyCode $12E15 DecodePassword CertainlyCode $12E24 EncodePassword CertainlyCode $12E3E EncodePassword_CreateChecksum CertainlyCode $12E5E DecodePassword_VerifyChecksum CertainlyCode $12EE9 EncodePassword_DoAdding CertainlyCode $12EFB EncodePassword_CreateAddXor CertainlyCode $12F21 EncodePassword_Compress CertainlyCode $12F62 DecodePassword_Decompress CertainlyCode $12F94 DecodePassword_DoSubbing CertainlyCode $12FA6 DecodePassword_LastByte CertainlyCode $12FC7 EncodePassword_Convert8_to_5 CertainlyCode $130DA DecodePassword_Convert5_to_8 CertainlyCode $13205 Password_DoXorring CertainlyCode $12DC6 EncodePassword_RenderScreen_maybe CertainlyCode $12DD6 EncodePassword_DisplayEncodedPassword CertainlyCode $12E02 EncodePassword_WaitForStartKey CertainlyCode $12EE1 EncodePassword_WaitForMusicFadeOutDelay_ThenContinueGame CertainlyCode $12ABE DecodePassword_SendPalette CertainlyCode $12AC6 DecodePassword_ClearPassword CertainlyCode $12B08 DecodePassword_GotoNextPasswordActionState CertainlyCode $12DFE EncodePassword_GotoNextPasswordActionState CertainlyCode $12B0C DecodePassword_DealWithInput CertainlyCode $12B3F DecodePassword_DealWithInput_80_A_Pressed CertainlyCode $12B67 DecodePassword_DealWithInput_40_B_Pressed #CertainlyCode $12B5A DecodePassword_DealWithInput_noarrows_Pressed CertainlyCode $12B33 DecodePassword_DealWithInput_UpOrDown_Pressed CertainlyCode $12B39 DecodePassword_DealWithInput_LeftOrRight_Pressed CertainlyCode $12DB6 DecodePassword_WaitForDelay_And_RedisplayEnterPasswordPrompt CertainlyCode $12D47 DecodePassword_InitializeGameState_AfterAcceptedPasswordInput CertainlyCode $487C NPCtalkAction_Do CertainlyCode $4C72 NPCtalkAction_FireWhipUpgrader CertainlyCode $506F NPCtalkAction_CrystalExchanger_Blue CertainlyCode $5088 NPCtalkAction_CrystalExchanger_Red CertainlyCode $5347 NPCtalkAction_GiftGiver_Laurels CertainlyCode $6A3A NPCtalkAction_GiftGiver_Diamond CertainlyCode $6E03 NPCtalkAction_GiftGiver_Silkbag CertainlyCode $6E12 NPCtalkAction_GiftGiver_SilverKnife DataTable $13228 $13229 2 16 Password_XorringTable CertainlyData $12F19 Password_AddTable CertainlyData $12EDA Password_ByteMaximums MapperChangeRoutine $1C183 $8000 reg A MapperChangeRoutine $1C185 $8000 ram $1C MapperChangeRoutine $1C187 $8000 reg A CertainlyCode $1C183 SwitchBank_NewPage CertainlyCode $1C185 SwitchBank_RestorePage CertainlyCode $1C187 SwitchBank_temporary CertainlyCode $1E7E Sound_JumpWithParams JumpTableRoutineWithAppendix $1E7E RAM $A7 Sound_TempPtrA7_lo RAM $A8 Sound_TempPtrA7_hi RAM $15C Sound_TempPtr015C_lo RAM $15D Sound_TempPtr015C_hi RAM $171 ClearedFakeBlockListY RAM $172 ClearedFakeBlockListX RAM $185 ClearedFakeBlockListLength CertainlyCode $1C5BB JumpWithParams JumpTableRoutineWithAppendix $1C5BB RAM $00 TempPtr00_lo RAM $01 TempPtr00_hi RAM $02 TempPtr02_lo RAM $03 TempPtr02_hi RAM $07 Temp07 RAM $08 TempPtr08_lo RAM $09 TempPtr08_hi #CertainlyCode $176A Maybe1_DialogInterpret_FBandFC #CertainlyCode $177B Maybe1_DialogInterpret_FD #CertainlyCode $178D Maybe1_DialogInterpret_FE #CertainlyCode $17D2 Maybe1_DialogInterpret_FF #CertainlyCode $1D48 Maybe2_ScanDialog #CertainlyCode $1D64 Maybe2_DialogInterpret_FBandFCandFD #CertainlyCode $1D70 Maybe2_DialogInterpret_FE #CertainlyCode $1D8D Maybe2_DialogInterpret_FF CertainlyCode $1C615 RenderHPbar CertainlyCode $1C6B4 PPU_DirectToPPU_Data_ExtractAndSend_Screen0_Blank CertainlyCode $1C6B6 PPU_DirectToPPU_Data_ExtractAndSend_ScreenXdiv2 #CertainlyCode $1C726 PPU_DirectToPPU_Data_ExtractAndSend_Finish CertainlyData $1C735 PPU_DirectToPPU_Data_ScreensList_0_blank CertainlyData $10000 PPU_DirectToPPU_Data_ScreensList_1_title CertainlyData $1288C PPU_DirectToPPU_Data_ScreensList_2 CertainlyData $13328 PPU_DirectToPPU_Data_ScreensList_3_passwordentry CertainlyData $13621 PPU_DirectToPPU_Data_ScreensList_4_yourpassword CertainlyData $138EA PPU_DirectToPPU_Data_ScreensList_5_mainmenu DataTable $1C729 $1C72A 2 6 PPU_DirectToPPU_Data_ScreensList 0 $4 # Direct PPU data format: # First, 2 bytes PPU memory offset (little-endian) # $00-$7E = RLE: byte to be sent N times will follow. $00 is interpreted as $100. # $7F = goto beginning (2 bytes PPU offset will follow) # $80-$FE = raw data, for N bytes, where N = (this byte - $80). # $FF = end of data CertainlyCode $1C82E PPU_Text_ExtractAndSend_With_01prefix CertainlyData $1040C PPU_Text_StringsList_00_bank4_PushStartKey CertainlyData $1C9D6 PPU_Text_StringsList_04_bank7_unknown228A CertainlyData $1CADA PPU_Text_StringsList_05_bank7_Palette3F00_unknown CertainlyData $1CAB7 PPU_Text_StringsList_06_bank7_TitleScreenPalette CertainlyData $1C96B PPU_Text_StringsList_07_bank7_GameOver_Continue_Password CertainlyData $1C9CD PPU_Text_StringsList_08_bank7_unknown2284 CertainlyData $10356 PPU_Text_StringsList_09_bank4_ProloguePart1 CertainlyData $1CAAE PPU_Text_StringsList_0A_bank7_ObjectPalette_First8entries_ForInGame CertainlyData $1C953 PPU_Text_StringsList_0B_bank7_GameStart_Player CertainlyData $1CAAB PPU_Text_StringsList_0C_bank7_Palette3F00_0bytes CertainlyData $11F33 PPU_Text_StringsList_0D_bank4_palettesWithoutPrefix 4 CertainlyData $11F44 PPU_Text_StringsList_0E_bank4_palettesWithoutPrefix 4 CertainlyData $11F5E PPU_Text_StringsList_0F_bank4_palettesWithoutPrefix 4 CertainlyData $11F78 PPU_Text_StringsList_10_bank4_palettesWithoutPrefix 4 CertainlyData $11F92 PPU_Text_StringsList_11and12_bank4_palettesWithoutPrefix 4 CertainlyData $11FAC PPU_Text_StringsList_13_bank4_palettesWithoutPrefix 4 CertainlyData $11E80 PPU_Text_StringsList_14_bank4_palettesWithoutPrefix 4 CertainlyData $11E91 PPU_Text_StringsList_15_bank4_palettesWithoutPrefix 4 CertainlyData $11EA2 PPU_Text_StringsList_16_bank4_palettesWithoutPrefix 4 CertainlyData $11EB3 PPU_Text_StringsList_17_bank4_palettesWithoutPrefix 4 CertainlyData $11EC4 PPU_Text_StringsList_18_bank4_palettesWithoutPrefix 4 CertainlyData $11ED5 PPU_Text_StringsList_19_bank4_palettesWithoutPrefix 4 CertainlyData $11EE6 PPU_Text_StringsList_1A_bank4_palettesWithoutPrefix 4 CertainlyData $11EF7 PPU_Text_StringsList_1B_bank4_palettesWithoutPrefix 4 CertainlyData $11F08 PPU_Text_StringsList_1C_bank4_palettesWithoutPrefix 4 CertainlyData $11F19 PPU_Text_StringsList_1D_bank4_palettesWithoutPrefix 4 CertainlyData $1CAE0 PPU_Text_StringsList_1E_bank7_Palette3F00_16bytes CertainlyData $1CAF3 PPU_Text_StringsList_1F_bank7_palettesWithoutPrefix 4 CertainlyData $1CB04 PPU_Text_StringsList_20_bank7_palettesWithoutPrefix 4 CertainlyData $1CB15 PPU_Text_StringsList_21_bank7_palettesWithoutPrefix 4 CertainlyData $11FC6 PPU_Text_StringsList_22_bank4_palettesWithoutPrefix 4 CertainlyData $11FD7 PPU_Text_StringsList_23_bank4_palettesWithoutPrefix 4 CertainlyData $11FE8 PPU_Text_StringsList_24_bank4_palettesWithoutPrefix 4 CertainlyData $11FF9 PPU_Text_StringsList_25_bank4_palettesWithoutPrefix 4 CertainlyData $1200A PPU_Text_StringsList_26_bank4_palettesWithoutPrefix 4 CertainlyData $1201B PPU_Text_StringsList_27_bank4_palettesWithoutPrefix 4 CertainlyData $1202C PPU_Text_StringsList_28_bank4_palettesWithoutPrefix 4 CertainlyData $1203D PPU_Text_StringsList_29_bank4_palettesWithoutPrefix 4 CertainlyData $1204E PPU_Text_StringsList_2A_bank4_palettesWithoutPrefix 4 CertainlyData $1205F PPU_Text_StringsList_2B_bank4_palettesWithoutPrefix 4 CertainlyData $12070 PPU_Text_StringsList_2C_bank4_palettesWithoutPrefix 4 CertainlyData $12081 PPU_Text_StringsList_2D_bank4_palettesWithoutPrefix 4 CertainlyData $11F2A PPU_Text_StringsList_2E_bank4_palettesWithoutPrefix 4 CertainlyData $1CB26 PPU_Text_StringsList_2F_bank7_palettesWithoutPrefix 4 CertainlyData $1CB2F PPU_Text_StringsList_30_bank7_palettesWithoutPrefix 4 CertainlyData $1CB38 PPU_Text_StringsList_31_bank7_palettesWithoutPrefix 4 CertainlyData $1CB41 PPU_Text_StringsList_32_bank7_palettesWithoutPrefix 4 CertainlyData $1CB4A PPU_Text_StringsList_33_bank7_palettesWithoutPrefix 4 CertainlyData $1CB53 PPU_Text_StringsList_34_bank7_palettesWithoutPrefix 4 CertainlyData $120C5 PPU_Text_StringsList_35_bank4_palettesWithoutPrefix 4 CertainlyData $120CE PPU_Text_StringsList_36_bank4_palettesWithoutPrefix 4 CertainlyData $1CB5C PPU_Text_StringsList_37_bank7_palettesWithoutPrefix 4 CertainlyData $120D7 PPU_Text_StringsList_38_bank4_palettesWithoutPrefix 4 CertainlyData $1C98D PPU_Text_StringsList_39_bank7_unknown2284 CertainlyData $1C9A0 PPU_Text_StringsList_3A_bank7_unknown2284 CertainlyData $1C9B4 PPU_Text_StringsList_3B_bank7_unknown2284 CertainlyData $12092 PPU_Text_StringsList_3C_bank4_palettesWithoutPrefix 4 CertainlyData $120A3 PPU_Text_StringsList_3D_bank4_palettesWithoutPrefix 4 CertainlyData $120B4 PPU_Text_StringsList_3E_bank4_palettesWithoutPrefix 4 CertainlyData $120E0 PPU_Text_StringsList_3F_bank4_palettesWithoutPrefix 4 CertainlyData $120F1 PPU_Text_StringsList_40_bank4_palettesWithoutPrefix 4 CertainlyData $12102 PPU_Text_StringsList_41_bank4_palettesWithoutPrefix 4 CertainlyData $12113 PPU_Text_StringsList_42_bank4_palettesWithoutPrefix 4 CertainlyData $12124 PPU_Text_StringsList_43_bank4_palettesWithoutPrefix 4 CertainlyData $12135 PPU_Text_StringsList_44_bank4_palettesWithoutPrefix 4 CertainlyData $1213E PPU_Text_StringsList_45_bank4_palettesWithoutPrefix 4 CertainlyData $12147 PPU_Text_StringsList_46_bank4_palettesWithoutPrefix 4 CertainlyData $11F55 PPU_Text_StringsList_47_bank4_palettesWithoutPrefix 4 CertainlyData $11F6F PPU_Text_StringsList_48_bank4_palettesWithoutPrefix 4 CertainlyData $11F89 PPU_Text_StringsList_49_bank4_palettesWithoutPrefix 4 CertainlyData $11FA3 PPU_Text_StringsList_4A_bank4_palettesWithoutPrefix 4 CertainlyData $11FBD PPU_Text_StringsList_4B_bank4_palettesWithoutPrefix 4 CertainlyData $12161 PPU_Text_StringsList_4C_bank4_palettesWithoutPrefix 4 CertainlyData $127B1 PPU_Text_StringsList_4D_bank4_Palette3F00_16bytes CertainlyData $127C4 PPU_Text_StringsList_4E_bank4_Palette3F00_32bytes CertainlyData $127E7 PPU_Text_StringsList_4F_bank4_Palette3F00_32bytes CertainlyData $1280A PPU_Text_StringsList_50_bank4_Palette3F00_16bytes CertainlyData $1281D PPU_Text_StringsList_51_bank4_Palette3F00_16bytes CertainlyData $12830 PPU_Text_StringsList_52_bank4_Palette3F00_16bytes CertainlyData $12843 PPU_Text_StringsList_53_bank4_Palette3F00_16bytes CertainlyData $12856 PPU_Text_StringsList_54_bank4_Palette3F00_16bytes CertainlyData $12869 PPU_Text_StringsList_55_bank4_Palette3F00_32bytes CertainlyData $10392 PPU_Text_StringsList_56_bank4_ProloguePart2 CertainlyData $12150 PPU_Text_StringsList_57_bank4_palettesWithoutPrefix 4 CertainlyData $1C9BF PPU_Text_StringsList_58_bank7_PleaseWait CertainlyData $1C9EA PPU_Text_StringsList_59_bank7_PasswordError CertainlyData $1CA04 PPU_Text_StringsList_5A_bank7_EntryCompleted CertainlyData $1CA1E PPU_Text_StringsList_5B_bank7_EnterYourPassword CertainlyData $1CA37 PPU_Text_StringsList_5C_bank7_Palette3F00_32bytes CertainlyData $1CA5A PPU_Text_StringsList_5D_bank7_Palette3F00_32bytes CertainlyData $1CA7D PPU_Text_StringsList_5E_bank7_Palette3F00_32bytes CertainlyData $1CAA0 UnknownData1CAA0 #CertainlyData $1041D UnknownData1041D DataTable $1C895 $1C896 2 95 PPU_Text_StringsList 0 $4 CertainlyCode $1C839 PPU_Text_ExtractAndSend CertainlyCode $1C84B PPU_Text_ExtractAndSend_Loop CertainlyCode $1C892 PPU_Text_ExtractAndSend_Finish CertainlyCode $1C88A PPU_Text_ExtractAndSend_Finish_Put00 CertainlyCode $1C88C PPU_Text_ExtractAndSend_Finish_PutA CertainlyCode $1C88E PPU_Text_ExtractAndSend_Finish_PutA_at_X CertainlyCode $1C872 PPU_Text_ExtractAndSend_FE_putsFF_finish CertainlyCode $1C876 PPU_Text_ExtractAndSend_FD_putsFF_and_01 CertainlyCode $1EB9C PPU_Text_PutAandFF CertainlyCode $1E38D PPU_Text_PutA CertainlyCode $1C886 PPU_Text_PutFF CertainlyCode $1E394 PPU_Text_Put3bytes_01_and_NameTableAddress CertainlyCode $1E37D PPU_Text_Put3bytes_01_and_AttributeTableAddress CertainlyCode $1E381 PPU_Text_Put3bytes_A_and_AttributeTableAddress CertainlyCode $1C5D9 Inc16bitPointerAtX_by_A CertainlyCode $1C5E3 Dec16bitPointerAtX_by_A CertainlyCode $1E5C5 Inc_NameTableAddress_by_0020 RAM $5E NameTableAddressLo RAM $5F NameTableAddressHi RAM $60 AttributeTableAddressLo RAM $61 AttributeTableAddressHi RAM $0A ObstaclePointerLo RAM $0B ObstaclePointerHi CertainlyCode $1D767 AccumulateClockTime CertainlyCode $1D7B8 IncreaseDayByOne CertainlyCode $1D7D3 TriggerDayNightTransition CertainlyCode $1D356 DecreaseHPbyVar08 CertainlyCode $1D354 DecreaseHPbyA CertainlyData $4BB7 HPcostByMonsterHit CertainlyData $4BDD WhipHitDistanceTable CertainlyData $4BE2 WhipPowerByLevelTable CertainlyData $4BFF HPreductionAtLevel0_mul4 CertainlyData $4C09 HPreductionAtLevel1_mul3 CertainlyData $4C13 HPreductionAtLevel2_mul2 CertainlyData $4C1D HPreductionAtLevel3_mul1 CertainlyData $4C27 HPreductionAtLevel4_div2 CertainlyData $4C31 HPreductionAtLevel5_div3 CertainlyData $4C3B HPreductionAtLevel6_div4 DataTable $4BF1 $4BF2 2 7 HPreductionTable RAM $18 CurrentPlotAction RAM $19 CurrentPlotAction_StateWithin CertainlyCode $1C1F2 PlotAction00_LoadTitleScreen CertainlyCode $1C1FF PlotAction01_RunTitleScreen CertainlyCode $1C1F1 PlotAction02_Nothing CertainlyCode $1C20F PlotAction03_StartKeyPressed_Unused_And_ActivatePlotAction04_With_128FrameDelay CertainlyCode $1C232 PlotAction04_BeginNewGame CertainlyCode $1CC24 PlotAction05_RunGameMaybe #^FDS: 8263 CertainlyCode $1C289 PlotAction06_DeathSequence CertainlyCode $1C2C7 PlotAction07_RunGameoverMenuScreen CertainlyCode $1C328 PlotAction08_RunMainMenuScreen CertainlyCode $1C409 PlotAction09_RunEnding CertainlyCode $1C411 PlotAction0A_RunEndingTextPerhaps CertainlyCode $1C3CB PlotAction0B_RunGameoverPasswordScreen CertainlyCode $1C436 PlotAction0C_Goto0D_After_Brief_Pause CertainlyCode $1C424 PlotAction0D_ReprogramMapper_And_ActivatePlotAction09_With_128FrameDelay CertainlyCode $1C43D PlotAction0E_AfterEnding_ActivatePlotAction00_With_128FrameDelay CertainlyCode $1C3C2 PlotAction0F_Goto04_After_Brief_Pause CertainlyCode $1C250 ActivatePlotAction_With_128FrameDelay CertainlyCode $1C207 ActivatePlotAction00_With_128FrameDelay CertainlyCode $1C22D ActivatePlotAction04_With_128FrameDelay CertainlyCode $10336 PlotAction01_Continues CertainlyCode $1030C PlotAction00_Continues CertainlyCode $1C4AF TitleScreen_CheckForStartKey CertainlyCode $1C6A2 TitleScreen_ClearAndRender RAM $2C PlotAction05_GameLoop_WhichAction CertainlyCode $1CC54 PlotAction05_Action00_ShowGameBeginScreenWithRemainingLives CertainlyCode $1CC7E PlotAction05_Action01_LevelLoad_ResetNPCs CertainlyCode $1CC9A PlotAction05_Action02_LevelLoad_Part2 CertainlyCode $1CDD5 PlotAction05_Action03_GameActive CertainlyCode $1CEA2 PlotAction05_Action04_NightTimeTransition_Begin CertainlyCode $1CEB8 PlotAction05_Action05_NightTimeTransition_FadeOutLoop CertainlyCode $1CECF PlotAction05_Action06_NightTimeTransition_Middle CertainlyCode $1CEF4 PlotAction05_Action07_NightTimeTransition_FadeInLoop CertainlyCode $1CF8C PlotAction05_Action08_RelocateSimonLevelBeginningMaybe CertainlyCode $1D03A PlotAction05_Action09_EnterOrExitRoom CertainlyCode $1D075 PlotAction05_Action0A_RelocateSimonLevelBeginningMaybe CertainlyCode $1D003 PlotAction05_Action0B CertainlyCode $1CE79 PlotAction05_Action0C CertainlyCode $1C2FB PlotAction07_RunGameoverMenuScreen_Start_pressed CertainlyCode $1C2F4 PlotAction07_RunGameoverMenuScreen_Select_pressed CertainlyCode $1C390 PlotAction08_RunMainMenuScreen_Start_pressed CertainlyCode $1C384 PlotAction08_RunMainMenuScreen_Select_pressed CertainlyCode $1C31A PlotAction08_IncrementUsedContinueCount CertainlyCode $1C3EB PlotAction0B_RunGameoverPasswordScreen_GoBackToGameoverMenu CertainlyCode $1C258 ResetSimonBackToLevelBeginning_InTheRuins_AfterDeath CertainlyCode $1C4F4 LetSimonContinueAfterDeath CertainlyCode $1C54B InitializeGameVariablesForBeginning CertainlyCode $1C564 ResetSimonTo_80BD_Hour12 CertainlyCode $1C7A0 LightsOut Comment $1C7CF "Loads the pointer to palette for current room according to current values of $30,$50,$51 and IsNightTime." Comment $1C7CF "Output: $08,y Pointer to two PPU_Text indexes in page 2 (some are in common page)." Comment $1C7CF "The first number (lda $08,y) is the background palette." Comment $1C7CF "The second number (iny; lda $08,y) is the object palette." Comment $1C7CF "The palette strings are in page 4." CertainlyCode $1C7CF LoadCurrentLevelPalettePointer CertainlyCode $1C7FD LoadAndApplyCurrentLevelPalette CertainlyCode $1C819 LoadAndApplyOnePalette CertainlyData $1CCF5 SongTableDayNight CertainlyCode $1CD10 LoadAndPlayCurrentLevelSong CertainlyCode $1CF11 DayNightTransition_GoNextPaletteFrame CertainlyCode $1EBA2 DayNightTransition_ShowDialog CertainlyCode $1D308 GameLoop_CheckIfPauseEnteredOrActive CertainlyData $1C3BE MainMenuScreenCursorXtable CertainlyData $1C3BF MainMenuScreenCursorYtable CertainlyData $1C2C3 GameoverMenuScreenCursorXtable CertainlyData $1C2C4 GameoverMenuScreenCursorYtable RAM $1D FrameCounter RAM $2E RandomSeed RAM $26 GamePaused RAM $27 GameInDeathState RAM $34 DeathStateRelatedFlagMaybe RAM $87 DayNightTransition_PaletteBitmask RAM $88 DayNightTransitionDelayCounter RAM $8F TimeFlag8F_TimeIsStopped RAM $2B TimeRelated2B RAM $2A TimeRelated2A RAM $3F TimeRelated3F RAM $81 CurrentMaxHP RAM $80 CurrentHP RAM $8B CurrentLevel RAM $82 IsNightTime RAM $83 CurrentDayBCD RAM $86 CurrentHourBCD RAM $85 CurrentMinuteBCD RAM $84 CurrentTimeWaitCounter RAM $3D CurrentLevelData_Actors_PointerLo RAM $3E CurrentLevelData_Actors_PointerHi Comment $4794 "Body part" Comment $47BF "Rosary" Comment $47C7 "Golden knife" Comment $47CD "Flame" RAM $4C InventoryNumLaurels RAM $4D InventoryNumGarlics RAM $91 InventoryBodyParts1 # $01 = bone # $02 = heart # $04 = eye # $08 = nail # $10 = ring # $20 = wcrystal # $40 = bcrystal # $20+$40 = rcrystal # other = unused RAM $92 InventoryMiscItems1 # $01 = silk bag # $02 = cross/rosary # $04 = laurels exist # $08 = garlics exist # other = unused (note: vendor $21 can give $10) RAM $4A InventoryMiscItems2 # $01 = dagger # $02 = knife1 # $04 = knife2 # $08 = bottle # $10 = diamond # $20 = flame # $40 = stake # other = unused RAM $31 RemainingLives RAM $193 NumberOfContinuesUsed ;BCD format RAM $48 HeartsDigits0011 RAM $49 HeartsDigits1100 RAM $46 Edigits0011 RAM $47 Edigits1100 RAM $93 Temp93 RAM $97 Temp97 CertainlyCode $1C118 AnyBankPlayTracks CertainlyCode $1C0E7 AnyBankTerminateSound CertainlyCode $229B Bank0PlayTracks CertainlyCode $22AF Bank0TerminateSound CertainlyCode $22AB StartTracks CertainlyCode $23B9 StartPCMsound CertainlyCode $1D93 SoundCode_JustDoEightNOPs_28cyclesOfDelay CertainlyCode $1E1F SoundCode_MuteAllChannelsButDontDisableThem CertainlyCode $22CC Sound_StartTracks CertainlyCode $167D SoundCode_NMIcallback CertainlyCode $16CA SoundCode_ExecuteTickForLogicalChannelX CertainlyCode $16E0 SoundCode_TickForSquareWaveChannel CertainlyCode $1750 SoundCode_ReadNextCommand_From_TrackPtr_ypp CertainlyCode $1751 SoundCode_ReadNextCommand_From_TrackPtr_y CertainlyCode $182C Sound_TrackCommand00toFA CertainlyCode $1835 Sound_TrackCommand00toFA_for_NoiseChannel_maybe CertainlyCode $18E8 Sound_TrackCommand00toFA_for_NotNoiseChannel_maybe CertainlyCode $1856 Sound_TrackCommand00to0F_for_LogicalChannel0_or_1_or_3 CertainlyCode $1889 Sound_TrackCommand00to0F_for_LogicalChannel2 CertainlyCode $1891 Sound_TrackCommand00to0F_for_LogicalChannel4 CertainlyCode $184B Sound_TrackCommand10toFA CertainlyCode $18C9 Sound_TrackCommand00to0F_followedBy00_or_10toFA_for_LogicalChannel4 CertainlyCode $18A0 Sound_TrackCommand00to0F_followedBy00_or_10toFA_for_LogicalChannelNot4 CertainlyCode $1A53 Sound_TrackCommand00toCF_or_10toCF CertainlyCode $18F1 Sound_TrackCommandD0toFA CertainlyCode $1901 Sound_TrackCommandD0toDF CertainlyCode $195F Sound_TrackCommandE0toEF CertainlyCode $1987 Sound_TrackCommandF0toFA_savesLoNibbleTo13E CertainlyCode $199D Sound_TrackCommandE6_savesNextByteToC9 CertainlyCode $19A4 Sound_TrackCommandE7_savesNextByteTo136 CertainlyCode $19AD Sound_TrackCommandE8_savesNextTwoNibblesTo138and13C CertainlyCode $19B3 Sound_TrackCommandE9_savesNextByteTo134or129 CertainlyCode $19CE Sound_TrackCommandEA_savesNextByteTo131 CertainlyCode $19D7 Sound_TrackCommandEB_savesNextTwoNibblesTo146and148_andNextByteTo14A CertainlyCode $19F1 Sound_TrackCommandECtoEF_flag_and_likeEB CertainlyCode $1981 Sound_TrackCommandE0toE5_savesThisByteTo12E CertainlyCode $175A Sound_TrackCommandFBtoFF CertainlyCode $176A Sound_TrackCommandFBtoFC_LoopBegin CertainlyCode $177B Sound_TrackCommandFD_Gosub_FollowedByGosubAddress CertainlyCode $178D Sound_TrackCommandFE_LoopEnd_FollowedByLoopCount_Or_FF_and_gotoAddress CertainlyCode $17D2 Sound_TrackCommandFF_Return # # # Sound data format: # FF: End # FE [] (target only included if loopcount=255) # FD: Gosub # FB..FC: Loop begin # EC..EF # EB # EA # E9 # E8 # E7 # E6 # E0..E5: stored to 12E # D0..DF: stored to C9; if channel=5, that's it. # if channel=2, that's it. # stored to 129,13E,124 # ignored if channel=2 # # other: # # CertainlyData $1FBC4 Sound_PCMsample5D_Config CertainlyData $1FBC8 Sound_PCMsample5E_Config CertainlyData $1FBCC Sound_PCMsample5F_Config_DamageOuchSoundMaybe CertainlyData $1FCC0 Sound_PCMsample5D_Data Comment $1FCC0 "Length: $170+1 bytes" CertainlyData $1FC00 Sound_PCMsample5E_Data Comment $1FC00 "Length: $0B0+1 bytes" CertainlyData $1FE40 Sound_PCMsample5F_Data Comment $1FE40 "Length: $0A0+1 bytes" CertainlyData $0278 SoundData01_SFX_ch4 CertainlyData $028A SoundData02_SFX_ch4 CertainlyData $0297 SoundData03_SFX_Snare_ch4 CertainlyData $0290 SoundData04_SFX_ch4 CertainlyData $0486 SoundData05_SFX_DialogCharacter_ch3 CertainlyData $02A1 SoundData06_SFX_ch4 CertainlyData $02BC SoundData07_SFX_SimonLands_ch4 CertainlyData $02C2 SoundData08_SFX_ch4 CertainlyData $02CC SoundData09_SFX_ch4 CertainlyData $02D6 SoundData0A_SFX_LeatherWhip_ch4 CertainlyData $02E2 SoundData0B_SFX_Frog_ch3 CertainlyData $02F0 SoundData0C_SFX_ch3 CertainlyData $0301 SoundData0D_SFX_Swamp_ch3 CertainlyData $031B SoundData0E_SFX_ChainWhip_ch4 CertainlyData $032E SoundData0F_SFX_FireWhip_ch3 CertainlyData $0342 SoundData10_SFX_ch4 CertainlyData $034B SoundData11_SFX_ch4 CertainlyData $0350 SoundData12_SFX_DiamondBoundingEffect_ch3 CertainlyData $0363 SoundData13_SFX_KnifeEffect_ch3 CertainlyData $037F SoundData14_SFX_ShieldEffect_ch3 CertainlyData $039D SoundData15_SFX_FireEffect_ch4 CertainlyData $0703 SoundData16_SFX_WaterBottleBreaks_ch3 CertainlyData $0725 SoundData17_SFX_ch4 CertainlyData $03AF SoundData18_SFX_EnemySuffers_ch3 CertainlyData $03CD SoundData19_SFX_ch4 CertainlyData $03D3 SoundData1A_SFX_ch3 CertainlyData $03E5 SoundData1B_SFX_ch4 CertainlyData $03F4 SoundData1C_SFX_ch4 CertainlyData $0400 SoundData1D_SFX_WaterSplash_ch4 CertainlyData $0410 SoundData1E_SFX_WallDestroyedWithWater_ch3 CertainlyData $0420 SoundData1F_SFX_HeartAcquisition_ch3 CertainlyData $042F SoundData20_SFX_ConsumeLaurel_ch3 CertainlyData $0442 SoundData21_SFX_EnemyDestroyed_ch3 CertainlyData $046B SoundData22_SFX_NPCgaveSomething_ch3 CertainlyData $0494 SoundData23_SFX_ch3 CertainlyData $04A4 SoundData24_SFX_PasswordError_ch3 CertainlyData $04AF SoundData25_SFX_TransactionConfirm_ch3 CertainlyData $04DF SoundData26_SFX_ch3 CertainlyData $04C7 SoundData27_SFX_ch3 CertainlyData $04F0 SoundData28_SFX_Tornado_ch4 CertainlyData $0539 SoundData29_SFX_ch3 CertainlyData $0551 SoundData2A_SFX_ch4 CertainlyData $056F SoundData2B_SFX_ch3 CertainlyData $0587 SoundData2C_SFX_ch4 CertainlyData $05A5 SoundData2D_SFX_ch3 CertainlyData $05C3 SoundData2E_SFX_ch1 CertainlyData $05CC SoundData2F_SFX_ch3 CertainlyData $0604 SoundData30_SFX_ch1 CertainlyData $060D SoundData31_SFX_ch3 CertainlyData $0617 SoundData32_SFX_ch3 CertainlyData $063B SoundData33_SFX_ch4 CertainlyData $065B SoundData34_SFX_Death_ch3 CertainlyData $06CD SoundData35_SFX_Death_ch1 CertainlyData $06E2 SoundData36_SFX_ch3 CertainlyData $06F0 SoundData37_SFX_ch1 CertainlyData $06D6 SoundData38_SFX_ch3 CertainlyData $0E16 SoundData39_TownSong_ch1 CertainlyData $0F10 SoundData3A_TownSong_ch0 CertainlyData $1077 SoundData3B_TownSong_ch2 CertainlyData $116B SoundData3C_TownSong_ch5 CertainlyData $120A SoundData3D_WildernessSong_ch1 CertainlyData $1308 SoundData3E_WildernessSong_ch0 CertainlyData $14E0 SoundData3F_WildernessSong_ch2 CertainlyData $15E0 SoundData40_WildernessSong_ch5 CertainlyData $27D2 SoundData41_NightSong_ch1 CertainlyData $28B9 SoundData42_NightSong_ch0 CertainlyData $29CC SoundData43_NightSong_ch2 CertainlyData $2A7B SoundData44_NightSong_ch5 CertainlyData $23EC SoundData45_MansionSong_ch1 CertainlyData $251D SoundData46_MansionSong_ch0 CertainlyData $268D SoundData47_MansionSong_ch2 CertainlyData $2750 SoundData48_MansionSong_ch5 CertainlyData $2081 SoundData49_RuinsSong_ch1 CertainlyData $215D SoundData4A_RuinsSong_ch0 CertainlyData $222D SoundData4B_RuinsSong_ch2 CertainlyData $226D SoundData4C_RuinsSong_ch5 CertainlyData $0000 SoundData4D_DraculaSong_ch1 CertainlyData $0040 SoundData4E_DraculaSong_ch0 CertainlyData $00CA SoundData4F_DraculaSong_ch2 CertainlyData $0104 SoundData50_DraculaSong_ch5 CertainlyData $1F9F SoundData51_GameOverSong_ch1 # ^In FDS; $50 CertainlyData $1FFC SoundData52_GameOverSong_ch0 CertainlyData $2063 SoundData53_GameOverSong_ch2 CertainlyData $207E SoundData54_GameOverSong_ch5 CertainlyData $1EA1 SoundData55_PasswordSong_ch1 # ^In FDS; $54 CertainlyData $1F03 SoundData56_PasswordSong_ch0 CertainlyData $1F4A SoundData57_PasswordSong_ch2 CertainlyData $1F7F SoundData58_PasswordSong_ch5 CertainlyData $0733 SoundData59_EndingSong_ch1 CertainlyData $0819 SoundData5A_EndingSong_ch0 CertainlyData $0974 SoundData5B_EndingSong_ch2 CertainlyData $0AFB SoundData5C_EndingSong_ch5 CertainlyData $025A SoundData60_SFX_Pause_ch3 DataTable $013B $013C 3 96 Sound_Ptrs CertainlyData $013A Sound_Records DataTable $2299 $229A 2 1 Sound_Records_Locator 3 # # Sound RECORD format: First byte: bits 7-6 -> $016A (0-3) -- How many other channels? # bits 4-0 -> $016B (0-1F) and to X # The pointer will be loaded to Sound_SongDataPointer1, # Sound_SongDataPointer3 # and $9D. CertainlyData $1C06 SoundPeriodTableHi CertainlyData $1C05 SoundPeriodTable 2 CertainlyData $1C07 SoundPeriodTable2 2 CertainlyData $1E03 Sound_ChannelRegisterOffsetTable CertainlyCode $1E09 Sound_TranslateChannelToRegisterOffset CertainlyCode $1DF4 Sound_TranslateChannelToRegisterOffset_PreserveA CertainlyCode $1DFC Sound_PokeChannel_Common_RestoreX # channels: 0 -> 0 song_square2 # logical 1 -> 1 song_square1 effect_square2 # -> 2 -> 2 song_triangle # physical 3 -> 0 effect_square # 4 -> 3 effect_noise # 5 -> 3 song_noise CertainlyCode $1DD0 Sound_PokeChannelSoundRegister0_preserveAX CertainlyCode $1DD9 Sound_PokeChannelSoundRegister1_preserveAX CertainlyCode $1DE2 Sound_PokeChannelSoundRegister2_preserveAX CertainlyCode $1DEB Sound_PokeChannelSoundRegister3_preserveAX CertainlyCode $1D9C Sound_Set_TrackPtr_From_TrackDataPointer1 CertainlyCode $1DB7 Sound_Fetch_TrackDataPointer1 CertainlyCode $1DC2 Sound_Set_ReturnPointer_From_TrackPtr_y CertainlyCode $1DA7 Sound_Set_TrackDataPointer1_From_TrackPtr_y CertainlyCode $1E0E Sound_SetCarry_If_X_is_00_and_B4_is_nonzero DataTable $0CD0 $0CD1 2 32 SoundEffectRelatedTable CertainlyCode $1D48 Sound_EffectRelatedCommandReadNext CertainlyCode $1D61 Sound_EffectRelatedCommand00toFA_ReturnWithA CertainlyCode $1D64 Sound_EffectRelatedCommandFBtoFD_BeginLoop CertainlyCode $1D70 Sound_EffectRelatedCommandFE_LoopUntil CertainlyCode $1D8D Sound_EffectRelatedCommandFF_End_ReturnWithPreviousA CertainlyCode $1CFF Sound_CalculateMomentaryVolume DataTable $0B3A $0B3B 2 48 SoundEffectTable # CertainlyData $245A CertainlyCode $22FB Unused22FB RAM $1B InSoundCode RAM $016C Sound_PCMsampleActive RAM $A3 Sound_RecordPtrLo RAM $A4 Sound_RecordPtrHi RAM $99 SoundEffectRelatedPtrLo RAM $9A SoundEffectRelatedPtrHi RAM $9B Sound_PeriodTemp_Unknown9B_lo RAM $9C Sound_PeriodTemp_Unknown9B_hi RAM $A1 SoundTrackPtrLo RAM $A2 SoundTrackPtrHi RAM $A5 Sound_TempA5 RAM $A9 Sound_FadeCounter # ^ Frame counter essentially, only ever used for incrementing Sound_FadeMode RAM $AA Sound_FadeMode # ^ 1 = Decreased envelopes, slightly lower volume # ^ 2 = Triangle disabled, still lower volume # ^ 3 = Percussion disabled, still lower volume RAM $AB Sound_SongPausedFlag_Channel0_square0 RAM $AC Sound_SongPausedFlag_Channel1_square1 RAM $AD Sound_SongPausedFlag_Channel2_triangle RAM $AE Sound_SongPausedFlag_Channel3_effectsquare RAM $AF Sound_SongPausedFlag_Channel4_effectnoise RAM $B0 Sound_SongPausedFlag_Channel5_Percussion RAM $B1 Sound_CurrentSongNumber_Channel0_square0 RAM $B2 Sound_CurrentSongNumber_Channel1_square1 RAM $B3 Sound_CurrentSongNumber_Channel2_triangle RAM $B4 Sound_CurrentSongNumber_Channel3_effectsquare RAM $B5 Sound_CurrentSongNumber_Channel4_effectnoise RAM $B6 Sound_CUrrentSongNumber_Channel5_Percussion RAM $B7 Sound_TrackDataPointer1Lo_Channel0_square0 RAM $B8 Sound_TrackDataPointer1Lo_Channel1_square1 RAM $B9 Sound_TrackDataPointer1Lo_Channel2_triangle RAM $BA Sound_TrackDataPointer1Lo_Channel3_effectsquare RAM $BB Sound_TrackDataPointer1Lo_Channel4_effectnoise RAM $BC Sound_TrackDataPointer1Lo_Channel5_Percussion RAM $BD Sound_TrackDataPointer1Hi_Channel0_square0 RAM $BE Sound_TrackDataPointer1Hi_Channel1_square1 RAM $BF Sound_TrackDataPointer1Hi_Channel2_triangle RAM $C0 Sound_TrackDataPointer1Hi_Channel3_effectsquare RAM $C1 Sound_TrackDataPointer1Hi_Channel4_effectnoise RAM $C2 Sound_TrackDataPointer1Hi_Channel5_Percussion RAM $C3 Sound_FlagsC3_Channel0_square0 RAM $C4 Sound_FlagsC3_Channel1_square1 RAM $C5 Sound_FlagsC3_Channel2_triangle RAM $C6 Sound_FlagsC3_Channel3_effectsquare RAM $C7 Sound_FlagsC3_Channel4_effectnoise RAM $C8 Sound_FlagsC3_Channel5_Percussion # &1 = noise channel (channel #4) - UNVERIFIED # &2 = gosub in progress - set at $977D, cleared at $97DA # &8 = ? - set at $986A, cleared at $9878 # &$40 = ? - set at $9A7D, cleared at $9AA2 # &$80 = ? RAM $C9 Sound_ChannelTempoPossibly_Channel0_square0 RAM $CA Sound_ChannelTempoPossibly_Channel1_square1 RAM $CB Sound_ChannelTempoPossibly_Channel2_triangle RAM $CC Sound_ChannelTempoPossibly_Channel3_effectsquare RAM $CD Sound_ChannelTempoPossibly_Channel4_effectnoise RAM $CE Sound_ChannelTempoPossibly_Channel5_Percussion RAM $CF Sound_ReturnPointerLo_Channel0_square0 RAM $D0 Sound_ReturnPointerLo_Channel1_square1 RAM $D1 Sound_ReturnPointerLo_Channel2_triangle RAM $D2 Sound_ReturnPointerLo_Channel3_effectsquare RAM $D3 Sound_ReturnPointerLo_Channel4_effectnoise RAM $D4 Sound_ReturnPointerLo_Channel5_Percussion RAM $D5 Sound_ReturnPointerHi_Channel0_square0 RAM $D6 Sound_ReturnPointerHi_Channel1_square1 RAM $D7 Sound_ReturnPointerHi_Channel2_triangle RAM $D8 Sound_ReturnPointerHi_Channel3_effectsquare RAM $D9 Sound_ReturnPointerHi_Channel4_effectnoise RAM $DA Sound_ReturnPointerHi_Channel5_Percussion RAM $DB Sound_LoopCounter_Channel0_square0 RAM $DC Sound_LoopCounter_Channel1_square1 RAM $DD Sound_LoopCounter_Channel2_triangle RAM $DE Sound_LoopCounter_Channel3_effectsquare RAM $DF Sound_LoopCounter_Channel4_effectnoise RAM $E0 Sound_LoopCounter_Channel5_Percussion RAM $E1 Sound_LoopBeginPointerLo_Channel0_square0 RAM $E2 Sound_LoopBeginPointerLo_Channel1_square1 RAM $E3 Sound_LoopBeginPointerLo_Channel2_triangle RAM $E4 Sound_LoopBeginPointerLo_Channel3_effectsquare RAM $E5 Sound_LoopBeginPointerLo_Channel4_effectnoise RAM $E6 Sound_LoopBeginPointerLo_Channel5_Percussion RAM $E7 Sound_LoopBeginPointerHi_Channel0_square0 RAM $E8 Sound_LoopBeginPointerHi_Channel1_square1 RAM $E9 Sound_LoopBeginPointerHi_Channel2_triangle RAM $EA Sound_LoopBeginPointerHi_Channel3_effectsquare RAM $EB Sound_LoopBeginPointerHi_Channel4_effectnoise RAM $EC Sound_LoopBeginPointerHi_Channel5_Percussion RAM $110 Sound_CurrentPeriodLo RAM $115 Sound_CurrentPeriodHi RAM $11A Sound_CacheAPUreg3 RAM $11C Sound_CacheAPUreg3_Channel2_Triangle RAM $11F Sound_CacheAPUreg2 RAM $124 Sound_EffectTableResultLoNibble RAM $129 Sound_CacheAPUreg0and1_twonibbles RAM $12E Sound_CurrentOctavePossibly RAM $131 Sound_TabUnknown0131 RAM $134 Sound_TabUnknown0134 RAM $136 Sound_EffectTableIndex RAM $138 Sound_TabUnknown0138 RAM $13A Sound_TabUnknown013A_squarewavesonly RAM $13C Sound_TabUnknown013C_squarewavesonly RAM $13E Sound_TabUnknown013E # ^ Appears to fade envelope RAM $140 Sound_TabUnknown0140 # ^ This too RAM $146 Sound_TabUnknown0146 RAM $148 Sound_TabUnknown0148 RAM $14A Sound_EffectRelated_Index RAM $14C Sound_EffectTableResultHiNibble RAM $14E Sound_TabUnknown014E RAM $150 Sound_EffectRelatedBytesRead RAM $152 Sound_TabUnknown0152 RAM $154 Sound_EffectRelatedBytesRead_Copy RAM $156 Sound_TabUnknown0156 RAM $158 Sound_EffectRelatedLoopCounter RAM $15A Sound_TabUnknown015A RAM $164 Sound_CurrentLogicalChannel RAM $168 Sound_StartSong_MainPtrOffset RAM $169 Sound_StartSong_LatestSongIndex RAM $16A Sound_StartSong_NumTracksRemaining RAM $16B Sound_StartSong_CurrentLogicalChannel RAM $9D Sound_StartSong_TrackDataPtr_Lo RAM $9E Sound_StartSong_TrackDataPtr_Hi CertainlyCode $1C0D8 ResetPPUtoKnownState CertainlyCode $1C09D ResetAPUtoKnownState # ^ In FDS version at $78AD CertainlyCode $1C1DC ResetFirst14sprites CertainlyCode $1C5A1 ResetAllRAM_from_300_to_6FF CertainlyCode $1C595 ResetAllRAM_from_1D_to_98_and_300_to_6FF CertainlyCode $1CB69 NMI_ProcessPPUsendQueue CertainlyCode $1C140 NMI_MapDesiredVROMpages CertainlyCode $1C0FB NMI_SoundCodeCall CertainlyCode $1C453 NMI_UpdateInput Comment $1C453 "Cycle cost: 756 cycles + JSR+RTS, if DMA doesn't damage input" Comment $1C453 "Cycle cost: 701 cycles + JSR+RTS if DMA damaged player1 input" Comment $1C453 "Cycle cost: 709 cycles + JSR+RTS if DMA damaged player2 input" CertainlyCode $1C48A NMI_ReadOneJoypad Comment $1C48A "Cycle cost: 325 cycles + JSR+RTS" CertainlyCode $1C46F NMI_UpdateInputTables Comment $1C46F "Cycle cost: 23 cycles + JSR+RTS" CertainlyCode $1C47F NMI_BlankNewInputTables Comment $1C47F "Cycle cost: 14 cycles + JSR+RTS" CertainlyCode $1C46F NMI_AnalyzeCurrentInput CertainlyCode $1C0B8 NMI_UpdatePPUregisters CertainlyCode $2BC5 NMI_RenderSprites CertainlyCode $1C1A7 NMI_ExecuteCurrentPlotAction CertainlyCode $1C091 EndNMI RAM $1A NMI_InProgress RAM $21 ScreenBlankingCounter RAM $23 MainMenuOptionIndex RAM $FC PPUscrollingPositionHi RAM $FD PPUscrollingPositionLo RAM $FE PPUdesiredRegister2001 RAM $FF PPUdesiredRegister2000 CertainlyCode $4708 NPC_SelectDialog_FerrymanDefault CertainlyCode $4702 NPC_SelectDialog_FerrymanSpecial CertainlyCode $46EE NPC_SelectDialogForFerryMan CertainlyCode $4719 NPC_SelectDialogForVendor CertainlyCode $4713 NPC_SelectDialogForObject2F_or_1E CertainlyCode $46DA NPC_SelectDialogForEveryoneElse CertainlyData $4871 NPC_VendorTextIndexTable # ^ Buy some of my laurels; Morning sun; Buy some garlic; Buy holy water; # Buy dagger; I give silver knife; Invest in oak stake; Buy white crystal; # Buy thorn whip; Buy chain whip; Buy morning star # Used if ObjectType = $2E, use the vendor text table above # If ObjectType = $2F or $1E, do something special # If ObjectType = $3C, it's a ferryman CertainlyCode $497F Run_Actions_For_Weapons CertainlyCode $4643 Run_Maybe_CheckDialogActivation Comment $4648 "Elapse Simon's Invulnerability counter" DataTable $CB82 $CB83 2 121 DialogTextTable 0 $3 # DialogTextTable is referred to in DialogRenderLoop. DataTable $1F1F8 $1F1F9 2 5 WhipNameTable CertainlyCode $1F0C4 DialogBox_RenderStatusBoxLine CertainlyCode $1F15E DialogBox_RenderWhipName CertainlyCode $1F147 DialogBox_RenderHeartCount CertainlyCode $1F126 DialogBox_RenderExpAndLevel CertainlyCode $1F105 DialogBox_RenderTime CertainlyCode $1F069 DialogBox_RenderLaurelsAndGarlics CertainlyCode $1EFEB DialogBox_RenderBodyParts CertainlyData $1F033 DialogBox_RenderBodyParts_SymbolTable CertainlyData $1F03F DialogBox_RenderBodyParts_CrystalTable CertainlyCode $1F042 DialogBox_RenderWeapons CertainlyData $1F038 DialogBox_RenderWeapons_SymbolTable CertainlyCode $1F1BD DialogBox_GoForwardHorizontally CertainlyCode $1F1CC DialogBox_RenderTwoDigitNumber CertainlyCode $1F1F0 DialogBox_RenderOneDigit CertainlyCode $1F0FC DialogBox_GoDownTwoLines CertainlyCode $1EE3F DialogBox_RenderDownArrow CertainlyCode $1F353 DialogBox_RenderDownArrow_StatusScreen_ReplaceArrowOnThisLine CertainlyCode $1F375 DialogBox_RenderDownArrow_StatusScreen_PutArrowOnTheOtherLine CertainlyCode $1F35D StatusScreen_PutDownArrowForItemsLine CertainlyCode $1F32C StatusScreen_AnimateItemsLine Comment $1F313 "StatusScreen_AnimateBodypartsLine:" CertainlyData $1F3DE StatusScreenCursorPositionsIntoPPUsendQueue CertainlyData $1EE10 MerchantCursorPositionsIntoPPUsendQueue CertainlyCode $1F3BB StatusScreenAndMerchants_InitializePPUsendQueue_For_CursorHandling CertainlyCode $1F38F StatusScreen_Add_PPUsendQueueSlots_For_LaurelsAndGarlics Comment $1F3BB "Creates seven blank slots in the buffer, with one space between each." Comment $1F3BB "Each slot is a separate PPU send command. This ensures that it will" Comment $1F3BB "work properly even when the line of slots spans across nametables." DataTable $1245A $1245B 2 48 EndingStringTable 0 $5 CertainlyData $4B7E CertainlyCode $12DB6 Redisplay_EnterPassword_Prompt CertainlyCode $12D35 Display_InvalidPassword_Message CertainlyCode $10326 Display_PrologueTextPart2 RAM $77 DialogText_Ycoord RAM $78 DialogText_Xcoord RAM $79 DialogText_Saved_ID RAM $7A DialogActionState RAM $7B DialogText_RemainingPerCharacterDelay RAM $7C DialogText_CharacterIndex RAM $7D DialogText_BeginX RAM $7E DialogText_Saved_CharacterIndex RAM $7F DialogTextID CertainlyCode $1EEA4 DialogRenderLoop 0 $3 CertainlyCode $1EF03 DialogRender_FF_end CertainlyCode $1EEDB DialogRender_FE_newline CertainlyCode $1EEE4 DialogRender_FC_SubstringGosub CertainlyCode $1EEF8 DialogRender_FB_SubstringReturn CertainlyCode $1F2E7 DialogText_IncYcoord_by_A CertainlyCode $1EC6E DialogAction_GiftingNPCexecute CertainlyCode $1EF66 DialogAction_HideAllActors CertainlyCode $1EFD6 DialogAction_BeginDialogBoxRender CertainlyCode $1EFD2 DialogAction_BeginMerchantBoxRender CertainlyCode $1EFAA DialogAction_ItemMenuPauseScreen_RenderStatusBox CertainlyCode $1EB96 DialogAction_Maybe_SetPaletteForDialog CertainlyCode $1EE51 DialogAction_PositionCursorAtBegin CertainlyCode $1EE96 DialogAction_RenderMessage_WithDelayCheck CertainlyCode $1EE8F DialogAction_Wait_BeginXframes CertainlyCode $1EC9F DialogAction_ChangeSomeActorsSomehow CertainlyCode $1EC7C DialogAction_PlayPasswordCursorMovingSoundEffect #CertainlyCode $1E2DF DialogAction_PlayStatusCursorMovingSoundEffect -- wrong address! CertainlyCode $1ECC7 DialogAction_MerchantRenderDeal CertainlyCode $1EF0A DialogAction_PlayTransformationSoundEffect CertainlyCode $1EF7A DialogAction_DetermineDialogBoxCoordinates CertainlyCode $1EF18 DialogAction_WaitFor_B_key CertainlyCode $1EF1E DialogAction06c_or_08b_Goto_06a CertainlyCode $1ED4A DialogAction_WaitMerchantDecision CertainlyCode $1ED41 DialogAction_WaitMerchantDecision_ToggleCursorPosition CertainlyCode $1F3E7 DialogAction_Undraw_DialogBox_18lines CertainlyCode $1EE2A DialogAction_MerchantConfirmationShow CertainlyCode $1ED58 DialogAction_MerchantConfirmationDrawCursor CertainlyCode $1EF22 DialogAction_UnhideAllActors CertainlyCode $1F2ED DialogAction_ItemMenuPauseScreen_WaitForStatusScreenKeys CertainlyCode $1F22A DialogAction_ItemMenuPauseScreen_ButtonPressed_Start CertainlyCode $1F2A9 DialogAction_ItemMenuPauseScreen_ButtonPressed_Right CertainlyCode $1F2AD DialogAction_ItemMenuPauseScreen_ButtonPressed_Right_Row0 CertainlyCode $1F2BD DialogAction_ItemMenuPauseScreen_ButtonPressed_Right_Row1 CertainlyCode $1F237 DialogAction_ItemMenuPauseScreen_ButtonPressed_Left CertainlyCode $1F23B DialogAction_ItemMenuPauseScreen_ButtonPressed_Left_Row0 CertainlyCode $1F262 DialogAction_ItemMenuPauseScreen_ButtonPressed_Left_Row1 CertainlyCode $1F2D2 DialogAction_ItemMenuPauseScreen_RightShift_A_by_Y_put_original_in_17 CertainlyCode $1F22D DialogAction_ItemMenuPauseScreen_Load_ShiftCount_For_LaurelsAndGarlics CertainlyCode $1F2D9 DialogAction_ItemMenuPauseScreen_ButtonPressed_UpOrDown CertainlyCode $1F2E4 DialogAction_ItemMenuPauseScreen_DoneCursorMovement CertainlyCode $1F2DF DialogAction_ItemMenuPauseScreen_DoneCursorMovement_Do_SFX CertainlyCode $1F3FB DialogAction_ItemMenuPauseScreen_EndPauseStateShowActors CertainlyCode $1EF4C DialogAction_PlayLevelUpSoundEffect CertainlyCode $1EF3B DialogAction_FlashSimonPalette CertainlyCode $1EF80 InitializeDialogBoxCoordinates Comment $1EF80 "Ycoord ($77) = ($5C + 4) & ~1" Comment $1EF80 "^ 4 lines from top" Comment $1EF80 "Xcoord ($78) = ((0x20 + $53 + $54 * 0x100) / 8) & ~1" Comment $1EF80 "^ 4 tiles from left" CertainlyCode $1EDFE PlayInvalidSelectionWarningSoundEffect CertainlyCode $1ED7E DialogAction_MerchantConfirmAction CertainlyCode $1EDED DialogAction_Merchant_BoughtWhip CertainlyCode $1EDD8 DialogAction_Merchant_BoughtItem CertainlyCode $1ED69 TryBuyLaurels CertainlyCode $1ED75 TryBuyGarlics CertainlyCode $1EE03 DetermineInventoryHerbLimit_Storeto94 CertainlyCode $1D867 CheckEnoughHearts_SubtractIfOk CertainlyCode $1D4F7 GiveExperience_valueInY CertainlyCode $1D518 GiveExperience_TestMaxLevelReached CertainlyCode $1D51E GiveExperience_DoAddExp CertainlyCode $1D549 TestLevelUp CertainlyData $1D597 LevelExpThreshold_lo CertainlyData $1D598 LevelExpThreshold_hi CertainlyData $1D599 LevelExp_increaseMaxHPflag CertainlyCode $1C419 ResetHeartsAndExp CertainlyCode $1D82F SpecialWeaponUse_Try_FindSlot CertainlyCode $1D83D SpecialWeaponUse_Do_ThereisAFreeSlot CertainlyCode $1D83B SpecialWeaponUse_Nothing CertainlyCode $1D8CF SpecialWeaponUse_Weapon1_Dagger CertainlyCode $1D8D6 SpecialWeaponUse_Weapon2and3_Knifes CertainlyCode $1D8A3 SpecialWeaponUse_Weapon4_Bottle CertainlyCode $1D80D SpecialWeaponUse_Weapon5_Diamond CertainlyCode $1D89B SpecialWeaponUse_Weapon6_Flame CertainlyCode $1D892 SpecialWeaponUse_Weapon7_OakStake CertainlyCode $1D91A SpecialWeaponUse_Weapon8_Laurel CertainlyCode $1D92E SpecialWeaponUse_Weapon9_Garlic CertainlyCode $1D856 SpecialWeaponUse_CheckNumHearts CertainlyCode $1D8AA SpecialWeaponUse_CreateGravityObject CertainlyCode $1D8E5 SpecialWeaponUse_CreateDaggerOrKnife CertainlyCode $1D7E8 SpecialWeaponUse_CreateObject CertainlyCode $1D947 SpecialWeaponUse_CreateOakStake CertainlyCode $1D96B SpecialWeaponAI_Run CertainlyCode $1D97A SpecialWeaponAI_RunForX CertainlyCode $1D9A1 SpecialWeaponAI_Done CertainlyCode $1D9BB SpecialWeaponAI_Nothing CertainlyCode $1DA62 SpecialWeaponAI_Weapon1_Dagger CertainlyCode $1D9AF SpecialWeaponAI_Weapon2_SilverKnife CertainlyCode $1DA53 SpecialWeaponAI_Weapon3_GoldKnife CertainlyCode $1DA90 SpecialWeaponAI_Weapon4_Bottle CertainlyCode $1D9D7 SpecialWeaponAI_Weapon5_Diamond CertainlyCode $1DAB3 SpecialWeaponAI_Weapon6_Flame CertainlyCode $1D968 SpecialWeaponAI_Weapon7_OakStake CertainlyCode $1D9B5 SpecialWeaponAI_Weapon9_Garlic CertainlyCode $1DA3F SpecialWeapon_CheckMapCollision CertainlyCode $1D664 SpecialWeaponAI_Bottle_CheckWallBreaking CertainlyCode $1D3AC Simon_CheckMapCollision CertainlyCode $0C6ED Simon_CheckMapCollision_LeftAndRight CertainlyCode $0C000 Simon_TryAvoidCollision Comment $0C000 "If Simon's feet (X+0, Y+$10) are colliding with type $0 or $3, try" Comment $0C000 " First move him left by 8 pixels" Comment $0C000 " If still colliding, try moving right by $10 pixels" CertainlyCode $1E373 Math_divAby16 CertainlyCode $1E378 Math_mulAby16 CertainlyCode $1E37A Math_mulAby4 CertainlyCode $1E361 Math_mul93by16 CertainlyCode $1E365 Math_mul93by4 CertainlyCode $1E36A Math_div93by16 CertainlyCode $1E36E Math_div93by4 CertainlyCode $4E0D Math_ShiftNothing CertainlyCode $4E09 Math_div00by4 CertainlyCode $4E0B Math_div00by2 CertainlyCode $4E0E Math_0001mulby1p5_RoundUp CertainlyCode $4E18 Math_0001mulby4 CertainlyCode $4E1C Math_0001mulby2 CertainlyCode $4DEE Math_MultiplyOrDivideDependingOnA CertainlyCode $4D19 Object_SetVelocityAndAngle_Aangle_Yspeed Comment $4D19 "A = Angle (00..3F)" Comment $4D19 "Y = Speed (0,1,2,3,4 mean 1, 0.25, 0.5, 1.5, 2, 4 respectively) Comment $4D19 "Xvelocity = cos(angle) * speed" Comment $4D19 "Yvelocity = -sin(angle) * speed" CertainlyCode $4D32 Math_CalculateCosine_Scale 17 Comment $4D32 "Return value is 16-bit value in $00:" Comment $4D32 " round(0xFF * cos(A * 2pi / 0x40))" Comment $4D32 "Valid range for A: 00..3F. 0x40 = 360 degrees" Comment $4D32 "$02 scales the result:" Comment $4D32 " 0 = scale by 1 (that is, no scaling)" Comment $4D32 " 1 = scale by 0.25 (round towards zero)" Comment $4D32 " 2 = scale by 0.5 (round towards zero)" Comment $4D32 " 3 = scale by 1.5 (round away from zero)" Comment $4D32 " 4 = scale by 2" Comment $4D32 " 5 = scale by 4" CertainlyData $4D65 Math_CosineTable Comment $4D65 "Perfectly matches round(0xFF*cos(a*pi/0x20)) with a = 0..16" CertainlyCode $4E26 Object_CreateProjectileTowardsSimon CertainlyCode $4E21 Object_CreateProjectileTowardsPredefinedAngle Comment $4E26 "$05 = Object type" Comment $4E26 "X = Which object is shooting" Comment $4E26 "Y,$00,$01 = Results from Object_ComparePositionToSimonPosition" Comment $4E26 " that are fed directly to Math_CalculateAtan2" Comment $4E26 "LevelData_ProjectileVelocities will be used" Comment $4E26 "to scale the projectile speed." Comment $4E26 "$17 will be used as a temporary to store the value of X." CertainlyCode $4D76 Math_CalculateAtan2 Comment $4D76 "Y = quadrant identifier (&1 = bottom, &2 = right)" Comment $4D76 "$00 = absolute X (xdiff)" Comment $4D76 "$01 = absolute Y (ydiff)" Comment $4D76 "Only the most significant 3 bits of each coordinate are considered." Comment $4D76 "Result = A = angle (00..3F)" Comment $4D76 " When Y=0: A = (0x00 + ArctanTable[xdiff/32*8 + ydiff/32])" Comment $4D76 " When Y=1: A = (0x10 + ArctanTable[ydiff/32*8 + xdiff/32])" Comment $4D76 " When Y=2: A = (0x30 + ArctanTable[ydiff/32*8 + xdiff/32]) & 0x3F" Comment $4D76 " When Y=3: A = (0x20 + ArctanTable[xdiff/32*8 + ydiff/32])" CertainlyData $4DEA Math_Atan2Offsets CertainlyData $4DAA Math_ArctanTable 8 Comment $4DAA "Perfectly matches round(0x20/pi * atan(((a>>3) + 0.11)" Comment $4DAA " / ((a&7) + 0.11))) where a=0..63" Comment $4DAA " or equivalently: round(0x20/pi * atan2((a>>3) + 0.11, (a&7) + 0.11))" CertainlyCode $4C8A Object_ComparePositionToSimonPosition Comment $4C8A "Compares object X's position to Simon's position." Comment $4C8A "Returns the following:" Comment $4C8A " ($00) = absolute difference between X coordinates" Comment $4C8A " ($01) = absolute difference between Y coordinates" Comment $4C8A " If object is below Simon (Y & 2)=0, Simon's coordinate += 8" Comment $4C8A " So that the object will aim for the torso, not feet." Comment $4C8A " (Y & 1) if theirX >= simonX" Comment $4C8A " (Y & 2) if theirY >= simonY" Comment $4C8A " In other words, depending on object's positioning towards Simon: Comment $4C8A " Y=0 for top-left, Y=1 for top-right" Comment $4C8A " Y=2 for bottom-left, Y=3 for bottom-right" Comment $4C8A " If A&2, then" Comment $4C8A " - X difference was not smaller than Y diffence" Comment $4C8A " - ($04 & 2) is clear" Comment $4C8A " - ($04 & 1) if theirY < simonY" Comment $4C8A " - (A & 1) if theirX < simonX" Comment $4C8A " else" Comment $4C8A " - ($04 & 2) is set" Comment $4C8A " - ($04 & 1) if theirX < simonX" Comment $4C8A " - (A & 1) if theirY < simonY" CertainlyCode $1DF10 MathBCD_subtract CertainlyCode $1D7CA MathBCD_additionBy1 CertainlyCode $1DEDE MathBCD_addition_In_Var08_Var09_Out_AandCarry_Temp_Var0A_Var0B # $A.lo <- $9.lo # $A += $8.lo (with lo digit normalized) # $B.hi <- $9.hi # $B += CertainlyCode $1DEB7 Math_NegateA CertainlyCode $1E066 Math_Negate16bitWordAt00 CertainlyCode $4CF8 Object_SetCarry_If_OnRightSideOfSimon CertainlyCode $1DFB3 Object_FindUnusedSlot CertainlyCode $1DF42 Object_Erase_And_IfType3C_Set_42to00 CertainlyCode $1DF4D Object_Erase CertainlyCode $1DFC3 DeleteAllMonstersExceptFerryManAndHisBoat CertainlyCode $1D9CF Object_FlashPalette CertainlyCode $1DFE4 Object_GravityAccelerateBy_Var08 CertainlyCode $1DFFA Object_GravityDecelerateBy_Var08 CertainlyCode $1DB4E Object_GravityAccelerateBy_020 CertainlyCode $1DECC Object_SetCurrentActionType CertainlyCode $1DECA Object_SetCurrentActionType_to_01 CertainlyCode $1DEC6 Object_SetCurrentActionType_to_02 CertainlyCode $1DEC2 Object_SetCurrentActionType_to_80 CertainlyCode $1DEBD Object_SetCurrentActionType_For_Simon CertainlyCode $1DED0 Object_SetCurrentActionType_And_Y_as_Pose1 CertainlyCode $1D362 Object0_SetYVelocity16bit_from_AY CertainlyCode $1E076 Object_SetYVelocity16bit_from_AY CertainlyCode $1E04F Object_SetXVelocity16bit_from_AY_invert_if_ObjectFacingLeft_set CertainlyCode $1E05B Object_SetXVelocity16bit_from_00 CertainlyCode $1E03B Object_SetYVelocity16bit_InvertCurrent CertainlyCode $1DF82 Object_SetXandYVelocity16bit_ToZero CertainlyCode $1DF8A Object_SetYVelocity16bit_ToZero CertainlyCode $1E027 Object_SetXVelocity16bit_InvertCurrent CertainlyCode $1E01F Object_SetXVelocity16bit_InvertCurrent_AndAlso_ObjectFacingLeft CertainlyCode $1E010 Object_SetFacing_FaceTowardsSimon 0 $1 CertainlyCode $1E0A2 Object_IncreaseXPositionByVar37_DeleteIfGoesOutScreen CertainlyCode $1E0C1 Object_IncreaseYPositionByVar3A_DeleteIfGoesOutScreen CertainlyCode $1E0E0 Object_IncreaseYPositionByYVelocity CertainlyCode $1E0F4 Object_GeneringXYmovementEngine CertainlyCode $1E1AA Object_GeneringXmovementEngine CertainlyCode $1E2FE Object_CreateThreeWaterSplashes_AroundSimon CertainlyCode $1E300 Object_CreateThreeWaterSplashes_AroundObjectX Comment $1E300 "First object (#$11): Y speed = $FF.00, X speed = $FF.80" Comment $1E300 "Second object (#$10): Y speed = $FE.00, X speed = $00.80" Comment $1E300 "Third object (#$0F): Y speed = $FD.00, X speed = $FF.40" CertainlyData $1E355 WaterSplash_YcoordinateTable CertainlyData $1E356 WaterSplash_YFracCoordinateTable CertainlyData $1E357 WaterSplash_XcoordinateTable CertainlyData $1E358 WaterSplash_XFracCoordinateTable CertainlyData $1E359 WaterSplash_CoordinateTableContinues 4 CertainlyCode $1E2AF Object_GenericCollisionHelper_ParamAY_ReturnCarry_IfFrameOddThenDefaultCLC CertainlyCode $1E2A2 Object_GenericCollisionHelper_ParamAY_ReturnCarry_IfFrameOddThenDefaultSEC CertainlyCode $1F413 UndrawDialogBoxTiles CertainlyCode $1F4A2 UndrawDialogBoxAttributes CertainlyData $1F69D DialogBoxGraph_TopLine CertainlyData $1F6A4 DialogBoxGraph_EmptyLine CertainlyData $1F6B2 DialogBoxGraph_BottomLine CertainlyData $1F6E7 DialogBoxGraph_Sell_HeartCost CertainlyData $1F6F6 DialogBoxGraph_Sell_YesNo CertainlyData $1F6B9 DialogBoxGraph_Status_Time CertainlyData $1F6CC DialogBoxGraph_Status_Exp_Level CertainlyData $1F6DC DialogBoxGraph_Status_Hearts CertainlyData $1F6AB DialogBoxGraph_MiddleLine CertainlyData $1F631 DialogBoxTable_LengthsMinus1 DataTable $1F66D $1F66E 2 12 DialogBoxTable_default DataTable $1F685 $1F686 2 12 DialogBoxTable_02_sell_yesno DataTable $1F649 $1F64A 2 18 DialogBoxTable_00_Status DataDataTable $1F639 $1F63A 2 8 DialogBoxTable JumpTable $1EBB4 $1EBB5 2 9 DayNightTransitionOperations CertainlyCode $1EC28 DialogExecuteAction_Type0_InterruptipleDialog_3_InterruptipleButAutomaticallyInvoked_4_Noninterruptiple CertainlyCode $1EC0B DialogExecuteAction_Type1_SellYesNo CertainlyCode $1EC53 DialogExecuteAction_Type2_GiftingNPC CertainlyCode $1EBDB DialogExecuteAction_Type5_RefillHP CertainlyCode $1EBC6 DialogExecuteAction_Type6_UninterruptipleDialog CertainlyCode $1EF2E DialogExecuteAction_Type7_DoLevelUp CertainlyCode $1F572 DialogBox_AdjustCoordinatesAfterNameTableWrap CertainlyCode $1F611 DialogBox_NameTableWrapped_SaveNew_5Ebitand20_to_16 CertainlyCode $1F613 DialogBox_NameTableWrapped_SaveNew_5Ebitand20_to_Addr_A CertainlyCode $1F624 DialogBox_NameTableWrapped_StartNewPPUtext_AndSaveNew_5Ebitand20_to_16 CertainlyCode $1F620 DialogBox_NameTableWrapped_StartNewPPUtext_AndSaveNew_5Ebitand20_to_06 CertainlyCode $1F580 DialogBox_RenderLine CertainlyCode $1F708 DialogBox_RenderLineAttributes JumpTable $1EBFB $1EBFC 2 8 DialogExecuteAction_Table CertainlyCode $1EBF0 DialogChooseAndExecuteAction CertainlyCode $1EBF5 CertainlyCode $1EE69 DialogBox_TranslateCoordinateIntoPPUoffset_Maybe CertainlyData $1F807 CertainlyCode $1ED36 Merchant_ChooseSellingItem_times3 CertainlyData $1ED15 Merchant_SellingItemsAndCostsTable 3 DataTable $1EE12 $1EE13 3 8 MerchantDealInstructions Comment $1ED85 " 0,0 = laurels" Comment $1ED85 " 1,3 = laurels, at cost 2000" Comment $1ED85 " 2,6 = garlics" Comment $1ED85 " 3,9 = holy water" Comment $1ED85 " 4,12 = dagger" Comment $1ED85 " 5,15 = silver knife maybe" Comment $1ED85 " 6,18 = oak stake" Comment $1ED85 " 7,21 = white crystal" Comment $1ED85 " 8,24 = thorn whip" Comment $1ED85 " 9,27 = chain whip" Comment $1ED85 "10,30 = morning star" CertainlyCode $1C000 Main_ProgramBegin CertainlyCode $1C03C Main_InfiniteLoop_UpdateRandomSeed CertainlyCode $473E PickupSmallHeart CertainlyCode $474B PickupHalfHeart CertainlyCode $4758 PickupFullHeart CertainlyCode $475C IncreaseHeartsCounter CertainlyCode $4860 ClampHeartCounterAt256 CertainlyData $42E9 MonsterHeartTypeTable_At_Day CertainlyData $430F MonsterHeartTypeTable_At_Night_Or_InMansion CertainlyCode $42AE Monster_BecomeHeart CertainlyCode $479B PickUpClueBookOrOtherItem CertainlyData $4632 PickUpBodyPartTable CertainlyCode $758D ClearJoyButtonsWork CertainlyCode $C92B UnknownContextCAD9_JoyButtons_40_B_pressed_UseWeapon CertainlyCode $C9D6 UnknownContextCAD9_JoyButtons_80_A_pressed_Jump CertainlyCode $C8D9 UnknownContextCAD9_JoyButtons_80_A_pressed_Jump_maybe CertainlyCode $1DB55 SimonUseWhip CertainlyCode $C946 SimonUseSpecialWeapon CertainlyCode $C723 SimonExecuteCurrentAction0_Idle CertainlyCode $C970 SimonExecuteCurrentAction1_Walking CertainlyCode $C9CD SimonExecuteCurrentAction2_Jumping_5_Falling CertainlyCode $C975 SimonExecuteCurrentAction3_Ducking CertainlyCode $C9A8 SimonExecuteCurrentAction4_Whipping_Or_UsingWeapon CertainlyCode $CA0E SimonExecuteCurrentAction6_TakingDamageThrown CertainlyCode $CA22 SimonExecuteCurrentAction7_PositionSimonForStairs CertainlyCode $CA47 SimonExecuteCurrentAction8_BeginStairsClimb CertainlyCode $CAD9 SimonExecuteCurrentAction9_StairsStand CertainlyCode $CA52 SimonExecuteCurrentAction10_StairsClimb_Automatic CertainlyCode $C226 SimonExecuteCurrentAction11_Nothing CertainlyCode $C77A Clear_Unknown6Cand6D CertainlyCode $C755 ItemMenuPauseScreen_JoyButtons_01_Rt_pressed CertainlyCode $C76F ItemMenuPauseScreen_JoyButtons_02_Lt_pressed CertainlyCode $C782 ItemMenuPauseScreen_JoyButtons_04_Dn_pressed CertainlyCode $C79D ItemMenuPauseScreen_JoyButtons_08_Up_pressed CertainlyCode $C74A ItemMenuPauseScreen_JoyButtons_nothing_pressed CertainlyCode $1D36A ItemMenuPauseScreen_CursorMovement_Horizontal_ByY CertainlyCode $C725 ItemMenuPauseScreen_JoyButtons_check CertainlyCode $CAF1 Simon_InStairs_JoyButtons_01_Rt_pressed CertainlyCode $CB09 Simon_InStairs_JoyButtons_02_Lt_pressed CertainlyCode $CB29 Simon_InStairs_JoyButtons_04_Dn_pressed CertainlyCode $CB1D Simon_InStairs_JoyButtons_08_Up_pressed CertainlyCode $1D32E Check_IfPauseEntered CertainlyCode $1D33C PauseEntered_WithStart CertainlyCode $1D33E PauseEntered_WithSelect CertainlyCode $1CE1A Check_For_B_ButtonActivatedDialog #CertainlyCode $1D349 ItemMenuPauseScreen_Run_goto CertainlyCode $1EF53 ItemMenuPauseScreen_Run CertainlyCode $1D325 SelectButtonPauseScreen_Run JumpTable $1EF58 $1EF59 2 7 ItemMenuPauseScreen_Actions CertainlyData $3160 SpriteData_Poses_00_58_9B CertainlyData $3179 SpriteData_Poses_01_03_07_09_Simon_WalkAnim1and3_ClimbAnim2 CertainlyData $3180 SpriteData_Poses_02_0D_Simon_WalkAnim2 CertainlyData $3172 SpriteData_Pose04_Simon_Stand_WalkAnim4 CertainlyData $3198 SpriteData_Poses_05_2D_Simon_Duck_Jump CertainlyData $319F SpriteData_Poses_06_B3_Simon_ClimbAnim2 CertainlyData $31AD SpriteData_Poses_08_B7_Simon_ClimbAnim1 CertainlyData $31E5 SpriteData_Pose0A_Simon_WhipAnim1_ThrowAnim1 CertainlyData $31EB SpriteData_Pose0B_Simon_WhipAnim2_ThrowAnim2 CertainlyData $31F1 SpriteData_Pose0C_Simon_WhipAnim3_ThrowAnim3 4 CertainlyData $321F SpriteData_Pose0E_Skeleton_Anim1 4 CertainlyData $322D SpriteData_Pose0F_Skeleton_Anim2 4 CertainlyData $35EB SpriteData_Pose10_FishMan_Anim1 CertainlyData $35F2 SpriteData_Pose11_FishMan_Anim2 4 CertainlyData $3546 SpriteData_Pose12_MansionBat_Anim1 CertainlyData $354B SpriteData_Pose13_MansionBat_Anim2 CertainlyData $3550 SpriteData_Pose14_MansionBat_Hang 4 CertainlyData $33D1 SpriteData_Pose15 4 CertainlyData $33D9 SpriteData_Poses_16_18 CertainlyData $33DE SpriteData_Pose17 4 CertainlyData $345E SpriteData_Pose19_MansionUnusedMonster_Or_Fishman_Anim1 4 CertainlyData $346C SpriteData_Pose1A_MansionUnusedMonster_Or_Fishman_Anim2 4 CertainlyData $3392 SpriteData_Pose1B_FloatingPlatform1 CertainlyData $33FB SpriteData_Pose1C_TownLady_Anim1 4 CertainlyData $3406 SpriteData_Pose1D_TownLady_Anim2 4 CertainlyData $323B SpriteData_Pose1E_Vendor_Anim1 CertainlyData $3242 SpriteData_Pose1F_Vendor_Anim2 CertainlyData $3411 SpriteData_Pose20_Priest_Anim1 CertainlyData $3418 SpriteData_Pose21_Priest_Anim2 CertainlyData $341F SpriteData_Pose22_TownBoy_Anim1 4 CertainlyData $342D SpriteData_Pose23_TownBoy_Anim2 CertainlyData $3434 SpriteData_Pose24_TownMonk_Anim1 CertainlyData $343B SpriteData_Pose25_TownMonk_Anim2 CertainlyData $3442 SpriteData_Pose26_TownFriend_Anim1 CertainlyData $3449 SpriteData_Pose27_TownFriend_Anim2 CertainlyData $3450 SpriteData_Pose28_TownSittingMan 4 CertainlyData $3274 SpriteData_Pose29_Fireball 4 CertainlyData $3202 SpriteData_Pose2A_Simon_SitWhip_Anim1 CertainlyData $3208 SpriteData_Pose2B_Simon_SitWhip_Anim2 CertainlyData $320E SpriteData_Pose2C_Simon_SitWhip_Anim3 CertainlyData $3249 SpriteData_Pose2E_Spider_Anim1 4 CertainlyData $3252 SpriteData_Pose2F_Spider_Anim2 CertainlyData $33B9 SpriteData_Pose30_ClueBook CertainlyData $347A SpriteData_Pose31_Gargoyle_Anim1 4 CertainlyData $348E SpriteData_Pose32_Gargoyle_Anim2 4 CertainlyData $2F7E SpriteData_Pose33_Dracula_ArmsClosed 4 CertainlyData $2FDD SpriteData_Pose34_Dracula_ArmsOpen 4 CertainlyData $349F SpriteData_Pose35_Knight_Pose1 4 CertainlyData $34B0 SpriteData_Pose36_Knight_Pose2 4 CertainlyData $352F SpriteData_Pose37_ThrownBone_Anim1 4 CertainlyData $3538 SpriteData_Pose38_ThrownBone_Anim2 CertainlyData $353D SpriteData_Pose39_ThrownBone_Anim3 4 CertainlyData $328A SpriteData_Pose3A_Garlic CertainlyData $34D1 SpriteData_Pose3B_CrystalBall CertainlyData $34F9 SpriteData_Pose3C_Slimey_FlatMaybe CertainlyData $3501 SpriteData_Pose3D_FlamingMan_Anim1 CertainlyData $3506 SpriteData_Pose3E_FlamingMan_Anim2 4 CertainlyData $33E6 SpriteData_Pose3F_TownZombie_Anim1 CertainlyData $33ED SpriteData_Pose40_TownZombie_Anim2 4 CertainlyData $3281 SpriteData_Pose41_Weapon_WaterBottle CertainlyData $34C4 SpriteData_Pose42_Weapon_OakStake CertainlyData $3376 SpriteData_Pose43_FloatingPlatform2 4 CertainlyData $358E SpriteData_Pose44_DeathBoss_Anim1 4 CertainlyData $35B1 SpriteData_Pose45_DeathBoss_Anim2 4 CertainlyData $37DB SpriteData_Pose46_Leech_Anim1_maybe 4 CertainlyData $37E3 SpriteData_Pose47_Leech_Anim2_maybe CertainlyData $33BE SpriteData_Pose48_SpiderNet 4 CertainlyData $3786 SpriteData_Pose49_Skull_Anim1 4 CertainlyData $378E SpriteData_Pose4A_Skull_Anim2 CertainlyData $2E14 SpriteData_Pose4B_Ending_SimonStanding 4 CertainlyData $2E49 SpriteData_Pose4C_Ending_SimonKneeling1 4 CertainlyData $2E71 SpriteData_Pose4D_Ending_SimonKneeling2 4 CertainlyData $2E9A SpriteData_Pose4E_Ending_SimonKneeling3 4 CertainlyData $36B6 SpriteData_Pose4F_MedusaHead_Anim1 4 CertainlyData $36BE SpriteData_Pose50_MedusaHead_Anim2 CertainlyData $3384 SpriteData_Pose51_FloatingPlatform3 4 CertainlyData $3294 SpriteData_Pose52_Whip_LeatherThorn_Anim1 4 CertainlyData $329F SpriteData_Pose53_Whip_LeatherThorn_Anim2 CertainlyData $32A4 SpriteData_Pose54_Whip_LeatherThorn_Part1Anim3 CertainlyData $32A9 SpriteData_Poses_55_68_Whip_LeatherThorn_Part2Anim3 CertainlyData $3793 SpriteData_Pose56_DragonBone_Head_open 4 CertainlyData $379B SpriteData_Pose57_DragonBone_Head_closed CertainlyData $360E SpriteData_Pose59_Mudman_Anim1 4 CertainlyData $3616 SpriteData_Pose5A_Mudman_Anim2 CertainlyData $361B SpriteData_Pose5B_Mudman_Anim3 CertainlyData $3285 SpriteData_Pose5C_SplashEffectWhenSimonDies 4 CertainlyData $3622 SpriteData_Pose5D_TwoHeadedCreature_Anim1 4 CertainlyData $3633 SpriteData_Pose5E_TwoHeadedCreature_Anim2 CertainlyData $363B SpriteData_Pose61_Leech_Anim1 4 CertainlyData $3643 SpriteData_Pose62_Leech_Anim2 CertainlyData $3648 SpriteData_Pose63_Wolf_Anim1 4 CertainlyData $3656 SpriteData_Pose64_Wolf_Anim2_Leap CertainlyData $365D SpriteData_Pose65_Werewolf_Anim1 CertainlyData $3664 SpriteData_Pose66_Werewolf_Anim2 CertainlyData $3600 SpriteData_Pose67_FishMan_Shoots 4 CertainlyData $328E SpriteData_Pose69_Whip_Chain_Anim1 CertainlyData $32AE SpriteData_Pose6A_Whip_Chain_Anim2 CertainlyData $32B3 SpriteData_Poses_6B_6C_70_Whip_Chain_Part1and2Anim3_MStar_Part1_Anim3 CertainlyData $32B8 SpriteData_Pose6D_Whip_MStarFire_Anim1 4 CertainlyData $32C3 SpriteData_Pose6E_Whip_MStarFire_Anim2 CertainlyData $32C8 SpriteData_Pose6F_Whip_MStar_Part2Anim3 4 CertainlyData $32D3 SpriteData_Pose71_Whip_Fire_Part1Anim3 4 CertainlyData $32DE SpriteData_Pose72_Whip_FIre_Part2Anim3 CertainlyData $32E3 SpriteData_Pose73_SimonGettingThrownAround CertainlyData $32EA SpriteData_Pose74_SimonCorpse 4 CertainlyData $3257 SpriteData_Pose75_SpiderLine_Anim1 CertainlyData $325B SpriteData_Pose76_SpiderLine_Anim2 CertainlyData $3260 SpriteData_Pose77_SpiderLine_Anim3 CertainlyData $32F8 SpriteData_Poses_78_A4_AC_Weapon_FlameThrown_Anim1_PileAnim1and9_HiddenAnim1_EnemyDeathAnim1 4 CertainlyData $3301 SpriteData_Pose79_Weapon_FlameThrown_Anim2_HiddenAnim2_EnemyDeathAnim2 4 CertainlyData $3050 SpriteData_Pose7A_DraculaProjectile_Anim1 4 CertainlyData $3058 SpriteData_Pose7B_DraculaProjectile_Anim2 4 CertainlyData $3060 SpriteData_Pose7C_DraculaProjectile_Anim3 4 CertainlyData $3068 SpriteData_Pose7D_DraculaProjectile_Anim4 4 CertainlyData $3397 SpriteData_Pose7E 4 CertainlyData $366B SpriteData_Pose7F_Ferryman_Part1 4 CertainlyData $3682 SpriteData_Pose80_Ferryman_Part2 4 CertainlyData $34D6 SpriteData_Pose81_FallingStone_pose1 4 CertainlyData $34DE SpriteData_Pose82_FellingStone_pose2 4 CertainlyData $34F0 SpriteData_Pose83 4 CertainlyData $34F5 SpriteData_Pose84 CertainlyData $3266 SpriteData_Pose85_SpiderLine_Anim4 4 CertainlyData $350F SpriteData_Pose86_MansionSlimey_GoingUp 4 CertainlyData $3514 SpriteData_Pose87_MansionSlimey_HangingInCeiling_Anim1 4 CertainlyData $351C SpriteData_Pose88_MansionSlimey_HangingInCeiling_Anim2 CertainlyData $3521 SpriteData_Pose89_MansionSlimey_BallShape 4 CertainlyData $352A SpriteData_Pose8A_MansionSlimey_GoingDown 4 CertainlyData $3364 SpriteData_Pose8B_Heart1 CertainlyData $3368 SpriteData_Pose8C_Heart2 4 CertainlyData $336D SpriteData_Pose8D_Heart3 4 CertainlyData $37FE SpriteData_Pose8E_ZombieHand_Anim1closed 4 CertainlyData $3806 SpriteData_Pose8F_ZombieHand_Anim2open CertainlyData $36C3 SpriteData_Pose90_Raven_Anim1 CertainlyData $36CA SpriteData_Pose91_Raven_Anim2 CertainlyData $36CF SpriteData_Pose92_Raven_Anim3 CertainlyData $380B SpriteData_Pose93_HoodedSkeleton_WalkAnim1 CertainlyData $3812 SpriteData_Pose94_HoodedSkeleton_WalkAnim2 CertainlyData $3819 SpriteData_Pose95_HoodedSkeleton_FistAnim1 4 CertainlyData $382A SpriteData_Pose96_HoodedSkeleton_FistAnim2 CertainlyData $36D6 SpriteData_Pose97_Gargoyle_FlyPose1 4 CertainlyData $36E7 SpriteData_Poses_98_9A_Gargoyle_FlyPose2and4 4 CertainlyData $36F8 SpriteData_Pose99_Gargoyle_FlyPose3 4 CertainlyData $36A2 SpriteData_Pose9C 4 CertainlyData $3831 SpriteData_Pose9D_BurningMan_Anim1 4 CertainlyData $383F SpriteData_Pose9E_BurningMan_Anim2 CertainlyData $34E6 SpriteData_Pose9F_MansionFlyingSpikeUp 4 CertainlyData $34EB SpriteData_PoseA0_MansionFlyingSpikeDown 4 CertainlyData $34C9 SpriteData_PoseA1_BodypartBag 4 CertainlyData $3161 SpriteData_PoseA2_Simon_Stand_WithShield 4 CertainlyData $3187 SpriteData_PoseA3_Simon_Duck_WithShield 4 CertainlyData $330A SpriteData_Poses_A5_AB_Weapon_FlamePile_Anim2and8 4 CertainlyData $3319 SpriteData_Poses_A6_AA_Weapon_FlamePile_Anim3and7 4 CertainlyData $332E SpriteData_Poses_A7_A9_Weapon_FlamePile_Anim4and6 4 CertainlyData $3343 SpriteData_PoseA8_Weapon_FlamePile_Anim5 4 CertainlyData $3279 SpriteData_PoseAD_Weapon_AllKnives CertainlyData $2EC2 SpriteData_Poses_AE_AF_MorningStarParts CertainlyData $31B4 SpriteData_PoseB0_Simon_Stairs_Pose1_WhipAnim1 CertainlyData $31BA SpriteData_PoseB1_Simon_Stairs_Pose1_WhipAnim2 CertainlyData $31C0 SpriteData_PoseB2_Simon_Stairs_Pose1_WhipAnim3 CertainlyData $31D1 SpriteData_PoseB4_Simon_Stairs_Pose2_WhipAnim1 CertainlyData $31D7 SpriteData_PoseB5_Simon_Stairs_Pose2_WhipAnim2 CertainlyData $31DD SpriteData_PoseB6_Simon_Stairs_Pose2_WhipAnim3 CertainlyData $339C SpriteData_PoseB8_Weapon_Diamond_Anim1 CertainlyData $33A1 SpriteData_PoseB9_Weapon_Diamond_Anim2 4 CertainlyData $33A9 SpriteData_PoseBA_Weapon_Diamond_Anim3 4 CertainlyData $33B1 SpriteData_PoseBB_Weapon_Diamond_Anim4 4 CertainlyData $3717 SpriteData_PoseBC_Mummy_Anim1 4 CertainlyData $372B SpriteData_PoseBD_Mummy_Anim2 4 CertainlyData $373F SpriteData_PoseBE_PlantIdle 4 CertainlyData $3754 SpriteData_PoseBF_PlantShooting 4 CertainlyData $37C3 SpriteData_PoseC0 CertainlyData $37C8 SpriteData_PoseC1 CertainlyData $37CD SpriteData_PoseC2_Maybe_Mudman 4 CertainlyData $37E8 SpriteData_PoseC3_Slimey_FlatAnim1 4 CertainlyData $37F0 SpriteData_PoseC4_Slimey_FlatAnim2 CertainlyData $37F5 SpriteData_PoseC5_Slimey_Leap 4 CertainlyData $368E SpriteData_PoseC6_Eyeball_Anim1 CertainlyData $3693 SpriteData_PoseC7_Eyeball_Anim2 CertainlyData $3698 SpriteData_PoseC8_CaveBat_Anim1 CertainlyData $369D SpriteData_PoseC9_CaveBat_Anim2 CertainlyData $3561 SpriteData_PoseCA_Carmilla_Anim1 4 # CB, CC, CD, CE are invalid CertainlyData $35D1 SpriteData_PoseCF_Death_SickleAnim1 4 CertainlyData $35D9 SpriteData_PoseD0_Death_SickleAnim2 CertainlyData $35DE SpriteData_PoseD1_Death_SickleAnim3 4 CertainlyData $35E6 SpriteData_PoseD2_Death_SickleAnim4 CertainlyData $3070 SpriteData_PoseD3_Altar_FireAnim1 4 CertainlyData $3091 SpriteData_Poses_D4_D6_Altar_FireAnim2and4 CertainlyData $309C SpriteData_PoseD5_Altar_FireAnim3 4 CertainlyData $2ECA SpriteData_PoseD7_Ending_DraculaGraveHandAnim1 4 CertainlyData $2ED8 SpriteData_PoseD8_Ending_DraculaGraveHandAnim2 4 CertainlyData $2EE6 SpriteData_PoseD9_Ending_DraculaGraveHandAnim3 4 CertainlyData $2EFB SpriteData_PoseDA_Ending_DraculaGraveHandAnim4 4 CertainlyData $2F10 SpriteData_PoseDB_Ending_DraculaGraveHandAnim5 4 CertainlyData $2F25 SpriteData_PoseDC_Ending_DraculaGraveHandAnim6 4 CertainlyData $2F40 SpriteData_PoseDD_Ending_DraculaGrave 4 CertainlyData $3559 SpriteData_PoseDE_Rosary 4 CertainlyData $3581 SpriteData_PoseDF_Unknown_MansionDroppingFireMaybe 4 CertainlyData $3586 SpriteData_Poses_E0_E1 4 CertainlyData $37A0 SpriteData_PoseE2 4 CertainlyData $37AE SpriteData_Poses_E3_E5 4 CertainlyData $37BC SpriteData_PoseE4 CertainlyData $3771 SpriteData_PoseE6_FlamingFlyingPirateSkeleton_Anim1 4 CertainlyData $377F SpriteData_PoseE7_FlamingFlyingPirateSkeleton_Anim2 CertainlyData $30BE SpriteData_PoseE8_Mansion_Sack CertainlyData $30C3 SpriteData_PoseE9_DraculaDeathExplosion_Anim1 4 CertainlyData $3104 SpriteData_Poses_EA_EC_DraculaDeathExplosion_Anim2and4 CertainlyData $3117 SpriteData_PoseEB_DraculaDeathExplosion_Anim3 4 CertainlyData $3709 SpriteData_PoseED_Gargoyle_WalkPose1 CertainlyData $3710 SpriteData_PoseEE_Gargoyle_WalkPose2 CertainlyData $33C7 SpriteData_PoseEF 4 CertainlyData $33CC SpriteData_PoseF0_PasswordCursor 4 CertainlyData $315B SpriteData_PoseF1_SomeOtherCursor 4 # SpriteConstructionData format: # Byte 0: &$80 = Flag: Uses reference, &$7F = Number of sprite elements (N) # Bytes 1-2: If uses reference, pointer to referred sprite. # Bytes 3-N: If uses reference, replaced tile indexes (size: N bytes) # Otherwise (doesn't use reference), N times a 3-4 byte record: # Byte: 2 * Y offset (signed int) + paletteflag # Byte: Sprite index # Byte: Palette index & attributes # Omitted if paletteflag was set. Then, $96 will be used instead. # Byte: X offset # (If facing left, treated with A = -A - 8) DataTable $2C30 $2C31 2 242 SpriteConstructionData DataTable $2D30 $2D31 2 242 SpriteConstructionData_Part2 CertainlyData $3846 Bank0unusedBegins # The SpriteConstructionData contains pointers. DataTable $3092 $3093 2 1 "" DataTable $30BF $30C0 2 1 "" DataTable $3105 $3106 2 1 "" DataTable $3173 $3174 2 1 "" DataTable $317A $317B 2 1 "" DataTable $3181 $3182 2 1 "" DataTable $3199 $319A 2 1 "" DataTable $31AE $31AF 2 1 "" DataTable $31B5 $31B6 2 1 "" DataTable $31BB $31BC 2 1 "" DataTable $31D2 $31D3 2 1 "" DataTable $31D8 $31D9 2 1 "" DataTable $31DE $31DF 2 1 "" DataTable $31E6 $31E7 2 1 "" DataTable $3203 $3204 2 1 "" DataTable $3209 $320A 2 1 "" DataTable $323C $323D 2 1 "" DataTable $3243 $3244 2 1 "" DataTable $3253 $3254 2 1 "" DataTable $3258 $3259 2 1 "" DataTable $325C $325D 2 1 "" DataTable $3261 $3262 2 1 "" DataTable $3282 $3283 2 1 "" DataTable $328B $328C 2 1 "" DataTable $328F $3290 2 1 "" DataTable $32A0 $32A1 2 1 "" DataTable $32A5 $32A6 2 1 "" DataTable $32AA $32AB 2 1 "" DataTable $32AF $32B0 2 1 "" DataTable $32B4 $32B5 2 1 "" DataTable $32C4 $32C5 2 1 "" DataTable $32DF $32E0 2 1 "" DataTable $32E4 $32E5 2 1 "" DataTable $3365 $3366 2 1 "" DataTable $3393 $3394 2 1 "" DataTable $339D $339E 2 1 "" DataTable $33BA $33BB 2 1 "" DataTable $33DA $33DB 2 1 "" DataTable $33E7 $33E8 2 1 "" DataTable $3412 $3413 2 1 "" DataTable $3419 $341A 2 1 "" DataTable $342E $342F 2 1 "" DataTable $3435 $3436 2 1 "" DataTable $343C $343D 2 1 "" DataTable $3443 $3444 2 1 "" DataTable $344A $344B 2 1 "" DataTable $34C5 $34C6 2 1 "" DataTable $34D2 $34D3 2 1 "" DataTable $34F6 $34F7 2 1 "" DataTable $3502 $3503 2 1 "" DataTable $351D $351E 2 1 "" DataTable $3539 $353A 2 1 "" DataTable $3547 $3548 2 1 "" DataTable $354C $354D 2 1 "" DataTable $35DA $35DB 2 1 "" DataTable $35E7 $35E8 2 1 "" DataTable $35EC $35ED 2 1 "" DataTable $3617 $3618 2 1 "" DataTable $361C $361D 2 1 "" DataTable $3634 $3635 2 1 "" DataTable $3644 $3645 2 1 "" DataTable $3657 $3658 2 1 "" DataTable $365E $365F 2 1 "" DataTable $3665 $3666 2 1 "" DataTable $368F $3690 2 1 "" DataTable $3694 $3695 2 1 "" DataTable $3699 $369A 2 1 "" DataTable $369E $369F 2 1 "" DataTable $36BF $36C0 2 1 "" DataTable $36C4 $36C5 2 1 "" DataTable $36CB $36CC 2 1 "" DataTable $36D0 $36D1 2 1 "" DataTable $370A $370B 2 1 "" DataTable $3711 $3712 2 1 "" DataTable $3780 $3781 2 1 "" DataTable $378F $3790 2 1 "" DataTable $379C $379D 2 1 "" DataTable $37BD $37BE 2 1 "" DataTable $37C4 $37C5 2 1 "" DataTable $37C9 $37CA 2 1 "" DataTable $37E4 $37E5 2 1 "" DataTable $37F1 $37F2 2 1 "" DataTable $3807 $3808 2 1 "" DataTable $380C $380D 2 1 "" DataTable $3813 $3814 2 1 "" DataTable $382B $382C 2 1 "" DataTable $3840 $3841 2 1 "" # # Paletteindex -> $00 # Ycoord -> $01 # Xcoord -> $02 # SpriteConstructionPtr -> $08 word # FacingLeft -> $10 CertainlyCode $2B93 SpriteConstructionInit CertainlyCode $2ADC SpriteConstructionProcess CertainlyCode $2B72 LoadFrom08_or_0D__if0Fnegative CertainlyCode $2B7C CertainlyCode $1C69D AppendSpriteTableByte RAM $33 InventoryCursorCompartmentSelection RAM $4F InventoryBodyPartSelection RAM $90 InventoryCursorSelected1 RAM $28 MerchantDealCost0011 RAM $29 MerchantDealCost1100 RAM $94 Temp94 RAM $95 Temp95 RAM $40 DialogActivationState # ^ Bits 5..7: Index to DialogExecuteAction # ^ Bits 0..4: Index to NPCtalkAction_Do (40..47); 0 otherwise # Index of item being sold # 20=laurel @ cost 50 *2 (sprite 58) # 21=laurel @ cost 2000 *2 (sprite 58) - if bought, nothing is acquired. # 22=garlic @ cost 50 *2 (sprite 6D) # 23=water @ cost 50 (sprite 57) # 24=dagger @ cost 50 (sprite 54) # 25=knife1 @ cost 100 (sprite 55) # 26=stake @ cost 50 (sprite 59) # 27=wcrystal@ cost 50 (sprite 5E) # 28=t.whip @ cost 100 (sprite 5B) # 29=c.whip @ cost 150 (sprite 5B) # 2A=m.star @ cost 200 (sprite 5B) # ^ This is all in table 1ED15 # MerchantDealInstructions puts them as: # 20=MiscItems1 | 0x04 # 21=MiscItems1 | 0x10 # 22=MiscItems1 | 0x08 # 23=MiscItems2 | 0x08 # 24=MiscItems2 | 0x01 # 25=MiscItems2 | 0x02 # 26=MiscItems2 | 0x40 # 27=BodyParts1 | 0x20 RAM $3C ActorSpawnControlUnknown3C RAM $41 Unknown41 RAM $42 Unknown42 RAM $43 Unknown43 # $44, unused? RAM $44 Unused44_IsIt RAM $45 Unknown45 # Bitmask of currently depressed buttons (and a copy thereof!) RAM $F1 Input_CurrentJoyButtonsOrig RAM $F7 Input_CurrentJoyButtonsWork # Bitmask of buttons that were newly pressed right at this frame (and a copy theroef) RAM $F3 Input_NewJoyButtonsOrig RAM $F5 Input_NewJoyButtonsWork RAM $F2 Input_CurrentJoyButtonsOrig_Player2 RAM $F8 Input_CurrentJoyButtonsWork_Player2 RAM $F4 Input_NewJoyButtonsOrig_Player2 RAM $F6 Input_NewJoyButtonsWork_Player2 # $F9 unused? # $FA unused? # $FB unused? # We need 4 bytes for NMI callback hack in Map renderer! # Maybe in $104-$107. RAM $30 CurrentLevelMapType RAM $50 CurrentLevelSceneNumber RAM $51 CurrentLevelSubRoomNumber RAM $53 CurrentXScrollingPositionPixels16bitLo RAM $186 CurrentXScrollingPositionPixels16bitLo_BackupForDeath # $53 is also used directly as the value for $2005. RAM $54 CurrentXScrollingPositionPixels16bitHi RAM $187 CurrentXScrollingPositionPixels16bitHi_BackupForDeath # $54 bit 1 is also used directly as the corresponding bit for $2000. RAM $56 CurrentYScrollingPositionPixels_Mod224 RAM $188 CurrentYScrollingPositionPixels_Mod224_BackupForDeath RAM $57 CurrentYScrollingPositionPixels_Div224 RAM $189 CurrentYScrollingPositionPixels_Div224_BackupForDeath RAM $5C CurrentYScrollingPosition_SomeOtherUnit # $5C seems to be Y scrolling position in 8-pixel units. RAM $5D CurrentYScrollingPosition_Related # $5D always seems to be $5C + 29. RAM $8C CurrentYScrollingPositionPixels_Mod256_v2 RAM $8D CurrentYScrollingPositionScreens_maybe_v2 RAM $39 Unknown39_From_XscrollingPositionDividedBy16 RAM $3B Unknown3B_From_8C8D_dividedBy16 CertainlyCode $1D278 Update_39_and_3B Comment $1D278 "$39 = CurrentXScrollingPositionPixels / 16 + 16*(CurrentXScrollingPositionScreens % 16)" Comment $1D278 "$3B = $8C / 16 + 16 * ($8D % 16)" RAM $4B ScrollingIsLocked RAM $10 Unknown10_CollisionAndScrollingTemp RAM $11 Unknown11_CollisionAndScrollingTemp RAM $12 Unknown12_CollisionAndScrollingTemp RAM $13 Unknown13_Horizontal_32pixelUnitForObject RAM $14 Unknown14_Horizontal_256pixelUnitForObject RAM $60 Unknown60_ScrollingRelated RAM $6A Unknown6A_ScrollingRelated RAM $194 Unknown194_PossiblyScrollingRelated RAM $195 Unknown195_PossiblyScrollingRelated # These backup settings are the last location where Simon was "safe". # It is used for restoring Simon after death. RAM $18A SimonScreenXCoord_BackupForDeath RAM $18B SimonScreenYCoord_BackupForDeath RAM $18C CurrentLevelMapType_BackupForDeath RAM $18D CurrentLevelSceneNumber_BackupForDeath RAM $18E CurrentLevelSubroomNumber_BackupForDeath RAM $100 Mapper1reg_reg0 # Constant $1E (%00011110) poked at $1C031 # Mirroring select: vertical (0,1,0,1) # ROM mapping: varying 16k at 8000 # VROM mapping: 2 * 4k separately RAM $101 Mapper1reg_reg1 # 4k VROM page at 0000 RAM $102 Mapper1reg_reg2 # 4k VROM page at 1000 RAM $1C Mapper1reg_reg3 # 16k ROM page at 8000 RAM $103 ProgrammingMapper RAM $197 RemainingLaurelPower RAM $4E CurrentLevelSceneNumber_BackupForExitRoom RAM $0434 CurrentWhipLevel RAM $0446 UnknownFlag0446 RAM $0458 CurrentXScrollingPositionPixels_BackupForExitRoom RAM $046A CurrentXScrollingPositionScreens_BackupForExitRoom RAM $047C CurrentYScrollingPositionPixels_Mod240_BackupForExitRoom RAM $048E Current_WhatUnknown57_BackupForExitRoom RAM $04A0 SimonScreenXCoord_BackupForExitRoom RAM $04B2 SimonScreenYCoord_BackupForExitRoom RAM $04C4 SwampFlashCounter RAM $04D6 UnknownFlag04D6 RAM $0300 ObjectCurrentPose1 RAM $0312 ObjectPaletteIndex RAM $0324 ObjectScreenYCoord RAM $0336 ObjectScreenYCoordFrac RAM $0348 ObjectScreenXCoord RAM $035A ObjectScreenXCoordFrac RAM $036C ObjectYSpeed RAM $037E ObjectYSpeedFrac RAM $0390 ObjectXSpeed RAM $03A2 ObjectXSpeedFrac RAM $03B4 ObjectType RAM $03C6 ObjectDialogStatusFlag # ^ $04 = hidden for dialog # ^ $40 = participating in dialog RAM $03D8 ObjectCurrentActionType RAM $03EA ObjectPoseChangeCounter RAM $03FC ObjectCurrentPose2 RAM $040E ObjectIndexToAutomaticSpriteDataTable RAM $0420 ObjectFacingLeft RAM $0432 ObjectUnknown432 RAM $0444 ObjectAIvar1 RAM $0456 ObjectAIvar2 RAM $0468 ObjectAIvar3 RAM $048C ObjectAIvar4 RAM $049E ObjectAIvar5 RAM $04B0 ObjectAIvar6 RAM $04C2 ObjectEnemyRemainingHP RAM $04D4 ObjectDialogTextIndex RAM $04F8 ObjectStunCounter # ^ Putting stuff in $501 or $502 causes a counter to decrease... RAM $5A0 ObstacleBufferDraculaDoor RAM $04EA KneelingCounter RAM $04EC Unknown04EC RAM $04ED Unknown04ED_finalConfrontationRelated RAM $04EE Unknown04EE # 04E6-04E9 seem to be unused. # 04EE is probably safe to remove! It is set in two locations to 8, but never read. # 04EF-04F7 seem to be unused during game. RAM $04EF PasswordActionState RAM $04F0 Password_CurrentCharacter_PPUmemoryOffset RAM $04F1 Password_CurrentCharacterPosition RAM $04F2 Password_CurrentCursor_Row RAM $04F3 Password_CurrentCursor_Column RAM $04F4 Password_CurrentCursorPosition RAM $04F5 Password_DelayBeforeContinuing RAM $04F6 Password_TempXorValue RAM $04F7 Password_TempAddValue RAM $047A Ending_PrimaryActionIndex RAM $047B Ending_TypeDependingOnDays RAM $047D Ending_CurrentActionType RAM $047E EndingStringCurrentStringIndex RAM $047F EndingStringCurrentCharacterIndex RAM $0480 Ending_RemainingDelayBeforeNextEndingActionIstaken RAM $0481 Ending_Action00_NextSubAction RAM $0482 Ending_RemainingDelayBeforeDraculaHandScene RAM $0483 Ending_RemainingDelayInDraculaHandScene RAM $0484 Ending_Unknown0484 # 0485-048B seem to be unused. CertainlyData $12CEE Password_CursorYCoordinateTable CertainlyData $12CF2 Password_CursorXCoordinateTable CertainlyCode $12CC5 Password_RecalculateCursorPosition CertainlyData $12CFC Password_CharacterPPUmemoryOffsets CertainlyCode $12B75 PasswordEntry_RenderCharacterOrBlank CertainlyCode $12BF9 PasswordEntry_EntersCharacter CertainlyCode $12C10 PasswordEntry_ClearsCharacter CertainlyData $12C66 Password_PreviousRowIndexTable_For_Column_9 CertainlyData $12C5E Password_PreviousRowIndexTable_For_Columns_0to8 CertainlyCode $121B4 Ending_ChoosePrimaryAction CertainlyCode $121CA Ending_PrimaryAction00 CertainlyCode $121F5 Ending_PrimaryAction01_TextRenderLoop CertainlyCode $121F8 Ending_PrimaryAction02 CertainlyCode $1222F Ending_PrimaryAction03_BeginRumble CertainlyCode $1225A Ending_PrimaryAction04 CertainlyCode $1228C Ending_PrimaryAction05 CertainlyCode $122A3 Ending_PrimaryAction06 CertainlyCode $122C2 Ending_PrimaryAction07_ResetGame_GotoPlotAction0E CertainlyData $12309 DifferentEndingTextsBeginIndexes CertainlyCode $1216A BeginEnding CertainlyCode $123FC Ending_PlayDraculaHandScene CertainlyCode $122EB EndingAction00_DecideNextEndingText CertainlyCode $1231B EndingAction01_BeginStringRender CertainlyCode $12329 EndingAction02_StringRender CertainlyCode $1242E EndingAction03_SimplyElapseDelay CertainlyCode $123D8 EndingAction04_DoneWithSongAndText CertainlyCode $122F7 EndingAction00_SubAction00_BeginEndingText CertainlyCode $1230C EndingAction00_SubAction01_BeginToast CertainlyCode $1231A EndingAction00_SubAction02_DoNothing CertainlyCode $12366 EndingString_01_unknown_meaning CertainlyCode $12394 EndingString_02_end_line CertainlyCode $123BA EndingString_03_end_screen CertainlyCode $123A2 EndingString_04_end_text CertainlyCode $1237A EndingString_05_display_day10 CertainlyCode $1238B EndingString_06_display_day01 CertainlyCode $68F8 WestBridge_TestInventoryContents_AllBodyParts_BlueCrystal_AndCross CertainlyCode $6767 InhibitScrollingIf_Scene_02_05_01_YubaLake CertainlyCode $6785 CheckKneelingWithBlueCrystal_EnableScroll_YubaLake CertainlyCode $6D96 InhibitScrollingIf_Scene_03_03_03_UtaLake CertainlyCode $6DB4 CheckKneelingWithBlueCrystal_EnableScroll_UtaLake CertainlyCode $6914 CheckKneelingWithRedCrystal CertainlyCode $1CE4E CheckKneelingWithCrystal_ThoseThreeLocations CertainlyCode $1CDAB InhibitScrollingIf_Scene_00_07plus_00_ChurchesVendorsEtc CertainlyCode $1D2BE UpdatePPUscrollingRegisterVariables Comment $1D2BE "This complicated mechanism accomplishes the following:" Comment $1D2BE "PPUscrollingPositionHi = (0xE3 + var57 * 224 + var56) mod 240" Comment $1D2BE "PPUscrollingPositionLo = var53" Comment $1D2BE "PPUdesiredRegister2000 = (PPUdesiredRegister2000 & 0xFC) | (var54 & 1)" CertainlyCode $1D3C0 CheckIfBoneHeld_SetSimonAutomaticSprite_To_Table_Atimes2plusBone CertainlyCode $1D623 CheckIfNailHeld_WhipWallBreaking CertainlyCode $1D3D3 FindIfThereIsAFloatingPlatform CertainlyCode $1DCCA DeleteSimonWhipObject CertainlyCode $1F275 ItemStatusScreen_BodyPartsNormalize RAM $0520 PasswordLevel RAM $0521 PasswordCurrentDayBCD RAM $0522 PasswordLaurelsGarlics RAM $0523 PasswordBodyparts RAM $0524 PasswordMiscItems1 RAM $0525 PasswordMiscItems2 RAM $0526 PasswordWhipLevel RAM $0527 PasswordChecksumHi RAM $0528 PasswordChecksumLo RAM $0529 PasswordXorAdd RAM $0530 PasswordCode0 RAM $0531 PasswordCode1 RAM $0532 PasswordCode2 RAM $0533 PasswordCode3 RAM $0534 PasswordCode4 RAM $0535 PasswordCode5 RAM $0536 PasswordCode6 RAM $0537 PasswordCode7 RAM $0538 PasswordCode8 RAM $0539 PasswordCode9 RAM $053A PasswordCodeA RAM $053B PasswordCodeB RAM $053C PasswordCodeC RAM $053D PasswordCodeD RAM $053E PasswordCodeE RAM $053F PasswordCodeF RAM $0540 PasswordInputtedCode0 RAM $0541 PasswordInputtedCode1 RAM $0700 PPUsendQueue RAM $06FF PPUsendQueueMinus1 RAM $06FE PPUsendQueueMinus2 RAM $06FD PPUsendQueueMinus3 RAM $0022 PPUsendQueueHead # PPU send queue format: # $00 # End of send queue. Queue is cleared. # $01 BEint16bitWord data... $FF # $2000 is configured for 1-byte increments. # Word is put in $2006. # Data is put to $2007. # To include literal $FF in data, put $FF and any byte >= $05. # $02 BEint16bitWord data... $FF # $2000 is configured for 32-byte increments. # Word is put in $2006. # Data is put to $2007. # To include literal $FF in data, put $FF and any byte >= $05. # $03 BEint16bitWord Count Byte # $2000 is configured for 1-byte increments. # Word is put in $2006. # Byte is put in $2007, Count times (>= 1). # $04 BEint16bitWord BitNo Bits # $2000 is configured for 1-byte increments. # Temp = PPUmemory[Word] # Temp &= BitMask # Temp |= Bits # PPUmemory[Word] = Temp # Where BitMask = from table $FC,$F3,$CF,$3F,$F0,$0F according to BitNo. Comment $1CBE1 "Process $04 BEint16bitWord BitNo Bits" Comment $1CBD1 "Process $03 BEint16bitWord Count Byte" Comment $1CBC0 "Process FF-terminated string" Comment $1CBBB "Send literal FF" Comment $1CBAE "Done. Clear the queue." JumpTable $C1E2 $C1E3 2 1 JumpPointerC1E2 1 CertainlyCode $1C046 _NMI CertainlyCode $1FFD0 _Reset CertainlyCode $1C096 _IRQ JumpTable $1FFFA $1FFFB 2 3 SystemVectorTable CertainlyCode $1C5EF ClearMemory_300_to_3C5 CertainlyCode $1C5F7 ClearMemory_XA_256bytes_unused CertainlyCode $1C5FB ClearMemory_20_to_97_UNUSED CertainlyCode $1C601 ClearMemory_30_to_97_UNUSED CertainlyCode $1C605 ClearMemory_X00_Ybytes_UNUSED CertainlyCode $1C243 UnusedC243 CertainlyCode $1C825 UnusedC825 CertainlyCode $1E07E UnusedE07E CertainlyCode $1C607 ClearMemory_XA_Ybytes CertainlyCode $1EAFD Convert_6A_13_14_into_NameTableAddress_and_AttributeTableAddress CertainlyCode $1EB35 Convert_6A_13_14_into_NameTableAddress Comment $1EB40 "A = $6A mod 30" Comment $1EB4C "$5F:$5E = ($6A mod 30) * 32" Comment $1EB5B "$5F:$5E += ($13 * 4) Comment $1EB6D "$5F:$5E += (($14 & 1) ? 0x24 : 0x20)" CertainlyCode $1EB00 Convert_NameTableAddress_To_AttributeTableAddress Comment $1EB06 "$95 = $5F & 3" Comment $1EB14 "$95:A = ($5F & 3) * 4096 + $5E * 16" Comment $1EB1A "000000ff eeeeeeee" Comment $1EB1A "00000ffe eeeeeee0" Comment $1EB1A "0000ffee eeeeee00" Comment $1EB1A "000ffeee eeeee000" Comment $1EB1A "00ffeeee eeee0000" Comment $1EB1A "00ffe000 --------" Comment $1EB1A "$95 = ($5F & 3) * 16 + (($5E >> 4) & 8)" Comment $1EB20 "A = ($5E >> 2) & 7" Comment $1EB28 "$60 = 0xC0 + (($5E >> 2) & 7) + (($5E >> 4) & 8) + ($5F & 3) * 16" Comment $1EB34 "$61 = ($5F < 36 ? 0x23 : 0x27)" CertainlyCode $1EA17 Convert_NameTableAddress_To_ObstacleBufferAddress Comment $1EA17 "$0520-$06FF is used as a buffer for obstacles in currently loaded screens." Comment $1EA17 "Return value: 0x520 + (value & 0x3FF)/4 + 0xF0*!!(value & 0x400)" Comment $1EA17 "Bits in $520 have the following meanings:" Comment $1EA17 " 0 = background decorations" Comment $1EA17 " 1 = probably breakable bricks" Comment $1EA17 " 2 = solid" Comment $1EA17 " 3 = door (entrance). Also swamp." CertainlyCode $1EAA6 Split_6A_into_10_11_and_12 Comment $1EAA6 "$11 = ($6A >> 2) mod 7" Comment $1EAA6 "$12 = ($6A >> 2) div 7" Comment $1EAA6 "$10 = ($6A & 3)" CertainlyCode $1E979 LoadObstacleBufferBits Comment $1EA14 "This redundant-seeming load serves to load Z & N with A's content." Comment $1EA14 "ora #0 would be faster by 1 cycle." CertainlyCode $1E6D1 SubstituteBlockCheckFakeBlocks Comment $1E54A "Load tile that is drawn when scrolling vertically" Comment $1E855 "Load tile that is drawn when scrolling horizontally or when redrawing full screen" Comment $1F452 "Load tile that is drawn when restoring under a dialog box" Comment $1E6F0 "Stupid code: Would be faster to 'cmp $0D' without storing to temp" Comment $1E6FF "Stupid code: This bpl and .byte $C8,$C8 is redundant" Comment $1E71B "Stupid code: This table contains zeros." Comment $1E71B "The whole part from $E6F8 to $E71E" Comment $1E71B "could be replaced with simply 'lda #0' and 'rts'." Comment $1E721 "Stupid code: Why check the whole list? $185 contains the length of list." Comment $1E721 "Stupidly inefficient to check all $20 items." Comment $1EB6E "If the last drawn tile was < byte1, use $00." Comment $1EB6E "If < byte2, use $C0." Comment $1EB6E "If < byte3, use $80. Comment $1EB6E "Otherwise use $40." CertainlyCode $1EB6E AddTileAttributesTo94 Comment $1EB70 "This instruction is redundant and costs 4 cycles with no benefit:" CertainlyCode $1E72C LoadCurrentScreenHorizontalExtentsForScrolling_StoreTo58and59 Comment $1E72C "$0000 = CurrentXScrollingPositionPixels16bit - 128" Comment $1E72C "$93 = ($0000 < 0 ? -8 : 0) (used for signed integer correction)" Comment $1E72C "$0058 = (CurrentXScrollingPositionPixels16bit - 128) / 32 (signed)" Comment $1E72C "$0059 = (CurrentXScrollingPositionPixels16bit + 96) / 32" CertainlyCode $1E75B Ram58x_becomes_Word0000_lsr_5 CertainlyCode $1EAC1 LoadCurrentScreenVerticalExtentsForScrolling_StoreTo5Cand5D Comment $1EAC1 "$5C = ($56 + $57 * 224 - 8 ) / 8" Comment $1EAC1 "$5D = ($56 + $57 * 224 + 224) / 8" Comment $1EAE2 "$5C[x] = A / 8 + Y * 28" CertainlyCode $1DD8B SetObjectIndexToAutomaticSpriteDataTable_to_A_and_PaletteIndexTo0 CertainlyCode $1DD92 SetObjectIndexToAutomaticSpriteDataTable_to_A CertainlyCode $1DD87 SetObjectIndexToAutomaticSpriteDataTable_to_A_for_Simon CertainlyCode $1DED8 SetObjectIndexToAutomaticSpriteDataTable_to_A_and_PaletteIndexTo0_and_RefreshSprite CertainlyCode $1D36F SimonDamageKnockBack CertainlyCode $47DE HandleSimonAndEnemyObjectCollision CertainlyCode $C02B SimonSetFacingToInverseOfA Comment $1DDA2 "Byte 0: Number of animation frames - 1" Comment $1DDA2 "Byte 1: First sprite number" Comment $1DDA2 "Byte 2: Number of frames between toggle" MaybeData $1DDA2 AutomaticSpriteDataTable 3 JumpTable $1D99F $1D9A0 2 1 JumpPointerD99F 1 DataTable $1DD9E $1DD9F 2 1 AutomaticSpriteDataTablePointer0 0 DataTable $1DDA0 $1DDA1 2 1 AutomaticSpriteDataTablePointer1 -256 CertainlyCode $1DD2A ObjectLoadAutomaticSpriteNumber CertainlyCode $1F403 "" 0 $3 CertainlyCode $1CD63 "" 0 $3 Comment $1CD72 "$30 = 2" Comment $1CD7C "$30 = 2, $50 = 2...5" Comment $1CD7F "$30 != 2" Comment $1CD83 "$30 = 3" RAM $4000 APU_HW__4000_Reg0 RAM $4004 APU_HW__4004_Reg0_channel1 RAM $4008 APU_HW__4008_Reg0_channel2 RAM $400C APU_HW__400C_Reg0_channel3 RAM $4001 APU_HW__4001_Reg1_SweepControl RAM $4002 APU_HW__4002_Reg2_WaveLengthLo RAM $4003 APU_HW__4003_Reg3_WaveLengthHi RAM $400B APU_HW__400B_Reg3_channel2_WaveLengthHi RAM $4010 APU_HW__4010_PCM_IRQenableAndWaveLength RAM $4012 APU_HW__4012_PCM_StartAddress RAM $4013 APU_HW__4013_PCM_SampleLength RAM $4015 APU_HW__4015_EnableChannelsMask