News:

11 March 2016 - Forum Rules

Main Menu

How to change SMB 3 Damage System?

Started by Goomball, August 02, 2019, 01:54:15 AM

Previous topic - Next topic

Goomball

Is there a way to change NES Super Mario Bros. 3's damage system into North American smb3s damage system?

I'm playing SMB 3 Extended edition where player turns small when touched by enemies even though mario/luigi have raccoon or fire suit.

I want to change it to turn into super mario/luigi and then small next time damaged.

I tried using different tools offered but I dont see anything to change player damage.

I play this game with kids :)

Thank you for any help offered!

Cyneprepou4uk

Tools like what, level editors?

Do you know nes assembly? Any experience with nes debuggers?

Goomball

I tried level editors found on romhacking.net and couldnt figure out how to change player damage system.

I was hoping that that theres a quick/easy way to edit that with a tool easily found online. Thanks for being first to reply

RetroGameFan

@Goomball - I'm afraid I can't help you since I don't have enough knowledge of NES assembly, debuggers, etc. But someone else here might.

The reason I'm posting this reply is to let you know that I've written a review addressing this concern last year. If you look under reviews, click the one written by myself that says "Original damage system = Not fair". By the "original" damage system, I mean from the Japanese version of SMB3. The point I'm making here is that you're not alone in your feelings about the SMB3 Extended Edition hack; in fact, you can see I clearly want this 3 HP change as at least an option.

Note to mods: I hope this doesn't count as spam.

Cyneprepou4uk

I took a quick look at it. Just replace EA EA EA with 4C 15 DA at 0x019F9 and you'll be fine.

Goomball

#5
@RetroGameFan Ah Yes! I read your post couple days ago :)  yeah the extended edition is awesome, but very hard too especially for kids. Its especially tough in world 7! Thnx for replying :)

@Cyneprepou4uk Thank you very much!! I'm gonna give it a try!! You are a savior!! :thumbsup: :beer: :crazy: :cookie:

PS: Can you please tell me which Tool to use (A Hex Editor?)? Thnx!

343

@goomball yes a Hexeditor.

Open the rom whit the editor

Click on "go to" and put the offset direction

Change the bytes to the desire new bytes

Click on save as and save



Goomball

#7
@4l3j4ndr0 Thank you! Do I change it to every "EA EA EA" that I find with the Hex editor? Because I saw several


EDIT: I got it working!!! Thanks so much everyone!! My first time at romhacking.net forums and already an awesome experience!!! Thanks!!  :laugh: 8) :thumbsup:

pleasejust

SMB3 was designed to be played with Mario turning small regardless of powerup. It's too easy otherwise. What I'd love to do is get the Japanese Famicom SMB3 damage system implemented into SMB3 North America as that version has some bug fixes from the Famicom version.

Cyneprepou4uk

@pleasejust, try this backwards, should work I guess because that is what romhacker did to make U damage system work like J

Quote from: Cyneprepou4uk on August 02, 2019, 03:49:48 PM
replace EA EA EA with 4C 15 DA at 0x019F9

RetroGameFan

Quote from: pleasejust on August 03, 2019, 05:00:45 AM
SMB3 was designed to be played with Mario turning small regardless of powerup. It's too easy otherwise. What I'd love to do is get the Japanese Famicom SMB3 damage system implemented into SMB3 North America as that version has some bug fixes from the Famicom version.
The North American system may be too easy for you, perhaps because you played the game numerous times, but for young kids and people like me who have varied interests who only play video games as a hobby, it's better to use the 3 HP. If you read my review, you would know where people like me are coming from.

svenge

#11
Quote from: pleasejust on August 03, 2019, 05:00:45 AM
SMB3 was designed to be played with Mario turning small regardless of powerup. It's too easy otherwise.

Nintendo clearly changed their mind on this at some point in the early 1990s even for Japanese releases, as both the remaster of SMB3 in Super Mario Collection (1993) and Super Mario Advance 4 (2004) have the 3-hit Leaf/Fire/etc. -> Super -> Small damage system.

