News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Author Topic: Super Mario 3 for Nintendo hack (I would like to make one) Help?  (Read 1016 times)

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Long story short... I dont see many tutorials.  Even on youtube, there are only a few small tutorials.

Im assuming Mario workshop is my best option to make a nintendo rom hack?

I tried to use it.. but am struggling pretty hard.

If I click add 3 or 4bit, or even enemy, it wont pop up.

In order to change or add anything, i have to click on something thats already there.

I want to make a great hack... I have time.. I just don't know where to start.

Any help would be awesome.

April 10, 2018, 05:43:18 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
100 views, nothing yet.

Let me open it up a tad more.

So i Finally got it to where it allows me to add enemies and objects, i had someone checked where it wouldn't let me.


My recent problem is this....

I am on level 2, and it goes to m3 level 2, which is that hilly level.  I prefer not to have to copy each level design.

I wanted to use sky, level 6s format, for level 2.

However, every time I try, it either crashes, or goes back to hilly.

I tried to copy the code for objects and enemies, but when I reload it... like i said.. back to hilly.

I wish there were hot keys also.  Maybe there is?

Do  i have to click  add enemy or object every time?  is there way to hit a key and allow me to just spam what I need to?
« Last Edit: April 10, 2018, 05:43:18 pm by BuscemiS19 »

Quick Curly

  • Full Member
  • ***
  • Posts: 104
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #1 on: April 11, 2018, 03:26:52 pm »
There is more scattered information spread around many different corners of the Internet, along with the entire SMB3 disassembly, as opposed to specific tutorials, I would say.

SMB3 Workshop is excellent for creating/editing/viewing levels/areas. However, it doesn't help you modify everything.
The SMB3 Map Editor is perfect for taking care of everything to do with the overworld maps.
You can edit your title screen with SMB3TE.
You can edit the graphics with graphics editors like Tile Layer Pro and YY-CHR, if it's something that you're considering as well.
For other modifications in the ROM file, you're better off having a hex editor (like HxD or WindHex32) and/or a special emulator (for example, FCEUX/FCEUXD) to handle the ROM file more directly. However, it's recommended that you build some experience first, since you need to have an idea of what you're looking at and trying to do.

It sounds like you might have figured out your objects and enemies problem.
With SMB3 Workshop in general, yes, you need to click on one of the buttons between 3-byte objects, 4-byte objects, and enemies depending on which one you want to add next, and then you have to click on the screen to add it in, each and every single time.
If "Freeform Mode" under the Edit menu is checked, and "Limit Size" is unchecked, you should be able to add an object and/or an enemy. Otherwise, the editor should prevent you from doing so. However, this is for a very good reason, and it's best to learn this as early as possible in your ROM hacking journey: You do NOT have unlimited space to work with. The ROM file you are modifying is a fixed size, and each level cannot be exceeded by even one byte if you are editing the levels using the original game's ROM offsets.

The defaults for adding objects and enemies are:

3-byte object: Bank 0, Type 0 (00) (ex. "Background Hills A" in 1-Plains, "Door" in 2-Dungeon, etc.)
4-byte object: Bank 2, Type 176 (B0) (ex. "Blue X-Blocks" in 1-Plains, "Blocks with circles in the middle" in 2-Dungeon, etc.)
Enemy: Type 114 (72) (Goomba)

However, if there's a specific object or enemy that you're using a lot of and don't want to switch to multiple times in a row, select an object or enemy, and under the Object menu, select "Clone Object/Enemy". Then, instead of the regular default, that will be the starting object/enemy when you add another one in, until you copy another one, or close the program until next time.
Remember that left mouse clicks and drags deal with 3-byte objects and 4-byte objects, while right mouse clicks and drags deal with enemies. You can left-click the "Add an enemy" button and add it into your editing area with a left click, but to move the enemy, you'll need to use the right mouse clicker and hold it to drag the enemy to the spot that you want it.

As for your new problem regarding level crashes, that is because of yet another limitation within the original game's engine.
You cannot change a level's Object Set, because the levels are laid out within specific banks of the ROM file.
Some level types are interchangeable, but only because they share the same bank.

Code: [Select]
Interchangeable:
 - Sky & Ice
 - Piranha Plant, Giant & Cloudy
 - Water & Pipe

       1 - Plains: 0x1E509 - 0x2000F
     2 - Fortress: 0x2A7F7 - 0x2C00F
            *NOTE: 0x2A7F7 - 0x2A866 = 7 End Castles
        3 - Hilly: 0x20587 - 0x2200F
          4 - Sky: 0x227E0 - 0x2400F -----------------+
