kichikuou / xsystem35-sdl2

Multi-platform implementation of AliceSoft's System3.x game engine.
https://kichikuou.github.io/web/
GNU General Public License v2.0
63 stars 8 forks source link

Rare symbols in Rance I? #29

Closed Cerzs closed 2 years ago

Cerzs commented 2 years ago

Hello! I found these symbols in-game, but not in script (EN version). These are found in battle mode:

imagen imagen imagen

Edit: Present in monsters name only. GAMESUB.zip

kichikuou commented 2 years ago

It looks like this problem: https://alicesoft.fandom.com/wiki/User_blog:RottenBlock/Rance_1_Rebuilt#ZHA.3F

Cerzs commented 2 years ago

Thanks!

Cerzs commented 2 years ago

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.

kichikuou commented 2 years ago

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.

kichikuou commented 2 years ago

@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 */     $
kichikuou commented 2 years ago

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

RottenBlock commented 2 years ago

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!

kichikuou commented 2 years ago

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.

Cerzs commented 2 years ago

@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.

kichikuou commented 2 years ago

There's xsystem4. It supports Rance VI but has no unicode translation support (yet?).

Cerzs commented 2 years ago

@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

kichikuou commented 2 years ago

I don't know. Why not create an issue in xsystem4 asking that?

Cerzs commented 2 years ago

Whoops. Yeah, you right. Sorry