Closed Cerzs closed 2 years ago
It looks like this problem: https://alicesoft.fandom.com/wiki/User_blog:RottenBlock/Rance_1_Rebuilt#ZHA.3F
Thanks!
Ah, I applied the patch. But now...
Assertion failed: is_sjis_byte1(c), file decompiler/decompile.c, line 141
I think that issue should be in xsys35dc tho.
It seems the 1.5 patch has a tab character in a message in Alice's Mansion:
'- Sill -'
R
'A magic user girl bought by Rance. A spell of obedience'
R
'has been cast on her so she can\t act against Rance's will.'
^^
@RottenBlock is this intentional?
Probably xsys35c/xsys35dc should leave tab characters intact, given that they don't crash System39.exe.
@RottenBlock I found another issue in the 1.5 patch.
If one choose Alice's Mansion
-> Bonus: Cut Content
-> PC-88VA
, after displaying message it jumps to address 0x00056:
/* 00791 */ 'The same thing can be done with the SHIFT key.'
/* 00797 */ R
/* 00798 */ @L_00056:
But 0x00056 is in the middle of a function call command (~SYSSUB_198:
). I wonder how you compiled this.
/* 00054 */ *L_00054:
/* 00054 */ ~SYSSUB_198:
/* 0005b */ ZH 1:
/* 0005f */ $L_0050d$
/* 00064 */ 'Development diary'
/* 0006a */ $
Anyway the decompile error should be fixed by https://github.com/kichikuou/xsys35c/commit/4d7c8fadeea51cdadd08762acee0741d2f551098.
If you want to try it out, you can download latest Windows binary here: https://github.com/kichikuou/xsys35c/actions/runs/1636776368
No, neither of those are intentional, and I've pushed a new patch to fix them:
https://www.mediafire.com/file/bnj8x79t5nkra32/Rance+1+Rebuilt+(Patch+1.5.1).zip/file
The second error happened because I forgot to update that particular label jump from the original HGTP translation. I used Sys3Decompiler to work on the code, which produces label names based on their hex address during decompile, but it does so in a misleading manner. It seems that when Sys3Decompiler finds a label it recognizes, it will connect the two labels properly regardless of the numbers on the label. So:
@lblABCD:
will always jump to
*lblABCD:
no matter where *lblABCD is in the code, even if you move it to, say, 0x0000. This is the way you'd normally do things.
But if it finds a label it doesn't recognize, it will create a new label jumping to the address specified in the label name! So:
@lblABCD:
will hop to address 0xABCD!
In my case, it found a dead label jump and attempted to jump to address 0x0056.
I'm not sure what purpose SLC had in mind when they coded this "double meaning" into the program. The system you use in xsys35c is much more intuitive. It probably would have been better if Sys3Decompiler gave you an error!
Thanks for updating the patch!
But if it finds a label it doesn't recognize, it will create a new label jumping to the address specified in the label name!
Aha, that's a little scary feature. It may be useful to reproduce code that originally contained broken jumps, but is prone to mistakes.
@kichikuou I didn't want to open an issue, I just have a question. Do you know if there is something like xsystem35 but for System40? Specifically for VI (for unicode and stuff). Thank you.
There's xsystem4. It supports Rance VI but has no unicode translation support (yet?).
@kichikuou Oh! I see. Do you know if it will be supported? Or if it is in the plans.
As I can see, the series is translatable into other languages, with the exception of 02 (II remake) and VI, as those do not have a .fnl file that can be modified, which is a bit sad lol
I don't know. Why not create an issue in xsystem4 asking that?
Whoops. Yeah, you right. Sorry
Hello! I found these symbols in-game, but not in script (EN version). These are found in battle mode:
Edit: Present in monsters name only. GAMESUB.zip