Pages: « 1234567 »
Posted on 06-18-12, 02:00 pm in New Super Mario Land (rev. 3 by  Dirbaio on 11-23-16, 09:07 pm)
Mariomaster

Karma: 8168
Posts: 1/1613
Since: 06-09-12
Hi Guys,

I'm working on a Hack called "New Super Mario Land".



Some of the new features in this hack are:

-Wii Tilesets
-Super Mario Sunshine Secret Bonus Areas (The Tileset is not finished)
-Custom Backgrounds
-Hacked Titelscreen
-Custom Music (Using the New Super Mario Bros. DS Sound & Music Hack v1.4)
-Airship Levels
-Mario has no cap
-Hacked Bottom Screen
-New Super Mario Bros. Mii Desert Tileset

Some Pictures:

_________________________
GitHub - Kuribo64 - YouTube
Posted on 07-03-15, 10:14 am in NSMB Worldmap Editor (rev. 1 by RicBent on 07-03-15, 10:14 am)
Mariomaster

Karma: 8168
Posts: 457/1613
Since: 06-09-12
If you haven't seen it yet, because I couldn't douple post:

My first atempt to create a fully custom worldmap:


It has still many bugs caused by the data paths, but that 'll be doable soon.


Here is a new build for you: NSMB Worldmap Editor v1.3

This allows you to create a fully custom .nsbca file with as many frames you want. You are also able to edit every frame in x, y, z and direction. I also added a small tool which allows you to create a walk, so you don't have to edit every single frame on your own.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 03-10-16, 09:48 am in nsmb2 NSML - New Super Mario Land
Mariomaster

Karma: 8168
Posts: 541/1613
Since: 06-09-12
Here's a new little sign of life by me


_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-26-16, 06:31 pm in Mariomaster's custom Tilesets (rev. 2 by ImageBot on 11-21-16, 03:21 am)
Mariomaster

Karma: 8168
Posts: 575/1613
Since: 06-09-12
Here is another one:


cookieiceland.nmt

With this tileset I kinda tried to keep the original look of NSMBDS by using an a bit more simplistic style. I planned this to be the main world 1 tileset of my hack some time ago.

As you might notice, the broken bricks use a strange tilebehavior. Don't try to use these ones, since they require an ASM hack to work properly.
_________________________
GitHub - Kuribo64 - YouTube
Mariomaster

Karma: 8168
Posts: 585/1613
Since: 06-09-12
If you are interested into 3ds hacking you should download SmileBASIC (only US/JAP).
It will allow you to play homebrew and rom hacks.

Be fast or Nintendo will pull it from the eShop.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 08-11-16, 04:05 pm in Misc. patches thread
Mariomaster

Karma: 8168
Posts: 609/1613
Since: 06-09-12
Spiked Ball Retexture Code:
@Retexture Normal Spiked Ball repl_0218D220_ov_79: repl_0218D258_ov_79: MOV r0, #0x500 @Default Model ID - 0x83 ADD r0, #0x05D LDR R1, =0x2088BFC LDR R1, [R1] CMP R1, #0x4 @World ID MOVEQ r0, #0x30 @Model ID - 0x83 BX LR @Retexture Large Spiked Ball repl_0218DC8C_ov_79: repl_0218DCC4_ov_79: MOV r0, #0x400 @Default Model ID - 0x83 ADD r0, #0x0BD LDR R1, =0x2088BFC LDR R1, [R1] CMP R1, #0x4 @World ID MOVEQ r0, #0x2F @Model ID - 0x83 BX LR




Allows you to hardcode retextures of large and normal spiked balls based on the world number.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 10-11-16, 02:29 pm in Literally everything you need to know about Worldmap editing (rev. 1 by RicBent on 10-11-16, 02:30 pm)
Mariomaster

Karma: 8168
Posts: 673/1613
Since: 06-09-12
Seems like there is a very interesting table stored at 0x1B6E4 in overlay 8:

