PDA

View Full Version : Figuring out that damn framebuffer emulation stuffs in Jabo's 1.5



nephalim
July 5th, 2003, 21:53
OK, there are several Framebuffer options. Here they are, as well as what I understand them to mean. I am not sure of ALOT of this so this is FAR from the word of god. I am making this topic #1 to help those who don't understand these options, and #2 so that more advanced folks can try and decipher the mystery surrounding Jabo's Super-Fast Framebuffer Emulation that rarely works as fast with other programs.

#1 - Emulate Primary - Turns on basic framebuffer emulation (it allows the game to read from VRAM.) Required for everything but emulate clear (I think, about the emulate clear.) Supposedly has a "big performance impact," but nothing i've noticed on my new M9 :)

#2 - Update Less Frequently - Self Expainatory. Updates *very* infrequently, making it almost useless in most cases.

#3 - Use low-resolution updates - Also self explainatory. It is a noticable drop in performance, as the framebuffer reads give you an un-filtered image, which really suck (*in my setup, at least*)

On my GFX card, simply turning on "Emulate Primary" allows for full framebuffer emulation in the one game I tested it on, Majora's Mask (Self-Rendered Textures *is* required for just about every framebuffer use there is in that game.) The Camera works, the subscreen background works, no problems.

Onto the Rom Settings Page (the first 3 were at the bottom of the advanced page)

#4 - Self-Rendered Textures - From PJ64's help file - "Some games use a temporary buffer (not part of the rendering queue) into which they render a scene to later use in the game, a classic example is the picture of link on the ZeldaOoT subscreen. This can be achieved with very little performance hit hence it is enabled where we know it is used. Do not enable it unless needed, it's a waste of resources and could cause problems with some games."

In MM, this is required for the Camera & the background! So it's used quite often I would imagine. No performance hit from this option on my setup.

#5 - Primary Buffer Textures - From PJ64's help file - "Some games use the screen itself as a texture within the game. A classic example is the board ("jumbotron?") above the bridge in the first level of Mario Kart 64. This has a very serious performance impact, due to PC architecture (data must be copied from video card back into system memory every frame) hence it's checked here when a game uses it however the user must enabled primary buffer emulation via the advanced tab (which also offers possible performance enhancement options)."

This is self-explainatory - It forces every frame to be copied from VRAM. This *does* cause a large performance impact on my M9 (it about halves the speed, from 59 or so fps to 27 or so fps.) However, it doesn't exactly make sense to me. If this copies every frame, what does emulate primary do? Every 20th frame maybe? I guess this just allows, in laymens terms, for motion in the framebuffer. This might be the answer to how Jabo's works so well. It copies only enough frames to allow for non-moving framebuffer imaging, which it doesn't exactly spell out for you :) That's the best guess I can make.
NOTE/EDIT: I think the reason for the major slowdown on my machine using this setting is due to my machine's architecture, not the M9 (Radeon 9000.) I have a standard Intel 815e P3 mobo with only 100mhz RAM. If I had RDRAM or DDR, and a faster bus, I think it would make a big difference.

Finally, #6 - Emulate Clear - From PJ64's help file - "Some games use low level framebuffer clears for special effects. A classic example is the lens flare from the sun in Zelda. Some uses of emulate are quite subtle, it's possible that there were missed in the RDB. Emulate clear can cause problems with compatibility so should only be enabled when needed, however the performance hit is very minor."

This is a necessary option for some games, and causes almost no performance hit, so it should be set on in those cases.

This doesn't explain why self-rendered (framebuffer) textures makes a difference for the lens of truth, probably just a simple bug.

And that's that. Hope this will lead to some more intelligent discussion.