VOGONS


Unsupported video mode in demo

Topic actions

Reply 22 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie

I think there's some confusion here. Maybe I screwed up some information too...

The demo crashes with the -24 switch. I does NOT crash without it.
I tried what you said and the demo runs ok. It uses fake highcolor mode in the Minnie mouse part obviously and all frames are now of the same size.

What are you trying to achieve by the tests btw?

...find some video captures of old DOS demos here...

Reply 24 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie

Hmmm. Sorry then. It seems I screwed up there earlier... 😒
What about the "-24" crash? Is this the demos fault or is it DOSBox that b0rks out, or the S3 card, or whatnot?

I wasn't able to disassemble the code. It seems to use an unknown packer and IDA Pro doesn't like it...

...find some video captures of old DOS demos here...

Reply 27 of 41, by robertmo

User metadata
Rank l33t++
Rank
l33t++
coolhaken wrote:

I have a small program which can solve this problem ...
Don't ask me why ...
This program is to solve another game's problem and I am not the author.

ok, now i wonder what was coolhaken talking about. I guess he tried the game only once, and only with the fix and it worked, cause it always works and fix does nothing for this game.

Reply 28 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie

Well. IDA Pro tells you that the TSR does something to INT 15h and 1Ch:

public start
start proc near
jmp short loc_10116

loc_10116:
push cs
pop ds
mov ax, 351Ch
int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
; AL = interrupt number
; Return: ES:BX = value of interrupt vector
mov word_10111, bx
mov word_10113, es
mov ax, 251Ch
mov dx, 102h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
mov ax, 2515h
mov dx, 115h
int 21h ; DOS - SET INTERRUPT VECTOR
; AL = interrupt number
; DS:DX = new vector to be used for specified interrupt
mov dx, 116h
int 27h ; DOS - TERMINATE BUT STAY RESIDENT
start endp ; CS = current program segment
; DX = last program byte + 1
seg000 ends
end start

1Ch is the Timer so it might be some speed fix like that one for old Turbo Pascal code...

...find some video captures of old DOS demos here...

Reply 29 of 41, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
raer wrote:

What about the "-24" crash? Is this the demos fault or is it DOSBox that b0rks out, or the S3 card, or whatnot?

I explained why the demo terminates with an error when the -24 switch is used in my first comment. The ungraceful nature of the termination appears to be the demo's fault, but the authors probably didn't worry too much about graceful termination for a problem they likely didn't have.

As for your mistakes, miscommunication, or whatever about the demo not working without the -24 switch, or that coolhaken's attachment was somehow effective in fixing anything... well, I suppose I should not write what I'm thinking.

We'll have to wait for coolhaken to comment on what problem the attachment was supposed to help with...

Reply 30 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote:

I explained why the demo terminates with an error when the -24 switch is used in my first comment. The ungraceful nature of the termination appears to be the demo's fault, but the authors probably didn't worry too much about graceful termination for a problem they likely didn't have.

I understood that. The question was if the 24bit mode should be available or not. Is it in the VESA standard and should the card support it or were the coders just plain wrong?

...find some video captures of old DOS demos here...

Reply 31 of 41, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

My understanding is that in 24-bit modes the bytes are arranged more or less like this:
RGBRGBRGB

32-bit:
RGBXRGBXRGBX

where X is unused. In the latter you can address one pixel with a 32-bit access. Trio64 and maybe earlier seem to have a 24-bit mode. I'm not sure about Trio64V+. If it has one then it's hidden.

1+1=10

Reply 32 of 41, by coolhaken

User metadata
Rank Newbie
Rank
Newbie

Ahhh ... I am sorry for my mistake.
I tried this demo twice only. But I must have forgotten to add "-24" in the 2nd test.
There are too many replys in a day. 😵
Later on, I found that boot to real DOS can solve this problem.
Set cycles to about 30000 and don't press "Alt-F12" when running it.
"Toontown -24" works.

Reply 33 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie
coolhaken wrote:

Later on, I found that boot to real DOS can solve this problem.

On real hardware? What machine, what graphics card?

coolhaken wrote:

Set cycles to about 30000 and don't press "Alt-F12" when running it.
"Toontown -24" works.

Does not work for me.

...find some video captures of old DOS demos here...

Reply 34 of 41, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
coolhaken wrote:

Later on, I found that boot to real DOS can solve this problem.
Set cycles to about 30000 and don't press "Alt-F12" when running it.
"Toontown -24" works.

I assure you that booting DOS is not going to make 24-bit color modes magically appear in DOSBox's S3/VESA implementation...

FYI, the demo will ignore the -24 switch if it doesn't find VESA 2.0, and you will know this because it does not say "Using VESA 2.0 TrueColor mode" at startup and instead suggests that you can use the -24 switch, even if you did use it. You can create this condition by using a SVGA machine type other than svga_s3. The problem is not "solved" if the demo is ignoring the switch.

Reply 36 of 41, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
raer wrote:

If I'd be able to decompress it properly I could maybe make a 32bit color mode patch... :'(

A Google search for "pmwunlit" should turn up some help with that. The decompression, not the patch. 😉

Reply 37 of 41, by s3freak

User metadata
Rank Newbie
Rank
Newbie
s3freak wrote:

I recently posted my Custom S3 Trio patch a few days ago where I patched it to include 24 bit colour - I did it experimentally. Having tested this demo with the -24 parameter, the demo looped successfully and when I disabled 24-bit colour, it crashed out like raer said. I never knew that my patch would come in handy one day!

This is the demo working in my patched DOSBox. Let me know if you are interested in downloading my build and I will send it to you in a private message, provided that the boards let me do so.
http://www.youtube.com/watch?v=QCsY0wRHUh4

Link to my patch thread. Once downloaded, you can study how my patch works. It took me ages to get 24 bit colour in general (Windows 3.1, VBETest, etc.) to display properly.
VIDEO CARD Custom S3 Trio Patch (DOSBOX)

When I used UniVBE with my real S3 Trio, it enabled both 24-bit and 32-bit versions of True Colour.

My 486 is my real DOSBox, as well as my customised DOSBox!
I am not very active on VOGONS, please send a private message if you need a quicker response!

Reply 38 of 41, by raer

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote:

A Google search for "pmwunlit" should turn up some help with that. The decompression, not the patch. 😉

I can pmwunlit it, but IDA still can't diassemble it properly...

...find some video captures of old DOS demos here...

Reply 39 of 41, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

To use IDA, first make sure the version you have supports linear executables, because not all free versions do. Then you'll need to strip the linear executable portion out of the decompressed executable, because the extender portion confuses IDA. The idea is to keep everything starting from the LE header mark and discard everything before. If you're not comfortable with manually extracting the LE then there are stubbing tools like SB.EXE in the DOS32A package that will do the job for you. An LE can't be executed directly, but you can execute it with an extender (e.g. DOS4GW TOONTOWN.LE) or bind an extender to it.