Suikoden II - how is enable Characters ?
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Suikoden II - how is enable Characters ?
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.
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.
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.
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.
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'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.
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Re: Suikoden II - how is enable Characters ?
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.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.
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.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'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.
- Raww Le Klueze
- Global Admin
- Posts: 1916
- Joined: Sat Jun 26, 2004 1:38 am
Re: Suikoden II - how is enable Characters ?
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.
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Re: Suikoden II - how is enable Characters ?
I wonder if you guys still find method to how is enable Characters or what.....?
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.
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.
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Re: Suikoden II - how is enable Characters ?
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 ![Smile :)](./images/smilies/icon_smile.gif)
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.
![Smile :)](./images/smilies/icon_smile.gif)
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.
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.)
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.)
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Re: Suikoden II - how is enable Characters ?
That is right, when I try to get characters from NPcs by use script commands this is what is happened... ?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
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](https://i.postimg.cc/XvK4zTjb/Screenshot-2.png)
But here working
![Image](https://i.postimg.cc/RV5YH05V/Screenshot-3.png)
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.
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm
Re: Suikoden II - how is enable Characters ?
Like what you said not worked 4600 -4601.....?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.
This is screenshot
![Image](https://i.postimg.cc/BJjtyPVQ/Screenshot-2.png)
screenshot Freeze 4600
![Image](https://i.postimg.cc/pvcVNLKm/Screenshot-3.png)
screenshot Crushe 4601
![Image](https://i.postimg.cc/y77CgMFq/Screenshot-4.png)
- Pyriel
- Webmaster
- Posts: 1229
- Joined: Wed Aug 18, 2004 1:20 pm
Re: Suikoden II - how is enable Characters ?
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.
- MasterGrand
- Posts: 106
- Joined: Mon Aug 02, 2010 7:12 pm