Pages: 12345 »
Posted on 10-19-13, 02:21 pm in NSMB Titlescreen Editor (rev. 7 by RicBent on 05-08-18, 06:39 pm)
Administrator

Karma: 6749
Posts: 354/1374
Since: 06-09-12
Hi there

Because many members have trouble with titlescreen editing, I have made a small programm in C#, which helps you with the puzzle.



The whole programm is self explaining. Have fun

Download v1.2


PS: Since I'm a newbie to C# there could be some bugs.
^
RicBent from 2017 has to stress that
_________________________
GitHub - Kuribo64 - YouTube
Posted on 11-13-16, 01:13 pm in wip Goombatlas - The NSMB Worldmap Editor (rev. 4 by ImageBot on 11-21-16, 03:25 am)
Administrator

Karma: 6749
Posts: 742/1374
Since: 06-09-12
Goombatlas
The NSMB Worldmap Editor



Yup, you see correctly: Another Worldmap Editor. But this time you can finally do stuff!
It allows you to have an infinite amount of nodes and paths as well as map objects like mushroom houses and star coin signs.

The map editor allows saving maps in an intermediate xml format that allows easy map sharing and makes reading/writing very easy.
Then, if you want to put your created map ingame, you can export it to C source code files as well as an file that tells NSMBe to write pointers to our custom stuff.

The project is still work-in-progress, but I decided to post it already, since it might already be usefull for some people.
The whole project is already on GitHub, if you want to try it: https://github.com/Mariomaster/Goombatlas

To insert the generated maps you need this modded NSMBe version: https://www.dropbox.com/s/qjiz8tuv44apsli/NSMB%20mod.zip?dl=1
You also need to place the "worldmap.h" file in the source folder and if it asks you to save a file called "replaces.x" save it in the root of the ASMPatchTemplate.


Further planned features are:
  • Edit camera restrictions
  • Edit Bowser Jr. Pahts
  • Edit Cursor Positions on bottom screen
  • Keyframe editor to allow the creaton of custom animation paths without Maya

Remember that this is still wip and might cause some trouble in it current state, since not everything is tested yet.

Have fun!


Downloads:

Build
Date
Revision
Build 0001
11-13-16, 06:13 pm
ea0fcf92

_________________________
GitHub - Kuribo64 - YouTube
Posted on 09-18-15, 05:49 pm in suggestion Easy Level Creation
Administrator

Karma: 6749
Posts: 502/1374
Since: 06-09-12
At first how that looks like:



What do you think?

If you like that I would add slopes, a setup, which allows you to choose which tiles get used for every tileset and commit everything to NSMBe if  Dirbaio thinks that this is OK.

Also I got this idea from Zementblock on RVLution from this post.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-18-15, 04:59 pm in NSMB Worldmap Editor (rev. 16 by RicBent on 04-28-16, 07:08 pm)
Administrator

Karma: 6749
Posts: 436/1374
Since: 06-09-12
Because  ray and  Freeze don't seem to develop their worldmap editor anymore, I decided to do one:



Currently it is able to edit all visible nodes and each frame of the path animations. At the moment I am working on a feature to add more frames to each path and change the mode of the animation path

But best of all: The editor is open source, and I would be pleased if you would help with this project and contribute to it.

Here you can download all releases since v1.3.1: GitHub Releases

Visit the Git repository: NSMB WMe on Github

Changelog:
v1.0: Initial release, containing an editor for the visible nodes.
v1.1: Added path animations reader, xml updates
v1.2: Added path animations frame editor
v1.3: Path animations editor 80% finished
v1.3.1: W6 Animation path count fix
_________________________
GitHub - Kuribo64 - YouTube
Posted on 02-10-15, 06:04 pm in nsmb2 NSML - New Super Mario Land (rev. 19 by RicBent on 04-08-18, 07:23 pm)
Administrator

Karma: 6749
Posts: 410/1374
Since: 06-09-12
NSML is on hold for an undefined amount of time. Don't ask how long. It might happen. Or not. You will see.




A NSMB 2 Hack


Welcome to my NSML-Thread!

