Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: GraphicMotor without OpenGl and DirectX

  1. #1

    GraphicMotor without OpenGl and DirectX

    Greetings Everyone.
    Me and my friend here in Hungary are trying to make a game in TURBO pascal and assembly. The game would run in REAL mode and would use VESA resolutions 15 or 16 bit depth. But the problem is that we would NOT like to use Direct-X or OpenGL, we would like to make our own engine. I started to make the motor which enables us the use of basic functions and procedures like Putpixel, Line, Doublebuffering and so on. I have one trouble with it that I cannot use all the functions of VESA. I have an Ati Radeon 9600 XT videocard and my friend has an Nvidia Geforce ( do not know which version ) card and some VESA features are enabled on my card ( 4f07h function of int 10h ), which are disabled for his videocard. Or it is the opposite thing for 4f06h. I would like some help on how to make a simple graphic motorwhich works in both videocards.
    ( the main trouble is half of the VESA functions are not aviable in each others videocard, so we cannot make a code which puts a pixel on every type of videocards )
    Thanks in advance for any comments.

    ?údv??zlet Mindenkinek!
    ?ân ?©s a bar?°tom egy saj?°t VAL?ìS m??d?? VESA 15-16 bites grafikai felbont?°sokat kezelni tud?? kis grafikai motort ??rn?°nk- azt?°n azzal egy saj?°t j?°t?©kot. A Direct-X et ?©s OpenGL-t nem haszn?°ln?°nk, Turbo Pascalban ?©s Assemblyben ??rn?°nk a motort. A probl?©ma az, hogy a nem mindegyik videok?°rty?°n m?ªk??dik a programunk. Pl a VESA 4f07 elj?°r?°sa ( int 10h ) az ?©n Ati Radeon 9600XT k?°rty?°mon meg, az ?µ Geforce k?°rty?°j?°n meg nem t?°mogatott. Ez a 4f06h-n?°l pl meg pont ford??tva. Ja ?©s n?°la 800*600-n?°l nagyobb felbont?°st nem is tud aktiv?°lni, pedig engedn?© az 1600*1280-t is. A motorba eredetileg egy putpixelt egy line elj?°r?°st ?©s k?©pmem??ri?°n bel?ºli ozg?°st tervezt?ºnk, de ha nekem m?ªk??dik, akkor neki nem. Ha valaki tud erre valami megold?°st, akkor az k?©rem jelezze nekem.
    ( sz??val a probl?©ma az, hogy m?©g egy pontot se tudunk kirakni, mert a szabv?°ny megengedi, hogy ne mindegyik funkci?? legyen t?°mogatott )
    K??sz??net mindenkinek el?µre a hozz?°sz??l?°sok?©rt.
    Lalli

  2. #2

    GraphicMotor without OpenGl and DirectX

    You are not trying this on any NTish Windows (NT, 2k, XP, 2003, Vista), are you?

  3. #3

    Re: GraphicMotor without OpenGl and DirectX

    Quote Originally Posted by Lalli
    I would like some help on how to make a simple graphic motorwhich works in both videocards.
    http://www.vesa.org/public/VBE/vbe3.pdf

    Check page 17 of that document, it tell's you how to detect which functions are supported.

  4. #4

    GraphicMotor without OpenGl and DirectX

    Crono, vbe3 is not good to use as it still is almost unsupported on many newer cards even of the new generations.

    Are you sure you know what you are doing. According to Ralf Brown's interrupt list, function 4f06 is get/set logical scanline length and 4f07 is also something with scanlines. Sounds rather funky to me. Are you sure this is what you want. Those commands should be well supported either way as they are part of the VBE 1.1 specification.

    Try to show us some code
    Peregrinus, expectavi pedes meos in cymbalis
    Nullus norvegicorum sole urinat

  5. #5

    GraphicMotor without OpenGl and DirectX

    From brazil (:

    Pascal pownz!

  6. #6

    GraphicMotor without OpenGl and DirectX

    Quote Originally Posted by arthurprs
    He states that he's using realmode, aka 286, 16bit mode
    Peregrinus, expectavi pedes meos in cymbalis
    Nullus norvegicorum sole urinat

  7. #7

    GraphicMotor without OpenGl and DirectX

    Quote Originally Posted by JSoftware
    Quote Originally Posted by arthurprs
    He states that he's using realmode, aka 286, 16bit mode
    uhm, whats that ops: ?
    From brazil (:

    Pascal pownz!

  8. #8

    GraphicMotor without OpenGl and DirectX

    Quote Originally Posted by JSoftware
    Crono, vbe3 is not good to use as it still is almost unsupported on many newer cards even of the new generations.
    That function support result is compatible with each version of VESA SVGA. Take a look at this documentation from 1991:

    Super VGA BIOS Extension
    Standard #VS911022
    October 22, 1991
    Document Version 1.0
    VBE Version 1.2

    ...

    6.1 Status Information

    Every function returns status information in the AX register. The format of the status word is as follows:

    AL == 4Fh: Function is supported
    Al != 4Fh: Function is not supported
    AH == 00h: Function call successful
    AH == 01h: Function call failed
    If it helps I wrote a SVBE unit in Turbo Pascal back in the 90's, it's mostly in assembler:

    http://www.geocities.com/todo_simple...amas/usvbe.zip

    Quote Originally Posted by arthurprs
    Quote Originally Posted by JSoftware
    Quote Originally Posted by arthurprs
    He states that he's using realmode, aka 286, 16bit mode
    uhm, whats that ops: ?
    Real mode is the memory addressing mode used in DOS. The memory was segmented, and segments overlaped, it was a headache. Fortunately today we have another mode called flat mode, where memory is continuous.

  9. #9

    GraphicMotor without OpenGl and DirectX

    First of all, thanks for all the replies.
    Hell yeah. We are trying to make this on XP, but we tried it in dos too, but its the same.
    The main problem is that on my friends videocard ( nvidia geforce 6800 ) we cannot put even a pixel out in higher VESA resolutions than 640*480.
    The simplest code we tried was this and it did not work of course ( on his pc ):
    [pascal]
    asm
    mov ax,4f02h
    mov bx,11bh
    int 10h
    mov ax,0a000h
    mov es,ax
    mov cx,32768
    xor di,di
    mov ax,0ffffh
    rep stosw
    end;
    [/pascal]
    But it still does not work. He has a blind screen.
    --------
    But my other problem is that the way cronodragon mentioned is a bit slow. Gonna post the unit in the next post.
    Lalli

  10. #10

    GraphicMotor without OpenGl and DirectX

    First of all, thanks for all the replies.
    Hell yeah. We are trying to make this on XP, but we tried it in dos too, but its the same.
    The main problem is that on my friends videocard ( nvidia geforce 6800 ) we cannot put even a pixel out in higher VESA resolutions than 640*480.
    The simplest code we tried was this and it did not work of course ( on his pc ):
    [pascal]
    asm
    mov ax,4f02h
    mov bx,11bh
    int 10h
    mov ax,0a000h
    mov es,ax
    mov cx,32768
    xor di,di
    mov ax,0ffffh
    rep stosw
    end;
    [/pascal]
    But it still does not work. He has a blind screen.
    --------
    But my other problem is that the way cronodragon mentioned is a bit slow. Gonna post the unit in the next post.
    Lalli

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •