Hi,
As any bare-to-the-metal asm code hacker will agree, we
like to go to the lowest level possible. This means coding in
assembly, but following the same philosophy means also
programming the hardware directly. Those that (like me)
had the luck to live the Vic20, C64 and Amiga eras (I made
commercial games for it, 100% asm + a programming
language created by me) miss much of that freedom on the
PC, where for commercial reasons and for lack of technical
informations (let away the extreme abundance of uncompatible
chipsets) we are "forced" to code in C++, or even Java, and to
use high level, abstract API's to program the graphics and
sounds of the computer.
Fortunately people like you, and this forum is the definitive
proof, don't like to be forced to do silly things, and here we
gained back the right to program in assembly under Winslows.
It is not reasonable, though, to program in Windows for each
graphics and sound chip out there, although I'd be very happy
to help on such a project (an "OpenSourced everybody's OS"..
and I don't mean Linux) if anybody want to endorse it.
Anyway, if we want to remain into a reasonable level, what
we can do though is to go as low level as possible, to the max
possible level where we still get "hardware independence".
So why use DirectX 8, when it is not the lowest level possible
which is "hardware independent"?
If the DirectX DLL's are not specific-chipset dependent, then
there must be an underlying layer. Be it the card's driver, be
it something else, I don't know.. and I'm here to ask it.
I can easily imagine, though, that this layer which DirectX 8
uses is not only still "hardware independent" (being all the
DirectX DLL's the same for all cards), but also considerably
less overheaded (expecially for small objects) than doing
things through DirectX, and also certainly more powerful and
versatile.. since it has to offer all the funcionality required by
all DirectX versions, present and past (and in part even future).
Does anybody know about what this underlying layer may be?
And how to call its functions? And how to get the protos of them?
Although I like to code in assembly even only for the pleasure
of it, I also (and sometimes expecially) see a practical advantage
in doing it. I'm sure that all those of you that agree with my
philosophy, will feel an advantage in skipping useless and
limiting passages if we can.
Using directly the "hardware independent" resource that
DirectX uses seems a much better idea than using DirectX to
me, a more low level idea, and the use we could do of this
increased freedom could very well make our programs a step
superior than going through the GWBASIC coded (well, nearly..
if we consider the overhead) DirectX DLL's.
So I hope this thread gets as many useful posts as possible,
and we start to explore what is behind DirectX 8, since there
must be something usable which is still 100% hardware
independent.. or even partly hardware independent, but
certainly more versatile and performant than being forced
to go through DirectX.
Greets,
Maverick
As any bare-to-the-metal asm code hacker will agree, we
like to go to the lowest level possible. This means coding in
assembly, but following the same philosophy means also
programming the hardware directly. Those that (like me)
had the luck to live the Vic20, C64 and Amiga eras (I made
commercial games for it, 100% asm + a programming
language created by me) miss much of that freedom on the
PC, where for commercial reasons and for lack of technical
informations (let away the extreme abundance of uncompatible
chipsets) we are "forced" to code in C++, or even Java, and to
use high level, abstract API's to program the graphics and
sounds of the computer.
Fortunately people like you, and this forum is the definitive
proof, don't like to be forced to do silly things, and here we
gained back the right to program in assembly under Winslows.
It is not reasonable, though, to program in Windows for each
graphics and sound chip out there, although I'd be very happy
to help on such a project (an "OpenSourced everybody's OS"..
and I don't mean Linux) if anybody want to endorse it.
Anyway, if we want to remain into a reasonable level, what
we can do though is to go as low level as possible, to the max
possible level where we still get "hardware independence".
So why use DirectX 8, when it is not the lowest level possible
which is "hardware independent"?
If the DirectX DLL's are not specific-chipset dependent, then
there must be an underlying layer. Be it the card's driver, be
it something else, I don't know.. and I'm here to ask it.
I can easily imagine, though, that this layer which DirectX 8
uses is not only still "hardware independent" (being all the
DirectX DLL's the same for all cards), but also considerably
less overheaded (expecially for small objects) than doing
things through DirectX, and also certainly more powerful and
versatile.. since it has to offer all the funcionality required by
all DirectX versions, present and past (and in part even future).
Does anybody know about what this underlying layer may be?
And how to call its functions? And how to get the protos of them?
Although I like to code in assembly even only for the pleasure
of it, I also (and sometimes expecially) see a practical advantage
in doing it. I'm sure that all those of you that agree with my
philosophy, will feel an advantage in skipping useless and
limiting passages if we can.
Using directly the "hardware independent" resource that
DirectX uses seems a much better idea than using DirectX to
me, a more low level idea, and the use we could do of this
increased freedom could very well make our programs a step
superior than going through the GWBASIC coded (well, nearly..
if we consider the overhead) DirectX DLL's.
So I hope this thread gets as many useful posts as possible,
and we start to explore what is behind DirectX 8, since there
must be something usable which is still 100% hardware
independent.. or even partly hardware independent, but
certainly more versatile and performant than being forced
to go through DirectX.
Greets,
Maverick