This project aims to be a sequel to the 2012 released New Super Mario Bros. 2. Most critics about the game were very bad, because it lacked new ideas and concepts and the fact that most of the graphics and music were recycled from NSMBW. I'd like to make something fresh and innovative from the engine by adding new world themes, graphics and music.

Currently I'm thinking about which world theme will be the first I'll work on. If you'd like to take part on that decision, vote here: http://strawpoll.me/7133330

I'll add a few screenshots about already existing levels here soon.



Old Post about the initial project for the first NSMB

_________________________
GitHub - Kuribo64 - YouTube
Posted on 08-18-16, 03:16 pm in Actor/Particle/SFX Spawner Sprite (rev. 5 by RicBent on 10-04-18, 04:34 pm)
Administrator

Karma: 6749
Posts: 623/1374
Since: 06-09-12
Actor/Particle/SFX Spawer Sprite:



https://www.youtube.com/watch?v=9Mt0wu0wO_U
https://www.youtube.com/watch?v=vMJSXnI7Q-Y

This hack allows you to spawn any actor, particle and/or SFX (Soundeffect).

Since the regular amount of sprtedata nybbles is far to less to store the neccessary information I had to choose a more hacky way.
I append all of our custom data to block 14 of the level header (Sprite Sets). This means that we have to use a modded NSMBe.

This hack replaces the defunct actor 22 and will be available by default as sprite 20.



These are the available nybbles of the sprite:



If you leave "Spawn Delay" at 0 and set a "Triggering ID", the sprite will spawn the actor once if you activate the event.
If the event is disabled and activated again, the actor is spawn once more. The first example in the video uses that.

If the "Spawn Delay" is greater than 0 the actor will spawn every X frames while the event is active. If you set the "Triggering ID" to 0 the spawning cycle begins imediatly and lasts forever. That can be seen in the Bob-Omb example in the video.

"Spawn one time cycle later" is only relevant if "Spawn Delay" is set. If it is enabled and the event get's enabled it takes the specified frame count until the actor spawns the first time. The fireworks example uses that since the particles don't appear right after entering the level.

If you want to disable spawning an actor/particles/sfx you can set that by enablig the respective checkbox.


As you can see there is another field: "Settings ID".

These can be set by opening the "Actor Spawner Settings" dialog in the modded NSMBe. In the toolbar click on the yellow block.

You will see this dialog:



Just select what you want to spawn and remember the ID on the left side and put that into your sprite 20 as "Settings ID".
Remember that the selected actor has to be enabled in the sprite sets and the specified sfx has to be available in the used sound set.



https://nsmbhd.net/file/VJlLIYigo02gRRjE/ActorSpawner.tar.gz

In the compressed folder you find the modded NSMBe and the necessary files for the ASM patch template.



Thanks to  StapleButter for the Sprite100 hack which I used as a base.
Thanks to  skawo for the documentations of the particles and SFXes.

Please post any unknown particle/sfx ids you find here.
Have fun!
_________________________
GitHub - Kuribo64 - YouTube
Posted on 10-26-17, 04:35 pm in ADMINS/MODERATORS ARE STUPID!
Administrator

Karma: 6749
Posts: 1024/1374
Since: 06-09-12
A new level of shitpost...
_________________________
GitHub - Kuribo64 - YouTube
Posted on 04-25-18, 08:09 am in bitch
Administrator

Karma: 6749
Posts: 1183/1374
Since: 06-09-12
Don't do drugs kids.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 12-09-12, 01:16 pm in List of Bitmaps wich are using the jyotyu palette (rev. 3 by RicBent on 06-14-16, 12:45 pm)
Administrator

Karma: 6749
Posts: 186/1374
Since: 06-09-12
I am editing the jyotyu-Palletes and I'd like to know all bitmaps wich are using them.