5 - Piranha Plant: 0x26A6F - 0x2800F -----+           |
        6 - Water: 0x24BA7 - 0x2600F -----+-----+     |
         8 - Pipe: 0x24BA7 - 0x2600F -----+-----+     |
       9 - Desert: 0x28F3F - 0x2A00F      |           |
         A - Ship: 0x2EC07 - 0x3000F      |           |
        B - Giant: 0x26A6F - 0x2800F -----+           |
          C - Ice: 0x227E0 - 0x2400F -----+-----------+
       D - Cloudy: 0x26A6F - 0x2800F -----+
  E - Underground: 0x1A587 - 0x1C00F

This is what you would have to do instead if you want 1-2 in your hack to be a Sky level; specifically, the original 1-6.
Open your ROM in the SMB3 Map Editor. Under the Mode menu, you can see that "Viewer" is checked by default. Select/switch to "Pointers".
You should see blue squares over each space on the map that can potentially be entered by Mario/Luigi, with Pointer #1 for 1-1 selected by default.
Left-click on 1-2 (labelled Pointer #3). This is the pointer that you want to change. Press the Enter key, and a "Select Stage" window appears.
Select 'World 1-6'. Press OK. Next, select the "Implement Changes (Do Before World/Mode Change)" option in the main window. Afterwards, under the File menu, select Save. To ensure your changes are saved successfully, and before you change to a different Mode, you have to do this every single time you change something.

Now, consider these two points while you are changing things within the SMB3 Map Editor.
Firstly, you will most certainly change your overworld layouts in the future so that they won't look like the maps in the original game. Therefore, the pointer you need to modify to make sure that your 1-2 points to the original 1-6 Sky level might not necessarily be Pointer #3, as the pointers are laid out going left-to-right, and up-to-down.
Secondly, to simplify testing levels as you are creating them, you can always edit the pointer for 1-1 to load up the level that you are currently editing while play-testing your hack in an emulator, if you choose to do so. This saves you time from having to play through every other level before you make it to the level you could be currently editing. Of course, you'll probably want to beta test the whole game from start to finish once or twice before you eventually release it.

Another point to consider in general:
If you have your ROM file open in SMB3 Workshop to edit the levels, but you also open it up in another utility to edit something else, like the SMB3 Map Editor to modify map details or change a pointer for testing purposes, or the hex editor in FCEUX/FCEUXD to modify level headers directly or other variables in the game, you HAVE to reopen your ROM in any other utilities that you have it open in. Think about it. You are saving changes to your ROM in Utility B, but the ROM is still actively open in Utility A in the state it was in before you just changed and saved it in Utility B. If you change something and save your ROM in Utility A without reopening it first, the changes you just made and saved to it in Utility B will be lost.
Therefore, if you use multiple utilities for different hacking purposes, be sure to take care and keep track of your modifications. To eliminate any potential risk, only ever have your ROM open in one utility at a time, save your ROM and exit the utility when you're done, and then open the new utility, followed by opening your ROM in that utility, so then there's no doubt that your ROM is in the most recent state when opened in the next utility.

It might not be a Romhacking.net thread, and for that I apologize, but I definitely recommend that you read through the "General SMB3 Hacking Thread" on Board 2. While there are a lot of posts that were made in regular conversation, there is a lot of valuable information, general and hacking related, buried within the (currently) 22 pages of posts.
General SMB3 Hacking Thread (Board 2 Link)

Sorry if this post is a lot to take in, and/or if the directions provided haven't supplied you with the information that you've requested. If you can possibly provide anymore specific details about your actions and processes taken so far, and even provide some visuals of any issues in question, perhaps I and/or other members can attempt to provide you with some more direct assistance.

Until next time, hopefully you're able to figure more things out as you continue playing around with SMB3 Workshop and other utilities, and discover and learn from more resources available out there.
As always, best of luck. You can do it! Take care. :)

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #2 on: April 12, 2018, 01:00:48 am »
Ah... Thank you soo much.  You answered many of my original questions, and the follow up ones.  I guess at this point I will just practice, and reread everything you gave me.  I really appreciate it.  I will post an update in a week or so.  I have 1 level finished, and I was pretty happy with it.