ov8:021A7384 off_21A7384 DCD w1nodeData ; DATA XREF: sub_218D40C+8o ov8:021A7384 ; ov8:off_218D438o ... ov8:021A7388 off_21A7388 DCD w1pathSettings ; DATA XREF: sub_218D3E4+8o ov8:021A7388 ; ov8:off_218D408o ... ov8:021A738C off_21A738C DCD unk_21A5420 ; DATA XREF: WorldmapScene__onCreate+E8o ov8:021A738C ; ov8:off_218FD34o ov8:021A7390 off_21A7390 DCD w1visibleNodes ; DATA XREF: WorldmapScene__onCreate+E0o ov8:021A7390 ; ov8:off_218FD2Co ov8:021A7394 off_21A7394 DCD w1starcoinSigns ; DATA XREF: WorldmapScene__onCreate+E4o ov8:021A7394 ; ov8:off_218FD30o ov8:021A7398 off_21A7398 DCD w1towersCastles ; DATA XREF: WorldmapScene__onCreate+134o ov8:021A7398 ; ov8:off_218FD4Co ov8:021A739C off_21A739C DCD w1mushroomHouses ; DATA XREF: WorldmapScene__onCreate+13Co ov8:021A739C ; ov8:off_218FD50o ov8:021A73A0 off_21A73A0 DCD off_21A591C ; DATA XREF: WorldmapScene__onCreate+168o ov8:021A73A0 ; ov8:off_218FD60o ov8:021A73A4 w1nodeCount DCW 0x13 ; DATA XREF: sub_218D43C+8o ov8:021A73A4 ; ov8:off_218D450o ... ov8:021A73A6 w1pathCount DCB 0x17 ; DATA XREF: WorldmapScene__onCreate+ECo ov8:021A73A6 ; ov8:off_218FD38o ov8:021A73A7 DCB 0 ov8:021A73A8 unk_21A73A8 DCB 0 ; DATA XREF: WorldmapScene__onCreate+C4o ov8:021A73A8 ; ov8:off_218FD18o ov8:021A73A9 DCB 0 ov8:021A73AA DCB 0 ov8:021A73AB DCB 0 ov8:021A73AC DCD w2nodeData ov8:021A73B0 DCD w2pathSettings ov8:021A73B4 DCD unk_21A5414 ov8:021A73B8 DCD w2visibleNodes ov8:021A73BC DCD w2starcoinSigns ov8:021A73C0 DCD w2towersCastles ov8:021A73C4 DCD w2mushroomHouses ov8:021A73C8 DCD off_21A58E0 ov8:021A73CC DCW 0x14 ; w2nodeCount ov8:021A73CE DCB 0x18 ; w2pathCount ov8:021A73CF DCB 0 ov8:021A73D0 DCB 0 ov8:021A73D1 DCB 0 ov8:021A73D2 DCB 0 ov8:021A73D3 DCB 0 ov8:021A73D4 DCD w3nodeData ov8:021A73D8 DCD w3pathSettings ov8:021A73DC DCD unk_21A541C ov8:021A73E0 DCD w3visibleNodes ov8:021A73E4 DCD w3starcoinSigns ov8:021A73E8 DCD w3towersCastles ov8:021A73EC DCD w3mushroomHouses ov8:021A73F0 DCD off_21A5718 ov8:021A73F4 DCW 0x12 ; w3nodeCount ov8:021A73F6 DCB 0x17 ; w3pathCount ov8:021A73F7 DCB 0 ov8:021A73F8 DCB 0 ov8:021A73F9 DCB 0 ov8:021A73FA DCB 0 ov8:021A73FB DCB 0 ov8:021A73FC DCD w4nodeData ov8:021A7400 DCD w4pathSettings ov8:021A7404 DCD unk_21A5418 ov8:021A7408 DCD w4visibleNodes ov8:021A740C DCD w4starcoinSigns ov8:021A7410 DCD w4towersCastles ov8:021A7414 DCD w4mushroomHouses ov8:021A7418 DCD off_21A5790 ov8:021A741C DCW 0x13 ; w4nodeCount ov8:021A741E DCB 0x17 ; w4pathCount ov8:021A741F DCB 0 ov8:021A7420 DCB 0 ov8:021A7421 DCB 0 ov8:021A7422 DCB 0 ov8:021A7423 DCB 0 ov8:021A7424 DCD w5nodeData ov8:021A7428 DCD w5pathSettings ov8:021A742C DCD unk_21A5404 ov8:021A7430 DCD w5visibleNodes ov8:021A7434 DCD w5starcoinSigns ov8:021A7438 DCD w5towersCastles ov8:021A743C DCD w5mushroomHouses ov8:021A7440 DCD off_21A582C ov8:021A7444 DCW 0x18 ; w5nodeCount ov8:021A7446 DCB 0x1E ; w5pathCount ov8:021A7447 DCB 0 ov8:021A7448 DCB 0 ov8:021A7449 DCB 0 ov8:021A744A DCB 0 ov8:021A744B DCB 0 ov8:021A744C DCD w6nodeDataMaybe ov8:021A7450 DCD w6pathSettings ov8:021A7454 DCD unk_21A5408 ov8:021A7458 DCD w6visibleNodes ov8:021A745C DCD w6starcoinSigns ov8:021A7460 DCD w6towersCastles ov8:021A7464 DCD w6mushroomHouses ov8:021A7468 DCD off_21A5D1C ov8:021A746C DCW 0x15 ; w6nodeCount ov8:021A746E DCB 0x1A ; w6pathCount ov8:021A746F DCB 0 ov8:021A7470 DCB 0 ov8:021A7471 DCB 0 ov8:021A7472 DCB 0 ov8:021A7473 DCB 0 ov8:021A7474 DCD w7nodeData ov8:021A7478 DCD w7pathSettings ov8:021A747C DCD unk_21A5424 ov8:021A7480 DCD w7visibleNodes ov8:021A7484 DCD w7starcoinSigns ov8:021A7488 DCD w7towersCastles ov8:021A748C DCD w7mushroomHouses ov8:021A7490 DCD off_21A573C ov8:021A7494 DCW 0x12 ; w7nodeCount ov8:021A7496 DCB 0x18 ; w7pathCount ov8:021A7497 DCB 0 ov8:021A7498 DCB 0 ov8:021A7499 DCB 0 ov8:021A749A DCB 0 ov8:021A749B DCB 0 ov8:021A749C DCD w8nodeData ov8:021A74A0 DCD w8pathSettings ov8:021A74A4 DCD unk_21A540C ov8:021A74A8 DCD w8visibleNodes ov8:021A74AC DCD w8starcoinSigns ov8:021A74B0 DCD w8towersCastles ov8:021A74B4 DCD w8mushroomHouses ov8:021A74B8 DCD off_21A5E44 ov8:021A74BC DCW 0x13 ; w8nodeCount ov8:021A74BE DCB 0x16 ; w8pathCount ov8:021A74BF DCB 0 ov8:021A74C0 DCB 0 ov8:021A74C1 DCB 0 ov8:021A74C2 DCB 0 ov8:021A74C3 DCB 0