A short list wich I found:
Folder Bitmap 4bpp format
/BG_ncg d_2d_A_J_jyotyu no
/BG_ncg d_2d_TEN_A_J_jyotyu_ncg.bin no
/obj A_block_hahen no
/obj A_block no
/obj A_OBJ_item_fontM_01 yes
/obj A_text_luigiclear yes
/obj A_text_luigilose yes
/obj A_text_luigistart yes
/obj A_text_luigiwin yes
/obj A_text_marioclear yes
/obj A_text_mariolose yes
/obj A_text_marioluigi yes
/obj A_text_mariostart yes
/obj A_text_mariowin yes
/obj A_text_timeup yes
/obj A_tikuwa_block no
/obj I_item no
/obj I_kakushitobira no
/obj I_minigame_block no
/obj I_minigame_item no
/obj I_obj_kira_I no
/obj I_obj_kira no
/obj I_obj_yajirushi no
/obj I_obj_yougan no

Are there some bitmaps missing? Please help me and post the missing ones!
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-22-16, 08:57 pm in tileset help
Administrator

Karma: 6749
Posts: 570/1374
Since: 06-09-12
Are you serious  Kankerkoekjesdief? What happened to this community?

I remember how we all helped each other, also people who were not as experienced as the rest.

Also people +1-ing posts like yours should really ask themselves: Were I better when I came here? How would've I reacted if people answered junk like this to my questions?
This thread shows exacly to what we have come. Poor.


There is nothing wrong at all with this question.
Even tho it had a horrible quality and a lot things are missing I'll give you the first tileset I ever made, since I couldn't find the newer version I made: https://www.dropbox.com/s/hio5rhnj2yv5f56/airship.nmt?dl=0
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-22-16, 09:22 pm in tileset help
Administrator

Karma: 6749
Posts: 571/1374
Since: 06-09-12
We just don't take the retarded questions


Then please explain me what's wrong with this question.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-23-16, 01:01 pm in Mariomaster's custom Tilesets (rev. 3 by ImageBot on 11-21-16, 03:21 am)
Administrator

Karma: 6749
Posts: 572/1374
Since: 06-09-12
Since I kinda moved to NSMB2 hacking I will release a few tilesets I made. They might be unfinished or have some other oddites, but it's kinda too bad to let them just sit unused on my drives.

So use them anywhere in your projects where you want. Credit is apprechiated.

Have fun




woolybeach.nmt


cookieiceland.nmt
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-27-16, 11:14 pm in Stompable Blocks
Administrator

Karma: 6749
Posts: 578/1374
Since: 06-09-12

I made a small hack some time ago, which allows you to have stompable big boxes.

Here the code:

#include "nsmb.h" void changeTileAny(void* ptr, int x, int y, int t) { //changeTile uses values from a table instead of actual map16 tile numbers. //With this hack we can set any tile numbers. //T is a Map16 tile number. setTileTable[0] = t; changeTile(ptr, x, y, 0); setTileTable[0] = 0; } void hook_020FD1D4(MarioActor *athis) { // Check if Player is Groundpounding if ((athis->groundPoundRelated77E & 0x2) != 0) { u32 xPos = (athis->xPos>>12) / 16; u32 yPos = ((-athis->yPos)>>12) / 16; int tb = getTileBehaviorAtPos2(xPos*16, yPos*16); int tbN = (tb & 0xF0) >> 4; // Checks if Power-Up state isn't Mini or small Mario if (tbN == 0xE && (athis->marioPowerupState == 0 || athis->marioPowerupState == 4)) return; if (tbN == 0xF || tbN == 0xE) { // Groundpounded on Block with correct behavior u32 sx = xPos; u32 dx = xPos; u32 sy = yPos; u32 dy = yPos; // Get width and height of block for (int i=-1;; i--) { int ctbN = (getTileBehaviorAtPos2((xPos+i)*16, yPos*16) & 0xF0) >> 4; if (ctbN == 0xF || ctbN == 0xE) sx--; else break; } for (int i=1;; i++) { int ctbN = (getTileBehaviorAtPos2((xPos+i)*16, yPos*16) & 0xF0) >> 4; if (ctbN == 0xF || ctbN == 0xE) dx++; else break; } for (int i=1;; i++) { int ctbN = (getTileBehaviorAtPos2(xPos*16, (yPos+i)*16) & 0xF0) >> 4; if (ctbN == 0xF || ctbN == 0xE) dy++; else break; } // Destroy the block for (int x=sx; x<=dx; x++) { for (int y=sy; y<=dy; y++) changeTileAny(ptrToLevelActor, x*16, y*16, 0); } } } }



