Language…
6 users online: Ice Man, Katerpie, Neuromancer, RollingRigatonis, WONIU, Zavok - Guests: 66 - Bots: 77
Users: 68,016 (2,139 active)
Latest user: rmurso88

Posts by DarkBones

DarkBones's Profile → Posts

Originally posted by Vic Rattlehead
Erm, the other image seems to be broken now, so I can't accurately compare the two, but from memory, the only difference seems to be an added layer of color onto the planet and a couple speckles. (I didn't even know it was a planet, I though it was like some fancy space lighting effect originally)

Take a look at some of the other graphics posted, and try to imitate the method used. You might end up with somethin' nice.


Actually, that IS the only difference, and it's broken because I deleted the old one. *Sigh*, I'm just not good at drawing...

EDIT: Maybe I should start with FGs instead, here's some for a desert planet:


Please tell me I'm at least getting better at this...


...or at least point me to a good spriting tutorial...
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
I need help with something. I'm making a Space-themed level for ASMWCP2. Because we can't use rips, I have to *gasp* make my own graphics...Bottom line: MY GRAPHICS SUCK! Does anyone know where I can find a good spriting tutorial?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by Krazystar
Originally posted by DarkBones

WHAT ABOUT PLUTO?! YOU FORGOT PLUTO!

Anyways, mind if I use this one?

Well, Pluto isn't considered a planet anymore, so I left it out. And sure, use the idea! I wont be using it because I'm not sure exactly how I would design it, so I threw the idea out here. Also, if you will use the idea, make sure you include the moon "Titan". It has methane rivers and volcano's that spew ice!
:O


Actually, I was going to use made up planets, but yeah, coincidentally one of the planets will be inspired by Titan. I'm planning on making a teleporter maze where you have to go in-between a few planets to find the exit.
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by foop2164
Here's some graphics I drew for my level. You can probably guess which world it's gonna be in. #w{=P}

The above picture shows palette 2, and the below shows palette 3.



Please tell me where you learned to sprite so well...
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Just a random custom sprite I made. Video Link
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by Kaijyuu
You'll have to explain what you mean by "address."


From your description, I think you mean a RAM address. You want to make a new variable, right?


If so, of course. There's lots of free RAM that you can use, though tools and patches have eaten up a lot of what was originally free in SMW. Check the RAM map, look for "empty" addresses that aren't used by lunar magic, tools you're using, patches, etc, and use one of those.



BTW, making a collectible can be rather difficult, especially if you don't want it to respawn when entering the level again and if you want it to be saved to SRAM. Some tips:

- Whenever using free RAM, you should initialize it. This means writing to it (anything) before ever loading from it. The reason for this is RAM that has not been written to has a more-or-less random value. Most emulators default uninitialized ram to 55 (even BSNES), but you can't expect that. Two real games did this, and have a chance of crashing whenever the game is turned on or the reset button is pushed.

This massively complicates things since you can't do this in your collectible block; you'll have to use a patch. Preferably something that runs when a game is loaded. You could probably do this in the SRAM expand patch, mentioned later.

- To make something not respawn, you can either use object tool (patches section), or LM's conditional direct map16. Both are kind of confusing. Object tool might be easier if you don't know how to make patches, since conditional map16 requires some setup.

- To save to SRAM so the player doesn't have to use savestates or recollect everything every time they load the game, you'll want to use the "SRAM expand" patch and modify it. A bit complicated if you want to use each of the 3 save slots instead of them sharing your collection counter.



So yeah. A collectible block is a pretty big undertaking. A collectible sprite might be more manageable, but you'll still have to deal with initializing RAM and saving to the SRAM.

If you're not discouraged, feel free to ask questions if you get stuck. Just don't expect to do this in a day as a novice ASM hacker.


fakeedit: ninja'd since I took so long writing this. Oh well, still good information.



After spending the past couple of days learning about sprites, I decided to do this, now for my first question, how does one get started with making a collectable. I know how to make a sprite disappear when Mario touches it, and how to make a sprite give you an item when it does, but where do I go from there?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
You can set some bit in some freeram and check it later. (and put the same freeram in SRAM Expand patch, obviously)


Sorry, n00b question, how do I do that? I know how to open up the ASM file, but exactly what values should I put into the patch?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
...and thats it? You just get the sprites to write to a freeram value? Okay, now here's the hard part, how do you use the custom menu patch to display which items you've collected? Can you even do that?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
That confused me...a lot...oh well, guess i'll talk to Iceguy about it. In the meantime, I'll be programing the sprites, so using Iceguy's tutorial, at what point would I make the sprite write to the FreeRAM, and what script would I use? (I used the value that you mentioned earlier.)
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
What exactly you want to do?


Change the value to indicate the item has been collected, for example the sprite initially sets the value to 0 at game start/level load, then, when the item has been collected, set the value to 1.
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by Zildjian


