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 Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - Goal Star System | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Glyph Phoenix

Level: 39

Posts: 3/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-09-04 05:05 AM Link | Quote
I don't know how to ASM hack, so this is probably beyond me... but there are two contained things that I would like to do with SMW that I think would be really great and not too complicated if I knew where the addresses of the code are.

The first would be a way to hack the goal bar so it doesn't give you any stars. I would imagine this to be the more complicated of the procedures, but again, I do not know how to ASM hack. The second would be to create a block that increments your total amount of stars by one.

With those two changes made, you could collect Stars like in Super Mario 64! The blocks that only let you pass if you have a certain number of stars available on Block Tool could be used to create gateways between worlds, and this would solve the "Nonlinear overworld" problem mentioned in the other thread.

How would I go about making these changes, if possible?

Edit: I found the values for the bonus stars using the Memory Map linked to from the newbie FAQ, but I wouldn't know how to make a block change the values or stop the goal bar from changing them...

Mario's bonus stars = 7E0F48
Luigi's bonus stars = 7E0F49


(edited by Glyph Phoenix on 11-08-04 08:23 PM)
Alastor the Stylish
Hey! I made a cool game! It's called "I poisoned half the food, so if you eat you might die!" Have a taco.


Level: 114

Posts: 2577/7620
EXP: 16258468
For next: 51099

Since: 03-15-04
From: Oregon, US

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-09-04 06:17 AM Link | Quote
It'd be more than that. If you restart then that fails. IIRC we've talked about this before, but, it was a long time ago and proposed by geno (who doesn't come here anymore). Also, why not just not use the goal tape and instead hide custom blocks which end the level but add a star, and have the levels not be re-enterable? Or have a new block for each one that says if event ___ is passed, don't add a star?

EDIT: Or you could work off of what's already in the game and just put a star thing next to the total exits gotten thing. Heh. That'd work too. It wouldn't really be that difficult if you knew what to do...


(edited by Kratos Aurion on 11-08-04 09:21 PM)
Glyph Phoenix

Level: 39

Posts: 4/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-09-04 06:51 PM Link | Quote
"Also, why not just not use the goal tape and instead hide custom blocks which end the level but add a star, and have the levels not be re-enterable?"

I've always liked re-enterable levels, it saves you the trouble of making a save state every time there's a level you like but don't want to have to get to all over again. And, if I did that, I couldn't have secret exits or you'd just have to pick one and skip over the other, and then my hack would have a "crushing problem".

"Or you could work off of what's already in the game and just put a star thing next to the total exits gotten thing. Heh. That'd work too. It wouldn't really be that difficult if you knew what to do..."

That would be nice. I wouldn't even have to add the star, since we're talking exits anyway. If I had a block that only opened if you had enough exits, that would be perfect... That way, you wouldn't have to travel the levels in order. I'll go gather more information on that.
gnkkwinrrul

Dry Bones
Level: 39

Posts: 425/647
EXP: 402054
For next: 2717

Since: 03-15-04
From: LYKEOMGIMFROMSOMEPLACE????

Since last post: 81 days
Last activity: 40 days
Posted on 11-09-04 09:17 PM Link | Quote
There might be a problem with this. If you get 100 stars in a level, the game may freeze because it may tell to go to the bonus room in the middle of the level, which might not be really possible
Glyph Phoenix

Level: 39

Posts: 5/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-10-04 12:10 AM Link | Quote
Yeah. Since the stars you'd have already gotten show up again, this wouldn't work unless I made my levels non-enterable like Kratos suggested and I wouldn't want to do that.

I'll have to figure out something else that will give me the desired effect.
Escherial

Shyguy
Level: 17

Posts: 72/90
EXP: 20866
For next: 3877

Since: 03-15-04
From: Pasadena, CA

Since last post: 202 days
Last activity: 38 days
Posted on 11-10-04 12:20 AM Link | Quote
This may have been suggested earlier, but here goes...

Why not just hijack that portion of the status bar with your own counting value rather than using the goal tape stars? You could always use completed exits as "stars" and just show it there, if you like. Nice thing about those is you can't get two for beating a level twice and they're saved when you save the game.

As far as using your special value for restricting access, it'd be trivial to write up a custom block that'd prevent you from progressing if your "star count" was less than a desired amount.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 2027/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-10-04 07:54 AM Link | Quote
I started working on this a while ago, but it was a lot more complicated than I expected. What I had proposed would be more like the Jiggies in Banjo-Kazooie. (Same idea as SM64's stars, but you don't exit the level when you get one.) You would need to find 293 free bytes in SRAM for each file, and 293 more in RAM. (292 for each level, which if I calculated right should be the max # of levels you can enter from the OW, plus one for the star counter.) Then you could have up to 8 per level using custom blocks. The blocks would do the following:
-Get current OW level #
-Look it up in Star Got table in RAM
-Get the bit for whatever star it is (8 different blocks, one for each bit)
-If the bit is set, which means you already have it, play a sound and exit.
-Play another sound, maybe some sort of animation.
-Change into some other block, so that you can tell you got it already. (Maybe just make a block after them all that acts as #25 and has a 'used star' graphic, and have #1 change into Map16+8, #2 change to Map16+7, etc.)
-Set the bit indicating you got the star.
-Increment the star counter.

The problems that arise with this method (and some possible workarounds, though still with problems) are:

1) Possible lack of RAM/SRAM space.
Workaround: RAM space might be freeable by removing two-player options and using Luigi's data, but then you can't do two-player. Is it possible to change the SRAM size?

2) Need to hack Save Game routine.
Workaround: Make custom blocks to do it, put them in a one-screen level that has Side Exits enabled, and make it show the save prompt after passing the level. Make it so that you're forced to touch the block. Make this the only save point. However, this could cause problems if the user chooses Continue Without Saving, which would result in only the star counters being saved. This could be solved if the 'Save Game' routine was found - make touching the block optional, with a message box prompting the player to touch it in order to save the game. The block would do the original save routine as well as saving the star array.

3) Need to hack Load Game routine.
Workaround: More custom blocks, or hack the Load Level/Load OW routine. Have a bitflag in RAM that tells whether the star counter array has been loaded. If not, these routines should load it and set the flag. (If using custom blocks, they would be placed at the beginning of every level, invisible.)

