Points of Required Attention™
Smaghetti, a new Super Mario Advance 4 editor, is currently in development! Check out the thread HERE!

Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,312,604
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 03-28-24 09:49 AM
Guest: Register | Login

Main - Posts by KP9000

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

KP9000
Posted on 07-09-09 11:15 PM, in Club Chaotic:The Perfect Gaming Website (rev. 2 of 07-09-09 11:16 PM) Link | Quote | ID: 110227


Boomboom

Level: 90

Posts: 849/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Well, I'm closing it because I don't like where it's going and it's likely not going to go anywhere good given this thread's content already.

____________________

KP9000
Posted on 07-09-09 11:20 PM, in SMB3 Title Screen Palette Definitions Link | Quote | ID: 110228


Boomboom

Level: 90

Posts: 850/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Ok, so I've spent some time figuring out how SMB3's title screen handles Palettes.

Every 16x16 block on the screen can have its own palette. However, each 16x16 block is made up of larger 32x32 blocks that make up the screen. One byte represents a 32x32 block. The palettes are stored in an 8x8 byte array. So:


032a60 (64 bytes) Location of Palette Definitions for title Screen

Blocks form palette combinations as follows:

+----+----+
| XX | XX |
+----+----+
| XX | XX |
+----+----+

XX = binary vales only. Values 00, 01, 10, and 11 are possible here.
These values represent palettes 00, 01, 02, and 03 respectively.

So, the translation is as follows:

Palettes: ---> Binary:
+----+----+ +----+----+
| 01 | 01 | | 01 | 01 |
+----+----+ ---> +----+----+
| 02 | 03 | | 10 | 11 |
+----+----+ +----+----+

This gives you a binary value of 0101 1011, which in hex is 5B.

0000 0000 = 00
0000 0001 = 01
0000 0010 = 02
0000 0100 = 04
0000 1000 = 08
0001 0000 = 10
0010 0000 = 20
0100 0000 = 40
1000 0000 = 80

0101 0101 = 55
1010 1010 = AA
1111 1111 = FF

00 == All 4 blocks are palette 0
55 == All 4 blocks are palette 1
AA == All 4 blocks are palette 2
FF == All 4 blocks are palette 3


What I can't figure out so far is why the array is stored differently in the ROM as it appears in the PPU memory.

     PPU Memory       
+------------------+
| F0F0F0F0F0F0F0F0 |
| 2A8A66555599A2A8 |
| AA555555555555A9 |
| A8A6A5ED77B5A5AA |
| AAAA0A0E0F0BAAAA |
| AAAA22000000AAAA |
| 0000000000000000 |
| 0A0A0A0A0A0A0A0A |
+------------------+


As you can see, the PPU memory represents each byte correctly as it should be. However, in the ROM, you get something else:

        ROM
+------------------+
| F0F0F0F0F0F0F0F0 |
| 2A8A66555599A2A8 |
| AA555555555555A9 |
| A8A6A5ED77B5A5AA |
| 0023E020AAAA0A0E |
| 0F0BAAAAAAAA2200 |
| 0000AAAA00000000 |
| 000000000A0A0A0A |
+------------------+

It looks like the bottom-right 4x4 block of data of the ROM code is the same as the bottom-left 4x4 block of data in the PPU Memory. I can't seem to figure out the final piece of the puzzle...

____________________

KP9000
Posted on 07-10-09 01:38 AM, in SMB3 Workshop Problem Link | Quote | ID: 110236


Boomboom

Level: 90

Posts: 851/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Another pointer problem again. This time, I'm editing my world 1 dungeon. The pointers point to the right area in the level, but when I go to a different area, it puts me in the top left part of a level. 0,0 I presume. I don't know what the hell is going on.

____________________

KP9000
Posted on 07-10-09 02:08 AM, in SMB3 Title Screen Palette Definitions Link | Quote | ID: 110239


Boomboom

