+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Seiken Densetsu III: Party modifier offsets?
Pages: [1]
Author Topic: Seiken Densetsu III: Party modifier offsets?  (Read 2 times)
FaustWolf
Guest
« on: February 09, 2008, 11:18:04 am »

Hey all! I'm ripping sprites from Seiken Densetsu III for a personal project (I'll release them at the Spriters' Resource to supplement the ones they've already got), and after toying around with the nightmarish manner in which sprite subtiles are stored in the ROM, I've decided to go the in-game route and just use animget. However, it would be a major help to get each character by him-or-herself, eliminating the others from the party so that they don't clump up when I'm trying to capture battle animations.

Anyone know which offsets in a ZSNES or SNES9x savestate would contain info for which characters are in the party? I've seen class and state modifier offsets, but never character modifier offsets.

Failing that, does anyone know at least which order character data is stored in the ROM? For example, if Hawk's sprite assembly, etc., data is stored first, then Angela's, then Duran's, I would assume the party modifier bytes would read 02 ... 00 ... 01 if I've got a party of Duran first, Hawk second, and Angela third.

Thanks for any info you can provide!
creaothceann
Guest
« Reply #1 on: February 09, 2008, 11:40:57 am »

Quote from: FaustWolf on February 09, 2008, 11:18:04 am
Hey all! I'm ripping sprites from Seiken Densetsu III for a personal project (I'll release them at the Spriters' Resource to supplement the ones they've already got), and after toying around with the nightmarish manner in which sprite subtiles are stored in the ROM, I've decided to go the in-game route and just use animget. However, it would be a major help to get each character by him-or-herself, eliminating the others from the party so that they don't clump up when I'm trying to capture battle animations.

I'm not sure if it's actually possible, but here's an idea:

1. start vSNES
2. open the game in SNES9x play until you have access to the animation you want
2. pause the game, then trigger the animation by pressing the buttons while advancing by single frames
3. save a savestate
4. load the savestate into vSNES
5. save the sprite layer
6. go back to SNES9x and advance by one frame
7. goto step 3

You can deactivate the vSNES option "activate all sprites when loading an SNES" to save time.
If the official SNES9x build doesn't allow advancing by single frames then there's a version at tasvideos.org that can.
FaustWolf
Guest
« Reply #2 on: February 09, 2008, 11:48:24 am »

Interesting! I'll try that if the character modifier doesn't work. I just found it at GameFAQs for .SRM format saves:

                1st Player:
   Character: offset 160

   2nd Player:
   Character: offset 161

   3rd Player:
   Character: offset 162

CHARACTERS:

00-Duran
01-Kevin
02-Hawk
03-Angela
04-Carlie
05-Riesz

Thanks to DavieZBOY for that! The FAQ was apparently written in 2000. It's amazing what info is out there, and has been out there for ages.
FaustWolf
Guest
« Reply #3 on: February 09, 2008, 12:47:19 pm »

Hmm, these seem to be sprite modifiers and not party mods. There must be an additional set of switches somewhere that tell whether there are one, two, or three members in the party. Interestingly, addresses 160, 161, and 162 are pre-set when the game begins; Angela's "default" party seems to be 03, 02, 00, or Angela-Hawk-Duran.

Doing some comparisons among different SRM files should reveal where the party switches are. This is highly interesting.

EDIT: Oooh, you pick your party at the beginning of the game. Heh.
« Last Edit: February 09, 2008, 12:55:47 pm by FaustWolf »
creaothceann
Guest
« Reply #4 on: February 09, 2008, 02:00:57 pm »

I completely forgot about the little editor I wrote for SD3 - see sig.

Unfortunately it can't change the party either. It must be somewhere in the header section IMO.
FaustWolf
Guest
« Reply #5 on: February 09, 2008, 03:20:27 pm »

YES!! The party mod is actually not in the header, but your modifier program did give me an idea as to how to find it. I transfered code from one .SRM to the other gradually to hone in on the party mod.

Turns out it's near the very end of the .SRM slot, at address 0x7F0 for the first slot. If the byte is set to 01, you get your first character alone! If the value is 07, you get all three characters. Not sure what value it has to be to get two characters.

Also, music and room modifiers should be very doable. The data necessary for such things falls in the offset range 0x720 ~ 0x750 by the looks of it. I'll investigate as time allows. For one thing, the data in this range alters things in the environment, such as whether a save statue or NPCs are around. There's probably just one or two bytes each for the music and location IDs.

Prost! :beer:
Tauwasser
Guest
« Reply #6 on: February 09, 2008, 03:42:29 pm »

If 01 means one character and 07 means three characters, it occurs to me, that it's dual and each bit stands for one character Wink

cYa,

Tauwasser
creaothceann
Guest
« Reply #7 on: February 09, 2008, 03:44:34 pm »

Quote from: FaustWolf on February 09, 2008, 03:20:27 pm
If the byte is set to 01, you get your first character alone! If the value is 07, you get all three characters. Not sure what value it has to be to get two characters.

Probably 03.
EDIT: Exactly because of what Tauwasser said.


Quote from: FaustWolf on February 09, 2008, 03:20:27 pm
Prost! :beer:

 Wink
FaustWolf
Guest
« Reply #8 on: February 09, 2008, 09:13:50 pm »

It would appear that addresses 0x720 ~ 0x72F contain all the info needed for a room modifier. Addresses 0x724 ~ 0x727 seem to provide the room index, while 0x728 ~ 0x72F probably provide XY starting coordinates for the characters.
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC