Ridge Racer 4 Pandora?


Tinnus said:
OK, but then any way to give pointers to OpenGL? For example, will glTexImage2D always copy the image data somewhere or will it only use the pointer (ie: I can call glTexImage2D every frame to change texture pointers/data around in realtime)?

Will the mmap'ed pointer to /dev/fb0 be the same framebuffer with the data the GPU writes?
OpenGL normally copies the data, but I can't say for sure on the omap, as I don't have any OGL libraries.

Tinnus said:
Would I be able to set the framebuffer pointer manually?
Yes, but it's strongly recommended that you don't. Instead you should allocate memory for your secondary/tertiary frame buffer, and copy that one to the first at each vblank rather than altering the frame buffer pointer.
 
Last edited by a moderator:
Squidge said:
Tinnus said:
Would I be able to set the framebuffer pointer manually?
Yes, but it's strongly recommended that you don't. Instead you should allocate memory for your secondary/tertiary frame buffer, and copy that one to the first at each vblank rather than altering the frame buffer pointer.
Do you know why it's recommended not to play with it? To avoid other applications to be confused?

As I wrote somewhere else I am a bit concerned by the interconnect being quite busy, and having to copy might be bad.

Did you do some bandwidth analysis?
 
Last edited by a moderator:
Laurent said:
Do you know why it's recommended not to play with it? To avoid other applications to be confused?
Well, you need to write a driver/kernel module to modify it, and if your program crashes whilst a non-standard frame buffer is selected, it means a power cycle to get something on the display again (very user unfriendly). Kernel modules just for a frame buffer is also a bad idea as it could mean that future firmware updates (which may include newer kernels) break your application.

Laurent said:
Did you do some bandwidth analysis?
Not as such, as all current emulators render to a usual frame buffer, and then this frame buffer has to be rotated and stretched before placing it on the current LCD, meaning a simple memcpy isn't possible (the dev board LCD is 480x640, and 2D acceleration isn't yet supported).

However, if you have some code to try, feel free to send it over.
 
Last edited by a moderator:
Squidge said:
Not as such, as all current emulators render to a usual frame buffer, and then this frame buffer has to be rotated and stretched before placing it on the current LCD, meaning a simple memcpy isn't possible (the dev board LCD is 480x640, and 2D acceleration isn't yet supported).

In that case you obviously have to copy :D

QUOTE
However, if you have some code to try, feel free to send it over.

I have nothing specific, but would be glad to see relevant parts of lmbench.
Here is a link: http://lmbench.sourceforge.net/
 
Last edited by a moderator:
In these shots, the textures are filtered with Scale2x. In the final version, I'll probably use HQ2X/LQ2X since it does look better, or maybe make it an option.
 
A quick sugestion for rendering 4x3 images on the 800x480 lcd:
Some SoftDVD player (PowerDVD, I believe) used a method to play 4x3 video on 16x9 screens that was very effective...

At the centre of the screen every scanline was rendered. At the edges the image was compressed. The change in compression was interpolated from the centre to the edges. This method was very effective since not much distortion was noticed because the viewer focuses his/her attention mostly in the centre of the screen.

A good analogy is the image wrapped around a cylinder and that cylinder projected onto the screen.

I hope I can make myself understood and I hope this method can be used in rendering (maybe one of different options) 4x3 output on the 800x480 screen.

Thanks for all your work, it's shaping up nicely.

Regards.
 
Schprlock said:
A quick sugestion for rendering 4x3 images on the 800x480 lcd:
Some SoftDVD player (PowerDVD, I believe) used a method to play 4x3 video on 16x9 screens that was very effective...

At the centre of the screen every scanline was rendered. At the edges the image was compressed. The change in compression was interpolated from the centre to the edges. This method was very effective since not much distortion was noticed because the viewer focuses his/her attention mostly in the centre of the screen.

A good analogy is the image wrapped around a cylinder and that cylinder projected onto the screen.

I hope I can make myself understood and I hope this method can be used in rendering (maybe one of different options) 4x3 output on the 800x480 screen.

Thanks for all your work, it's shaping up nicely.

Regards.
I've seen this used on TNTHD (A US cable channel) to go from NTSC to HD. It looks okay until the shot moves then it looks really weird/fisheye. I hate it but as long it's an option you can turn off it'd be cool.
 
Last edited by a moderator:
Another method is one that mythtv uses, which is to stretch a little, and zoom a little. This way, things look mostly the correct, you aren't losing too much on the top and bottom, and it fills the screen.

I would like the option to keep the original ratio if something like this were implemented.
 
I little bored as of now, so here are some ideas about aspect ratio:
ridge640ce7.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 640x480
Shown aspect ratio: 4:3
Shown resolution: 640x480 with bands

