mirror of
https://github.com/extremscorner/not64.git
synced 2024-05-15 02:29:42 -04:00
Added invalid characters substitution from Wii64.
Fixed primitive depth source.
This commit is contained in:
parent
1c519b2c0f
commit
f2bd1b0084
|
@ -794,9 +794,9 @@ void OGL_UpdateStates()
|
|||
glDisable( GL_POLYGON_STIPPLE );*/
|
||||
|
||||
if (gDP.otherMode.depthSource == G_ZS_PRIM)
|
||||
GX_SetZTexture(GX_ZT_REPLACE,GX_TF_Z16,0);
|
||||
GX_SetZTexture(GX_ZT_REPLACE,GX_TF_Z24X8,gDP.primDepth.z*GX_MAX_Z24);
|
||||
else
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0);
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
}
|
||||
#endif // __GX__
|
||||
|
||||
|
@ -1950,9 +1950,8 @@ void OGL_GXinitDlist()
|
|||
OGL.enable2xSaI = glN64_use2xSaiTextures;
|
||||
OGL.forceBilinear = glN64_use2xSaiTextures;
|
||||
|
||||
// init primeDepthZtex, Ztexture, AlphaCompare, and Texture Clamping
|
||||
TextureCache_UpdatePrimDepthZtex( 1.0f );
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0); //GX_ZT_DISABLE or GX_ZT_REPLACE; set in gDP.cpp
|
||||
// init Ztexture, AlphaCompare, and Texture Clamping
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
OGL.GXuseAlphaCompare = false;
|
||||
GX_SetZCompLoc(GX_TRUE); // Do Z-compare before texturing.
|
||||
OGL.GXrenderTexRect = false;
|
||||
|
@ -2027,7 +2026,7 @@ void OGL_GXclearEFB()
|
|||
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
|
||||
GX_SetTevOrder (GX_TEVSTAGE0, GX_TEXMAP_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||
GX_SetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_CLEAR);
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0); //GX_ZT_DISABLE or GX_ZT_REPLACE; set in gDP.cpp
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
GX_SetZCompLoc(GX_TRUE); // Do Z-compare before texturing.
|
||||
GX_SetAlphaCompare(GX_ALWAYS,0,GX_AOP_AND,GX_ALWAYS,0);
|
||||
GX_SetFog(GX_FOG_NONE,0.1,1.0,0.0,1.0,(GXColor){0,0,0,255});
|
||||
|
|
|
@ -168,6 +168,7 @@ void Init_TEV_combine() //Called at Combiner Init
|
|||
//Load dummy tex for first 2 textures. Maybe should for 2 more for Noise/FB textures.
|
||||
TextureCache_ActivateDummy( 0 );
|
||||
TextureCache_ActivateDummy( 1 );
|
||||
TextureCache_ActivateDummy( 2 );
|
||||
|
||||
/*
|
||||
if ((OGL.ARB_texture_env_crossbar) || (OGL.NV_texture_env_combine4) || (OGL.ATIX_texture_env_route))
|
||||
|
|
|
@ -470,33 +470,15 @@ void TextureCache_Init()
|
|||
// cache.dummy->GXtexture = (u16*) memalign(32,cache.dummy->textureBytes);
|
||||
cache.dummy->GXtexture = (u16*) __lwp_heap_allocate(GXtexCache,cache.dummy->textureBytes);
|
||||
cache.dummy->GXtexfmt = GX_TF_RGBA8;
|
||||
for (int i = 0; i<16; i+=4)
|
||||
{
|
||||
((u32*)cache.dummy->GXtexture)[i ] = (u32) 0x0000FFFF; //alternate white/black pixels
|
||||
((u32*)cache.dummy->GXtexture)[i+1] = (u32) 0x0000FFFF;
|
||||
((u32*)cache.dummy->GXtexture)[i+2] = (u32) 0xFFFF0000;
|
||||
((u32*)cache.dummy->GXtexture)[i+3] = (u32) 0xFFFF0000;
|
||||
}
|
||||
DCZeroRange(cache.dummy->GXtexture, cache.dummy->textureBytes);
|
||||
DCFlushRange(cache.dummy->GXtexture, cache.dummy->textureBytes);
|
||||
|
||||
//Init GXprimDepthZ textures
|
||||
cache.GXprimDepthZ[0] = (CachedTexture*)malloc( sizeof( CachedTexture ) );
|
||||
cache.GXprimDepthZ[1] = (CachedTexture*)malloc( sizeof( CachedTexture ) );
|
||||
cache.GXprimDepthZ[0]->textureBytes = 32;
|
||||
cache.GXprimDepthZ[1]->textureBytes = 32;
|
||||
cache.GXprimDepthZ[0]->GXtexture = (u16*)memalign(32,cache.GXprimDepthZ[0]->textureBytes);
|
||||
cache.GXprimDepthZ[1]->GXtexture = (u16*)memalign(32,cache.GXprimDepthZ[1]->textureBytes);
|
||||
memset( cache.GXprimDepthZ[0]->GXtexture, 0x00, cache.GXprimDepthZ[0]->textureBytes);
|
||||
memset( cache.GXprimDepthZ[1]->GXtexture, 0x00, cache.GXprimDepthZ[1]->textureBytes);
|
||||
cache.cachedBytes += cache.GXprimDepthZ[0]->textureBytes;
|
||||
cache.cachedBytes += cache.GXprimDepthZ[1]->textureBytes;
|
||||
|
||||
#endif // __GX__
|
||||
|
||||
cache.cachedBytes = cache.dummy->textureBytes;
|
||||
|
||||
TextureCache_ActivateDummy( 0 );
|
||||
TextureCache_ActivateDummy( 1 );
|
||||
TextureCache_ActivateDummy( 2 );
|
||||
}
|
||||
|
||||
BOOL TextureCache_Verify()
|
||||
|
@ -675,16 +657,6 @@ void TextureCache_Destroy()
|
|||
// glDeleteTextures( 1, &cache.glDummyName );
|
||||
#else // !__GX__
|
||||
//For now we're not using Noise textures.
|
||||
|
||||
//De-Init GXprimDepthZ textures
|
||||
cache.cachedBytes -= cache.GXprimDepthZ[0]->textureBytes;
|
||||
cache.cachedBytes -= cache.GXprimDepthZ[1]->textureBytes;
|
||||
if( cache.GXprimDepthZ[0]->GXtexture != NULL )
|
||||
free(cache.GXprimDepthZ[0]->GXtexture);
|
||||
if( cache.GXprimDepthZ[1]->GXtexture != NULL )
|
||||
free(cache.GXprimDepthZ[1]->GXtexture);
|
||||
free( cache.GXprimDepthZ[0] );
|
||||
free( cache.GXprimDepthZ[1] );
|
||||
#endif // __GX__
|
||||
|
||||
cache.top = NULL;
|
||||
|
@ -1923,26 +1895,4 @@ void TextureCache_FreeNextTexture()
|
|||
FrameBuffer_RemoveBottom();
|
||||
}
|
||||
}
|
||||
|
||||
void TextureCache_UpdatePrimDepthZtex( f32 z )
|
||||
{
|
||||
//This function sets a Ztex to gDP.primDepth.z which is in the range [0,1]
|
||||
//Called from gDPSetPrimDepth()
|
||||
|
||||
// Let GX finish with all previous commands before loading the new tex
|
||||
// TODO: Work around this with tokens.
|
||||
GX_DrawDone();
|
||||
|
||||
u16 primDepthval = GXcastf32u16(z);
|
||||
for (int i = 0; i < 16; i++)
|
||||
cache.GXprimDepthZ[0]->GXtexture[i] = primDepthval;
|
||||
if(cache.GXprimDepthZ[0]->GXtexture != NULL)
|
||||
{
|
||||
DCFlushRange(cache.GXprimDepthZ[0]->GXtexture, cache.GXprimDepthZ[0]->textureBytes);
|
||||
GX_InitTexObj(&cache.GXprimDepthZ[0]->GXtex, cache.GXprimDepthZ[0]->GXtexture, (u16) 4, (u16) 4, GX_TF_Z16,
|
||||
GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GX_LoadTexObj(&cache.GXprimDepthZ[0]->GXtex, GX_TEXMAP2);
|
||||
}
|
||||
cache.GXprimDepthCnt++;
|
||||
}
|
||||
#endif // __GX__
|
||||
|
|
|
@ -78,7 +78,6 @@ struct TextureCache
|
|||
u32 enable2xSaI, bitDepth;
|
||||
#ifdef __GX__
|
||||
int VIcount;
|
||||
CachedTexture *(GXprimDepthZ[2]);
|
||||
u32 GXprimDepthCnt,GXZTexPrimCnt,GXnoZTexPrimCnt;
|
||||
#endif // __GX__
|
||||
};
|
||||
|
@ -130,7 +129,6 @@ void TextureCache_ActivateDummy( u32 t );
|
|||
BOOL TextureCache_Verify();
|
||||
#ifdef __GX__
|
||||
void TextureCache_FreeNextTexture();
|
||||
void TextureCache_UpdatePrimDepthZtex( f32 z );
|
||||
#endif // __GX__
|
||||
|
||||
#endif
|
||||
|
|
|
@ -285,7 +285,7 @@ void VI_GX_showLoadIcon()
|
|||
GX_SetAlphaUpdate(GX_ENABLE);
|
||||
GX_SetDstAlpha(GX_DISABLE, 0xFF);
|
||||
GX_SetZMode(GX_DISABLE,GX_ALWAYS,GX_FALSE);
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0); //GX_ZT_DISABLE or GX_ZT_REPLACE; set in gDP.cpp
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
GX_SetZCompLoc(GX_TRUE); // Do Z-compare before texturing.
|
||||
//set cull mode
|
||||
GX_SetCullMode (GX_CULL_NONE);
|
||||
|
@ -351,7 +351,7 @@ void VI_GX_showLoadIcon()
|
|||
GX_SetAlphaUpdate(GX_ENABLE);
|
||||
GX_SetDstAlpha(GX_DISABLE, 0xFF);
|
||||
GX_SetZMode(GX_DISABLE,GX_ALWAYS,GX_FALSE);
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0); //GX_ZT_DISABLE or GX_ZT_REPLACE; set in gDP.cpp
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
GX_SetZCompLoc(GX_TRUE); // Do Z-compare before texturing.
|
||||
//set cull mode
|
||||
GX_SetCullMode (GX_CULL_NONE);
|
||||
|
|
|
@ -82,15 +82,16 @@ void gDPSetOtherMode( u32 mode0, u32 mode1 )
|
|||
|
||||
void gDPSetPrimDepth( u16 z, u16 dz )
|
||||
{
|
||||
gDP.primDepth.z = min( 1.0f, max( 0.0f, (_FIXED2FLOAT( z, 15 ) - gSP.viewport.vtrans[2]) / gSP.viewport.vscale[2] ) );
|
||||
gDP.primDepth.deltaZ = dz;
|
||||
gDP.primDepth.z = _FIXED2FLOAT( _SHIFTR( z, 0, 15 ), 15 );
|
||||
gDP.primDepth.deltaZ = _FIXED2FLOAT( _SHIFTR( dz, 0, 15 ), 15 );
|
||||
|
||||
#ifdef __GX__
|
||||
gDP.changed |= CHANGED_RENDERMODE;
|
||||
|
||||
#ifdef SHOW_DEBUG
|
||||
sprintf(txtbuffer,"gDP: Setting PrimDepth to %f", gDP.primDepth.z);
|
||||
DEBUG_print(txtbuffer,DBG_RSPINFO1);
|
||||
#endif
|
||||
TextureCache_UpdatePrimDepthZtex(gDP.primDepth.z);
|
||||
#endif //__GX__
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -230,11 +231,6 @@ void gDPSetDepthSource( u32 source )
|
|||
|
||||
#ifdef __GX__
|
||||
gDP.changed |= CHANGED_RENDERMODE;
|
||||
|
||||
/* if (gDP.otherMode.depthSource == G_ZS_PRIM)
|
||||
GX_SetZTexture(GX_ZT_REPLACE,GX_TF_Z16,0);
|
||||
else
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0);*/
|
||||
#endif // __GX__
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -220,7 +220,7 @@ void Graphics::init()
|
|||
void Graphics::drawInit()
|
||||
{
|
||||
// Reset various parameters from gfx plugin
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z16,0); //GX_ZT_DISABLE or GX_ZT_REPLACE; set in gDP.cpp
|
||||
GX_SetZTexture(GX_ZT_DISABLE,GX_TF_Z8,0);
|
||||
GX_SetZCompLoc(GX_TRUE); // Do Z-compare before texturing.
|
||||
GX_SetFog(GX_FOG_NONE,0,1,0,1,(GXColor){0,0,0,255});
|
||||
GX_SetViewport(0,0,vmode->fbWidth,vmode->efbHeight,0,1);
|
||||
|
|
|
@ -75,6 +75,14 @@ void byte_swap(char* buffer, unsigned int length)
|
|||
}
|
||||
}
|
||||
|
||||
void stripInvalidChars(char* str)
|
||||
{
|
||||
char* p;
|
||||
|
||||
while ((p = strpbrk(str, "\\/:*?\"<>|")) != NULL)
|
||||
*p = '_';
|
||||
}
|
||||
|
||||
static struct {
|
||||
int Cartridge_ID;
|
||||
char* Country_codes;
|
||||
|
@ -150,6 +158,8 @@ int rom_read(fileBrowser_file* file){
|
|||
break;
|
||||
}
|
||||
}
|
||||
// Replace any non file system compliant chars with underscores
|
||||
stripInvalidChars(&ROM_SETTINGS.goodname[0]);
|
||||
// Fix save type for certain special sized (16kbit) eeprom games
|
||||
ROM_SETTINGS.isEEPROM16k = isEEPROM16k();
|
||||
|
||||
|
|
Loading…
Reference in a new issue