sics

  • Jr. Member
  • **
  • Posts: 90
    • View Profile
    • Deviantart
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #3 on: April 12, 2018, 07:12:53 pm »
 Do not go crazy, try this application, you will see that it is easier 

  NoDice-SMB3.7z.... Level Editor
  Pack-DLL.7z......... Libraries that usually need to work

Official website  (Currently no longer available)

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #4 on: April 14, 2018, 12:05:09 pm »
ugh... I was also really happy to see your post.

The problem is.. I have no idea where to start.  I don't even know how to open the file, it won't open.

From this site...

http://forums.nesdev.com/viewtopic.php?f=10&t=14857

 I assumed you would have to use command prompt?  About 5 posts down someone actually showed viewers how to open these files.

Command prompt, nesasm smb3.asm    but after I type this stuff in, it errors or says not an open code? or something like that.

Basically.. everytime I enter it in, it fails.

I'm not even sure I'm doing it right.

sics

  • Jr. Member
  • **
  • Posts: 90
    • View Profile
    • Deviantart
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #5 on: April 15, 2018, 09:22:40 am »
Originally apologize the NoDice folder is called bin, the confusion occurs because I passed my copy of the program since it is not currently on the official page, the dll pack had created it in the past to solve another user's problem  ;)


 To compile the game you use "build-SMB3" the output file is created in the "SMB3" folder.

 I hope you enjoy it  :thumbsup:
« Last Edit: April 15, 2018, 09:30:08 am by sics »

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #6 on: April 15, 2018, 12:59:18 pm »
Thanks again curly + sicks.   Ive invested many hours in just these basic programs alone.  I give you guys props if you actually write the codes yourself.

I am wondering... is there a way to upload the 2-3 levels I have made on Workshop, to No dice?

If not I will just redo them. 

sics

  • Jr. Member
  • **
  • Posts: 90
    • View Profile
    • Deviantart
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #7 on: April 20, 2018, 12:07:13 am »
 I already answered by private :thumbsup:

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #8 on: April 29, 2018, 01:24:33 pm »
As of right now I am roughly 7 boards in.  I am excited to have people try this kaizo type game.   I tried to add some new, or altered tricks :)

I am having an issue right now with the Spade card game.  Having power ups would defeat the purpose.  I thought of keeping them there for people who prefer or need them, but honestly.. I'd like to remove them.

Either by completely removing, or switching them to coins + 1 ups. 

Is there a way to edit this with Workshop or map editor?  I have nesam but I don't know how to transfer levels so I continued using workshop right this second.  At least for the first game I make.

Anyone able to give me steps, video, or link to change the spade game?

The 1 idea I have.. which would be a tad annoying, but should work would be using a game like kaizo, or kamikaze and transferring my levels over.  Im assuming that would work?  But if there's an easier way, please tell!

Quick Curly

  • Full Member
  • ***
  • Posts: 104
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #9 on: April 30, 2018, 04:05:04 pm »
In my opinion, this would be one "easier" way to prevent the N-Spade Bonus card game. As far as I can tell, it works as intended.
Like I mentioned in my previous post, more in-depth modifications can't necessarily be accomplished with the game-specific utilities like SMB3 Workshop or the SMB3 Map Editor unless the appropriate ROM offsets are programmed in. (For instance, in SMB3 Workshop, under the Edit menu, you can select "Edit Miscellaneous" to modify some in-game settings from directly within the level editor. However, the possibilities are limited to the included variables.)
Therefore, you'll have to use a hex editor (like the one in FCEUX/FCEUXD, or a standard hex editor like HxD or WindHex32) to change these bytes at the appropriate offsets in the ROM file (not RAM or PPU).

0x16CDF-0x16CE1 (0x3)
Change "99 15 7F" to "EA EA EA".

0x16CFD-0x16CFF (0x3)
Change "8D F6 04" to "EA EA EA".

To explore exactly what these changes accomplish:

Old:

$ACCC is 0x16CDC in the ROM.

Code: [Select]
$ACCC:BD 4F AC  LDA $AC4F,X @ $AC4F = #$09   ; N-Spade Bonus.
$ACCF:99 15 7F  STA $7F15,Y @ $7F18 = #$00   ; It appears!

$ACEB is 0x16CFB in the ROM.

Code: [Select]
$ACEB:A9 10     LDA #$10                     ; Bonus appearance sound.
$ACED:8D F6 04  STA $04F6 = #$00             ; It plays!

New:

Code: [Select]
$ACCC:BD 4F AC  LDA $AC4F,X @ $AC4F = #$09   ; N-Spade Bonus.
$ACCF:EA        NOP                          ; Why
$ACD0:EA        NOP                          ; you
$ACD1:EA        NOP                          ; do?

Code: [Select]
$ACEB:A9 10     LDA #$10                     ; Bonus appearance sound.
$ACED:EA        NOP                          ; Nothing
$ACEE:EA        NOP                          ; going
$ACEF:EA        NOP                          ; on.

The first change prevents the game from ever adding the N-Spade Bonus (09) to the active collection of sprites on the current world map.
The second change is to prevent the game from playing the sound that indicates the N-Spade Bonus has appeared (it probably seems weird to hear it, only for nothing to appear).

Concerning the previous posts and deciding which utilit(y)(ies) and SMB3 hacking method(s) you would prefer to use, consider what exactly you want to accomplish with your SMB3 hack. Are you going for a simpler hack or a more in-depth hack?

What sics claimed about NoDice being "easier" to use may very well be true - I can't say one way or another because I've never used it - but from the image that I saw of the editor back in the day, it wasn't entirely clear what more the level editor can accomplish and/or how exactly it makes level editing "easier" than SMB3 Workshop. Even from sics' provided GIF, NoDice looks pretty similar to SMB3 Workshop in terms of level building/editing, but possibly accomplishes its goals in different ways. Perhaps the editor's main advantage is being able to work more directly with the accompanying disassembly? In which case, unless you're planning to make an advanced hack, it might be a bit overkill.

My preference for SMB3 Workshop is simply that - my personal preference and opinion that SMB3 Workshop, and everything else that I listed in my previous post, simplifies level editing and modifying SMB3 easier for me; but that's also, admittedly, because those utilities and methods are what I've used frequently and consistently. In summary, "the way I do". Something could be the easiest thing in the world, but the first time you do it, you have to learn how to do it, and that could prove to be very time consuming and difficult. On the other hand, something that is super difficult becomes easier the more that you practice it, to the point that it comes naturally to those who master it, and comes across as impossible to newcomers who have no idea where to start. As I've stated in the past, ROM hacking is a hobby that people have to commit to and become familiar with before they will eventually be rewarded with the successes and accomplishments that they seek in completing their desired projects.

So, with regards to "easily" copying or moving levels designed in SMB3 Workshop to NoDice/nesasm/whatever else, without any personal knowledge or familiarity with the alternative options/methods, my educated guess would be that there's no direct compatibility between the utilities and methods, and that your primary option is to re-design your SMB3 Workshop-built levels again in NoDice to add them to the build of your hack designed through the newer utilit(y)(ies). I could most certainly be completely wrong and out of line about it though. However, we would need someone else to come in and cover all the details for us. SMB3 Workshop has a method of saving levels you create in an M3L format of sorts, but I wouldn't account for NoDice following the same 'outdated' method of that. From what I can recall about the format from some old forum posts, the method wasn't really a sure, reliable answer to saving time, either.

In short, do what you feel is best, and make your hack the way that you want to make it, to the best of your ability.

If you have questions concerning methods involving NoDice and the like, unfortunately, I can't provide specific details for any of that. As it is, I stopped ROM hacking a few years ago, so I'm rusty overall, and have no necessary reason or desire to attempt to use NoDice. However, that's just me, and by no means should it prevent you from using it, especially if it's easier in today's modern world, as sics claimed.

If you have questions concerning the old utilities and methods that I previously listed and covered, I'll try my best to continue helping you out when I have the time and provided I can figure it out again for myself. :P

Apologies for the long post. Best of luck, as always.

BuscemiS19

  • Jr. Member
  • **
  • Posts: 7
    • View Profile
Re: Super Mario 3 for Nintendo hack (I would like to make one) Help?
« Reply #10 on: May 02, 2018, 01:35:57 pm »
Thanks again Quick.  I wouldn't have gotten this far without the help.  I'm eager to finish the game just to get it out there, but i have to fight the temptation of short changing it.  I'd like to do 15-20 levels min, I'm roughly at 8 right now.  I'm trying to create some new kaizo tricks, and twist some older ones.

I tend to get stuck for a couple days, then usually figure something out.

Here's 2 of my levels if people want to check them out.  I had to use save states, and edit the video for the most part.

https://www.facebook.com/shaun.buscemi/videos/10156760957525110/             

https://www.facebook.com/shaun.buscemi/videos/10156755441695110/

I also have a couple cool ideas.. but not sure if they will work.  ;)