AdmiralCurtiss / SenPatcher

Fixes and customizations for the PC versions of Falcom's games in the Phyre engine (Trails of Cold Steel, Trails into Reverie, Tokyo Xanadu eX+)
Other
91 stars 6 forks source link

Proposal: CS1 menu edits #71

Closed EnDavio closed 2 years ago

EnDavio commented 3 years ago

Hello, I recently made a menu edits mod for CS1 which adds the "R" in the names of rare art quartz and the attack class for arts like in CS2, and also changes some craft names to make them more consistent with later titles or fix typos. Could these features also be added to SenPatcher? I can post the link to the mod if you want.

AdmiralCurtiss commented 3 years ago

Seems reasonable. Do you have a detailed list of changes?

EnDavio commented 3 years ago

Aside from the rare quartz names and the attack classes for arts mentioned in the other post, the changes to craft names are:

AdmiralCurtiss commented 3 years ago

FYI you seem to have (accidentally, I presume?) changed some of the stats of the R Quartzes:

Frost Edge R ATS+3/ADF+5 -> DEF+3/ATS+5 (note that this is incorrectly listed in the description even in the original file) Chrono Drive R SPD+3 -> EVA+3% Chrono Break R SPD+5 -> MOV+5 Chrono Burst R SPD+7 -> EVA+7%

(e: You also changed some of the Japanese entries in a similar but not identical way.)

You also broke the entry length fields, but the game doesn't use them so eh.

Semi-decoded item files for reference: PC 1.6 Your mod 1.0

And a diff for my own reference: https://gist.github.com/AdmiralCurtiss/f7b78638d7e9d28476634250bbc311b5

AdmiralCurtiss commented 3 years ago

By the way, where are you getting the info about the Class of the spells from? I'm not seeing it directly anywhere in-game. Did you just copy them from CS2? If so, how do you know they are accurate?

EnDavio commented 3 years ago

That's strange, the stat boosts are the same when I check the files. Screenshot_2021-11-07-11-23-41-63 Screenshot_2021-11-07-11-22-43-05 The only thing I did in the Japanese version was adding the R.

As for the attack class of the arts, I remember lifting them from CS2; however, I may have found their attack values for both games in some guides, so I will cross-reference them again to see if they were changed.

AdmiralCurtiss commented 3 years ago

Not the text, the actual stats.

20211107162443_1 20211107162547_1

If you're using a tool to edit this it may be assuming an incorrect data layout. If you're manually editing this you probably just messed up (and I would recommend you to write a tool instead).

EnDavio commented 3 years ago

So the edits ended up changing the stat boosts...I had no idea that was possible. Maybe this does have something to do with the entry length fields, because all I edited was the text file. It's strange that only those items had that issue, though.

AdmiralCurtiss commented 3 years ago

Nah the length field is not used by the game, I'm pretty sure about that. It's because some of the bytes moved around in the area, look here:

Chrono Burst HxD

Left are the full files, right is just the Chrono Burst R item copied out; top is the original, bottom is your modified file. Pay attention to the highlighted three bytes on the right and how the 07 shifted position -- from the field that indicates the SPD boost to the field that indicates the EVA boost in this case. That's what happened here.

If this goes a bit over your head, that's okay, I'll fix all of this anyway when I add the option to SenPatcher.

EnDavio commented 3 years ago

Huh, I didn't know the stat boosts were in those bytes. Thanks for explaining that, I will take a moment to fix these issues as I correct the class of arts.

AdmiralCurtiss commented 3 years ago

Oh and in case you need it, the items affected in the JP file are Chrono Break R, Chrono Burst R, Detection, and Phantom Phobia R, if I'm matching these diffs correctly.

AdmiralCurtiss commented 3 years ago

For reference, here's the value-to-string tables CS2 uses for looking up Area, healing power and Class of an attack for the description. Function that handles these is at 0x51bc30 in English PC CS2 1.4.2.

The way this works is that it looks at all entries in order and picks the highest one that is <= the value. So eg. a magic of 119 is still D but a magic of 120 is already C.

for area size (table 1):
value   0 = S
value   6 = M
value   8 = L
value  12 = XL

for line size (table 2):
value   0 = S
value   3 = M
value   6 = L
value   8 = XL

for healing power (table 3):
value    0 = S
value 1400 = M
value 2400 = L

for physical attacks/crafts power (table 4):
value   0 = Class D
value 110 = Class C
value 115 = Class C+
value 120 = Class B
value 125 = Class B+
value 130 = Class A
value 135 = Class A+
value 140 = Class S
value 150 = Class S+
value 250 = Class SS
value 300 = Class SS+
value 350 = Class SSS
value 400 = Class SSS+
value 450 = Class 4S
value 500 = Class 4S+

for magic power (table 5):
value   0 = Class D
value 120 = Class C
value 135 = Class C+
value 150 = Class B
value 165 = Class B+
value 180 = Class A
value 195 = Class A+
value 210 = Class S
value 225 = Class S+
value 250 = Class SS
value 300 = Class SS+
value 350 = Class SSS
value 400 = Class SSS+
value 450 = Class 4S
value 600 = Class 5S
AdmiralCurtiss commented 3 years ago

And here's the fun one: Autogenerated classes for each attack in CS1 and CS2, using CS2's value breakpoints.

CS2's data for sanity checking that our logic makes sense CS1's data but using CS2 class breaks

Looking at that, we probably need to adjust the breakpoints up a bit so we get sensible classes out of this, since CS1's attack values skew slightly higher. It also makes me wonder if CS1 does have internal Class logic somewhere for its Crafts? The t_itemhelp.tbl that CS2's classes come from doesn't exist in CS1, but they clearly had some logic when assigning the craft classes...

EnDavio commented 3 years ago

Just yesterday, I was working on this and assigned values that took a bit of skewing from CS2 into account, considering B as the base value of around 180 (it would be a bit weird to have the starting arts at class A, wouldn't it?) I should be able to make a similar table to the one you posted for these classes.

EnDavio commented 3 years ago

Taking into account the attack values I found, this should be a reasonable conversion for the CS1 arts. Value 180: Class B (lowest value is 170) Value 200: Class B+ Value 220: Class A Value 250: Class A+ Value 280: Class S Value 310: Class S+ Value 340: Class SS Value 370: Class SS+ Value 400: Class SSS Value 430: Class SSS+ Value 460: Class 4S (highest value is 450) I plan to update the mod with these values and the fix for the stat boosts later today.

EnDavio commented 3 years ago

I updated the mod with the changes mentioned above. Now all the stat boosts should match the descriptions (both in English and in Japanese), and the art classes have been changed according to the table I posted.

AdmiralCurtiss commented 3 years ago

Wait, I forgot the classes in the actual magic descriptions...

AdmiralCurtiss commented 3 years ago

So uh, regarding the Gaius and Sara crafts...

grafik grafik

Neither of those is identical in JP, so I'm not sure how you arrived at the conclusion that they should be changed.

EnDavio commented 3 years ago

Gaius' was changed because I thought it could have been more consistent with the CS3/4 one and more distinct from the Agate one, and as I said, that's a more debatable change. Sara's, meanwhile...that was a mistake on my part, I didn't notice that the first kanji was different and thought that it was the same craft, but NISA had changed the name.

AdmiralCurtiss commented 2 years ago

Included in v0.8, minus the craft names.

AdmiralCurtiss commented 2 years ago

(well the Lord Alberion one is included, but that was in there before as well)