Add this to symbols.x:

ptrToLevelActor = 0x020CAD40; changeTile = 0x020AF30C; setTileTable = 0x020C7EAC;


Replace the MarioActor struct in nsmb.h with this one:



The new tilebehaviors, which are now available are:

FY XX XX XX: Stompable box, even stompable with mini or small Mario
EY XX XX XX: Stompable box, not stompable with mini or small Mario

XX can be anything. So you can even make it icy or smth. For working correctly, the blocks should be at least solid on top.
Y will be the particle ID that will be spawned when I update the hack (thanks to  skawo for already telling me the particle spawner function)

Also not all blocks in one "box" have to share the same behavior. The only thing, that matters is, that the first nybble is 0xE or 0xF.


I used some code from  Dirbaio's Tile hack and some parts of the CR code.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 08-15-17, 03:58 pm in Quick Testing (rev. 2 by RicBent on 08-15-17, 04:03 pm)
Administrator

Karma: 6749
Posts: 952/1374
Since: 06-09-12
If you are working on a long level or an advanced asm hack it might be annoying to go through the main menu and the worldmap every single time you want to test something.
Let's bring that to an end!

This hack instantly loads any level you want! You can also specify to load a different level if a specific button is pressed (Look at the "Conditional Overwrites" section of the code). If you press Start while the game boots or you die the hack will disable itself and you can test whatever else.

Be sure to remove "nonintendo.cpp" from your patch template as it might clash with this hack.

#include "nsmb.h"
#include "keys.h"

void QuickLoad()
{
    u32 *lives = (u32*) (0x0208B364);
    *lives = 99;

    // Default (1-1, Area 1, Entrance 0)
    u32 world = 0;
    u32 level = 0;
    u32 area = 0;
    s8 entranceId = 0xFF;   // 0xFF = Start Entrance set in Level

    u32* keysDw = (u32*)(0x02087650);
   
    // Conditional Overwrites
    if (*keysDw & KEY_A)
    {
        // If A is pressed go to 8-2, Area 1, Entrance 1
        world = 7;
        level = 1;
        area = 0;
        entranceId = 1;        
    }
    else if (*keysDw & KEY_X)
    {
        // If X is pressed go to 1-3, Area 1, Entrance 0
        level = 2;
    }

    loadLevel(0xD, false, world, level, area, 0, 1, 0, 0, true, entranceId, 1);
}


bool kill = false;

// Instantly load MainMenu
void hook_0200089c()
{
        (*(vu32*)0x023FFC20) = 0x100;
}

// MainMenu -> LoadLevel
void hook_020D339C_ov_09()
{
    if (kill)
        return;

    u32* keysDw = (u32*)(0x02087650);
    if (*keysDw & KEY_START)
    {
        kill = true;
        return;
    }

    loadSave(0, (void*)(0x02088BDC));
    QuickLoad();
}

// Worldmap -> LoadLevel
void hook_020CF108_ov_08()
{
    if (kill)
        return;

    u32* keysDw = (u32*)(0x02087650);

    if (!(*keysDw & KEY_START))
        QuickLoad();
    else
        kill = true;
}

I know that this is very hacky, but it's only for testing anyways
_________________________
GitHub - Kuribo64 - YouTube
Posted on 06-22-15, 04:48 pm in NSMB Worldmap Editor (rev. 5 by RicBent on 06-22-15, 05:55 pm)
Administrator

Karma: 6749
Posts: 448/1374
Since: 06-09-12
Good news!

I succesfully made the editor able to mod the different frames of the paths.

Here a little example of what's possible:



Now I have to implement that you can actually add frames to an animation.

Here is also a new buid for you containing that function: NSMB Worldmap Editor v1.2
_________________________
GitHub - Kuribo64 - YouTube
Posted on 08-06-15, 05:14 pm in Tileset Animations Hack (rev. 13 by ImageBot on 11-21-16, 03:16 am)
Administrator

