Post by Molyb on Jun 12, 2021 19:35:32 GMT
Something that is noted in the primary disassembly notes is that you can change the murder wall speed per level. The code for that should look something like:
The value $20000 on the third line is the default murder wall speed, and the three lines after that establish a single-level exception to the rule, where the speed changes to $18000. I diverge from the disassembly guide slightly and modify these lines to
which can then copy-pasted with different level numbers and murder wall speeds. The guide recommends putting any new murder wall max speed values/levels at the start of loc_140BE, which may be a better idea for some reason, but I'm very far from a disassembly expert so I couldn't say.
However, that's not why I'm posting this. In Hills of the Warrior 1, the murder wall can fall substantially further behind you than it can in Forced Entry or Bloody Swamp. I believe that this is because of the following lines at the end of loc_72E2:
You can change the number on the first line to represent the level you want to have this increased distance between the player and the murder wall apply to (for example, to apply it to bloody swamp instead, change #8 to #$3E). Additionally, you can change how much the distance can increase by changing the #$80 on the last line to a different number. It seems like this value can be anything between -$80 and $7F7F without doing some really weird stuff in-game. And, as before, you should be able to apply this to as many levels as you want.
Murderwall:
move.b #1,($FFFFFAC0).w
move.b #0,($FFFFFABF).w
move.l #$20000,(MurderWall_max_speed).w ; Bloody Swamp and Forced Entry
cmpi.w #L_Hills_of_the_Warrior_1,(Current_LevelID).w
bne.s loc_140BE
move.l #$18000,(MurderWall_max_speed).w ; Hills of the Warrior 1
The value $20000 on the third line is the default murder wall speed, and the three lines after that establish a single-level exception to the rule, where the speed changes to $18000. I diverge from the disassembly guide slightly and modify these lines to
cmpi.w #8,(Current_LevelID).w
bne.s +
move.l #$18000,(MurderWall_max_speed).w
+
which can then copy-pasted with different level numbers and murder wall speeds. The guide recommends putting any new murder wall max speed values/levels at the start of loc_140BE, which may be a better idea for some reason, but I'm very far from a disassembly expert so I couldn't say.
However, that's not why I'm posting this. In Hills of the Warrior 1, the murder wall can fall substantially further behind you than it can in Forced Entry or Bloody Swamp. I believe that this is because of the following lines at the end of loc_72E2:
cmpi.w #8,(Current_LevelID).w
bne.s loc_7316
move.w #$80,d1
You can change the number on the first line to represent the level you want to have this increased distance between the player and the murder wall apply to (for example, to apply it to bloody swamp instead, change #8 to #$3E). Additionally, you can change how much the distance can increase by changing the #$80 on the last line to a different number. It seems like this value can be anything between -$80 and $7F7F without doing some really weird stuff in-game. And, as before, you should be able to apply this to as many levels as you want.