Running DOSBox 0.73
When I execute the game, I can hear it running, music/voices, but all I see is DOSBox text still frozen and flickering on screen while the game is actually running. No other game does this.
I tried different "machine" types, I tried different "outputs", nothing worked, all looked the same and did nothing. 😢
The game is either mis-detecting the S3 chipset, or not using it in a way that is compatible with DOSBox. However, machine=svga_et4000 or machine=svga_paradise works OK. If using machine=svga_s3, the game works if you force the use of VESA by adding a command-line parameter of "vesa".
I tried all the machines, nothing, same thing... the screan just flickers the text from DOSBox but the game is running, hearing everything, but can't see anything. I also tried forcing vesa from the post you linked, not sure if I did it right. Never done it before. The game's exe = scream.bat
So how would I type it to force vesa, they typed " wsim /v"
You do realize you have to change the machine type in the conf file and restart DOSBox? just typing "machine=svga_et4000" at the prompt doesn't actually switch to the other machine type.
If I didn't spell it out clearly enough, type "scream vesa" to run with forced VESA.
The game works without forcing VESA in 0.72 (which does have S3 emulation). This CRTC detection code is used:
1 mov dx,03d4h 2 mov ax,4838h 3 out dx,ax ; write 0x48 to index 0x38 (Reg lock 1) 4 mov ax,0a539h 5 out dx,ax ; write 0xa5 to index 0x39 (Reg lock 2) 6 mov al,47h 7 out dx,ax ; write 0xa5 to index 0x47 (HGC orgX) 8 inc dx 9 in al,dx ; read index 0x47 10 mov ah,al 11 mov al,0ffh 12 out dx,al ; write 0xff to index 0x47 13 in al,dx ; read index 0x47
In the last port read, DOSBox 0.72 always reads 0, but 0.73 reads back the 0xff that was written. The game also misbehaves in 0.72 if index 0x47 returns what is written to it. This is not to say the current register behavior is wrong, only that it appears to be a hinge point for the issue.
It works when any value other than 0xff is read back after being written, so masking any bits at all; but just to be sure I changed it as you specified, and the game works without forcing VESA:
So in 0.72 the games *failed* to detect S3 and fell through to using VESA; however in 0.73 the S3 was detected because of improved emulation accuracy of the regs, but then there was no support for mode 0x69. I see you called it a regression in the change log, and I guess it is in a sense; but the truth of the issue is a bit more twisted. Happy