Suikoden II - how is enable Characters ?

If you are stuck in the Dunan Unification Wars; or wish for more details on the gameplay systems, this is the place.
Post Reply
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Suikoden II - how is enable Characters ?

Post by MasterGrand »

Hiya

I try to find how is let character like Anita, Pesmerga,Flik...etc, Available in formation attack from back but I failed, Please if anyone have any advice or guidance would be greatly appreciated.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

You want them to just regular attack from the back, or are you trying to create semi-custom unites?

The S/M/L is determined by the weapon. That data is in 280_GAME\ARMSD.BIN on the disc. Each weapon has 3 17-byte names, followed by at least two bytes of flags/extra data, and a third byte that's probably padding, but that could be another less-often used byte of data. Here's the first few, and Anita.

Code: Select all

Hero 		19 0B 00
Flik 01 01 00
Viktor 02 02 00
Viki 08 08 00
Sheena 01 01 00
Clive 27 07 00
Hix 41 01 00
...
Anita 01 01 00
I didn't work out what all the bytes/bits do. I think the upper four bits of the first byte identify the S/M/L (0 - Short, 1 - Medium, 2 - Long) but I'm not positive. In any case, if you set Anita's weapon's last three bytes to the same as Riou, she becomes medium range and can attack from the back row. As far as finding the data in memory, just search for the strings and you'll find the weapon easily enough.

I'm not sure if the entire contents of that file are permanently in memory, or if it just loads the ones that are relevant to your current party. Probably the latter, but it's small enough they might have decided to just load it all. So if you're looking to do codes, you might get lucky and it's always in the same spot.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

Pyriel wrote: Thu Jul 21, 2022 1:24 am You want them to just regular attack from the back, or are you trying to create semi-custom unites?

The S/M/L is determined by the weapon. That data is in 280_GAME\ARMSD.BIN on the disc. Each weapon has 3 17-byte names, followed by at least two bytes of flags/extra data, and a third byte that's probably padding, but that could be another less-often used byte of data. Here's the first few, and Anita.

Code: Select all

Hero 		19 0B 00
Flik 01 01 00
Viktor 02 02 00
Viki 08 08 00
Sheena 01 01 00
Clive 27 07 00
Hix 41 01 00
...
Anita 01 01 00
I didn't work out what all the bytes/bits do. I think the upper four bits of the first byte identify the S/M/L (0 - Short, 1 - Medium, 2 - Long) but I'm not positive. In any case, if you set Anita's weapon's last three bytes to the same as Riou, she becomes medium range and can attack from the back row. As far as finding the data in memory, just search for the strings and you'll find the weapon easily enough.

I'm not sure if the entire contents of that file are permanently in memory, or if it just loads the ones that are relevant to your current party. Probably the latter, but it's small enough they might have decided to just load it all. So if you're looking to do codes, you might get lucky and it's always in the same spot.
Yes I want them to just regular attack from the back,Like Pesmerga,Anita,Kasumi,Humphrey...etc, If you help me and can give me Hex Offset would be greatly appreciated.
User avatar
Raww Le Klueze
Global Admin
Posts: 1915
Joined: Sat Jun 26, 2004 1:38 am

Re: Suikoden II - how is enable Characters ?

Post by Raww Le Klueze »

Might want to look at the Beast Rune boss battle, S ranged fighters can attack from the back row in that battle.
Doctorum Non Urina Singulus.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

That's a good idea. I forgot about that. Based on the way they did so much else in the game, my best guess is that it's a custom override in that fight only that's accomplished by essentially replacing part of the battle code. Still, it could be they went the more sensible route and the module just has to set and unset a flag somewhere.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

I wonder if you guys still find method to how is enable Characters or what.....?
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

I mean, if you want codes rather than advice and guidance, just ask for codes next time. This is for the NA version:

All Allies Are Long Range
D00747E4 1102
800747E6 2402
D00747E4 1102
800747E4 0002

I was right about the upper 4 being the range and what the values are. You can change the last line to 0001, if you only want Medium for some reason.

The weapon data is loaded fully into memory by the look of things. At the very least, there's a list about as long as I'd expect with the first ten and the last ten or so weapons present in the order expected. I didn't scan for every single entry. Still, I only had Riou in the party. I can't think what the logic would be for having 20-30 characters' weapons loaded when only Riou is present, unless the file is just loaded fully. It's around 0x800658D0. That's actually the start of Riou's 1st weapon name, so there is technically an entry prior to that for the zero-eth character, but it's useless.

I'm not all that inclined to make individual codes, and I wouldn't really recommend it unless there's a really good reason for it. I don't know what the lower 4 bits of that byte do right now, and my assumption is that they need to be maintained. A code for Riou to be long range ends up being 80065911 002X. The value for X on Riou would be 9, but that value would need to be established for every character. For example, 80065953 0021 would be for Flik, 80065995 0022 for Viktor, etc. It's the kind of thing I'd usually do with a script, but I don't have the time to write it up just now.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

I used your codes and it is work correctly!, also I found one code and work fine for all characters 300747E0 0007, Thanks Pyriel for time to get what I need :)