Here's a rundown of the damage system changes over the years for all four classic Super Mario Bros games:

SMB 1:
2-hit system on all versions (Famicom/NES, All-Stars/Collection, and SMB Deluxe)

SMB 2 (aka "The Lost Levels"):
2-hit system on all versions (Famicom Disk System, All-Stars/Collection, and SMB Deluxe)

SMB 3:
2-hit system on JP Famicom release
3-hit system on US/PAL NES release, and all releases of Super Mario All-Stars/Collection and Super Mario Advance 4

SMW:
2-hit system on JP Super Famicom & US/PAL SNES releases
3-hit system on Super Mario Advance 2

RetroGameFan

@svenge - While Super Mario World's Japanese box art subtitles it as Super Mario Bros. 4, there is technically no Super Mario Bros. 4 (at least not yet). Nintendo probably put SMB4 on Japanese SMW packaging as an attempt to get it and the Super Famicom to sell more copies. If Super Mario World is Super Mario Bros. 4, Yoshi's Island (Super Mario World 2) is Super Mario Bros. 5.

There are four classic SMB games, but SMW isn't really one of them. However, the North American/European Super Mario Bros. 2 is. So the games are as follows: Super Mario Bros., Super Mario Bros.: The Lost Levels (or SMB2J or whatever), Super Mario Bros. 2, and Super Mario Bros. 3.

As for the rest of your post, that's a good observation on 2 HP vs. 3 HP systems you have there! :)

Goomball

Thanks everyone! The game is working great with the 3hp for me and the kids :thumbsup:

Thanks for replying to my thread. This will help many more people  :beer:

pleasejust

Quote@pleasejust, try this backwards, should work I guess because that is what romhacker did to make U damage system work like J

Quote from: Cyneprepou4uk on August 02, 2019, 03:49:48 pm

    replace EA EA EA with 4C 15 DA at 0x019F9


Yes, this worked, thanks. What will happen when suited mario (tanooki, hammer, goomba shoe, etc) gets hit? Will it have the suit flying animation like in the Japanese?

Cyneprepou4uk


pleasejust

Just tried it, works exactly like the Japanese SMB3. Thanks.

Do you know of a way to prevent getting a one-up after getting 3 cards? In SMB3, you effectively get a one up just for clearing 3 levels with a card block at the end. The game is too generous in giving one-ups. At the very least, I want it so that if your cards don't match when you have 3, you don't get anything. Any ideas? Thanks.

Cyneprepou4uk

#17
If you want to disable 1up giving for cards, the easiest way will be disabling increasing lifes counter by overwriting INC instruction with NOP's or changing it to LDA. Lifes can be found in RAM, code can be found by setting a write breakpoint to this address.

The second method is basically the same. You can disable increasing of cards counter which counts to 3, thus game won't be able to collect all cards and give you an extra life.

If you want to give 1up for 3 identical cards, it's a bit harder. I suppose game already gives you some bonuses for that scenario, so you just need to attach a life increasing code to it. To find that routine you need to set a read breakpoint to an address with a card number. Perhaps it is located somewhere near life increasing instruction.

pleasejust

Yes, I want to disable 1up for 3 different cards. But still have one-ups for identical cards. I'm not a romhacker in any way shape or form so unless it's easy like using a hex editor to change 3hp to 2hp, I wouldn't know what to do.

Cyneprepou4uk

I've got news for you - it was not easy. I mean it doesn't take many brain cells to change exact values to another values when someone else tells you what to change, but finding out by yourself how to make that hack requies some thinking.

So no, changing lives increasing mechanic won't be as easy for you as changing hp. But it's not that bad. Look, someone has even found lives addresses for you here

$0736 to $---- = Mario # of Lives (max 63[dec99])
$0737 to $---- = Luigi # of Lives


You are half way there. Now go open FCEUX and at least try this for yourself

QuoteIf you want to disable 1up giving for cards, the easiest way will be disabling increasing lives counter by overwriting INC instruction with NOP's or changing it to LDA. Lives can be found in RAM, code can be found by setting a write breakpoint to this address.

Maybe you'll actually like the process of doing that.