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 - Super Mario Explorer (Idea) | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Krono

Goomba
Level: 8

Posts: 17/28
EXP: 1952
For next: 235

Since: 05-12-05

Since last post: 85 days
Last activity: 32 days
Posted on 06-03-05 02:42 AM Link | Quote
I'm the type of guy that has thousands of ideas but is never motivated enough to acquire the needed skills to bring any of them to fruitation; so I may as well aimlessly share these ideas with someone who may take interest (I'm hoping the smw hacking community will be the one taking interest). Super Mario Explorer. Mario will be wearing an explorer's hat, similar to the one Wario wears in Super Mario Land 3: Wario Land.

The idea is this: there is no overworld map, you immediately start within the confines of a level via some kind of fancy ASM method. This level could be the 'hub', and it shall have many exits; all leading to different 'levels', or 'areas'. The main theme is exploring, so using ASM to remove the time limit altogether can be another thing to consider (you could always also simply set the time to 0 in lunar magic; however if you die with such a setting, it will always say "time up!"). There is no overworld map, and no 'goal' points; the entire game can be viewed as an elaborate maze, all leading to a single event: beating the game. Every single level, area, 'world', will be interconnected with pipes, doors, and any other method of exit-enabled objects or whatever. The whole thing will be connected. The game would be about exploring, finding a route that would lead you to bowser's domain, and defeat him (it should be made in a very none-liner way; such as you can defeat any of the koopa kids in any order you desire; so long as you know how to reach their domains, and the same goes for the king koopa himself, though obviously, it should not be immediately obvious to the player these secret ways of getting to the final boss right immediately. It should be a secret, sshhh...).

Now, this obviously has some problems. How would saving be handled? There'd need to be a way to save during a level, and make it so that you start from that level upon saving, this would most likely require tons of ASM. However...an easier way would be to eliminate saving entirely. This would actually make sense and follow the gameplay design in the way of "finding a new path to bowser each time you play, discovering new secrets every time". That said, if the game was designed without an overworld, there wouldn't be any content to 'save'. The only thing that perhaps could be saved is mario's location. However, other than that, whenever mario leaves an area via a secondary exit (pipe, door); everything in that area resets (and it should). This means that a total lack of a save feature actually wouldn't be that 'out of line', and it would harken back to the old days wherein you're supposed to beat the game with just the lives you have; in one sitting. Besides, most will probably play it on emulator anyway, thus they'd use savestates if no save feature really bothered them that much.

As for how the game would play...what the point of it would be. The main point should be to reach Bowser's domain and defeat him; in any way the player chooses. However, when the player initially starts, he will have absolutely no idea where bowser lies, and may be confused by the many different passages to so many different areas. Thus, it should be to the player's intent to seek out the castles of bowser's children, the koopa kids. Why? Well, a neat-o thing that could be done is that, upon defeating a koopa kid, the victory text at the end as mario destroys the castle can be changed into a 'clue' as to where the next destination may lie, or where Bowser's domain is hidden.

As I insinuated earlier; it should be possible for 'advanced' players who know the really hidden secrets, to reach bowser within several minutes of gameplay. There should be a ton of shortcuts, and little secrets/bonuses hidden at every corner (such as 1ups, those would be rather useful, considering the lack of a save feature). Of course, new players shouldn't be able to get to bowser's area so quickly, and thus, the secret path should be really damn secret, so that only a really advanced player who is inherently familiar with the inner workings of the game could get there immediately.

The game's design should truly be 'open-ended', so that the player isn't always running right; in fact, he should most often find himself between a decision of going either left or right. For the player to know where he is, I feel that graphics would play a big part in this, so lots of colourful ExGFX from various different games could really add that extra bit of atmosphere needed for this sort of thing. There should be some hidden hintboxes with actual hints to little secrets; such as 1ups, or to lead the player to different areas, as well. Everything should be interconnected; every level accessible through a door or a pipe.

To sum it up in one short sentence: a mario world hack that has no overworld, and every single one of it's levels are all connected via secondary exits. Main theme: exploration.
Cruel Justice

XD
Level: 55

Posts: 858/1384
EXP: 1253266
For next: 60923

Since: 03-20-04
From: Darkwoods Penetentiary

