Banner
Views: 236,272,219
Time: 2013-05-22 10:26:22 AM
25 users online: o 1UPdudes, Alcaro, o AnybodyAgrees, Daniel08, Donaldthescotishtwin, FlamingRok, gamergod521, K1ngHacks, Kinopio, o Ladida, leod, levelengine, Lightvayne, LuigiBlood, MarioFan22, mrdeppelman, Pokeymeister80, o Richard Nixon, saske, o ShadowPhoenix, shreerocks1324, shrine, Silver Scarlet, Tailsko, wiiqwertyuiop - Guests: 33 - Bots: 11Users: 22,858 (1,273 active)
Latest: FUNKY kong ending
Tip: Keep track of ALL patches and hex edits in case you need to transfer your data to a new ROM. It's definitely worth the trouble.
OverWorld Music Updated And Fixed V2
Forum Index - SMW Hacking - Resource and Tool Releases - OverWorld Music Updated And Fixed V2
Pages: « 1 2 »
Hello, I'm fairly new to hacking SMW and this is my first attempt at a decent tool. I finally decided to contribute to the community by making this so I hope everone finds it useful.

OverWorld Music Regions is a program where you can split up the overworld into different rectangular sections, and each section will have a different song. It even works with custom music. It outputs a patch file that you should use with xkas. I based this program off OW ASM so it might be incompatible with some other patches that use OW ASM.Here is a screenshot


You can get the updated program here

You can get the updated source here
The source is a big mess and not commented anywhere. Please don't try to claim you wrote this program as I have spent a great deal of time trying to get this working.

To use this program you need to use .NET framework. You can find it with google if you don't have it. This program also has a bug with drawing rectangles, they need to be drawn from top left, to bottom right. If anyone has any suggestions for this program, please feel free to comment.
Last edited on 2009-06-14 10:16:23 AM by capnc1.
Interesting...I actually created something very similar to this for the Overworld Design Contest back in February. Except the difference was that it was a sprite and I inserted it with Carol's OW spritetool. However, my version was very limited. The music would only change depending on the high bytes of Mario's X and Y coordinates on the Overworld. Your tool looks a lot more useful, and, judging by the looks of it, it seems to be easy enough for even a newbie to use. Nice job.
Aha! Very clever. I would definently use that- does it work for submaps too?

I also did that, but I found that if you don't autogenerate the files, it becomes very boring and cumbersome, all those branches and mindless checks. Glad you're making a tool for it.
I don't suppose you'd be willing to open-source it, would you?
Nice work. Does this work in the way that it changes the values in $1DFB when Mario reaches a specific position (X/Y co-ordinates) on the Overworld? (That's what my sprite did.. but it sucked anyway because if you wanted to change the music in 2 difference places, you'd have to JSR to another piece of code and write pretty much the same thing). Also, does it have an issue where entering a pipe would cause the previous music to play for about a split second before changing?

This program works by creating a bunch of rectangles and storing them in a table. Then every frame the table is checked with a collision detection routine and thats how it decides what song to play. Then it just writes to the music register. Also currently, this program doesn't work with submaps, but with a few easy changes, it could. THere are also a few bugs with this program such as music skipping, and sounding weird, I'm trying to find a fix for it right now.

PS: I will definately consider making it open source.
Last edited on 2009-06-11 06:09:42 AM by capnc1.
Looks great! And it looks N00b compatible!

(That's me, by the way.)
That looks really nice! I'll defenitly check it out!
This is definitely the best submission I've seen to the site by a relatively unknown user. This seems like a great program/patch that could really make things fun for large OWs. Combine this with no OW scrolling and we finally effectively have new submaps (for those who don't want to use a main OW in their hacks). Very nice work! My only question is, how abrupt is the transition between songs when you cross regions? Also, how big is the patch it creates? I'll try this out later, but I'm just curious now. In any event, nice work!
The patches it make are relatively small compared to other patches on this site. The music transitions between places are exactly like they are when going from the overworld to a submap.
Wow, that makes it even better! I never thought (as andy says) to see such a great tool from such an unknown user!

I'll defenitly use it now, this is revolutionary for OW hacking :D
Wow, this looks very good. I'll have to try this tool out.
Quote
You can get the source here