Level: 90

Posts: 852/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


So, say you want to change what's loaded into the PPU... What would you change in the ROM to load what you want into the PPU? How do you translate that chunk of data (the chunk that differs) into something you want instead of garbage? I'm not really understanding of ASM just yet, so layman's terms would be appreciated.

____________________

KP9000
Posted on 07-10-09 03:33 AM, in SMB3 Title Screen Palette Definitions (rev. 3 of 07-10-09 03:53 AM) Link | Quote | ID: 110243


Boomboom

Level: 90

Posts: 853/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Yeah, there are... and there are an additional three $a0's after the supposed array ends... so maybe this is it?

Edit: yeah, this is it. Also, there's an extra $00 in there too.

        ROM       
+------------------+
| F0F0F0F0F0F0F0F0 | ---+
| 2A8A66555599A2A8 | |
| AA555555555555A9 | |
| A8A6A5ED77B5A5AA | ---+--- 0x032A52 - 0x0352A71 (32 bytes)
| AAAA0A0E0F0BAAAA | ------+
| AAAA22000000AAAA | |
| 0000000000000000 | |
| 0A0A0A0A0A0A0A0A | ------+--- 0x032A76 - 0x032A91 (32 bytes)
+------------------+


____________________

KP9000
Posted on 07-10-09 06:36 PM, in SMB3 Workshop Problem Link | Quote | ID: 110263


Boomboom

Level: 90

Posts: 854/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Yes, it's a bump, but it is relevant to bump since we don't need 236 threads on the same topic.

Now, as for my problem:
I am aware of how to set up pointers in this fashion... I've set up pointers just like this (in this and other levels) and it isn't working. No matter how I configure them they all place me at 0,0 XY coordinates in the connecting level. Doesn't matter if I use a pipe or a door.

The level is the dungeon in world 1. Both pointers are broken. I am aware that there are two different types of doors, but I don't know of any other door than the princess' door or the invisible door. I used the door that the original level used, so there shouldn't be any problems.

It doesn't seem that the connecting level has anything to do with it; I changed the connecting level to several others and it loads the level fine but no matter where I try to start Mario off at he always appears at 0,0...

____________________

KP9000
Posted on 07-11-09 10:45 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 110313


Boomboom

Level: 90

Posts: 855/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days




I'm making some serious headway here with this title screen. Figured out everything about it. This is a work in progress... I know it looks a little plain. I plan on making much more for this title screen.

____________________

KP9000
Posted on 07-12-09 04:02 AM, in SMB3 Pipe Stage Hacking Link | Quote | ID: 110327


Boomboom

Level: 90

Posts: 856/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Check out This Thread. There's a pipe tutorial in there.

____________________

KP9000
Posted on 07-12-09 07:09 PM, in General SMB3 Hacking Thread (rev. 2 of 05-11-11 07:55 PM) Link | Quote | ID: 110344


Boomboom

Level: 90

Posts: 857/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Posted by Quick Curly
Tools/utilities:
SMB3 Workshop - To edit the levels, level headers, and object palettes.
SMB3 Map Editor - To edit the World Maps.
SMB3TE - To edit the title screen.
FCEUXD - To edit everything else. Use this to edit palettes for enemies, Mario, Luigi, etc. that cannot be edited in SMB3 Workshop, as well as text, music, etc.

Information/references:
SMB3 Data Crystal Page - For quick ROM and RAM offsets, as well as the locations for palettes and text for editing purposes.
General SMB3 Hacking Thread (This Thread) - Definitely a good read.
SMB3 Music Data-Related Post - For an idea (a rough idea) about music.
A Little SMB3 Data - Another old small post. Mainly only really good for map animation speed (not much).
Small SMB3 Map Editor Pipe Editing Tutorial - A short, simple tutorial showing how to add a pipe system to the World 1 Map.
Small SMB3 Palette Editing Tutorial - A short tutorial showing how to use FCEUXD to edit the World Map palettes. Also refer to my previous post in this thread to take note that the palettes that each World Map uses are determined by the data at ranges 0x1842D-0x18435 (0x9) (object palettes) and 0x18436-0x1843E (0x9) (sprite palettes).
SMB3 Title Screen Palette Definitions - Courtesy of your friendly neighbourhood KP9000.