The table contains all information that is necessary to load nodes and paths for the maps.


How the table is built up:

- It has 8 sections, 1 for each world
- Each block is 0x28 bytes long

Sections:

Offset Length Function
0x0 0x4 Pointer to Node Data
0x4 0x4 Pointer to Path Settings
0x8 0x4 Pointer to other Node/Path counts
0xC 0x4 Pointer to Visible Nodes
0x10 0x4 Pointer to Starcoin Signs
0x14 0x4 Pointer to Tower/Castle Locations
0x18 0x4 Pointer to Mushroom House Locations
0x1C 0x4 Pointer to Unknow Block
0x20 0x2 Node Count
0x22 0x2 Path Count
0x24 0x4 Unknown (Referenced to, but allways 0x0)


Pointers to other Node/Path counts:

These pointers reffer to 4 byte long blocks that are built like this:

Offset Length Function
0x0 0x2 Node Count (Differs from count in the main block)
0x2 0x2 Path Count (Differs from count in the main block)


Pointers to Unknow Blocks:

The Unknown blocks contain 3-5 4 byte long pointers to 0x10 byte long unknown data blocks.
Worlds 1-5 and 7 have 3 pointers, 6 has 4 and 8 has 5.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 10-26-16, 12:11 pm in Newer Super Mario Bros. DS (rev. 1 by RicBent on 10-26-16, 12:11 pm)
Mariomaster

