Commit graph

973 commits

Author SHA1 Message Date
strmnnrmn
65928a7b4f [~] Fix Draw2DTextureBlit on OSX. It's only needed on PSP and Draw2DTexture works fine for OSX. So move the logic for calling (w>=512) to RendererPSP::Draw2DTexture, and remove Draw2DTextureBlit from the BaseRenderer abstract interface.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1346 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:42:08 +00:00
strmnnrmn
b7486694f9 [~] Pass S2DEX/Sprite2D texture loads through the renderer so that it can keep track of what's loaded
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1344 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:41:51 +00:00
strmnnrmn
a9ddb29935 [~] If TextureInfo.Line isn't set, fall back to ConvertTexture
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1341 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:41:30 +00:00
strmnnrmn
be013e48ba [~] Improve an assert in GetUpdatedTextureDescriptor - print out the .left value
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1340 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:41:23 +00:00
strmnnrmn
849a797321 [~] Add an assert to ConvertTile if Line hasn't been set
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1339 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:41:17 +00:00
strmnnrmn
69cde1d3ce [~] Fix indentation in ConvertTile.cpp (there shouldn't be any functional changes)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1338 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:41:10 +00:00
strmnnrmn
c8225f941d [~] Rename ConvertGenericPalettised* to something a bit more meaningful
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1336 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:57 +00:00
strmnnrmn
cc9adb280e [*] Tidy/simplify/optimise CI texture conversion. For all dest formats we decode the palette first, which simplifies the conversion loop for the RGBA8888 case and means we can remove some duplicated code which is no longer needed.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1335 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:50 +00:00
strmnnrmn
7b79e66b00 [!] Fix crash on OSX when forcing the native texture format to RGBA 8888
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1334 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:44 +00:00
strmnnrmn
65cf2d0128 [!] Fix broken texels in the first byte of each row (e.g. mariokart) in the new accurate tmem mode
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1332 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:31 +00:00
strmnnrmn
bb7cae6784 [+] Use ConvertTile when DAEDALUS_ACCURATE_TMEM is set
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1330 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:19 +00:00
strmnnrmn
8c223d0680 [~] Fix CopyLine etc - forgot that we need to unswap the words. Should be able to improve this (copy as byteswapped, do fiddling in the texture decoder)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1329 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:40:10 +00:00
strmnnrmn
8415e94977 [~] No need for cont input args here
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1326 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:51 +00:00
strmnnrmn
e068c9da98 [~] Rename mRecentTexture* to mBoundTexture*
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1325 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:41 +00:00
strmnnrmn
648d139117 [~] Not we can move the code to set up mRecentTexture earlier (hopefully into RDPStateManager::GetUpdatedTextureDescriptor
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1324 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:33 +00:00
strmnnrmn
7e9a6f8eb0 [*] Remove mTileScale. No need to cache this, as we can always figure it out from the native texture (less state to keep in sync is better)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1323 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:27 +00:00
strmnnrmn
3f197704c5 [~] Tidy
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1321 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:10 +00:00
strmnnrmn
575bc9fd2e [~] Rename GetTextureDescriptor to GetUpdatedTextureDescriptor, and remove mutable
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1320 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:39:04 +00:00
strmnnrmn
545e2c4221 [~] Tidy UpdateTexture a little
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1319 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:56 +00:00
strmnnrmn
dc91fe455b [~] We can store raw pointers to CachedTextures, and save a little overhead.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1318 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:50 +00:00
strmnnrmn
7061f3d30a [-] CachedTexture::Touch isn't used
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1317 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:43 +00:00
strmnnrmn
c72b2ce625 [~] STextureInfoSnapshot can use a CNativeTexture
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1316 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:35 +00:00
strmnnrmn
240081f9ff [~] Don't store a separate mpWhiteTexture per CachedTexture. Make it a separate attribute of the key (TextureInfo) and cache it directly.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1315 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:26 +00:00
strmnnrmn
231b248979 [~] CTextureCache::GetOrCreateTexture can return a CNativeTexture now.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1314 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:17 +00:00
strmnnrmn
af29743eab [~] Keep track of NativeTextures, not CachedTextures. I'm going to introduce a new CachedTile type for OSX, and it's simpler for the renderer to only know about the native texture type (common to CachedTexture and CachedTile)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1313 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:38:09 +00:00
strmnnrmn
f0c89b1874 [~] Make CachedTexture::UpdateIfNecessary private. Always do this when returning from CTextureCache::GetOrCreateTexture (the mFrameLastUsed check in IsFresh ensure that this does nothing if called many times in a frame)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1311 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:37:50 +00:00
strmnnrmn
7855c69a86 [~] ConvertTexture on OSX isn't quite ready for OSX RGBA8888 only
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1310 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:37:41 +00:00
strmnnrmn
d3678e876d [~] Specify DAEDALUS_ACCURATE_TMEM in the OSX build. MAybe should be in the OSX Platform.h
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1309 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:37:34 +00:00
strmnnrmn
bc2c3207d5 [!] Fix bug in new tmem emulation code
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1308 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:37:27 +00:00
strmnnrmn
d04bd5b013 [~] Shuffle around the arguments to ConvertTexture a bit. Define TextureDestInfo in the cpp file, and just plumb though the required arguments directly. All this so I can try to add a ConvertTile function which decodes directly from emulated TMEM.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1307 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-20 00:37:19 +00:00
salvy
dcde132975 [~] I don't know why aligning a local variable for mat didn't work well, use a global for now..
[~] Fixed debug build

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1302 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-18 07:42:21 +00:00
Corn
d0fc3b0364 [!] Outer rounding in ConvertN64ToScreen() is needed for proper scaling of textures and screen
[!] More fixes to DKR Dlist commands

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1301 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-17 18:13:30 +00:00
Corn
68b1060f33 [!] Improved matrix handling for DKR (skipping the need for some globals)
[!] Reduced the stack to a single matrix for project matrices 
[!] Made some viewport stuff OSX only

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1300 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-16 21:37:39 +00:00
salvy
942fda9c4a [!] Use a temp mat when multiplying matrices..We could overflow since we were using the next stack slot for storage which mMatStackSize aware, also gcc gives better asm using a local variable :)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1299 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-15 02:29:18 +00:00
salvy
42f2ab8f17 [!] Optimized sprite2D, it assumes base is always followed by flip and draw, and executes as many sprite2d ucodes as possible
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1298 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-15 02:03:57 +00:00
salvy
0dfba36356 [!] Conker's fix was good for banjo tooie too, just needed to be done earlier
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1297 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-15 00:24:24 +00:00
salvy
2b3a0edb63 [+] Added hack to remove fillrects that cover screen in banjo tooie
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1296 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-14 18:48:38 +00:00
strmnnrmn
2bb9864821 [~] Always use RGBA 8888 textures for OSX
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1293 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:59 +00:00
strmnnrmn
488d105cc4 [~] Move some RDP state to RDPStateManager. RDP.cpp is pretty defunct now...might make more sense to rename RDPStateManager to RDP and reduce typing :)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1292 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:52 +00:00
strmnnrmn
2b4774c449 [~] Fix a warning in Ucode_Sprite2D.h - Sprite2DInfo might not be initialised if the dlist is crazy.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1291 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:41 +00:00
strmnnrmn
9a1a238d55 [~] Whitespace
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1290 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:34 +00:00
strmnnrmn
e0f3eca6ba [+] New accurate tmem emulation code for OSX (disabled for now)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1289 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:28 +00:00
strmnnrmn
a805284bb2 [*] Move LoadBlock/LoadTile/LoadTlut to RDPStateManager - code should be functionally identical
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1288 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:21 +00:00
strmnnrmn
0b2b394fc1 [~] Tidy RDPStateManager.cpp
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1287 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:14 +00:00
strmnnrmn
c8171c4fe3 [~] For consistency, keep loadlut lrs/lrt etc in fixed point format
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1286 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:08 +00:00
strmnnrmn
429304b148 [~] Don't assert about tlut load texture size - a few roms don't set this correctly, and 16bpp is implicit
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1285 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:54:02 +00:00
strmnnrmn
9f816c5ef6 [~] Rename kCheckHashBeforeUpdate to kUpdateTexturesEveryFrame
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1284 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:53:55 +00:00
strmnnrmn
125243eb0a [~] Various CachedTexture::HasExpired checks aren't needed when we update textures every frame.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1283 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:53:49 +00:00
strmnnrmn
640c5568ae [~] On OSX, don't bother checking the texture hash before updating.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1282 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:53:39 +00:00
strmnnrmn
d5319b75e4 [~] Set mLastFrameToUpdate to gRDPFrame + x rather than doing += x. Probably doesn't matter, but this way means we're less reliant on mLastFrameToUpdate being set correctly to gRDPFrame elsewhere
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1281 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-12 20:53:32 +00:00