|  | Specifically, it's about the video_clearscreen() function. In terms of a double-buffered modern graphics setup, what exactly would it clear? Does it clear the render buffer, both framebuffers, or only the next framebuffer?
This problem applies to the Wii and OpenGL video backends for OpenBOR. I've looked in the BOR source code, but my search quickly led to some x86 assembly dealing with VGA monitors, which I don't care to decode. |
|
| Quote |
|  | I don't know that code by heart any more, but I took a quick look for you.
As you probably already know, the video rendering in original BOR works like this:
1. The image is rendered in a buffer in main RAM (the "backbuffer" a.k.a. "virtual screen").
2. The backbuffer is copied to video RAM during the vertical retrace, making it visible on the screen.
video_clearscreen() clears video RAM, i.e. the actual screen and not the backbuffer (although in BOR the backbuffer is stored in a structure called "s_screen" which may be considered a bit of a misnomer). This is evident from the C code, by the way, so you didn't need to look at the ASM code at all to figure it out.
Since the Wii's "modern" setup uses almost the exact same method to render its images (rendered in the embedded frame buffer, then copied to the external frame buffer) you should be able to apply the same functionality quite easily. |
|
| Quote |
|  | | 13 Sep 2010 21:52 / last edited 13 Sep 2010 22:01 | |
I don't know that code by heart any more, but I took a quick look for you.
As you probably already know, the video rendering in original BOR works like this:
1. The image is rendered in a buffer in main RAM (the "backbuffer" a.k.a. "virtual screen").
2. The backbuffer is copied to video RAM during the vertical retrace, making it visible on the screen.
video_clearscreen() clears video RAM, i.e. the actual screen and not the backbuffer (although in BOR the backbuffer is stored in a structure called "s_screen" which may be considered a bit of a misnomer). This is evident from the C code, by the way, so you didn't need to look at the ASM code at all to figure it out.
Since the Wii's "modern" setup uses almost the exact same method to render its images (rendered in the embedded frame buffer, then copied to the external frame buffer) you should be able to apply the same functionality quite easily. |
OK, that makes sense...so I'd only need to clear the external frame buffer that will be used next on the Wii, and the next framebuffer in OpenGL.
Unfortunately, rendering on the Wii with libogc is not that simple - the s_screen has to be swizzled and copied to texture memory, then the texture is rendered onto the embedded frame buffer, then the embedded frame buffer is copied to one of two external frame buffers, a pointer to which is passed to libogc so that it knows which frame buffer to send to the TV.
But that's already implemented. I just wasn't sure what video_clearscreen() meant. Although it is interesting to find out that the s_screen structure was originally a backbuffer copied directly to video RAM. |
|
| Quote |
|  | Hello I was wondering if its possible to make a Fighter using the Beats of Rage Mod?
Something like Street Fighter, King of Fighters and/or Guilty Gear?
I am interested in attempting to make one.
Thanks in Advance. |
|
| Quote |
|  | That's possible but you need to use OpenBoR cause there are so many required 1vs1 features which could be made with OpenBoR. |
|
| Quote |
|  | OK Thanks Bloodbane
Also I completely forgot about OpenBoR I will use that then.
Thanks Again. |
|
| Quote |
|  | Sorry for double post but a quick question?
Which version(s) is best for using OpenBoR for DreamCast and Psp?
Thanks Again. |
|
| Quote |
|  | Stick with whatever the latest build is, but don't use build 2851!
Also, does your question have anything to do with the original topic of this thread? |
|
| Quote |