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 :/
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.
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:

1. Giant Springboard Pickup CLEAR

2. Regular switch w/Bowser Battle

3. Pipe-enter-off-moving-sprite CLEAR

4. Snow effect restart in the same area CLEAR

5. Balloon Boo "Normal Boo" mode hitbox

6. Giant Swooper's Disappearing Hitbox

7. Shell Mario Roll on D-Pad Down only CLEAR

8. Mini Mario behaves correctly under low gravity CLEAR


Quite the improvement I say.
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
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
Post edited

Hopefully this time everything meshes well together.
Posted on 06-25-16, 11:54 am


Karma: 19807
Posts: 393/1100
Since: 04-02-13
Yep, it appears to work excellently now.
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.
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.

1. Giant Springboard Pickup CLEAR

2. Regular switch w/Bowser Battle

3. Pipe-enter-off-moving-sprite CLEAR

4. Snow effect restart in the same area CLEAR

5. Balloon Boo "Normal Boo" mode hitbox

6. Giant Swooper's Disappearing Hitbox CLEAR

7. Shell Mario Roll on D-Pad Down only CLEAR

8. Mini Mario behaves correctly under low gravity CLEAR
Posted on 06-26-16, 07:50 pm


Karma: 19807
Posts: 394/1100
Since: 04-02-13
Amaizing.
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.
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
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.
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.
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.
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.
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?
Posted on 06-27-16, 03:26 pm


Karma: 19807
Posts: 399/1100
Since: 04-02-13
...There is?
Oh. :l
Posted on 06-27-16, 04:17 pm
Birdo


Karma: 2789
Posts: 1634/2091
Since: 06-26-11
I only just noticed it too
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.
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