Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Changing Starting Spaces in SMB3 | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
beneficii

Lakitu
Level: 36

Posts: 123/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-12-05 12:21 PM Link | Quote
NOTE: All numbers herein in hexadecimal unless otherwise mentioned!

As most of you know, Discombobulator lets you change the starting y position of Mario in a world. There is a table starting at 3C39A that carries the y position of starting Mario + 2 in the first nibble. But as you may have noticed, there seems to be no way of changing the x position, or is there?

http://www.freewebs.com/beneficii/strtasm3.ips

The starting x position for all worlds is hardcoded to 16258. The value there is 20, and it's part of the code. It's part of the instruction LDA #$20. How to deal with this, you ask? Well, I already did, by making an ASM hack, which works. Now (after patching, of course,) there is a table of starting x positions starting at 17C88 and starts at World 1, ending at World 8. This patch should be safe to put onto any ROM, even a hacked one, unless you did a lot of hacking around that area yourself. The value for each of the items in the table is preset to 20, but all you have to do is open up a hex editor and edit them yourself.

Note that I've not been able to change the screen number yet, so bare with me there. I know where to store it, but I need to make sure that the world map starts in that screen instead of the first. I have some ideas for finding this out already, but it'll be a day or so, as I have other things to work on for other projects, especially for one that I've unfortunately taken a week off. But I digress.

-------------------------------------------------------------------------------------------
EDIT: An even better version can now be downloaded below: EDIT

http://www.freewebs.com/beneficii/asmstart.ips

Here's how to use it. Remember, these are tables, which have 8 bytes, each corresponding to a world, starting with World 1.

3C39A: Starting y position on the world map.
yyyy 0000
y = y position in Discombobulator or Workshop + 2

17C88: Starting x position and screen number on the world map.
xxxx ssss
x = x position
s = screen number

17CAA: Starting position of horizontal scroll
xxxx x000
x = each scroll of the world

What I mean by scroll is when you go way to the right, it scrolls over a certain value. Your first scroll comes when you reach the x position of E0, followed by a scroll every 80 afterwards. You start with the least significant x in the byte (leave the zeroes as zeros), which would make it 8. This'll be followed by 10, 18, 20, 28, 30, etc. Each succession of numbers counts as a scroll, with 0 meaning that you are on the very left edge of the map.

I hope this has been helpful, and I'd really like to hear some feedback! Remember, this patch is safe to attach to any file, as it doesn't really affect the performance of the game, but simply gives you more options. I hope y'all enjoy!

EDIT 2: Fixed some errors in the post.

EDIT 3: Another fix-up.


(edited by beneficii on 06-11-05 10:19 PM)
(edited by beneficii on 06-11-05 10:20 PM)
(edited by beneficii on 06-11-05 10:21 PM)
Kamek77

Goomba
Level: 8

Posts: 11/29
EXP: 2151
For next: 36

Since: 04-26-05
From: Oklahoma, USA

Since last post: 2 days
Last activity: 9 hours
Posted on 06-13-05 04:42 AM Link | Quote
beneficii:

Your work is greatly appreciated. I, for one, find it immensely useful. All we need now is for an editor (such as SMB3 Workshop) to support editing the features you've deciphered. Keep up the wonderful work!
beneficii

Lakitu
Level: 36

Posts: 127/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-13-05 05:14 AM Link | Quote
Kamek77,

Thanks! I'll let y'all in on a little something. I'm researching how I would make my own World Map Editor for SMB3. I have another project I must do, and I haven't even started coding. I know C++ and I know WinAPI, but I'm just now learning how to work with Device Contexts and Bitmaps. Once I finish this other thing tonight (and I'll be working on related things to that for the next couple weeks), I'll start coding and implementing. It may or may not get finished, but count on it being finished if Acmlm or Hukka don't spruce up their World Map editors.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Changing Starting Spaces in SMB3 | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.037 seconds.