This Breakdown Document is now SUPERCEDED as we managed to match up what was going on here to the C0CommandTranslations.txt bitmap. =========================================================================== C0 08 00 02 0 0 000 DA7 C0 0B !B8 01 F !8 074 DA8 C0 0B B8 01 F 8 074 DA6 074 32 x 32 00(10) DA6 32 x 32 06(C2) C0 0B B8 01 F 8 074 DA8 074 32 x 32 00(10) DA8 32 x 32 06(C2) C0 0B F4 01 F 9 074 DA9 074 32 x 32 00(10) DA9 64 x 16 07(E2) Train: C0 0B B8 00 E 1 000 3D4 Depot: C0 0B B8 01 F 5 015 055 015 16 x 16 ?? 055 64 x 64 07(F0) Dam: C0 0B FC 00 F A 000 3B5 C0 0B FC 00 9 6 000 281 hmm, so Id expect a bitflag to contain LOD Enable (mipmapping) DetailEnable SharpenEnable DrawTexture(DetailEnabled=0, !00, PrimTile=02, min_level(0) , 0, DetailTextureID=000, BaseTextureID=DA8) DrawTexture(DetailEnabled=1, !B8, PrimTile=01, min_level(0.5), !8, DetailTextureID=074, BaseTextureID=DA8) C0 0B B8 00 E1 000 3D4 Left C0 0B FC 00 FA 000 3B5 Floor C0 0B B8 01 F5 015 055 Right PDDetailTestGridMulti LeftAndFloor C0 0B B8 01 F8 074 DA8 Right C0 0B F4 01 F9 074 DA9 ======================================= | Ok, so results for Nibble Test are: | ======================================= C0 X B B 8 0 1 F 8 001 2CF 0 OK 16x4 0.5 NoMirror Noclamp 1 OK 16x4 0.5 NoMirror NoClamp 2 OK 16x4 0.5 NoMirror NoClamp 3 OK 16x4 0.5 NoMirror NoClamp 4 OK 16x4 0.5 NoMirror NoClamp 5 OK 16x4 0.5 NoMirror NoClamp 6 OK 16x4 0.5 NoMirror NoClamp 7 OK 16x4 0.5 NoMirror NoClamp 8 OK 16x4 0.5 NoMirror NoClamp 9 Corrupt 8x1 0.5 NoMirror NoClamp a Corrupt 8x1 0.5 NoMirror NoClamp b Corrupt 8x1 0.5 NoMirror NoClamp c Corrupt 8x1 0.5 NoMirror NoClamp d Corrupt 8x1 0.5 NoMirror NoClamp e Corrupt 8x1 0.5 NoMirror NoClamp f Corrupt 8x1 0.5 NoMirror NoClamp ok, I think you forgot to set all to cross... Persides, I did actually ask for left, cross right red, on every room... ========= C0 0 x B 8 0 1 F 8 001 2CF 0 OK 1x4 0.5 NoMirror NoClamp 1 OK 0.1x4 0.5 NoMirror NoClamp 2 OK 0.1x4 0.5 NoMirror NoClamp 3 OK 16x4 0.5 NoMirror NoClamp 4 OK 1x4 0.5 NoMirror NoClamp 5 OK 0.1x4 0.5 NoMirror NoClamp 6 OK 0.1x4 0.5 NoMirror NoClamp 7 OK 16x4 0.5 NoMirror NoClamp 8 OK 1x4 0.5 NoMirror NoClamp 9 Corrupt 0.1x1 0.5 NoMirror NoClamp A Corrupt 0.1x1 0.5 NoMirror NoClamp B Corrupt 8x1 0.5 NoMirror NoClamp C Corrupt 1x1 0.5 NoMirror NoClamp D Corrupt 0.1x1 0.5 NoMirror NoClamp E Corrupt 0.1x1 0.5 NoMirror NoClamp F Corrupt 8x1 0.5 NoMirror NoClamp So Correct Values are 3,7,B & F This indicates bitflags 8421 where 2 & 1 bust be True. ================== C0 0 B x 8 0 1 F 8 001 2CF 0 OK 64x0.5 0.5 NoMirror NoClamp 1 OK 64x0.1 0.5 NoMirror NoClamp 2 OK 64x0.1 0.5 NoMirror NoClamp 3 OK 64x4 0.5 NoMirror NoClamp 4 OK 32x0.5 0.5 NoMirror NoClamp 5 OK 32x0.1 0.5 NoMirror NoClamp 6 OK 32x0.1 0.5 NoMirror NoClamp 7 OK 32x4 0.5 NoMirror NoClamp 8 OK 16x0.5 0.5 NoMirror NoClamp 9 Corrupt 8x0.1 0.5 NoMirror NoClamp A Corrupt 8x0.1 0.5 NoMirror NoClamp B Corrupt 8x4 0.5 NoMirror NoClamp C Corrupt 4x0.5 0.5 NoMirror NoClamp D Corrupt 4x0.1 0.5 NoMirror NoClamp E Corrupt 4x0.1 0.5 NoMirror NoClamp F Corrupt 4x4 0.5 NoMirror NoClamp OK, So this ones wierd, it does both Vert and Horiz. Every Block of 4 decreases Horiz By 2 (and when switched to red which is x2 (32x32 as uposed to 16x16) in size it went down x4) So, Correct Values for this would be 3, 7, B, & F where F is more correct to keep 'Square' Also, these are refered to in Docs as "Shift" ========== C0 0 B B x 0 1 F 8 001 2CF 0 OK 16x32 0.5 NoMirror NoClamp 1 OK 16x32 0.5 NoMirror NoClamp 2 OK 16x32 0.5 NoMirror NoClamp 3 OK 16x32 0.5 NoMirror NoClamp 4 OK 16x16 0.5 NoMirror NoClamp 5 OK 16x16 0.5 NoMirror NoClamp 6 OK 16x16 0.5 NoMirror NoClamp 7 OK 16x16 0.5 NoMirror NoClamp 8 OK 16x4 0.5 NoMirror NoClamp 9 Corrupt 8x2 0.5 NoMirror NoClamp A Corrupt 8x2 0.5 NoMirror NoClamp B Corrupt 8x2 0.5 NoMirror NoClamp C Corrupt 8x1 0.5 NoMirror NoClamp D Corrupt 8x1 0.5 NoMirror NoClamp E Corrupt 8x1 0.5 NoMirror NoClamp F Corrupt 8x1 0.5 NoMirror NoClamp So, This deals solly with Vertical where each block of 4 repeats less. Correct Value is dependant on previous scales or "Shifts" to keep the detail 'Square' In this example the correct Value is 4,5,6 or 7 =========== C0 0 B B 8 x 1 F 8 001 2CF 0-F OK 16x4 0.5 NoMirror NoClamp No Change with this value in either base or Detail ============ C0 0 B B 8 0 x F 8 001 2CF 0 OK 16x4 0.0 NoMirror NoClamp Ok, this is odd, we might need to Nibble the last 2 digits too. This Value seems to also be Lod_Frac starting at 0 and working up to about 0.25 at F Thing thats odd though is that in all the other tests the value here was 1 and everything worked out fine, yet in this test 1 was working out at about 0.05 or something (Basicly replace) Can you verify you changed the correct Nibble? ========== C0 0 B B 8 0 1 x 8 001 2CF Odds = +0.5 Evens = 0 C0 0 B B 8 0 1 F x 001 2CF each increment = 0.03 So, the last 2 are linked by 1 bit on 'F' ================================================================ BREAKDOWN OF COMMAND SO FAR ================================================================ C0( 0, BB8, 0, 1, F, 8, 001, 2CF) x x x maybe 1 value with overload DrawTexture( Nothing, 'Has to be clamp and mirror flags but only for base? BitflagShift, ' S= ABCD EF T= GH IJKL AB = Nohing 'Or maybe these are clamp and mirror Base When C & D = 0 ShiftS = 1 When C OR D = 1 ShiftS = 0 When C & D = 1 ShiftS = 0.25 (for every base Texle, 4 Detail) When E & F = 0 shiftS = 0.0625 When E = 1 ShiftS = 0.25 When F = 1 ShiftS = 0.125 When E & F = 1 shiftS = 0.5 When G & H = 0 ShiftT = 2 When G = 1 Shift T = 0 When H = 1 Shift T = 0 When G & H = 1 ShiftT = 1 When I & J = 1 ShiftT = 0.5 When I = 1 ShiftT = 0.25 When J = 1 ShiftT = 0.125 When I & J = 0 ShiftT = 0.0625 00 11 11 11 11 00 1 Nothing, 'Nothing that I can see ' PrimTile ' possible explanation for next value PrimColor, ' 1F8 works good Where '8' = 0 Primcolor = PrimColor + 0 If '8' > 0 Primcolor = Primcolor + (Value * 0.03) If 'F' Even then Primcolor = Primcolor + 0 If 'F' Odd Then Primcolor = Primcolor + 0.5 Example 101 = 0.03 10F = 0.45 1F0 = 0.5 1FF = 0.95 2xx = 1 3xx = ERROR Detail_ID, Base_ID) ' This is the most logical way I can think to represent whats happening. It may take several reviews. ==================================================================== SHIFT TESTS ==================================================================== (D=16x16 B=64x64) Value | Repeats ----------------------------------- 0000 | 4 0001 | 2 0010 | 1 0011 | 0.5 0100 | 0.25 0101 | 0.125 0110 | 0.065 0111 | 0.0325 1000 | 0.01125 1001 | 0.00551 1010 | 0.00275 1011 | 128 1100 | 64 1101 | 32 1110 | 16 1111 | 8 Detail Texles Per Base Texle Value | Shift+1 ----------------------------------- 0000 | 1 0001 | 0.5 0010 | 0.25 0011 | 0.125 0100 | 0.065 0101 | 0.0325 0110 | 0.01125 0111 | 0.00557 1000 | 0.0027 1001 | 0.0013 1010 | 0.0007 1011 | 32 1100 | 16 1101 | 8 1110 | 4 1111 | 2 so, for best results the one that should be default is S=1111 T=1111 (3FC) giving each base texel 4 detail texles while 1110 1110 (BB8) will give 8 texles per texle but depending on detail texture could result in slight moiring espesually at low min_levels (less than 0.75).