What's new

Curious about texturing feature...

Tagrineth

Dragony thingy
In some ePSXe graphics plugins there's a texture enhancement feature which scales the textures up using a 2x2 2xSaI filter before uploading... and in-game it looks absolutely fantastic.

How feasible would such a pre-filter be for an N64 graphics plugin?

I know that N64 has a limited texture cache (what, something like 4kb, down to 2kb with trilinear?) which could be problematic for enhanced emulation - does the cache have to be simulated perfectly? - but couldn't that be worked around to facilitate use of such a kickass pre-filter?
 

Cyberman

Moderator
Moderator
Well I am sure it can be done, you are only emulating the texture system on the N64 with the plugin. The texture cache is a bit of hardware in the N64.. the texture cache refered to in Pete's plugin is a secondary emulation trick to increase the texture resolution. Translation, sure it's doable, might require some playing with or ignoring the existing texture cache in the emulated hardware.

Cyb
 

Doomulation

?????????????????????????
I wonder if you can just apply these effects before rendering the gfx? I'm not a genius on this but, it renders what's in the texture cache?
 
OP
Tagrineth

Tagrineth

Dragony thingy
Doomulation said:
I wonder if you can just apply these effects before rendering the gfx? I'm not a genius on this but, it renders what's in the texture cache?

The N64 hardware can only apply textures that fit in the cache... so if you made a texture that was 5kb (or 3kb if you're using Trilinear), the hardware would be incapable of applying it to anything.

I don't know how the video plugins simulate the presence of this cache, which is why I was wondering if such a feature was possible.

All the plugin has to do for PSX is grab the textures and scale them up before uploading them to the video card :)
 

Cyberman

Moderator
Moderator
Well all this is assuming the plugins work identically to the N64 hardware. The PSX plugins don't necessarily just scale up the textures either. Pete's for example has this as an option. They scale the end coordinates for the polygons. Implement caching of the textures of there own.. etc.

The texture in the N64's texture cache can be 'cached' and scaled internally in the graphics card for example. There are a lot of things possible but what specifically happens in the plugin.. ehhh no idea.. I suppose I could monkey with a GL one but seeing as everyone and there friend is dabbling in them I didn't see the need.

Cyb
 

Gugaman

New member
yes it is possible to do, glide64 gets the texture from the rom, convert it to glide format, and load it into the video card memory, it is possible to modify the texture before it is loaded... but i dont hell know anything about this effects :)
 
OP
Tagrineth

Tagrineth

Dragony thingy
Doomulation said:
Perhaps if you checked a freeware emulator like Snes9X? They have similar effects.

Emulators for 2D consoles can do it very easily just by filtering the frame buffer before output.

I was only wondering if it could be done for N64 because I'm not sure what the emulation does about the 4kb cache; if it's low-level emulated, or 'dummied' and ignored.

Or maybe the N64 hardware itself doesn't care, it just doesn't have texture data lines to main RAM?

I really don't know.

On PSX it's also simple because all the hardware has full access to main RAM without caring how much of it there is.
 

Orkin

d1R3c764 & g1|\|64 m4|<3R
I've actually already implemented this in glNintendo64(). The results aren't all that incredible, but there is a visible improvement (depending on the game). The problem is most textures in N64 games aren't very well suited for 2xSaI (too complex).

glN64() fully emulates the 4kb texture memory, but only up until the point where the game tries to use a texture out of it. At that point the texture is converted and stored in another texture cache that's only limited by the amount of available RAM. I just run 2xSaI as part of the conversion process, it works great. I did have to modify the 2xSaI algorithm a bit (to support 32-bit and texture wrapping), but the whole thing was actually suprisingly easy to implement.

Orkin
 

Cyberman

Moderator
Moderator
Orkin YOU LIVE! ;)

Anyhow.. that's what I would assume. The textures used in the N64 system are limited by the fact they weren't designed to be scaled and filtered. This is the identical problem people have with the PSX system (and it's associated games).

Does the N64's RDP support sub pixel alignment? That seems to be the biggest problem with PSX plugins is that the GTE did not support sub pixel alignment (if you rotate something you will have problems like this).

What happens integer wise is this.

Original screen 320x224 <FF8 for example>
New screen 1024x768.
because of no subpixel alignment in the GTE or at the GPU level it's really hard to scale something to a new screen size and not have gaps and openings show in the game. especially in 2d/3d games like FF8 FF7 etc.

Cyb
 

Top