I did not know this thread existed until now.
I'll take a better look at this later on today and see if I can start coding this. It looks relatively simple, to be honest the GUI might be the toughest bit
EDIT: Finally found out how to convert SNES addresses to PC addresses, since this was a necessary first step. I'll start actually trying to put sprites together now. I wonder though, what is PIECE used for? You say that it's how many "parts" the sprite is made from, but that's pretty vague and I don't see any further reference to it.
Also, although I haven't tried it yet, how should I read palette data? I have about zero experience in ROM hacking, this is my first time I've ever actually handled binary ROM data, so it might not be obvious to me.
EDIT2: Well OK, I think I've sorted out how the palette works. But how do I get the actual graphics, what do I do at GRAPHADR?
EDIT3: OK, so I've finally managed to correctly load the graphics with the proper palette, and generate EBI's tilemap. I was a bit confused as to how to know the size of the tilemap, but I discovered that it's always a width of 16 tiles, and the height is determined by SIZEB. I also discovered that the background/transparency colour is the first in the palette.
I still have no idea what PIECE is for, though.
EDIT4: Ugh, sorry for all the edits, but I keep getting confused. I've been using your tile editing document to use the frame instructions, but for some reason the bits aren't coming together. I mean, EBI's body slots together perfectly, but the bits of his wings are at completely different locations. Is there some sort of calculation I should perform on the X and Y offsets of tiles?
EDIT5: OK, after taking a very careful look at the tile editing document it appears that the dimensions are somewhat shifted. Anything above 0x7F must have 0x7F subtracted from it, and inversely anything lower than (or equal to) 0x7F must have 0x7F added to it. Kind of weird, but I'm glad I finally figure it out. Scratch that, I was over-complicating the matter. I just realised that if I read the offsets as signed bytes (I was reading them as unsigned), simply adding them to 0x7F gives the correct coordinates.
There are also some other things I'd like to know. They're not really hindering me, but I'm confused what to do with bit 0 of Priority A (adding 0xFF when it's set messes up the sprite), bits 5 and 4 of Priority B (isn't "depth" dependant on the order of tiles?) and bit 0 of Priority B ("next graphics page"?).
I'll take a better look at this later on today and see if I can start coding this. It looks relatively simple, to be honest the GUI might be the toughest bit
EDIT: Finally found out how to convert SNES addresses to PC addresses, since this was a necessary first step. I'll start actually trying to put sprites together now. I wonder though, what is PIECE used for? You say that it's how many "parts" the sprite is made from, but that's pretty vague and I don't see any further reference to it.
Also, although I haven't tried it yet, how should I read palette data? I have about zero experience in ROM hacking, this is my first time I've ever actually handled binary ROM data, so it might not be obvious to me.
EDIT2: Well OK, I think I've sorted out how the palette works. But how do I get the actual graphics, what do I do at GRAPHADR?
EDIT3: OK, so I've finally managed to correctly load the graphics with the proper palette, and generate EBI's tilemap. I was a bit confused as to how to know the size of the tilemap, but I discovered that it's always a width of 16 tiles, and the height is determined by SIZEB. I also discovered that the background/transparency colour is the first in the palette.
I still have no idea what PIECE is for, though.
EDIT4: Ugh, sorry for all the edits, but I keep getting confused. I've been using your tile editing document to use the frame instructions, but for some reason the bits aren't coming together. I mean, EBI's body slots together perfectly, but the bits of his wings are at completely different locations. Is there some sort of calculation I should perform on the X and Y offsets of tiles?
EDIT5: OK, after taking a very careful look at the tile editing document it appears that the dimensions are somewhat shifted. Anything above 0x7F must have 0x7F subtracted from it, and inversely anything lower than (or equal to) 0x7F must have 0x7F added to it. Kind of weird, but I'm glad I finally figure it out. Scratch that, I was over-complicating the matter. I just realised that if I read the offsets as signed bytes (I was reading them as unsigned), simply adding them to 0x7F gives the correct coordinates.
There are also some other things I'd like to know. They're not really hindering me, but I'm confused what to do with bit 0 of Priority A (adding 0xFF when it's set messes up the sprite), bits 5 and 4 of Priority B (isn't "depth" dependant on the order of tiles?) and bit 0 of Priority B ("next graphics page"?).