First post, by Good_Punk
Hi everyone,
I was just curious if there are any tools to help translating DOS Games or if you typically go through the executable with a big standard Hex editor?
Cheers
Hi everyone,
I was just curious if there are any tools to help translating DOS Games or if you typically go through the executable with a big standard Hex editor?
Cheers
There is only one way. Hex edit, and retain the same size. I only have translated a Windows 1.x/2.x french program to english that shows the globe in 3d.
I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.
Cyberdyne wrote on 2025-02-25, 14:40:There is only one way. Hex edit, and retain the same size. I only have translated a Windows 1.x/2.x french program to english that shows the globe in 3d.
Would that also work for normal .exe? I have some german only soft I'd like to translate to english/polish.
"All my efforts were in vain...
Let that be my disappointment."
-Kotel
Jep. You only have to UNPack compressed executables. But the text strings can not change lenght inside executable. Sometimes in end of file overlay they can, but rarely.
I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.
Curious ... not long ago (for a different reason) I wrote a program to find the printable string in a binary
file and produce output with many lines of:
xxxxxxxx 'text'
where 'xxxxxxxx' is the hex address of the text
I also added some filters so I could auto-filter a bunch of the meaningless crap that looks like
text --- still a lot of drivel, but was able to reduce it to the point where it worked for my
needs... I would think something like this (browsing it on a second screen while HEXED)
would be fairly usefull for something like this...
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Yeah, that sounds useful indeed. Would you be willing to share the program. 😀
Good_Punk wrote on 2025-03-01, 04:58:Yeah, that sounds useful indeed. Would you be willing to share the program. 😀
Not a prob -- I just have to "find" it and clean it up a little to make it presentable
.. it was a quick & dirty - on the fly
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Good_Punk wrote on 2025-03-01, 04:58:Yeah, that sounds useful indeed. Would you be willing to share the program. 😀
Ok, I've found it and placed it in the "Drop" area of my site:
{site(below)}/Drop/SCANPS.ZIP
I have provided the source code:
- SCANPS.C <= Build with my Micro-C/PC compiler
and two executable editions:
- SCAPS.COM <= 16-BIT (DOS) executable
- SCANPS.DVM <= For "Daves Virtual Machine" (Win64, Linux etc.)
Please note, this was a "quick and dirty" tool I created in a few mins
one afternoon while comparing BIOS files ... I later took some time to
"clean it up" after someone asked me to publish it --- but there are NO
guarantees, it's not terrible "pretty", and there may be latent bugs I
didn't discover while I was using it!
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Thanks! I'll give it a try.
Ok this looks great. Now the game I'm translating is German and contains umlauts like "äöüÄÖÜ" and "ß"
With the default options the tool seems to split strings at these character (as they are not recognized as text)
From what I understand I can specify these characters in the options... but the help is a bit technical here and I have difficulties understanding it.
Could you maybe provide me with the correct options to handle these character?
Thanks alot
Also... am I correct to presume this tool only exports the text and I can't reimported the translated strings with it afterwards, right? 😀
you can also try this one
https://www.split-code.com/strings2.html
Good_Punk wrote on 2025-03-02, 05:45:Ok this looks great. Now the game I'm translating is German and contains umlauts like "äöüÄÖÜ" and "ß" With the default options […]
Ok this looks great. Now the game I'm translating is German and contains umlauts like "äöüÄÖÜ" and "ß"
With the default options the tool seems to split strings at these character (as they are not recognized as text)
From what I understand I can specify these characters in the options... but the help is a bit technical here and I have difficulties understanding it.Could you maybe provide me with the correct options to handle these character?
Thanks alot
SCANPS -?S
Will give you details on how to specify "accepted" string characters, along with a couple good
examples. The examples some non-character ASCII character (like {return} {linefeed} {backspace} {tab})
which are added with something like: -#+09 (for tab - hex 09)
for non-ASCII ones you would use something like: #+84
You can use: --file
to read more command line arguments from a file (handy when you have a lot that you are
experimenting with)
Note however that if you add too many different non-ASCII characters, you will get more reports
of things are aren't actually strings!!!
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Good_Punk wrote on 2025-03-02, 05:57:Also... am I correct to presume this tool only exports the text and I can't reimported the translated strings with it afterwards, right? 😀
That's correct - I created it in a hurry and wasn't needing a patch tool.
I was just looking to see how similar two binary applications (BIOS files)
were by comparing the strings within them...
If you like, I could make such a patch tool where you could take the output of SCANPS
and add new strings after the "lines" you want to change, something like:
00000519'MICRO-C by Dave Dunfield'
0000054A"Simple program"
"simple Program"
0000055A"to printf() a"
00000569"bunch of"
"- some -"
00000573"test strings"
and apply those strings to the file.
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
That would be cool if it's not to much work.
And would you allow me to share the program (your credits included) with my YouTube community maybe?
If it works for my project I want to spread the news so others could also translate games with it.
Good_Punk wrote on 2025-03-02, 17:44:That would be cool if it's not to much work.
And would you allow me to share the program (your credits included) with my YouTube community maybe?
If it works for my project I want to spread the news so others could also translate games with it.
Yeah, I'll see what I can do in the next few days (it will be a little bit more work because I assume you will
want a way to include non-printable (ie: hex) characters in the replacement strings)
And no prob. on redistributing it - I'm retired now, so all I really want from this stuff now is to
a) have fun,
and
b) help anyone I can!
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Ok, I had a little time this morning, so I added SCANPT to SCANPS.ZIP on my site.
use: SCANPT <scanOutPat> <oldfile> <newfile>
This program takes the output from SCANPS with "new" strings added after
the ones found, and patches <oldfile> to <newfile> with the corresponding
strings changed.
------- Example <scanOutPat>
00000249"Test"9"string 2" <= {tab} is before "string"
"Test string"9"2" <= {tab} is after ""
00000258"Test string"9"3" <= {tab} is after "string"0
"Test"9"string 3" <= {tab} is before ""
---------------------------
> scanps scantst.com 8 -#=20#=9R=!~ >scantst.pat
> scanpt scantst.pat scantst.com newtst.com
Note that I have changed SCANPS slightly - make sure you use the new:
For "test<tab>string" <= <tab> is tab character HEX 09
formarly it would output: aaaaaaaa"text{9}string"
This was indistingishable from the string "test{9}string"
I didn't consider this a problem as I could "figure out" such things
as I manually patched the file with a hex editor ... but an automated
patch "has to know"
so, now it outputs: aaaaaaaa "test"9"string"
In case the string contains '"', it can use " ' or ` as a string
delimiter - if the string contains all-three it will use '`' and
show '`'s in the string in hex: `60`
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal
Cool thanks, I'll try it out.