Karma: 8168
Posts: 713/1613
Since: 06-09-12
Never with the NSMBDS engine. You'd have to do an insane amount of patches to allow that.

Also the NDS is probably not powerfull enough to do the rendering job for 3 seperate layers.

The most impossible thing is the Layer infront Mario. 2D bg tiles can never be rendered infront 3D sprites.
You'd have to create your own render system for these which would rely on OAM objects, which would cause an insane slowdown if they are used to much. Also the OAM tiles/pallettes are limited as well.


All in all: Never


Edit: And remember: Replacing stuff is "easy". Adding not.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 11-04-16, 05:45 pm in Literally everything you need to know about Worldmap editing (rev. 7 by RicBent on 11-04-16, 11:10 pm)
Mariomaster

Karma: 8168
Posts: 730/1613
Since: 06-09-12
Shameless doublepost incoming because it has an entirely different topic.

I looked a bit more into the worldmap structure. Almost everything of the table 5 posts up is now known.

This is how the worldmap structure looks C like:

#include "nsmb.h"

typedef struct path
{
        u8 endingNodeId;
        u8 animationId;
        u8 settings;
        u8 unk;
} path;

typedef struct node
{
        path *paths;            // As many paths as you want. Last path should be FF 00 00 00
        u8 areaId;
        u8 unk0;                // Allways 0?
        u8 unk1;                // Mostly 0. I only saw 0xB in W1. Is this for the blue mushroom house?
        u8 icon;
        u8 settings;
        u8 unk2[3];             // Allways 0? Probably padding
} node;

typedef struct pathBehavior
{
        u8 animationId;
        u8 starcoinCost;
        u8 visibility;
        u8 unk;                 // Allways 0? Probably padding
} pathBehavior;

typedef struct mapObjects
{
        u8 mapObj1StartNode;
        u8 mapObj1Type;
        u8 mapObj2StartNode;
        u8 mapObj2Type;
} mapObjects;

typedef struct visibleNode
{
        u8 unlockedPaths[4];
        u8 unlockedpathsSecret[4];
        u16 cameraLocation;
        u16 cameraLocationSecret;
        s32 x;
        s32 y;
        s32 z;
} visibleNode;

typedef struct worldmapObject
{
        u8 animationId;
        u8 pad[3];
        s32 x;
        s32 y;
        s32 z;
} worldmapObject;

typedef struct bowserJrNode
{
        u8 animationId;
        u8 behavior;
} bowserJrNode;

typedef struct world
{
        node *nodes;
        pathBehavior *pathBehaviors;
        mapObjects *mapObjs;
        visibleNode *visibleNode;
        worldmapObject *starcoinSigns;          // As many as you want. Last one should be zeroed
        worldmapObject *strongholds;            // ^
        worldmapObject *mushroomHouses;         // ^
        bowserJrNode **bowserJrPaths;
        u16 nodeCount;
        u16 pathCount;
        u32 unk;                                // allways 0
} world;


At 0x1B6E4 in overlay 8 there are 8 of the "world" structures right after each other.

Also thanks to  skawo for finding out the Bowser Jr. Path structure.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 11-12-16, 05:40 pm in mini hackculminated The Amazing Adventure Of Mario (rev. 1 by RicBent on 11-12-16, 05:41 pm)
Mariomaster

Karma: 8168
Posts: 740/1613
Since: 06-09-12
Well, it IS unoriginal if you use a name that is already taken. Especially if you use Newer because it is well known.

Also we cannot see very much content here yet. There is one screen, which shows corrupted bottom screen palettes and a level with very flat design.


Also the fact that 1/2 of your "Newer Team" is already banned isn't a good sign for this project

Edit: And why should I escape Christmas?
_________________________
GitHub - Kuribo64 - YouTube
Posted on 01-08-17, 06:12 pm in Newer Super Mario Bros. DS (rev. 1 by RicBent on 01-08-17, 06:12 pm)
Mariomaster

