Register - Login
Views: 99792265
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 04:46:19 AM
Jul - General Game/ROM Hacking - SMB 2 (USA) hacking questions New poll - New thread - New reply
Next newer thread | Next older thread
Lunaria

Moon Bunny! :3
Level: 139


Posts: 4045/5754
EXP: 32051839
For next: 415606

Since: 07-28-07

Pronouns: she/her
From: pile of fluff

Since last post: 6 days
Last activity: 5 days

Posted on 08-29-11 01:45:26 PM Link | Quote
I started working on a small SMB2 level hack a little while ago, and while I can get it done fast (most likely) several things are a bit too confusing yet, therefor I made this topic to ask questions and such.

While I got the major hang of door data, (I dread the time when I will do jars) Birdo is being quite problematic. The only one I can find in the enemy list is the gray one, and rooms with the basic purple/pink ones show up as gray in the editor as well, and after saving they will use the gray ones behavior and palette ingame as well.

I will most likely have more questions once I get further in working on this, but so far, that one is the biggest problem right now.



____________________
Luna won't you cry for me, I'm as lonely as I've ever been. I am forced back into the start, Is there any way to fix a broken heart?
Rachel Mae

Creature of Chaos
Level: 141


Posts: 4398/5929
EXP: 33603654
For next: 516360

Since: 07-03-07

Pronouns: she/her
From: Foxglen

Since last post: 21 days
Last activity: 11 hours

Posted on 08-29-11 05:50:33 PM Link | Quote
Birdo's color is based on the sprite's X position on the screen. Just make a note of which colors correspond to which positions, you'll figure it out pretty quickly. AFAIK, only two positions will produce a red or pink Birdo, while all the rest produce green/grey ones.

Door pointers...eugh. Those are a pain to deal with. I don't remember many details, but I know that doors and (some) jars use the next two bytes as a pointer until a certain point in (I think) world 5, at which point they start to use three-byte pointers. Also, when connecting two doors, you need to place each one exactly on the opposite side of the screen from its counterpart, otherwise you'll fall from the sky/ceiling and potentially get stuck.

Sorry I can't be more helpful, it's been nearly 10 years since I last hacked the game.

____________________
Lunaria

Moon Bunny! :3
Level: 139


Posts: 4050/5754
EXP: 32051839
For next: 415606

Since: 07-28-07

Pronouns: she/her
From: pile of fluff

Since last post: 6 days
Last activity: 5 days

Posted on 08-30-11 01:18:10 PM Link | Quote
Ah, thanks. -B is the red birdo. I need to look up the X location in the original ROM to find out the pink one.

Most door pointers uses the next object data, which can be a pain to work with, level ending sprite always use the specific door pointer object which is 3 bytes. And yeah, it took a while before I figured out how to link up doors.

Thanks for your help though!

Time to make some more levels!

Edit: and [anything]A seem to be pink.

-----------------------
Self merge
-----------------------

The title cards for each world remains a mystery. They are not listed in the level list in the editor and they are listed as graphics data in the data crystal. I looked it up in my tile layer and it does not seem to be graphics data at all (it would be really odd if it was, if you ask me.)

So I'll assume there is no supported easy way to edit this ATM? I guess I can go nutz with a hex editor with the data there to see if I can learn the structure, but I have never had any skill with working that way before.

Music in the level data header is also a bit weird, I assume it's two binrary values it deals with, which would give me 4 songs to work with, but IIRC there are seven songs in the game. I guess the intro, character select and ending song are not optimized for using in normal levels. Though, I have not looked into the music data, just making a pointer for those songs should be easy enough one would think, but I guess the original team did not have any use of those songs in levels and skipped dealing with a longer header.

____________________
Luna won't you cry for me, I'm as lonely as I've ever been. I am forced back into the start, Is there any way to fix a broken heart?
Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 4279/5390
EXP: 29075298
For next: 259707

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 342 days
Last activity: 342 days

Posted on 08-31-11 05:54:42 AM Link | Quote
Post #4279 · 08-31-11 12:54:42 AM
These games were usually very heavily optimized for size, so yes, there are probably only two bits to choose one of those four songs. Wouldn't be much sense adding an extra bit that wouldn't get used.

____________________
Rachel Mae

Creature of Chaos
Level: 141


Posts: 4400/5929
EXP: 33603654
For next: 516360

Since: 07-03-07

Pronouns: she/her
From: Foxglen

Since last post: 21 days
Last activity: 11 hours

Posted on 08-31-11 07:18:31 AM (last edited by BMF54123 at 08-31-11 04:18 AM) Link | Quote
This reminds me, I should really get back to working on that new level format for SMB2...

____________________
Taryn

Passed away.

Thanks for being a part of us, even if it wasn't always on the best of terms.

1987-2014


Level: 204


Posts: 14249/14742
EXP: 121744610
For next: 1605208

Since: 09-01-09

From: Seattle

Since last post: 10.1 years
Last activity: 9.8 years

Posted on 08-31-11 05:27:56 PM Link | Quote
Originally posted by BMF54123
This reminds me, I should really get back to working on that new level format for SMB2...


Yes, you should

I tried hacking SMB2US last year and gave up because of how difficult the level format is, even with a level editor.

____________________
TKB Super Mario Bros.TKB Super Mario Bros., Volume II
Lunaria

Moon Bunny! :3
Level: 139


Posts: 4059/5754
EXP: 32051839
For next: 415606

Since: 07-28-07

Pronouns: she/her
From: pile of fluff

Since last post: 6 days
Last activity: 5 days

Posted on 09-04-11 02:25:15 PM (last edited by Karis at 09-04-11 11:25 AM) Link | Quote
Originally posted by Data Crystal
# 01FE10 to 01FE16 (000006) = Sprite set for Worlds 1-7 (known valid values: 0C, 0D, 0E, 0F)
# 01FE17 to 01FE1D (000006) = Landscape set for Worlds 1-7 (known valid values: 0A, 10, 12, 14, 16)

Some of the sprite data is determind by landscape pointer as well, anyhow, that's not what bothers me.

There is something that determins what type of ground data which is avalible, and I can't find any way to edit it. (World 2 got sand and quicksand, while world 1 and 3 got grass.) The graphical data loaded for the ground is changed with the landscape values, getting it to look like snow instead of grass for example.

Anyone know where the data to determin what type of ground that loads is? (I already checked most of the level data header and that does not seem to be it.)

____________________
Luna won't you cry for me, I'm as lonely as I've ever been. I am forced back into the start, Is there any way to fix a broken heart?
Googie

Bloober
Underground Cartoonist...
Level: 46


Posts: 276/447
EXP: 694367
For next: 17407

Since: 07-22-07

From: Brooklyn, New York

Since last post: 45 days
Last activity: 45 days

Posted on 09-08-11 08:25:47 PM Link | Quote
Originally posted by BMF54123
This reminds me, I should really get back to working on that new level format for SMB2...


I really hope you do, I made a one level hack of SMB2 using this editor, the hack was given to me & all the graphics are done. It's almost like SMB2 is the black sheep of Rom Hacking.

____________________
Next newer thread | Next older thread
Jul - General Game/ROM Hacking - SMB 2 (USA) hacking questions New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

28 database queries.
Query execution time: 0.082906 seconds
Script execution time: 0.019057 seconds
Total render time: 0.101963 seconds