[Scummvm-tracker] [ScummVM :: Bugs] #15049: FREESCAPE: DOS/CGA render mode need work
ScummVM :: Bugs
trac at scummvm.org
Mon Oct 21 02:19:21 UTC 2024
#15049: FREESCAPE: DOS/CGA render mode need work
------------------------+--------------------------------
Reporter: neuromancer | Owner: neuromancer
Type: defect | Status: new
Priority: normal | Component: Engine: Freescape
Version: | Resolution:
Keywords: | Game:
------------------------+--------------------------------
Comment (by shdon):
The palette selection is made using a very basic check. From disassembling
the DRILLC.EXE, I find this code:
{{{
mov ah, 0B
mov bx, 0100
test byte ptr ds:[1E5F], 01
jne $+1
inc bx
int 10
}}}
This is a call to INT 10h AH=0B BH=01 which selects the palette according
to what is in BL (if BL=0 it sets black/green/red/brown, if BL=1 it sets
black/cyan/magenta/grey). The determining factor is whether the byte at
offset [1E5F] is odd or even. For even values, palette 1 is used; for odd
values, palette 0 is used. The byte at offset [1E5F] is the room ID. So
basically, rooms with an odd room ID use red/green/brown and rooms with an
even room ID use cyan/magenta/grey.
--
Ticket URL: <https://bugs.scummvm.org/ticket/15049#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list