Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ZvikaZ

Pages: 1 2 [3] 4 5 ... 14
31
SCI Development Tools / Re: Convert SCI0 vocab to SCI1 vocab?
« on: July 21, 2022, 11:37:51 AM »
I'm glad to hear that it worked!

Regarding the sound issue, I might give a hand here, to automate the manual work needed, but I don't really understand the problem definition.
I have done some work on ScummVM's sound code, but I never touched the sound format itself.

Can you refer me to specs, if any exists, of the old and new formats? Examples of game or two that uses each format?
And what happened to loop points in the new format?
And I didn't understand the comment regarding # of voices channels.


32
SCI Development Tools / Re: Convert SCI0 vocab to SCI1 vocab?
« on: July 21, 2022, 09:36:17 AM »
OK, I was wrong - those 2 'strange characters' were actually perfectly fine, it was a bug in my script.

Now everything is fixed, and should be working even with original Sierra interpreters (I hope...)
Please pull and check again.

Update how is it going.



33
SCI Development Tools / Re: Convert SCI0 vocab to SCI1 vocab?
« on: July 21, 2022, 05:07:01 AM »
Here is the output (WARNING: Strong language found in vocab!), using the game's original vocab.000 and the newest version of Python 3.
Code: [Select]
Python 3.10.5 (tags/v3.10.5:f377153, Jun  6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.

========== RESTART: C:\SCICompanion\re-quest\tools\sci\vocab_export.py =========
strings_import: get_room_number need to add support to define:  SORTCOPY
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['bit', 'bridle'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['dark', 'dim'], 'class': ['ADJECTIVE', 'IMPERATIVE_VERB']}
Warning: class mismatch:  {'words': ['enter', 'go'], 'class': ['IMPERATIVE_VERB', 'INDICATIVE_VERB']}
Warning: class mismatch:  {'words': ['gold', 'golden'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['exit', 'leave'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['giant', 'ogre'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['place', 'put'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['bit', 'bridle', 'reins'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['place', 'put', 'set'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt', 'damn', 'fart', 'fuck', 'piss', 'shit', 'shithead'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['barn', 'stable'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['barn', 'stable', 'stall'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks', 'stone'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks', 'stone', 'stones'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt', 'damn', 'fart', 'fuck', 'piss', 'shit', 'shithead', 'turd'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['path', 'road', 'trail', 'walk'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['path', 'road', 'trail', 'walk', 'walkway'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['whale', "whale's"], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['wood', 'wooden'], 'class': ['ADJECTIVE', 'NOUN']}
Traceback (most recent call last):
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 156, in <module>
    vocab_export(args.gamedir, args.csvdir)
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 139, in vocab_export
    write_csv(csvdir, sorted_vocab, config.vocab_csv_filename)
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 146, in write_csv
    dict_writer.writerows(vocab)
  File "C:\Users\eoakf\AppData\Local\Programs\Python\Python310\lib\csv.py", line 157, in writerows
    return self.writer.writerows(map(self._dict_to_list, rowdicts))
_csv.Error: need to escape, but no escapechar set

The last few words (ANYWORD, NOWORD) failed to be exported to the CSV file.

When importing the CSV file back into the vocab, SCICompanion seems to be able to read it right, but the interpreter doesn't recognize any words, probably because the vocab wasn't exported right.

OK, we have 2 distinct problems here:
1. The original vocab has 2 strange bytes, after 'anynumber' entry, on the beginning of '!*' entry. The csv writer couldn't handle those. I fixed it locally. Anyway,  I don't understand why are they there - any input will be great.
2. That's not the reason it failed to work for you - but rather that I had only ScummVM in mind when writing those tools. The vocab file has pointers in the beginning, that are unused by ScummVM, so I didn't bother to handle them.

I suppose I can add support for those pointers - however, it'd be much easier if someone can refer me to an explanation how they are working. I'm aware of http://sci.sierrahelp.com/Documentation/SCISpecifications/27-TheParser.html#AEN5794, but it describes only the old format (which uses 26 pointers, one for each letter) and not the new format (which uses 255 pointers).

EDIT
====
If I understand correctly SCICompanion's code, the 255 pointers are for ascii codes. Therefore, I can continue with this.

34
SCI Development Tools / Re: Convert SCI0 vocab to SCI1 vocab?
« on: July 19, 2022, 01:43:38 PM »
Here is the output (WARNING: Strong language found in vocab!), using the game's original vocab.000 and the newest version of Python 3.
Code: [Select]
Python 3.10.5 (tags/v3.10.5:f377153, Jun  6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.

========== RESTART: C:\SCICompanion\re-quest\tools\sci\vocab_export.py =========
strings_import: get_room_number need to add support to define:  SORTCOPY
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['bit', 'bridle'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['dark', 'dim'], 'class': ['ADJECTIVE', 'IMPERATIVE_VERB']}
Warning: class mismatch:  {'words': ['enter', 'go'], 'class': ['IMPERATIVE_VERB', 'INDICATIVE_VERB']}
Warning: class mismatch:  {'words': ['gold', 'golden'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['exit', 'leave'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['giant', 'ogre'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['place', 'put'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['bit', 'bridle', 'reins'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['place', 'put', 'set'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt', 'damn', 'fart', 'fuck', 'piss', 'shit', 'shithead'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['barn', 'stable'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['barn', 'stable', 'stall'], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks', 'stone'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['boulder', 'boulders', 'rock', 'rocks', 'stone', 'stones'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['ass', 'asshole', 'bastard', 'bitch', 'bullshit', 'clit', 'cock', 'cocksucker', 'crap', 'cunt', 'damn', 'fart', 'fuck', 'piss', 'shit', 'shithead', 'turd'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['path', 'road', 'trail', 'walk'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['path', 'road', 'trail', 'walk', 'walkway'], 'class': ['IMPERATIVE_VERB', 'NOUN']}
Warning: class mismatch:  {'words': ['whale', "whale's"], 'class': ['ADJECTIVE', 'NOUN']}
Warning: class mismatch:  {'words': ['wood', 'wooden'], 'class': ['ADJECTIVE', 'NOUN']}
Traceback (most recent call last):
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 156, in <module>
    vocab_export(args.gamedir, args.csvdir)
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 139, in vocab_export
    write_csv(csvdir, sorted_vocab, config.vocab_csv_filename)
  File "C:\SCICompanion\re-quest\tools\sci\vocab_export.py", line 146, in write_csv
    dict_writer.writerows(vocab)
  File "C:\Users\eoakf\AppData\Local\Programs\Python\Python310\lib\csv.py", line 157, in writerows
    return self.writer.writerows(map(self._dict_to_list, rowdicts))
_csv.Error: need to escape, but no escapechar set

The last few words (ANYWORD, NOWORD) failed to be exported to the CSV file.

When importing the CSV file back into the vocab, SCICompanion seems to be able to read it right, but the interpreter doesn't recognize any words, probably because the vocab wasn't exported right.

Can you send me the vocab file?
I will check what's gone wrong in exporting.

Regarding the interpreter not recognizing - can you please try with ScummVM?

35
SCI Development Tools / Re: Convert SCI0 vocab to SCI1 vocab?
« on: July 19, 2022, 03:56:54 AM »
I have faced similar problem when working on SQ3 Hebrew translation.
SQ3 uses the old, 7-bits, format. But for Hebrew I needed the new, 8-bit format.
Therefore, my scripts "export" the original vocab file to a .csv file (readable by Excel), the Hebrew translation was done in that file, and then another script "import"ed the .csv file to a vocab fie, in the new format.

You can see them at:
https://github.com/adventurebrew/re-quest/tree/master/tools/sci
  (we have recently moved them to a new repo)

The scripts of interest for you are 'vocab_export.py' (to create the .csv file) and 'vocab_import.py' (to read the .csv file and create 2 vocab files (!) - both are in the new format, but they have different names and locations - you can safely ignore that unneeded file, just make sure it doesn't delete any important file for you...)

The scripts also have (a basic) '--help' support.

If this information is enough for you - great.
If not, I will have time tomorrow to run it myself, and write detailed instructions what should you run.

36
Hi.
We've started working on Hebrew translation of SQ6 (after completing SQ1, SQ3, and near completion of SQ5).
I found an interesting string, in DoitFeature.sc (script 460), line 1880 (in my decompilation, it might vary of course):
Quote
   I DEDICATE THIS GAME TO MY LOVING WIFE, MICHELE, AND OUR WONDERFUL SON, SEAN.__I LOVE THEM BOTH VERY MUCH!\n\n________________________________LOVE,\n________________________________STEVE

I'm not sure what triggers this message, but it seems to be some very specific situation.

I wander if this was some "private easter egg", that only that Steve was aware of...
I guess it's Steve Conrad: https://www.mobygames.com/developer/sheet/view/developerId,3106/

If anyone manages to understand how to trigger it in game, it'd be nice ;)

37
Wow, didnt know that :o.
I just tried the game in Virtualbox (Win98) without ScummVM and there is no "both" button.
So I cant change it, without changing the SummVM'S code..
Thank you for your info and help :).

EDIT
====
The solution seems simple.
I have read ScummVM's code (same file, line 354) that injects their 'both' view - it depends (among other things) on the fact that 'View 995, Loop 13' has only 2 cells.
So, you just have to add your translated view as 'View 995, Loop 13, Cel 2' - and then it will (supposedly) be used to show that button, and will not be overridden by ScummVM.


38
Strings to translate can be in texts/messages resources, they can be hard coded in the script themselves (more common as the game is older) and can be in the views.

In your case, I haven't checked it, but anothet possibility is that the 'both' doesn't exist in any of these resources.
ScummVM adds this button in some games that didn't originally had them.
Just open this game in Dosbox and see if that button exists.
If it's there - it's not related to ScummVM.
If it's not there - ScummVM added it.
Then, I don't remember all the details. They based it on some mechanism that was already in the game. But I *think* that the button view is in ScummVM code.

Edit
====
For PQ4 there's a comment in ScummVM's code (https://github.com/scummvm/scummvm/blob/101e016af176d95a43c31b1fdb1dd8338c409843/engines/sci/resource/resource_patcher.cpp#L147) that says that there isn't appropriate view in the game, so they added it.
But I haven't seen such a comment for other games...

39
AGI Development Tools / Re: WinAGI - "Invalid or Missing WinAGI file"
« on: April 18, 2022, 03:33:57 AM »
Quote
I wonder if I should have added a separate parameter to the Game Property form to let users change the WAG filename separately from the GameID,
I really don't think it's worth your time.
Furthermore, I think it will be more confusing for the users than helpful.


40
Thanks for the detailed information.

1.
Regarding the automatic GameID setting - is it documented in WinAGI's help? (honestly, I haven't checked...) If not, maybe it'd be nice to add.

2.
Quote
If it were me, I would have assumed any game that includes a WinAGI game file is either a fan-made game, if the WinAGI GameID is not a known Sierra gameid, or a variant of a Sierra game if it is known.
ScummVM's folks agree with you, but they had a bug.

Quote
That kinda sucks, and I hope the fix you submitted to ScummVM will fix that.
It should fix exactly that.
Please check the daily build.
It should either create a known Sierra gameid, or 'agi-fanmade'.

3.
Fun fact - that bug is partly because of me :)
When I worked on PQ1 Hebrew translation, I discovered that ScummVM had support for .wag file reading, but it was outdated, and was based on .wag binary format. Which means that it didn't work for modern WinAGI versions. I added support to the modern textual .wag format. Because of that, all that .wag handling code that was ignored for long time started working, include the bug (that was there before I came) that you mentioned, of the unknown gameid.

41
AGI Development Tools / Re: WinAGI: automatically setting gameid
« on: April 17, 2022, 09:19:06 AM »
Thanks for the ScummVM fix, ZvikaZ.
No problem. I have explained the situation now at https://sciprogramming.com/community/index.php?topic=2059.0

42
This topic has been mentioned here in few threads, and some information is at https://bugs.scummvm.org/ticket/13414.
I have made now some modifications to ScummVm's code (which will be probably available tomorrow at their daily builds).

The situation with my fixes should be (if I'm not mistaken ;) ):
  • The game's GameID in WinAGI is determined by the .com file's name, or `AGI` if it's `sierra.com`
  • Once the game files are being changed, ScummVM fails to find the game in its detection table
  • ScummVM tries fallback detection, based on GameID's value in WinAGI
  • If it's a value that's known to ScummVM (ignoring case), it will be used
  • Otherwise, it will be `agi-fanmade`
  • ScummVM's `gameid` for each game can be seen in scummvm.ini, or at https://github.com/scummvm/scummvm/blob/046b6a6328075a4c876d8ee83c5755efff9da7d9/engines/agi/detection.cpp#L48
  • Note that Space Quest 1 (for example) might have 'sq.com' in some distributions, which will make its GameID in WinAGI to be 'SQ', while scummvm expects it to be 'sq1'. Just modify it in WinAGi

I assume that's enough for the translation work.
If something else is needed, or if I'm mistaken, please notify me.

43
AGI Development Tools / WinAGI: automatically setting gameid
« on: April 17, 2022, 05:38:30 AM »
https://bugs.scummvm.org/ticket/13414#comment:9 says:

Quote
According to AGK, WinAGI and AGI Studio are choosing the GameID based on the presence of the .COM game loader in the imported game folder. Usually it's Sierra.com, which sets the GameID to "AGI"

Suggestion - in case that's the .com loader is just Sierra.com, maybe the gameid can be set by checking the `set.game.id("SQ");` command's value.


44
AGI Development Tools / WinAGI - "Invalid or Missing WinAGI file"
« on: April 17, 2022, 05:28:58 AM »
Hi.
I've imported SQ1. 'Edit Game Properties' dialog popped up, and I modified GameID to `sq1`, saved, and exited. So far, no error message or warning.
Then I reopened WinAGI, and got an error: "Invalid or Missing WinAGI file", saying that sq1.wag file is invalid or missing, and removed from Most Recent Files list.

It's really not critical issue, as I can still manually load the wag file, but it seems like something needs to be fixed here.
(maybe change the .wag file name if the gameid is changed? or maybe fix the Most Recent Files list?)

45
Very well, I understand a little more every day. In fact I tend to want to use WinAGI like SCICompagnon  ;D

I have two more questions. French uses accented letters. So I need an AGI font 255 characters with accented letters. http://www.image-heberg.fr/files/1648738546236223923.png

Where is the font located in the game, because I will have to modify it? (Otherwise the game will not be able to read the accents) In fact I would like to be able to write directly with accented words in each LOGICS file. http://www.image-heberg.fr/files/16486955621017682477.png

Is there an AGI font 255 characters with accented letters that I could use?

Thank you for your patience  :)

I answered at https://sciprogramming.com/community/index.php?topic=2054.0

Pages: 1 2 [3] 4 5 ... 14

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.022 seconds with 20 queries.