Posted on 02-07-16, 05:22 pm in New Actor discoveries (and extra info on old ones) (rev. 2 by  MeroMero on 02-07-16, 07:59 pm)
Death by cuteness

Karma: 6564
Posts: 346/598
Since: 05-01-13
Hidden parameters on existing sprites found thanks to No$GBA Debugger:

Sprite 277
Nybble 4 is actually the Layer priority.
It can accept values between 0 and F, a modulo 3 is applied.
0: Model layer 1: Tileset layer 2: Foreground layer 3: Background layer


Sprite 93
Nybble 9:
A positive value means the sprite will be shifted by X pixels to the right.
A negative value means the sprite will be shifted by X pixels to the left.
To get the actual value used by the game, multiply by 4096 (0×1000).
0: 0 1: -32 2: +32 3: +8192 4: +393220 5: -393208 6: -131060 7: 0 8: -32 9: -64 A: -96 B: 0 C: -4 D: -8 E: -12 F: -16


Nybble 10:
A positive value means the sprite will be shifted by X pixels up.
A negative value means the sprite will be shifted by X pixels down
To get the actual value used by the game, multiply by 4096 (0×1000).
0: 0 1: -32 2: -64 3: -96 4: 0 5: -4 6: -8 7: -12 8: -16 9: -24 A: -20 B: 0 C: -4 D: 4 E: -8 F: 8
Posted on 02-08-16, 08:17 pm in New Actor discoveries (and extra info on old ones)
Death by cuteness

Karma: 6564
Posts: 347/598
Since: 05-01-13
Batch 3:

Sprite 28
Nybble 4: Behavior
0:Default,
4:Pipe generator,
2:Self-destructs (240 frames),
8:Self-destructs (241 frames)

Nybble 11: Pipe generator direction
0:Up,
1:Down,
2:Left,
3:Right



Sprite 34
Nybble 7: Switch mode
0:Do nothing,
1:P-Switch,
2:!-Switch,
4:Red Blocks only,
5:P-Switch + Red Blocks,
7:All

Nybble 8: Activation mode
0:During timer,
2:After timer



Sprite 37
Nybble 11: Cancelled out by the code, as far as I noticed.



Sprite 194
Nybble 11: Cancelled out by the code, as far as I noticed.

Posted by Hiccup
Nice work! But what is with the 8-9 setting entered into the spritedb for the sprite 93?

AFAIK this parameter was always like this since the 2nd revision.
Posted on 02-11-16, 07:09 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 352/598
Since: 05-01-13
Posted by skawo
I'm wondering, since you're on such a roll with those patches, could you perhaps look into any of the following?


1. Giant Springboard Pickup
The pickup hitbox for the giant springboard is far too large and extends even above it, which makes you pick it up if you're holding B and don't press A in time when springing off it.

2. Regular switch w/Bowser Battle
The normal switches can kill Bowser by activating an event -- but the fight doesn't end. That only happens with the special switch created for the fight, which lacks all other switch settings, and it's bridge breaking property is quite useless, as it can be replicated with a string of tilegods -- if this was fixed, it'd make it possible to make the Bowser fights more varied.

3. Pipe-enter-off-moving-sprite

When you try to enter a pipe off a moving sprite, you can start entering said pipe in it's upper half, making Mario's head clip into the ground.

4. Snow effect restart in the same area
If you're in a zone with the snow effect (and possibly others?) and enter a pipe that leads to another zone in the same area, which also has a snow effect in it, the snow effect will glitchily 'restart' from the position it was in the first zone.

5. Balloon Boo "Normal Boo" mode hitbox

The hitbox is all wrong. If it was fixed, you could possibly even change the model to resemble an actual Giant Boo and have a custom-esque enemy.

6. Giant Swooper's Disappearing Hitbox

There's a split second during giant swooper's descent when it's hitbox suddenly disappears, for whatever reason.

I'd appreciate fixing any of the above, if you have the time/motivation.




Please have pity on that poor soul who only got 1 heart afterall…



Jokes aside, I already did number 3 on my hack before you even asked (actually it fixes pretty much everything wrong with the pipes), but I have yet to port it on the American version.

The only one that I did for now is number 4:
_Decompress overlay 10;
_Go to offset 0×4D35F (US) or 0×4A333 (EU);
_Change 1A into EA;
_Decompress overlay 54;
_Go to offset 0×BC6C (US) or 0×AF98 (EU);
_Change 0C00000A into 00000000;

What this does has nothing to do with the Texture effects, rather it changes the way a Scene is loaded from an Entrance.
Basically each time you take an Entrance the whole Area is reloaded no matter what, even if the Destination Area is the same as the Source Area.
Posted on 02-12-16, 07:40 am in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 353/598
Since: 05-01-13
It shouldn't have any incidence.