ridge640menunn3.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 640x480
Shown aspect ratio: 4:3
Shown resolution: 640x480 with emulator menu on the left.

ridge720qu5.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 720x540
Shown aspect ratio: 3:2
Shown resolution: 720x480 zoomed with bands.

ridge800jk3.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 800x600
Shown aspect ratio: 5:3
Shown resolution: 800x480 zoomed.

ridge720stretchef0.th.png
Rendering aspect ratio: 3:2
Rendering resolution: 720x480
Shown aspect ratio: 3:2
Shown resolution: 720x480 stretched with bands.

ridge800stretchtv7.th.png
Rendering aspect ratio: 5:3
Rendering resolution: 800x480
Shown aspect ratio: 5:3
Shown resolution: 800x480 stretched.

I really like the 3:2 720x480 non-stretched mode (third image). It mantains the correct aspect ratio, uses almost the entire screen and doesn't lose to much screen on the top/bottom.

The 720x480 stretched mode (the second last image) is also a good compromise if you need to see the entire screen without excesively distorting the image.

EDIT: Images replaced by thumbnails to save bandwidth.
 
CoMiKe said:
ridge800stretchtv7.png

Rendering aspect ratio: 5:3
Rendering resolution: 800x480
Shown aspect ratio: 5:3
Shown resolution: 800x480 stretched.

I really like the 3:2 720x480 non-stretched mode (third image). It mantains the correct aspect ratio, uses almost the entire screen and doesn't lose to much screen on the top/bottom.

The 720x480 stretched mode (the second last image) is also a good compromise if you need to see the entire screen without excesively distorting the image.
I guess I'm really lucky as I don't seem that sensitive to aspect ratios. If I'm watching something in 4:3 on a 19:9 telly/monitor I'll always stretch the image as opposed to dealing with borders. I personally like to look of the stretched image, no more or less than any of the others aside from the fact it fills the screen nicely :D
 
Last edited by a moderator:
Watching TV with a stretched image to me is like nails on a chalkboard. Myth does a good job with it's 'fill' setting, but that's as much of it as I can take.

In a game, it would probably depend on the game, so I might cycle through the settings for each different game.
 
And here is my contribution (keep in mind that most of the action on ridge racer happens in the bottom of the screen and is not centered. It would look even better on other games, especially side-scrollers).

I had some time too and decided to create a couple of samples of what the "wrapping" method might look like:

ridge800wrapped1rv4.png


and

ridge800wrapped2vu1.png


I personally don't like wrong aspect ratios at all. My TV crops some of the 4x3 image because I do prefer it. So if I have to decide I prefer to crop or get black bars. Anyway, different options would be ideal and I would love if one of those options was the one I am suggesting. It's true there is some distortion, which would be very noticeable on some games, but the aspect ration is mostly correct and there is no crop or black bars. And the Pandora should have enough power to handle it.

Look at the images and tell me what you think.
 
It also depends what the subject is squashed or stretched people or specific geometric shapes are far worse that some cars, which can look kind of cool. I find it bugs me and I would rather have the panels. For emulators I would rather have the option to put the options on one side like image 2.
 
Please, if possible, use Thumbnails. I still have a 56K modem and such huge Image bombardements are the Modem-death. ^^"""""""

By the way, I'm always for a correct 800x480 image (or 400x240 doubled) with non-stretched aspect ratio. (This means a wider field of view compared to 4:3! ) AFAIK 3D Graphic can be calculated in every aspect Ratio.
 
I like #2 the best. Depending on the future GUI of the pandora, it might make sense to reuse some objects from it. Also I think it would be nice if all upcoming emulators of 4:3-systems would find a consistant solution for this - would make ecerything seem much more integrated ;) full-widescreen should maybe still be an option, though
 
Any more screenshots coming or are we waiting for the release until we will be able to drool over some new screenshots?
 
I think the best is always play with the original aspect ratio (4:3 in psx case).

I hate to play a game with a deformed image.

Thanks for the work in this emulator Tinnus ;)

CoMiKe said:
I little bored as of now, so here are some ideas about aspect ratio:
ridge640ce7.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 640x480
Shown aspect ratio: 4:3
Shown resolution: 640x480 with bands

ridge640menunn3.th.png
Rendering aspect ratio: 4:3
Rendering resolution: 640x480
Shown aspect ratio: 4:3
Shown resolution: 640x480 with emulator menu on the left.




I think these are the best options.
 
Last edited by a moderator:
plupp said:
Any more screenshots coming or are we waiting for the release until we will be able to drool over some new screenshots?

The emulator is already running at more than full speed and we have pics and videos to prove it. The only thing they're still working on (perhaps done already?) is optimizing it a bit to run full speed at lower frequencies and a few other odds and ends. Any new screenshots would look the same as the old ones.
 
Last edited by a moderator:
Back
Top