Since last post: 11 hours
Last activity: 7 hours
Posted on 06-03-05 02:52 AM Link | Quote
I thought about that a long time ago and attempted to do so but keeping track of all the levels and which ones you can use is a real pain in the neck. I think all you really need to figure out is how to save and removing the "Time up!". Actually you can probably just use save spots in case the player dies. Did Mario 64 inpsire you?
Krono

Goomba
Level: 8

Posts: 18/28
EXP: 1952
For next: 235

Since: 05-12-05

Since last post: 85 days
Last activity: 32 days
Posted on 06-03-05 03:31 AM Link | Quote
I was thinking more of a super metroid sort of exploration, with many areas that are out there, and each area has several exits leading to other areas, etc. Each area would have a sort of ExGFX theme, (example, one would have the mushroom background from SMB, one would be forest-themed, etc) giving the player an idea where he is.

I also thought about using the P-buttons as a means to limit new players from reaching bowser too quickly; though I have no idea how precisely you would 'save' the progress of the p buttons being pressed without ever entering the overworld. That said, what would happen to the pbutton room after you press it? The game should be designed in such a way that, every single screen can be accessed anytime the player chooses, providing that he takes the correct route. Would the p-button still be in the room after already hitting it? In addition, the p buttons act as a 'goal', because they take you to the overworld. I'm sure there's ways to deal with this via ASM, but things like this most likely can not be done by normal lunar magic means.

Though this entire hack can most likely already be completed just using lunar magic; the overworld could simply be a single level that you enter, and then from there, it's all exit-enabled objects, and no saving. It would, obviously be pretty dumbed down if not for those few fancy ASM touches, though.

I know that when mario hits a check point and dies; he re-appears there. However...what if he hits ANOTHER check point? Would the spot he spawns be updated to that spot? If that's the case, then this idea can really and easily already be possible without any major ASM hacks.
timdevril50755

Ninji
Level: 25

Posts: 178/245
EXP: 82750
For next: 6870

Since: 07-24-04
From: Canada, eh?

4, 8, 15, 16, 23, 42

Since last post: 5 days
Last activity: 11 hours
Posted on 06-03-05 06:37 AM Link | Quote
An easy way to remove the time up, would be to edit the letters in a tile editor, so they woudl say Ouch!, or something but that would defeat the purpose of game overs, because the letters are used for both.
Graviteh

Level: 31

Posts: 378/500
EXP: 165989
For next: 19374

Since: 03-27-05
From: The Internet

Since last post: 42 days
Last activity: 1 day
Posted on 06-03-05 07:24 AM Link | Quote
This idea kinda reminds me of Dr. Quandry's secret island, of course, DQSI is the overworld, but the levels are puzzles. really advanced uzzles should be implemented in this Explorer idea.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 772/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-03-05 08:50 AM Link | Quote
here's something to this extent.

By HyperHacker:
52F1: ASM that handles the 'TIME UP!' message. You can change the 'BNE' opcode to a 'BRA' to disable it.
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: 4757/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 06-04-05 03:01 AM Link | Quote
BMF made a patch once that only displays the 'Time Up' message if the time limit wasn't 0 to start with. I dunno where though.