4) Need to hack Erase File routine.
Workaround: Another block that deletes the array from SRAM, placed in the starting level ('Looks like Peach has gone missing again' etc) in a way that Mario is forced to touch it. This way, the counter would still remain after deleting a file, but would be erased when starting a new one. (A problem arises, however, if the star counter is displayed on the file select screen. This could be avoided by having the display routine check if the file is empty, but we'd need to know how the game does it.

5) If you come back into a level, the stars you already got would still look like you hadn't got them yet.
Workaround: This might be fixable by having the level-loading routine/custom blocks check the table, and if so, change the specified block's TSA and Acts Like settings, so it'd still be a star block but would look like a used star block. However, this is only possible if these settings are stored in RAM...

6) Need to impliment a star counter display. Not too difficult, but something that needs fixing nonetheless. (For convenience, a BCD-encoded version of the star count could be stored in SRAM, similar to the timer.)

7) Though not required, it would be much better if a star counter display in place of the exits display were implemented on the file select screen, as well as a display for how many/which of the level's stars you've got on the OW.


(edited by HyperHacker on 11-09-04 10:56 PM)
Glyph Phoenix

Level: 39

Posts: 6/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-10-04 12:09 PM Link | Quote
I didn't mean a star system exactly like stars in SM64, I meant the same basic concept and Banjo-Kazooie and DK64 used it also. Although I did use the SM64 system as an example an awful lot...

I am in no way fit to find 293 bytes in RAM/SRAM, and I don't think I could pull off many of these procedures with my current level of knowledge. I've never even hacked a pointer before. I'll just find some other way to create barriers that open depending on your progress...
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Goal Star System | |


ABII


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



Page rendered in 0.020 seconds.