Quasar
Moderator

Posts: 2177
Registered: 08-00 |
1) Not new to r338 evidently. This has been an ongoing problem in certain hires modes for a long time, and I believe it is caused by a difference between the way the display and the positioning of the status bar is scaled (realyarray is probably causing this...).
2) Paint Shop Pro 3.11 does not object to this PCX file. The PCX subformat used by Doom has never been properly interpreted by certain programs; Windows Explorer is one such program, which interprets the graphics as grayscale instead of paletted. I am not aware of whether or not this is a problem of Doom not adhering to the PCX standard, or of other programs not fully supporting it. It was always poorly defined in the first place, with numerous badly documented subformats. It's an obsolete 16-bit-system graphics format anyway, so it's not of high concern to me. EE supports BMP format shots in part because of PCX being more or less extinct. I would like to add PNG shots as well but I find that adding libpng to the program for this sole purpose to be overkill. Rest assured that if we find another purpose for the library, PNG screenshots would be a foregone conclusion.
EDIT: Turns out it was pretty easy to find the *official* ZSoft docs for PCX after all - http://people.scs.fsu.edu/~burkardt/txt/pcx_format.txt
According to this, there is only one error with how Doom (and I assume neither BOOM nor MBF changed this code, perhaps erroneously) writes the files -- it specifies 2 for the Palette Type instead of 1. According to the docs, 2 means grayscale and 1 means color. Oddly, next to the line pcx->palette_type = SHORT(2); is a comment:
// not a greyscale
Somebody got their wires crossed maybe? Anyway the docs also say that PC Paintbrush IV and up ignore this field entirely, as do apparently a majority of paint applications that handle the file format. This probably does explain the oddness under Win9x's Explorer though. Other than that, I see no errors in the header format. Unless the specific tool you are using expects the HscreenSize and VscreenSize words to be specified in the header. According also to the docs, these fields were only used by Paintbrush IV/IV Plus. The code has never written these out, and just includes their space inside the header padding block.
So that leaves me to ask, which program are you using that's having trouble with them?
Last edited by Quasar on 09-27-07 at 20:18
|