Anyway I've thought of this idea a lot, and it's more than feasible but will require a good deal of ASM hacking. The biggest thing is how to, at any point in time, load a specific level... I managed to hack the level loading code so it would always load a certain level, but I couldn't get it to load on demand. However, the 'action register' ($7E0100) can probably be used for this... If you, at any time in the game, write a certain value to it it will load the overworld, a level, the intro etc. The game probably uses this to load the overworld when you die/exit/whatever (in fact, somewhere in my notes, I have written down exactly where you would be able to change it for pause+select). It'd be trivial to hack all instances that the game writes 'load overworld' and change them to 'load level'. The only problem is we need to figure out how to say which level. (IIRC it just loads whatever level you're at on the overworld.)
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 774/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-04-05 04:49 AM Link | Quote
...maybe change the "current level" RAM addy first? Just a ballpark guess.
DisruptiveIdiot

Paratroopa
Level: 21

Posts: 102/147
EXP: 42614
For next: 7329

Since: 04-09-04

Since last post: 4 days
Last activity: 5 hours
Posted on 06-04-05 05:34 AM Link | Quote
Originally posted by HyperHacker
BMF made a patch once that only displays the 'Time Up' message if the time limit wasn't 0 to start with. I dunno where though.

Anyway I've thought of this idea a lot, and it's more than feasible but will require a good deal of ASM hacking. The biggest thing is how to, at any point in time, load a specific level... I managed to hack the level loading code so it would always load a certain level, but I couldn't get it to load on demand. However, the 'action register' ($7E0100) can probably be used for this... If you, at any time in the game, write a certain value to it it will load the overworld, a level, the intro etc. The game probably uses this to load the overworld when you die/exit/whatever (in fact, somewhere in my notes, I have written down exactly where you would be able to change it for pause+select). It'd be trivial to hack all instances that the game writes 'load overworld' and change them to 'load level'. The only problem is we need to figure out how to say which level. (IIRC it just loads whatever level you're at on the overworld.)


Could you possibly find out where the game stores the current level on the overworld data and then make it change that data before executing the load level routine?
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 777/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-04-05 05:59 AM Link | Quote
I beleive the data is stored in a table in the ROM.
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: 4788/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 06-05-05 12:09 AM Link | Quote
I'm trying but it's not easy. The address I have listed doesn't do it (the game sets it back), and the debugger keeps crashing so I can't find where it's copying from.
Someguy

Buzzy Beetle
It seems as though the girl you've fallen for is also a pyromaniac.
Level: 32

Posts: 302/397
EXP: 193329
For next: 13113

Since: 03-15-04
From: I'm proud to be an American... I think...

Since last post: 1 day
Last activity: 5 hours
Posted on 06-05-05 12:39 AM Link | Quote
I sort of skimmed through it first because I allready had a simular idea, and here are my ideas on how you could do saving. You could have different save spots like in Super Metroid, you'd use a new custom block for each that would change the current level in the ram and/or the overworld location, which I heard was discovered once, the overworld would be a map of sorts you could access, with saving upon finishing set for any save points. Each level would have no connection to the others so you'd have to re-enter the level after looking at the map, which could show Mario's current location(the level he's placed on). If Mario dies he'd go back to the last save point. This would allow things like saving a switch being hit, though it'd still be up, unless you make a custom block. A way a custom switch could work could simply be a block that when hit while the blue P-Switch is inactive, causes a message to pop up, turns on the right switch, and then turns on the blue P-Switch, changing the animation to a flat switch. When the blue switch is on, all the air tiles would keep the switch on while in the room if the value for the room's switch is on, keeping the switch flattened any time you enter, and the switch it's self would be set to only do it's switch message etc thing when said switch is off.

Complicated, yes, but this hack idea is one I've have dreamed of.
Juggling Joker

Boomerang Brother
SMW Hacking Moderator
Yeah, JAMH is still being worked on.
Level: 48

Posts: 882/1033
EXP: 811447
For next: 12096

Since: 03-15-04
From: Wyoming

Since last post: 2 days
Last activity: 3 hours
Posted on 06-05-05 01:13 AM Link | Quote
Wouldn't it just be easier to completely change all of Super Metroid's graphics and physics?
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 783/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-05-05 01:27 AM Link | Quote
to hell with loading a level with OW code, why didn't we think of this:?

Just write the correct value to the action register after copying level table info around like the random exit custom block does? Except, we could move the tables around as we needed. How well would that work?


(edited by Darkflight on 06-04-05 01:53 PM)
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: 4795/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 06-05-05 06:42 AM Link | Quote
Now there's an idea! Write a specific level number to the current screen's exit number and just trigger a screen exit. If only I could get the debugger working to try it.

Also love the 'OW as a map' idea.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 787/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-05-05 06:53 AM Link | Quote
No, that wouldn't work. you would need to pre-set the tables in the level, then copy and paste them using ASM mid-game, then set the action register. Otherwise, you will use a normal screen exit for the screen you are on. At least, that was what I've read from the "how this block works" in blocktool for the random exit block. also, you could try using a custom block that does this. I don't know if that's what you already meant, though.
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: 4798/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 06-05-05 11:21 AM Link | Quote
Yes, that's what I meant. Find the code that sets the action register to 'Load overworld', and hack it to modify the exit tables and set it to 'Activate exit'. As long as it writes the proper exit number into the table before triggering it, it should work...
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 789/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 06-06-05 10:21 PM Link | Quote
OK, sorry. I misunderstood your post. Then again, I was kinda confused by your screen number statement, because there was more to it than just that.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Super Mario Explorer (Idea) | |


ABII


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



Page rendered in 0.042 seconds.