Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - Multiple sprite/ASM questions | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 95/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 03-03-05 01:07 AM Link | Quote
Hey!

I was working on my hack, but I have run into a problem. I have several ASM-related questions that I need answered:

1. How do you create sprites from another one?

2. how do you moniter to see if a sprite is present?

3. how do you delete/kill sprites?

4. how do you change Layer one and layer 2 objects?

5. how do you scroll Layer 2 objects vertically?

6. what are the entry/exit requirements for sprites? (A/X/Y preservations, sizes)

7. How are sprites used in a level? (Subroutines, macros, etc...)

8. What variable is the frame counter?

9. Are there any unused variables in SMW I can use for myself? I need about 4-5.

Those are my first set of questions, so If anyone can help me with it I would greatly appreciate it!


(edited by Darkflight on 03-04-05 11:21 AM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3552/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-04-05 12:25 PM Link | Quote
1: What exactly do you mean 'from another one'?
2: Present on the screen? Just loop through the sprite tables and look for it.
3: Set their entry in the table to nothing.
4: Map16 data is at $7EC800 (low byte) and $7FC8000 (high byte). (Ex: 7EC804 is the low byte of a tile, and 7FC804 is the high byte of the same tile.) Not sure how layer 2 works though, or how to translate object coords into a Map16 address.
5: You can't scroll individual objects, only the entire layer. You do so by modifying a few addresses, though it seems to cause synchronization problems.
6: In what? If you're talking about ASM (though I don't know of anyone who knows how to hack the sprite ASM yet), I'd suggest just preserving all the registers until you know what they do.
7: There are various tables that say what they are, where they are, how fast they're moving, and so on. Each sprite has an ID number (I imagine the first you added is #1, next is #2, and so on, though deleting them complicates it) which is used as the table index.
8: 7E0013.
9: Tons, look through RAM for large patches of 00s or 55s. The 55s don't get reset between levels though.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 100/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 03-04-05 08:31 PM Link | Quote
Hey!

Originally posted by HyperHacker
1: What exactly do you mean 'from another one'?


I mean how do you create one sprite using another sprite (i.e. a generator)

Originally posted by HyperHacker

2: Present on the screen? Just loop through the sprite tables and look for it.

So if I just placed all the sprites in order, i could easily moniter sprites. Thanks.

Originally posted by HyperHacker

4: Map16 data is at $7EC800 (low byte) and $7FC8000 (high byte). (Ex: 7EC804 is the low byte of a tile, and 7FC804 is the high byte of the same tile.) Not sure how layer 2 works though, or how to translate object coords into a Map16 address.

So how would I use that to change layer one objects at any given time during gameplay?


Originally posted by HyperHacker

6: In what? If you're talking about ASM (though I don't know of anyone who knows how to hack the sprite ASM yet), I'd suggest just preserving all the registers until you know what they do.

Yes, I mean in ASM. I just don't want to overwrite something that I shouldn't (X/Y registers).

Originally posted by HyperHacker

7: There are various tables that say what they are, where they are, how fast they're moving, and so on. Each sprite has an ID number (I imagine the first you added is #1, next is #2, and so on, though deleting them complicates it) which is used as the table index.

Yea, thx. I actually meant are they called as Subroutines, Macros, etc...?








HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3574/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-07-05 10:46 AM Link | Quote
-Creating another sprite, I don't know how to do, but I think a few people are close to figuring it out.
-To change layer 1 objects, you would write a new Map16 number into the table (you can get the numbers from LM's Insert Objects window, go to Direct Map16 Access and find the one you want), however, I don't know how to convert coordinates to a Map16 address, so you'll have to just play around with it until you find the address you need every time. (And you'll only be able to do that if you want to change one specific part of a level - custom blocks would have to have a way to figure out their own address.)
-As a general rule when ASM hacking, if I don't know whether the game will need a certain register's value, I back it up before I do anything to it. You can experiment to see which does what though.
-Not sure about the sprite subroutines or macros; there must be an 'add sprite' subroutine in there somewhere though.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 127/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 03-08-05 08:38 AM Link | Quote
Originally posted by HyperHacker
--Not sure about the sprite subroutines or macros; there must be an 'add sprite' subroutine in there somewhere though.


By 'add sprite' subroutine, do you mean creating the sprite or running it's code? I wrote out the shell ASM as a subroutine so I would something to base off of.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Multiple sprite/ASM questions | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.015 seconds.