These links obviously don't cover everything there is to know, but hopefully this post provides you with a decent starting ground and helps you out. If you have any further questions, please feel free to PM me or post your questions in this thread so that others can help you out as well.


In an effort to de-clutter the board, please drop all your questions for SMB3 in this thread. I'll start with one from another thread.

Posted by KP9000
I've set up pointers normally (in this and other levels) and it isn't working. No matter how I configure them they all place me at 0,0 XY coordinates in the connecting level. Doesn't matter if I use a pipe or a door.

The level is the dungeon in world 1. Both pointers are broken. I am aware that there are two different types of doors, but I don't know of any other door than the princess' door or the invisible door. I used the door that the original level used, so there shouldn't be any problems.

It doesn't seem that the connecting level has anything to do with it; I changed the connecting level to several others and it loads the level fine but no matter where I try to start Mario off at he always appears at 0,0...


____________________

KP9000
Posted on 07-12-09 11:36 PM, in General SMB3 Hacking Thread Link | Quote | ID: 110366


Boomboom

Level: 90

Posts: 858/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Well, out of methods of troubleshooting, I did end up checking the "Entering pipe ends level" box to see what it did... The only thing that happens is any doors drop you in the same XY Position but in another level. (Same way the doors work in 4-6, which gives me a damn good idea for another level btw) Thing is, if I put a pipe there instead of a door, it makes no difference in my problem at all. So, I've deduced that the problem lies with the pointers or the level itself.

I would be more than happy to let you take a look at it. I don't remember how we did it last time though...

____________________

KP9000
Posted on 07-13-09 07:16 PM, in Thread Title Modifications By User (Implemented) Link | Quote | ID: 110399


Boomboom

Level: 90

Posts: 860/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


No.

____________________

KP9000
Posted on 07-14-09 01:15 AM, in Hack Ideas Thread Link | Quote | ID: 110434


Boomboom

Level: 90

Posts: 861/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Posted by Quick Curly
DahrkDaiz already did Ice Mario.
DahrkDaiz did an Ice Mario for SMB3, but there was a hack that gave Mario Ice Shots in SMB1... IIRC the hack was by Rage Games.

Also, Good luck with your hack NutheadBros! There are a whole lot of people that give good advice around here, so listen up! Take their advice! Soon you'll have a great hack on your hands!

____________________

KP9000
Posted on 07-14-09 06:39 AM, in SMB3 Title Screen Editor Link | Quote | ID: 110463


Boomboom

Level: 90

Posts: 862/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


As I progressed in making my SMB3 hack, I wanted to change my title screen. In this process, I found a very large amount of data regarding the title screen.

I was wondering if there was anyone on the board with necessary skills willing to make use of this data and make an editor for editing the SMB3 title screen.

____________________

KP9000
Posted on 07-14-09 07:06 AM, in SMB3 Title Screen Editor Link | Quote | ID: 110467


Boomboom

Level: 90

Posts: 863/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Yeah, you can just use Tile Layer Pro, but you can just edit the tiles in the ROM. You can't move them from one point on the screen to another. I have documented where all of the tile definitions are, along with palette definitions and actual palettes and how they all work together. This way you can change what region of the screen is what palette, where the bushes are, move the clouds in the sky, etc..

Tile Layer Pro can't do that. You'd need to make another editor to do that or else pick everything apart in a hex editor like I did. It's not really necessary if it's already been done and someone has found all the data. Hence, my proposition for a SMB3 Title Screen editor.

