Bug Fixes

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
Celes
Global Admin
Posts: 1422
Joined: Sun Nov 12, 2006 6:25 pm

Re: Bug Fixes

Post by Celes »

Pyriel, still on it?
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

Yeah. I've just been really busy and haven't wanted to spend much of my spare time on this.
User avatar
suiko2fan2
Guide Writer
Posts: 258
Joined: Sat Nov 12, 2005 3:15 pm

Re: Bug Fixes

Post by suiko2fan2 »

i started playing Suikoden II with the Patch Version 1.5.38..I've only just arrived in Muse, and i already notice the subtle differences, the big battle music, no moving doors to knightdoms.. good job Pyriel!
I will establish one mighty nation in this land. A single, powerful nation, born of force and wielding force. That is the one and only way of freeing this land from war.

Best Suiko FanFic:
www.fanfiction.net/s/5194891/1/The-Puni ... of-the-Sun
User avatar
Celes
Global Admin
Posts: 1422
Joined: Sun Nov 12, 2006 6:25 pm

Re: Bug Fixes

Post by Celes »

I love to play it again with the "final" patch!
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

All right, I finally got back to this a couple of days ago. I'll be putting up a new version of the patch soon. There won't be a lot of new fixes in it, but I haven't been hugely focused on that. The remaining bugs are a bit less annoying than what's already been fixed, and I haven't gotten to a point where I could look into them in my current test play-through anyway. Mostly, the new patch improves things for me.

What's been done:
  1. In going back through the documentation for the tool I use to rebuild the disc, I discovered overloads for a couple of functions that let me do raw sector reads, instead of relying on more user-friendly reads. This allows me to copy XA and STR (music and movie) data using this tool, instead of relying on raw rips made by another tool. This is important because I can now distribute the rebuild script in some form as the patch, without having to include the raw rips of the BGM and various videos. I still have to include files that were modified on a large scale, like the UWASA files, but those are only a few KB. Distributing the patch this way means it might top out at a few MB, as opposed to the around 300 MB required for the PPF.
  2. Additionally, being able to distribute a scripted rebuild means I can allow players to pick and choose their patches. If you like the Matilda Glitch, or the Kindness Rune bug, you'll be able to leave them untouched. I can also offer options for things like the Gozz Rune, so it can be unpatched, or changed to "Minotaur" or "Gozu" depending on your preference. For the first several releases, these options won't exist (unless you can edit the scripts yourself). Eventually, I'll wrap it in a GUI to make this as easy as checking boxes.
  3. The script engine is mostly reverse-engineered (for my purposes anyway). I only know what about 10% of the commands are doing at a high level†, but I know how over 90% of them are represented in the data. This will help to some extent in determining who says what. Unfortunately, I think when your party speaks, it may not be easy to determine. I don't want to emulate things to the extent that using the tools is almost playing the game, but we'll see how it goes.
  4. I'm working on tools for the dialogue now.
  5. The True Holy Rune has been modified to "Godspeed".
Before I release a new patch, I'm going to update the Gozz rune, defaulting it to, "Minotaur". The script will be modifiable, so you can change it to, "Gozu", if it really matters to you. This is the last fix I can make, without needing to dedicate a bunch of time to combing through text or play-testing. When I do release it, I think it will be as simple as dragging and dropping the original ISO, for people who don't care to customize.

Also, another side-effect of rebuilding the disc this way may be that the music is fixed without the need for my table changes. I'm not sure about that yet, but I could swear that as I was revising the script, I rebuilt it for a while without the table changes, and War Theme #1 played in spite of it. It's sort of inconsequential, in terms of the ends, but it's sort of interesting. This is a third-party tool being wielded by a scrub working with raw data. If that gets better results than Konami working with Sony's tools...

†For example, Command 5 is "MoveActor(actor, speed, stride, direction1, steps1 [, ... directionN, stepsN]) with 0x1E appearing at the end of the direction/steps pairs.

