I wanted to know if any of you know the hex offsets to turn the day stages to night. I think it would look better to have them night. I cannot read assembly, and yes I have tried already before I asked here. Would somebody be kind enough to take their time to tell me the hex offsets?
In the original SMB if you search for $3f, $00, $20 the next 32 bytes are palette data. That might help, but it might not be that simple.
I am looking for where the hex data for each level is, that tells the game whether World 1-1 will be night or day, to change that in hex editing. If i change the color of the sky it will also affect more things than just that, i.e. the sky blue affects the color also to the underground star bricks.
It's in the levels header. IIRC, it's the last 3 bits of the level header's first byte. Also, IIRC, setting it lower than a certain value and the background will be effected.
After a few minutes of toying around with those bits, you should get it.
But thats the thing, where is the levels header located for each level? If I know this maybe I can do it
Here's a roundabout way to maybe do this. (I'm sure there's an easier way for people who know stuff about SMB, but I do not.)
There exists an NES conversion of this game. Find and download that.
Download
Super Mario Bros. UtilityOpen a copy of the NES version with it. Click the green pipe and choose the level you want to change to night. Go to edit, edit header. Change Back to Night. Hit okay. Save.
Compare your changed rom with the original. You can do this in dos with fc. fc /b hack.nes nonhack.nes
You'll get an address of the byte you changed. Open the non hacked .nes version in a hex editor. Go to that address. Note the byte stream that starts there. Open the fds version in a hex editor. Search for enough of the byte string found in the unchanged .nes version such that exactly one result is found in the .fds version. Change that byte to what it ended up in in the hacked .nes version. Save. Test.
Do this for all the levels. No guarantees this will work for all the levels. I only tested it for the pipe intro.
Edit: If it helps, the byte changed for that was at $2842 in .nes and $882E in the .fds. If that helps find the rest of them, cool.
Again, in the original rom, sorry, you'll have to figure out if it works in ANN:
At offset 0D5F: 22, 22, 0f, 0f, 0f, 22, 0f, 0f
Change all to $0f and every level should have a black background.
It works, in ANNSMB the hex offset is 0x2b84 in headered ROM, but one thing about what you said, you said to change those eight bytes 22, 22, 0f, 0f, 0f, 22, 0f, 0f all to 0f, but there is one more byte following, a 22, does that too need to be changed, or is that for something else? I can't tell?
If it is: 22, 16, 27, 18, it's not part of the background data. (Mario colors.)
Kasumi, I didn't know about Super Mario Bros. Utility, not bad!
Yes they are the palettes to Mario, thanks Movax12.
Thank you all for your help, and Insectduel's SMB Utility is another tool which adds elements from SMB2J, it can be found at:
http://www.romhacking.net/utilities/522/I should mention that the .nes ANNSMB ROM is not a pirate version, but is really a SMB1 hack (in ANNSMB you can attain 20 stars, one for every time you beat the game but not in the hacked version, neither Worlds A-D). There are only 2 pirate versions in cart form that I know of, but neither are dumped or available publicly. One is by Kaiser, who also made an SMB2J pirate cart, and the other is by another pirate company. I think GoodNES misnamed the current ROM that claims to be a (J) cart. Cowering said in August a new GoodNES would be available soon, maybe it will have this pirate version. Also there are pirated Disk versions commonly floating around.
Thank you all for your time and being so generous with your responses.