I'm still in the process of gathering my notes and data into a semi-presentable state. Trust me, you don't want to see what it looks like now...

____________________

KP9000
Posted on 07-14-09 07:12 AM, in SMB3 Level Editing Link | Quote | ID: 110471


Boomboom

Level: 90

Posts: 864/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Please use This Thread for all SMB3 hacking questions.

Closed.

____________________

KP9000
Posted on 07-14-09 07:34 AM, in SMB3 Title Screen Editor Link | Quote | ID: 110474


Boomboom

Level: 90

Posts: 865/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


I don't know ASM, so I don't know if things can be moved around to free up some space... but I do know that making a new title screen is completely possible and I can prove it. I'm actually working on a nice looking title screen and I'll show what it looks like when I'm finished.

____________________

KP9000
Posted on 07-14-09 07:40 AM, in General SMB3 Hacking Thread Link | Quote | ID: 110476


Boomboom

Level: 90

Posts: 866/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


#1: You usually just move them around... but I once took a hammer bros. level pointer in World 1 and pointed it to the level data for one of the unused pipe levels. Viola, pipes in world 1!

#2: Pointers are configured to a range within a level where if you enter a pipe or door within that range, it points to another level where you exit. The exit location depends on how you edit the pointer.

#3: If you want to add more than 1 boom boom in different places, you'll need to know ASM. Reason being, if you kill one, it's coded to stop scrolling, time countdown, and some other stuff and forces you to collect the ? object to complete the level. If you want to add two boom booms in the same room, that requires ASM too, but I believe you go about it a slightly different way. There was a hack that made it so if you kill one boom boom it gives you a powerup and then you kill the last one to get the ? object.

____________________

KP9000
Posted on 07-14-09 07:42 AM, in General SMB3 Hacking Thread Link | Quote | ID: 110478


Boomboom

Level: 90

Posts: 867/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


You can put a goal card at the end, but you can't have the ending backdrop because it can't exist with Water at the same time. So, if you have black water, it works fine. Otherwise it looks really corny.

____________________

KP9000
Posted on 07-14-09 07:19 PM, in General SMB3 Hacking Thread Link | Quote | ID: 110502


Boomboom

Level: 90

Posts: 868/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


Posted by Trelior
Posted by KP9000
#3: If you want to add more than 1 boom boom in different places, you'll need to know ASM. Reason being, if you kill one, it's coded to stop scrolling, time countdown, and some other stuff and forces you to collect the ? object to complete the level. If you want to add two boom booms in the same room, that requires ASM too, but I believe you go about it a slightly different way. There was a hack that made it so if you kill one boom boom it gives you a powerup and then you kill the last one to get the ? object.


I was just asking about adding Boom Boom to the end of the fortresses, like in Ultimate SMB3, where you have to fight 2+ Boom Booms and have to avoid picking up the crystal until they're all dead or else they still run around, ripping you to pieces while the "Stage Clear" theme played.
You can do this if you want. All you have to do is add two boombooms. They are an enemy, so you can just drop it anywhere. No special setup is needed (as far as I know) just as long as you don't have any other enemies nearby that would screw up its graphics and you also need to make sure you put one of them right over the top the other so the battle doesn't start before you reach both of them.

____________________

KP9000
Posted on 07-14-09 07:33 PM, in General SMB3 Hacking Thread Link | Quote | ID: 110505


Boomboom

Level: 90

Posts: 869/1975
EXP: 6937265
Next: 251344

Since: 02-19-07

Last post: 3551 days
Last view: 3175 days


It's your level header. Make sure that your level header settings "expect" to load the correct level graphics. Example: If you are in a castle and you want it to load plains graphics, make sure the header is set to use the ice graphics. Otherwise, you'll get some screwed up graphics.

____________________
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80


Main - Posts by KP9000

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.244 seconds. (335KB of memory used)
MySQL - queries: 135, rows: 167/167, time: 0.233 seconds.