Note: Downloads for recent versions temporarily suspended AlternativeTextureLoader 0.1.4 This mod replaces/augments KSP's texture loader to dramatically improve loading time. ATL supports texture compression, scaling and has automatic normal map detection. Why should I use it? ​It's really fast It saves more RAM than ATM: [TABLE=class: outer_border, width: 1000] [TR] [TD]Config[/TD] [TD]Memory[/TD] [TD]Load time[/TD] [TD]Notes[/TD] [/TR] [TR] [TD]KSP1[/TD] [TD]2.77GB[/TD] [TD]45s[/TD] [TD][/TD] [/TR] [TR] [TD]KSP1+ATM[/TD] [TD]1.60GB[/TD] [TD]56s[/TD] [TD]compression, 1/2 normal maps with max. 512x512[/TD] [/TR] [TR] [TD]KSP1+ATL[/TD] [TD]1.59GB[/TD] [TD]23s[/TD] [TD]compression only[/TD] [/TR] [TR] [TD]KSP1+ATL[/TD] [TD]1.40GB[/TD] [TD]23s[/TD] [TD]compression, 1/2 normal maps with max. 512x512[/TD] [/TR] [TR] [TD][/TD] [TD][/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]KSP2[/TD] [TD]-[/TD] [TD]-[/TD] [TD]Out of Memory[/TD] [/TR] [TR] [TD]KSP2+ATM[/TD] [TD]2.73GB[/TD] [TD]138s[/TD] [TD]compression, 1/2 normal maps with max. 512x512[/TD] [/TR] [TR] [TD]KSP2+ATL[/TD] [TD]2.23GB[/TD] [TD]48s[/TD] [TD]compression, 1/2 normal maps with max. 512x512[/TD] [/TR] [/TABLE] Test system: Win7 x64, i5-750, 8GB RAM, SSD How does it work? It saves already compressed/mip-mapped textures in a single file (that's also compressed with LZ4), called the cache. That allows to skip every post-processing step that KSP normally does while loading. It interfaces with DirectX (and now also Mono/Unity) in order to do that. Supported plattforms Windows XP/Vista/7/8/8.1 32/64-bit, DirectX, 32-bit KSP only Features DXT1/DXT5 compression depending on actual alpha channel usage Configurable scaling with upper/lower limits LZ4 compression of the cache "Fake" start-up routine for bootstrapping Usage Install ATL (copy contents into GameData) Start KSP Wait until main menu Set your desired settings Hit "Rebuild cache" Restart KSP Enjoy Repeat this process whenever you install/remove mods Settings ​Scaling: How much the textures should be scaled while building the cache Min. dimensions: Neither side of a texture will be scaled down lower than this. Textures are never upscaled Max. dimensions: Neither side of a texture will exceed this size after scaling, even with 1/1 scaling Scaling always maintains aspect ratio config.cfg (created after first start): compressColor/compressNormal [true/false] Normal-map compression may lead to lightning artifacts and needs to be activated manually Download ATL 0.1 binary Source (v0.1; License: None, aka all rights reserved, until further development) Note: Current version will be back up soon! Possibly Asked Questions Do I still need ATM for bootstrapping? Nope. ATL now performs a memory saving dummy start on first usage and whenever you delete your cache! Do I really need to rebuild when I remove/add mods? No, you actually don't. Added textures will be loaded by KSP and removed textures are simply not loaded at all (but still in cache) What is this "native.dlz" file and why is it so big? It's a native DLL written in C++ and has this weird file extension so that KSP doesn't try to load it as an add-on. It contains the native portion of ATL dealing with DirectX/Mono/Unity and is statically linked with the size inflating CRT. Known incompatibilities ATM Texture replacement mods, e.g. TextureReplacer All mods that need access to texture data ​EVE, LoadOnDemand etc. Temporary fix: Uninstall these mods and everything they modify, rebuild the cache, reinstall them and hope it works. Log messages like "Texture ' ' has no data" mean that there are still cached textures they need to access. 0.1.3 has rudimentary support for EVE (it's always super cloudy ) Known Problmens Textures that have an alpha channel for no ********** reason prevent the usage of DXT1 That can only be solved by the creators of those textures (not SQUAD, they only use alpha when needed ) Roadmap Taking control of UnityEngine.Texture2D transparent handling of GetPixel/SetPixel calls etc needed to get texture replacement mods working first steps done since 0.1.2 [*]Incremental/offline cache build Incremental: append only, the file format doesn't allow for removal [*]KSP 64-bit support [*]Texture upload to Video RAM [*]perhaps OpenGL/Linux support Credits rbray89, the creator of ATM, for the inspiration JetBrains dotPeek, it allowed me to figure out how KSP works internally When stuff goes wrong ATL creates a log file called atl.log in GameData. Post/Send it together with the regular KSP.log file and I'll see what went wrong. Changelog = 0.1.4 ========================== - memory saving first start-up by replacing every texture with a dummy -> no dependency on ATM! = 0.1.3 ========================== - fixed bug that made unmanaged normal-maps load ultra slow = 0.1.2 ========================== - fake EVE support (clouds are different) -> Texture2D.GetPixel() & Texture2D.GetPixelBilinear() calls are now intercepted for every managed texture -> everyone who calls GetPixel() gets solid black -> everyone who calls GetPixelBilinear() gets a random shade of light gray (EVE's using that to determine cloud color) = 0.1.1 ========================== - removed useless log messages - fixed compatibility with ProceduralParts/StretchyTanks -> ATL didn't set UnityEngine.Texture.name = 0.1 ============================ - initial release