Karma: 6749
Posts: 486/1374
Since: 06-09-12
Warning: You shouldn't try this "tutorial" if you don't have some basic ASM hacking/C++ knowledge. This is also very basic and only explains the important parts to make it work. If you have any questions feel free to ask

 Dirbaio made an ASM hack for the Comunity Remix, allowing custom tileset animations. If you don't know what I am talking about look the beneath video (I'm not talking about custom tile behaviors). It works like the lava or conveyor animations in the castle tileset. On IRC I asked him how it works and how to get it to work. So this is what this thread is about.



First of all the code:
#include "nsmb.h" int frame = 1; u16* charPtr = NULL; u16* animationFile = NULL; int *tileset1ID = (int*)(0x020CACBC); void copy8Tile(int dn, int sn) { u16* destPtr = charPtr + dn * (8 * 8 / 2) + (256 * 48 / 2); u16* srcPtr = animationFile + sn * (8 * 8 / 2); for(int i = 0; i < 8*8/2; i++) destPtr[i] = srcPtr[i]; } void copyTile(int dx, int dy, int sx, int sy) { sy += sx / 4; sx %= 4; copy8Tile(dx*2 + dy*64, sx*2+sy*32); copy8Tile(dx*2+1 + dy*64, sx*2+1+sy*32); copy8Tile(dx*2 + dy*64+32, sx*2+sy*16+8); copy8Tile(dx*2+1 + dy*64+32, sx*2+1+sy*16+8); } void hook_020b8370() { frame++; if(frame == 4*6) frame = 0; charPtr = G2_GetBG2CharPtr(); if (*tileset1ID == 67) copyTile(0, 0, frame%4, 0); } void hook_020AE318() { animationFile = (u16*) allocFromCacheTable(28672); loadFileByExtId_LZ_Dest(179 - 0x83, animationFile); //ExtID 179 -> wrecking_crew.narc }


And now how to use it:

1. Create a LZ compressed ncg that is 64 wide and as many blocks heigh as the count of your wished animated tiles, that contains 4 frames of your animation from left to right. This tool helps you with the creation. Import the generated .bin and LZ compress it. The image should look like this:



2. Import it into ARCHIVE/wrecking_crew.narc

3. Get the size of the file (in decompressed form!)

4. Go to line 39. You'll see "allocFromCacheTable(28672)". In the braces write the size from step 3.

5. Go to line 34. You'll see "if (*tileset1ID == 67) copyTile(0, 0, frame%4, 0);" That 67 is the tileset ID that'll get animated. Of course you can change it. Now the interesting part: That 0, 0 in the braces are the tile coordinates in your tileset gfx. Top-left tile is 0, 0.



So the waterfall tile is 0, 0. That last 0 in the braces is the row of the animated tile in the animations ncg. Copy and paste that line as often as you wish to.

6. Make and insert the code


Of course you can play with the code and do stuff like more frames, animations for different tilesets and much more with it.
If someone cares I'll tell you how all this works and what each line does
Of course all credit goes to  Dirbaio.

Edit: Of course you can do Jyotyu animations, too. Just remove that "(256 * 48 / 2)" in line 11.
Edit: You can hook 0x020B68CC if yöou want the animations to update more often. (0x020B68CC has something to du with the coin animations)
_________________________
GitHub - Kuribo64 - YouTube
Posted on 11-16-15, 11:05 pm in nsmb2 NSML - New Super Mario Land (rev. 1 by ImageBot on 11-21-16, 03:17 am)
Administrator

Karma: 6749
Posts: 512/1374
Since: 06-09-12
Just to show off a NSMB 2 Custom Level. This one will probably also be included in NSML, so why not show it here, too?






Will upload the level later
_________________________
GitHub - Kuribo64 - YouTube
Posted on 01-05-16, 09:04 am in Create a sunset effect
Administrator

Karma: 6749
Posts: 524/1374
Since: 06-09-12
Yes, this is the first part of all the NSML stuff.

At first two screenshots showing what you will get:



1.) Download this pack: http://www.mediafire.com/download/hy9uzslo6w5v8gy/NSML+Sunset+Effect.zip

