Hmm, I followed your blog post pretty closely, but I'm still missing something. I'll sleep on it, but it still seems weird it's working perfectly in dosbox, just not scummvm. Here is my sq1Window class incase anything obvious jumps out.
(class Sq1Window of SysWindow
(properties
underBits 0
pUnderBits 0
bordWid 3
)
(method (dispose)
(SetPort 0)
(kernel_112 grRESTORE_BOX underBits)
(kernel_112 grRESTORE_BOX pUnderBits)
(kernel_112 grREDRAW_BOX lsTop lsLeft lsBottom lsRight)
(super dispose:)
)
(method (open &tmp port temp1)
(= color 0) ;gColor)
(= back 15) ;gBack)
(= type 128)
` (super open:)
(= port (SetPort 0))
(= temp1 1)
(if (!= priority -1) (= temp1 (| temp1 $0002)))
(= lsTop (- top bordWid))
(= lsLeft (- left bordWid))
(= lsRight (+ right bordWid))
(= lsBottom (+ bottom bordWid))
(= underBits (kernel_112 grSAVE_BOX lsTop lsLeft lsBottom lsRight 1))
(if (!= priority -1)
(= pUnderBits (kernel_112 grSAVE_BOX lsTop lsLeft lsBottom lsRight 2))
)
; Draw the background
(kernel_112 grFILL_BOX lsTop lsLeft lsBottom lsRight temp1 back priority)
; Draw the border
(kernel_112 grDRAW_LINE (+ lsTop 1) (+ lsLeft 1) (+ lsTop 1) (- lsRight 2) 4 priority) ;global131 priority)
(kernel_112 grDRAW_LINE (- lsBottom 2) (+ lsLeft 1) (- lsBottom 2) (- lsRight 2) 4 priority)
(kernel_112 grDRAW_LINE (+ lsTop 1) (+ lsLeft 1) (- lsBottom 2) (+ lsLeft 1) 4 priority)
(kernel_112 grDRAW_LINE (+ lsTop 1) (- lsRight 2) (- lsBottom 2) (- lsRight 2) 4 priority)
(kernel_112 grUPDATE_BOX lsTop lsLeft lsBottom lsRight 1)
(SetPort port)
)
)