Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Super Mario World hacking: |
Acmlm's Board - I2 Archive - Super Mario World hacking - What's the deal with sprite generators? | | | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
User | Post | ||
Glyph Phoenix Level: 39 Posts: 480/745 EXP: 385876 For next: 18895 Since: 11-07-04 Since last post: 2 hours Last activity: 2 hours |
| ||
I have been pondering the creation of a boss that consists of a block that you can hit to decrease its HP and a sprite on top of it which generates enemies for Mario to dodge. (Because I'm not good enough to build a real boss...) So, I whip out MarioWorld Reconfigurer. I check the Bullet Bill Generator's code, because I'm thinking that a sprite with the code of the Bullet Bill but which shoots, like, spinies or something would be nice. I look at its sprite pointer. It's not valid. ...okay, what's the deal here? Sprite generators have invalid sprite pointers in MWR and they apparently only work on the sprite number that they were created on. I'm not nearly skilled enough to figure this one out on my own, so I turn to the board to solve this spritely conundrum. |
|||
Tweaker Red Paragoomba Level: 12 Posts: 48/57 EXP: 6490 For next: 1431 Since: 03-20-05 From: Rochester, NY Since last post: 25 days Last activity: 13 days |
| ||
Have you located the actual programming for the Bullet Bill Sprite? If so, you could just copy it, relocate it, and change what sprite spawn from it, couldn't you? With a bit of Tweaking, you could give it different art too by having it look somewhere else in VRAM. Dunno if there's a free spot though. |
|||
Sukasa Boomboom Error 349857348734534: The system experienced an error. Level: 57 Posts: 1764/1981 EXP: 1446921 For next: 39007 Since: 02-06-05 From: *Shrug* Since last post: 6 days Last activity: 1 day |
| ||
Ehh, how do you know it is invalid code? Could it simply be handler code, and I'm quite sure that the address given is in SNES LoROM format... What code is executed? | |||
Smallhacker Green Birdo SMW Hacking Moderator Level: 68 Posts: 2023/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
IIRC, the sprite code is in bank 1, which means that you should add 01 in front of the snes address before converting it to a pc address in LA. | |||
Glyph Phoenix Level: 39 Posts: 481/745 EXP: 385876 For next: 18895 Since: 11-07-04 Since last post: 2 hours Last activity: 2 hours |
| ||
Originally posted by Tweaker No. The spot the pointer points to is invalid, and I suck at tracing. Originally posted by Tweaker I don't want the generator to generate Bullet Bills, though. I want it to generate something that can be picked up and thrown, so you have to throw whatever it sends to you back at it. Originally posted by Sukasa It doesn't lead to code at all. The pointer isn't a valid LoROM address, so I can't convert it to a PC address. Originally posted by Smallhacker Right you are. Were it a valid LoROM address, you would need to add 1 to the beginning as well as use Lunar Address. But the pointer is not valid. |
|||
Sukasa Boomboom Error 349857348734534: The system experienced an error. Level: 57 Posts: 1772/1981 EXP: 1446921 For next: 39007 Since: 02-06-05 From: *Shrug* Since last post: 6 days Last activity: 1 day |
| ||
Add 01? well, AFAIK the SMW LoROM map starts at $80:8000, no $01:8000. did you try reversing the byte order before using LA? | |||
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: 6566/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||
I'm pretty sure $80:8000 = $00:8000, except 80 is fastROM. | |||
mikeyk Koopa Level: 18 Posts: 104/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
All sprite tables are C8 in size. MWR has no effect on sprites C9 and higher, except for corrupting some data of others. SNES $02/B466 is the start of the bill generator. I believe ASM pointers for C9 and higher begin at ROM 0x135B0. It may help for you in tracing to know that SNES $00/86F7 is the instruction that is always responsible for calling a sprite's code (edited by mikeyk on 08-26-05 07:28 PM) (edited by mikeyk on 08-26-05 07:45 PM) (edited by mikeyk on 08-26-05 07:49 PM) |
|||
Glyph Phoenix Level: 39 Posts: 486/745 EXP: 385876 For next: 18895 Since: 11-07-04 Since last post: 2 hours Last activity: 2 hours |
| ||
Thanks, MikeyK. HH, you really need to get on fixing that MWR bug. Or is rom corruption not a big enough problem to warrant a new release? Originally posted by Sukasa The pointer only points to locations within the same bank. The bank for sprite pointers is 1, so you have to put that in front of your address. And MWR reverses the byte order for you. |
|||
mikeyk Koopa Level: 18 Posts: 105/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
A quick note to go along with my last post in this thread... sprite pointers over C9 use bank 02. | |||
Glyph Phoenix Level: 39 Posts: 489/745 EXP: 385876 For next: 18895 Since: 11-07-04 Since last post: 2 hours Last activity: 2 hours |
| ||
Totally new problem now... You know the way the Mushroom only does something if you are Small Mario? Well, now I want it to do the opposite: Only activate when you aren't small Mario. I've searched and searched, but couldn't find the code... anyone know where it is? (I've already found the code that sets the powerup, but that code only runs when Mario is Small Mario.) |
|||
DisruptiveIdiot Paratroopa Level: 21 Posts: 128/147 EXP: 42614 For next: 7329 Since: 04-09-04 Since last post: 4 days Last activity: 5 hours |
| ||
Originally posted by Glyph Phoenix I have a feeling you want to make a poison mushroom =P |
|||
Glyph Phoenix Level: 39 Posts: 491/745 EXP: 385876 For next: 18895 Since: 11-07-04 Since last post: 2 hours Last activity: 2 hours |
| ||
Yeah, but not the kind that make you take damage. See, I'm totally overhauling the powerup system... I'm implementing a life bar, so when you get hit you don't lose powerups on contact. And there'll be some puzzles where you have to collect a poison mushroom to get through tight spaces. I already disabled the powerup carryover and such, so Mario will always be Big Mario. The powerups now act as temporary items, similar to the caps from Super Mario 64. Speaking of my life bar, I need to know where I can put a JSL in the main game loop to complete a bit of code. I was using the timer to do some of my work, but it is only active once in a while. I need something that will run every frame. (Or nearly every frame.) |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Super Mario World hacking - What's the deal with sprite generators? | | | |