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

Author Topic: How to use SMB Utility and other level editors?  (Read 3671 times)

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
How to use SMB Utility and other level editors?
« on: March 17, 2016, 07:45:23 pm »
I am a bit interested in using the level editing utilities available on this site for the purposes of doing stuff like:
  • Adding objects to places other than where they were used in the original game
  • Expanding levels
  • Adding levels and worlds
SMB Utility, for instance, seems like a fascinating tool for editing things in Super Mario Bros. (1985) for the NES. Although it is categorized under the "Beginner" level, I don't know all the ins and outs of all the features offered with the utility, primarily because there is no help file that instructs users on how everything in the utility works, but rather only gives information on who made it and when.

For example, one of the things I want to experiment with using the utility, other than those listed above, is making a pipe you can't go down one that you are able to go down, and then creating a new underworld room. (I have not yet decided whether I want to use one that already exists in the game or to create an entirely new one.)

Is it possible to add objects and expand and add levels to SMB using SMB Utility? And are there any resources online that one can use to figure out how SMB Utility and other level editors for other games work? Forgive me for all of these concerns, but I often feel like a total idiot when it comes to programming, editing, and making games. :-[

Seihen

  • Sr. Member
  • ****
  • Posts: 405
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #1 on: March 17, 2016, 09:33:18 pm »

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #2 on: March 18, 2016, 09:45:47 am »
http://lmgtfy.com/?q=how+to+use+smb+utility&l=1

Just gonna put that here.
Thank you. :) I'm so sorry I never even thought of that! :-[

Edit: If I have any more questions or concerns regarding the utility, I'll post them here.

Edit #2: There is a little dilemma here. From the sources provided via a simple Google search on how to use SMB Utility, including a series of six videos on how to use it, I didn't get an answer to my question on how to create/add new instances of objects and enemies already found in the game. Nor did I get myself an answer to how to lengthen levels or add entirely new levels to the game.

It would be convenient if there was a way to enable a simple copy-and-paste method using objects and enemies found in the game, or have some kind of toolbox for all the objects and enemies, where you could select an extra object or enemy you want to add, and then place it anywhere in the game you want.

It would also be convenient to be able to create your own levels, at least virtually, from scratch, as well as using the models that exist as levels in the game.

Is this kind of stuff even possible via using SMB Utility?
« Last Edit: March 19, 2016, 11:30:05 am by RetroGameFan »

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #3 on: March 25, 2016, 11:25:47 am »
Using SMB Utility, is it possible to add and delete objects in SMB as well as to change them? And is it possible to create your own levels from scratch in the game instead of just changing stuff around in existing levels?

I haven't gotten any adequate help from YouTube, and the guy with videos there seems a bit under-experienced. :banghead: Does anybody know how everything in the utility works?

dougeff

  • Sr. Member
  • ****
  • Posts: 359
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #4 on: March 25, 2016, 11:28:21 pm »
I've not used this tool, but this guy on YouTube seems to explain the basics of it...
https://youtu.be/W5hfAckBj3o

But, I do know a hell of a lot about how objects work in SMB. What specific questions do you have?

It looks from the video that you can neither create or destroy the objects of a level. That makes sense, because SMB has (almost) no free space in which to add new objects.

(If you truely can't delete objects...)
You could "hide" objects just past the castle at the end of the level, and use a "stop scrolling" command at the end to prevent the user from seeing those blocks.

Here's some random thoughts...

There is also a limit to how many things you can put on each page. Also, I can explain the "page flag". When the game is parsing a level, it will draw every object on the current page...until it sees a page flag, at which point it will start drawing objects on the next page.

There are 2 types of pipes. Active and inactive. You must set a new "area pointer" before the player reaches the active pipe, or else the pipe will just send you to the start of the level. If there is only one "area pointer" set, but multiple active pipes, they all have the same destination.

Multiple areas (underground/water/etc) can share the same level ending. You just need to put a pipe at the end of your area, with an "area pointer" that leads to that ending area (with a flagpole).

If you fall through the floor of a cloud world, its the same as going through a pipe...you go wherever the "area pointer" sets to go. If no area pointer is set, you go to the start of the level.

Using a level timer of "0" will put the remaining time from the previous level back up as the current time. If this was the very first level, it will = zero, and the game will be unplayable (instant death).

---------------+
If you make a level from scratch, NOT using this utility, then it would be easy to add and delete objects...by hand editing the disassembly and reassembling. Ok. Maybe not "easy", but possible.

Also possible, but 1000x harder, the source code for the tool is available. I suppose you could add the ability to add/delete objects, by writing it into the source code and recompiling.  ;)

« Last Edit: March 25, 2016, 11:37:09 pm by dougeff »
nesdoug.com -- blog/tutorial on programming for the NES

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #5 on: March 26, 2016, 08:28:19 am »
I've not used this tool, but this guy on YouTube seems to explain the basics of it...
https://youtu.be/W5hfAckBj3o

But, I do know a hell of a lot about how objects work in SMB. What specific questions do you have?

It looks from the video that you can neither create or destroy the objects of a level. That makes sense, because SMB has (almost) no free space in which to add new objects.

(If you truely can't delete objects...)
You could "hide" objects just past the castle at the end of the level, and use a "stop scrolling" command at the end to prevent the user from seeing those blocks.

Here's some random thoughts...

There is also a limit to how many things you can put on each page. Also, I can explain the "page flag". When the game is parsing a level, it will draw every object on the current page...until it sees a page flag, at which point it will start drawing objects on the next page.

There are 2 types of pipes. Active and inactive. You must set a new "area pointer" before the player reaches the active pipe, or else the pipe will just send you to the start of the level. If there is only one "area pointer" set, but multiple active pipes, they all have the same destination.

Multiple areas (underground/water/etc) can share the same level ending. You just need to put a pipe at the end of your area, with an "area pointer" that leads to that ending area (with a flagpole).

If you fall through the floor of a cloud world, its the same as going through a pipe...you go wherever the "area pointer" sets to go. If no area pointer is set, you go to the start of the level.

Using a level timer of "0" will put the remaining time from the previous level back up as the current time. If this was the very first level, it will = zero, and the game will be unplayable (instant death).

---------------+
If you make a level from scratch, NOT using this utility, then it would be easy to add and delete objects...by hand editing the disassembly and reassembling. Ok. Maybe not "easy", but possible.

Also possible, but 1000x harder, the source code for the tool is available. I suppose you could add the ability to add/delete objects, by writing it into the source code and recompiling.  ;)


That's a very thorough explanation you gave there of the workings of SMB, dougeff. Therefore, I now think that SMB Utility is just not the right tool for me. I guess that if I want to edit SMB the way I want to, I'd have a lot of work cut out for me.

I trust you a lot on this one, since you seem to have a great understanding on the workings of NES hardware and software, from what I've read on the link to your website. I hope I'm not being too personal. ;)

dougeff

  • Sr. Member
  • ****
  • Posts: 359
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #6 on: March 26, 2016, 09:49:27 am »
You can certainly use SMB Utility to PLAN your levels, it gives you all the object codes (hex values).
nesdoug.com -- blog/tutorial on programming for the NES

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #7 on: March 26, 2016, 09:57:49 am »
You can certainly use SMB Utility to PLAN your levels, it gives you all the object codes (hex values).

What exactly do you mean by "plan" my levels?

dougeff

  • Sr. Member
  • ****
  • Posts: 359
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #8 on: March 26, 2016, 10:58:05 am »
Well, it's got all of the SMB background and enemy objects and their object code #s. Lets say you want a level with lots of coins. Use this tool to edit objects into coin objects. Lay out the level as you want it to look. Then, you would save all the level data (I'm not sure if there is an easy way to export one level's data with this tool)...I did see on that YouTube video a screen with all the objects, so, you might just have to copy that...IDK.

That's the same data you would be using no matter what method you use, so you might as well use a fancy tool like this to generate it.

You could then import (or hand type) the data into the disassemby, if you wanted to do more complicated hacking or level design.

Honestly, having the ability to test your level immediately in the tool's emulator is a great feature. Good level design requires lots of testing.
nesdoug.com -- blog/tutorial on programming for the NES

RetroGameFan

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #9 on: March 26, 2016, 11:10:35 am »
OK, thanks! :)

KevvyLava

  • Jr. Member
  • **
  • Posts: 17
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #10 on: April 08, 2019, 01:39:48 pm »
Well, it's been years, but my question appears to be related to some of this.  I'm trying to understand how to set "area pointers".  I rearranged a bunch of levels in my SMB rom and now 2-2 is in the 1-2 position.  The level loads normally, but when I try to go in the pipe to exit, it starts the level over as if it was the Minus Worlds.  I have tried editing the pipe itself, the blocks on the bottom of the screen that modify the ground, and anything else I could find.  I feel like the way to set "area pointers" is either a complex process, or it's very simple and I'm a dope for not seeing it.

Any help would be greatly appreciated. I can provide screenshots or video later if that helps anyone.

Eden.GT

  • Full Member
  • ***
  • Posts: 103
  • Hardcore SMB1 Player and Hacker
    • View Profile
Re: How to use SMB Utility and other level editors?
« Reply #11 on: April 11, 2019, 06:34:15 am »
Well, it's been years, but my question appears to be related to some of this.  I'm trying to understand how to set "area pointers".  I rearranged a bunch of levels in my SMB rom and now 2-2 is in the 1-2 position.  The level loads normally, but when I try to go in the pipe to exit, it starts the level over as if it was the Minus Worlds.  I have tried editing the pipe itself, the blocks on the bottom of the screen that modify the ground, and anything else I could find.  I feel like the way to set "area pointers" is either a complex process, or it's very simple and I'm a dope for not seeing it.

Any help would be greatly appreciated. I can provide screenshots or video later if that helps anyone.


Does this solve your problem? If not, screenshot the issues please.
http://www.romhacking.net/forum/index.php?topic=27267.msg365784#msg365784
Is the pool clean?