News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

[SM] [ASM] Ice missile

Started by Damski, June 02, 2011, 09:50:54 AM

Previous topic - Next topic

Damski

Anybody know how make Ice missile with Hex editor?

Like this Ice Missile Beta Version

Qactis

That was written in assembly, though if you're attempting to learn it, it doesn't look too difficult, probably some routines the ice beam uses to do what it does that you can jump to, provided your indexes have the correct values prior. You should contact the guy who made the code, DSO

X-tradyte

Even after that, There would still be the ASM for the new item itself, then the addition to palettes and the ice effect coming off the missiles, like the ice beam. I think it'd be great for Fusion style SM hack, in which I am currently getting tiles made by Borderjumper, right now.

Quietus

There would be no new item that I can see.  It would just be altering the damage type of the missile from explosive / normal (or whatever it is) to the same type the Ice Beam normally is, or something to that effect.  The trails can no doubt be altered easily enough, as you'd just replace the normal smoke trail with the Ice Beam particles.

Crashtour99

I think the only thing that was actually altered (in the video at least) was the ice beam enemy AI reaction.  This is just a guess, but I'd say that it was modified so that it recognizes a missile projectile as the freezing agent instead of a beam projectile (with ice equipped). 

For trails, it would probably be better to alter which trail it uses instead of the graphics (I'm pretty sure it's just a hex tweak to an index somewhere).  Smoke trail graphics are used in a lot of different places, so you wouldn't want ice beam trails popping up randomly as Kraid rises or you hit the ground in morphball.

I can't remember who it was, but someone made a version that produced an expanding ice beam shield (special beam attack with powerbombs) upon impact.  Which also isn't too hard to do, just a matter of replacing the JSR/JSL to the routine that draws the missile impact with the one that runs when the ice shield is activated.  Hardest part is finding the right routines.

As an example...
[spoiler]http://www.youtube.com/watch?v=w92LNeGXZmU
And yes, I had help with finding the routines and getting it to work, so special thanks to them (hopefully they remember who they are XD).[/spoiler]

fuducker81

this would be great for super metroid fusion!!!

X-tradyte

Quote from: DarkSamus on June 04, 2011, 09:32:29 PMI think it'd be great for Fusion style SM hack, in which I am currently getting tiles made by Borderjumper, right now.

Yeah....I'm making one, I hoping to get this Ice missile on the ROM, if created....

Damski

I really wanted to replace super Missiles with Ice missile. I do not want to make a new item because it sounds really difficult job :D


I hope that this could be made with Hex editor.. Hex tweak style.. I wonder how I start this project.

X-tradyte

You can use hex to do this. You need ASM, otherwise, it won't work. And if you know ASM, making new items is nothing.

Damski

Quote from: DarkSamus on June 05, 2011, 12:44:48 PM
You can use hex to do this. You need ASM, otherwise, it won't work. And if you know ASM, making new items is nothing.

Why it it won't work?

Crashtour99

Just to reiterate the basics, Hex IS ASM, just in a different format.  For instance:

When you're repointing something, all you're really doing is telling the routine to jump to a different location in the ROM.

For Hex tweaks, you'll find that many of them seem like random hex being replaced by something like EA.  EA is the hex version of the ASM code NOP (no operation).  So those kinds of hex tweaks are basically replacing ASM instructions with another instruction that tells it not to do anything.  All any hex tweak really is, is a small number of ASM instructions that someone has found that if altered, change specific behaviors.

Something like an Ice Missile could be numerous hex tweaks, or it could require writing an entire new subroutine.  As for which, you'd have to ask someone who's dug through the code to make it happen (or learn ASM and do it yourself).  If someone who knows ASM is feeling generous, they might help you, but don't expect them to help you just because you asked.

Damski

Quote from: Crashtour99 on June 05, 2011, 02:31:07 PM
Just to reiterate the basics, Hex IS ASM, just in a different format.  For instance:

When you're repointing something, all you're really doing is telling the routine to jump to a different location in the ROM.

For Hex tweaks, you'll find that many of them seem like random hex being replaced by something like EA.  EA is the hex version of the ASM code NOP (no operation).  So those kinds of hex tweaks are basically replacing ASM instructions with another instruction that tells it not to do anything.  All any hex tweak really is, is a small number of ASM instructions that someone has found that if altered, change specific behaviors.

Something like an Ice Missile could be numerous hex tweaks, or it could require writing an entire new subroutine.  As for which, you'd have to ask someone who's dug through the code to make it happen (or learn ASM and do it yourself).  If someone who knows ASM is feeling generous, they might help you, but don't expect them to help you just because you asked.

Oh Okay. Thank you guys very much..

Qactis


Crashtour99

Quote from: Qactis on June 05, 2011, 10:50:09 PM
Charged big bomb is so win

Yeh, it was actually pretty easy once the pertinent information was located.
There were 3 basic changes:

[spoiler]
Bomb spread: X and Y speed were set to 0, timer set to #$0001, so the explosion ends up being 5 times more powerful than a regular bomb.  XD

Graphic: Proper data was loaded into registers, then jump to routine to draw super missile explosion graphic, and set a special bit.

Bomb projectile collision routine:  This was tricky, but still pretty easy.  Runs normally, then checks for bit set by graphic routine, if positive runs an expansion of the collision routine and resets the bit.  Normal bombs destroy 5 blocks, charged bomb destroys 9.

Hardest part was nailing down the info needed (drawing the graphic and locating/understanding the collision routine), which is what I had help with.  Very similar to my shinespark timer, when I couldn't find the routine that actually forces shinesparks to end (same person helped me with that as well).[/spoiler]

To all you folks reading this that are thinking about learning ASM, as long as you're willing to learn there will be at least a few people willing to help you out.   :wink:  Just don't expect to understand it all at once.  You gotta start out small.

X-tradyte

I've always wanted to learn ASM, in case of making Apocalypse better. I'll try to learn. :) Where doth thee signith up?

Crashtour99

If you know your way around a hex editor and can read pointers, a good place to start is the ASM lessons.

http://dl.dropbox.com/u/11341279/Sadiztyk%27s%20Tank/Documents.html

Dunno if the links were fixed in the appropriate thread, but these definitely work.  Good basic info to start you on your ASM journey.  You might also want to read the programming manual for the processor:

http://www.westerndesigncenter.com/wdc/datasheets/Programmanual.pdf

It can be a bit headdy, but it's worth it.

Qactis

Quote from: Crashtour99 on June 07, 2011, 04:29:54 PM
Dunno if the links were fixed in the appropriate thread, but these definitely work.  Good basic info to start you on your ASM journey.  You might also want to read the programming manual for the processor:

http://www.westerndesigncenter.com/wdc/datasheets/Programmanual.pdf

It can be a bit heady, but it's worth it.

Agreed. I read through the first 13 chapters:

1-3 are basic binary and assembly intro chapters, you should take notes, 4 is the intro to the 65816 (SNES processor), and you can kinda breeze through these chapters, 5-12 introduce and use examples of all of the assembly opcodes that the SNES processor uses, 13 is like a summary and some last commands you may or may not use, and 14+ are coding chapters that show you how to get started and aren't really necessary at all for super metroid. Reading only the first 13 definitely sizes down that bulky manual quite a bit.

http://dl.dropbox.com/u/16496280/Synergy/Assembly/Programming65816Notes.txt

This is DChronos' hefty notes on the first 2 chapters, followed by my own notes that I took as I read this book, maybe they will help, or reiterate concepts for you.

Black Falcon

TBH, Ice Missiles are one single byte change (I just don't know where it was >_>).
However they need Ice beam to be on in status screen, else it won't work.

To make things like the Diffusion Missile:
[spoiler][/spoiler]
...you need alittle more asm.

The ASM programming language opens you alot of doors, and like Crashtour said, it's really worth learning it!

Damski

Quote from: Black Falcon on June 17, 2011, 01:17:56 PM
TBH, Ice Missiles are one single byte change (I just don't know where it was >_>).
However they need Ice beam to be on in status screen, else it won't work.

To make things like the Diffusion Missile:
[spoiler][/spoiler]
...you need alittle more asm.

The ASM programming language opens you alot of doors, and like Crashtour said, it's really worth learning it!


Aww it was really close  :cry: If you find it...please pm me!  This would be an important feature of my hack..

X-tradyte

Quote from: Black Falcon on June 17, 2011, 01:17:56 PM
TBH, Ice Missiles are one single byte change (I just don't know where it was >_>).
However they need Ice beam to be on in status screen, else it won't work.

To make things like the Diffusion Missile:
[spoiler][/spoiler]
...you need alittle more asm.

The ASM programming language opens you alot of doors, and like Crashtour said, it's really worth learning it!

Holy fukken shit BF! Thats amazinggggggg!
* DarkSamus turns face creepingly

U-Mos

Hello there, I don't mean to be up in your busyness, but I am a noob here. And I am very aggravated at not knowing how to work out the ASM stuff. So I was wondering if someone could do a video explaining all of it and how it works. For example, how to actually apply the diffusion missiles. I know that there is a person...... [spoiler] Shadow34370....[/spoiler] that made tutorials, but I guess that didn't help any. So I was wondering if someone could make another tutorial. And if you can't, at least share a diffusion missile ASM. Or even just the Ice missle. But I really want to learn how to do some ASM work myself. Because as of now, all I know is.... well, they are numbers. So please.... Please help!!!!

Quietus

There is no 'helping' you with this.  You have to learn it.  There is no shortcut.  You can read about some of the basics from the existing lessons here.  Otherwise, you will have to read about it yourself.  You could also try asking in the IRC channel (link on main page).

U-Mos

#22
Thanks again.