My, my, didn't you have a lot of spare time on your hands...that level looks really good, but I would use something other than munchers at the end. Even if it's Vanilla, coundn't you get creative at the end with some Map16? Everywhere else, the munchers are fine, but all those munchers in a row at the end are kind of bugging me...
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
Right, here's how you can do it (not the code...):

If bit 2 of freeram is set, delete sprite. - In the powerup sprite
If mario get the item, set bit 1 of freeram for example. - In the powerup sprite

If bit 1 of freeram is set, set bit 2. - In the generator (since you're new at ASM, you can use a generator to make the things more easy).

And if bit 1 is siet, you can also make the generator draw something in the screen, like a mushroom in the top of the screen, like an inventory.


Thanks for telling me a good way to do this, and don't worry, I don't want the code done all for me.

1) Its more fun to do it, I actually kind of like ASM, because I'm remotly good at it, and thats the way my mind usually works.

2) I'm 99.99% sure that asking for all the code done for me and then stamping my name on it is stealing...

EDIT: Wait... do I load the freeRAM as my address, or what?

EDIT2: Never mind, I tink I figured it out...
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
Right, here's how you can do it (not the code...):

If bit 2 of freeram is set, delete sprite. - In the powerup sprite
If mario get the item, set bit 1 of freeram for example. - In the powerup sprite

If bit 1 of freeram is set, set bit 2. - In the generator (since you're new at ASM, you can use a generator to make the things more easy).

And if bit 1 is siet, you can also make the generator draw something in the screen, like a mushroom in the top of the screen, like an inventory.


Okay, I have the main coding done, now I just have to run checks for it. To test it, however, I need to set up a visual indication, so how exactly do you draw a tile somewhere on the screen?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by Iceguy
Quote
Okay, I have the main coding done, now I just have to run checks for it. To test it, however, I need to set up a visual indication, so how exactly do you draw a tile somewhere on the screen?

You mean test what the contents of the RAM Address is? You could probably use a debugger,


Please tell me ZSNES has one...SNES9x?...

Originally posted by Iceguy
but the way I do it is by drawing the tile somewhere on the status bar, like this:

Code
LDA !Address
STA $0EF9


You can store it anywhere from $0EF9-$0F2F as long as the position you're writing to isn't used by any counter/etc. on the status bar. Also, this will render garbage if the value is more than 9. To fix that, pass the RAM Address through a Hex<->Dec loop before storing it on the status bar. Storing it somewhere else on the screen is quite harder, but I assume you don't need to do that.


Okay, thats good, because I don't need to, but what do I do if the value I used is a binary value? Because I'm pretty sure the freeRAM is Binary, although I could be wrong...
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by WhiteYoshiEgg
Every address has the same format - everything's binary, if you will, it's just always displayed and worked with as Hex. In a nutshell, don't worry about the format.

If you want to have it displayed as binary in the status bar though - I believe that's quite a bit harder. Just stick to displaying it in Hex if you can.


Okay, I was just worried about the format. So what address do I need to get the tiles to appear around the center of the red circle/oval/whatever:



I can move the item box over if nessicary, but I think it would look odd...

Thanks for your help, oh and one more thing, when you set the level for the credits sequence, does it have to end with a boss?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
This may help you:

http://www.freewebs.com/mysharedfolder/FAQ/StatusBarMap.png



Thanks, that helps me with the address, but how do I draw tiles there?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
Well, there's the Layer 3 GFX files right? (28, 29 and 2A I think). You can use 28 and 29. It works like LM tile editor, the first 8x8 tile is 00, the second 8x8 tile is 01, G would be 10, Z would be 23, etc.. Just have in mind that vertical is +10 (in hex) and horizontal is +1.


I don't know how to use Layer 3, is there a way to draw the 8x8 coin status bar tile there instead?
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by leod
The status bar is layer 3, let me get two pictures for you real quick.





Simply LDA #$xx a value from the first diagram and STA $xx it using the second diagram.
The values in the first picture of course don't change if you use custom graphics, you'd have to check their position manually then.


OOOHHH...thanks, hopefully I can finish the code now.
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Okay, its done! ...almost...for some reason, while it places the tile when the item is collected, the item reappears when you leave and come back, any help?

Edit: Also, when you go through doors, it resets, and the tile disappears.
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.
Originally posted by undefinied3
Ok, let's see this...

dcb "INIT"
RTL
dcb "MAIN"
LDA $0058
CMP %10000000
BEQ DrawTreasure1
RTL
DrawTreasure1:
LDA #$2E
STA $7E0F09
RTL

I'm sorry, I had forgotten this. You have to put a # before the %, so it would be #%10000000, and this is the generator right?

And you'll use this freeram to other things? (use the remaining bits) If so, change CMP to AND.


That worked for the touching generator bug, but the value resets when I go through a door (yes, I have the generator on the first screen of both rooms) and the item reappears when I leave and go back.
Eh, sure. Why not? Kaizo hacking doesn't seem too ha-aaaaaaand I broke the ROM.