Views: 837,782,459
28 users online: Amine Retro, AmperSam,  Anorakun, Aurel509, bsolt, CalHal, Dark Mario Bros, Doug Walker, Epic_stuff, everything_is_worth_a_try, FelMay, Froger, h.carrell,  JamesD28, Lucayorlando, Luigiman941, Matheus2653, Potions315, RollingRigatonis,  Sinc-X, SubconsciousEye, Super Maks 64, Superdjsteve54,  Teows, TheMorganah, Tiroler, Yoshimaster96, Yoshin - Guests: 63 - Bots: 83 Users: 45,804 (3,389 active)
Latest: hksumo
Summer C3 2020 Content Spotlight
Ninja Boy's "Walls!" Hack Preview!
Not logged in.
Posts by nagna zul
nagna zul's Profile - Posts by nagna zul
Pages: « 1 »
I'm trying to create something rather unusual - a custom block that, when touched, will crash the emulator.

I'm guessing that making a block that crashes the player's computer is impossible (if it IS possible though, I would really LOVE to hear about it) but crashing the emulator with custom code should be feasible - would locking the game into some kind of infinite loop be enough, or will that not affect the emulator? Possibly put some code that uses up resources in the infinite loop? Try to load an infinite amount of something so the emulator runs out of memory?

Alternately, something that makes a Windows error message pop-up would be just as good as crashing the thing.

If crashing the player's emulator/computer is not possible, then I suppose I could settle for simply freezing the game, but then the player can just use a savestate or rewind to bypass the block entirely.

I don't know if anyone has ever created such a thing by mistake due to a coding error - if so, please share it with me.

No, I am not looking to make a virus or anything of the sort - I'm simply honestly curious as to how much a romhack can mess with the player.

IN SHORT: If you have a block that can freeze the game/emulator/computer, please tell me about it!

Thanks you!

ADDENDUM: I'm assuming that, in the intro menu, when the player deletes one of his saved games, the game calls a function somewhere to delete the file. Would it be possible to call that function with a custom block? Some kind of "delete-your-saved-files" custom block?
I'll admit this sounds really stupid and unfun when I put it that way.

To be clearer, this is mostly out of theoretical interest. I'm fairly certain that freezing the game is easily doable, but I'm honestly curious as to how one would actually do something more than that. I have no real experience with ASM hacking, which is why I'm asking it here.

Call it pointless curiosity, but I would really like to see it done.

Okay then.

How do I do it?
Originally posted by InvisibleCoinBlock
You have no ASM experience. Then you already know how to make the block.

Maybe I'm reading this wrong, but this makes no sense to me.

I don't know how to make this block, which is why I'm asking for help.
Originally posted by Tewi Inaba
Take an asm tutorial and you will learn how to do this.
If you knew asm, this would be extremely simple.

If it's extremely simple, could you please explain how to do it, or better yet give me an example?
Originally posted by Tewi Inaba
Originally posted by nagna zul
Originally posted by Tewi Inaba
Take an asm tutorial and you will learn how to do this.
If you knew asm, this would be extremely simple.

If it's extremely simple, could you please explain how to do it, or better yet give me an example?

Hi. I heardz you liekz schwa
zooooooooom zooooooooooooooooooooooooom!

Believe it or not, you linking an ASM tutorial does not help me any.

Care to actually help?
Originally posted by Tewi Inaba
That is the best help you will get. It explains how to make custom blocks.
Nobody will do it for you. Everyone has to start at the bottom of the chain and not have their food spoon fed to them.

Believe it or not, you telling me this does not help me any.

Care to actually help?
You can link me to ASM tutorials all day long, but that still won't solve my problem. Guess what? I read them before making this thread. I made this thread because I couldn't find the answer to this question in a tutorial.

All I asked was a simple question: How to freeze the emulator or the computer with custom ASM. I was able to make a block that froze the game, took about 10 seconds. I then made this thread because these tutorials don't have a section entitled: "READ THIS IF YOU WANT TO CRASH THE PLAYER'S EMULATOR"

So, let me re-state my question again.

How would someone go about making a block that crashes the player's emulator? I know how to make blocks, I don't know how to make them crash emulators.
Looking through the ROM map, I noticed this bit "01DC9 ASM: Save Game function". I'm guessing this means there's a "Erase game function" somewhere else in the ROM that has yet to be found. How would I go about figuring out where that function is in the ROM?
Thank you for posting that.

I really wish I knew how to use it, though.

If I'm understanding this correctly, running this code will delete a save file? Which one will get deleted? The code refers to the currently selected save file which refers to (I'm guessing) an address in the RAM...would it be possible to use a static value instead of the currently selected one, like say "Delete the first save"?
I was playing with the Bowser fight, trying to change the sprite that Peach throws, but whenever I change it to something that isn't a mushroom, the sprite doesn't show up. How would I make it work properly?

For reference:

1AAE9 $03:A8E9 1 byte Misc. Status of sprite spawned by Peach
1AAEE $03:A8EE 1 byte Sprite number Sprite Princess Throws

What is the "status" of the sprite? Can anyone explain?
How would this be done?

I want the player to have a permanent ability that he can use anytime by simply pressing the select button.

Right now I have the code working in a custom block, so the player can use this ability when in contact with said block, and I can simply flood the level with that custom block so the player can use this ability, but I'd like to not have to use custom blocks. How do I do this?
How do I check if Mario is currently touching the ground when using a custom block? I wanted to use this part of the RAM Map:

$7E:0077 1 byte Player Player Position Status (0=In Air, 1=Right Edge In Air, 2=Left Edge In Air, 3=On Ground, 4=Left Edge On Ground, 5=Right Edge On Ground)

But this byte never contains any value. It never changes. So what else can I use?
Originally posted by BZM
I think it would be

LDA $77
CMP #$03

This code loads what's currently in $0077 and compares it to 03 (mario on ground).

If you want a block to react different ways if the value in $0077 is or isn't 03, then use BEQ If equal, branch to ____ ) or BNE (If not equal, branch to ___ )

Schwa's ASM tutorial and the RAM Map should help you with the rest of what you want to do, whatever it is

This is basically what I did, but it doesn't work. The value never changes no matter what I do.

Originally posted by Learn

That really doesn't work too well. Use $72 intead. It would be #$00 if on the ground.

$7E:0072 1 byte Misc. Mario flying flag

Isn't that the "flying with a cape" flag?

What I want is a "mario is touching the ground and can jump" kind of flag.

EDIT: Just tested this. It works - seems to be 00 when touching the ground, 11 when going up in a jump and 36 while falling down. Not exactly sure why it does that, but hey, it works.

Pages: « 1 »
nagna zul's Profile - Posts by nagna zul

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2020 - SMW Central
Legal Information - Privacy Policy - Link To Us


Follow Us On

  • YouTube
  • Twitch
  • Twitter


  • Super Mario Bros. X Community
  • Mario Fan Games Galaxy