VOGONS

Common searches


First post, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

So this is a fairly well known Chinese language RPG:

https://www.mobygames.com/game/xianjian-qixia-zhuan

621827-xianjian-qixia-zhuan-dos-screenshot-the-game-begins-this-is.png
Filename
621827-xianjian-qixia-zhuan-dos-screenshot-the-game-begins-this-is.png
File size
12.95 KiB
Views
3476 views
File license
CC-BY-4.0
621834-xianjian-qixia-zhuan-dos-screenshot-anu-one-of-the-female.png
Filename
621834-xianjian-qixia-zhuan-dos-screenshot-anu-one-of-the-female.png
File size
16.55 KiB
Views
3476 views
File license
CC-BY-4.0
621835-xianjian-qixia-zhuan-dos-screenshot-fight-the-legendary-beast.png
Filename
621835-xianjian-qixia-zhuan-dos-screenshot-fight-the-legendary-beast.png
File size
27.5 KiB
Views
3476 views
File license
CC-BY-4.0

There is also an english patch, hosted on Romhacking, to translate the entire UI and in-game text:

https://www.romhacking.net/translations/2441/

However, I can't find any version of the Dos version of the game that will successfully apply the patch. In reality it's not a patch as such; just replaces several data files in the game directory.

The latest, final release of the patch contains the following files for the Dos version:

- m.msg
- m_cht.slf *
- m_eng.slf *
- sdlpal.cfg **
- sss.mkf
- wor16.asc
- wor16.fon
- word.dat

The files marked with (*) are not present in the Dos versions of the game that I've found. The file marked with (**) is only relevant if you want to play the Dos version of the game with the modern sdlpal.exe replacement executable on Windows.

The problem I'm finding is that after replacing those files, the game still starts up with Chinese text, and the 'start' screen, which normally gives you two Chinese-language options:

menu_chinese.png
Filename
menu_chinese.png
File size
52.03 KiB
Views
3476 views
File license
CC-BY-4.0

... looks like this after dropping in the patched data files:

menu_patched.png
Filename
menu_patched.png
File size
53.46 KiB
Views
3476 views
File license
CC-BY-4.0

If I hit 'down' and then 'enter' I can get the 'Load save' menu to appear, but all of the characters are missing. I am wondering if it is a particular issue with the versions of the game I've downloaded (from various locations), all of them start up with a crack intro: "CRACK FILE From Fat Board (H.K BBS) C.C.F".

Worse, when the game itself starts all of the dialogue is still in Chinese.

Has anyone been able to successfully patch and play the Dos version of the game (this is important, as there are lots of variants: Win 98 release, a later Win XP graphical overhaul, a modern SDL reimplementation, etc). If so, which version did you use to drop the translation files into? If you say "sorry, can't help - I used a retail floppy/CD version" then that's just as helpful; it means there is some difference between the retail disc and these cracked versions on the net.

My collection database and technical wiki:
https://www.target-earth.net

Reply 1 of 17, by M-HT

User metadata
Rank Newbie
Rank
Newbie

I don't think you can play the english version with the original DOS executable. In the patch readme for version 3.1, it says that DOS versi0n is only supported with SDLPal.

Reply 2 of 17, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Hmm... there does seem to be some implicit inference in the discussion on rpgcodex.net that it only runs with the modified 'international SDL Dos' version. The readme file included with the patch (v3.3) is not clear at all:

0. (optional) Backup a copy of your original 'm.msg', 'sss.mkf', 'word.dat'. Additional files 'wor16.asc', 'wor16.fon' for PalDOS.
1. Overwrite the extracted files for your GAME VERSION into the game directory.
2. [For Microsoft Windows platform], copy the included win32 'sdlpal.exe' version into the game directory
- For latest updates and other platforms, download @ official SDLPal page: https://github.com/sdlpal/sdlpal with the 'Download' button @ README.md section
- For touch-based only platforms, change this line 'UseTouchOverlay=0' to 'UseTouchOverlay=1' in 'sdlpal.cfg' file
3. (optional) Documentation of 'sdlpal.cfg' options: https://github.com/sdlpal/sdlpal/blob/master/ … pal.cfg.example

It would be much easier to understand if there was a list of requirements: You need game data X, Y or Z. You need game exe version A, B or C.

The entry at Romhacking is even more vague: "Recommended to run game with ‘SDLPal’ exe. More info in Readme File." (underline emphasis mine)

