How it works? -- The interplay of programming & electronics
Posted: Sun Jan 25, 2015 3:09 pm
Here are some questions of mine where I couldn't find an answer on the Internet. The questions are mainly 'how it actually works' questions correlated to the interplay of electronics and programming.
I hope it will be a reasonable topic for people who seek some enlightenment regarding the interplay of electronics (physics) and programming.
I also hope it suits this forum, otherwise I sincerely apologize for posting a needles and/or an unreasonable topic.
As time passes, I am intending to post more 'how it works' questions in here, if everything is fine w/ that. I hope there are also some curious folks out there whose intentions are overlapping with mine.
1) _Bare-metal DC GPU programming_
How to program a Dreamcast's GPU w/o any libraries, only w/ a DC BBA and a computer hooked up to it? Is it possible to create 3D games with this method? I know, it is said that you shouldn't reinvent the wheel, but this measurement is intended for educational purposes…
2) _BBA hooked up to PC/notebook_
How is the DC BBA actually 'communicating' when hooked up to a PC/notebook? How does the BBA and the PC/notebook 'know' when to send or receive data, or even 'know' that there's a connection? Is there some 'coordination' going on? Which electrical component, which software does that? How do you actually get access to the DC's GPU/CPU via a DC BBA?
PS: Is a DC BBA platform independent? Can you use it w/ any machine?
3) _No public GPU documentation in general_
Why there are usually no public GPU documentations available, but public CPU documentations instead? Is there no need for it because of a CPU bottleneck (the CPU sending the instructions to the GPU, while in most consoles the instructions are fetched independently from the CPU and the GPU)? Why the manufacturers want us to program the GPU only via an API such as OpenGL & DirectX? Why they're still insisting us to use APIs in the future such as Mantle (a no CPU overhead GPU API), instead of giving us 'bare-metal' access to the hardware like in consoles?
Furthermore, let's say I would have a GPU documentation/programming model of a graphics card, would I be able to 'communicate' directly with a graphics card then? So, can I bypass the CPU bottleneck when I have a documentation?
PS: Are there any other GPUs which can be directly accessed except video game console GPUs?
4) _Programming 3D homebrew games for DC_
According to this site: http://www.boob.co.uk/tutorials/guide.html KOS is not suitable for 3D programming. So how can I program
a 3D game for DC? Revolver (a homebrew 3D game for DC): https://www.youtube.com/watch?v=YXGUIGd ... freload=10
Best,
Dan
EDIT: Question 4 is needles I guess. Blacked it out.
I hope it will be a reasonable topic for people who seek some enlightenment regarding the interplay of electronics (physics) and programming.
I also hope it suits this forum, otherwise I sincerely apologize for posting a needles and/or an unreasonable topic.
As time passes, I am intending to post more 'how it works' questions in here, if everything is fine w/ that. I hope there are also some curious folks out there whose intentions are overlapping with mine.
1) _Bare-metal DC GPU programming_
How to program a Dreamcast's GPU w/o any libraries, only w/ a DC BBA and a computer hooked up to it? Is it possible to create 3D games with this method? I know, it is said that you shouldn't reinvent the wheel, but this measurement is intended for educational purposes…
2) _BBA hooked up to PC/notebook_
How is the DC BBA actually 'communicating' when hooked up to a PC/notebook? How does the BBA and the PC/notebook 'know' when to send or receive data, or even 'know' that there's a connection? Is there some 'coordination' going on? Which electrical component, which software does that? How do you actually get access to the DC's GPU/CPU via a DC BBA?
PS: Is a DC BBA platform independent? Can you use it w/ any machine?
3) _No public GPU documentation in general_
Why there are usually no public GPU documentations available, but public CPU documentations instead? Is there no need for it because of a CPU bottleneck (the CPU sending the instructions to the GPU, while in most consoles the instructions are fetched independently from the CPU and the GPU)? Why the manufacturers want us to program the GPU only via an API such as OpenGL & DirectX? Why they're still insisting us to use APIs in the future such as Mantle (a no CPU overhead GPU API), instead of giving us 'bare-metal' access to the hardware like in consoles?
Furthermore, let's say I would have a GPU documentation/programming model of a graphics card, would I be able to 'communicate' directly with a graphics card then? So, can I bypass the CPU bottleneck when I have a documentation?
PS: Are there any other GPUs which can be directly accessed except video game console GPUs?
4) _Programming 3D homebrew games for DC_
According to this site: http://www.boob.co.uk/tutorials/guide.html KOS is not suitable for 3D programming. So how can I program
a 3D game for DC? Revolver (a homebrew 3D game for DC): https://www.youtube.com/watch?v=YXGUIGd ... freload=10
Best,
Dan
EDIT: Question 4 is needles I guess. Blacked it out.