Edit: For reference, here's how the patches are handled. This is a Lua script, so if you're looking to edit it and turn off a particular patch, you can just add two hyphens to the beginning of the line that describes it. Patches where "patch=nil" are done from pre-patched files. Everything else is copied from your source disc and patched in the script.

The "True Holy" and "Gozz" patches are applied in a less straight forward manner, because they touch 60+ files. To turn off the Godspeed patch, set "patch_godspeed" to false. I'm not sure how I'll do Gozz yet.

Code: Select all

--patches.lua
patchreq = {
{ name="Music Fix", file="SLUS_009.58", patch=patch_music },
{ name="Kindness Rune Fix", file="SLUS_009.58", patch=patch_kindness_rune },
{ name="Recruit @ Level 99 Fix", file="SLUS_009.58", patch=patch_level_99 },
{ name="Tenzen Pass Monster Fix", file="VA11.BIN", patch=patch_tenzen_monsters },
{ name="Knife-throwing Scene Fix", file="VB18.BIN", patch=patch_knife_throwing },
{ name="Chaco Joins @ Level 1 Fix", file="VH01.BIN", patch=patch_chaco },
{ name="Unicorn Woods Lamb Fix", file="VH10.BIN", patch=patch_lamb },
{ name="Matilda Gate Fix", file="VI11.BIN", patch=patch_matilda_gate },
{ name="Farm Seeds & Stock Fix", file="VK19.BIN", patch=patch_farm },
{ name="Inn Free Restoration Fix Part 1", file="YADOYA1.BIN", patch=patch_inn },
{ name="Inn Free Restoration Fix Part 2", file="YADOYA2.BIN", patch=patch_inn },
{ name="Trade Gossip Translation Part 1", file="UWASA1.BIN", patch=nil },
{ name="Trade Gossip Translation Part 2", file="UWASA2.BIN", patch=nil },
{ name="Collectibles (Recipes, Blueprints etc.) Fix", file="BP0_AFT.BIN", patch=patch_collectibles },
{ name="Castle Armory Potch Overflow Fix", file="HDOUGUYA.BIN", patch=nil },
{ name="Suikoden Hero Name Fix", file="G1LOAD.BIN", patch=patch_gs1_hero_name }
}

patch_godspeed = true;
}
User avatar
BadPotato
Posts: 170
Joined: Mon Feb 09, 2009 10:07 am
Location: Canada - Québec

Re: Bug Fixes

Post by BadPotato »

Wow great news, so far this sound awesome!
Pyriel wrote: For the first several releases, these options won't exist (unless you can edit the scripts yourself). Eventually, I'll wrap it in a GUI to make this as easy as checking boxes.
I guess that putting some comment at some line won't be a problem for the early release.
Pyriel wrote: Also, another side-effect of rebuilding the disc this way may be that the music is fixed without the need for my table changes. I'm not sure about that yet, but I could swear that as I was revising the script, I rebuilt it for a while without the table changes, and War Theme #1 played in spite of it. It's sort of inconsequential, in terms of the ends, but it's sort of interesting. This is a third-party tool being wielded by a scrub working with raw data. If that gets better results than Konami working with Sony's tools...
I'm unsure about the meaning of the "table change" and how well the music is played, but if that's the only way for getting that small patch package with configurable bugfix, maybe we could live up with that.
The "True Holy" and "Gozz" patches are applied in a less straight forward manner, because they touch 60+ files
Does this means that there around 60 different aera/place in the game? That certainly a lot... Does changing so many file might create some random conflict with the other custom bugfix prefix preference?
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

  1. Yeah. I'm hoping most people will opt to use all the fixes, at least until the patch is out of it's sort of beta.
  2. The fixes for the music are just alterations to the descriptors that the game's executable uses to access and play tracks. The data is stored in a largish array/table of descriptors for every bit of sound on the disc. If I was actually running without the patches, it may mean that rebuilding the disc in this fashion repaired the headers. I suspect I was somehow picking up the patches without realizing it, but if not, it's an interesting side effect. It just means that Konami somehow built a corrupt master image.
  3. Yep. 60 different files contain the byte sequence for "True Holy". 59 of them are prefixed by the Rune Orb symbol and a space. One is prefixed by code A6, which is a single-quote, if memory serves. The game only loads item descriptions for items it needs, so everywhere that this item can turn up on a person, in a chest, etc. they have to include it in the area file. However, even given that, I don't know why there are so many. The Gozz rune appears in 61 files, and there's less reason for that.

    It doesn't affect other patches. Just prior to writing the file to the target ISO, the script checks against a list to see if it needs to apply the Godspeed patch, and then searches for instances of the string to replace. If other patches are selected, they will have already been applied. The method is similar to what I did for the LBA patch.
Edit: Well, it's a start.

Code: Select all

[TABLE=0] [DIALOG=2] [Memory=0x80113d74] [File=0x6124]
"So anyway...{eol}should we go to sleep soon?{Pause 000}{eol}Or do you want to get some fresh{eol}air? Looks like a nice night."
We already knew about the superfluous punctuation. There are many places with nineteen dots where three would do, or five exclamation points, but there's a lot of this PAUSE 0 crap going on too. I may end up having to distribute almost every file with dialogue in it to fix all the oddities and translation issues.
User avatar
Raww Le Klueze
Global Admin
Posts: 1916
Joined: Sat Jun 26, 2004 1:38 am

Re: Bug Fixes

Post by Raww Le Klueze »

If you're going to change the translations it might be worthwhile to try and co-ordinate it with the translation of Suikogaiden since that won't adhere to the official Suiko2 translation. Of course that could possibly entail a lot more work for you, but there are plans to go back and fix Suikoden I & II once the patch for Vol.1 is out to make them consistent, so it seems a bit off to have two competing patches out that do more or less the same things with minor variations.
Doctorum Non Urina Singulus.
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

Hmmm...That might not be a bad idea. I guess I could shelve most of the text issues for now. For the untranslated dialogue, I'd need help from people with the language skills anyway. Well, unless some of the other random untranslated muck was fixed in the PAL English version. How much of a deviation are we talking about here? I've never played the Gaidens (not that I'd be able to). I skimmed the script synopses years ago, but I don't know how much they reference Suikoden I and II. Regardless, if there are re-translations planned already, I'd might as well just focus on bugs for now, and dedicate a little spare time to making text dumps and translation tools as useful as I can.

Edit: What the hell is this? It's from VA02.BIN, which has a fair bit of untranslated text, and it sounds like one of the squirrels is speaking...

Code: Select all

[TABLE=0] [DIALOG=0] [Memory=0x8015e280] [File=0x630]
"Hey wait a minute!{eol}Why don`t I get a turn!?"

[TABLE=0] [DIALOG=1] [Memory=0x8015e2b0] [File=0x660]
"I think that`s a wise decision."

[TABLE=0] [DIALOG=2] [Memory=0x8015e2d4] [File=0x684]
"...what does that mean?"

[TABLE=0] [DIALOG=3] [Memory=0x8015e2f0] [File=0x6a0]
"Hey! Wait a minute!!!!"

[TABLE=0] [DIALOG=4] [Memory=0x8015e30c] [File=0x6bc]
"Seems natural to me."

[TABLE=0] [DIALOG=5] [Memory=0x8015e324] [File=0x6d4]
"The normal ending {eol}is about to start."

[TABLE=0] [DIALOG=6] [Memory=0x8015e34c] [File=0x6fc]
"The best ending is {eol}about to start."

[TABLE=0] [DIALOG=7] [Memory=0x8015e374] [File=0x724]
"You`re wrong, brother Mukumuku. {eol}I heard that it`s not done yet."

[TABLE=0] [DIALOG=8] [Memory=0x8015e3b8] [File=0x768]
"Erp....."
KFCrispy
Global Admin
Posts: 6205
Joined: Wed Jun 30, 2004 3:29 pm

Re: Bug Fixes

Post by KFCrispy »

is that one conversation? if not i would think it's Badeaux who's just responding to Mukumuku's noises...
User avatar
Raww Le Klueze
Global Admin
Posts: 1916
Joined: Sat Jun 26, 2004 1:38 am

Re: Bug Fixes

Post by Raww Le Klueze »

I found that a few years ago, as far as I can tell no one knows what it is, except that it isn't used in the game.

http://www.suikosource.com/phpBB3/viewt ... 2&p=123271

The first line reminds a bit of how Nanami talked in the demo.
Doctorum Non Urina Singulus.
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

If anybody ever had designs on putzing with graphics in the game: http://suikodenbugfixes.wikispaces.com/ ... ompression

This is just kidding, mostly, but I can't help but feel like somebody, somewhere owes me money for this one. What a pain in the butt coming up with the compression algorithm was. It probably would have helped if I'd ever really worked with one before. It's a bit of a shame really. I doubt anyone will ever have much cause to use this, unless somebody decides to translate it into, say, Arabic and needs to alter the bitmap font and text encoding.

Oh well. I think I learned more the last two days than the other days of this year combined.
User avatar
Piisuke
Posts: 330
Joined: Mon Dec 22, 2008 10:05 am
Location: London, UK

Re: Bug Fixes

Post by Piisuke »

I must say, I am intrigued with this project. I'd love to see the finished product without any of the bugs.

I might have to do a Let's Play of Suikoden I and II. Seriously though, the work on your hands must be insane. Kudos thus far.
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

Thanks. It's nice to see people taking an interest.

Regarding Monwer, I think it doesn't have attack or cast frames.
Image

Top left is the default, below that is "death". The next two are almost identical, and one of them is definitely its "attacked" posture. I expect one of the remaining parts is a defense or a dodge posture. That last one could be spitting, akin to what the Melonzoos do, but it could be defense. I've never seen them defend, so I can't say. Has anybody else ever seen that frame?

The rest of its sheets are just the stem in different postures.
Image
Image

Compare that to the obvious actions in the Melonzoo's sheet.
Image
Image

Maybe the Monwers are only meant to counter-attack? They're rooted to the spot, so they'd either have to cast, or use some sort of long-distance attack otherwise. The only thing that looks promising right now is that far right frame that could be spitting seeds or something. However, note that the Melonzoo's seeds appear on its sheet. I don't see anything like that for the Monwer. And if it was meant to suck you in, they didn't go to any trouble to make the animation elaborate.

Edit: The Monwer has 0 pointers to code for animating and choosing battle actions. Given that, and the lack of frames that look aggressive, it seems likely that they have no attacks. Why Konami would do that, I have no idea. Maybe they intended these things as decoys, or maybe they screwed up. It's hard to say.
User avatar
Pyriel
Webmaster
Posts: 1229
Joined: Wed Aug 18, 2004 1:20 pm

Re: Bug Fixes

Post by Pyriel »

OK, I reviewed all the code in the module, and I found nothing that's unreferenced. I'm forced to conclude that there simply isn't any AI for the Monwer. It's not broken AI, a broken definition of a monster, or anything like that. Konami just never compiled any attacks into the game, if they ever wrote any. It's probably the same for the Eye Flower, but I'll reserve judgement on that for later.

I don't think this is something that will be fixed by the patch. It might be possible to edit the sheet to include attacks, but I don't have the artistic skill for that, and the animations/AI would have to be invented out of whole cloth. I don't know what Konami's intent was here. Given history, it's probable that they screwed up somehow. Although, if they did, it was a pretty clean job. The only clue left is one frame on the sprite sheet that might be unused.
Post Reply