I have a question. What is the "submap.smc" file that is distributed as part of the source?

I also noticed that your executable is 1.5MB in size; this is unlikely for something that is pure code. You wouldn't happen to be distributing the actual SMW ROM as an embedded resource of your assembly, would you?
That submap.smc is a rom I used to test the program with. I forgot to remove it and I think it is against the rules to distribute ROMs so I'm going to remove it. Thanks for bringing this to my attention. As for the size of the executable, i'm not sure why it is so large, I didn't write THAT much code and also there are only four embedded resources, 2 pictures and 2 text files.
Last edited on 2009-06-11 02:43:01 PM by capnc1.
I just updated this program. I fixed a bug where the fade in and out on the overworld doesnt work properly and I also added an option to change the music that plays when you are not in any rectangle. The next thing for me to do is to include support for submaps, so expect that soon.
Are you sure this program works correctly?

The program crashes on me very often. You should add some conditional checks here and there.

The assembly file it generates is kind of bad too, if I look at the code. Assume I chose music #9. Note that I didn't patch the ROM with the output. Assume that I have only used 1 rectangle too.

Code
LDA rectangles,x STA $7F0D0A ... LDA $7F0D0A STA $1DFB ... rectangles: dw $00A8,$00F0,$0018,$00F0,$0009


What is this supposed to do? From what I have noticed, it picks the 5th value from the rectangles table, and stores it into $1DFB, the music register. The bad thing is that it is a word value, not a byte. This means you need a seperate table for music.

Code
LDA $0009 STA $1DFB

So this picks the Ypos Used For Sprite Creation, High Byte value, and stores it in the music register? That doesn't make sense. You might want to change it to
Code
LDA #$09 STA $1DFB


eh

Code
REP #$20 REP #$10

REP #$30 to the rescue.

Code
SEP #$10 SEP #$20

SEP #$30 to the rescue.
Code
LDA $7F0D08 CMP #$0001 BEQ Ret

You can change this to:
Code
LDA $7F0D08 BNE Ret

Since $7F0D08 is used as a 'collision bit' (I think) a simple BNE Ret is sufficient.

Remember that the OW ASM patch you used runs every frame. Too many unneeded code can cause slow down.

Also, in these cases, the program crashes/throws out an exception/the program works wrong:
- When you load a bitmap file which is smaller than the main OW
- When you load something other than an image file, during the bitmap load dialog.
- When you press "Delete" when there isn't a box around
- You can save when there is not a box around, which can output a 'bad' assembly file.
- (EDIT) You can paste stuff in the music number selection box, which throws an exception when you press 'set song'

That was all I could find. Like I mentioned, I didn't try the patch. But looking at the code, the patch malfunctions.
Last edited on 2009-06-14 06:23:49 AM by Ersanio.
Thanks for finding all those problems, I'll fix them right away!

I fixed everything you mentioned except I wasn't sure what you meant by having another table for music so I didn't fix that.
Last edited on 2009-06-14 10:18:22 AM by capnc1.
Wow, thats pretty damn cool, and user friendly.
first thing I noticed was the really wierd file size, are you just storing the map as a bitmap? You can import images as PNG without issue, atleast in the C# IDE.

Cool concept but it looks like the program needs to be refined a bit. Catch those exceptions like post above says, it's incredibly simple. The drag rectangle can be made to drag from origin to left/up with a simple mod: When the user presses the dragging mouse button note the origin point somewhere. During MouseMove event or whatever, if the cursor position is to the left/above the origin then make the cursor pos the new origin and make the width and height of the selection rectangle the different between current cursor position and origin point.

Do you have any plans to import OW right out of a ROM?

Cool idea execution could use some work but.
Yes, I'm thinking of being able to extract the overworld right from the ROM, but it seems like that may be a lot of work. I'm going to try though. Also all of the problems mentioned in the above post should be fixed now.
Pages: « 1 2 »
Forum Index - SMW Hacking - Resource and Tool Releases - OverWorld Music Updated And Fixed V2

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2013 - SMW Central
Legal Information - Link To Us


Total queries: 27

Menu