Karma: 8168
Posts: 785/1613
Since: 06-09-12
Posted by Arceus
I think there is nothing that has to be approved. This looks so awesome that it can be directly moved.

Create a hack with the same quality and it will be moved directly as well.


All following posts about the hacks forum rules and the release date of NewerDS will be directly deleted from now to prevent this spam.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 01-16-17, 03:18 pm in Drawing (animated) 3d models (rev. 3 by RicBent on 01-16-17, 03:21 pm)
Mariomaster

Karma: 8168
Posts: 787/1613
Since: 06-09-12
Well this is mostly a findings dump. All functions beneath are though enough to draw (animated) 3d models.
Still it might not be as detailed as needed to make it usable for everyone.

Here we go:


NSMB makes it very easy for us. We only need to call 3 functions to get everything going.

If you want to draw a model alongside a actor you have to place the corresponding struct in it's alloced memory.
What exactly each part of the following structs do is not known, but not necessary.

typedef struct  // Size: 0x90
{
        u32 unk[0x24];
} Model3d;

typedef struct  // Size: 0x18
{
        u32 unk[0x6];
} Anim3d;

typedef struct  // Size: 0xA8
{
        Model3d model;  // 0x00
        Anim3d anim;    // 0x90
} ModelAnim3d;

Use Model3d if you want an unanimated model, use ModelAnim3d if you want an animated model.


Now the functions:

// Functions for Models without animation
void model3d_ctor(Model3d* model);
bool model3d_setup(Model3d* model, void* modelFile, u32 unk);
void model3d_init(Model3d* model);
       
// Functions for Models with character animation
// These functions call all above functions
void modelAnim3d_ctor(ModelAnim3d* model);
bool modelAnim3d_setup(ModelAnim3d* model, void* modelFile, void* animationFile, u32 unk1 , u32 unk2, u32 unk3);
void modelAnim3d_init(Model3d* model, u32 animationId, u32 unk1, u32 animationSpeed, u32 unk2);

void anim3d_update(Anim3d* animation);


Call the corresponding _ctor function in the constructor of you actor.
Then _setup and then _init in onCreate if your actor. _setup is normally called in heapCreated, but that sometimes causes strange crashes.

For changing the animation recall _init on the animated modell.
To update the animation call anim3d_update on the modelAnim3d.anim somewhere in onExecute.


Finally the custom onDraw function. This is custom and made by REing existing sprites:

CustomActor_onDraw:    
       
        STMFD   SP!, {R4,LR}
        MOV     R4, R0
       
       
        @ Set Position
        LDR     R0, =0x0208B6E8
        LDR     R1, [R4,#0x60]   @ Adress of the X Position
        LDR     R2, [R4,#0x64]   @ Adress of the Y Position
        LDR     R3, [R4,#0x68]   @ Adress of the Z Position
        BL      SetModelPos
       
        @ Set Rotation
        LDR     R0, =0x0208B6E8
        LDRSH   R1, [R4,#0xA0]  @ Adress of the X Rotation
        BL      SetModelRotX
       
        LDR     R0, =0x0208B6E8
        LDRSH   R1, [R4,#0xA2]  @ Adress of the Y Rotation
        BL      SetModelRotY
       
        LDR     R0, =0x0208B6E8
        LDRSH   R1, [R4,#0xA4]  @ Adress of the Z Rotation
        BL      SetModelRotZ
       
        LDR     LR, =0x0208B6E8
        LDR     R12, =0x454
        LDMIA   LR!, {R0-R3}
        ADD     R12, R4, R12
        STMIA   R12!, {R0-R3}
        LDMIA   LR!, {R0-R3}
        STMIA   R12!, {R0-R3}
        LDMIA   LR, {R0-R3}
        STMIA   R12, {R0-R3}
       
        ADD     R0, R4, #0x3F4  @ Adress of the Model
        ADD     R1, R4, #0xF0   @ Adress of the Scale Vec3
        LDR     R2, [R0]
        LDR     R2, [R2,#0xC]
        BLX     R2

        MOV     R0, #1
        LDMFD   SP!, {R4,PC}



These are the adresses of the found functions (for symbols.x):

model3d_ctor = 0x2019A30;
model3d_setup = 0x2019948;
model3d_init = 0x2019A30;

modelAnim3d_ctor = 0x2019644;
modelAnim3d_setup = 0x2019530;
modelAnim3d_init = 0x2019440;

anim3d_update = 0x201FEB8;

SetModelPos = 0x2044814;
SetModelRotX = 0x20448B4;
SetModelRotY = 0x2044888;
SetModelRotZ = 0x204485C;



(Oh, the function names I came up with might be entirely senseless. I didn't re what exactly they do. I simply looked at a lot of actors to see how they do it)
_________________________
GitHub - Kuribo64 - YouTube
Posted on 04-01-17, 08:50 pm in i have leak the newer super mario ds!!
Mariomaster

Karma: 8168
Posts: 823/1613
Since: 06-09-12
Nope it's not  skawo. His IP is unknown. All I could do was nuking the download.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 09-24-17, 09:19 pm in Need Help.
Mariomaster

Karma: 8168
Posts: 1004/1613
Since: 06-09-12
This board does not exist for you recruiting people for your project...

>"Say your gender" Just why. Because "Yieks! Girl!"?
_________________________
GitHub - Kuribo64 - YouTube
Posted on 09-24-17, 09:21 pm in New Super Mario Bros.X
Mariomaster

Karma: 8168
Posts: 1005/1613
Since: 06-09-12
Create a new thread when you got something to show.

This sounds like you want to recuite people who create a hack under your name...
_________________________
GitHub - Kuribo64 - YouTube
Posted on 10-07-17, 10:28 am in StapleButter rant (rev. 1 by RicBent on 10-07-17, 10:30 am)
Mariomaster

Karma: 8168
Posts: 1014/1613
Since: 06-09-12
I forgot something.

Your problems with StapleButter do not come from this board. I find it disgusting how you now try to flood every single place about the crap. Argue elsewhere.


Edit: In the future all your "ranting" and "arguing" threads will go to trash after we see them.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 12-25-17, 06:21 pm in Newer DS has been released! (rev. 2 by RicBent on 01-11-18, 09:48 am)
Mariomaster

Karma: 8168
Posts: 1054/1613
Since: 06-09-12
After many years in development Newer Team has released the sequel to Newer Super Mario Bros. Wii - Newer Super Mario Bros. DS!

It has all new levels, fully custom graphics, new and enhanced enemies and a ton more. Be sure to check it out!



More info: https://nsmbhd.net/thread/2851-newer-super-mario-bros-ds/
Download: http://newerteam.com/ds/
_________________________
GitHub - Kuribo64 - YouTube
Posted on 01-13-18, 06:23 pm in NSMBWii Hack?
Mariomaster

Karma: 8168
Posts: 1083/1613
Since: 06-09-12
I don't quite see the point.

If I want to play NSMBW I play NSMBW not a downported version.
I can understand if people port older games to a newer engine but this ... doesn't make much sense imo.

And "I would like to direct" sounds like "Please create a hack for me". Many threads like this one have existed. All failed. Create something and then ask people to join. That is how it works.
_________________________
GitHub - Kuribo64 - YouTube
Mariomaster

Karma: 8168
Posts: 1153/1613
Since: 06-09-12
First: Thread titles like this one + swearing doesn't make people help you but rather the opposite.

Also why would you even use xdelta when trying to play your edited rom. Just directly copy it to your flash cartridge.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 05-11-18, 01:16 pm in free-to-use Free Tilesets to use (rev. 1 by RicBent on 05-11-18, 01:51 pm)
Mariomaster

Karma: 8168
Posts: 1207/1613
Since: 06-09-12
Sharing others work, even if their credit is not required without stating that it's not done by yourself is pretty unrespectful to the original creator.

And considering this tileset is already available to downliad in this forum I see no reason for you to repost it here.
Come back if you have anything original, made or at least modified by you to share.
_________________________
GitHub - Kuribo64 - YouTube
Pages: « 1234567 »