2.) Replace BG_ncl/d_2d_A_J_jyutyo_R_ncl.bin and obj/I_enemy_R_ncl.bin. You can also replace an other Jyutyo color if you want, but we'll go with red in this case.

3.) Replace polygon_unit/evt_tclod1_a.nsbtx with the one in the pack.

4.) Now go to any level. It has to use an entirely black palette (an example one is also in the pack // Snow (Night).nmt).

5.) The most important part: Place 8 times sprite 324 with the spritedata "00 00 00 B0 00 00". How it works: 2d "things" like tilesets bgs, goombas, etc. can only be affected by one FG Effect. So we place a lot of them in a level with an high opacity, so the BG is only slightly darker while all 3d stuff is black.

6.) Now the tricky part: As you might know the Jyutyo colors are bound to the BG by an table in an overlay. Luckyly there is already a tutorial for that: http://nsmbhd.net/thread/22-changing-which-tileset-0-palette-is-used-for-each-bg-tutorial/ Just set some BG to red.

7.) Select the BG you modified.

8.) Done

The example level in the pack requires an BG in slot 67 which is set to "red" in the overlay. It uses the "Snow (Night)" tileset.


Use this wherever you want. Credit would be greatly apprechiated.
_________________________
GitHub - Kuribo64 - YouTube
Posted on 02-09-16, 08:22 pm in NSMB2 editor upcoming: CoinKiller (rev. 1 by ImageBot on 11-21-16, 03:18 am)
Administrator

Karma: 6749
Posts: 534/1374
Since: 06-09-12
So, I'll give all members who aren't already active on Kuribo64 a short progress update.

CoinKiller is now able to show almost all possible types of things in the editor:



I also worked on a tileset editor which is almost complete:



Currently I am working on the core level editor, so we can finally release something
If anyone is interested into this or has any comments/suggestions go here.

(Also: If anybody wonders, why I'm not that active here anymore, you now got an answer)

_________________________
GitHub - Kuribo64 - YouTube
Posted on 08-12-16, 09:31 pm in Misc. patches thread (rev. 5 by ImageBot on 11-21-16, 03:22 am)
Administrator

Karma: 6749
Posts: 614/1374
Since: 06-09-12
Wobble Rock Remodel Code:
repl_02147BCC‬_ov_30: LDRB R0, [R4, #0x8] CMP R0, #0x0 LDREQ R0, =0x4B2 @Copy from here CMP R0, #desired nybble value to use in NSMBe LDREQ R0, =file id of model - 131 @...to here and paste before the "BX LR" to add more models BX LR nsub_02147BFC_ov_30: STMFD SP!, {LR} SUB SP, SP, #4 LDR R0, =0x4B2 MOV R1, #0 BL loadFileByExtId_3dModel @Copy from here LDR R0, =file id of model - 131 MOV R1, #0 BL loadFileByExtId_3dModel @...to here and paste before the "MOV R0, #1" to add more models MOV R0, #1 ADD SP, SP, #4 LDMFD SP!, {PC}




Works on nybbles 11-12.



Red Spinning Platforms Remodel Code:

Remodel code for the Square Spinner:
repl_02187344‬_ov_64: LDRB R0, [R4, #0x8] CMP R0, #0x0 LDREQ R0, =0x5D7 @Copy from here CMP R0, #desired nybble value to use in NSMBe LDREQ R0, =file id of model - 131 @...to here and paste before the "BX LR" to add more models BX LR nsub_0218737C_ov_64: STMFD SP!, {LR} SUB SP, SP, #4 LDR R0, =0x5D7 MOV R1, #0 BL loadFileByExtId_3dModel @Copy from here LDR R0, =file id of model - 131 MOV R1, #0 BL loadFileByExtId_3dModel @...to here and paste before the "MOV R0, #1" to add more models MOV R0, #1 ADD SP, SP, #4 LDMFD SP!, {PC}

To remodel the Triangle Spinner use:
repl_02187028_ov_64: nsub_02187060_ov_64:

To remodel the Rectangle Spinner use:
repl_02186CF8_ov_64: nsub_02186D38_ov_64:



Works on nybbles 11-12.


_________________________
GitHub - Kuribo64 - YouTube
Pages: 12345 »