But can you give me an example of what you mean by cross-zone event?
I have my idea of what you mean but I want to make sure we're talking about the same thing.
Posted on 02-12-16, 12:14 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 354/598
Since: 05-01-13
Sh… sh…… shit!

Wow, the game actually managed to sucker punch me!
I got tricked because I tested with an Event ID of 8 or less, and it worked, but as soon as I tried an Event ID of 9 or above…


Oh well, testing time, I guess it's probably something simple like a CMP Rx,#8 or #9 along with the conditional branch to comment out.
Posted on 02-12-16, 01:04 pm in tutorial Adding files to the ROM
Death by cuteness

Karma: 6564
Posts: 355/598
Since: 05-01-13
Ah! Glad I'm not the only one who did that

Something I didn't try yet in practice, but in theory with this trick you should then be able to setup an ASM hack to dedicate one background, one foreground and one tileset for each of the 177 areas (or 176 if you're playing the US version).
And I dare say you can push this even further to make the game select even a background, foreground, tileset, Soundset, Spriteset per View located in one given Area (but it'll have to be changed dynamically as the game reload the Area)!



Since  skawo and I use slightly different tactics, here's how I do it:
1. Basically the same thing expect I used DSBuff instead, and you'll have to specify the folder where you want to extract the ROM.
2. The same.
3. From there it's different, what I do is that, in the extracted files from DSBuff, I create a new sub folder in the "data" folder that begins by "z" and place each of the new files there.
4. Be careful! The last file in the UiStudio folder will give you the last file ID used by the game, for some reason the game doesn't load the file ID who would numerically come immediately after this one (in EU version that would be file ID 2449), so this file must be empty.
5. Now you can pack the files into a new ROM with DSBuff.
6. Open your new ROM 1 with Tinke, and click Save ROM, this will bring the filesize to the next power of 2.
Oh! And Tinke won't let you save to an already existing ROM.
7. Open your new ROM 2 with NSMBe and extract the fnt.bin.
8. Open both the old and the new fnt in a Hex editor, what I do from there is that I copy the file info from the old fnt and paste it in the new fnt, there's no need to copy the folder info.

Basically you begin to select from ARC0.narc and all the way to the end of the file, then c/p to the new fnt beginning from ARCO.narc.
9. Open NSMBe, import the new fnt in the new ROM 2.
10. Close and re-open NSMBe, now the files should be in the correct order.
11. Select the root folder, click Replace and select the root folder you extracted earlier in step 2.
12. Test in DeSmuMe.
13. ???
14. Profit
Posted on 02-12-16, 04:54 pm in Misc. patches thread (rev. 1 by  MeroMero on 02-12-16, 05:02 pm)
Death by cuteness

Karma: 6564
Posts: 356/598
Since: 05-01-13
Events won't get nuked anymore when reloading an Area, regardless of whether or not this Area is part of the current Level.

_ Decompress arm9
_ go to offset 0×1DEA8 (US) or 0×1E114 (EU) and change 020000E0 0E1001E0 by 00000000 00000000
_ go to offset 0×1DF00 (US) or 0×1E16C (EU) and change 020000E0 061001E0 by 00000000 00000000
_ go to offset 0×1DF34 (US) or 0×1E1A0 (EU) and change 0100C305 by 00000000
Posted on 02-13-16, 05:10 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 358/598
Since: 05-01-13
I needed those 2 mods because I'm using them as a complementary obstacle during the bosses fights of Worlds 6 and 7.

Kill Mini Bloopers spawned by the Blooper Nanny on Level Completion
_ decompress overlay 25
_ go to offset 0×50E0 (US) or 0×4CE4 (EU) and replace 23 by 22



Kill Flames spawned by Flame Chomp on Level Completion
_ decompress overlay 70
_ go to offset 0×18F8 (US) or 0×172C (EU) and replace 23 by 22
Posted on 02-14-16, 12:53 pm in Misc. patches thread (rev. 1 by  MeroMero on 02-14-16, 12:58 pm)
Death by cuteness

Karma: 6564
Posts: 359/598
Since: 05-01-13
That in itself shouldn't be too difficult, but afterwards those would have to be checked too:
_ ground-pounding a slope or pressing Down when on a slope should still make Shell Mario roll downwards;
_ when Mario is already rolling, climbing a slope shouldn't slow him down nor make him go downwards;
_ not mandatory (and also I was thinking about this one for a while) but when under the effects of a Starman, rolling speed and running speed of Shell Mario should be made at ×2 of their original value.
Posted on 02-17-16, 07:57 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 364/598
Since: 05-01-13
Hmmm…
There was bound to be a problem when we both use different regions (EU for me and US for you).
And even if we used the same region, the Blue Shell code required me to use the space from 19C0 to 3000 in the arm9 to put the code.
Which means that most likely you would hook the code at a different address anyway.

I can still try to port the code from EU to US at offset 0×2800 in arm9, that way there won't be any conflict with an already existing code.

For the pipes it's going to be a lot harder though, since my code is, to be frank, quite a mess.
Posted on 02-19-16, 10:15 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 366/598
Since: 05-01-13
Whoa! You have me worried here. *sweats*

So I tested on a clean ROM this time, and it still works on my end, in fact I tested on my flashcard and everything's fine.
I made the xdelta for the US version if you want to test (on level 1-1 then) or if you want to take overlay 10 from it.

Blue Shell.xdelta
Posted on 03-05-16, 09:05 am in guide Tilesets and textures
Death by cuteness

Karma: 6564
Posts: 372/598
Since: 05-01-13
Posted by skawo
I think he's trying to say that the graphics in the actual tileset show up before the animated sequence is shown



If that's what Thierry meant, then no it doesn't.
You don't even get to see the graphics due to this:
The texture is drawn before the area being loaded fades in.


An easy way to check this is to replace the quicksand in the Map16 Editor by whatever graphics you want, and when you test in-game said graphics shouldn't even appear at all due to them being superseded by the texture.
Posted on 03-07-16, 08:00 am in index NSMBdex of useful things for hacking
Death by cuteness

Karma: 6564
Posts: 376/598
Since: 05-01-13
The index was updated with several new tutorials:



ASM Hacks shop (in green), originally by  skawo:
http://nsmbhd.net/thread/2569-misc-patches-thread/


Adding custom 'bahp' points by  skawo:
http://nsmbhd.net/thread/3090-adding-custom-bahp-points/


Resize looped SWAVs by  skawo:
http://nsmbhd.net/thread/3221-resize-looped-swavs/


Adding files to the ROM by  skawo:
http://nsmbhd.net/thread/3253-adding-files-to-the-rom/


Background name table by  MeroMero:
http://nsmbhd.net/thread/3276-tilesets-and-backgrounds-name-table/


Make bottom background 51 use d_2d_W_M_back_jungle2_ncg.bin by  MeroMero:
http://nsmbhd.net/thread/3277-fix-bottom-background-in-slot-51/


Animate any background by  MeroMero:
http://nsmbhd.net/thread/3283-animate-any-background-tutorial/
Original thread by  Dirbaio:
http://nsmbhd.net/thread/1582-some-notes-on-background-hdma-scrolling-animations/
Posted on 03-08-16, 01:43 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 378/598
Since: 05-01-13
Blue Shell for Newer Super Mario Bros: (Take 2)

_Decompress arm9
_Paste this at offset 0×1A50
90 6A 1B 02 7C 71 1B 02 50 B3 08 02 44 E3 12 02 00 40 2D E9 1C 60 1F E5 18 70 1F E5 00 70 97 E5 00 00 57 E3 04 70 A0 13 40 00 00 EA 00 80 BD E8 C0 00 2D E9 F5 FF FF EB 06 00 51 E1 05 00 00 BA 00 00 50 E3 06 00 A0 B1 00 00 60 B2 06 00 A0 A1 C0 00 BD E8 D2 3D 04 EA C0 00 BD E8 D2 3D 04 EA C0 00 2D E9 E9 FF FF EB 00 00 50 E3 06 00 A0 B1 00 00 60 B2 06 00 A0 A1 C0 00 BD E8 09 42 04 EA C0 00 2D E9 E1 FF FF EB 00 00 50 E3 06 00 A0 B1 00 00 60 B2 06 00 A0 A1 C0 00 BD E8 A4 42 04 EA C0 00 2D E9 D9 FF FF EB 06 00 50 E1 01 00 00 AA C0 00 BD E8 8D 50 04 EA C0 00 BD E8 C0 00 1F E5 00 00 D0 E5 80 00 10 E3 F9 FF FF 0A 7D 50 04 EA C0 00 2D E9 D8 60 1F E5 00 60 D6 E5 80 00 16 E3 00 00 A0 03 80 00 80 12 00 00 50 E3 01 00 00 1A C0 00 BD E8 65 3E 04 EA C4 FF FF EB 04 71 1F E5 00 10 97 E5 04 20 97 E5 02 00 51 E1 01 10 A0 03 00 10 A0 13 00 00 52 E3 00 60 66 B2 00 00 51 E3 00 60 87 15 04 60 87 E5 C0 00 BD E8 69 3E 04 EA A0 61 96 E5 00 00 56 E3 00 70 A0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 61 1F E5 07 60 96 E7 B4 FF FF EA 00 00 00 00 00 00 00 00 80 00 12 E3 80 00 80 12 00 00 50 E3 B6 3E 04 0A 9B 3E 04 EA C0 00 2D E9 A4 FF FF EB 06 10 A0 E1 C0 00 BD E8 27 3F 04 EA



_Decompress overlay 10
At offset 0×44EFC replace 0B0B51E3 with 27C2FBEA
At offset 0×451F8 replace 000050E3 with 90C1FBEA
At offset 0×4534C replace 000050E3 with 5FC1FBEA
At offset 0×45594 replace 0B1BA0E3 with D2C0FBEA
At offset 0×46008 replace 000050E3 with F0BDFBEA
At offset 0×46294 replace 000050E3 with 55BDFBEA
At offset 0×49A34 replace 0B0B50E3 with 75AFFBEA


*crosses fingers*
Was tested on a flashcard for good measures, hopefully this time it works.
Posted on 03-08-16, 07:04 pm in Misc. patches thread
Death by cuteness

Karma: 6564
Posts: 379/598
Since: 05-01-13
It's not directed at you skawo, or anyone else for that matter but…
FUCKING HELL!

Somehow, skawo, you must have earned the wrath of the ASM god or something…


Somewhere in the Blue Shell code I did a function to read directly the player's input to see if it's equal to D-Pad Down.
I know you're much more careful than that but please, tell me it's because you have cheat codes enabled for faster testing and that it interferes with the Blue Shell code… Please… Cognitive drought is really a bitch…
Posted on 03-09-16, 12:45 pm in Misc. patches thread (rev. 2 by  MeroMero on 03-09-16, 02:48 pm)
Death by cuteness

Karma: 6564
Posts: 382/598
Since: 05-01-13
Putting aside the Blue Shell for the time being.



Mini Mario behaves correctly under low gravity

_Decompress arm9

US
_Paste this at offset 0×1BE0
DC 1A D1 E1 02 00 2D E9 14 10 9F E5 00 10 91 E5 02 10 D1 E5 02 00 11 E3 02 00 BD E8 62 12 04 1A 44 12 04 EA 68 B1 08 02


EU
_Paste this at offset 0×23B0
D8 15 D1 E1 02 00 2D E9 14 10 9F E5 00 10 91 E5 02 10 D1 E5 02 00 11 E3 02 00 BD E8 93 4D 04 1A 75 4D 04 EA 04 DA 09 02




_Decompress Overlay 10

US
_Go to offset 0×3A234 and replace DC1AD1E1 with B1EDFBEA

EU
_Go to offset 0×37648 and replace D815D1E1 with 80B2FBEA

1. Giant Springboard Pickup

2. Regular switch w/Bowser Battle

3. Pipe-enter-off-moving-sprite Not ported yet on US version

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 Doesn't work with the ASM-Template

8. Mini Mario behaves correctly under low gravity Doesn't work with the ASM-Template
Posted on 03-10-16, 03:11 pm in Tightropes disable sliding
Death by cuteness

Karma: 6564
Posts: 385/598
Since: 05-01-13
Posted by Arceus
"Decompress Overlay 0 and go to the following offset: 0×115AB (US) or 0×10E5B (EU) and change 04 into 00"
by  MeroMero


Forget this, if you try to press down or ground-pound the Rope, it will be treated as a slope… oopsie
Sorry for the inconvenience I caused , refer to this post if you want the real solution.
Posted on 06-26-16, 06:16 pm in index NSMBdex of useful things for hacking
Death by cuteness

Karma: 6564
Posts: 432/598
Since: 05-01-13
OP updated with 3 new guides:

Collision Info Viewer by Ninjifox and Powerline, really useful if you want to check the hitboxes:
http://nsmbhd.net/thread/1664-nsmbds-collision-info-viewer-by-powerline-and-treeki/

How to fix the 'File is already being edited' error in NSMB editor by Thierry:
http://nsmbhd.net/thread/3250-fixing-already-opened-files-tutorial/

Massive information release on Worldmaps by  ray and  Freeze:
http://nsmbhd.net/thread/3422-literally-everything-you-need-to-know-about-worldmap-editing/
Posted on 06-27-16, 11:00 am in Misc. patches thread (rev. 1 by  MeroMero on 06-27-16, 11:03 am)
Death by cuteness

Karma: 6564
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 07-01-16, 08:35 pm in index NSMBdex of useful things for hacking
Death by cuteness

Karma: 6564
Posts: 444/598
Since: 05-01-13
Posted by Hiccup
I think you should add your wrap-around level guide: http://nsmbhd.net/thread/3381-vertical-level-problems/#47757

Added.

Also added 2 more guides:

How to edit the boot screen by  skawo:
http://nsmbhd.net/thread/3331-editing-the-boot-screen/

How to make a 8bpp title screen logo by  MeroMero:
http://nsmbhd.net/thread/3468-title-logo-with-256-colors/