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

If it's feasible, it'd be nice to have batch import/export feature from the console.

Example possible APIs:
Code: [Select]
conWAGI.exe /export_all
conWAGI.exe /export View6 /export Picture12

conWAGI.exe /import c:\some\directory\with\importable\files
conWAGI.exe /import View6.agv /import Picture12.agp

BTW, our PQ1 Hebrew translation project is now in beta testing, and you have an important part of it, so, thanks again :)

The trailing zero is required. That's how the word search function knows it's reached the end of the file. If you strip that off, the word search function will continue looking at data from the heap that immediately follows the words.tok file (the OBJECT file), thinking it's valid word data; eventually, a null value will be found, which AGI interprets as the end of words. In most cases, this will happen without the player ever even knowing, because there is almost always a zero value (0x00) byte in the OBJECT file's header. That byte will cause the word search to end.

Even in the unlikely event that you have more than 85 inventory items (which means the header WON'T have a zero value byte), it would be even more unlikely that the rest of the OBJECT file header and item data would contain the exact characters needed to create a false word match before a zero value is eventually encountered.

I don't know the exact algorithms, but I would not be surprised if NAGI and SCUMMVM ignore the trailing null character; they most likely use array indices to keep track of the end of the word list (this is just speculation on my part though).

So, technically, you could have a WORDS.TOK file without the null character at the end, it will work 99.99999% of the time. But it's better to have that ending character, so WinAGI enforces it.

Thanks for the detailed explanation, you've convinced me ;)
Can you add that trailing zero to WinAGI help's description of WORDS.TOK format?

And does anyone here have write permission to and can update it there?
Or maybe there is somewhere more updated copy?

Some of the old Sierra games had WORDS.TOK with odd file sizes (KQ3 in particular). If WinAGI couldn't open them, we would have heard about it, right?
Yeah. You're right.
I just discovered that I was wrong - the point isn't parity.

However, there is still this additional mandatory zero.
Now I think that it always expects a trailing zero. But I'm not 100% convinced that I'm correct...

AGI Development Tools / Should WORDS.TOK have even number of bytes?
« on: May 02, 2021, 08:35:38 AM »
It seems that WinAGI expects WORDS.TOK to have even number of bytes.
Is it on purpose?
If yes, please update the WORDS.TOK spec, in WinAGI's help.
If no, please fix it...

It can be demonstrated by creating a new WORDS.TOK file, with only 'a', 'anyword' and 'rol', and opening it in hex editor. It has an unexpected zero at the end. If it's removed, and loaded again to WinAGI, it complains that the file is illegal.

AGI Development Tools / conWAGI.exe output redirection fails
« on: April 29, 2021, 07:25:03 AM »

I've tried to redirect conWAGI.exe's output to file, but the file was empty.
I've also tried to capture the output with Python's subprocess.check_output, but it returned an empty string. I assume these issues are related.


AGI Development Tools / Re: WinAGI Version 2.1.10
« on: April 04, 2021, 09:22:26 AM »
Thanks, man. Unfortunately the list of people who know about Sierra + Apple IIGS games is about as long as the people who actually know details about Sierra's MIDI implementation- something like less than 5, and they don't know each other. :P

I think you're too pessimistic...

Anyway, if you want information regarding Sierra's Apple IIgs games, I assume you've read Another, less known resource -
You might also want to just read ScummVM's implementation, it's not too long:

It's been posited the AppleII GS version sends SysEx data at game launch.
Where have you seen that? I don't think it's accurate.

If it's true, you should be able to find it either in the game source files, or in the aforementioned ScummVM's 2gs 'driver'.
ScummVM doesn't have such code. I haven't searched the game source files, but I believe it's not there either. You can simply check it.

BTW, it won't help you with your 2gs query, but I have added a feature to ScummVM to dump MIDI commands, if using standard MIDI devices. Just run it with '--dump-midi'.

Maybe it's a known fact, but I just discovered that today, so, wanted to share...

I have always thought that in AGI the sound is either turned on, or off.

However, WinAGI help says:
v23: Sound Attenuation

For Tandy systems, this variable is used as a global volume control

OK, having a global volume control is great, but how does the user control it?

Well, I have found this at PQ1: (I assume it's similar for other games as well...)

Code: [Select]
if (machineType == TANDY)
  set.key(61, 0, c38);
  set.key(45, 0, c39);
  set.key(43, 0, c38);

and Logic0:
Code: [Select]
if (machineType == TANDY)
  if (controller(c38))
  if (controller(c39) &&
      attenuation < 15)

i.e., if the machine is Tandy, then the user can press '-' to increase attenuation (= decrease volume), and '+' (or '=', which are on the same key) to decrease attenuation (= increase volume).

ScummVM already supports PCjr sound emulation, which as far as I remember should be similar to Tandy, (is it possible with DOSBox? I have never tried...), however, it currently doesn't have a PCjr or Tandy computer types:
Code: [Select]
enum AgiComputerType {
kAgiComputerPC = 0,
kAgiComputerAtariST = 4,
kAgiComputerAmiga = 5, // Newer Amiga AGI interpreters' value (Commonly used)
kAgiComputerApple2GS = 7,
kAgiComputerAmigaOld = 20 // Older Amiga AGI interpreters' value (Seldom used)

Compared to the types in WinAGI help:
Value Computer Type
0 IBM PC compatibles
1 IBM PCjr
2 Tandy 1000
3 Apple IIe, IIc
4 Atari ST
5 Amiga
6 Macintosh
7 Cortland*
8* PS2 with MCGA

It's interesting that these two lists don't perfectly much each other. WinAGI help explain that 'Cortland' is actually 'Apple IIgs'. ScummVM is missing PCjr, Tandy, Apple IIe/c, Macintosh and PS2 - I assume because they aren't supported. However, WinAGI help is missing '20 // Older Amiga AGI interpreters' value (Seldom used)'.

- Sierra added volume control keys to Tandy. Was it a known fact?
- Why didn't they add volume control keys to other platforms that had better-than-PC-speaker sound device?
- Maybe the Older Amiga machine type should be added to WinAGI help?
- What were the differences between the Tandy and a regular PC, besides improved music? In other words, is it a good idea to set machine type for Tandy (2) in ScummVM, instead of PC (0)? 'grep'ping in PQ1 source code shows that it's harmless, but that's not enough indication to make such a change...

I have tried my last idea, with KQ2 (because of the sea sounds at the beginning which are great for volume tests), and '+' and '-' really change the volume. Cool!
('=' doesn't work, because in KQ2 it's saved for swimming)

However, another strange thing is that these keys don't appear in the menu, or in the in game help.

You've convinced me.
Now I'm really looking forward to read your series ;)

Nice update.

You might be interested in searching this forum for various threads regarding historical issues. I vaguely remember (*) few occasions that the conclusion was that the human's memory is weak, and if you have some hard evidence regarding something, that contradicts some ex-employee's memory, many times the ex-employee just doesn't remember well...

And of course, Ken Williams himself might be wrong (I'm not saying that he's wrong, I'm just raising the option that he doesn't remember well, and you should verify what he says...). And besides, when you'll read his book, you'll see that his general attitude is (in my words... ) "I'm looking forward to the future, and don't think about the past too much", so he gives the impression that he didn't try hard to memorize those things.

Anyway, if you'll ask *me* about things that I've done more than 30 years ago, I will probably forget most of the details...

(*) It's an interesting irony, that I've just demonstrated my claim by 'vaguely remembering' what I've read here ;)

You might want to read this thread:
And it refers to a post in a *very* comprehensive blog series: , which I think you should also check.

I think it's a good question, and your planned series sounds like a great idea. Please update how it's going!

Regarding ADL - you might want to read Ken Williams' recent book. He speaks a little about how they designed the mystery house, gives examples of Roberta's tables that described the games, and few more details. He doesn't give exact technical details, but still, it might interest you.

Regarding ScummVM's ADL support - you might want to speak with ScummVM guys. I assume they will be glad to give you more information. You can even interview waltervn who developed the ADL engine for ScummVM. I think that the reversing effort is an interesting story; and anyway, he's probably one of the people who know most about ADL today...

He's reachable in ScummVM's Discord server, under that nickname.

SCI Development Tools / Re: Message file format?
« on: March 11, 2021, 05:09:40 PM »
Thanks for the detailed answer!

Can you translate 'lame/ok/best' ( ;D) to some more common terms? (SCI1.1, etc.)

And what's the meaning of the best's reference bytes? What are they used for?

In PQ1 (AGI) there is a Chief Whipplestick, which is once called Captain Whipplestick.
I'm not familiar with American PDs, but does it make sense that the chief of the police department in only a captain?
Or maybe it does make sense, considering that Lytton is a small town?

It's also interesting that Whipplestick is mentioned only once in the SCI version (as 'Lytton police chief Randolph Whipplestick')

AGI Development Tools / Re: WinAGI Version 2.1.10
« on: March 08, 2021, 02:33:00 AM »
If you've mentioned extended characters handling - it'd be nice to be able to choose the encoding of the extended character set.
It's not really important for me, as I export all the strings to a csv file, and they are translated by a team in a Google Drive, and then imported back to the logic files by a script - but still, it's a nice feature - if it's not too hard to implement.

SCI Development Tools / Message file format?
« on: February 28, 2021, 10:42:53 AM »
Is there some documentation for the message file format?
(besides reading ScummVM's message.cpp , or the original

Currently, when decompiling logic files, the object names are explicitly written.
For example, from PQ1:
Code: [Select]
  if (has("Patrol Car Keys"))
However, this complicates things when the object names are translated, because it's not enough to update the objects files, but the object name has to be searched for in all logic files and updated. And if the translation is fixed, again, all the usage places should be updated.

It'd be much easier if it was possible to just retain the the i- syntax:
Code: [Select]
if (has(i1))
(similarly to the option "Show message arguments by number")


Pages: [1] 2 3 ... 9

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.121 seconds with 21 queries.