I've signed up at rpgcodex to try and get a definitive answer.

My collection database and technical wiki:
https://www.target-earth.net

Reply 3 of 17, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Grrr... confirmed ... there's no current way to play an English translation of the Dos version; only an SDL re-implementation or Windows-native exe.

My collection database and technical wiki:
https://www.target-earth.net

Reply 4 of 17, by zyzzle

User metadata
Rank Member
Rank
Member

I also registered at rpgcodex and asked the experts there is there's any way to run a native DOS .exe version of the game, even if it is the reimplemented SDL version of the game. All I would like to do is run the game natively in DOS. It appears the the SDL version is Windows only, but there's some confusion mention of an unofficial DOSPal executible which will run natively in MS-DOS, without Windows or other OS required... I can't find such an executible anywhere. I also can't locate the original 1995 DOS version of the game anywhere.

Not sure if the original game was a CWSDPMI executible, or what, since I can't find it anywhere.

Reply 5 of 17, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

I found several versions of the original Dos game, none of which seem to be bundled with a Dos extender (cwsdpmi, dos4gw or similar):

- A 'Hong Kong' cracked version ~20MB
- An original CD version (1 data track, 8 short audio tracks) ~200MB

Both were from sites distributing dos games (which I am not going to link to for obvious reasons). There are also versions on archive.org, but only the ripped/cracked versions.

The contents of the CD version is as follows:

legend.png
Filename
legend.png
File size
98.07 KiB
Views
3298 views
File license
CC-BY-4.0

Fingerprint of the main exe file:

$ md5sum pal.exe
7e5634fee8dd389bbf769142473b5210 pal.exe

The unaltered, original version works fine in Dosbox, but of course it is all in Chinese (even the install/config utility). From what I can tell the ripped/cracked version works the same - but it has a different set of files as some of the exe's have been stripped out:

legend_rip.png
Filename
legend_rip.png
File size
80.7 KiB
Views
3298 views
File license
CC-BY-4.0

The main difference is the game exe:


$ md5sum PAL.EXE
8fe1fce755c2c958dd6be8c8cb8f44e9 PAL.EXE

There isn't a SDL version that will work in Dos, unfortunately (as there isn't a mainline version of the SDL library that targets Dos).

