(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-22-24 05:23 AM
0 users currently in SMW Hacking.
Acmlm's Board - I3 Archive - SMW Hacking - Looking for creating/eating custom block routine New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
spel werdz rite









Since: 11-19-05

Last post: 6303 days
Last view: 6302 days
Posted on 06-15-06 01:11 PM Link | Quote
Since sprite hacking has been the new "high" in SMW, I thought we could give this a go around.
I found a thread in the '03 Acmlm's Board (refer below) as a general start-up of where it could be (we miss you Jonwill).
I'm going to look at this myself, but I am not much of a sprite hacker (IM RETARDED) but I though I'd talk about it to anyone who wants to look at it also.

I don't know why, but it won't upload as a link, so I'll just wright it out.
Originally posted by jonwill of the '03 Board
Its (I think) the data for the eating/creating blocks!
All I know is that the table thats used for levels 0x00-0xFF starts at 0x195A4 and the table thats used for levels 0x100-0x1FF starts at 0x195EF. Dont know how long the tables are.

Oh and BTW, the code for this starts at 0x0392FB (SNES address), thats where it loads $1F11 (ram location that tells if its the first or second batch of 0x100 levels)

I know these locations are correct because I corrupted the tables and the path changed. However, I am clueless as to how the code works or what it does with the values because the code relies on (amongst others) ram locations $98 and $9A which are 2 of the 9 ram locations that I have yet to work out (and I have tried everything). If I can figure out what $98 and $9A are for, I might be able to figure out this code and data.
SnifflySquirrel

Shyguy








Since: 03-03-06
From: Vermont

Last post: 6403 days
Last view: 6303 days
Posted on 06-15-06 03:02 PM Link | Quote
Check out this thread I posted a while ago.

In my hack I've patched the block train data loading routine to allow for paths to be assigned by overworld level number. If anyone's interested, I can post some of my notes on how I did this.
spel werdz rite









Since: 11-19-05

Last post: 6303 days
Last view: 6302 days
Posted on 06-15-06 03:35 PM Link | Quote
I'd love to see your notes!

And you said that you already did it on a per-level basis?
That's even cooler!
Please tell us your knowledge!
SnifflySquirrel

Shyguy








Since: 03-03-06
From: Vermont

Last post: 6403 days
Last view: 6303 days
Posted on 06-15-06 04:54 PM Link | Quote
Here ya go.

Since I'm lazy, I basically just copied and pasted from the "ASM logbook" I'm keeping for my hack. I did include a trace of the code that loads the data, though, so you can see how my hack works in context (sort of). I haven't bothered to research the behavior of this sprite further because the movement data is all I was interested in at the time. If anything is missing, unclear, or otherwise borked, please let me know.

Incidentally, I believe that RAM locations $9A-$9D are used for level layout/sprite collision, somehow (haven't really looked into it much). What I did notice is that shortly after the code trace included in my link, the code JSLs to a routine that seems to be getting the address of the block underneath the sprite. (Look for writes to $6B-$70; they almost inevitably store level layout addresses... $6B is the long address to the low byte, $6E the address of the high byte.)

[Off-topic] Why does my copy of 65816ref.hlp claim that opcode BC is LDY absolute indexed Y?
spel werdz rite









Since: 11-19-05

Last post: 6303 days
Last view: 6302 days
Posted on 06-15-06 04:58 PM Link | Quote
You are est
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - SMW Hacking - Looking for creating/eating custom block routine |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.022 seconds; used 367.32 kB (max 439.23 kB)