1 page
^^
vv
List results:
Search options:
Use \ before commas in usernames
Edit history:
InsomniaDMX: 2009-02-23 05:06:01 pm
--Lawrence of Arrakis--
Somebody commented on a YouTube video of mine a little bit ago. I have a sneaking suspicion that the poster is none other than rolando from this board.  Wink

Zees Veedeo:


Here's a "Keep It Simple and Stupid" style implementation of it:
_______________________________________________________________
(introduction copied from the source file)

Lava style damage block hack
by Insom

ONCE AGAIN... USE XKAS V.06 TO COMPILE...

Not a whole lot to say about this one...
To use, set the tiles you want to have this effect
to block type $02 ("Air. Fool X-RAY.")
with a BTS value of $03. There are PLENTY of blank
spaces in the lookup table that I mention, so take
advantage if you want to add other blocks. Just add
another DW $xxxx after the first one to point to new
code. For example, $94:98B2's pointer corresponds to
the BTS value of $03, and $94:98B4's pointer would
correspond to the BTS value of $04.

Good luck!


IPS Patch for those who want it:
http://interdpth.arc-nova.org/Insom/tile.ips

Source code for those who want it:
http://interdpth.arc-nova.org/Insom/tile.asm


Again, I suggest using the source file, not because it'll make you 1337 or cool or whatever, but because it'll give you a better idea of what's going on...and trust me, this hack is EXTREMELY simple. You'll be able to understand it with hardly any programming experience at all. Open up the source with notepad and at least look at it. (I think most browsers will open it up in a text viewer anyway) Plus, if you want to make one version of the block that does a little bit of damage and another that does a lot more, then all you need to do is add a few more lines. (There's room for 13 new blocks in that lookup table, and you can hack this a little more extensively to make even more.)

You could make some pools of acid or trenches filled with mustard gas or whatever you want if you used this in conjunction with some well drawn tiles.
Thread title: 
Super Secret Area - Dead Ahead!
What would also be impressive would be to be able to do this and make pools of water, with the game's water physics, as at the moment, you can only have one layer for water, and that's it.  This would make some areas of hacks (containing lots of water) very interesting.

Good job, InsomniaDMX! aiwebs_011
Green-Kirby, ROAR!

Beta testing both the boost ball edit and the new tile some more.
So far no problem. I inserted with Xkass BTW.


(if the video does not show up check back later.)


Though I did run into a problem...
When boosting on a slope tile... I will show you in a bit.
Super Secret Area - Dead Ahead!
The animation you suffer looked more like spike damage, rather than just lava damage.  Another probelm I see (again) is that you do not keep your colours when charging the boost.  Is this something that's easily solved or not?  If not, it may be better to stick with the original colours...
Green-Kirby, ROAR!
Quote from Quietus:
The animation you suffer looked more like spike damage, rather than just lava damage.  Another probelm I see (again) is that you do not keep your colours when charging the boost.  Is this something that's easily solved or not?  If not, it may be better to stick with the original colours...

You are correct. But if you look closely you see it draining energy too. I'm using both spike floor and DMG tile right above that. On top of those I have treadmills.

And yeah. The palette is a problem I have seen. I though it loaded the palette directly from the suit palette lines but I guess that's not the case. A hand with changing the palette code would be nice if you have the time Insom.


Now about that problem...
See end of video:



Now here is a SMILE print out if you are interested in what slope.
IMG LINK! CLICKY!
Embarrasing Fact: Power suit made by lowest bidder
actually, I'm pretty sure that's a bug with the game engine and/or slopes, not a bug with Insom's boostball.

Whenever Samus is on the ground, her vertical speed is assumed to be her horizontal speed + 1, moving downwards. So if her horizontal speed is fast enough, her vertical speed will push her through the ground.
Unfortunately, I can't think of any particularly good fix. The best I can think of is to edit the vertical speed, have it first cap at 7 pixels per frame. If it fails to hit the ground and the horizontal speed indicates a higher vertical speed, run it again up to F pixels per frame. Which might still be a lot of work.

::edit:: Or you could just make those tiles solid instead, which looks like it would be fine at least for that picture. ::/edit::
--Lawrence of Arrakis--
Quote from Quietus:
What would also be impressive would be to be able to do this and make pools of water, with the game's water physics, as at the moment, you can only have one layer for water, and that's it.  This would make some areas of hacks (containing lots of water) very interesting.

Good job, InsomniaDMX! aiwebs_011



Very good idea! That won't be too hard...

In fact, I've got an idea. I'm thinking of making a VB app that'll allow users to plug different functions in for different tile BTSes. Something like this:



Give me some ideas for functions, and you might see them.




Crys:

I've never explicitly stated this before, but I'd assume that you'd make the final changes to all of your palettes before or after applying this hack. To cut a few corners, I use the first palette for the screw attack. Normally, that palette is identical to the normal one. I did this because the last two palettes for shinesparking and the first ones for screw attack are right next to each other. This saved me some extra lines of code because the index that I use to look up the palettes would be simpler. My code is fine, your palette editing is off. Go change the screw attack palettes. However, if you're going to use the screw attack palettes for something else (especially the first one in the set), then just tell me that, and I can make a few changes to help you out.

About the slopes... As far as I've seen, slopes don't like it when Samus goes really fast. The boostball code makes Samus go very fast (faster than speedrunning) for a very short time. There's nothing you can do other than to lower the peak speed, unless you'd like to make some overhauls.

I'd rather have you mention this in a PM or something, or in the thread I made for the boostball hack.

Edit: Yeah, what Kejardon said.




Quietus:

By lava style damage, I meant continuous damage. If you want the more subtle effects added, then list them for me and I'll see what I can do.
I'd like blocks that are programmable to be destroyable by certain beams or beam combinations.

Also, I was planning on making inter-room teleport blocks, kind of the same concept as a treadmill but instead of moving you a pixel over you'd get moved like 12 blocks over.
Green-Kirby, ROAR!
Quote from InsomniaDMX:

Crys:

I've never explicitly stated this before, but I'd assume that you'd make the final changes to all of your palettes before or after applying this hack. To cut a few corners, I use the first palette for the screw attack. Normally, that palette is identical to the normal one. I did this because the last two palettes for shinesparking and the first ones for screw attack are right next to each other. This saved me some extra lines of code because the index that I use to look up the palettes would be simpler. My code is fine, your palette editing is off. Go change the screw attack palettes.

Your right. I'm quite sure I did all lines for all suits. I tend to change them a lot and when I do, I do all lines at once to make sure they are the same. But I have not done any thing to it after adding the patch and you are correct all of my shine spark are back to original. This is not a problem I will just have to do them again. Also screw attack is green so I'm quite sure you meant shine spark.
Did the asm patch revert them back or am I just stupid again? Well in any case no matter.
Quote from InsomniaDMX:
I'd rather have you mention this in a PM or something, or in the thread I made for the boostball hack.

Edit: Yeah, what Kejardon said.

Right, sorry for dragging it here. And thanks for the heads up, both of you. Now I have to change some of my designs how ever.


Quote from InsomniaDMX:
In fact, I've got an idea. I'm thinking of making a VB app that'll allow users to plug different functions in for different tile BTSes. Something like this:



Give me some ideas for functions, and you might see them.

Blocks that work like the super missile and power bomb but you can set any type of wep for it. Normal missile blocks for example. Only problem is the GFX that is loaded when you bomb a SM or PB block. But maybe that can be removed?
Just an idea of what I always wanted to do.

I have asked jathys befor and he said it would be very easy to do. But the fact still stands that I lack experience and knowledge.  Embarassed
--Lawrence of Arrakis--
So yeah, redownload and shit.

PJBoy pointed out a flaw that I fixed.
Embarrasing Fact: Power suit made by lowest bidder
Quote from Deep_Space_Observer:
Also, I was planning on making inter-room teleport blocks, kind of the same concept as a treadmill but instead of moving you a pixel over you'd get moved like 12 blocks over.


This has some rather significant scroll problems. The PLMs in the Drew's lost caverns were positioned very carefully to cheat their way around these problems (all horizontal motion multiples of 32 blocks, all vertical motion multiples of 16 blocks, new destination has identical tile layout). If you want to make this actually work you might have to do some hefty work to the scroll routines, I'm not sure exactly how much would be required (if you're lucky it might be just a ~10 line hack).
Beam combo blocks would be pretty cool. Doors that only open to certain beams, similar to prime, would be better for an expansive hack so you have more than just 3 color doors and a grey door to lock you in/out. Also wonder if it would be possible to make a door that could only be opened by shinesparking into it? I have a lot of crazy ideas....now if I can just remember how to make the Shinespark hit a slope and continue running. I need that change for my hack./
Edit history:
rolando: 2009-02-24 12:30:19 pm
how would i compile the tile asm with xkas?

do i select the asm file the rom im going to use and xkas in the sametime and run it?

or is there something else i need to do?

i even tried using the ips patch but it still didn't work...
i put the value to 3 and the bts to 3 but still doesn't work..
Super Secret Area - Dead Ahead!
Quote from Deep_Space_Observer:
Also, I was planning on making inter-room teleport blocks, kind of the same concept as a treadmill but instead of moving you a pixel over you'd get moved like 12 blocks over.


Moving blocks / platforms might also be a good idea.  Similar to those flying enemy things that you can ride, but capable of being any size.  Might make for some cool morphball-inside-a-machine puzzles. (Picturing pistons and the like) aiwebs_011
I had an idea, it might be simple, and it might not.  I had the thought of an electrified floor -and this topic immediately came to mind. 

If this electric floor were on all the time you could just use a special graphic and set those (blocks) as spikes.  But what if the floor had a current going through it?  Sometimes on...  sometimes off...?  (This could be the whole floor being switched on/off at times). 

But what I really had in mind was this.  The tiles could animate (or change to a different block) as "electricity" ran through it.  Samus could stand on certain blocks for a moment but eventually electricity would pass through the floor and Samus would take damage. 

To get a better idea of what I mean...  if you've ever played the game 'Crack Down', there is one room where the floor tiles have electricity moving through them in a way that you have to walk through them without touching the electrified tiles.  There is a 'Spark' indicating which tile is 'active'.

Even better...  What if you had to time the speed of your run to avoid the electricity?

Anyway...  I don't know if anything like that would be possible.  I just wanted to throw the idea out there in case anyone knew of a way to do something like that.
¯\_(ツ)_/¯
Based upon what little I know of how stuff like this works, I'd say that would probably be rather easy as an enemy but really difficult as a BTS/Clipdata/whatever.
Edit history:
Obsy: 2009-03-15 08:18:34 am
Mistic Eyes Of Death Perception! Chibi Style!
Quote from rolando:
how would i compile the tile asm with xkas?

do i select the asm file the rom im going to use and xkas in the sametime and run it?

or is there something else i need to do?

i even tried using the ips patch but it still didn't work...
i put the value to 3 and the bts to 3 but still doesn't work..


I also cannot get it to work.
Used the patch as well.
No luck, the tiles don't damage you. (Air. fool xray, bts3)
I am using an unheaded rom.


Nevermind. Messed with the code a bit and it works fine now. laugh new
(Even though I have no idea what I'm doing!)  Embarassed

Replace:
LDA !value
CLC
ADC !damage
RTS

With:

LDA !value
STA !damage
RTS

Or for slightly faster:

LDA !damage
SEC
SBC !value
STA !damage
RTS


Also how do you heal samus?
Edit history:
Acheron: 2009-03-30 06:41:47 pm
--Lawrence of Arrakis--
Quote:
With:
  LDA !value
  STA !damage
  RTS


No, that's what my code looked like originally. That's technically the wrong way to do it, because if any damage was added to the address "!damage" before the code that checks and eventually clears "!damage" is executed, that damage will not be dealt; only the damage that this block is dealing will be dealt.  (ie: if Samus was going to take damage besides from the tiles, it won't happen)

Instead of simply loading a value that I have declared as, "!value", and storing it to the address declared as, "!damage", we should load the value from the address, "!damage", to the accumulator... then add our damage value to the accumulator and storing it back to the address, "!damage".

But yeah, doing that bit would actually deal damage to Samus, not heal her.


Quote:
Or for slightly faster:
  LDA !damage
  SEC
  SBC !value
  STA !damage
  RTS


This would actually be slower, but it would be correct... at least in theory.

How "!damage" works...

Every frame or so, a routine takes the value stored at "!damage" and subtracts it from Samus's health. This means that all the things that subtract from Samus's health sort of accumulate here. I assume that Nintendo did things this way either to simplify things for them or to smooth out issues with the health counter or something. Either way, it means that if you want to work with this address, you'll want to add.


If you were to subtract from that address like that, you'd only lessen the damage that Samus will take. For instance, if you STA the value 20 to that address with this block and Samus was to take 30 damage that particular frame, she'll end up taking 10 damage in the end. If she were to take 10 damage that frame, she'll end up taking 0 damage at the end of that frame after the SBC and STA.

If you wanted to add to Samus's health, you'd want to do that directly. You'll possibly want to be adding to 7E:0A4C, though there's another thread that talks about this business.

In addition, since 7E:0A4C acts as the fractional aspect of a larger floating point value, you might need to add in a check for if the value will overload the fraction and carry over to make another whole number. You might want check that other thread for information on that.

(Why did they have to go and make another thread instead of keeping it to one? >_> )
Acclaimed Threshold
Constant Sorrows
This thread (and most of Insom's contributions to the forum) is chock-full of content. Insom, if you're still around, I'll happy plug all your stuff into a sticky if you can get it into one thread. Up to you, though.
Mistic Eyes Of Death Perception! Chibi Style!
Just wondering, how do you make the damage by the blocks work like heat damage, as in the varia suit stops it hurting you?
Edit history:
P.JMan: 2009-04-21 03:18:28 pm
I like Big Butts and I can not lie
You check if bit0 of $7E09A2 is set

So instead of:
Code:
LDA !value
CLC
ADC !damage
RTS

It's:
Code:
LDA $09A2
BIT #%0000000000000001
BNE GotVariaSuit
LDA !value
CLC
ADC $0A4E
GotVariaSuit:
RTS
Edit history:
Kejardon: 2009-04-21 09:31:58 pm
Embarrasing Fact: Power suit made by lowest bidder
Just out of curiosity, am I the only person that's bugged when a previous post is modified so that a current post makes no sense anymore? Or am I just the only one that it happens to fairly often?
Edit history:
Obsy: 2009-04-21 02:11:31 pm
Mistic Eyes Of Death Perception! Chibi Style!
Thanks!
EDIT: is it posible to do it with the gravity suit? Is so what do I change?
I like Big Butts and I can not lie
You check if bit5 of $7E09A2 is set instead, so the BIT #%0000000000000001 becomes BIT #%0000000000100000
Mistic Eyes Of Death Perception! Chibi Style!
Thankyou! Much apreciated! extra_smug