MeroMero |
Posted on 06-24-16, 09:23 pm
|
Death by cuteness
Karma: 6589 Posts: 427/598 Since: 05-01-13 |
This shouldn't have happened since the patch calculates Mario vertical position automatically from the entrance vertical position, which should prevent that kind of glitch.
Not only that, but the only 2 possible vertical positions for Mario are either Entrance Ypos+16 (used for Mini-pipes) or Entrance Ypos+32. I was worried for a moment that the Bouncing Bricks would set the "Walking on Warp Cannon" flag to 0×10 too, but thankfully that wasn't the case. But what you showed equates to Entrance Ypos+48, and the only way I could simulate what you got was by setting the entrance 1 tile lower :/ |
skawo |
Posted on 06-24-16, 09:26 pm
|
Karma: 19807 Posts: 391/1100 Since: 04-02-13 |
Shit. Yes it was.
I'm an idoit. |
MeroMero |
Posted on 06-24-16, 09:29 pm (rev. 1 by MeroMero on 06-24-16, 09:30 pm)
|
Death by cuteness
Karma: 6589 Posts: 428/598 Since: 05-01-13 |
So with your Springboard patch, that makes 5 out of 8 now:
2. Regular switch w/Bowser Battle 5. Balloon Boo "Normal Boo" mode hitbox 6. Giant Swooper's Disappearing Hitbox Quite the improvement I say. |
skawo |
Posted on 06-24-16, 09:46 pm
|
Karma: 19807 Posts: 392/1100 Since: 04-02-13 |
Ah. Well.
Connected pipes are broken, it seems. So are pipe cannons. https://www.youtube.com/watch?v=zVWj_2_y6mY |
MeroMero |
Posted on 06-25-16, 11:34 am (rev. 1 by MeroMero on 06-25-16, 11:39 am)
|
Death by cuteness
Karma: 6589 Posts: 429/598 Since: 05-01-13 |
skawo |
Posted on 06-25-16, 11:54 am
|
Karma: 19807 Posts: 393/1100 Since: 04-02-13 |
Yep, it appears to work excellently now.
|
MeroMero |
Posted on 06-25-16, 12:00 pm
|
Death by cuteness
Karma: 6589 Posts: 430/598 Since: 05-01-13 |
*sigh of relief*
On a side note, your video has actually impressed me on the part where the pipe cannon was willing to wait for Mario to actually get inside. |
MeroMero |
Posted on 06-26-16, 05:45 pm (rev. 3 by MeroMero on 06-26-16, 08:24 pm)
|
Death by cuteness
Karma: 6589 Posts: 431/598 Since: 05-01-13 |
Swooper fix for ASM-Template:
repl_0213C380_ov_1B:
LDR R0, [R4, #8]
LDR R12, [R4, #0x60]
TST R0, #0x100 @Check if Shifting flag is set
SUBEQ R12, R12, #0x8000 @If yes then shift Swooper 1/2 tile to the right
STR R12, [R4, #0x60]
STR R12, [R4, #0x70]
BX LR
repl_0213C39C_ov_1B:
MOV R1, #0x10000 @Dynamically change hitbox data for Big Swooper
STR R1, [R2, #8]
STR R1, [R2, #0xC]
MOV R1, #0
STR R1, [R2, #4]
MOV R1, R4
BX LR
repl_0213C1DC_ov_1B:
LDR R3, [SP, #0xC]
TST R4, #1 @Check if Big flag is set
ADDEQ PC, PC, #0x64 @If not R4=0 then return
LDRH R4, [R5, #0xC4]
CMP R4, #0x100 @Check if Swooper began its 2nd phase
ADDNE PC, PC, #0x58 @If not R4=0 then return
LDR R4, [R5, #0xD4]
ADD R4, R4, #0x1000
CMP R4, #0x1000 @Check if current Swooper frame is one of the 16 allowed frames
ADDCS PC, PC, #0x48 @If greater than or equal (unsigned) then R4=0 and return
LDR R4, [R5, #0xD0]
CMP R4, #0 @Check if Swooper goes right or left
LDR R4, [R5, #0x134] @Load Hitbox Horizontal Shifting value
SUBLT R4, R4, #0x800 @If it goes left subtract 2048
ADDGT R4, R4, #0x800 @If it goes right add 2048
ADDGE PC, PC, #0x10
RSB R4, R4, #0
CMP R4, #0x8000 @Check if H.H.S. is less than -32768
MOVGE R4, #0x8000 @If true cap at -32768
RSB R4, R4, #0
ADD PC, PC, #4
CMP R4, #0x8000 @Check if H.H.S. is more than 32768
MOVGE R4, #0x8000 @If true cap at 32768
STR R4, [R5, #0x134] @Store H.H.S.
LDR R4, [R5, #0x138] @Load Hitbox Vertical Shifting value
ADD R4, R4, #0x1000 @Add 4096
CMP R4, #0x10000 @Check if H.V.S. is more than 65536
MOVGE R4, #0x10000 @If true cap at 65536
STR R4, [R5, #0x138] @Store H.V.S.
MOV R4, #0
BX LR @Return Actor data: Nybble 9 (NEW): Shift 1/2 tile to the right if value is odd. Nybble 11: Double Swooper length, height and width if value is 1. 2. Regular switch w/Bowser Battle 5. Balloon Boo "Normal Boo" mode hitbox |
skawo |
Posted on 06-26-16, 07:50 pm
|
Karma: 19807 Posts: 394/1100 Since: 04-02-13 |
Amaizing.
|
MeroMero |
Posted on 06-26-16, 08:25 pm
|
Death by cuteness
Karma: 6589 Posts: 433/598 Since: 05-01-13 |
No wait… you posted before I could edit.
Nothing alarming, the code actually works but I would rather have the 1/2 tile shift be done within overlay 27 rather than overlay 0 to keep continuity with the Swooper code if you don't mind, hence the small update. |
skawo |
Posted on 06-27-16, 07:03 am (rev. 1 by skawo on 06-27-16, 07:10 am)
|
Karma: 19807 Posts: 395/1100 Since: 04-02-13 |
I have no idea what to say, but;
https://youtu.be/OAwejbjzdoc ...it seemingly works fine everywhere else :l Deleting this entrance and replacing it fixed the issue. Perhaps it has something to do with the order of entrances on the list, which ended up like so: https://dl.dropboxusercontent.com/u/4558852/Screenshot%202016-06-27%2009.10.25.png |
MeroMero |
Posted on 06-27-16, 11:00 am (rev. 1 by MeroMero on 06-27-16, 11:03 am)
|
Death by cuteness
Karma: 6589 Posts: 434/598 Since: 05-01-13 |
Hopefully
Well… indeed the issue was the entrance order, Entrance ID 5 was on Entrance row 4 but when reloading the area the 04 that was written was then interpreted as an Entrance ID instead of the Entrance row, hence the problem. The placeholder entrance row is now written at offset 0×20CA8FE instead, which should prevent the issue altogether. Also added a new small check for the Connected Pipe ID which reads the Connected pipe flag to prevent a hypothetical issue with the Connected Pipe ID trick to load any Area. |
skawo |
Posted on 06-27-16, 11:17 am (rev. 1 by skawo on 06-27-16, 11:52 am)
|
Karma: 19807 Posts: 396/1100 Since: 04-02-13 |
...Seems to work.
EDIT: Added a patch which prevents the Zoom Sprite from dying and giving you points from seemingly nowhere on Level Completion. As it is in Overlay 10, remember to apply it to "10.bin" in the BAK folder if you're using ASM Template patches, or it'll get overwritten every time you build. |
MeroMero |
Posted on 06-27-16, 12:42 pm (rev. 1 by MeroMero on 06-27-16, 12:42 pm)
|
Death by cuteness
Karma: 6589 Posts: 435/598 Since: 05-01-13 |
Balloon Boo fix for ASM-Template:
repl_02175F08_ov_47:
LDRB R0, [R5, #8]
CMP R0, #0x10 @Check if byte 4 of main Actor Data is less than 16
ADDCC PC, PC, #0x28 @If true then load R1 and return
TST R0, #1 @Check R0 parity
MOVEQ R0, #0x2000 @If even then make Balloon Boo big
MOVNE R0, #0x1000 @If odd then make Balloon Boo small
MOV R1, #0x12 @R1=18
MUL R1, R0, R1 @Multiply by 18 to get the hitbox value
STR R0, [R5, #0xF0] @Store Balloon Boo new length
STR R0, [R5, #0xF4] @Store Balloon Boo new height
STR R0, [R5, #0xF8] @Store Balloon Boo new width
STR R1, [R5, #0x4EC] @Store Balloon Boo new Hitbox Vertical Shifting
STR R1, [R5, #0x4F0] @Store Balloon Boo new Hitbox length
STR R1, [R5, #0x4F4] @Store Balloon Boo new Hitbox height
LDRB R1, [R5, #0x2BD]
BX LR Actor data: Nybble 10: Make Balloon Boo act like a Boo if value is 1 or above. Nybble 11 (NEW): Halves Balloon Boo length, height and width if value is odd and only if nybble is not equal to 0. I didn't update the model though, it can be done in theory since there are 2 textures for Balloon Boo. |
skawo |
Posted on 06-27-16, 12:44 pm (rev. 1 by skawo on 06-27-16, 02:43 pm)
|
Karma: 19807 Posts: 397/1100 Since: 04-02-13 |
I'll try to write the code to replace the model later.
|
Hiccup |
Posted on 06-27-16, 03:20 pm (rev. 1 by Hiccup on 06-27-16, 03:20 pm)
|
Birdo
Karma: 2789 Posts: 1633/2091 Since: 06-26-11 |
@skawo
Question that came into my mind when using NSMBe, for some reason: What is the point of the "shorter coin outline change" when there is a "shorter change" version of the coin outline already? Or are you changing the slow one to be less slow and the fast one to be even faster? |
skawo |
Posted on 06-27-16, 03:26 pm
|
Karma: 19807 Posts: 399/1100 Since: 04-02-13 |
...There is?
Oh. :l |
Hiccup |
Posted on 06-27-16, 04:17 pm
|
Birdo
Karma: 2789 Posts: 1634/2091 Since: 06-26-11 |
I only just noticed it too
|
MeroMero |
Posted on 06-29-16, 12:51 pm (rev. 3 by MeroMero on 06-29-16, 09:24 pm)
|
Death by cuteness
Karma: 6589 Posts: 438/598 Since: 05-01-13 |
Springboard fix for ASM-Template:
repl_021551C4_ov_36:
MOV R1, #1 @Mario will throw both Big and Small Springboard the same way
BX LR @Also has the added benefit of despawning a Big Springboard when thrown into a pit
repl_0215524C_ov_36:
CMP R5, #0x10000
MOVGE R5, #0x10000
MOVLT R5, #0x8000
STR R5, [R4, #0x4D4] @Equalize hitbox's length and height to the Springboard's
STR R5, [R4, #0x4D8] @"
LDR R1, =0x216C030
MOV R12, #0
STR R12, [R1] @Make Top collision for Big Springboard equal to 0
STR R12, [R1, #4] @"
STR R12, [R1, #0x30] @Make Bottom collision for Big Springboard equal to 0
STR R12, [R1, #0x34] @"
MOV R12, #0x1000
STR R12, [R1, #0x10] @Shave 1/32nd of Big Springboard height to get bottom Side collision
STR R12, [R1, #0x20] @Shave 1/16th of Small Springboard height to get bottom Side collision
MOV R12, #0xF000
STR R12, [R1, #8] @Top collision at 15/16th of a tile beginning from the bottom (like a Small Spgbrd.)
STR R12, [R1, #0x24] @Shave 1/16th of Small Springboard height to get top Side collision
MOV R12, #0x10000
STR R12, [R1, #0x18] @Distance between Right and Left collision is equal to Big Springboard length
MOV R12, #0x1F000
STR R12, [R1, #0x14] @Shave 1/32nd of Big Springboard height to get top Side collision
BX LR I know skawo already did the Big Springboard-pickup fix, but not only does this one include skawo's fix, but it also includes 2 other bug fixes: _Side collision for Small Springboard was fixed and will allow it to pass below a 1 tile high ceiling* _Big Springboard no longer gets stuck in walls due to the Top and Bottom Collision being equal to 0 *What happened is that the Side Collision height was indeed the same as the Springboard's, but began at 3/16th of Springboard's height to end at 19/16th of said object height, hence the reason it wouldn't get through a 1 tile high passage! Now the Side Collision begin at 1/16th of Springboard's height and ends at 15/16th of said object height's. |
skawo |
Posted on 06-29-16, 12:57 pm (rev. 3 by skawo on 06-29-16, 01:14 pm)
|
Karma: 19807 Posts: 400/1100 Since: 04-02-13 |
That's excellent, once again.
Only problem; the springboard will now go through tiles if it's placed in a 1-tile space https://www.youtube.com/watch?v=467aEgbt1g8 Dealt with it through level design means, but y'know |