RicBent |
Posted on 01-05-19, 02:43 am in How to code a custom boss?
|
Mariomaster
Karma: 8583 Posts: 1405/1681 Since: 06-09-12 |
Well I coded most of the final boss in NewerDS.
What you need: - Time to waste - Dead brain cells - Having fun going thru insane code produced by Nintendo's broken compiler - I guess some reverse engineering and programming skills tl;dr learn to do some simple asm mods first and then decide if you really want to do that. And don't expect that you can reach the required skill too fast, you'll just get frustrated otherwise ![]() _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 01-24-19, 04:39 pm in How do I add more worlds beyond the eighth world
|
Mariomaster
Karma: 8583 Posts: 1413/1681 Since: 06-09-12 |
Posted by Skylander Not only would it take ASM, but worldmaps are hardcoded. That sentence doesn't make any sense. If you do code modding you change the code. Also NewerDS was very capable of doing full custom world maps and potentially adding a world. We chose not to do it as it would've delayed the release quite a bit. _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 02-10-19, 10:39 pm in Help/Question Asking Thread
|
Mariomaster
Karma: 8583 Posts: 1431/1681 Since: 06-09-12 |
RicBent |
Posted on 03-09-19, 05:28 pm in Help/Question Asking Thread
|
Mariomaster
Karma: 8583 Posts: 1445/1681 Since: 06-09-12 |
RicBent |
Posted on 03-11-19, 02:34 pm in The lost princess!
|
Mariomaster
Karma: 8583 Posts: 1451/1681 Since: 06-09-12 |
RicBent |
Posted on 03-12-19, 05:35 pm in Super weeb bros. (replacing super peter bros.)
|
Mariomaster
Karma: 8583 Posts: 1453/1681 Since: 06-09-12 |
Posted by PunProductionsNSMB what is so bad about my game that everyone don't like? The problem is that you only modify existing levels. Also your tiling is wrong in quite a lot places. Some tile and sprite placements seem just random and not thought through. When you create a new level delete the existing one entirely. That way you properly learn to tile and make something interesting yourself. _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 03-15-19, 05:26 pm in Newer Summer Sun. DS
|
Mariomaster
Karma: 8583 Posts: 1457/1681 Since: 06-09-12 |
RicBent |
Posted on 04-04-19, 12:59 pm in Delete post
|
Mariomaster
Karma: 8583 Posts: 1467/1681 Since: 06-09-12 |
RicBent |
Posted on 08-19-19, 08:11 am in Create a sunset effect (rev. 1 by RicBent on 08-19-19, 08:11 am)
|
Mariomaster
Karma: 8583 Posts: 1483/1681 Since: 06-09-12 |
RicBent |
Posted on 11-19-19, 09:32 pm in Problem with ASM hacking
|
Mariomaster
Karma: 8583 Posts: 1500/1681 Since: 06-09-12 |
RicBent |
Posted on 12-08-19, 02:36 pm in Layer 0 rendering
|
Mariomaster
Karma: 8583 Posts: 1504/1681 Since: 06-09-12 |
NSMB2 already fully loads Layer 0. It just doesn't render it. This code adds that functionality back to the game.
This doesn't render it like the reveal masks in NSMBW/U. It just behaves like the other two layers, but above them. All addresses are US Gold. .arm
.global DrawLayer0
DrawLayer0:
ldr r0, [r7] @ tileset related class
mov r1, r5 @ area id
mov r2, #2 @ layer id
bl 0x004016A4 @ check if layer exists
cmp r0, #0
beq DrawLayer0_return
mov r0, r4 @ this
mov r1, r6 @ drawMgr->_10
mov r2, #2 @ layer id
bl 0x001C9368
DrawLayer0_return:
ldr r0, [r7] @ restored original instruction
mov r2, #1 @ restore r1
b 0x001CA6D4 DrawLayer0:
type: branch
link: false
func: DrawLayer0
addr: 0x001CA6D0 ![]() _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 01-06-20, 12:18 am in what the do we do with this
|
Mariomaster
Karma: 8583 Posts: 1526/1681 Since: 06-09-12 |
RicBent |
Posted on 06-05-20, 09:36 am in Is it possible to delete my account here?
|
Mariomaster
Karma: 8583 Posts: 1550/1681 Since: 06-09-12 |
RicBent |
Posted on 06-05-20, 08:52 pm in Super Mario Bros. Next
|
Mariomaster
Karma: 8583 Posts: 1551/1681 Since: 06-09-12 |
RicBent |
Posted on 06-25-20, 06:52 pm in How to import specific type of ASM? (rev. 1 by RicBent on 06-25-20, 06:52 pm)
|
Mariomaster
Karma: 8583 Posts: 1552/1681 Since: 06-09-12 |
It is explained here: https://nsmbhd.net/thread/1281-how-asm-hacks-are-setup-tutorial/
What you got there is an ARM assembly source file. Save it in an file with the '.s' extension in the source folder and hit 'Run make and insert' _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 07-01-20, 09:32 am in How to import specific type of ASM? (rev. 1 by RicBent on 07-01-20, 09:40 am)
|
Mariomaster
Karma: 8583 Posts: 1553/1681 Since: 06-09-12 |
-lgcc missing is caused by devkitARM updating the gcc (the compiler) it uses.
See this commit https://github.com/Dirbaio/ASMPatchTemplate/commit/b6786d589a8237dce03aec66b88f89c363734084 It fixed the same issue 4 years ago. But gcc got updated several times since then again. The current version devkitARM uses is 10.1.0. You can always find out what version you got by looking into the devkitpro/devkitARM/lib/gcc/arm-none-eabi/ folder. There should be a single folder inside with the version of the install gcc. Just change the gcc version in the Makefile and you are good to go! Edit: I made a pull request to the patch template repo. Just have to wait for _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 07-04-20, 02:45 pm in help Any tips on reverse engineering the collision system?
|
Mariomaster
Karma: 8583 Posts: 1554/1681 Since: 06-09-12 |
1) NSMB uses a reactive system. Actors change their position and after that the collision manager (the thing that controls the sensor) moves them to where they can or should be.
2) The tiles where slopes go into flat ground actually aren't solid tiles. They have a special tile behavior. Basically a "flat slope" that always pushes you on top. If you didn't place a tile with that special behavior Mario wouldn't go up because the lower sensor hits it from the side as you said. Later NSMB games after NSBMDS don't require that special "flat slope" tile anymore. No idea how they solve it there though. _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 07-04-20, 03:05 pm in help Any tips on reverse engineering the collision system?
|
Mariomaster
Karma: 8583 Posts: 1555/1681 Since: 06-09-12 |
I think I wasn't specific enough.
Every actor that uses sensors has a member class that controls the sensors: CollisionMgr. The actors basically do this in onExecute: - Change position - this->collisionMgr.execute() The latter thing then places the parent actor where it can be if it is inside a block, slope, etc. There isn't a central class that handles this. _________________________ GitHub - Kuribo64 - YouTube |
RicBent |
Posted on 08-28-20, 06:53 am in Newer Super Mario Bros. DS
|
Mariomaster
Karma: 8583 Posts: 1574/1681 Since: 06-09-12 |
RicBent |
Posted on 09-05-20, 06:46 pm in the ytp thread #2
|
Mariomaster
Karma: 8583 Posts: 1578/1681 Since: 06-09-12 |