Personally, I think it's a very misleading project - nowhere up front does it state that the translation patch and the engine re-implementation need to be used together. That's not to take anything away from the accomplishments of the people involved, but when you have to go digging through a forum or the changelog of the translation patch to find out which versions it will (and won't) work with, that strikes me as though it could be made much clearer up front about which combinations of the game and patch will work.

My collection database and technical wiki:
https://www.target-earth.net

Reply 6 of 17, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Much of the confusion could be mitigated by having a list right at the front of the readme.txt in the translation patch (which is distributed separately!) and the re-implementation engine, something like:

The following combinations of translation patch, game data and engine are possible:

Game Data / Original exe / Re-implemented SDL exe
1995 Dos / No / Yes
1995 Win95 / Yes / Yes
200x WinXP / Yes / Yes

My collection database and technical wiki:
https://www.target-earth.net

Reply 7 of 17, by zyzzle

User metadata
Rank Member
Rank
Member
megatron-uk wrote on 2021-06-06, 08:40:
Much of the confusion could be mitigated by having a list right at the front of the readme.txt in the translation patch (which i […]
Show full quote

Much of the confusion could be mitigated by having a list right at the front of the readme.txt in the translation patch (which is distributed separately!) and the re-implementation engine, something like:

The following combinations of translation patch, game data and engine are possible:

Game Data / Original exe / Re-implemented SDL exe
1995 Dos / No / Yes
1995 Win95 / Yes / Yes
200x WinXP / Yes / Yes

This information is useful indeed. I did find the ripped DOS version (seems to be a flat 16-bit mode DOS .exe coded in Turbo Pascal?), and it does look like a fantastic game for the time, an isometric view RPG for pure DOS in 1995. It is a shame that the translators have left the original DOS version as a lost castaway, and seen fit to translate instead only the SDL version for other, lesser systems. I understand that the main reason the v. 3.1 English translation patch doesn't work in DOS, is that there are hardcoded passages within the DOS .exe in Chinese. Why people took the time to develop translations for Win 95 / 98 / XP and also the SDL-reimplemented .EXE and neglected the original DOS version does seem quite mysterious, short-sighted and a bit perplexing.

Reply 8 of 17, by PalMusicFan

User metadata
Rank Newbie
Rank
Newbie

Hello there. I think I need to clarify a few things.

1. The English patch and SDLPal are two separate projects that have intersected in recent years, but have different origins and different purposes.

As far as I know, the English Patch is made from Win9X version, because Win9X version uses Windows' own text rendering mechanism, so it renders English text. BTW, there is an official freeware of this version.

The original DOS version only supports double-byte text rendering, and there is only Chinese Traditional Font support. So, there is no way to view normal English in the game, unless the text display mechanism of the DOS version is completely changed, but this is beyond the basic goal of an English translation project.

Let's take a look at SDLPal. The pre-work of SDLPal aimed at a cross-platform port of the DOS version and Win9x version (Despite the general similarity, there are actually differences between these two versions). As you know, DOS games were once poorly supported by Windows XP. Players had to do lot of works to make Ad Lib music work, etc.

At first SDLPal supported English as a bonus of ASCII compability. Until around 2015, the text system was completely transformed to Unicode based, and only since then it has a complete multilingual support. This was when SDLPal also introduced a mechanism for external language file support, so that translators could easily do their translation work with a normal text editor without editing the resources in the original game files. The external language file is named with the extension of .slf now.

Since then, with SDLPal's multi-language support, the original Win9X version of the English patch project can also support the game resource of the DOS version with some additional work. Please note that this must be done with SDLPal.

In one word, I think the English patch is targeted to the Win9X version of the game, and the DOS version support could be considered a bonus (requires SDLPal).

2. The 2001 XP version and the original DOS version / WIN9X version are not the same thing at all.

The 2001 XP version is a REMAKE of the original versions. It has a completely different technical implementation and resource format.

EDIT: Sorry, the XP version was not released in 2000, but in 2001.

Last edited by PalMusicFan on 2021-07-31, 12:39. Edited 3 times in total.

Reply 9 of 17, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

It really does need to be made clear somewhere that you cannot play the DOS version in English in DOS, only using the SDLPal binary within Windows. It needs a matrix of versions and platform binaries to show what is possible, because frankly, it's about as clear as mud! 😁

My collection database and technical wiki:
https://www.target-earth.net

Reply 10 of 17, by PalMusicFan

User metadata
Rank Newbie
Rank
Newbie
megatron-uk wrote on 2021-07-28, 08:44:

It really does need to be made clear somewhere that you cannot play the DOS version in English in DOS, only using the SDLPal binary within Windows. It needs a matrix of versions and platform binaries to show what is possible, because frankly, it's about as clear as mud! 😁

If we could have an SDL for DOS, then SDLPal could be ported to DOS. Of course, I don't expect a real mode port.

Reply 11 of 17, by zyzzle

User metadata
Rank Member
Rank
Member

Where, if known, are the offsets in the DOS executable for the hard-coded Japanese language Kanji? And, would it even be possible to hard-code English text directly into the DOS executable? Probably not, or next to impossible, correct?

Reply 12 of 17, by PalMusicFan

User metadata
Rank Newbie
Rank
Newbie
zyzzle wrote on 2021-08-01, 01:02:

Where, if known, are the offsets in the DOS executable for the hard-coded Japanese language Kanji? And, would it even be possible to hard-code English text directly into the DOS executable? Probably not, or next to impossible, correct?

Let me explain as follows:

1. The font is NOT hard-coded in PAL.EXE. The font is combind of two files: WOR16.ASC and WOR16.FON.
WOR16.ASC is a simple text file, with BIG5 encoded Chinese Traditional text. It just includes all the Chinese characters used in the game.
When a specific Chinese character in the game text needs to be displayed, the program will find the character in this ASC file according to the encoding of the character, get the index, and then go to the FON file to locate the font graphic data by the index, and render it.

P.S. This is a game of Chinese Traditional Characters, not using Japanese Kanji. So it uses BIG 5 encoding, not SHIFT JIS encoding. Similiar as Latin alphabet in different Europian languages, Chinese Traditional Characters and Japanese Kanji are of the same origin, but there are some differences, and the coding rules are different in the Code Page era.

2. Chinese Traditional Characters use double-byte encoding. In Big 5 encoding, which is compatible with ASCII, certain bytes will be recoginzed as the first byte of a double-byte character. Thus, once a byte in these are found in the text data, the program should take the following byte and combine it with the current byte, to form a double-byte.

3. I guess the original program of this game only implements double-byte parsing and not ASCII compatibility (since there is no need to view English in the game), so it is likely that the program always reads two bytes at a time. If you would like to add English support, I think you should modify this part.

4. The format of FON file... The FON file includes 16x15 bitmap font graphics. I guess you need to add 8x15 Latin characters support.

5. Roughly speaking the text of the game itself is organized in lines. Each line displayed on the screen requires a game script to implement, and a single script contains the index of a text line with a script parameter, and the index file contains the real beginning addresses of these lines in M.MSG.

P.S. The game script format was designed much like assembly language, so you cannot add or remove scripts at will. We have another mechanism added in SDLPal, so the amount of text lines is expandable in SDLPal.

If you have any questions, please don't hesitate to ask me here.

Reply 13 of 17, by zyzzle

User metadata
Rank Member
Rank
Member

Thank you very much for your lengthy explanations, PalMusicFan. The depth of analysis is very much appreciated. This goes a long way into explaining why an English translation of the DOS version, running in DOS, has not been done yet! According to your #4 above, a new English bit-mapped (8x15) font would need to be done as the very first step, replacing the Chinese Traditional characters in the FON file. It would almost be easier to rewrite and reimplement the game entirely by scratch in a DOS target executable, with English language target and a brand new engine written. Such was actually done with the SDLPal executable for Windows, as I now understand it.

Reply 15 of 17, by PalMusicFan

User metadata
Rank Newbie
Rank
Newbie
zyzzle wrote on 2021-08-02, 01:01:

Thank you very much for your lengthy explanations, PalMusicFan. The depth of analysis is very much appreciated. This goes a long way into explaining why an English translation of the DOS version, running in DOS, has not been done yet! According to your #4 above, a new English bit-mapped (8x15) font would need to be done as the very first step, replacing the Chinese Traditional characters in the FON file. It would almost be easier to rewrite and reimplement the game entirely by scratch in a DOS target executable, with English language target and a brand new engine written. Such was actually done with the SDLPal executable for Windows, as I now understand it.

My pleasure.

Actually SDLPal has done almost every issue here. It has build-in GNU Unifont Basic Multilingual Plane, but also supports external bitmap font file (BDF format).

Here is some extended reading:

6. Chinese Encodings, either Simplified or Traditional ones are both DBCS (Double-Byte Character Set). When DBCS is using with ASCII, a encoding-specific method is required to recognize the current byte is ASCII or the first byte of DBCS; for BIG5, the method is simple detect it was equal to or larger than 0x81, which was hard-coded in executable.

7. Most text that displayable is stored in M.MSG, a simple BIG 5 text file. Logically, the text in M.MSG is divided into lines (in order to fit in the screen), by using indexes that stored in one data segment in SSS.mkf. Another data segment in SSS is the game scripts, which is stored in the form of bytecode (in the form "instrument_id arg1 arg2 arg3", all in signed short, total 8 bytes, quite like simple RISC machine code); the "display text" instrument (id -1, or its unsigned form 0xffff) will use the index number as arg1 to display the specified line, keep in mind this instrument does not have ability to segmentation.

By the way, SDLPal introduces a completely new mechanism for translation, which is able to replace whole Chinese paragraphs with English (for example) paragraphs that have different line amounts. Not every language share same information density, so this is useful. While talking about DOS version translation, keep in mind we do not have such help, we need cut sentence ourselves.

Last edited by PalMusicFan on 2021-08-03, 00:45. Edited 2 times in total.

Reply 16 of 17, by PalMusicFan

User metadata
Rank Newbie
Rank
Newbie
dormcat wrote on 2021-08-02, 02:03:

Really surprised to see the game being discussed here. Gave up the game 25 years ago after a long, long maze in the latter part of the game. 😅

The maze... Yeah, I see. But now it is OK, I guess, since we have so many guide articles.

Now the Steam version contains the orignal DOS version and two SDLPal versions.

P.S. There are SDLPal ports for almost every mainstream platform (Windows, linux, Android, macOS, iOS, PSP, 3DS, PSVita, Switch, etc.) excpet DOS since there is not a mature SDL DOS.

Reply 17 of 17, by zyzzle

User metadata
Rank Member
Rank
Member

There were rumors, or even some source code of SDL being ported to DOS, but no complete version. I thought all of this was given up years ago, but SDL port in DOS would be excellent, as then other games using SDL could also run in straight DOS.