I have problem with Script Command for Add characters, some places work fine like from beginning game when jowy come with Riou... but some places not work and freeze game or crush game like when you use it in Rockaxe..., So can you tell me what is problem ?

Script Command for one character : 7004-0201-ID??01-4602-3AFF-FE
2 characters 7006
3 Characters 7008

Any advice or guidance would be greatly appreciated.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

What is this (300747E0 0007)?

It looks like you're turning the "JR $ra" operation at the end of the function that gets the range into an "SRAV zero, zero, $ra". That does nothing except cause the code to fall through into the next function which appears to be computing an offset from the player data/save segment. That address then gets returned on $v0 instead of the actual range. If it does anything beneficial, it seems like it has to be luck. If either of the two functions being executed impacted anything else, or pushed/popped $ra on the stack, you'd probably just crash your game.

(Although, I'd kind of like to see what the CPU does when it's told to shift a value right either about 2 billion times or negative 2 billion times. It probably ignores it.)
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

Code: Select all


RAM:80112B20 unk_80112B20:   .byte 0x70  # p          # DATA XREF: RAM:80113804o
RAM:80112B20 # Copy Bytes to buffer at 0x800622CA
RAM:80112B21 .byte 4 # 4 bytes
RAM:80112B22 .byte 1 # Suppress formation pop-up (1 - none. Otherwise, popup)
RAM:80112B23 .byte 1 # Number of charas joining?
RAM:80112B24 .byte 0x50 # P # Jowy ID
RAM:80112B25 .byte 1 # Join type? 1 forces them into main, 2 allows you to select convoy. Anything else loops forever.
RAM:80112B26 .byte 0x46 # F # Figure out where PartyInx.bin is stored in memory and presumably call it by the by.
RAM:80112B27 .byte 2
RAM:80112B28 .byte 0
RAM:80112B29 .byte 0x25 # % # Script engine flag crap
RAM:80112B2A .byte 0x80 # Ç
RAM:80112B2B .byte 0xFF
RAM:80112B2C .byte 0xFE # ¦
RAM:80112B2D .byte 0xFF
RAM:80112B2E .byte 0xFE # ¦
RAM:80112B2F .byte 0
So like this, from VA01.BIN at the beginning of the game. All command 70 does is copy X bytes of data to that temporary buffer to get picked up by something else. In the case of adding characters to your party, it's a call to one of the PartyChange modules. I suspect your issue is that if you're trying to insert that into random spots, the game has either not loaded a partychange module, or it's not loaded where you're telling it. 46 02 tells the game it's loaded in the region starting at 0x8015DC50, and 46 00 (I think) tells it to look at the region starting at 0x8010DC50. If the game has already loaded the module, you need to tell it the right spot. If it hasn't, then you have to force it to load as well. That might be done with command 1F, but I'm not totally sure.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

I suspect your issue is that if you're trying to insert that into random spots, the game has either not loaded a party change module, or it's not loaded where you're telling it. 46 02
That is right, when I try to get characters from NPcs by use script commands this is what is happened... ?
I think some places not working and some places is working like what I said before (because no characters in spots), so that is why the game freeze or crush..

Look picture the game crush
Image

But here working
Image



I wonder how is solve this is issue ?
Last edited by MasterGrand on Sat Jul 30, 2022 3:06 pm, edited 1 time in total.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

Given that your top screenshot apparently has the area module loaded in the range of 8015DC50 (since you're editing at 80162167) and you're telling it that's where it should find the partychange module, I'm again guessing that's your problem. First thing to try is changing 46 02 to 46 00. Then maybe 46 01 if that doesn't work. Beyond that, jump to 8010DC50 and post a screenshot of the memory around that location as well. I can tell you if what's loaded is a partychange module.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

Pyriel wrote: Fri Jul 29, 2022 5:32 pm Given that your top screenshot apparently has the area module loaded in the range of 8015DC50 (since you're editing at 80162167) and you're telling it that's where it should find the partychange module, I'm again guessing that's your problem. First thing to try is changing 46 02 to 46 00. Then maybe 46 01 if that doesn't work. Beyond that, jump to 8010DC50 and post a screenshot of the memory around that location as well. I can tell you if what's loaded is a partychange module.
Like what you said not worked 4600 -4601.....?

This is screenshot
Image

screenshot Freeze 4600
Image

screenshot Crushe 4601
Image
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: Suikoden II - how is enable Characters ?

Post by Pyriel »

Yeah, that's VI04.BIN loaded at 0x8010DC50. You can't just try to call the party change functions when they're not resident in memory.
User avatar
MasterGrand
Posts: 106
Joined: Mon Aug 02, 2010 7:12 pm

Re: Suikoden II - how is enable Characters ?

Post by MasterGrand »

Pyriel wrote: Sat Jul 30, 2022 3:19 pm Yeah, that's VI04.BIN loaded at 0x8010DC50. You can't just try to call the party change functions when they're not resident in memory.
So no way or method to add one character by script command inside VI04.BIN ?
Post Reply