diff --git a/_Nix/128_red.png b/_Nix/128_red.png deleted file mode 100755 index 4c004112..00000000 Binary files a/_Nix/128_red.png and /dev/null differ diff --git a/_Nix/128_red.png.meta b/_Nix/128_red.png.meta deleted file mode 100755 index ba5ec9df..00000000 --- a/_Nix/128_red.png.meta +++ /dev/null @@ -1,110 +0,0 @@ -fileFormatVersion: 2 -guid: b4920b816de053648a7b261072fe296b -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 9 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 1 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - serializedVersion: 2 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: 63 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: 63 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: 63 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - vertices: [] - indices: - edges: [] - weights: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/128_exp_red_8.png b/_Nix/64_exp_red.png similarity index 67% rename from _Nix/128_exp_red_8.png rename to _Nix/64_exp_red.png index 09efeab8..605eec00 100755 Binary files a/_Nix/128_exp_red_8.png and b/_Nix/64_exp_red.png differ diff --git a/_Nix/128_exp_red_8.png.meta b/_Nix/64_exp_red.png.meta similarity index 98% rename from _Nix/128_exp_red_8.png.meta rename to _Nix/64_exp_red.png.meta index d38c4de6..3d4597cb 100755 --- a/_Nix/128_exp_red_8.png.meta +++ b/_Nix/64_exp_red.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8081e27e90a915f439f05ec34cd7b269 +guid: 9d4e0fc58ad551c448637d5317618c02 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/AutoImport.cs b/_Nix/AutoImport.cs index 388608db..725265f3 100755 --- a/_Nix/AutoImport.cs +++ b/_Nix/AutoImport.cs @@ -48,9 +48,12 @@ public static class AutoImport if (FilesToWatch[i].EndsWith(".h")) continue; - if (File.Exists(FilesToWatch[i] + ".pp")) + if (!(FilesToWatch[i].EndsWith(".pp") || + FilesToWatch[i].EndsWith(".shader") || + FilesToWatch[i].EndsWith(".cginc") || + FilesToWatch[i].EndsWith(".p"))) { - FilesToWatch[i] = FilesToWatch[i] + ".pp"; + continue; } if (!File.Exists(FilesToWatch[i])) { @@ -82,8 +85,10 @@ public static class AutoImport static void OnUpdate() { - if (EditorApplication.isPlaying) return; - if (Application.isPlaying) return; + //if (EditorApplication.isPlaying) return; + //if (Application.isPlaying) return; + + var importallpp = false; for (int i = 0; i < hasChange.Length; i++) { @@ -92,7 +97,11 @@ public static class AutoImport Debug.Log("[AutoImport] Asset changed: " + FilesToWatch[i]); hasChange[i] = false; - if (FilesToWatch[i].EndsWith(".pp")) + if (FilesToWatch[i].EndsWith(".p")) + { + importallpp = true; + } + else if (FilesToWatch[i].EndsWith(".pp")) { var gen = FilesToWatch[i].Substring(0, FilesToWatch[i].Length - 3); RunPerlPP(FilesToWatch[i], gen); @@ -104,6 +113,19 @@ public static class AutoImport } } } + + if (importallpp) + { + foreach (var item in FilesToWatch) + { + if (item.EndsWith(".pp")) + { + var gen = item.Substring(0, item.Length - 3); + RunPerlPP(item, gen); + AssetDatabase.ImportAsset(gen); + } + } + } } static void RunPerlPP(string input, string output) diff --git a/_Nix/DebugPrintmat.mat b/_Nix/DebugPrintmat.mat new file mode 100755 index 00000000..496febd8 --- /dev/null +++ b/_Nix/DebugPrintmat.mat @@ -0,0 +1,82 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DebugPrintmat + m_Shader: {fileID: 4800000, guid: 79cf2ce4ea00e39408dbe88a2677ab43, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RVC: + m_Texture: {fileID: 8600000, guid: cebb0068b90e40246b9bdd23499cf08e, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Background: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/DebugPrintmat.mat.meta b/_Nix/DebugPrintmat.mat.meta new file mode 100755 index 00000000..08d44ea1 --- /dev/null +++ b/_Nix/DebugPrintmat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9cfbeaeff67aa04a8f24c030f9f5dd4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/ExportState.cs b/_Nix/ExportState.cs new file mode 100755 index 00000000..9b8468d1 --- /dev/null +++ b/_Nix/ExportState.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ExportState : MonoBehaviour +{ + public string Name; + public bool DoWork; + private Camera cam; + + void Start() + { + DoWork = false; + cam = GetComponent(); + } + + void Update() + { + if (DoWork) + { + DoWork = false; + + var rt = new RenderTexture(2048*3, 4096*2, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_UNorm); + cam.targetTexture = rt; + cam.Render(); + RenderTexture.active = rt; + var capture = new Texture2D(rt.width, rt.height, TextureFormat.RGB24, false); + capture.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0); + RenderTexture.active = null; + cam.targetTexture = null; + var bytes = capture.EncodeToPNG(); + System.IO.File.WriteAllBytes(Name, bytes); + Destroy(rt); + Destroy(capture); + } + } +} diff --git a/_Nix/ExportState.cs.meta b/_Nix/ExportState.cs.meta new file mode 100755 index 00000000..4b82c13f --- /dev/null +++ b/_Nix/ExportState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c0e195aa459f204d932da40ec86dccf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/NixControl.asset b/_Nix/NixControl.asset index c47d8578..9767a87f 100755 --- a/_Nix/NixControl.asset +++ b/_Nix/NixControl.asset @@ -17,16 +17,15 @@ MonoBehaviour: udonAssembly: assemblyError: sourceCsScript: {fileID: 11500000, guid: 32d551b771daedb4980227a82dc09b45, type: 3} + scriptVersion: 2 + compiledVersion: 2 behaviourSyncMode: 0 - behaviourIDHeapVarName: __refl_const_intnl_udonTypeID - compileErrors: [] hasInteractEvent: 0 + scriptID: -3333667633939802434 serializationData: SerializedFormat: 2 SerializedBytes: - ReferencedUnityObjects: - - {fileID: 11500000, guid: c9b78b66a8b052344a02998e6a83f8aa, type: 3} - - {fileID: 11500000, guid: b54997385532bd84d88ee0b5ac0c37d1, type: 3} + ReferencedUnityObjects: [] SerializedBytesString: Prefab: {fileID: 0} PrefabModificationsReferencedUnityObjects: [] @@ -55,42 +54,36 @@ MonoBehaviour: - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: CRT + - Name: k__BackingField Entry: 7 - Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 4|System.RuntimeType, mscorlib + Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.CustomRenderTexture, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineCustomRenderTexture - - Name: symbolOriginalName - Entry: 1 - Data: CRT - - Name: symbolUniqueName - Entry: 1 - Data: CRT - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -100,9 +93,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -114,46 +104,40 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Dial + Data: Debug - Name: $v Entry: 7 - Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Debug + - Name: k__BackingField Entry: 7 - Data: 7|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: VRCUdonUdonBehaviour - - Name: symbolOriginalName - Entry: 1 - Data: Dial - - Name: symbolUniqueName - Entry: 1 - Data: Dial - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -163,9 +147,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -177,42 +158,48 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Debug + Data: Dial - Name: $v Entry: 7 - Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Dial + - Name: k__BackingField Entry: 7 - Data: 11|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 9|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: Dial, Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: VRCUdonUdonBehaviour - - Name: symbolOriginalName - Entry: 1 - Data: Debug - - Name: symbolUniqueName - Entry: 1 - Data: Debug - - Name: symbolDefaultValue + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes - Entry: 9 - Data: 9 - - Name: userBehaviourSource - Entry: 6 + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 Data: - Name: Entry: 8 @@ -228,41 +215,83 @@ MonoBehaviour: Data: StatusText - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: StatusText + - Name: k__BackingField Entry: 7 - Data: 13|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 14|System.RuntimeType, mscorlib + Data: 12|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Text, UnityEngine.UI - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIText - - Name: symbolOriginalName - Entry: 1 - Data: StatusText - - Name: symbolUniqueName - Entry: 1 - Data: StatusText - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: UartOut + - Name: $v + Entry: 7 + Data: 14|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: UartOut + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -274,9 +303,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -288,38 +314,38 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: UartOut + Data: DebugCam - Name: $v Entry: 7 Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: DebugCam + - Name: k__BackingField Entry: 7 - Data: 17|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 17|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Camera, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 14 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIText - - Name: symbolOriginalName - Entry: 1 - Data: UartOut - - Name: symbolUniqueName - Entry: 1 - Data: UartOut - - Name: symbolDefaultValue + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -331,72 +357,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: DebugCam - - Name: $v - Entry: 7 - Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 20|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 21|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.Camera, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineCamera - - Name: symbolOriginalName - Entry: 1 - Data: DebugCam - - Name: symbolUniqueName - Entry: 1 - Data: DebugCam - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -411,43 +371,37 @@ MonoBehaviour: Data: curSec - Name: $v Entry: 7 - Data: 23|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: curSec + - Name: k__BackingField Entry: 7 - Data: 24|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 25|System.RuntimeType, mscorlib + Data: 20|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: curSec - - Name: symbolUniqueName - Entry: 1 - Data: curSec - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 20 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 21|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -457,9 +411,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -474,37 +425,31 @@ MonoBehaviour: Data: fps - Name: $v Entry: 7 - Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 28|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: fps + - Name: k__BackingField Entry: 9 - Data: 25 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: fps - - Name: symbolUniqueName - Entry: 1 - Data: fps - - Name: symbolDefaultValue + Data: 20 + - Name: k__BackingField + Entry: 9 + Data: 20 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -514,9 +459,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -531,37 +473,31 @@ MonoBehaviour: Data: frameCount - Name: $v Entry: 7 - Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 31|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: frameCount + - Name: k__BackingField Entry: 9 - Data: 25 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: frameCount - - Name: symbolUniqueName - Entry: 1 - Data: frameCount - - Name: symbolDefaultValue + Data: 20 + - Name: k__BackingField + Entry: 9 + Data: 20 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 25|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -571,9 +507,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -588,43 +521,37 @@ MonoBehaviour: Data: run - Name: $v Entry: 7 - Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: run + - Name: k__BackingField Entry: 7 - Data: 34|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 35|System.RuntimeType, mscorlib + Data: 27|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemBoolean - - Name: symbolOriginalName - Entry: 1 - Data: run - - Name: symbolUniqueName - Entry: 1 - Data: run - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 27 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -634,9 +561,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -651,43 +575,37 @@ MonoBehaviour: Data: TickSlider - Name: $v Entry: 7 - Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TickSlider + - Name: k__BackingField Entry: 7 - Data: 38|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 39|System.RuntimeType, mscorlib + Data: 30|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Slider, UnityEngine.UI - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUISlider - - Name: symbolOriginalName - Entry: 1 - Data: TickSlider - - Name: symbolUniqueName - Entry: 1 - Data: TickSlider - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 30 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -697,9 +615,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -714,41 +629,203 @@ MonoBehaviour: Data: ProgramSelect - Name: $v Entry: 7 - Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: ProgramSelect + - Name: k__BackingField Entry: 7 - Data: 42|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 43|System.RuntimeType, mscorlib + Data: 33|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Dropdown, UnityEngine.UI - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIDropdown - - Name: symbolOriginalName - Entry: 1 - Data: ProgramSelect - - Name: symbolUniqueName - Entry: 1 - Data: ProgramSelect - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 33 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: Keyboard + - Name: $v + Entry: 7 + Data: 35|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Keyboard + - Name: k__BackingField + Entry: 7 + Data: 36|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: KeyboardManager2, Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 37|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: Programs + - Name: $v + Entry: 7 + Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Programs + - Name: k__BackingField + Entry: 7 + Data: 39|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: NixProgramLoader[], Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 40|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Component[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 41|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: CurProgram + - Name: $v + Entry: 7 + Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: CurProgram + - Name: k__BackingField + Entry: 7 + Data: 43|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: NixProgramLoader, Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -760,9 +837,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -774,229 +848,34 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Keyboard + Data: disableInit - Name: $v Entry: 7 Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 46|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 47|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: KeyboardManager2, Assembly-CSharp - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: VRCUdonUdonBehaviour - - Name: symbolOriginalName - Entry: 1 - Data: Keyboard - - Name: symbolUniqueName - Entry: 1 - Data: Keyboard - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 10 - Data: 0 - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: Programs - - Name: $v - Entry: 7 - Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 50|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 51|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: NixProgramLoader[], Assembly-CSharp - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineComponentArray - - Name: symbolOriginalName - Entry: 1 - Data: Programs - - Name: symbolUniqueName - Entry: 1 - Data: Programs - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 10 - Data: 1 - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: CurProgram - - Name: $v - Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 54|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 55|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: NixProgramLoader, Assembly-CSharp - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: VRCUdonUdonBehaviour - - Name: symbolOriginalName - Entry: 1 - Data: CurProgram - - Name: symbolUniqueName - Entry: 1 - Data: CurProgram - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 10 - Data: 1 - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k + - Name: k__BackingField Entry: 1 Data: disableInit - - Name: $v - Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 58|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + - Name: k__BackingField Entry: 9 - Data: 25 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: disableInit - - Name: symbolUniqueName - Entry: 1 - Data: disableInit - - Name: symbolDefaultValue + Data: 20 + - Name: k__BackingField + Entry: 9 + Data: 20 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 59|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1006,9 +885,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: diff --git a/_Nix/NixControl.cs b/_Nix/NixControl.cs index 6624c385..5b424e0b 100755 --- a/_Nix/NixControl.cs +++ b/_Nix/NixControl.cs @@ -8,7 +8,8 @@ public class NixControl : UdonSharpBehaviour { public CustomRenderTexture CRT; - public UdonBehaviour Dial, Debug; + public UdonBehaviour Debug; + public Dial Dial; public Text StatusText; public Text UartOut; @@ -81,10 +82,20 @@ public class NixControl : UdonSharpBehaviour // CRT.material.SetInt("_DoTick", CRT.material.GetInt("_DoTick") + 1); } + public void _BootLinuxSecondary() + { + if (Dial.CurrentState != 2) return; + Dial.SetState(1, false); + CRT.material.SetInt("_UdonUARTInChar", '\n'); + CRT.material.SetInt("_UdonUARTInTag", 1); + CRT.material.SetFloat("_Init", 0); + CRT.material.SetFloat("_InitRaw", 0); + } + public void DialEnable() { - var state = (int)Dial.GetProgramVariable("NextState"); - run = state == 1; + var state = Dial.NextState; + run = state > 0; if (!run) { @@ -109,9 +120,25 @@ public class NixControl : UdonSharpBehaviour CurProgram.ApplyTexture(); Debug.SetProgramVariable("RenderCam", true); CRT.material.SetInt("_Init", 1); - disableInit = 2; CRT.material.SetInt("_DoTick", 0); CRT.updateMode = CustomRenderTextureUpdateMode.Realtime; + + if (state == 2) + { + // Load booted linux env + CRT.material.SetFloat("_InitRaw", 1); + Debug.SetProgramVariable("UartPtr", 0); + Debug.SetProgramVariable("UartTag", 1); + Debug.SetProgramVariable("newlines", 0); + Debug.SetProgramVariable("linelength", 0); + Debug.SetProgramVariable("LocalText", ""); + SendCustomEventDelayedSeconds("_BootLinuxSecondary", 1); + } + else + { + CRT.material.SetFloat("_InitRaw", 0); + disableInit = 2; + } } } diff --git a/_Nix/NixDebug.asset b/_Nix/NixDebug.asset index d9a8efdf..547483a8 100755 --- a/_Nix/NixDebug.asset +++ b/_Nix/NixDebug.asset @@ -17,15 +17,15 @@ MonoBehaviour: udonAssembly: assemblyError: sourceCsScript: {fileID: 11500000, guid: 71e2d556b88cc8247b0e36e78a72e458, type: 3} + scriptVersion: 2 + compiledVersion: 2 behaviourSyncMode: 0 - behaviourIDHeapVarName: __refl_const_intnl_udonTypeID - compileErrors: [] hasInteractEvent: 0 + scriptID: -6314506263728163473 serializationData: SerializedFormat: 2 SerializedBytes: - ReferencedUnityObjects: - - {fileID: 11500000, guid: c9b78b66a8b052344a02998e6a83f8aa, type: 3} + ReferencedUnityObjects: [] SerializedBytesString: Prefab: {fileID: 0} PrefabModificationsReferencedUnityObjects: [] @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 27 + Data: 21 - Name: Entry: 7 Data: @@ -54,42 +54,36 @@ MonoBehaviour: - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: Buffer + - Name: k__BackingField Entry: 7 - Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 4|System.RuntimeType, mscorlib + Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineTexture2D - - Name: symbolOriginalName - Entry: 1 - Data: Buffer - - Name: symbolUniqueName - Entry: 1 - Data: Buffer - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -99,9 +93,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -116,41 +107,83 @@ MonoBehaviour: Data: DbgText - Name: $v Entry: 7 - Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: DbgText + - Name: k__BackingField Entry: 7 - Data: 7|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Text, UnityEngine.UI - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIText - - Name: symbolOriginalName - Entry: 1 - Data: DbgText - - Name: symbolUniqueName - Entry: 1 - Data: DbgText - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: UartOut + - Name: $v + Entry: 7 + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: UartOut + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -162,9 +195,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -176,38 +206,38 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: UartOut + Data: EnableToggle - Name: $v Entry: 7 Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: EnableToggle + - Name: k__BackingField Entry: 7 - Data: 11|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 11|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.UI.Toggle, UnityEngine.UI + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIText - - Name: symbolOriginalName - Entry: 1 - Data: UartOut - - Name: symbolUniqueName - Entry: 1 - Data: UartOut - - Name: symbolDefaultValue + Data: 11 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 12|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -219,72 +249,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: EnableToggle - - Name: $v - Entry: 7 - Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 14|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 15|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.UI.Toggle, UnityEngine.UI - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIToggle - - Name: symbolOriginalName - Entry: 1 - Data: EnableToggle - - Name: symbolUniqueName - Entry: 1 - Data: EnableToggle - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 16|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -299,43 +263,37 @@ MonoBehaviour: Data: vm_mat - Name: $v Entry: 7 - Data: 17|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: vm_mat + - Name: k__BackingField Entry: 7 - Data: 18|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 19|System.RuntimeType, mscorlib + Data: 14|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Material, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineMaterial - - Name: symbolOriginalName - Entry: 1 - Data: vm_mat - - Name: symbolUniqueName - Entry: 1 - Data: vm_mat - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 14 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -345,9 +303,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -362,41 +317,143 @@ MonoBehaviour: Data: UpdateEveryXFrames - Name: $v Entry: 7 - Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: UpdateEveryXFrames + - Name: k__BackingField Entry: 7 - Data: 22|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 23|System.RuntimeType, mscorlib + Data: 17|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: UpdateEveryXFrames - - Name: symbolUniqueName - Entry: 1 - Data: UpdateEveryXFrames - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: DebugObj + - Name: $v + Entry: 7 + Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: DebugObj + - Name: k__BackingField + Entry: 7 + Data: 20|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.GameObject[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 20 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 21|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: prevIsOn + - Name: $v + Entry: 7 + Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: prevIsOn + - Name: k__BackingField + Entry: 7 + Data: 23|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Boolean, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 23 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 Data: 24|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -408,12 +465,63 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: UartPtr + - Name: $v + Entry: 7 + Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: UartPtr + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 27|UnityEngine.HideInInspector, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 8 Data: @@ -422,46 +530,40 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: DebugObj + Data: cam - Name: $v Entry: 7 - Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: cam + - Name: k__BackingField Entry: 7 - Data: 26|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 27|System.RuntimeType, mscorlib + Data: 29|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: UnityEngine.GameObject[], UnityEngine.CoreModule + Data: UnityEngine.Camera, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineGameObjectArray - - Name: symbolOriginalName - Entry: 1 - Data: DebugObj - - Name: symbolUniqueName - Entry: 1 - Data: DebugObj - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 29 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 30|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -471,9 +573,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -485,44 +584,32 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: prevIsOn + Data: lastUpdate - Name: $v Entry: 7 - Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: lastUpdate + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField Entry: 7 - Data: 30|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 31|System.RuntimeType, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 1 - Data: System.Boolean, mscorlib - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemBoolean - - Name: symbolOriginalName - Entry: 1 - Data: prevIsOn - - Name: symbolUniqueName - Entry: 1 - Data: prevIsOn - - Name: symbolDefaultValue Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -534,9 +621,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -548,46 +632,40 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: UartPtr + Data: newlines - Name: $v Entry: 7 Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 34|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + - Name: k__BackingField + Entry: 1 + Data: newlines + - Name: k__BackingField Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: UartPtr - - Name: symbolUniqueName - Entry: 1 - Data: UartPtr - - Name: symbolDefaultValue + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 35|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 36|UnityEngine.HideInInspector, UnityEngine.CoreModule + Data: 35|UnityEngine.HideInInspector, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -597,12 +675,63 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: linelength + - Name: $v + Entry: 7 + Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: linelength + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 37|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 38|UnityEngine.HideInInspector, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 8 Data: @@ -611,44 +740,32 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: cam + Data: UartTag - Name: $v Entry: 7 - Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 39|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: UartTag + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField Entry: 7 - Data: 38|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 39|System.RuntimeType, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 1 - Data: UnityEngine.Camera, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineCamera - - Name: symbolOriginalName - Entry: 1 - Data: cam - - Name: symbolUniqueName - Entry: 1 - Data: cam - - Name: symbolDefaultValue Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -660,9 +777,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -674,40 +788,46 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: lastUpdate + Data: Keyboard - Name: $v Entry: 7 Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: Keyboard + - Name: k__BackingField Entry: 7 - Data: 42|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName + Data: 42|System.RuntimeType, mscorlib + - Name: Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName + Data: KeyboardManager2, Assembly-CSharp + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 43|System.RuntimeType, mscorlib + - Name: Entry: 1 - Data: lastUpdate - - Name: symbolUniqueName - Entry: 1 - Data: lastUpdate - - Name: symbolDefaultValue + Data: VRC.Udon.UdonBehaviour, VRC.Udon + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 43|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -717,9 +837,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -731,58 +848,49 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: newlines + Data: LocalText - Name: $v Entry: 7 - Data: 44|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: LocalText + - Name: k__BackingField Entry: 7 - Data: 45|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 46|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.String, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: newlines - - Name: symbolUniqueName - Entry: 1 - Data: newlines - - Name: symbolDefaultValue + Data: 46 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 47|UnityEngine.HideInInspector, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -794,46 +902,40 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: linelength + Data: MasterText - Name: $v Entry: 7 Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 49|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + - Name: k__BackingField + Entry: 1 + Data: MasterText + - Name: k__BackingField Entry: 9 - Data: 23 - - Name: declarationType + Data: 46 + - Name: k__BackingField + Entry: 9 + Data: 46 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 3 Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: linelength - - Name: symbolUniqueName - Entry: 1 - Data: linelength - - Name: symbolDefaultValue - Entry: 6 - Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 50|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 51|UnityEngine.HideInInspector, UnityEngine.CoreModule + Data: 50|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -843,9 +945,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -857,38 +956,80 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: UartTag + Data: MasterTextbox - Name: $v Entry: 7 - Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 53|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: MasterTextbox + - Name: k__BackingField Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: UartTag - - Name: symbolUniqueName - Entry: 1 - Data: UartTag - - Name: symbolDefaultValue + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: caret + - Name: $v + Entry: 7 + Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: caret + - Name: k__BackingField + Entry: 9 + Data: 23 + - Name: k__BackingField + Entry: 9 + Data: 23 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -900,12 +1041,57 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: ansi_escape_sm + - Name: $v + Entry: 7 + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: ansi_escape_sm + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 9 + Data: 17 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 8 Data: @@ -914,44 +1100,32 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Keyboard + Data: RenderCam - Name: $v Entry: 7 - Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: RenderCam + - Name: k__BackingField + Entry: 9 + Data: 23 + - Name: k__BackingField + Entry: 9 + Data: 23 + - Name: k__BackingField Entry: 7 - Data: 56|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 57|System.RuntimeType, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 1 - Data: KeyboardManager2, Assembly-CSharp - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: VRCUdonUdonBehaviour - - Name: symbolOriginalName - Entry: 1 - Data: Keyboard - - Name: symbolUniqueName - Entry: 1 - Data: Keyboard - - Name: symbolDefaultValue Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -963,711 +1137,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 10 - Data: 0 - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: LocalText - - Name: $v - Entry: 7 - Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 60|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 61|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.String, mscorlib - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemString - - Name: symbolOriginalName - Entry: 1 - Data: LocalText - - Name: symbolUniqueName - Entry: 1 - Data: LocalText - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 62|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: MasterText - - Name: $v - Entry: 7 - Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 64|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 61 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 1 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemString - - Name: symbolOriginalName - Entry: 1 - Data: MasterText - - Name: symbolUniqueName - Entry: 1 - Data: MasterText - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 65|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 66|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: MasterTextbox - - Name: $v - Entry: 7 - Data: 67|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 68|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineUIText - - Name: symbolOriginalName - Entry: 1 - Data: MasterTextbox - - Name: symbolUniqueName - Entry: 1 - Data: MasterTextbox - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 69|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: caret - - Name: $v - Entry: 7 - Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 71|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 31 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemBoolean - - Name: symbolOriginalName - Entry: 1 - Data: caret - - Name: symbolUniqueName - Entry: 1 - Data: caret - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 72|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: MULT - - Name: $v - Entry: 7 - Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 74|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 75|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Single, mscorlib - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemSingle - - Name: symbolOriginalName - Entry: 1 - Data: MULT - - Name: symbolUniqueName - Entry: 1 - Data: MULT - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 76|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: ADD - - Name: $v - Entry: 7 - Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 78|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 75 - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemSingle - - Name: symbolOriginalName - Entry: 1 - Data: ADD - - Name: symbolUniqueName - Entry: 1 - Data: ADD - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 79|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: ANSI_SM_NONE - - Name: $v - Entry: 7 - Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 81|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: ANSI_SM_NONE - - Name: symbolUniqueName - Entry: 1 - Data: ANSI_SM_NONE - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: ANSI_SM_ESC_RECEIVED - - Name: $v - Entry: 7 - Data: 83|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 84|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: ANSI_SM_ESC_RECEIVED - - Name: symbolUniqueName - Entry: 1 - Data: ANSI_SM_ESC_RECEIVED - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 85|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: ANSI_SM_CTRL_RECEIVED - - Name: $v - Entry: 7 - Data: 86|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 87|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: ANSI_SM_CTRL_RECEIVED - - Name: symbolUniqueName - Entry: 1 - Data: ANSI_SM_CTRL_RECEIVED - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 88|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: ansi_escape_sm - - Name: $v - Entry: 7 - Data: 89|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 90|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 2 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: ansi_escape_sm - - Name: symbolUniqueName - Entry: 1 - Data: ansi_escape_sm - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 91|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: RenderCam - - Name: $v - Entry: 7 - Data: 92|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 93|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 31 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemBoolean - - Name: symbolOriginalName - Entry: 1 - Data: RenderCam - - Name: symbolUniqueName - Entry: 1 - Data: RenderCam - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 94|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: UART_BUFFER_SIZE - - Name: $v - Entry: 7 - Data: 95|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 96|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 23 - - Name: declarationType - Entry: 3 - Data: 258 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemInt32 - - Name: symbolOriginalName - Entry: 1 - Data: UART_BUFFER_SIZE - - Name: symbolUniqueName - Entry: 1 - Data: UART_BUFFER_SIZE - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 97|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: diff --git a/_Nix/NixDebug.cs b/_Nix/NixDebug.cs index 18223d6e..4e03a253 100755 --- a/_Nix/NixDebug.cs +++ b/_Nix/NixDebug.cs @@ -59,13 +59,17 @@ public class NixDebug : UdonSharpBehaviour private const float ADD = 0.5f; private uint decodePackedData(int x, int y, int c) { + // TODO: add hart selection + //x *= 2; + //y *= 2; + Color[] col = new Color[6] { Buffer.GetPixel(x, y), - Buffer.GetPixel(x + 128, y), - Buffer.GetPixel(x + 128*2, y), - Buffer.GetPixel(x + 128*3, y), - Buffer.GetPixel(x + 128*4, y), - Buffer.GetPixel(x + 128*5, y) + Buffer.GetPixel(x + STATE_WIDTH, y), + Buffer.GetPixel(x + STATE_WIDTH*2, y), + Buffer.GetPixel(x + STATE_WIDTH*3, y), + Buffer.GetPixel(x + STATE_WIDTH*4, y), + Buffer.GetPixel(x + STATE_WIDTH*5, y) }; switch (c) { @@ -125,7 +129,7 @@ public class NixDebug : UdonSharpBehaviour public void OnPostRender() { - Buffer.ReadPixels(new Rect(0, 120, 128*6, 8), 0, 0); + Buffer.ReadPixels(new Rect(0, 0, STATE_WIDTH*6, STATE_HEIGHT), 0, 0); var newUartPtrRaw = load_uart_buffer__ptr(); var newUartPtr = (newUartPtrRaw >= 0U && newUartPtrRaw < (uint)UART_BUFFER_SIZE) ? (int)newUartPtrRaw : 0; @@ -148,8 +152,8 @@ public class NixDebug : UdonSharpBehaviour var pc = load_pc(); - DbgText.text = $@"stats: -pc : 0x{pc.ToString("X8")} + DbgText.text = +$@"pc : 0x{pc.ToString("X8")} instr. : 0x{load_debug_last_ins().ToString("X8")} clock : {load_clock()} stall : {load_debug_last_stall()} @@ -158,13 +162,16 @@ stall : {load_debug_last_stall()} #commit : {load_commits()} priv. : {load_csr__privilege()} uartptr : {UartPtr.ToString("X2")}/{newUartPtr.ToString("X2")} -mstatus : 0x{load_csr(0x300).ToString("X8")} +mstatus : 0x{load_csr(0x300).ToString("X8")}" + +//mm_src : phy=0x{load_memop_src_p().ToString("X8")} virt=0x{load_memop_src_v().ToString("X8")} +//mm_dst : phy=0x{load_memop_dst_p().ToString("X8")} virt=0x{load_memop_dst_v().ToString("X8")} +//mm_n : {load_memop_n()} +$@" dbgtick : {dbgTick} dbgarb0 : {load_debug_arb_0()}" /*chkcsr : 0x{load_debug_csr_val().ToString("X8")}" /*chkmem : 0x{load_debug_mem_val().ToString("X8")}*/ + $@" - zz=0x{load_xreg0().ToString("X8")} ra=0x{load_xreg1().ToString("X8")} sp=0x{load_xreg2().ToString("X8")} gp=0x{load_xreg3().ToString("X8")} tp=0x{load_xreg4().ToString("X8")} t0=0x{load_xreg5().ToString("X8")} t1=0x{load_xreg6().ToString("X8")} t2=0x{load_xreg7().ToString("X8")} @@ -183,6 +190,10 @@ arb4=0x{load_debug_arb_4x.ToString("X8")} arb5=0x{load_debug_arb_5x.ToString("X8 // ARB=0x{(load_debug_arb_0x ^ load_debug_arb_1x ^ load_debug_arb_2x ^ load_debug_arb_3x ^ load_debug_arb_4x ^ load_debug_arb_5x ^ load_debug_arb_6x ^ load_debug_arb_7x ^ pc).ToString("X8")} } + if (vm_mat.GetFloat("_Init") > 0 && vm_mat.GetFloat("_InitRaw") > 0) { + UartPtr = newUartPtr; + } + var changed = false; while (newUartPtr != UartPtr) { UartPtr++; @@ -263,6 +274,16 @@ arb4=0x{load_debug_arb_4x.ToString("X8")} arb5=0x{load_debug_arb_5x.ToString("X8 if (curTag == UartTag) { Keyboard.CharToVM(); } + + // BUG DEBUG PLZ REMOVE + /*if (load_debug_last_stall() == 7) { + Debug.Log("Cache:"); + for (int i = 0; i < 256*4; i++) + { + Debug.Log($"{i/4}/{i%4}: {load_l1_cache(i).ToString("X8")}"); + } + RenderCam = false; + }*/ // DEBUG @@ -271,7 +292,7 @@ arb4=0x{load_debug_arb_4x.ToString("X8")} arb5=0x{load_debug_arb_5x.ToString("X8 // Debug.Log("TEST begin"); // int prev = -1; // for (int i = 0; i < 256; i++) { - // px = decodePackedColor(i % 128, i / 128); + // px = decodePackedColor(i % 128, i / 128); // FIXME: 128 hardcoded! // if (px[0] != prev + 1) { // Debug.Log("DISCREPANCY! @" + i + " got: " + px[0] + " wanted: " + (prev + 1) + " dbg: " + prev2); // } @@ -304,85 +325,93 @@ arb4=0x{load_debug_arb_4x.ToString("X8")} arb5=0x{load_debug_arb_5x.ToString("X8 // auto-generated in 'types.h': #region LOAD - private const int UART_BUFFER_SIZE = 64; + private const int STATE_WIDTH = 64; + private const int STATE_HEIGHT = 64; + private const int TOTAL_WIDTH = 2048; + private const int TOTAL_HEIGHT = 4096; + private const int UART_BUFFER_SIZE = 32; private int[] addr_lin(int lin) { int[] ret = new int[3]; ret[2] = lin & 0x3; // c lin = lin >> 2; - ret[0] = lin % 128; // x - ret[1] = lin / 128; // y + ret[0] = lin % 64; // x + ret[1] = lin / 64; // y return ret; } - private uint load_csr__privilege() { return decodePackedData(48, 0, 2); } - private uint load_uart__rbr_thr_ier_iir() { return decodePackedData(48, 0, 3); } - private uint load_uart__lcr_mcr_lsr_scr() { return decodePackedData(49, 0, 0); } - private uint load_uart__thre_ip() { return decodePackedData(49, 0, 1); } - private uint load_uart__interrupting() { return decodePackedData(49, 0, 2); } - private uint load_uart__input_tag() { return decodePackedData(49, 0, 3); } - private uint load_clint__msip() { return decodePackedData(50, 0, 0); } - private uint load_clint__mtimecmp_lo() { return decodePackedData(50, 0, 1); } - private uint load_clint__mtimecmp_hi() { return decodePackedData(50, 0, 2); } - private uint load_clint__mtime_lo() { return decodePackedData(50, 0, 3); } - private uint load_clint__mtime_hi() { return decodePackedData(51, 0, 0); } - private uint load_uart_buffer__ptr() { return decodePackedData(51, 0, 1); } - private uint load_mmu__mode() { return decodePackedData(67, 0, 2); } - private uint load_mmu__ppn() { return decodePackedData(67, 0, 3); } - private uint load_stall() { return decodePackedData(68, 0, 0); } - private uint load_clock() { return decodePackedData(68, 0, 1); } - private uint load_commits() { return decodePackedData(68, 0, 2); } - private uint load_xreg0() { return decodePackedData(68, 0, 3); } - private uint load_xreg1() { return decodePackedData(69, 0, 0); } - private uint load_xreg2() { return decodePackedData(69, 0, 1); } - private uint load_xreg3() { return decodePackedData(69, 0, 2); } - private uint load_xreg4() { return decodePackedData(69, 0, 3); } - private uint load_xreg5() { return decodePackedData(70, 0, 0); } - private uint load_xreg6() { return decodePackedData(70, 0, 1); } - private uint load_xreg7() { return decodePackedData(70, 0, 2); } - private uint load_xreg8() { return decodePackedData(70, 0, 3); } - private uint load_xreg9() { return decodePackedData(71, 0, 0); } - private uint load_xreg10() { return decodePackedData(71, 0, 1); } - private uint load_xreg11() { return decodePackedData(71, 0, 2); } - private uint load_xreg12() { return decodePackedData(71, 0, 3); } - private uint load_xreg13() { return decodePackedData(72, 0, 0); } - private uint load_xreg14() { return decodePackedData(72, 0, 1); } - private uint load_xreg15() { return decodePackedData(72, 0, 2); } - private uint load_xreg16() { return decodePackedData(72, 0, 3); } - private uint load_xreg17() { return decodePackedData(73, 0, 0); } - private uint load_xreg18() { return decodePackedData(73, 0, 1); } - private uint load_xreg19() { return decodePackedData(73, 0, 2); } - private uint load_xreg20() { return decodePackedData(73, 0, 3); } - private uint load_xreg21() { return decodePackedData(74, 0, 0); } - private uint load_xreg22() { return decodePackedData(74, 0, 1); } - private uint load_xreg23() { return decodePackedData(74, 0, 2); } - private uint load_xreg24() { return decodePackedData(74, 0, 3); } - private uint load_xreg25() { return decodePackedData(75, 0, 0); } - private uint load_xreg26() { return decodePackedData(75, 0, 1); } - private uint load_xreg27() { return decodePackedData(75, 0, 2); } - private uint load_xreg28() { return decodePackedData(75, 0, 3); } - private uint load_xreg29() { return decodePackedData(76, 0, 0); } - private uint load_xreg30() { return decodePackedData(76, 0, 1); } - private uint load_xreg31() { return decodePackedData(76, 0, 2); } - private uint load_pc() { return decodePackedData(76, 0, 3); } - private uint load_reservation_en() { return decodePackedData(77, 0, 0); } - private uint load_reservation_addr() { return decodePackedData(77, 0, 1); } - private uint load_memop_src_v() { return decodePackedData(77, 0, 2); } - private uint load_memop_dst_v() { return decodePackedData(77, 0, 3); } - private uint load_memop_src_p() { return decodePackedData(78, 0, 0); } - private uint load_memop_dst_p() { return decodePackedData(78, 0, 1); } - private uint load_memop_n() { return decodePackedData(78, 0, 2); } - private uint load_stall_count() { return decodePackedData(78, 0, 3); } - private uint load_trap_count() { return decodePackedData(79, 0, 0); } - private uint load_debug_do_tick() { return decodePackedData(79, 0, 1); } - private uint load_debug_last_ins() { return decodePackedData(79, 0, 2); } - private uint load_debug_last_stall() { return decodePackedData(79, 0, 3); } - private uint load_debug_arb_0() { return decodePackedData(80, 0, 0); } + private uint load_csr__privilege() { return decodePackedData(6, 0, 2); } + private uint load_uart__rbr_thr_ier_iir() { return decodePackedData(6, 0, 3); } + private uint load_uart__lcr_mcr_lsr_scr() { return decodePackedData(7, 0, 0); } + private uint load_uart__thre_ip() { return decodePackedData(7, 0, 1); } + private uint load_uart__interrupting() { return decodePackedData(7, 0, 2); } + private uint load_uart__input_tag() { return decodePackedData(7, 0, 3); } + private uint load_clint__msip() { return decodePackedData(8, 0, 0); } + private uint load_clint__mtimecmp_lo() { return decodePackedData(8, 0, 1); } + private uint load_clint__mtimecmp_hi() { return decodePackedData(8, 0, 2); } + private uint load_clint__mtime_lo() { return decodePackedData(8, 0, 3); } + private uint load_clint__mtime_hi() { return decodePackedData(9, 0, 0); } + private uint load_uart_buffer__ptr() { return decodePackedData(9, 0, 1); } + private uint load_mmu__mode() { return decodePackedData(17, 0, 2); } + private uint load_mmu__ppn() { return decodePackedData(17, 0, 3); } + private uint load_stall() { return decodePackedData(18, 0, 0); } + private uint load_clock() { return decodePackedData(18, 0, 1); } + private uint load_commits() { return decodePackedData(18, 0, 2); } + private uint load_xreg0() { return decodePackedData(18, 0, 3); } + private uint load_xreg1() { return decodePackedData(19, 0, 0); } + private uint load_xreg2() { return decodePackedData(19, 0, 1); } + private uint load_xreg3() { return decodePackedData(19, 0, 2); } + private uint load_xreg4() { return decodePackedData(19, 0, 3); } + private uint load_xreg5() { return decodePackedData(20, 0, 0); } + private uint load_xreg6() { return decodePackedData(20, 0, 1); } + private uint load_xreg7() { return decodePackedData(20, 0, 2); } + private uint load_xreg8() { return decodePackedData(20, 0, 3); } + private uint load_xreg9() { return decodePackedData(21, 0, 0); } + private uint load_xreg10() { return decodePackedData(21, 0, 1); } + private uint load_xreg11() { return decodePackedData(21, 0, 2); } + private uint load_xreg12() { return decodePackedData(21, 0, 3); } + private uint load_xreg13() { return decodePackedData(22, 0, 0); } + private uint load_xreg14() { return decodePackedData(22, 0, 1); } + private uint load_xreg15() { return decodePackedData(22, 0, 2); } + private uint load_xreg16() { return decodePackedData(22, 0, 3); } + private uint load_xreg17() { return decodePackedData(23, 0, 0); } + private uint load_xreg18() { return decodePackedData(23, 0, 1); } + private uint load_xreg19() { return decodePackedData(23, 0, 2); } + private uint load_xreg20() { return decodePackedData(23, 0, 3); } + private uint load_xreg21() { return decodePackedData(24, 0, 0); } + private uint load_xreg22() { return decodePackedData(24, 0, 1); } + private uint load_xreg23() { return decodePackedData(24, 0, 2); } + private uint load_xreg24() { return decodePackedData(24, 0, 3); } + private uint load_xreg25() { return decodePackedData(25, 0, 0); } + private uint load_xreg26() { return decodePackedData(25, 0, 1); } + private uint load_xreg27() { return decodePackedData(25, 0, 2); } + private uint load_xreg28() { return decodePackedData(25, 0, 3); } + private uint load_xreg29() { return decodePackedData(26, 0, 0); } + private uint load_xreg30() { return decodePackedData(26, 0, 1); } + private uint load_xreg31() { return decodePackedData(26, 0, 2); } + private uint load_pc() { return decodePackedData(26, 0, 3); } + private uint load_reservation_en() { return decodePackedData(27, 0, 0); } + private uint load_reservation_addr() { return decodePackedData(27, 0, 1); } + private uint load_memop_src_v() { return decodePackedData(27, 0, 2); } + private uint load_memop_dst_v() { return decodePackedData(27, 0, 3); } + private uint load_memop_src_p() { return decodePackedData(28, 0, 0); } + private uint load_memop_dst_p() { return decodePackedData(28, 0, 1); } + private uint load_memop_n() { return decodePackedData(28, 0, 2); } + private uint load_stall_count() { return decodePackedData(28, 0, 3); } + private uint load_trap_count() { return decodePackedData(29, 0, 0); } + private uint load_debug_do_tick() { return decodePackedData(29, 0, 1); } + private uint load_debug_last_ins() { return decodePackedData(29, 0, 2); } + private uint load_debug_last_stall() { return decodePackedData(29, 0, 3); } + private uint load_debug_arb_0() { return decodePackedData(30, 0, 0); } private uint load_csr(int addr) { - int lin = (addr >> 2) + 324; - return decodePackedData(lin % 128, lin / 128, addr & 0x3); + int lin = (addr >> 2) + 32; + return decodePackedData(lin % 64, lin / 64, addr & 0x3); + } + private uint load_l1_cache(int addr) { + int lin = (addr >> 2) + 1056; + return decodePackedData(lin % 64, lin / 64, addr & 0x3); } private uint getUartBuffer(int idx) { - int lin = idx + 206; + int lin = idx + 38; int[] acc = addr_lin(lin); return decodePackedData(acc[0], acc[1], acc[2]); } diff --git a/_Nix/NixProgramLoader.asset b/_Nix/NixProgramLoader.asset index 1d11e112..7036aaeb 100755 --- a/_Nix/NixProgramLoader.asset +++ b/_Nix/NixProgramLoader.asset @@ -17,10 +17,11 @@ MonoBehaviour: udonAssembly: assemblyError: sourceCsScript: {fileID: 11500000, guid: b54997385532bd84d88ee0b5ac0c37d1, type: 3} + scriptVersion: 2 + compiledVersion: 2 behaviourSyncMode: 0 - behaviourIDHeapVarName: __refl_const_intnl_udonTypeID - compileErrors: [] hasInteractEvent: 0 + scriptID: -8682916381595922266 serializationData: SerializedFormat: 2 SerializedBytes: @@ -53,42 +54,36 @@ MonoBehaviour: - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: vm_mat + - Name: k__BackingField Entry: 7 - Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 4|System.RuntimeType, mscorlib + Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Material, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineMaterial - - Name: symbolOriginalName - Entry: 1 - Data: vm_mat - - Name: symbolUniqueName - Entry: 1 - Data: vm_mat - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -98,9 +93,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -115,41 +107,83 @@ MonoBehaviour: Data: TexR - Name: $v Entry: 7 - Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TexR + - Name: k__BackingField Entry: 7 - Data: 7|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineTexture2D - - Name: symbolOriginalName - Entry: 1 - Data: TexR - - Name: symbolUniqueName - Entry: 1 - Data: TexR - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: TexG + - Name: $v + Entry: 7 + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TexG + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: @@ -161,9 +195,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -175,190 +206,34 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: TexG + Data: TexB - Name: $v Entry: 7 Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 11|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineTexture2D - - Name: symbolOriginalName - Entry: 1 - Data: TexG - - Name: symbolUniqueName - Entry: 1 - Data: TexG - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 9 - Data: 9 - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k + - Name: k__BackingField Entry: 1 Data: TexB - - Name: $v - Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 13|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType + - Name: k__BackingField Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineTexture2D - - Name: symbolOriginalName - Entry: 1 - Data: TexB - - Name: symbolUniqueName - Entry: 1 - Data: TexB - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes + Data: 6 + - Name: k__BackingField Entry: 9 - Data: 9 - - Name: userBehaviourSource + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: - Entry: 8 - Data: - - Name: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: TexA - - Name: $v - Entry: 7 - Data: 14|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 15|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 9 - Data: 8 - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineTexture2D - - Name: symbolOriginalName - Entry: 1 - Data: TexA - - Name: symbolUniqueName - Entry: 1 - Data: TexA - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 9 - Data: 9 - - Name: userBehaviourSource - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: InfoObjects - - Name: $v - Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol - Entry: 7 - Data: 17|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 18|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.GameObject[], UnityEngine.CoreModule - - Name: - Entry: 8 - Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineGameObjectArray - - Name: symbolOriginalName - Entry: 1 - Data: InfoObjects - - Name: symbolUniqueName - Entry: 1 - Data: InfoObjects - - Name: symbolDefaultValue - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: fieldAttributes - Entry: 7 - Data: 19|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -368,12 +243,111 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: TexA + - Name: $v + Entry: 7 + Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TexA + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: InfoObjects + - Name: $v + Entry: 7 + Data: 14|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: InfoObjects + - Name: k__BackingField + Entry: 7 + Data: 15|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.GameObject[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 15 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 16|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 8 Data: diff --git a/_Nix/NixStep.asset b/_Nix/NixStep.asset index 6b5b778a..9d32a9e0 100755 --- a/_Nix/NixStep.asset +++ b/_Nix/NixStep.asset @@ -17,10 +17,11 @@ MonoBehaviour: udonAssembly: assemblyError: sourceCsScript: {fileID: 11500000, guid: 0b694aab2de238449883e34697e36152, type: 3} + scriptVersion: 2 + compiledVersion: 2 behaviourSyncMode: 0 - behaviourIDHeapVarName: __refl_const_intnl_udonTypeID - compileErrors: [] hasInteractEvent: 1 + scriptID: 8766221617999079234 serializationData: SerializedFormat: 2 SerializedBytes: @@ -53,42 +54,36 @@ MonoBehaviour: - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + - Name: k__BackingField + Entry: 1 + Data: vm_mat + - Name: k__BackingField Entry: 7 - Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 4|System.RuntimeType, mscorlib + Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Material, UnityEngine.CoreModule - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: UnityEngineMaterial - - Name: symbolOriginalName - Entry: 1 - Data: vm_mat - - Name: symbolUniqueName - Entry: 1 - Data: vm_mat - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -98,9 +93,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: @@ -115,43 +107,37 @@ MonoBehaviour: Data: Off - Name: $v Entry: 7 - Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: fieldSymbol + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Off + - Name: k__BackingField Entry: 7 - Data: 7|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor - - Name: internalType - Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - - Name: declarationType - Entry: 3 - Data: 1 - - Name: syncMode - Entry: 3 - Data: 0 - - Name: symbolResolvedTypeName - Entry: 1 - Data: SystemBoolean - - Name: symbolOriginalName - Entry: 1 - Data: Off - - Name: symbolUniqueName - Entry: 1 - Data: Off - - Name: symbolDefaultValue + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: Entry: 6 Data: - Name: Entry: 8 Data: - - Name: fieldAttributes + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes Entry: 7 - Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -161,9 +147,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: userBehaviourSource - Entry: 6 - Data: - Name: Entry: 8 Data: diff --git a/_Nix/ScratchFBRT.renderTexture b/_Nix/ScratchFBRT.renderTexture new file mode 100755 index 00000000..d926d38c --- /dev/null +++ b/_Nix/ScratchFBRT.renderTexture @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ScratchFBRT + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 3 + m_Width: 81 + m_Height: 25 + m_AntiAliasing: 1 + m_MipCount: -1 + m_DepthFormat: 0 + m_ColorFormat: 8 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 0 + m_BindMS: 0 + m_EnableCompatibleFormat: 0 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 0 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_Dimension: 2 + m_VolumeDepth: 1 diff --git a/_Nix/ScratchFBRT.renderTexture.meta b/_Nix/ScratchFBRT.renderTexture.meta new file mode 100755 index 00000000..ccc95dcc --- /dev/null +++ b/_Nix/ScratchFBRT.renderTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b84fa74c45db1684e9f90635877237d0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/debug_cam_rt.renderTexture b/_Nix/debug_cam_rt.renderTexture index a0e24a82..ebb09517 100755 --- a/_Nix/debug_cam_rt.renderTexture +++ b/_Nix/debug_cam_rt.renderTexture @@ -12,16 +12,19 @@ RenderTexture: Hash: 00000000000000000000000000000000 m_ForcedFallbackFormat: 4 m_DownscaleFallback: 0 - m_Width: 768 - m_Height: 128 + serializedVersion: 3 + m_Width: 384 + m_Height: 64 m_AntiAliasing: 1 + m_MipCount: -1 m_DepthFormat: 1 - m_ColorFormat: 0 + m_ColorFormat: 8 m_MipMap: 0 m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 m_BindMS: 0 + m_EnableCompatibleFormat: 1 m_TextureSettings: serializedVersion: 2 m_FilterMode: 0 diff --git a/_Nix/display.shader b/_Nix/display.shader deleted file mode 100755 index 10b61869..00000000 --- a/_Nix/display.shader +++ /dev/null @@ -1,48 +0,0 @@ -Shader "Nix/Display" -{ - Properties - { - _Tex ("Texture", 2D) = "white" {} - } - SubShader - { - Tags { "RenderType"="Transparent" "Queue"="Transparent" } - Blend SrcAlpha OneMinusSrcAlpha - Cull Off - - Pass - { - CGPROGRAM - #include "UnityCG.cginc" - #include "rvc/helpers.cginc" - #pragma target 5.0 - #pragma vertex vert_ortho_fullscreen - #pragma fragment frag - - Texture2D _Tex; - - float4 frag(v2f i) : SV_Target { - uint2 dim; - _Tex.GetDimensions(dim.x, dim.y); - - if (is_ortho) { - // FIXME: state size is hardcoded here... - uint2 pos = (i.uv * (uint2(128, 128) * uint2(6, 1))) % uint2(128, 128); - uint4 data = _Tex[pos]; - - // output packed values, stretched along x - float3 res[6]; - pack_uint4(data, res); - - uint idx = (uint)(i.uv.x * 6); - return float4(res[idx], 1); - } else { - uint2 pos = i.uv * dim; - uint4 data = _Tex[pos]; - return float4(uint_to_color(data).rgb, 1); - } - } - ENDCG - } - } -} diff --git a/_Nix/rvc/data/bare.g.bmp b/_Nix/fb81x25_exp_red.png similarity index 53% rename from _Nix/rvc/data/bare.g.bmp rename to _Nix/fb81x25_exp_red.png index 409f38d9..c9973277 100755 Binary files a/_Nix/rvc/data/bare.g.bmp and b/_Nix/fb81x25_exp_red.png differ diff --git a/_Nix/rvc/data/linux_payload.b.bmp.meta b/_Nix/fb81x25_exp_red.png.meta similarity index 83% rename from _Nix/rvc/data/linux_payload.b.bmp.meta rename to _Nix/fb81x25_exp_red.png.meta index 94a6265c..df3674e7 100755 --- a/_Nix/rvc/data/linux_payload.b.bmp.meta +++ b/_Nix/fb81x25_exp_red.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b1117b2ed49c12e4ebf9cb32a4ac299f +guid: b28d4bb1d782a6641bf231e23ea95398 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -20,7 +20,7 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - isReadable: 0 + isReadable: 1 streamingMipmaps: 0 streamingMipmapsPriority: 0 grayScaleToAlpha: 0 @@ -34,9 +34,9 @@ TextureImporter: filterMode: 0 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -61,7 +61,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 + maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: 4 textureCompression: 0 @@ -73,7 +73,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 8192 + maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: 4 textureCompression: 0 @@ -85,7 +85,19 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Android - maxTextureSize: 8192 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: 4 textureCompression: 0 diff --git a/_Nix/fb_crt.asset b/_Nix/fb_crt.asset new file mode 100755 index 00000000..f940bfdf --- /dev/null +++ b/_Nix/fb_crt.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!86 &8600000 +CustomRenderTexture: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: fb_crt + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 3 + m_Width: 81 + m_Height: 25 + m_AntiAliasing: 1 + m_MipCount: -1 + m_DepthFormat: 0 + m_ColorFormat: 8 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 0 + m_BindMS: 0 + m_EnableCompatibleFormat: 0 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 0 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_Dimension: 2 + m_VolumeDepth: 1 + m_Material: {fileID: 2100000, guid: ee04f338ddf53ad408a2f1553956bea2, type: 2} + m_InitSource: 0 + m_InitMaterial: {fileID: 2100000, guid: 8d3d8704dc0acc64ababc7c4712d3cb7, type: 2} + m_InitColor: {r: 0, g: 0, b: 0, a: 0} + m_InitTexture: {fileID: 0} + m_UpdateMode: 1 + m_InitializationMode: 0 + m_UpdateZoneSpace: 1 + m_CurrentUpdateZoneSpace: 1 + m_UpdateZones: [] + m_UpdatePeriod: 0 + m_ShaderPass: 0 + m_CubemapFaceMask: 4294967295 + m_DoubleBuffered: 1 + m_WrapUpdateZones: 0 diff --git a/_Nix/fb_crt.asset.meta b/_Nix/fb_crt.asset.meta new file mode 100755 index 00000000..0a2be41f --- /dev/null +++ b/_Nix/fb_crt.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed7ea16a121c29a45a7a9d41487932cd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8600000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/fb_display.mat b/_Nix/fb_display.mat new file mode 100755 index 00000000..42354e12 --- /dev/null +++ b/_Nix/fb_display.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: fb_display + m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 8600000, guid: ed7ea16a121c29a45a7a9d41487932cd, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8600000, guid: ed7ea16a121c29a45a7a9d41487932cd, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/fb_display.mat.meta b/_Nix/fb_display.mat.meta new file mode 100755 index 00000000..c6aa79f1 --- /dev/null +++ b/_Nix/fb_display.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c693b862d232ca840bbb8699a949600c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/fb_mat.mat b/_Nix/fb_mat.mat new file mode 100755 index 00000000..2ff28c58 --- /dev/null +++ b/_Nix/fb_mat.mat @@ -0,0 +1,82 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: fb_mat + m_Shader: {fileID: 4800000, guid: 813483f5200920844805d5247ca3303d, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Data: + m_Texture: {fileID: 8600000, guid: cebb0068b90e40246b9bdd23499cf08e, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Init: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/fb_mat.mat.meta b/_Nix/fb_mat.mat.meta new file mode 100755 index 00000000..c7241186 --- /dev/null +++ b/_Nix/fb_mat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee04f338ddf53ad408a2f1553956bea2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/fbexport.mat b/_Nix/fbexport.mat new file mode 100755 index 00000000..44f1c27d --- /dev/null +++ b/_Nix/fbexport.mat @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: fbexport + m_Shader: {fileID: 4800000, guid: 8b591568fb27d9a4280ce5663985cc77, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8600000, guid: ed7ea16a121c29a45a7a9d41487932cd, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/fbexport.mat.meta b/_Nix/fbexport.mat.meta new file mode 100755 index 00000000..911a874d --- /dev/null +++ b/_Nix/fbexport.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ec3d4a504341bc45aefe225346ee449 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/BinaryTextureImporter.preset b/_Nix/rvc/BinaryTextureImporter.preset new file mode 100755 index 00000000..844909b7 --- /dev/null +++ b/_Nix/rvc/BinaryTextureImporter.preset @@ -0,0 +1,438 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!181963792 &2655988077585873504 +Preset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BinaryTextureImporter + m_TargetType: + m_NativeTypeID: 1006 + m_ManagedTypePPtr: {fileID: 0} + m_ManagedTypeFallback: + m_Properties: + - target: {fileID: 0} + propertyPath: m_ExternalObjects.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MipMapMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableMipMap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_sRGBTexture + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LinearTexture + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_FadeOut + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_BorderMipMap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MipMapsPreserveCoverage + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_AlphaTestReferenceValue + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MipMapFadeDistanceStart + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MipMapFadeDistanceEnd + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ConvertToNormalMap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ExternalNormalMap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_HeightScale + value: 0.25 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NormalMapFilter + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_IsReadable + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_StreamingMipmaps + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_StreamingMipmapsPriority + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrayScaleToAlpha + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GenerateCubemap + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_CubemapConvolution + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SeamlessCubemap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureFormat + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MaxTextureSize + value: 2048 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_FilterMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_Aniso + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_MipBias + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_WrapU + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_WrapV + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureSettings.m_WrapW + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NPOTScale + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Lightmap + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_CompressionQuality + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteExtrude + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteMeshType + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Alignment + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpritePivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpritePivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpritePixelsToUnits + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteBorder.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteBorder.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteBorder.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteBorder.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteGenerateFallbackPhysicsShape + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_AlphaUsage + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_AlphaIsTransparency + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteTessellationDetail + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureType + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureShape + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SingleChannelComponent + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MaxTextureSizeSet + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_CompressionQualitySet + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TextureFormatSet + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ApplyGammaDecoding + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_BuildTarget + value: DefaultTexturePlatform + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_MaxTextureSize + value: 8192 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_ResizeAlgorithm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_TextureFormat + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_TextureCompression + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_CompressionQuality + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_CrunchedCompression + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_AllowsAlphaSplitting + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_Overridden + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_AndroidETC2FallbackOverride + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[0].m_ForceMaximumCompressionQuality_BC6H_BC7 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_BuildTarget + value: Standalone + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_MaxTextureSize + value: 8192 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_ResizeAlgorithm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_TextureFormat + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_TextureCompression + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_CompressionQuality + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_CrunchedCompression + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_AllowsAlphaSplitting + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_Overridden + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_AndroidETC2FallbackOverride + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[1].m_ForceMaximumCompressionQuality_BC6H_BC7 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_BuildTarget + value: Android + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_MaxTextureSize + value: 8192 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_ResizeAlgorithm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_TextureFormat + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_TextureCompression + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_CompressionQuality + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_CrunchedCompression + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_AllowsAlphaSplitting + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_Overridden + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_AndroidETC2FallbackOverride + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PlatformSettings.Array.data[2].m_ForceMaximumCompressionQuality_BC6H_BC7 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Sprites.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Outline.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_PhysicsShape.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Bones.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_SpriteID + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_InternalID + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Vertices.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Indices.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Edges.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_Weights.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpriteSheet.m_SecondaryTextures.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_SpritePackingTag + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PSDRemoveMatte + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_PSDShowRemoveMatteOption + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_UserData + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_AssetBundleName + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_AssetBundleVariant + value: + objectReference: {fileID: 0} diff --git a/_Nix/rvc/BinaryTextureImporter.preset.meta b/_Nix/rvc/BinaryTextureImporter.preset.meta new file mode 100755 index 00000000..5ec6e65e --- /dev/null +++ b/_Nix/rvc/BinaryTextureImporter.preset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc136986b300ec14986a575c024301c8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2655988077585873504 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/SmoothPixelFont.cginc b/_Nix/rvc/SmoothPixelFont.cginc new file mode 100755 index 00000000..4ea05c3b --- /dev/null +++ b/_Nix/rvc/SmoothPixelFont.cginc @@ -0,0 +1,270 @@ +// Temporary defines for testing only +#define __0 48 +#define __1 49 +#define __2 50 +#define __3 51 +#define __4 52 +#define __5 53 +#define __6 54 +#define __7 55 +#define __8 56 +#define __9 57 +#define __SPACE 32 +#define __EXCLAMATION 33 +#define __QUOTE 34 +#define __HASH 35 +#define __DOLLAR 36 +#define __AMP 38 +#define __APOSTROPHE 39 +#define __PAREN_OPEN 40 +#define __PAREN_CLOSED 41 +#define __MULT 42 +#define __PLUS 43 +#define __COMMA 44 +#define __DASH 45 +#define __PERIOD 46 +#define __FWD_SLASH 47 +#define __COLON 58 +#define __SEMICOLON 59 +#define __LESSTHAN 60 +#define __EQUAL 61 +#define __GREATERTHAN 62 +#define __QUESTION 63 +#define __CARROT 94 +#define __A 65 +#define __B 66 +#define __C 67 +#define __D 68 +#define __E 69 +#define __F 70 +#define __G 71 +#define __H 72 +#define __I 73 +#define __J 74 +#define __K 75 +#define __L 76 +#define __M 77 +#define __N 78 +#define __O 79 +#define __P 80 +#define __Q 81 +#define __R 82 +#define __S 83 +#define __T 84 +#define __U 85 +#define __V 86 +#define __W 87 +#define __X 88 +#define __Y 89 +#define __Z 90 +#define __a 97 +#define __b 98 +#define __c 99 +#define __d 100 +#define __e 101 +#define __f 102 +#define __g 103 +#define __h 104 +#define __i 105 +#define __j 106 +#define __k 107 +#define __l 108 +#define __m 109 +#define __n 110 +#define __o 111 +#define __p 112 +#define __q 113 +#define __r 114 +#define __s 115 +#define __t 116 +#define __u 117 +#define __v 118 +#define __w 119 +#define __x 120 +#define __y 121 +#define __z 122 +#define __UNDERSCORE 95 + +// Smooth pixel font bitmap +const static uint2 bitmapFont[96] = { + { 0, 0 }, // 0 32 ' ' + { 4472896, 4472896 }, // 1 33 '!' // 0100 0100 0100 0000 0100 0000 0100 0100 0100 0000 0100 0000 + { 11141120, 11141120 }, // 2 34 '"' // 1010 1010 0000 0000 0000 0000 1010 1010 0000 0000 0000 0000 + { 11447968, 11447968 }, // 3 35 '#' // 1010 1110 1010 1110 1010 0000 1010 1110 1010 1110 1010 0000 + { 5162720, 5162724 }, // 4 36 '$' // 0100 1110 1100 0110 1110 0000 0100 1110 1100 0110 1110 0100 + { 0, 0 }, // 5 37 '%' // NOT WRITTEN + { 4868704, 15395552 }, // 6 38 '&' // 0100 1010 0100 1010 0110 0000 1110 1010 1110 1010 1110 0000 + { 4456448, 4456448 }, // 7 39 ''' // 0100 0100 0000 0000 0000 0000 1110 1010 1110 1010 1110 0000 + { 2376736, 6571104 }, // 8 40 '(' // 0010 0100 0100 0100 0010 0000 0110 0100 0100 0100 0110 0000 + { 8668288, 12862656 }, // 9 41 ')' // 1000 0100 0100 0100 1000 0000 1100 0100 0100 0100 1100 0000 + { 674304, 978432 }, // 10 42 '*' // 0000 1010 0100 1010 0000 0000 0000 1110 1110 1110 0000 0000 + { 320512, 320512 }, // 11 43 '+' // 0000 0100 1110 0100 0000 0000 0000 0100 1110 0100 0000 0000 + { 1088, 1228 }, // 12 44 ',' // 0000 0000 0000 0100 0100 0000 0000 0000 0000 0100 1100 1100 + { 57344, 57344 }, // 13 45 '-' // 0000 0000 1110 0000 0000 0000 0000 0000 1110 0000 0000 0000 + { 64, 64 }, // 14 46 '.' // 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0100 0000 + { 2246784, 2287744 }, // 15 47 '/' // 0010 0010 0100 1000 1000 0000 0010 0010 1110 1000 1000 0000 + { 6990528, 15379168 }, // 16 48 '0' // 0110 1010 1010 1010 1100 0000 1110 1010 1010 1010 1110 0000 + { 4998368, 4998368 }, // 17 49 '1' // 0100 1100 0100 0100 1110 0000 0100 1100 0100 0100 1110 0000 + { 14870752, 14870752 }, // 18 50 '2' // 1110 0010 1110 1000 1110 0000 1110 0010 1110 1000 1110 0000 + { 14828256, 14836448 }, // 19 51 '3' // 1110 0010 0100 0010 1110 0000 1110 0010 0110 0010 1110 0000 + { 9101856, 9101856 }, // 20 52 '4' // 1000 1010 1110 0010 0010 0000 1000 1010 1110 0010 0010 0000 + { 15262432, 15262432 }, // 21 53 '5' // 1110 1000 1110 0010 1110 0000 1110 1000 1110 0010 1110 0000 + { 6875872, 15264480 }, // 22 54 '6' // 0110 1000 1110 1010 1110 0000 1110 1000 1110 1010 1110 0000 + { 14829120, 14836800 }, // 23 55 '7' // 1110 0010 0100 0110 0100 0000 1110 0010 0110 0100 0100 0000 + { 15395552, 15395552 }, // 24 56 '8' // 1110 1010 1110 1010 1110 0000 1110 1010 1110 1010 1110 0000 + { 15393472, 15393504 }, // 25 57 '9' // 1110 1010 1110 0010 1100 0000 1110 1010 1110 0010 1110 0000 + { 263168, 263168 }, // 26 58 ':' // 0000 0100 0000 0100 0000 0000 0000 0100 0000 0100 0000 0000 + { 263232, 263244 }, // 27 59 ';' // 0000 0100 0000 0100 0100 0000 0000 0100 0000 0100 0100 1100 + { 2393120, 7261792 }, // 28 60 '<' // 0010 0100 1000 0100 0010 0000 0110 1110 1100 1110 0110 0000 + { 921088, 921088 }, // 29 61 '=' // 0000 1110 0000 1110 0000 0000 0000 1110 0000 1110 0000 0000 + { 8660096, 13528768 }, // 30 62 '>' // 1000 0100 0010 0100 1000 0000 1100 1110 0110 1110 1100 0000 + { 12730432, 14836800 }, // 31 63 '?' // 1100 0010 0100 0000 0100 0000 1110 0010 0110 0100 0100 0000 + { 0, 0 }, // 32 64 '@' // NOT WRITTEN + { 15395488, 15395488 }, // 33 65 'A' // 1110 1010 1110 1010 1010 0000 1110 1010 1110 1010 1010 0000 + { 15387360, 15395552 }, // 34 66 'B' // 1110 1010 1100 1010 1110 0000 1110 1010 1110 1010 1110 0000 + { 15239392, 15239392 }, // 35 67 'C' // 1110 1000 1000 1000 1110 0000 1110 1000 1000 1000 1110 0000 + { 13281984, 15379168 }, // 36 68 'D' // 1100 1010 1010 1010 1100 0000 1110 1010 1010 1010 1110 0000 + { 15255776, 15255776 }, // 37 69 'E' // 1110 1000 1100 1000 1110 0000 1110 1000 1100 1000 1110 0000 + { 15255680, 15255680 }, // 38 70 'F' // 1110 1000 1100 1000 1000 0000 1110 1000 1100 1000 1000 0000 + { 15248096, 15248096 }, // 39 71 'G' // 1110 1000 1010 1010 1110 0000 1110 1000 1010 1010 1110 0000 + { 11201184, 11201184 }, // 40 72 'H' // 1010 1010 1110 1010 1010 0000 1010 1010 1110 1010 1010 0000 + { 14959840, 14959840 }, // 41 73 'I' // 1110 0100 0100 0100 1110 0000 1110 0100 0100 0100 1110 0000 + { 2239200, 2239200 }, // 42 74 'J' // 0010 0010 0010 1010 1110 0000 0010 0010 0010 1010 1110 0000 + { 11192992, 11201184 }, // 43 75 'K' // 1010 1010 1100 1010 1010 0000 1010 1010 1110 1010 1010 0000 + { 8947936, 8947936 }, // 44 76 'L' // 1000 1000 1000 1000 1110 0000 1000 1000 1000 1000 1110 0000 + { 11463328, 15657632 }, // 45 77 'M' // 1010 1110 1110 1010 1010 0000 1110 1110 1110 1010 1010 0000 + { 13281952, 15379104 }, // 46 78 'N' // 1100 1010 1010 1010 1010 0000 1110 1010 1010 1010 1010 0000 + { 15379168, 15379168 }, // 47 79 'O' // 1110 1010 1010 1010 1110 0000 1110 1010 1010 1010 1110 0000 + { 15394944, 15394944 }, // 48 80 'P' // 1110 1010 1110 1000 1000 0000 1110 1010 1110 1000 1000 0000 + { 15379040, 15379168 }, // 49 81 'Q' // 1110 1010 1010 1010 0110 0000 1110 1010 1010 1010 1110 0000 + { 15387296, 15395488 }, // 50 82 'R' // 1110 1010 1100 1010 1010 0000 1110 1010 1110 1010 1010 0000 + { 6873792, 15262432 }, // 51 83 'S' // 0110 1000 1110 0010 1100 0000 1110 1000 1110 0010 1110 0000 + { 14959680, 14959680 }, // 52 84 'T' // 1110 0100 0100 0100 0100 0000 1110 0100 0100 0100 0100 0000 + { 11184736, 11184864 }, // 53 85 'U' // 1010 1010 1010 1010 0110 0000 1010 1010 1010 1010 1110 0000 + { 11445472, 11202112 }, // 54 86 'V' // 1010 1110 1010 0100 1110 0000 1010 1010 1110 1110 0100 0000 + { 11202208, 11202272 }, // 55 87 'W' // 1010 1010 1110 1110 1010 0000 1010 1010 1110 1110 1110 0000 + { 11160224, 11201184 }, // 56 88 'X' // 1010 1010 0100 1010 1010 0000 1010 1010 1110 1010 1010 0000 + { 15352896, 11420736 }, // 57 89 'Y' // 1110 1010 0100 0100 0100 0000 1010 1110 0100 0100 0100 0000 + { 14829792, 14870752 }, // 58 90 'Z' // 1110 0010 0100 1000 1110 0000 1110 0010 1110 1000 1110 0000 + { 0, 0 }, // 59 91 '[' // NOT WRITTEN + { 0, 0 }, // 60 92 '\' // NOT WRITTEN + { 0, 0 }, // 61 93 ']' // NOT WRITTEN + { 4849664, 15597568 }, // 62 94 '^' // 0100 1010 0000 0000 0000 0000 1110 1110 0000 0000 0000 0000 + { 224, 224 }, // 63 95 '_' // 0000 0000 0000 0000 1110 0000 0000 0000 0000 0000 1110 0000 + { 0, 0 }, // 64 96 '`' // NOT WRITTEN + { 436832, 961248 }, // 65 97 'a' // 0000 0110 1010 1010 0110 0000 0000 1110 1010 1010 1110 0000 + { 9349856, 9349856 }, // 66 98 'b' // 1000 1110 1010 1010 1110 0000 1000 1110 1010 1010 1110 0000 + { 952544, 952544 }, // 67 99 'c' // 0000 1110 1000 1000 1110 0000 0000 1110 1000 1000 1110 0000 + { 3058400, 3058400 }, // 68 100 'd' // 0010 1110 1010 1010 1110 0000 0010 1110 1010 1010 1110 0000 + { 961760, 962272 }, // 69 101 'e' // 0000 1110 1010 1100 1110 0000 0000 1110 1010 1110 1110 0000 + { 6612032, 6612032 }, // 70 102 'f' // 0110 0100 1110 0100 0100 0000 0110 0100 1110 0100 0100 0000 + { 976608, 962272 }, // 71 103 'g' // 0000 1110 1110 0110 1110 0000 0000 1110 1010 1110 1110 0000 + { 9349792, 9349792 }, // 72 104 'h' // 1000 1110 1010 1010 1010 0000 1000 1110 1010 1010 1010 0000 + { 4474080, 4867296 }, // 73 105 'i' // 0100 0100 0100 0100 1110 0000 0100 1010 0100 0100 1110 0000 + { 2239200, 2435808 }, // 74 106 'j' // 0010 0010 0010 1010 1110 0000 0010 0101 0010 1010 1110 0000 + { 9096352, 9105056 }, // 75 107 'k' // 1000 1010 1100 1100 1010 0000 1000 1010 1110 1110 1010 0000 + { 4474080, 12862688 }, // 76 108 'l' // 0100 0100 0100 0100 1110 0000 1100 0100 0100 0100 1110 0000 + { 715424, 977568 }, // 77 109 'm' // 0000 1010 1110 1010 1010 0000 0000 1110 1110 1010 1010 0000 + { 830112, 961184 }, // 78 110 'n' // 0000 1100 1010 1010 1010 0000 0000 1110 1010 1010 1010 0000 + { 961248, 961248 }, // 79 111 'o' // 0000 1110 1010 1010 1110 0000 0000 1110 1010 1010 1110 0000 + { 962176, 962176 }, // 80 112 'p' // 0000 1110 1010 1110 1000 0000 0000 1110 1010 1110 1000 0000 + { 962080, 962080 }, // 81 113 'q' // 0000 1110 1010 1110 0010 0000 0000 1110 1010 1110 0010 0000 + { 714880, 968832 }, // 82 114 'r' // 0000 1010 1110 1000 1000 0000 0000 1110 1100 1000 1000 0000 + { 968416, 968416 }, // 83 115 's' // 0000 1110 1100 0110 1110 0000 0000 1110 1100 0110 1110 0000 + { 5129280, 5129280 }, // 84 116 't' // 0100 1110 0100 0100 0100 0000 0100 1110 0100 0100 0100 0000 + { 699104, 699104 }, // 85 117 'u' // 0000 1010 1010 1010 1110 0000 0000 1010 1010 1010 1110 0000 + { 715328, 700128 }, // 86 118 'v' // 0000 1010 1110 1010 0100 0000 0000 1010 1010 1110 1110 0000 + { 700064, 700128 }, // 87 119 'w' // 0000 1010 1010 1110 1010 0000 0000 1010 1010 1110 1110 0000 + { 672928, 716448 }, // 88 120 'x' // 0000 1010 0100 0100 1010 0000 0000 1010 1110 1110 1010 0000 + { 713312, 713440 }, // 89 121 'y' // 0000 1010 1110 0010 0110 0000 0000 1010 1110 0010 1110 0000 + { 945376, 945376 }, // 90 122 'z' // 0000 1110 0110 1100 1110 0000 0000 1110 0110 1100 1110 0000 + { 0, 0 }, // 91 123 '{' // NOT WRITTEN + { 0, 0 }, // 92 124 '|' // NOT WRITTEN + { 0, 0 }, // 93 125 '}' // NOT WRITTEN + { 0, 0 }, // 94 126 '~' // NOT WRITTEN + { 0, 0 }, // 95 127 FREEBIE!!! // NOT WRITTEN + }; + + + +//////////////////////////////////////////////////////////////////// +// General debug functions below here + +// Shockingly, including the ability to render text doesn't +// slow down number printing if text isn't used. +// A basic versino of the debug screen without text was only 134 +// instructions. + +float PrintChar(uint charNum, float2 charUV, float2 softness, float offset) +{ + // .x = 15% .y = 35% added, it's 1.0. ( 0 1 would be 35% ) + charUV += float2(0, 0.5); + uint2 bitmap = bitmapFont[charNum-32]; + uint4 bitmapA = bitmap.xxxx; + uint4 bitmapB = bitmap.yyyy; + uint2 pixel = charUV; + uint index = pixel.x + pixel.y * 4 - 4; + uint4 shift = uint4(0, 1, 4, 5) + index; + uint4 bitSelect = uint4(1, 1, 1, 1); + bitmapA = (bitmapA >> shift) & bitSelect; + bitmapB = (bitmapB >> shift) & bitSelect; + float4 neighbors = (bitmapB & 1) ? (bitmapA ? 1 : 0.35) : (bitmapA ? 0.15 : 0); + float2 pixelUV = smoothstep(0, 1, frac(charUV)); + float o = lerp( + lerp(neighbors.x, neighbors.y, pixelUV.x), + lerp(neighbors.z, neighbors.w, pixelUV.x), pixelUV.y); + o += offset; + return saturate(o * softness - softness / 2); +} + +// Print a number on a line +// +// value (float) Number value to display +// charUV (float2) coordinates on the character to render +// softness +// digit (uint) Digit in number to render +// digitOffset (uint) Shift digits to the right +// numFractDigits (uint) Number of digits to round to after the decimal +// +float PrintNumberOnLine(float value, float2 charUV, float2 softness, uint digit, uint digitOffset, uint numFractDigits, bool leadZero, float offset) +{ + uint charNum; + if (value < 0 && digit == 0) + { + charNum = __DASH; + } + else + { + value = abs(value); + + if (digit == digitOffset) + { + charNum = __PERIOD; + } + else + { + int dmfd = (int)digit - (int)digitOffset; + if (dmfd > 0) + { + //fractional part. + uint fpart = round(frac(value) * pow(10, numFractDigits)); + uint l10 = pow(10.0, numFractDigits - dmfd); + charNum = ((uint)(fpart / l10)) % 10; + } + else + { + float l10 = pow(10.0, (float)(dmfd + 1)); + charNum = (uint)(value * l10); + + //Disable leading 0's? + if (!leadZero && dmfd != -1 && charNum == 0 && dmfd < 0.5) + charNum = ' '-'0'; // space + else + charNum %= (uint)10; + } + charNum += '0'; + } + } + + return PrintChar(charNum, charUV, softness, offset); +} diff --git a/_Nix/rvc/SmoothPixelFont.cginc.meta b/_Nix/rvc/SmoothPixelFont.cginc.meta new file mode 100755 index 00000000..6394193d --- /dev/null +++ b/_Nix/rvc/SmoothPixelFont.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 31cda3159c415604d9a6bc58a2ce6e6c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/console.shader b/_Nix/rvc/console.shader index 0efa73b7..672e12ae 100755 --- a/_Nix/rvc/console.shader +++ b/_Nix/rvc/console.shader @@ -6,15 +6,19 @@ Shader "Nix/console" _FGColor ("Foreground Color", Color) = (0, 1, 0, 1) _Font ("Font Atlas", 2D) = "white" {} - _RVC ("The RVC state texture", 2D) = "black" {} + + _FBTex ("The FB state texture", 2D) = "black" {} + [ToggleUI] _UseUniformData ("Use Uniform Data", Float) = 0 _FB_Width ("Framebuffer width (chars)", Int) = 80 - _FB_Height ("Framebuffer height (chars)", Int) = 60 + _FB_Height ("Framebuffer height (chars)", Int) = 25 - _Atlas_Width ("Atlas width (chars)", Int) = 64 + _Atlas_Width ("Atlas width (chars)", Int) = 32 _Atlas_Height ("Atlas height (chars)", Int) = 8 _CharBorder ("Character Border", Range(0, 1)) = 0.1 + + _BlinkRate ("Blink Rate", Float) = 1.0 } SubShader { @@ -33,14 +37,20 @@ Shader "Nix/console" float4 _BGColor, _FGColor; sampler2D _Font; - Texture2D _RVC; - #define STATE_TEX _RVC + Texture2D _FBTex; uint _FB_Width, _FB_Height; uint _Atlas_Width, _Atlas_Height; float _CharBorder; + float _BlinkRate; + + float _UseUniformData; + cbuffer UniformExpansionBuffer { + float4 _UniformData[1023*2] : packoffset(c0); + float4 _UniformData0[1023] : packoffset(c0); + float4 _UniformData1[1023] : packoffset(c1023); + }; #include "helpers.cginc" - #include "src/types.h" struct appdata { @@ -56,10 +66,53 @@ Shader "Nix/console" return o; } - static uint2 s_dim; + float4 get_fb_char(uint2 pos) + { + pos.x += 1; + if (_UseUniformData) { + uint lin = pos.x + pos.y * (_FB_Width + 1); + return _UniformData[lin % (25*81)]; + } else { + return _FBTex[pos]; + } + } - float4 frag(v2f i) : SV_Target { - STATE_TEX.GetDimensions(s_dim.x, s_dim.y); + // x-dotshare ANSI color scheme + static const float3 PALETTE[16] = + { + float3(16,16,16), // 0 black dark + float3(64,64,64), // bright + float3(232,79,79), // 1 red + float3(210,61,61), + float3(184,214,140), // 2 green + float3(160,207,93), + float3(225,170,93), // 3 yellow + float3(243,157,33), + float3(125,193,207), // 4 blue + float3(78,159,177), + float3(155,100,251), // 5 magenta + float3(133,66,255), + float3(109,135,141), // 6 cyan + float3(66,113,123), + float3(221,221,221), // 7 white + float3(221,221,221), + }; + + uint unpack_float(float data) + { + return (uint)(data*255.0f+0.5f); + } + + float4 frag(v2f i) : SV_Target + { + i.uv.xy *= float2(1.025, 1.025); + i.uv.xy -= float2(0.0125, 0.0125); + if (any(abs(i.uv.xy-.5)>.5)) { + return _BGColor; + } + + // Hack to prevent unity from deleting aliased cbuffer. Branch will never be hit + if (i.uv.x < -0.5f) i.uv.x += _UniformData0[0] + _UniformData1[0]; uint2 fb_idx = uint2(_FB_Width * i.uv.x, _FB_Height * i.uv.y); float2 char_pos = frac(i.uv * float2(_FB_Width, _FB_Height)); @@ -67,20 +120,42 @@ Shader "Nix/console" char_pos *= 1.0 + _CharBorder; char_pos -= _CharBorder * 0.5; - if (char_pos.x < 0.04 || char_pos.y < 0.04 || char_pos.x > 0.96 || char_pos.y > 0.96) + if (char_pos.x < 0.02 || char_pos.y < 0.02 || char_pos.x > 0.98 || char_pos.y > 0.98) return _BGColor; - /* uint c = get_fb_char(fb_idx); */ - uint c = '7'; + float4 scratch = get_fb_char(uint2(-1, 0)); + uint2 cursor_pos = uint2(unpack_float(scratch.x), unpack_float(scratch.y)); + + if (_UseUniformData) + _BlinkRate = 2; // FIXME: hardcoded value... + bool isCursor = _BlinkRate + &&(cursor_pos.x == fb_idx.x && ((uint)_FB_Height - cursor_pos.y - 1) == fb_idx.y) + && ((uint)(_Time.y * _BlinkRate) % 2 == 0); + + float4 data = get_fb_char(fb_idx); + uint c = unpack_float(data.x); + uint fg = unpack_float(data.y); + uint bg = unpack_float(data.z); + float4 fgcolor = float4(PALETTE[((fg & 0xf)*2 + (fg & 0xf0 ? 1 : 0))], 1); + uint bgidx = ((bg & 0xf)*2 + (bg & 0xf0 ? 1 : 0)); + float4 bgcolor = float4(PALETTE[bgidx], 1); + if (bgidx == 0) + bgcolor = _BGColor; + + if (isCursor) { + float4 tmp = fgcolor; + fgcolor = bgcolor; + bgcolor = tmp; + } float2 atlas_offset = float2(c % _Atlas_Width, (c / _Atlas_Width) + 1) * float2(1.0/_Atlas_Width, 1.0/_Atlas_Height); atlas_offset.y = 1 - atlas_offset.y; float2 true_uv = atlas_offset + (char_pos * float2(1.0/_Atlas_Width, 1.0/_Atlas_Height)); - float4 font_mask = tex2D(_Font, true_uv); + float4 font_mask = tex2Dlod(_Font, float4(true_uv, 0, 0)); - return lerp(_BGColor, _FGColor, font_mask.r); + return lerp(bgcolor, _FGColor * fgcolor, font_mask.r); } ENDCG } diff --git a/_Nix/rvc/crt.cginc b/_Nix/rvc/crt.cginc index caee6ed3..7a6b8c37 100755 --- a/_Nix/rvc/crt.cginc +++ b/_Nix/rvc/crt.cginc @@ -1,5 +1,6 @@ // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) // modified: change _SelfTexture2D to Texture2D, from sampler2D +// removed some rotation/3d specific code which is unused in vert shader #ifndef UNITY_CUSTOM_TEXTURE_INCLUDED #define UNITY_CUSTOM_TEXTURE_INCLUDED @@ -142,10 +143,10 @@ v2f_customrendertexture CustomRenderTextureVertexShader(appdata_customrendertext uint vertexID = IN.vertexID % 6; float3 updateZoneCenter = CustomRenderTextureCenters[primitiveID].xyz; float3 updateZoneSize = CustomRenderTextureSizesAndRotations[primitiveID].xyz; - float rotation = CustomRenderTextureSizesAndRotations[primitiveID].w * UNITY_PI / 180.0f; + //float rotation = CustomRenderTextureSizesAndRotations[primitiveID].w * UNITY_PI / 180.0f; #if !UNITY_UV_STARTS_AT_TOP - rotation = -rotation; + //rotation = -rotation; #endif // Normalize rect if needed @@ -167,7 +168,7 @@ v2f_customrendertexture CustomRenderTextureVertexShader(appdata_customrendertext // Compute quad vertex position float2 clipSpaceCenter = updateZoneCenter.xy * 2.0 - 1.0; float2 pos = vertexPositions[vertexID] * updateZoneSize.xy; - pos = CustomRenderTextureRotate2D(pos, rotation); + //pos = CustomRenderTextureRotate2D(pos, rotation); pos.x += clipSpaceCenter.x; #if UNITY_UV_STARTS_AT_TOP pos.y += clipSpaceCenter.y; @@ -178,20 +179,20 @@ v2f_customrendertexture CustomRenderTextureVertexShader(appdata_customrendertext // For 3D texture, cull quads outside of the update zone // This is neeeded in additional to the preliminary minSlice/maxSlice done on the CPU because update zones can be disjointed. // ie: slices [1..5] and [10..15] for two differents zones so we need to cull out slices 0 and [6..9] - if (CustomRenderTextureIs3D > 0.0) - { - int minSlice = (int)(updateZoneCenter.z - updateZoneSize.z * 0.5); - int maxSlice = minSlice + (int)updateZoneSize.z; - if (_CustomRenderTexture3DSlice < minSlice || _CustomRenderTexture3DSlice >= maxSlice) - { - pos.xy = float2(1000.0, 1000.0); // Vertex outside of ncs - } - } + // if (CustomRenderTextureIs3D > 0.0) + // { + // int minSlice = (int)(updateZoneCenter.z - updateZoneSize.z * 0.5); + // int maxSlice = minSlice + (int)updateZoneSize.z; + // if (_CustomRenderTexture3DSlice < minSlice || _CustomRenderTexture3DSlice >= maxSlice) + // { + // pos.xy = float2(1000.0, 1000.0); // Vertex outside of ncs + // } + // } OUT.vertex = float4(pos, 0.0, 1.0); OUT.primitiveID = asuint(CustomRenderTexturePrimitiveIDs[primitiveID]); - OUT.localTexcoord = float3(texCoords[vertexID], CustomRenderTexture3DTexcoordW); - OUT.globalTexcoord = float3(pos.xy * 0.5 + 0.5, CustomRenderTexture3DTexcoordW); + OUT.localTexcoord = float3(texCoords[vertexID], 0); + OUT.globalTexcoord = float3(pos.xy * 0.5 + 0.5, 0); #if UNITY_UV_STARTS_AT_TOP OUT.globalTexcoord.y = 1.0 - OUT.globalTexcoord.y; #endif diff --git a/_Nix/rvc/crt_float4.cginc b/_Nix/rvc/crt_float4.cginc new file mode 100755 index 00000000..f7e3226f --- /dev/null +++ b/_Nix/rvc/crt_float4.cginc @@ -0,0 +1,228 @@ +// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) +// modified: change _SelfTexture2D to Texture2D, from sampler2D +// removed some rotation/3d specific code which is unused in vert shader + +#ifndef UNITY_CUSTOM_TEXTURE_INCLUDED +#define UNITY_CUSTOM_TEXTURE_INCLUDED + +#include "UnityCG.cginc" +#include "UnityStandardConfig.cginc" + +// Keep in sync with CustomRenderTexture.h +#define kCustomTextureBatchSize 16 + +struct appdata_customrendertexture +{ + uint vertexID : SV_VertexID; +}; + +// User facing vertex to fragment shader structure +struct v2f_customrendertexture +{ + float4 vertex : SV_POSITION; + float3 localTexcoord : TEXCOORD0; // Texcoord local to the update zone (== globalTexcoord if no partial update zone is specified) + float3 globalTexcoord : TEXCOORD1; // Texcoord relative to the complete custom texture + uint primitiveID : TEXCOORD2; // Index of the update zone (correspond to the index in the updateZones of the Custom Texture) + float3 direction : TEXCOORD3; // For cube textures, direction of the pixel being rendered in the cubemap +}; + +float2 CustomRenderTextureRotate2D(float2 pos, float angle) +{ + float sn = sin(angle); + float cs = cos(angle); + + return float2( pos.x * cs - pos.y * sn, pos.x * sn + pos.y * cs); +} + +// Internal +float4 CustomRenderTextureCenters[kCustomTextureBatchSize]; +float4 CustomRenderTextureSizesAndRotations[kCustomTextureBatchSize]; +float CustomRenderTexturePrimitiveIDs[kCustomTextureBatchSize]; + +float4 CustomRenderTextureParameters; +#define CustomRenderTextureUpdateSpace CustomRenderTextureParameters.x // Normalized(0)/PixelSpace(1) +#define CustomRenderTexture3DTexcoordW CustomRenderTextureParameters.y +#define CustomRenderTextureIs3D CustomRenderTextureParameters.z + +// User facing uniform variables +float4 _CustomRenderTextureInfo; // x = width, y = height, z = depth, w = face/3DSlice + +// Helpers +#define _CustomRenderTextureWidth _CustomRenderTextureInfo.x +#define _CustomRenderTextureHeight _CustomRenderTextureInfo.y +#define _CustomRenderTextureDepth _CustomRenderTextureInfo.z + +// Those two are mutually exclusive so we can use the same slot +#define _CustomRenderTextureCubeFace _CustomRenderTextureInfo.w +#define _CustomRenderTexture3DSlice _CustomRenderTextureInfo.w + +Texture2D _SelfTexture2D; +samplerCUBE _SelfTextureCube; +sampler3D _SelfTexture3D; + +float3 CustomRenderTextureComputeCubeDirection(float2 globalTexcoord) +{ + float2 xy = globalTexcoord * 2.0 - 1.0; + float3 direction; + if(_CustomRenderTextureCubeFace == 0.0) + { + direction = normalize(float3(1.0, -xy.y, -xy.x)); + } + else if(_CustomRenderTextureCubeFace == 1.0) + { + direction = normalize(float3(-1.0, -xy.y, xy.x)); + } + else if(_CustomRenderTextureCubeFace == 2.0) + { + direction = normalize(float3(xy.x, 1.0, xy.y)); + } + else if(_CustomRenderTextureCubeFace == 3.0) + { + direction = normalize(float3(xy.x, -1.0, -xy.y)); + } + else if(_CustomRenderTextureCubeFace == 4.0) + { + direction = normalize(float3(xy.x, -xy.y, 1.0)); + } + else if(_CustomRenderTextureCubeFace == 5.0) + { + direction = normalize(float3(-xy.x, -xy.y, -1.0)); + } + + return direction; +} + +// standard custom texture vertex shader that should always be used +v2f_customrendertexture CustomRenderTextureVertexShader(appdata_customrendertexture IN) +{ + v2f_customrendertexture OUT; + +#if UNITY_UV_STARTS_AT_TOP + const float2 vertexPositions[6] = + { + { -1.0f, 1.0f }, + { -1.0f, -1.0f }, + { 1.0f, -1.0f }, + { 1.0f, 1.0f }, + { -1.0f, 1.0f }, + { 1.0f, -1.0f } + }; + + const float2 texCoords[6] = + { + { 0.0f, 0.0f }, + { 0.0f, 1.0f }, + { 1.0f, 1.0f }, + { 1.0f, 0.0f }, + { 0.0f, 0.0f }, + { 1.0f, 1.0f } + }; +#else + const float2 vertexPositions[6] = + { + { 1.0f, 1.0f }, + { -1.0f, -1.0f }, + { -1.0f, 1.0f }, + { -1.0f, -1.0f }, + { 1.0f, 1.0f }, + { 1.0f, -1.0f } + }; + + const float2 texCoords[6] = + { + { 1.0f, 1.0f }, + { 0.0f, 0.0f }, + { 0.0f, 1.0f }, + { 0.0f, 0.0f }, + { 1.0f, 1.0f }, + { 1.0f, 0.0f } + }; +#endif + + uint primitiveID = IN.vertexID / 6; + uint vertexID = IN.vertexID % 6; + float3 updateZoneCenter = CustomRenderTextureCenters[primitiveID].xyz; + float3 updateZoneSize = CustomRenderTextureSizesAndRotations[primitiveID].xyz; + //float rotation = CustomRenderTextureSizesAndRotations[primitiveID].w * UNITY_PI / 180.0f; + +#if !UNITY_UV_STARTS_AT_TOP + //rotation = -rotation; +#endif + + // Normalize rect if needed + if (CustomRenderTextureUpdateSpace > 0.0) // Pixel space + { + // Normalize xy because we need it in clip space. + updateZoneCenter.xy /= _CustomRenderTextureInfo.xy; + updateZoneSize.xy /= _CustomRenderTextureInfo.xy; + } + else // normalized space + { + // Un-normalize depth because we need actual slice index for culling + updateZoneCenter.z *= _CustomRenderTextureInfo.z; + updateZoneSize.z *= _CustomRenderTextureInfo.z; + } + + // Compute rotation + + // Compute quad vertex position + float2 clipSpaceCenter = updateZoneCenter.xy * 2.0 - 1.0; + float2 pos = vertexPositions[vertexID] * updateZoneSize.xy; + //pos = CustomRenderTextureRotate2D(pos, rotation); + pos.x += clipSpaceCenter.x; +#if UNITY_UV_STARTS_AT_TOP + pos.y += clipSpaceCenter.y; +#else + pos.y -= clipSpaceCenter.y; +#endif + + // For 3D texture, cull quads outside of the update zone + // This is neeeded in additional to the preliminary minSlice/maxSlice done on the CPU because update zones can be disjointed. + // ie: slices [1..5] and [10..15] for two differents zones so we need to cull out slices 0 and [6..9] + // if (CustomRenderTextureIs3D > 0.0) + // { + // int minSlice = (int)(updateZoneCenter.z - updateZoneSize.z * 0.5); + // int maxSlice = minSlice + (int)updateZoneSize.z; + // if (_CustomRenderTexture3DSlice < minSlice || _CustomRenderTexture3DSlice >= maxSlice) + // { + // pos.xy = float2(1000.0, 1000.0); // Vertex outside of ncs + // } + // } + + OUT.vertex = float4(pos, 0.0, 1.0); + OUT.primitiveID = asuint(CustomRenderTexturePrimitiveIDs[primitiveID]); + OUT.localTexcoord = float3(texCoords[vertexID], 0); + OUT.globalTexcoord = float3(pos.xy * 0.5 + 0.5, 0); +#if UNITY_UV_STARTS_AT_TOP + OUT.globalTexcoord.y = 1.0 - OUT.globalTexcoord.y; +#endif + OUT.direction = CustomRenderTextureComputeCubeDirection(OUT.globalTexcoord.xy); + + return OUT; +} + +struct appdata_init_customrendertexture +{ + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; +}; + +// User facing vertex to fragment structure for initialization materials +struct v2f_init_customrendertexture +{ + float4 vertex : SV_POSITION; + float3 texcoord : TEXCOORD0; + float3 direction : TEXCOORD1; +}; + +// standard custom texture vertex shader that should always be used for initialization shaders +v2f_init_customrendertexture InitCustomRenderTextureVertexShader (appdata_init_customrendertexture v) +{ + v2f_init_customrendertexture o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = float3(v.texcoord.xy, CustomRenderTexture3DTexcoordW); + o.direction = CustomRenderTextureComputeCubeDirection(v.texcoord.xy); + return o; +} + +#endif // UNITY_CUSTOM_TEXTURE_INCLUDED diff --git a/_Nix/rvc/crt_float4.cginc.meta b/_Nix/rvc/crt_float4.cginc.meta new file mode 100755 index 00000000..16f014b2 --- /dev/null +++ b/_Nix/rvc/crt_float4.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 64a479191cc7192499f5d2bdd1fd17cd +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net.meta b/_Nix/rvc/data-net.meta new file mode 100755 index 00000000..2c424248 --- /dev/null +++ b/_Nix/rvc/data-net.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73e3d54ae030a6345bcd8b0bca857295 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/ROMA.mat b/_Nix/rvc/data-net/ROMA.mat new file mode 100755 index 00000000..3f3c9fe4 --- /dev/null +++ b/_Nix/rvc/data-net/ROMA.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ROMA + m_Shader: {fileID: 4800000, guid: 0d9402df573cc2d41a7b91aba5bc16bb, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 2800000, guid: 623a4d94f4925cc43ac5b58f51eab204, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/rvc/data-net/ROMA.mat.meta b/_Nix/rvc/data-net/ROMA.mat.meta new file mode 100755 index 00000000..35059e99 --- /dev/null +++ b/_Nix/rvc/data-net/ROMA.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c8dad7a2137cd7439db871b9fb544a9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/ROMB.mat b/_Nix/rvc/data-net/ROMB.mat new file mode 100755 index 00000000..ef8dc627 --- /dev/null +++ b/_Nix/rvc/data-net/ROMB.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ROMB + m_Shader: {fileID: 4800000, guid: 0d9402df573cc2d41a7b91aba5bc16bb, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 2800000, guid: 3ae072c7edbd89642952bc3bf59dbc83, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/rvc/data-net/ROMB.mat.meta b/_Nix/rvc/data-net/ROMB.mat.meta new file mode 100755 index 00000000..e5bb7792 --- /dev/null +++ b/_Nix/rvc/data-net/ROMB.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b1b1de2d0131f8418a3223d3d01caa9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/ROMG.mat b/_Nix/rvc/data-net/ROMG.mat new file mode 100755 index 00000000..5cdc9df3 --- /dev/null +++ b/_Nix/rvc/data-net/ROMG.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ROMG + m_Shader: {fileID: 4800000, guid: 0d9402df573cc2d41a7b91aba5bc16bb, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 2800000, guid: 3493f7528e90c83459c3da7ad8df1c6a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/rvc/data-net/ROMG.mat.meta b/_Nix/rvc/data-net/ROMG.mat.meta new file mode 100755 index 00000000..54ca5cb3 --- /dev/null +++ b/_Nix/rvc/data-net/ROMG.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9ccfde9bea6e294fbe6cfb0713a777d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/ROMR.mat b/_Nix/rvc/data-net/ROMR.mat new file mode 100755 index 00000000..218012c4 --- /dev/null +++ b/_Nix/rvc/data-net/ROMR.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ROMR + m_Shader: {fileID: 4800000, guid: 0d9402df573cc2d41a7b91aba5bc16bb, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 2800000, guid: 3e8b18a896196e34f908356152183b5d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/rvc/data-net/ROMR.mat.meta b/_Nix/rvc/data-net/ROMR.mat.meta new file mode 100755 index 00000000..cbe3e171 --- /dev/null +++ b/_Nix/rvc/data-net/ROMR.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99a24112ab72a6f4ca9127142a9a16ea +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/dts.a.png b/_Nix/rvc/data-net/dts.a.png new file mode 100755 index 00000000..046b4cbc Binary files /dev/null and b/_Nix/rvc/data-net/dts.a.png differ diff --git a/_Nix/rvc/data-net/dts.a.png.meta b/_Nix/rvc/data-net/dts.a.png.meta new file mode 100755 index 00000000..ff605d39 --- /dev/null +++ b/_Nix/rvc/data-net/dts.a.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 9f20f03e60d52a54fa937b3aaddb8b6d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/dts.b.png b/_Nix/rvc/data-net/dts.b.png new file mode 100755 index 00000000..7683cb70 Binary files /dev/null and b/_Nix/rvc/data-net/dts.b.png differ diff --git a/_Nix/rvc/data-net/dts.b.png.meta b/_Nix/rvc/data-net/dts.b.png.meta new file mode 100755 index 00000000..b5c8553a --- /dev/null +++ b/_Nix/rvc/data-net/dts.b.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 4c9d5f02a55e80848bcf79927b7f02b3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/dts.g.png b/_Nix/rvc/data-net/dts.g.png new file mode 100755 index 00000000..b74942ad Binary files /dev/null and b/_Nix/rvc/data-net/dts.g.png differ diff --git a/_Nix/rvc/data-net/dts.g.png.meta b/_Nix/rvc/data-net/dts.g.png.meta new file mode 100755 index 00000000..b4654edf --- /dev/null +++ b/_Nix/rvc/data-net/dts.g.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: ae4a4c8d48256a54d911bdd382e9b0da +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/dts.r.png b/_Nix/rvc/data-net/dts.r.png new file mode 100755 index 00000000..e47baae2 Binary files /dev/null and b/_Nix/rvc/data-net/dts.r.png differ diff --git a/_Nix/rvc/data-net/dts.r.png.meta b/_Nix/rvc/data-net/dts.r.png.meta new file mode 100755 index 00000000..8cc44ff0 --- /dev/null +++ b/_Nix/rvc/data-net/dts.r.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 8c5c09ea7dd038a479903123a2d44e6b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/linux_payload.a.png b/_Nix/rvc/data-net/linux_payload.a.png new file mode 100755 index 00000000..85ac46d1 Binary files /dev/null and b/_Nix/rvc/data-net/linux_payload.a.png differ diff --git a/_Nix/rvc/data-net/linux_payload.a.png.meta b/_Nix/rvc/data-net/linux_payload.a.png.meta new file mode 100755 index 00000000..cba8c95a --- /dev/null +++ b/_Nix/rvc/data-net/linux_payload.a.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 63b2abc10de218b449d9664d25a91e73 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/linux_payload.b.png b/_Nix/rvc/data-net/linux_payload.b.png new file mode 100755 index 00000000..e5b695d5 Binary files /dev/null and b/_Nix/rvc/data-net/linux_payload.b.png differ diff --git a/_Nix/rvc/data-net/linux_payload.b.png.meta b/_Nix/rvc/data-net/linux_payload.b.png.meta new file mode 100755 index 00000000..0475f2da --- /dev/null +++ b/_Nix/rvc/data-net/linux_payload.b.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 528bfeb01354be94c829b91b0be31547 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/linux_payload.g.png b/_Nix/rvc/data-net/linux_payload.g.png new file mode 100755 index 00000000..f51ca880 Binary files /dev/null and b/_Nix/rvc/data-net/linux_payload.g.png differ diff --git a/_Nix/rvc/data-net/linux_payload.g.png.meta b/_Nix/rvc/data-net/linux_payload.g.png.meta new file mode 100755 index 00000000..80764af8 --- /dev/null +++ b/_Nix/rvc/data-net/linux_payload.g.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 6a990bd617015f1428733a2f526e1c0f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/linux_payload.r.png b/_Nix/rvc/data-net/linux_payload.r.png new file mode 100755 index 00000000..52ef630c Binary files /dev/null and b/_Nix/rvc/data-net/linux_payload.r.png differ diff --git a/_Nix/rvc/data-net/linux_payload.r.png.meta b/_Nix/rvc/data-net/linux_payload.r.png.meta new file mode 100755 index 00000000..031f9fd4 --- /dev/null +++ b/_Nix/rvc/data-net/linux_payload.r.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 628d8f9225c4fdc458d3a7250cd33bd4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/rootfs.a.png b/_Nix/rvc/data-net/rootfs.a.png new file mode 100755 index 00000000..5ea7644c Binary files /dev/null and b/_Nix/rvc/data-net/rootfs.a.png differ diff --git a/_Nix/rvc/data-net/rootfs.a.png.meta b/_Nix/rvc/data-net/rootfs.a.png.meta new file mode 100755 index 00000000..005c76d9 --- /dev/null +++ b/_Nix/rvc/data-net/rootfs.a.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 623a4d94f4925cc43ac5b58f51eab204 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/rootfs.b.png b/_Nix/rvc/data-net/rootfs.b.png new file mode 100755 index 00000000..5ad7cb16 Binary files /dev/null and b/_Nix/rvc/data-net/rootfs.b.png differ diff --git a/_Nix/rvc/data-net/rootfs.b.png.meta b/_Nix/rvc/data-net/rootfs.b.png.meta new file mode 100755 index 00000000..7a25ae4a --- /dev/null +++ b/_Nix/rvc/data-net/rootfs.b.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 3ae072c7edbd89642952bc3bf59dbc83 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/rootfs.g.png b/_Nix/rvc/data-net/rootfs.g.png new file mode 100755 index 00000000..144fea46 Binary files /dev/null and b/_Nix/rvc/data-net/rootfs.g.png differ diff --git a/_Nix/rvc/data-net/rootfs.g.png.meta b/_Nix/rvc/data-net/rootfs.g.png.meta new file mode 100755 index 00000000..a53dadd9 --- /dev/null +++ b/_Nix/rvc/data-net/rootfs.g.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 3493f7528e90c83459c3da7ad8df1c6a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data-net/rootfs.r.png b/_Nix/rvc/data-net/rootfs.r.png new file mode 100755 index 00000000..580d1083 Binary files /dev/null and b/_Nix/rvc/data-net/rootfs.r.png differ diff --git a/_Nix/rvc/data-net/rootfs.r.png.meta b/_Nix/rvc/data-net/rootfs.r.png.meta new file mode 100755 index 00000000..b1f896d9 --- /dev/null +++ b/_Nix/rvc/data-net/rootfs.r.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 3e8b18a896196e34f908356152183b5d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/bare.a.bmp b/_Nix/rvc/data/bare.a.bmp deleted file mode 100755 index f3cad5c4..00000000 Binary files a/_Nix/rvc/data/bare.a.bmp and /dev/null differ diff --git a/_Nix/rvc/data/bare.a.png b/_Nix/rvc/data/bare.a.png new file mode 100755 index 00000000..0d10189e Binary files /dev/null and b/_Nix/rvc/data/bare.a.png differ diff --git a/_Nix/rvc/data/bare.a.bmp.meta b/_Nix/rvc/data/bare.a.png.meta similarity index 98% rename from _Nix/rvc/data/bare.a.bmp.meta rename to _Nix/rvc/data/bare.a.png.meta index 8548679a..439fbb75 100755 --- a/_Nix/rvc/data/bare.a.bmp.meta +++ b/_Nix/rvc/data/bare.a.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ef865f3ad3e5a0e459ca5ea2f593171a +guid: e1a5977643c0ab14fbda9ec9403aed2d TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/bare.b.bmp b/_Nix/rvc/data/bare.b.bmp deleted file mode 100755 index 9b3b4fe4..00000000 Binary files a/_Nix/rvc/data/bare.b.bmp and /dev/null differ diff --git a/_Nix/rvc/data/bare.b.png b/_Nix/rvc/data/bare.b.png new file mode 100755 index 00000000..453a6566 Binary files /dev/null and b/_Nix/rvc/data/bare.b.png differ diff --git a/_Nix/rvc/data/bare.r.bmp.meta b/_Nix/rvc/data/bare.b.png.meta similarity index 98% rename from _Nix/rvc/data/bare.r.bmp.meta rename to _Nix/rvc/data/bare.b.png.meta index e77f68cc..bdbd6109 100755 --- a/_Nix/rvc/data/bare.r.bmp.meta +++ b/_Nix/rvc/data/bare.b.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7fb6151407532aa4fb764bf062abfd95 +guid: 6b4ce7b6fa11b5f4b8133fd58be4e862 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/bare.g.png b/_Nix/rvc/data/bare.g.png new file mode 100755 index 00000000..e4292143 Binary files /dev/null and b/_Nix/rvc/data/bare.g.png differ diff --git a/_Nix/rvc/data/bare.b.bmp.meta b/_Nix/rvc/data/bare.g.png.meta similarity index 98% rename from _Nix/rvc/data/bare.b.bmp.meta rename to _Nix/rvc/data/bare.g.png.meta index 14bc5ff8..c8401e66 100755 --- a/_Nix/rvc/data/bare.b.bmp.meta +++ b/_Nix/rvc/data/bare.g.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ef13138e4e45afb40af3457a57b13281 +guid: 4af0049370f6afa41b8233f89186f171 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/bare.r.bmp b/_Nix/rvc/data/bare.r.bmp deleted file mode 100755 index 302fd203..00000000 Binary files a/_Nix/rvc/data/bare.r.bmp and /dev/null differ diff --git a/_Nix/rvc/data/bare.r.png b/_Nix/rvc/data/bare.r.png new file mode 100755 index 00000000..0cd6e27e Binary files /dev/null and b/_Nix/rvc/data/bare.r.png differ diff --git a/_Nix/rvc/data/bare.g.bmp.meta b/_Nix/rvc/data/bare.r.png.meta similarity index 98% rename from _Nix/rvc/data/bare.g.bmp.meta rename to _Nix/rvc/data/bare.r.png.meta index 785500d5..efff7004 100755 --- a/_Nix/rvc/data/bare.g.bmp.meta +++ b/_Nix/rvc/data/bare.r.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 06d3b119e472e914db5e6d229861ceeb +guid: b8161e470b163bd4980fac1bf2fd003d TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/dts.a.bmp b/_Nix/rvc/data/dts.a.bmp deleted file mode 100755 index 982d61c7..00000000 Binary files a/_Nix/rvc/data/dts.a.bmp and /dev/null differ diff --git a/_Nix/rvc/data/dts.a.bmp.meta b/_Nix/rvc/data/dts.a.bmp.meta deleted file mode 100755 index e5bbf073..00000000 --- a/_Nix/rvc/data/dts.a.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: b79088bde5219a84994c413765be2fc5 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 1 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/dts.a.png b/_Nix/rvc/data/dts.a.png new file mode 100755 index 00000000..252b6216 Binary files /dev/null and b/_Nix/rvc/data/dts.a.png differ diff --git a/_Nix/rvc/data/mprv_payload.a.bmp.meta b/_Nix/rvc/data/dts.a.png.meta similarity index 98% rename from _Nix/rvc/data/mprv_payload.a.bmp.meta rename to _Nix/rvc/data/dts.a.png.meta index 68421f9c..a595380d 100755 --- a/_Nix/rvc/data/mprv_payload.a.bmp.meta +++ b/_Nix/rvc/data/dts.a.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b5e0c1f09cbd7254e9014d558c3d52a5 +guid: e39cbfa3588aded49becee4297f533bd TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/dts.b.bmp b/_Nix/rvc/data/dts.b.bmp deleted file mode 100755 index 31476fb8..00000000 Binary files a/_Nix/rvc/data/dts.b.bmp and /dev/null differ diff --git a/_Nix/rvc/data/dts.b.bmp.meta b/_Nix/rvc/data/dts.b.bmp.meta deleted file mode 100755 index d9332bfc..00000000 --- a/_Nix/rvc/data/dts.b.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 113ecc14420d26b40bd84a317752e413 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 1 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/dts.b.png b/_Nix/rvc/data/dts.b.png new file mode 100755 index 00000000..6e4a7405 Binary files /dev/null and b/_Nix/rvc/data/dts.b.png differ diff --git a/_Nix/rvc/data/mprv_payload.b.bmp.meta b/_Nix/rvc/data/dts.b.png.meta similarity index 98% rename from _Nix/rvc/data/mprv_payload.b.bmp.meta rename to _Nix/rvc/data/dts.b.png.meta index 8d508575..bb30fb79 100755 --- a/_Nix/rvc/data/mprv_payload.b.bmp.meta +++ b/_Nix/rvc/data/dts.b.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b4ec3122870c47a4d9767787b7de8d9f +guid: 5f7007eee60c61c4088bd2dd40659f53 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/dts.g.bmp b/_Nix/rvc/data/dts.g.bmp deleted file mode 100755 index f9461a73..00000000 Binary files a/_Nix/rvc/data/dts.g.bmp and /dev/null differ diff --git a/_Nix/rvc/data/dts.g.bmp.meta b/_Nix/rvc/data/dts.g.bmp.meta deleted file mode 100755 index 9d3259de..00000000 --- a/_Nix/rvc/data/dts.g.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 6a4ccabd039d33640a175ee46ff45f7c -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 1 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/dts.g.png b/_Nix/rvc/data/dts.g.png new file mode 100755 index 00000000..f4f9f388 Binary files /dev/null and b/_Nix/rvc/data/dts.g.png differ diff --git a/_Nix/rvc/data/mprv_payload.g.bmp.meta b/_Nix/rvc/data/dts.g.png.meta similarity index 98% rename from _Nix/rvc/data/mprv_payload.g.bmp.meta rename to _Nix/rvc/data/dts.g.png.meta index 706b666a..c6b314c4 100755 --- a/_Nix/rvc/data/mprv_payload.g.bmp.meta +++ b/_Nix/rvc/data/dts.g.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ab6fe74eb0b04d045b6bbd9a46824a6d +guid: 9e43e53dd011e9e468b3833cb6505a9d TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/dts.r.bmp b/_Nix/rvc/data/dts.r.bmp deleted file mode 100755 index e7334052..00000000 Binary files a/_Nix/rvc/data/dts.r.bmp and /dev/null differ diff --git a/_Nix/rvc/data/dts.r.bmp.meta b/_Nix/rvc/data/dts.r.bmp.meta deleted file mode 100755 index 72b8e34b..00000000 --- a/_Nix/rvc/data/dts.r.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 41d3eb80306a6fd4f8aa6ff80c39c0a5 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 1 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/dts.r.png b/_Nix/rvc/data/dts.r.png new file mode 100755 index 00000000..26afed37 Binary files /dev/null and b/_Nix/rvc/data/dts.r.png differ diff --git a/_Nix/rvc/data/mprv_payload.r.bmp.meta b/_Nix/rvc/data/dts.r.png.meta similarity index 98% rename from _Nix/rvc/data/mprv_payload.r.bmp.meta rename to _Nix/rvc/data/dts.r.png.meta index 3706e404..e78845f1 100755 --- a/_Nix/rvc/data/mprv_payload.r.bmp.meta +++ b/_Nix/rvc/data/dts.r.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a1cbe6c7cc3224f46aa6e90fc55c6725 +guid: 51d36ae76852af948b70fd566266caae TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/_Nix/rvc/data/linux_payload.a.bmp b/_Nix/rvc/data/linux_payload.a.bmp deleted file mode 100755 index bcadce68..00000000 Binary files a/_Nix/rvc/data/linux_payload.a.bmp and /dev/null differ diff --git a/_Nix/rvc/data/linux_payload.a.png b/_Nix/rvc/data/linux_payload.a.png new file mode 100755 index 00000000..e4de372a Binary files /dev/null and b/_Nix/rvc/data/linux_payload.a.png differ diff --git a/_Nix/rvc/data/linux_payload.a.png.meta b/_Nix/rvc/data/linux_payload.a.png.meta new file mode 100755 index 00000000..12154133 --- /dev/null +++ b/_Nix/rvc/data/linux_payload.a.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 924818c0306a6e74488d0e79351ae09d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/linux_payload.b.bmp b/_Nix/rvc/data/linux_payload.b.bmp deleted file mode 100755 index d2a0093a..00000000 Binary files a/_Nix/rvc/data/linux_payload.b.bmp and /dev/null differ diff --git a/_Nix/rvc/data/linux_payload.b.png b/_Nix/rvc/data/linux_payload.b.png new file mode 100755 index 00000000..4639be21 Binary files /dev/null and b/_Nix/rvc/data/linux_payload.b.png differ diff --git a/_Nix/rvc/data/linux_payload.b.png.meta b/_Nix/rvc/data/linux_payload.b.png.meta new file mode 100755 index 00000000..ce140bd7 --- /dev/null +++ b/_Nix/rvc/data/linux_payload.b.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: e8f07d8e6558e7a4b89aebfa61605456 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/linux_payload.g.bmp b/_Nix/rvc/data/linux_payload.g.bmp deleted file mode 100755 index 32824f87..00000000 Binary files a/_Nix/rvc/data/linux_payload.g.bmp and /dev/null differ diff --git a/_Nix/rvc/data/linux_payload.g.bmp.meta b/_Nix/rvc/data/linux_payload.g.bmp.meta deleted file mode 100755 index 65a869db..00000000 --- a/_Nix/rvc/data/linux_payload.g.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 732492b0fcc64074c8303725042915e9 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/linux_payload.g.png b/_Nix/rvc/data/linux_payload.g.png new file mode 100755 index 00000000..bce8e760 Binary files /dev/null and b/_Nix/rvc/data/linux_payload.g.png differ diff --git a/_Nix/rvc/data/linux_payload.g.png.meta b/_Nix/rvc/data/linux_payload.g.png.meta new file mode 100755 index 00000000..c8609209 --- /dev/null +++ b/_Nix/rvc/data/linux_payload.g.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: f602f54711ccaf8418e3e9151468dfb7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/linux_payload.r.bmp b/_Nix/rvc/data/linux_payload.r.bmp deleted file mode 100755 index e8b494fc..00000000 Binary files a/_Nix/rvc/data/linux_payload.r.bmp and /dev/null differ diff --git a/_Nix/rvc/data/linux_payload.r.bmp.meta b/_Nix/rvc/data/linux_payload.r.bmp.meta deleted file mode 100755 index 3826a4f1..00000000 --- a/_Nix/rvc/data/linux_payload.r.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 116e2052555d2874ab5a308ea8b65e16 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/linux_payload.r.png b/_Nix/rvc/data/linux_payload.r.png new file mode 100755 index 00000000..524d4b52 Binary files /dev/null and b/_Nix/rvc/data/linux_payload.r.png differ diff --git a/_Nix/rvc/data/linux_payload.r.png.meta b/_Nix/rvc/data/linux_payload.r.png.meta new file mode 100755 index 00000000..323c4887 --- /dev/null +++ b/_Nix/rvc/data/linux_payload.r.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 1d63c51e19129a54ca171ff83cfa293e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/mprv_payload.a.bmp b/_Nix/rvc/data/mprv_payload.a.bmp deleted file mode 100755 index 65e34f90..00000000 Binary files a/_Nix/rvc/data/mprv_payload.a.bmp and /dev/null differ diff --git a/_Nix/rvc/data/mprv_payload.a.png b/_Nix/rvc/data/mprv_payload.a.png new file mode 100755 index 00000000..507f0e03 Binary files /dev/null and b/_Nix/rvc/data/mprv_payload.a.png differ diff --git a/_Nix/rvc/data/mprv_payload.a.png.meta b/_Nix/rvc/data/mprv_payload.a.png.meta new file mode 100755 index 00000000..868a6da3 --- /dev/null +++ b/_Nix/rvc/data/mprv_payload.a.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: c28c200fc8d0f7a40be9f0486222a088 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/mprv_payload.b.bmp b/_Nix/rvc/data/mprv_payload.b.bmp deleted file mode 100755 index 90e15362..00000000 Binary files a/_Nix/rvc/data/mprv_payload.b.bmp and /dev/null differ diff --git a/_Nix/rvc/data/mprv_payload.b.png b/_Nix/rvc/data/mprv_payload.b.png new file mode 100755 index 00000000..bcb17145 Binary files /dev/null and b/_Nix/rvc/data/mprv_payload.b.png differ diff --git a/_Nix/rvc/data/mprv_payload.b.png.meta b/_Nix/rvc/data/mprv_payload.b.png.meta new file mode 100755 index 00000000..4f90d163 --- /dev/null +++ b/_Nix/rvc/data/mprv_payload.b.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 516e44629a803a848af8df6ab2a0bbf2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/mprv_payload.g.bmp b/_Nix/rvc/data/mprv_payload.g.bmp deleted file mode 100755 index 9591372c..00000000 Binary files a/_Nix/rvc/data/mprv_payload.g.bmp and /dev/null differ diff --git a/_Nix/rvc/data/mprv_payload.g.png b/_Nix/rvc/data/mprv_payload.g.png new file mode 100755 index 00000000..087e33a5 Binary files /dev/null and b/_Nix/rvc/data/mprv_payload.g.png differ diff --git a/_Nix/rvc/data/mprv_payload.g.png.meta b/_Nix/rvc/data/mprv_payload.g.png.meta new file mode 100755 index 00000000..84e131e1 --- /dev/null +++ b/_Nix/rvc/data/mprv_payload.g.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: b833a327056815b44a9dd8d9408c075a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/mprv_payload.r.bmp b/_Nix/rvc/data/mprv_payload.r.bmp deleted file mode 100755 index f5439375..00000000 Binary files a/_Nix/rvc/data/mprv_payload.r.bmp and /dev/null differ diff --git a/_Nix/rvc/data/mprv_payload.r.png b/_Nix/rvc/data/mprv_payload.r.png new file mode 100755 index 00000000..cdd2ee14 Binary files /dev/null and b/_Nix/rvc/data/mprv_payload.r.png differ diff --git a/_Nix/rvc/data/mprv_payload.r.png.meta b/_Nix/rvc/data/mprv_payload.r.png.meta new file mode 100755 index 00000000..f61337b4 --- /dev/null +++ b/_Nix/rvc/data/mprv_payload.r.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: ab433076acfb89848aa3a9fa4f80f5bb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.a.bmp b/_Nix/rvc/data/rust_payload.a.bmp deleted file mode 100755 index dcff3c7d..00000000 Binary files a/_Nix/rvc/data/rust_payload.a.bmp and /dev/null differ diff --git a/_Nix/rvc/data/rust_payload.a.bmp.meta b/_Nix/rvc/data/rust_payload.a.bmp.meta deleted file mode 100755 index 8c4a66cc..00000000 --- a/_Nix/rvc/data/rust_payload.a.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: a791f5afa4522d942a73fd07c4dcb65a -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.a.png b/_Nix/rvc/data/rust_payload.a.png new file mode 100755 index 00000000..8cfd6838 Binary files /dev/null and b/_Nix/rvc/data/rust_payload.a.png differ diff --git a/_Nix/rvc/data/rust_payload.a.png.meta b/_Nix/rvc/data/rust_payload.a.png.meta new file mode 100755 index 00000000..03bb383e --- /dev/null +++ b/_Nix/rvc/data/rust_payload.a.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 8cdc701c68cfcd242a983e0d72622bad +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.b.bmp b/_Nix/rvc/data/rust_payload.b.bmp deleted file mode 100755 index 380955c9..00000000 Binary files a/_Nix/rvc/data/rust_payload.b.bmp and /dev/null differ diff --git a/_Nix/rvc/data/rust_payload.b.bmp.meta b/_Nix/rvc/data/rust_payload.b.bmp.meta deleted file mode 100755 index 4dd8b50c..00000000 --- a/_Nix/rvc/data/rust_payload.b.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 930c7bf438045694485e81e75156474f -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.b.png b/_Nix/rvc/data/rust_payload.b.png new file mode 100755 index 00000000..6eb40783 Binary files /dev/null and b/_Nix/rvc/data/rust_payload.b.png differ diff --git a/_Nix/rvc/data/rust_payload.b.png.meta b/_Nix/rvc/data/rust_payload.b.png.meta new file mode 100755 index 00000000..63d8a2b6 --- /dev/null +++ b/_Nix/rvc/data/rust_payload.b.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: e1566ef1f5f3a1041a9ec31cb1eee116 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.g.bmp b/_Nix/rvc/data/rust_payload.g.bmp deleted file mode 100755 index 11b0ff10..00000000 Binary files a/_Nix/rvc/data/rust_payload.g.bmp and /dev/null differ diff --git a/_Nix/rvc/data/rust_payload.g.bmp.meta b/_Nix/rvc/data/rust_payload.g.bmp.meta deleted file mode 100755 index 90f2b2f3..00000000 --- a/_Nix/rvc/data/rust_payload.g.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: 37b500d8dc755314b9640d3efa58d023 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.g.png b/_Nix/rvc/data/rust_payload.g.png new file mode 100755 index 00000000..0b4595c1 Binary files /dev/null and b/_Nix/rvc/data/rust_payload.g.png differ diff --git a/_Nix/rvc/data/rust_payload.g.png.meta b/_Nix/rvc/data/rust_payload.g.png.meta new file mode 100755 index 00000000..d0802216 --- /dev/null +++ b/_Nix/rvc/data/rust_payload.g.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 49256c8592afa9540a43d2657daf85df +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.r.bmp b/_Nix/rvc/data/rust_payload.r.bmp deleted file mode 100755 index 1b9cbf1c..00000000 Binary files a/_Nix/rvc/data/rust_payload.r.bmp and /dev/null differ diff --git a/_Nix/rvc/data/rust_payload.r.bmp.meta b/_Nix/rvc/data/rust_payload.r.bmp.meta deleted file mode 100755 index 1866e1c8..00000000 --- a/_Nix/rvc/data/rust_payload.r.bmp.meta +++ /dev/null @@ -1,116 +0,0 @@ -fileFormatVersion: 2 -guid: a58002ff0acde4e4da9028b14ca32746 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 0 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 8192 - resizeAlgorithm: 0 - textureFormat: 4 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/_Nix/rvc/data/rust_payload.r.png b/_Nix/rvc/data/rust_payload.r.png new file mode 100755 index 00000000..b4611dc8 Binary files /dev/null and b/_Nix/rvc/data/rust_payload.r.png differ diff --git a/_Nix/rvc/data/rust_payload.r.png.meta b/_Nix/rvc/data/rust_payload.r.png.meta new file mode 100755 index 00000000..504a3cb1 --- /dev/null +++ b/_Nix/rvc/data/rust_payload.r.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: a2241fe0d717dbb46a81a1e7dff0b547 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_raytrace.a.png b/_Nix/rvc/data/rust_raytrace.a.png new file mode 100755 index 00000000..08bbf503 Binary files /dev/null and b/_Nix/rvc/data/rust_raytrace.a.png differ diff --git a/_Nix/rvc/data/rust_raytrace.a.png.meta b/_Nix/rvc/data/rust_raytrace.a.png.meta new file mode 100755 index 00000000..9e86ec3c --- /dev/null +++ b/_Nix/rvc/data/rust_raytrace.a.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: e2b9c15c2023e3d48b2ed8b993f717d1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_raytrace.b.png b/_Nix/rvc/data/rust_raytrace.b.png new file mode 100755 index 00000000..7a4fbd1f Binary files /dev/null and b/_Nix/rvc/data/rust_raytrace.b.png differ diff --git a/_Nix/rvc/data/rust_raytrace.b.png.meta b/_Nix/rvc/data/rust_raytrace.b.png.meta new file mode 100755 index 00000000..95f7282e --- /dev/null +++ b/_Nix/rvc/data/rust_raytrace.b.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 87381497abe61cd43b35f48a628a8a0b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_raytrace.g.png b/_Nix/rvc/data/rust_raytrace.g.png new file mode 100755 index 00000000..2d155b1a Binary files /dev/null and b/_Nix/rvc/data/rust_raytrace.g.png differ diff --git a/_Nix/rvc/data/rust_raytrace.g.png.meta b/_Nix/rvc/data/rust_raytrace.g.png.meta new file mode 100755 index 00000000..a97a6f7a --- /dev/null +++ b/_Nix/rvc/data/rust_raytrace.g.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 3bf894a2e77cb69469206f7a9f8688b4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/data/rust_raytrace.r.png b/_Nix/rvc/data/rust_raytrace.r.png new file mode 100755 index 00000000..44eae07f Binary files /dev/null and b/_Nix/rvc/data/rust_raytrace.r.png differ diff --git a/_Nix/rvc/data/rust_raytrace.r.png.meta b/_Nix/rvc/data/rust_raytrace.r.png.meta new file mode 100755 index 00000000..c682df45 --- /dev/null +++ b/_Nix/rvc/data/rust_raytrace.r.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 1858994c71dcff74a8dae2fa6fd99b87 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/debug_display.shader b/_Nix/rvc/debug_display.shader new file mode 100755 index 00000000..228adc4d --- /dev/null +++ b/_Nix/rvc/debug_display.shader @@ -0,0 +1,176 @@ +Shader "Nix/Debug Display" +{ + Properties + { + _Background ("Background", Color) = (0, 0, 0, 0) + _RVC ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" "Queue"="Geometry" } + Cull Back + + Pass + { + CGPROGRAM + #include "UnityCG.cginc" + #include "helpers.cginc" + + #define STATE_TEX_HART(pos, hart) (_RVC[pos]) + #define STATE_TEX(pos) (_RVC[pos]) + Texture2D _RVC; + + static uint2 s_dim; + + #define NEEDS_DFC + #include "src/types.h" + + #include "SmoothPixelFont.cginc" + + #pragma target 5.0 + // too lazy to change lmao enjoy your full screen ortho + #pragma vertex vert_ortho_fullscreen + #pragma fragment frag + + float4 _Background; + + float4 frag(v2f i) : SV_Target { + //_RVC.GetDimensions(s_dim.x, s_dim.y); + uint2 pos = i.uv * uint2(256, 512); + + decode_for_commit(); + + #define SS __SPACE + float2 charUV = float2(4, 6) - glsl_mod(i.uv.xy * float2(16, 16), 1.0) * float2(4.0, 6.0); + uint toDisplay = 0xdeadbeef; + if (pos.y < 32 * 1) { + toDisplay = cpu.clock; + if (pos.x < 128) { + uint txt[8] = {__C, __L, __O, __C, __K, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 2) { + toDisplay = cpu.commits; + if (pos.x < 128) { + uint txt[8] = {__C, __O, __M, __M, __I, __T, __S, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 3) { + toDisplay = cpu.trap_count; + if (pos.x < 128) { + uint txt[8] = {__T, __R, __A, __P, __S, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 4) { + toDisplay = cpu.stall_count; + if (pos.x < 128) { + uint txt[8] = {__S, __T, __A, __L, __L, __S, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 5) { + toDisplay = cpu.debug_last_stall; + if (pos.x < 128) { + uint txt[8] = {__L, __A, __S, __T, SS, __S, __T, __L}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 6) { + toDisplay = cpu.debug_last_ins; + if (pos.x < 128) { + uint txt[8] = {__L, __A, __S, __T, SS, __I, __N, __S}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 7) { + toDisplay = cpu.pc; + if (pos.x < 128) { + uint txt[8] = {__P, __C, SS, SS, SS, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 8) { + toDisplay = cpu.mmu.mode; + if (pos.x < 128) { + uint txt[8] = {__M, __M, __U, SS, __M, __O, __D, __E}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 9) { + toDisplay = cpu.mmu.ppn; + if (pos.x < 128) { + uint txt[8] = {__M, __M, __U, SS, __P, __P, __N, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 10) { + toDisplay = cpu.csr.privilege; + if (pos.x < 128) { + uint txt[8] = {__P, __R, __I, __V, SS, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 11) { + toDisplay = cpu.uart.input_tag; + if (pos.x < 128) { + uint txt[8] = {__U, __A, __R, __T, SS, __T, __A, __G}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 12) { + toDisplay = cpu.rtc0; + if (pos.x < 128) { + uint txt[8] = {__R, __T, __C, __0, SS, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 13) { + toDisplay = cpu.rtc1; + if (pos.x < 128) { + uint txt[8] = {__R, __T, __C, __1, SS, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 14) { + toDisplay = cpu.memop_src_p; + if (pos.x < 128) { + uint txt[8] = {__M, __E, __M, __O, __P, __S, __R, __C}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 15) { + toDisplay = cpu.memop_dst_p; + if (pos.x < 128) { + uint txt[8] = {__M, __E, __M, __O, __P, __D, __S, __T}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } else if (pos.y < 32 * 16) { + toDisplay = cpu.debug_arb_0; + if (pos.x < 128) { + uint txt[8] = {__D, __E, __B, __U, __G, SS, SS, SS}; + float num = PrintChar(txt[pos.x/16], charUV, 4.0, 0) * 0.35; + return float4(num, num, num, 1); + } + } + + pos.x -= 128; + if (pos.x > (128 + 16)) { + return 0; + } + uint modx = pos.x % (128 + 16); + uint val = 16; + if (modx < 128) { + val = (toDisplay >> (((16 * 16) - modx) / 16) * 4) & 0xf; + } + uint hex[17] = {__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __A, __B, __C, __D, __E, __F, __SPACE}; + float num = PrintChar(hex[val], charUV, 4.0, 0) * 0.55; + return float4(num, num, num, 1); + } + ENDCG + } + } +} \ No newline at end of file diff --git a/_Nix/rvc/debug_display.shader.meta b/_Nix/rvc/debug_display.shader.meta new file mode 100755 index 00000000..49bbb686 --- /dev/null +++ b/_Nix/rvc/debug_display.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 79cf2ce4ea00e39408dbe88a2677ab43 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/display.shader b/_Nix/rvc/display.shader new file mode 100755 index 00000000..0d75485b --- /dev/null +++ b/_Nix/rvc/display.shader @@ -0,0 +1,68 @@ +Shader "Nix/Display" +{ + Properties + { + _Tex ("Texture", 2D) = "white" {} + [ToggleUI] _FullData ("Transcode all data", Float) = 0 + [ToggleUI] _VisualizeState ("Visualize Only State", Float) = 0 + } + SubShader + { + Tags { "RenderType"="Transparent" "Queue"="Transparent" } + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + + Pass + { + CGPROGRAM + #include "UnityCG.cginc" + #include "helpers.cginc" + #pragma target 5.0 + #pragma vertex vert_ortho_fullscreen + #pragma fragment frag + + Texture2D _Tex; + float _FullData, _VisualizeState; + + + +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) + + + float4 frag(v2f i) : SV_Target { + uint2 dim; + _Tex.GetDimensions(dim.x, dim.y); + + if (is_ortho) { + uint2 pos = _FullData ? + (i.uv * (uint2(2048, 4096) * uint2(3, 2))) % uint2(2048, 4096) : + (i.uv * (uint2(64, 64) * uint2(6, 1))) % uint2(64, 64); + uint4 data = _Tex[pos]; + + // output packed values, stretched along x + float3 res[6]; + pack_uint4(data, res); + + uint idx = (uint)(i.uv.x * (_FullData ? 3 : 6)); + if (_FullData && i.uv.y >= 0.5) { + idx += 3; + } + return float4(res[idx], 1); + } else { + uint2 pos = i.uv * (_VisualizeState ? float2(64, 64)*0.995 : dim); + uint4 data = _Tex[pos]; + if (_VisualizeState) { + data.rgba = data.garb; + } + return float4(uint_to_color(data).rgb, 1); + } + } + ENDCG + } + } +} diff --git a/_Nix/display.shader.meta b/_Nix/rvc/display.shader.meta similarity index 100% rename from _Nix/display.shader.meta rename to _Nix/rvc/display.shader.meta diff --git a/_Nix/rvc/display.shader.pp b/_Nix/rvc/display.shader.pp new file mode 100755 index 00000000..47007ba5 --- /dev/null +++ b/_Nix/rvc/display.shader.pp @@ -0,0 +1,60 @@ +Shader "Nix/Display" +{ + Properties + { + _Tex ("Texture", 2D) = "white" {} + [ToggleUI] _FullData ("Transcode all data", Float) = 0 + [ToggleUI] _VisualizeState ("Visualize Only State", Float) = 0 + } + SubShader + { + Tags { "RenderType"="Transparent" "Queue"="Transparent" } + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + + Pass + { + CGPROGRAM + #include "UnityCG.cginc" + #include "helpers.cginc" + #pragma target 5.0 + #pragma vertex vert_ortho_fullscreen + #pragma fragment frag + + Texture2D _Tex; + float _FullData, _VisualizeState; + + + + float4 frag(v2f i) : SV_Target { + uint2 dim; + _Tex.GetDimensions(dim.x, dim.y); + + if (is_ortho) { + uint2 pos = _FullData ? + (i.uv * (uint2(, ) * uint2(3, 2))) % uint2(, ) : + (i.uv * (uint2(, ) * uint2(6, 1))) % uint2(, ); + uint4 data = _Tex[pos]; + + // output packed values, stretched along x + float3 res[6]; + pack_uint4(data, res); + + uint idx = (uint)(i.uv.x * (_FullData ? 3 : 6)); + if (_FullData && i.uv.y >= 0.5) { + idx += 3; + } + return float4(res[idx], 1); + } else { + uint2 pos = i.uv * (_VisualizeState ? float2(, )*0.995 : dim); + uint4 data = _Tex[pos]; + if (_VisualizeState) { + data.rgba = data.garb; + } + return float4(uint_to_color(data).rgb, 1); + } + } + ENDCG + } + } +} diff --git a/_Nix/rvc/display.shader.pp.meta b/_Nix/rvc/display.shader.pp.meta new file mode 100755 index 00000000..cd176d25 --- /dev/null +++ b/_Nix/rvc/display.shader.pp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7236dcb7ce615e74a9a521723cb982e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/fbexport.shader b/_Nix/rvc/fbexport.shader new file mode 100755 index 00000000..170fd362 --- /dev/null +++ b/_Nix/rvc/fbexport.shader @@ -0,0 +1,40 @@ +Shader "Nix/FB Export" +{ + Properties + { + _Tex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" "Queue"="Geometry" } + Cull Off + + Pass + { + CGPROGRAM + #include "UnityCG.cginc" + #include "helpers.cginc" + #pragma target 5.0 + #pragma vertex vert_ortho_fullscreen + #pragma fragment frag + + Texture2D _Tex; + + float4 frag(v2f i) : SV_Target { + uint2 dim; + _Tex.GetDimensions(dim.x, dim.y); + + if (is_ortho) { + uint2 pos = i.uv * dim; + float4 data = _Tex[pos]; + return data; + } else { + uint2 pos = i.uv * dim; + float4 data = _Tex[pos]; + return data; + } + } + ENDCG + } + } +} diff --git a/_Nix/rvc/fbexport.shader.meta b/_Nix/rvc/fbexport.shader.meta new file mode 100755 index 00000000..cfc91c3e --- /dev/null +++ b/_Nix/rvc/fbexport.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8b591568fb27d9a4280ce5663985cc77 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/framebuffer.shader b/_Nix/rvc/framebuffer.shader new file mode 100755 index 00000000..c7680937 --- /dev/null +++ b/_Nix/rvc/framebuffer.shader @@ -0,0 +1,84 @@ +Shader "Nix/fb" +{ + Properties + { + [ToggleUI] _Init ("Init", float) = 0 + + _Data ("Data CRT", 2D) = "black" {} + } + SubShader + { + Tags { "RenderType"="Opaque" "IgnoreProjector"="true" } + Cull Off + ZTest Off + Lighting Off + Blend One Zero + + Pass + { + Name "Update" + + CGPROGRAM + #pragma target 5.0 + #pragma vertex CustomRenderTextureVertexShader + #pragma fragment frag + + // Cache buster: 6 + + // custom crt include + #include "crt_float4.cginc" + #include "UnityCG.cginc" + + float _Init; + Texture2D _Data; + + #define STATE_TEX_HART(pos, hartidx) (_Data[uint2(pos) + uint2(hartidx % 2, hartidx / 2)]) + #define STATE_TEX(pos) (_Data[pos]) + + static uint2 s_dim; + + #define PASS_FB + + #include "helpers.cginc" + #include "src/types.h" + #include "src/fb.h" + + float4 frag(v2f_customrendertexture i) : SV_Target { + _SelfTexture2D.GetDimensions(s_dim.x, s_dim.y); + uint2 pos = i.globalTexcoord.xy * s_dim; + + if (_Init) { + return float4(0, 0, 0, 0); + } + + decode_for_commit(); + float4 scratchraw = _SelfTexture2D[uint2(0, 0)]; + uint4 scratch1 = uint4(scratchraw*255.0f+0.5f); + scratchraw = _SelfTexture2D[uint2(0, 1)]; + uint4 scratch2 = uint4(scratchraw*255.0f+0.5f); + bool isScratch = pos.x == 0; + + if (!isScratch) { + pos -= uint2(1, 0); + } + + pos.y = 25 - pos.y - 1; + float4 result = update_fb(pos, cpu.uart_buffer, scratch1, scratch2); + + if (isScratch) { + if (pos.y == 24) { + return float4(scratch1.rgb / 255.0f, 1); + } else if (pos.y == 23) { + return float4(scratch2.rgb / 255.0f, 1); + } else { + return 0; + } + } + + // I think alpha must be 1 for successful Udon readback... + return float4(result.rgb, 1); + } + ENDCG + } + } +} diff --git a/_Nix/rvc/framebuffer.shader.meta b/_Nix/rvc/framebuffer.shader.meta new file mode 100755 index 00000000..9a4a3af9 --- /dev/null +++ b/_Nix/rvc/framebuffer.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 813483f5200920844805d5247ca3303d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/helpers.cginc b/_Nix/rvc/helpers.cginc index 5c191817..9fb665aa 100755 --- a/_Nix/rvc/helpers.cginc +++ b/_Nix/rvc/helpers.cginc @@ -1,5 +1,7 @@ static bool is_ortho = unity_OrthoParams.w; +#define OFFSET_UINT2_POS(x, y, w, h, n) uint2((x + n) % w, y + ((n + x) / h)) + uint2 prev_pos(in uint2 pos, in uint2 dim) { return uint2( (pos.x == 0 ? dim.x : pos.x) - 1, @@ -15,22 +17,41 @@ uint2 next_pos(in uint2 pos, in uint2 dim) { } uint idx_uint4(uint4 data, uint idx) { + return data[idx]; + /* [flatten] */ + /* switch (idx) { */ + /* case 0: */ + /* return data.x; */ + /* case 1: */ + /* return data.y; */ + /* case 2: */ + /* return data.z; */ + /* default: // 3 */ + /* return data.w; */ + /* } */ +} + +void set_idx_uint4(inout uint4 data, uint value, uint idx) { [flatten] switch (idx) { case 0: - return data.x; + data.x = value; + break; case 1: - return data.y; + data.y = value; + break; case 2: - return data.z; - default: - return data.w; + data.z = value; + break; + default: // 3 + data.w = value; + break; } } struct v2f { float4 vertex : SV_Position; - float2 uv : TEXCOORD0; + centroid float2 uv : TEXCOORD0; }; v2f vert_ortho_fullscreen(appdata_base v) { @@ -82,6 +103,26 @@ void pack_uint4(in uint4 data, out float3 result[6]) { result[5].r = ((data.a >> (PACK_SHIFT*3)) & PACK_MASK) / 255.0f; result[5].gb = 0; } +uint4 unpack_uint4(in float3 data[6]) { + uint4 result; + result.x = uint(data[0].r * 255.0f + 0.5f) | + (uint(data[1].r * 255.0f + 0.5f) << 8) | + (uint(data[2].r * 255.0f + 0.5f) << 16) | + (uint(data[3].r * 255.0f + 0.5f) << 24); + result.y = uint(data[0].g * 255.0f + 0.5f) | + (uint(data[1].g * 255.0f + 0.5f) << 8) | + (uint(data[2].g * 255.0f + 0.5f) << 16) | + (uint(data[3].g * 255.0f + 0.5f) << 24); + result.z = uint(data[0].b * 255.0f + 0.5f) | + (uint(data[1].b * 255.0f + 0.5f) << 8) | + (uint(data[2].b * 255.0f + 0.5f) << 16) | + (uint(data[3].b * 255.0f + 0.5f) << 24); + result.w = uint(data[4].r * 255.0f + 0.5f) | + (uint(data[4].g * 255.0f + 0.5f) << 8) | + (uint(data[4].b * 255.0f + 0.5f) << 16) | + (uint(data[5].r * 255.0f + 0.5f) << 24); + return result; +} #undef PACK_SHIFT #undef PACK_MASK @@ -93,3 +134,10 @@ uint unpack_raw_float4(in float4 data) { res |= uint(data.r*255.0f+0.5f); return res; } + +uint xorshift(uint seed) { + seed ^= seed << 13; + seed ^= seed >> 17; + seed ^= seed << 5; + return seed; +} \ No newline at end of file diff --git a/_Nix/rvc/main.shader b/_Nix/rvc/main.shader index 40f3be62..5f885fb2 100755 --- a/_Nix/rvc/main.shader +++ b/_Nix/rvc/main.shader @@ -6,11 +6,14 @@ [ToggleUI] _InitRaw ("Init directly from _Data_RAM_RAW", float) = 0 _Ticks ("Ticks per Frame", Int) = 1024 _TicksDivisor ("Tick Divisor", Int) = 4 - _UdonUARTPtr ("UART ptr on Udon side", Int) = 0 _UdonUARTInChar ("UART input Udon side", Int) = 0 _UdonUARTInTag ("UART input unique tag", Int) = 0 + _PlayerID ("Player ID", Int) = -1 + _RTC0 ("RTC0", Int) = 0 + _RTC1 ("RTC1", Int) = 0 + _Data_RAM_R ("RAM Texture R", 2D) = "black" {} _Data_RAM_G ("RAM Texture G", 2D) = "black" {} _Data_RAM_B ("RAM Texture B", 2D) = "black" {} @@ -23,6 +26,11 @@ _Data_DTB_B ("Device Tree Binary Texture B", 2D) = "black" {} _Data_DTB_A ("Device Tree Binary Texture A", 2D) = "black" {} + _Data_MTD_R ("MTD ROM Texture R", 2D) = "black" {} + _Data_MTD_G ("MTD ROM Texture G", 2D) = "black" {} + _Data_MTD_B ("MTD ROM Texture B", 2D) = "black" {} + _Data_MTD_A ("MTD ROM Texture A", 2D) = "black" {} + _DoTick ("DEBUG: Perform single step", Int) = 0 /* _BreakpointLow ("DEBUG: Breakpoint: Enter single step mode at this PC address (low 16)", Int) = 0 */ /* _BreakpointHigh ("DEBUG: Breakpoint: Enter single step mode at this PC address (high 16)", Int) = 0 */ @@ -51,13 +59,17 @@ #define PASS_TICK + // Cache buster: 31 + // custom crt include w/ Texture2D self-reference #include "crt.cginc" #include "UnityCG.cginc" uniform uint _Init, _InitRaw; uniform uint _Ticks, _TicksDivisor; - uniform uint _UdonUARTPtr, _UdonUARTInChar, _UdonUARTInTag; + uniform uint _UdonUARTInChar, _UdonUARTInTag; + uniform uint _PlayerID; + uniform uint _RTC0, _RTC1; uniform uint _DoTick; /* uniform uint _BreakpointLow, _BreakpointHigh; */ /* uniform uint _BreakpointLowClock, _BreakpointHighClock; */ @@ -69,9 +81,19 @@ Texture2D _Data_DTB_B; Texture2D _Data_DTB_A; - #define STATE_TEX _SelfTexture2D + Texture2D _Data_MTD_R; + Texture2D _Data_MTD_G; + Texture2D _Data_MTD_B; + Texture2D _Data_MTD_A; + + static uint hart = 0; + static uint2 hart_offset = uint2(0, 0); + + #define STATE_TEX_HART(pos, hartidx) (_SelfTexture2D[uint2(pos) + uint2(hartidx % 2, hartidx / 2)]) + #define STATE_TEX(pos) (_SelfTexture2D[pos]) static uint2 s_dim; + static uint2 m_dim; #include "helpers.cginc" @@ -82,26 +104,40 @@ #include "src/cpu.h" uint4 frag(v2f_customrendertexture i) : SV_Target { - STATE_TEX.GetDimensions(s_dim.x, s_dim.y); + _SelfTexture2D.GetDimensions(s_dim.x, s_dim.y); + _Data_MTD_R.GetDimensions(m_dim.x, m_dim.y); uint2 pos = i.globalTexcoord.xy * s_dim; _Ticks /= max(_TicksDivisor, 1); _Ticks = max(_Ticks, 2); + // calculate active hart in 2x2 (mip-map) grid + /* hart = pos.y % 2 == 0 ? */ + /* (pos.x % 2 == 0 ? 0 : 1) : */ + /* (pos.x % 2 == 0 ? 2 : 3); */ + /* hart_offset = uint2(hart % 2, hart / 2); */ + /* pos /= 2; */ + /* if (hart > 0) { */ + /* // FIXME */ + /* return uint4(~0, ~0, ~0, ~0); */ + /* } */ + /* _Breakpoint = _BreakpointLow | (_BreakpointHigh << 16); */ /* _BreakpointClock = _BreakpointLowClock | (_BreakpointHighClock << 16); */ if (_Init) { - if (!_InitRaw) { + if (_InitRaw) { + return _SelfTexture2D[pos]; + } else { cpu = cpu_init(); } } else { if (!pixel_has_state(pos)) { - return STATE_TEX[pos]; + return STATE_TEX(pos); } - decode(_UdonUARTPtr); + decode(); [fastopt] for (uint i = 0; i < _Ticks && !cpu.stall; i++) { @@ -113,8 +149,6 @@ /* cpu.debug_mem_val = mem_get_word(_CheckMEM | (_CheckMEMraw ? 0 : 0x80000000)); */ return encode(pos); - /* return uint4(mem_get_word(0x80000000), 0, 0, 0); */ - /* return uint4(uint(pos.x + 128*pos.y) % 256, 0, 0, 0); */ } ENDCG } @@ -130,6 +164,8 @@ #define PASS_COMMIT + // Cache buster: 31 + // custom crt include #include "crt.cginc" #include "UnityCG.cginc" @@ -140,23 +176,34 @@ Texture2D _Data_RAM_G; Texture2D _Data_RAM_B; Texture2D _Data_RAM_A; - Texture2D _Data_RAM_RAW; + Texture2D _Data_RAM_RAW; - #define STATE_TEX _SelfTexture2D + Texture2D _Data_MTD_R; + Texture2D _Data_MTD_G; + Texture2D _Data_MTD_B; + Texture2D _Data_MTD_A; + + #define STATE_TEX_HART(pos, hartidx) (_SelfTexture2D[uint2(pos) + uint2(hartidx % 2, hartidx / 2)]) + #define STATE_TEX(pos) (_SelfTexture2D[pos]) static uint2 s_dim; + static uint2 m_dim; #include "helpers.cginc" - - #include "src/types.h" + #include "src/types.h" // includes fb.h uint4 frag(v2f_customrendertexture i) : SV_Target { - STATE_TEX.GetDimensions(s_dim.x, s_dim.y); - + _SelfTexture2D.GetDimensions(s_dim.x, s_dim.y); + _Data_MTD_R.GetDimensions(m_dim.x, m_dim.y); uint2 pos = i.globalTexcoord.xy * s_dim; if (_Init && _InitRaw) { - return _Data_RAM_RAW[pos]; + float3 raw[6]; + for (uint off = 0; off < 6; off++) { + raw[off] = _Data_RAM_RAW[pos + uint2((off * s_dim.x) % (s_dim.x*3), (off / 3) * s_dim.y)].rgb; + } + uint4 data = unpack_uint4(raw); + return data; } decode_for_commit(); diff --git a/_Nix/rvc/src/cpu.h b/_Nix/rvc/src/cpu.h index 2974e847..944630b5 100755 --- a/_Nix/rvc/src/cpu.h +++ b/_Nix/rvc/src/cpu.h @@ -4,7 +4,7 @@ cpu_t cpu_init() { cpu_t ret = (cpu_t)0; - ret.xreg11 = 0x1020; // linux? device tree? + ret.xreg[11] = 0x1020; // device tree base ret.pc = 0x80000000; ret.reservation_en = false; @@ -13,6 +13,8 @@ cpu_t cpu_init() { ret.csr.privilege = 3; // PRIV_MACHINE + ret.start_time_ref = _Time.y; + return ret; } @@ -23,15 +25,6 @@ void cpu_tick() { } cpu.debug_do_tick = _DoTick; - /* cpu.debug_arb_0 = */ - /* cpu.debug_arb_1 = */ - /* cpu.debug_arb_2 = */ - /* cpu.debug_arb_3 = */ - /* cpu.debug_arb_4 = */ - /* cpu.debug_arb_5 = */ - /* cpu.debug_arb_6 = */ - /* cpu.debug_arb_7 = 0; */ - cpu.clock++; emulate(); @@ -42,7 +35,6 @@ void cpu_tick() { if (cpu.stall) { cpu.stall_count++; - return; } } diff --git a/_Nix/rvc/src/csr.h b/_Nix/rvc/src/csr.h index 4f454b99..92b55a71 100755 --- a/_Nix/rvc/src/csr.h +++ b/_Nix/rvc/src/csr.h @@ -3,8 +3,12 @@ -/* must match set/line count above, shift by two to ignore byte offset */ -#define RAM_L1_TAG(a) ((a >> 2) & 0xf) +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) #define CSR_USTATUS 0x000 @@ -50,6 +54,14 @@ #define CSR_MEMOP_DST 0x0b2 #define CSR_MEMOP_N 0x0b3 +#define CSR_PLAYER_ID 0xbe +#define CSR_RNG 0x0bf + +#define CSR_NET_TX_BUF_ADDR 0x0c0 +#define CSR_NET_TX_BUF_SIZE_AND_SEND 0x0c1 +#define CSR_NET_RX_BUF_ADDR 0x0c2 +#define CSR_NET_RX_BUF_READY 0x0c3 + bool has_csr_access_privilege(uint addr) { uint privilege = (addr >> 8) & 0x3; return privilege <= cpu.csr.privilege; @@ -61,7 +73,7 @@ uint read_csr_raw(uint address) { uint read_mask = 0xffffffff; - [branch] + [forcecase] switch (address) { case CSR_MISA: return 0x40141101; // 0b01000000000101000001000100000001 = RV32AIMSU case CSR_SSTATUS: address = CSR_MSTATUS; read_mask = 0x000de162; break; @@ -72,6 +84,8 @@ uint read_csr_raw(uint address) { case CSR_CYCLE: return cpu.clock; case CSR_MHARTID: return 0; case CSR_SATP: return (cpu.mmu.mode << 31) | cpu.mmu.ppn; + case CSR_RNG: return xorshift(asuint(_Time.w)); + case CSR_PLAYER_ID: return _PlayerID; } uint ret; @@ -107,7 +121,7 @@ void write_csr_raw(uint address, uint value) { uint what = value; uint modify_mask = 0; ins_ret nop = ins_ret_noop(); - [branch] + [forcecase] switch (address) { case CSR_SSTATUS: where = CSR_MSTATUS; @@ -135,6 +149,7 @@ void write_csr_raw(uint address, uint value) { return; case CSR_MEMOP_OP: cpu.stall = STALL_MEMOP_COPY; + cpu.debug_arb_0++; return; }; diff --git a/_Nix/rvc/src/csr.h.pp b/_Nix/rvc/src/csr.h.pp index 9874dc7f..fc27b603 100755 --- a/_Nix/rvc/src/csr.h.pp +++ b/_Nix/rvc/src/csr.h.pp @@ -46,6 +46,14 @@ #define CSR_MEMOP_DST 0x0b2 #define CSR_MEMOP_N 0x0b3 +#define CSR_PLAYER_ID 0xbe +#define CSR_RNG 0x0bf + +#define CSR_NET_TX_BUF_ADDR 0x0c0 +#define CSR_NET_TX_BUF_SIZE_AND_SEND 0x0c1 +#define CSR_NET_RX_BUF_ADDR 0x0c2 +#define CSR_NET_RX_BUF_READY 0x0c3 + bool has_csr_access_privilege(uint addr) { uint privilege = (addr >> 8) & 0x3; return privilege <= cpu.csr.privilege; @@ -57,7 +65,7 @@ uint read_csr_raw(uint address) { uint read_mask = 0xffffffff; - [branch] + [forcecase] switch (address) { case CSR_MISA: return 0x40141101; // 0b01000000000101000001000100000001 = RV32AIMSU case CSR_SSTATUS: address = CSR_MSTATUS; read_mask = 0x000de162; break; @@ -68,6 +76,8 @@ uint read_csr_raw(uint address) { case CSR_CYCLE: return cpu.clock; case CSR_MHARTID: return 0; case CSR_SATP: return (cpu.mmu.mode << 31) | cpu.mmu.ppn; + case CSR_RNG: return xorshift(asuint(_Time.w)); + case CSR_PLAYER_ID: return _PlayerID; } uint ret; @@ -91,7 +101,7 @@ void write_csr_raw(uint address, uint value) { uint what = value; uint modify_mask = 0; ins_ret nop = ins_ret_noop(); - [branch] + [forcecase] switch (address) { case CSR_SSTATUS: where = CSR_MSTATUS; @@ -119,6 +129,7 @@ void write_csr_raw(uint address, uint value) { return; case CSR_MEMOP_OP: cpu.stall = STALL_MEMOP_COPY; + cpu.debug_arb_0++; return; }; diff --git a/_Nix/rvc/src/emu.h b/_Nix/rvc/src/emu.h index 739fb07a..f9dd75bd 100755 --- a/_Nix/rvc/src/emu.h +++ b/_Nix/rvc/src/emu.h @@ -576,7 +576,7 @@ ins_ret ins_select(uint ins_word, inout ins_ret ret) { RUN(sfence_vma, 0x12000073, ins_FormatEmpty) } ins_masked = ins_word & 0xffffffff; - [forcecase] + [branch] switch (ins_masked) { RUN(ebreak, 0x00100073, ins_FormatEmpty) RUN(ecall, 0x00000073, ins_FormatEmpty) @@ -596,6 +596,7 @@ ins_ret ins_select(uint ins_word, inout ins_ret ret) { void emulate() { uint ins_word = 0; ins_ret ret = ins_ret_noop(); + bool mtip_reset = false; if ((cpu.pc & 0x3) == 0) { uint ins_addr = mmu_translate(ret, cpu.pc, MMU_ACCESS_FETCH); @@ -618,7 +619,8 @@ void emulate() { if (imc == 0) { cpu.memop_src_p = phys; } else { - cpu.memop_dst_p = phys; + // Note: This only allows targets within RAM + cpu.memop_dst_p = phys & 0x7fffffff; } } } @@ -627,12 +629,17 @@ void emulate() { if (ret.mem_wr_size && !ret.trap.en) { uint write_addr = mmu_translate(ret, ret.mem_wr_addr, MMU_ACCESS_WRITE); if (!ret.trap.en) { - mem_set(write_addr, ret.mem_wr_value, ret.mem_wr_size / 8); + mem_set(write_addr, ret.mem_wr_value, ret.mem_wr_size / 8); + + // MTIP (machine timer interrupt pending) resets when mtimecmp is written + if (write_addr == 0x02004000) { + mtip_reset = true; + } } } if (!ret.trap.en && ret.write_reg) { - #define C(x) case x: cpu.xreg##x = ret.write_val; break; + #define C(x) case x: cpu.xreg[x] = ret.write_val; break; if (ret.write_reg < 16) { [flatten] switch (ret.write_reg) { @@ -665,17 +672,22 @@ void emulate() { mip_override |= MIP_MSIP; } - cpu.clint.mtime_lo++; - cpu.clint.mtime_hi += cpu.clint.mtime_lo == 0 ? 1 : 0; + double mtime = (double)_Time.x * 1000000.0 * 0.1; + cpu.clint.mtime_lo = (uint)(floor(glsl_mod(mtime, 4294967296.0))); // & 0xffffffff + cpu.clint.mtime_hi = (uint)(mtime / 4294967296.0); // >> 32 if ((cpu.clint.mtimecmp_lo != 0 || cpu.clint.mtimecmp_hi != 0) && (cpu.clint.mtime_hi > cpu.clint.mtimecmp_hi || (cpu.clint.mtime_hi == cpu.clint.mtimecmp_hi && cpu.clint.mtime_lo >= cpu.clint.mtimecmp_lo))) { mip_override |= MIP_MTIP; } + [flatten] + if (mtip_reset) { + mip_override &= ~MIP_MTIP; + } uart_tick(); - if (cpu.uart.interrupting) { - mip_override |= MIP_SEIP; - } + //if (cpu.uart.interrupting) { + // mip_override |= MIP_SEIP; + //} /* if (ret.trap.en && cpu.clock <= 1) { */ /* cpu.stall = STALL_ILLEGAL_ENTRY_POINT; */ diff --git a/_Nix/rvc/src/fb.h b/_Nix/rvc/src/fb.h new file mode 100755 index 00000000..9bd53fb8 --- /dev/null +++ b/_Nix/rvc/src/fb.h @@ -0,0 +1,245 @@ +#ifndef FB_H +#define FB_H + + + +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) + + +#define BUFFER_MAX 63 +uint getbuf(uart_buffer buffer, uint index) { + [forcecase] + switch (index) { + case 0: return buffer.buf0; +case 1: return buffer.buf1; +case 2: return buffer.buf2; +case 3: return buffer.buf3; +case 4: return buffer.buf4; +case 5: return buffer.buf5; +case 6: return buffer.buf6; +case 7: return buffer.buf7; +case 8: return buffer.buf8; +case 9: return buffer.buf9; +case 10: return buffer.buf10; +case 11: return buffer.buf11; +case 12: return buffer.buf12; +case 13: return buffer.buf13; +case 14: return buffer.buf14; +case 15: return buffer.buf15; +case 16: return buffer.buf16; +case 17: return buffer.buf17; +case 18: return buffer.buf18; +case 19: return buffer.buf19; +case 20: return buffer.buf20; +case 21: return buffer.buf21; +case 22: return buffer.buf22; +case 23: return buffer.buf23; +case 24: return buffer.buf24; +case 25: return buffer.buf25; +case 26: return buffer.buf26; +case 27: return buffer.buf27; +case 28: return buffer.buf28; +case 29: return buffer.buf29; +case 30: return buffer.buf30; +case 31: return buffer.buf31; +case 32: return buffer.buf32; +case 33: return buffer.buf33; +case 34: return buffer.buf34; +case 35: return buffer.buf35; +case 36: return buffer.buf36; +case 37: return buffer.buf37; +case 38: return buffer.buf38; +case 39: return buffer.buf39; +case 40: return buffer.buf40; +case 41: return buffer.buf41; +case 42: return buffer.buf42; +case 43: return buffer.buf43; +case 44: return buffer.buf44; +case 45: return buffer.buf45; +case 46: return buffer.buf46; +case 47: return buffer.buf47; +case 48: return buffer.buf48; +case 49: return buffer.buf49; +case 50: return buffer.buf50; +case 51: return buffer.buf51; +case 52: return buffer.buf52; +case 53: return buffer.buf53; +case 54: return buffer.buf54; +case 55: return buffer.buf55; +case 56: return buffer.buf56; +case 57: return buffer.buf57; +case 58: return buffer.buf58; +case 59: return buffer.buf59; +case 60: return buffer.buf60; +case 61: return buffer.buf61; +case 62: return buffer.buf62; +case 63: return buffer.buf63; + + } + return 0; +} + +float4 tex_get_fb(uint2 px) { + if (px.y >= 25) return (float4)0; // init empty newlines with 0 + px.y = 25 - px.y - 1; + px.x += 1; + return _SelfTexture2D[px]; +} + +#define NO_CHAR 0x80000000 +struct fbupd { + uint2 pos; + uint upshift; + uint char; +}; +static fbupd fblog[BUFFER_MAX]; + +void interpret(inout uint4 ctrlSeq, inout uint2 cursor_pos, inout uint char) { + if (ctrlSeq.x == '\b') { + // backspace + if (cursor_pos.x > 0) { + cursor_pos.x -= 1; + } else { + cursor_pos.x = 0; + // if (cursor_pos.y > 0) { + // cursor_pos.y -= 1; + // } + } + char = 0; + } else if (ctrlSeq.x == '\n') { + cursor_pos.y += 1; + } else if (ctrlSeq.x == '\r') { + cursor_pos.x = 0; + } else if (ctrlSeq.x == '\t') { + cursor_pos.x = (cursor_pos.x & 0xf8) + 8; + } else if (ctrlSeq.x == 0x1b) { + // ANSI escape sequence + if (ctrlSeq.y == 0x9b) { + // CSI + if (ctrlSeq.z == 'A') { + // up + if (cursor_pos.y > 0) { + cursor_pos.y -= 1; + } + } else if (ctrlSeq.z == 'B') { + // down + if (cursor_pos.y < 25) { + cursor_pos.y += 1; + } + } else if (ctrlSeq.z == 'C') { + // right + if (cursor_pos.x < 80) { + cursor_pos.x += 1; + } + } else if (ctrlSeq.z == 'D') { + // left + if (cursor_pos.x > 0) { + cursor_pos.x -= 1; + } + } else if (ctrlSeq.z == 'H') { + // home + cursor_pos.x = 0; + cursor_pos.y = 0; + } else if (ctrlSeq.z == 'F') { + // end + cursor_pos.x = 80; + cursor_pos.y = 25; + } else if (!all(ctrlSeq.zw)) { // detect and reset on unknown sequence + return; + } + } else if (ctrlSeq.y == 0) { + return; + } + } + // unrecognized or single-char control will reset + ctrlSeq = (uint4)0; +} + +float4 update_fb(uint2 pos, uart_buffer buffer, inout uint4 scratch1, inout uint4 scratch2) { + [branch] + if (buffer.ptr == 0xffffffff) { + // no update, keep everything the same + float4 cur = tex_get_fb(pos); + return cur; + } + + uint2 cursor_pos = uint2(scratch1.x, scratch1.y); + uint2 orig_cursor_pos = cursor_pos; + + uint4 ctrlSeq = uint4(scratch1.z, scratch2.x, scratch2.y, scratch2.z); + + uint upshifts = 0; + uint bufidx; + + // generate log and upshift value + [loop] + for (bufidx = 0; bufidx <= buffer.ptr; bufidx++) { + uint c = getbuf(buffer, bufidx); + + fbupd upd; + upd.pos = cursor_pos; + upd.upshift = upshifts; + + if (any(ctrlSeq)) { + upd.char = NO_CHAR; + if (ctrlSeq.y == 0) ctrlSeq.y = c; + else if (ctrlSeq.z == 0) ctrlSeq.z = c; + else ctrlSeq.w = c; // FIXME: longer ctrl sequences? + interpret(ctrlSeq, cursor_pos, upd.char); + } else if (c == '\n' || c == '\t' || c == '\r' || c == '\b' || c == 0x1b) { + upd.char = NO_CHAR; + ctrlSeq = uint4(c, 0, 0, 0); + interpret(ctrlSeq, cursor_pos, upd.char); + } else { + cursor_pos += uint2(1, 0); + upd.char = c; + } + + fblog[bufidx] = upd; + + [branch] + if (cursor_pos.x >= 80) { + cursor_pos.x = 0; + cursor_pos.y += 1; + } + [loop] + while (cursor_pos.y >= 25) { + cursor_pos.y--; + upshifts++; + } + } + + uint2 new_cursor_pos = cursor_pos; + uint2 active_pos = pos + uint2(0, upshifts); + float4 active = tex_get_fb(active_pos); + + // apply log + [loop] + for (bufidx = 0; bufidx <= buffer.ptr; bufidx++) { + fbupd upd = fblog[bufidx]; + if (upd.char == NO_CHAR) continue; + uint backshift = upshifts - upd.upshift; + upd.pos -= uint2(0, backshift); + [branch] + if (upd.pos.x == pos.x && upd.pos.y == pos.y) { + active = float4(upd.char / 255.0f, 0, 0, 0); + } + } + + scratch1.x = new_cursor_pos.x; + scratch1.y = new_cursor_pos.y; + scratch1.z = ctrlSeq.x; + scratch2.x = ctrlSeq.y; + scratch2.y = ctrlSeq.z; + scratch2.z = ctrlSeq.w; + scratch2.w = 0; + scratch1.w = 0; + return active; +} + +#endif \ No newline at end of file diff --git a/_Nix/rvc/src/fb.h.meta b/_Nix/rvc/src/fb.h.meta new file mode 100755 index 00000000..2a903d07 --- /dev/null +++ b/_Nix/rvc/src/fb.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 5c28c4a71cc6d0547aed07fe121d3ff6 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/src/fb.h.pp b/_Nix/rvc/src/fb.h.pp new file mode 100755 index 00000000..209fa620 --- /dev/null +++ b/_Nix/rvc/src/fb.h.pp @@ -0,0 +1,177 @@ +#ifndef FB_H +#define FB_H + + + +#define BUFFER_MAX +uint getbuf(uart_buffer buffer, uint index) { + [forcecase] + switch (index) { + + } + return 0; +} + +float4 tex_get_fb(uint2 px) { + if (px.y >= 25) return (float4)0; // init empty newlines with 0 + px.y = 25 - px.y - 1; + px.x += 1; + return _SelfTexture2D[px]; +} + +#define NO_CHAR 0x80000000 +struct fbupd { + uint2 pos; + uint upshift; + uint char; +}; +static fbupd fblog[BUFFER_MAX]; + +void interpret(inout uint4 ctrlSeq, inout uint2 cursor_pos, inout uint char) { + if (ctrlSeq.x == '\b') { + // backspace + if (cursor_pos.x > 0) { + cursor_pos.x -= 1; + } else { + cursor_pos.x = 0; + // if (cursor_pos.y > 0) { + // cursor_pos.y -= 1; + // } + } + char = 0; + } else if (ctrlSeq.x == '\n') { + cursor_pos.y += 1; + } else if (ctrlSeq.x == '\r') { + cursor_pos.x = 0; + } else if (ctrlSeq.x == '\t') { + cursor_pos.x = (cursor_pos.x & 0xf8) + 8; + } else if (ctrlSeq.x == 0x1b) { + // ANSI escape sequence + if (ctrlSeq.y == 0x9b) { + // CSI + if (ctrlSeq.z == 'A') { + // up + if (cursor_pos.y > 0) { + cursor_pos.y -= 1; + } + } else if (ctrlSeq.z == 'B') { + // down + if (cursor_pos.y < 25) { + cursor_pos.y += 1; + } + } else if (ctrlSeq.z == 'C') { + // right + if (cursor_pos.x < 80) { + cursor_pos.x += 1; + } + } else if (ctrlSeq.z == 'D') { + // left + if (cursor_pos.x > 0) { + cursor_pos.x -= 1; + } + } else if (ctrlSeq.z == 'H') { + // home + cursor_pos.x = 0; + cursor_pos.y = 0; + } else if (ctrlSeq.z == 'F') { + // end + cursor_pos.x = 80; + cursor_pos.y = 25; + } else if (!all(ctrlSeq.zw)) { // detect and reset on unknown sequence + return; + } + } else if (ctrlSeq.y == 0) { + return; + } + } + // unrecognized or single-char control will reset + ctrlSeq = (uint4)0; +} + +float4 update_fb(uint2 pos, uart_buffer buffer, inout uint4 scratch1, inout uint4 scratch2) { + [branch] + if (buffer.ptr == 0xffffffff) { + // no update, keep everything the same + float4 cur = tex_get_fb(pos); + return cur; + } + + uint2 cursor_pos = uint2(scratch1.x, scratch1.y); + uint2 orig_cursor_pos = cursor_pos; + + uint4 ctrlSeq = uint4(scratch1.z, scratch2.x, scratch2.y, scratch2.z); + + uint upshifts = 0; + uint bufidx; + + // generate log and upshift value + [loop] + for (bufidx = 0; bufidx <= buffer.ptr; bufidx++) { + uint c = getbuf(buffer, bufidx); + + fbupd upd; + upd.pos = cursor_pos; + upd.upshift = upshifts; + + if (any(ctrlSeq)) { + upd.char = NO_CHAR; + if (ctrlSeq.y == 0) ctrlSeq.y = c; + else if (ctrlSeq.z == 0) ctrlSeq.z = c; + else ctrlSeq.w = c; // FIXME: longer ctrl sequences? + interpret(ctrlSeq, cursor_pos, upd.char); + } else if (c == '\n' || c == '\t' || c == '\r' || c == '\b' || c == 0x1b) { + upd.char = NO_CHAR; + ctrlSeq = uint4(c, 0, 0, 0); + interpret(ctrlSeq, cursor_pos, upd.char); + } else { + cursor_pos += uint2(1, 0); + upd.char = c; + } + + fblog[bufidx] = upd; + + [branch] + if (cursor_pos.x >= 80) { + cursor_pos.x = 0; + cursor_pos.y += 1; + } + [loop] + while (cursor_pos.y >= 25) { + cursor_pos.y--; + upshifts++; + } + } + + uint2 new_cursor_pos = cursor_pos; + uint2 active_pos = pos + uint2(0, upshifts); + float4 active = tex_get_fb(active_pos); + + // apply log + [loop] + for (bufidx = 0; bufidx <= buffer.ptr; bufidx++) { + fbupd upd = fblog[bufidx]; + if (upd.char == NO_CHAR) continue; + uint backshift = upshifts - upd.upshift; + upd.pos -= uint2(0, backshift); + [branch] + if (upd.pos.x == pos.x && upd.pos.y == pos.y) { + active = float4(upd.char / 255.0f, 0, 0, 0); + } + } + + scratch1.x = new_cursor_pos.x; + scratch1.y = new_cursor_pos.y; + scratch1.z = ctrlSeq.x; + scratch2.x = ctrlSeq.y; + scratch2.y = ctrlSeq.z; + scratch2.z = ctrlSeq.w; + scratch2.w = 0; + scratch1.w = 0; + return active; +} + +#endif \ No newline at end of file diff --git a/_Nix/rvc/src/fb.h.pp.meta b/_Nix/rvc/src/fb.h.pp.meta new file mode 100755 index 00000000..6d251f72 --- /dev/null +++ b/_Nix/rvc/src/fb.h.pp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d753c12a72af91e409651459056c3fbb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/rvc/src/header.p b/_Nix/rvc/src/header.p index 61fd726f..6063e856 100755 --- a/_Nix/rvc/src/header.p +++ b/_Nix/rvc/src/header.p @@ -1,9 +1,20 @@ -/* must match set/line count above, shift by two to ignore byte offset */ -#define RAM_L1_TAG(a) ((a >> 2) & 0xf) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & ) | (((a >> ) & 0x3) << )) diff --git a/_Nix/rvc/src/mem.h b/_Nix/rvc/src/mem.h index aa4e0b90..4b0ac59b 100755 --- a/_Nix/rvc/src/mem.h +++ b/_Nix/rvc/src/mem.h @@ -3,8 +3,12 @@ -/* must match set/line count above, shift by two to ignore byte offset */ -#define RAM_L1_TAG(a) ((a >> 2) & 0xf) +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) #define WORD_SIZE_NONE 0 @@ -17,68 +21,134 @@ uint mem_get_instruction(uint addr) { uint idx = (addr >> 2) & 0x3; addr = addr >> 4; - uint4 raw = STATE_TEX[RAM_ADDR(addr)]; + uint4 raw = STATE_TEX(RAM_ADDR(addr)); return idx_uint4(raw, idx); } +// Basic bloom filter to slightly optimize memory caching +static uint mem_cache_bloom = 0; + +// addr must be aligned to word boundary (4 byte) +uint mem_get_cached_or_tex(uint addr) { + // query L1 cache + if ((addr & mem_cache_bloom) == addr) { + // array-style L1 + for (uint slice = 0; slice < 2; slice++) { + uint arr_idx = RAM_L1_ARRAY_IDX(addr) + slice * 512; + uint4 cur = l1_cache[arr_idx]; + if (cur.x == addr) return cur.y; + else if (cur.z == addr) return cur.w; + } + + if (cpu.cache.ram_l1_last_addr == addr) { + // this may seem unnecessary, but is required for multi-byte write instructions + // which fill the 'last' buffer initially and then need it to be read back correctly + // to intertwine the new value into the cached word + return cpu.cache.ram_l1_last_val; + } + } + + // not in cache, query RAM texture + uint idx = (addr >> 2) & 0x3; + addr >>= 4; + uint4 raw = STATE_TEX(RAM_ADDR(addr)); + return idx_uint4(raw, idx); +} + + // little endian, zero extended, addr must be aligned to word boundary uint mem_get_word(uint addr) { - addr &= ~(0x3); - if (addr >= 0x1020 && addr <= 0x1fff) { - uint dtb_addr = addr - 0x1020; - uint dtb_idx = (dtb_addr >> 2) & 0x3; - dtb_addr = dtb_addr >> 4; - float4 full; - [branch] - switch (dtb_idx) { - case 0: - full = _Data_DTB_R[uint2(dtb_addr, 0)]; - break; - case 1: - full = _Data_DTB_G[uint2(dtb_addr, 0)]; - break; - case 2: - full = _Data_DTB_B[uint2(dtb_addr, 0)]; - break; - case 3: - full = _Data_DTB_A[uint2(dtb_addr, 0)]; - break; - } - return unpack_raw_float4(full); - } - - [branch] - switch (addr) { - // CLINT - case 0x02000000: return cpu.clint.msip ? 1 : 0; - - case 0x02004000: return cpu.clint.mtimecmp_lo; - case 0x02004004: return cpu.clint.mtimecmp_hi; - case 0x0200bff8: return cpu.clint.mtime_lo; - case 0x0200bffc: return cpu.clint.mtime_hi; - - // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) - case 0x10000000: - uint ret = 0; - if ((UART_GET2(LCR) >> 7) == 0) { - uint rbr = UART_GET1(RBR); - UART_SET1(RBR, 0); - UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_DATA_AVAILABLE)); - uart_update_iir(); - ret = rbr; - } - return ret | ((UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0) << 8) | (UART_GET1(IIR) << 16) | (UART_GET2(LCR) << 24); - /* case 0x10000001: return UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0; */ - /* case 0x10000002: return UART_GET1(IIR); */ - /* case 0x10000003: return UART_GET2(LCR); */ - case 0x10000004: return UART_GET2(MCR) | (UART_GET2(LSR) << 8) | (UART_GET2(SCR) << 24); - /* case 0x10000005: return UART_GET2(LSR); */ - /* case 0x10000007: return UART_GET2(SCR); */ - } + //addr &= ~(0x3); if ((addr & 0x80000000) == 0) { + [branch] + if (addr & 0x40000000) { + // MTD/ROM + uint mtd_addr = addr - 0x40000000; + uint mtd_idx = (mtd_addr >> 2) & 0x3; + mtd_addr = mtd_addr >> 4; + uint2 mtd_lin = uint2(mtd_addr % m_dim.x, mtd_addr / m_dim.x); + mtd_lin.y = m_dim.y - mtd_lin.y - 1; + //[branch] if (mtd_lin.y >= m_dim.y) return 0; + float4 full; + [branch] + switch (mtd_idx) { + case 0: + full = _Data_MTD_R[mtd_lin]; + break; + case 1: + full = _Data_MTD_G[mtd_lin]; + break; + case 2: + full = _Data_MTD_B[mtd_lin]; + break; + case 3: + full = _Data_MTD_A[mtd_lin]; + break; + } + return unpack_raw_float4(full); + } + + [branch] + if (addr >= 0x1020 && addr <= 0x1fff) { + uint dtb_addr = addr - 0x1020; + uint dtb_idx = (dtb_addr >> 2) & 0x3; + dtb_addr = dtb_addr >> 4; + float4 full; + [branch] + switch (dtb_idx) { + case 0: + full = _Data_DTB_R[uint2(dtb_addr, 0)]; + break; + case 1: + full = _Data_DTB_G[uint2(dtb_addr, 0)]; + break; + case 2: + full = _Data_DTB_B[uint2(dtb_addr, 0)]; + break; + case 3: + full = _Data_DTB_A[uint2(dtb_addr, 0)]; + break; + } + return unpack_raw_float4(full); + } + + [forcecase] + switch (addr) { + // CLINT + case 0x02000000: return cpu.clint.msip ? 1 : 0; + + case 0x02004000: return cpu.clint.mtimecmp_lo; + case 0x02004004: return cpu.clint.mtimecmp_hi; + case 0x0200bff8: return cpu.clint.mtime_lo; + case 0x0200bffc: return cpu.clint.mtime_hi; + + // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) + case 0x10000000: + uint ret = 0; + if ((UART_GET2(LCR) >> 7) == 0) { + uint rbr = UART_GET1(RBR); + UART_SET1(RBR, 0); + UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_DATA_AVAILABLE)); + uart_update_iir(); + ret = rbr; + } + return ret | ((UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0) << 8) | (UART_GET1(IIR) << 16) | (UART_GET2(LCR) << 24); + /* case 0x10000001: return UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0; */ + /* case 0x10000002: return UART_GET1(IIR); */ + /* case 0x10000003: return UART_GET2(LCR); */ + case 0x10000004: return UART_GET2(MCR) | (UART_GET2(LSR) << 8) | (UART_GET2(SCR) << 24); + /* case 0x10000005: return UART_GET2(LSR); */ + /* case 0x10000007: return UART_GET2(SCR); */ + + case 0x030007f8: return cpu.rtc0; + case 0x030007fc: return cpu.rtc1; + } + return 0; + //return addr; } + addr = addr & 0x7FFFFFFF; if (addr >= RAM_MAX) { @@ -89,36 +159,41 @@ uint mem_get_word(uint addr) { } void mem_set_byte(uint addr, uint val) { - [branch] - switch (addr) { - // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) - case 0x10000000: - if ((UART_GET2(LCR) >> 7) == 0) { - UART_SET1(THR, val); - UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_THR_EMPTY)); - uart_update_iir(); - } - return; - case 0x10000001: - if (UART_GET2(LCR) >> 7 == 0) { - if ((UART_GET1(IER) & IER_THREINT_BIT) == 0 && - (val & IER_THREINT_BIT) != 0 && - UART_GET1(THR) == 0) - { - cpu.uart.thre_ip = true; - } - UART_SET1(IER, val); - uart_update_iir(); - } - return; - case 0x10000003: UART_SET2(LCR, val); return; - case 0x10000004: UART_SET2(MCR, val); return; - case 0x10000007: UART_SET2(SCR, val); return; - } - if ((addr & 0x80000000) == 0) { + [branch] + switch (addr) { + // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) + case 0x10000000: + if ((UART_GET2(LCR) >> 7) == 0) { + UART_SET1(THR, val); + UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_THR_EMPTY)); + uart_update_iir(); + } + return; + case 0x10000001: + if (UART_GET2(LCR) >> 7 == 0) { + if ((UART_GET1(IER) & IER_THREINT_BIT) == 0 && + (val & IER_THREINT_BIT) != 0 && + UART_GET1(THR) == 0) + { + cpu.uart.thre_ip = true; + } + UART_SET1(IER, val); + uart_update_iir(); + } + return; + case 0x10000003: UART_SET2(LCR, val); return; + case 0x10000004: UART_SET2(MCR, val); return; + case 0x10000007: UART_SET2(SCR, val); return; + case 0x030007f8: + // ignore control value, always perform RTC_READ + cpu.rtc0 = _RTC0; + cpu.rtc1 = _RTC1; + return; + } return; } + addr = addr & 0x7FFFFFFF; if (addr >= RAM_MAX) { @@ -127,139 +202,50 @@ void mem_set_byte(uint addr, uint val) { // caching can cause stalls, so check for same value before storing uint word_addr = addr & (~0x3); + uint byte_offset = (addr & 0x3)*8; uint cur_val = mem_get_cached_or_tex(word_addr); - val = (cur_val & ~(0xff << ((addr & 0x3)*8))) | (val << ((addr & 0x3)*8)); + val = (cur_val & ~(0xff << byte_offset)) | (val << byte_offset); if (val != cur_val) { // put written value into L1 cache mem_cache_bloom |= word_addr; - [branch] - switch (RAM_L1_TAG(word_addr)) { -case 0: - if (cpu.cache.ram_l1_0_addr == 0xffffffff || cpu.cache.ram_l1_0_addr == word_addr) { cpu.cache.ram_l1_0_addr = word_addr; cpu.cache.ram_l1_0_val = val; return; } -else if (cpu.cache.ram_l1_16_addr == 0xffffffff || cpu.cache.ram_l1_16_addr == word_addr) { cpu.cache.ram_l1_16_addr = word_addr; cpu.cache.ram_l1_16_val = val; return; } -else if (cpu.cache.ram_l1_32_addr == 0xffffffff || cpu.cache.ram_l1_32_addr == word_addr) { cpu.cache.ram_l1_32_addr = word_addr; cpu.cache.ram_l1_32_val = val; return; } -else if (cpu.cache.ram_l1_48_addr == 0xffffffff || cpu.cache.ram_l1_48_addr == word_addr) { cpu.cache.ram_l1_48_addr = word_addr; cpu.cache.ram_l1_48_val = val; return; } -else if (cpu.cache.ram_l1_64_addr == 0xffffffff || cpu.cache.ram_l1_64_addr == word_addr) { cpu.cache.ram_l1_64_addr = word_addr; cpu.cache.ram_l1_64_val = val; return; } -break; -case 1: - if (cpu.cache.ram_l1_1_addr == 0xffffffff || cpu.cache.ram_l1_1_addr == word_addr) { cpu.cache.ram_l1_1_addr = word_addr; cpu.cache.ram_l1_1_val = val; return; } -else if (cpu.cache.ram_l1_17_addr == 0xffffffff || cpu.cache.ram_l1_17_addr == word_addr) { cpu.cache.ram_l1_17_addr = word_addr; cpu.cache.ram_l1_17_val = val; return; } -else if (cpu.cache.ram_l1_33_addr == 0xffffffff || cpu.cache.ram_l1_33_addr == word_addr) { cpu.cache.ram_l1_33_addr = word_addr; cpu.cache.ram_l1_33_val = val; return; } -else if (cpu.cache.ram_l1_49_addr == 0xffffffff || cpu.cache.ram_l1_49_addr == word_addr) { cpu.cache.ram_l1_49_addr = word_addr; cpu.cache.ram_l1_49_val = val; return; } -else if (cpu.cache.ram_l1_65_addr == 0xffffffff || cpu.cache.ram_l1_65_addr == word_addr) { cpu.cache.ram_l1_65_addr = word_addr; cpu.cache.ram_l1_65_val = val; return; } -break; -case 2: - if (cpu.cache.ram_l1_2_addr == 0xffffffff || cpu.cache.ram_l1_2_addr == word_addr) { cpu.cache.ram_l1_2_addr = word_addr; cpu.cache.ram_l1_2_val = val; return; } -else if (cpu.cache.ram_l1_18_addr == 0xffffffff || cpu.cache.ram_l1_18_addr == word_addr) { cpu.cache.ram_l1_18_addr = word_addr; cpu.cache.ram_l1_18_val = val; return; } -else if (cpu.cache.ram_l1_34_addr == 0xffffffff || cpu.cache.ram_l1_34_addr == word_addr) { cpu.cache.ram_l1_34_addr = word_addr; cpu.cache.ram_l1_34_val = val; return; } -else if (cpu.cache.ram_l1_50_addr == 0xffffffff || cpu.cache.ram_l1_50_addr == word_addr) { cpu.cache.ram_l1_50_addr = word_addr; cpu.cache.ram_l1_50_val = val; return; } -else if (cpu.cache.ram_l1_66_addr == 0xffffffff || cpu.cache.ram_l1_66_addr == word_addr) { cpu.cache.ram_l1_66_addr = word_addr; cpu.cache.ram_l1_66_val = val; return; } -break; -case 3: - if (cpu.cache.ram_l1_3_addr == 0xffffffff || cpu.cache.ram_l1_3_addr == word_addr) { cpu.cache.ram_l1_3_addr = word_addr; cpu.cache.ram_l1_3_val = val; return; } -else if (cpu.cache.ram_l1_19_addr == 0xffffffff || cpu.cache.ram_l1_19_addr == word_addr) { cpu.cache.ram_l1_19_addr = word_addr; cpu.cache.ram_l1_19_val = val; return; } -else if (cpu.cache.ram_l1_35_addr == 0xffffffff || cpu.cache.ram_l1_35_addr == word_addr) { cpu.cache.ram_l1_35_addr = word_addr; cpu.cache.ram_l1_35_val = val; return; } -else if (cpu.cache.ram_l1_51_addr == 0xffffffff || cpu.cache.ram_l1_51_addr == word_addr) { cpu.cache.ram_l1_51_addr = word_addr; cpu.cache.ram_l1_51_val = val; return; } -else if (cpu.cache.ram_l1_67_addr == 0xffffffff || cpu.cache.ram_l1_67_addr == word_addr) { cpu.cache.ram_l1_67_addr = word_addr; cpu.cache.ram_l1_67_val = val; return; } -break; -case 4: - if (cpu.cache.ram_l1_4_addr == 0xffffffff || cpu.cache.ram_l1_4_addr == word_addr) { cpu.cache.ram_l1_4_addr = word_addr; cpu.cache.ram_l1_4_val = val; return; } -else if (cpu.cache.ram_l1_20_addr == 0xffffffff || cpu.cache.ram_l1_20_addr == word_addr) { cpu.cache.ram_l1_20_addr = word_addr; cpu.cache.ram_l1_20_val = val; return; } -else if (cpu.cache.ram_l1_36_addr == 0xffffffff || cpu.cache.ram_l1_36_addr == word_addr) { cpu.cache.ram_l1_36_addr = word_addr; cpu.cache.ram_l1_36_val = val; return; } -else if (cpu.cache.ram_l1_52_addr == 0xffffffff || cpu.cache.ram_l1_52_addr == word_addr) { cpu.cache.ram_l1_52_addr = word_addr; cpu.cache.ram_l1_52_val = val; return; } -else if (cpu.cache.ram_l1_68_addr == 0xffffffff || cpu.cache.ram_l1_68_addr == word_addr) { cpu.cache.ram_l1_68_addr = word_addr; cpu.cache.ram_l1_68_val = val; return; } -break; -case 5: - if (cpu.cache.ram_l1_5_addr == 0xffffffff || cpu.cache.ram_l1_5_addr == word_addr) { cpu.cache.ram_l1_5_addr = word_addr; cpu.cache.ram_l1_5_val = val; return; } -else if (cpu.cache.ram_l1_21_addr == 0xffffffff || cpu.cache.ram_l1_21_addr == word_addr) { cpu.cache.ram_l1_21_addr = word_addr; cpu.cache.ram_l1_21_val = val; return; } -else if (cpu.cache.ram_l1_37_addr == 0xffffffff || cpu.cache.ram_l1_37_addr == word_addr) { cpu.cache.ram_l1_37_addr = word_addr; cpu.cache.ram_l1_37_val = val; return; } -else if (cpu.cache.ram_l1_53_addr == 0xffffffff || cpu.cache.ram_l1_53_addr == word_addr) { cpu.cache.ram_l1_53_addr = word_addr; cpu.cache.ram_l1_53_val = val; return; } -else if (cpu.cache.ram_l1_69_addr == 0xffffffff || cpu.cache.ram_l1_69_addr == word_addr) { cpu.cache.ram_l1_69_addr = word_addr; cpu.cache.ram_l1_69_val = val; return; } -break; -case 6: - if (cpu.cache.ram_l1_6_addr == 0xffffffff || cpu.cache.ram_l1_6_addr == word_addr) { cpu.cache.ram_l1_6_addr = word_addr; cpu.cache.ram_l1_6_val = val; return; } -else if (cpu.cache.ram_l1_22_addr == 0xffffffff || cpu.cache.ram_l1_22_addr == word_addr) { cpu.cache.ram_l1_22_addr = word_addr; cpu.cache.ram_l1_22_val = val; return; } -else if (cpu.cache.ram_l1_38_addr == 0xffffffff || cpu.cache.ram_l1_38_addr == word_addr) { cpu.cache.ram_l1_38_addr = word_addr; cpu.cache.ram_l1_38_val = val; return; } -else if (cpu.cache.ram_l1_54_addr == 0xffffffff || cpu.cache.ram_l1_54_addr == word_addr) { cpu.cache.ram_l1_54_addr = word_addr; cpu.cache.ram_l1_54_val = val; return; } -else if (cpu.cache.ram_l1_70_addr == 0xffffffff || cpu.cache.ram_l1_70_addr == word_addr) { cpu.cache.ram_l1_70_addr = word_addr; cpu.cache.ram_l1_70_val = val; return; } -break; -case 7: - if (cpu.cache.ram_l1_7_addr == 0xffffffff || cpu.cache.ram_l1_7_addr == word_addr) { cpu.cache.ram_l1_7_addr = word_addr; cpu.cache.ram_l1_7_val = val; return; } -else if (cpu.cache.ram_l1_23_addr == 0xffffffff || cpu.cache.ram_l1_23_addr == word_addr) { cpu.cache.ram_l1_23_addr = word_addr; cpu.cache.ram_l1_23_val = val; return; } -else if (cpu.cache.ram_l1_39_addr == 0xffffffff || cpu.cache.ram_l1_39_addr == word_addr) { cpu.cache.ram_l1_39_addr = word_addr; cpu.cache.ram_l1_39_val = val; return; } -else if (cpu.cache.ram_l1_55_addr == 0xffffffff || cpu.cache.ram_l1_55_addr == word_addr) { cpu.cache.ram_l1_55_addr = word_addr; cpu.cache.ram_l1_55_val = val; return; } -else if (cpu.cache.ram_l1_71_addr == 0xffffffff || cpu.cache.ram_l1_71_addr == word_addr) { cpu.cache.ram_l1_71_addr = word_addr; cpu.cache.ram_l1_71_val = val; return; } -break; -case 8: - if (cpu.cache.ram_l1_8_addr == 0xffffffff || cpu.cache.ram_l1_8_addr == word_addr) { cpu.cache.ram_l1_8_addr = word_addr; cpu.cache.ram_l1_8_val = val; return; } -else if (cpu.cache.ram_l1_24_addr == 0xffffffff || cpu.cache.ram_l1_24_addr == word_addr) { cpu.cache.ram_l1_24_addr = word_addr; cpu.cache.ram_l1_24_val = val; return; } -else if (cpu.cache.ram_l1_40_addr == 0xffffffff || cpu.cache.ram_l1_40_addr == word_addr) { cpu.cache.ram_l1_40_addr = word_addr; cpu.cache.ram_l1_40_val = val; return; } -else if (cpu.cache.ram_l1_56_addr == 0xffffffff || cpu.cache.ram_l1_56_addr == word_addr) { cpu.cache.ram_l1_56_addr = word_addr; cpu.cache.ram_l1_56_val = val; return; } -else if (cpu.cache.ram_l1_72_addr == 0xffffffff || cpu.cache.ram_l1_72_addr == word_addr) { cpu.cache.ram_l1_72_addr = word_addr; cpu.cache.ram_l1_72_val = val; return; } -break; -case 9: - if (cpu.cache.ram_l1_9_addr == 0xffffffff || cpu.cache.ram_l1_9_addr == word_addr) { cpu.cache.ram_l1_9_addr = word_addr; cpu.cache.ram_l1_9_val = val; return; } -else if (cpu.cache.ram_l1_25_addr == 0xffffffff || cpu.cache.ram_l1_25_addr == word_addr) { cpu.cache.ram_l1_25_addr = word_addr; cpu.cache.ram_l1_25_val = val; return; } -else if (cpu.cache.ram_l1_41_addr == 0xffffffff || cpu.cache.ram_l1_41_addr == word_addr) { cpu.cache.ram_l1_41_addr = word_addr; cpu.cache.ram_l1_41_val = val; return; } -else if (cpu.cache.ram_l1_57_addr == 0xffffffff || cpu.cache.ram_l1_57_addr == word_addr) { cpu.cache.ram_l1_57_addr = word_addr; cpu.cache.ram_l1_57_val = val; return; } -else if (cpu.cache.ram_l1_73_addr == 0xffffffff || cpu.cache.ram_l1_73_addr == word_addr) { cpu.cache.ram_l1_73_addr = word_addr; cpu.cache.ram_l1_73_val = val; return; } -break; -case 10: - if (cpu.cache.ram_l1_10_addr == 0xffffffff || cpu.cache.ram_l1_10_addr == word_addr) { cpu.cache.ram_l1_10_addr = word_addr; cpu.cache.ram_l1_10_val = val; return; } -else if (cpu.cache.ram_l1_26_addr == 0xffffffff || cpu.cache.ram_l1_26_addr == word_addr) { cpu.cache.ram_l1_26_addr = word_addr; cpu.cache.ram_l1_26_val = val; return; } -else if (cpu.cache.ram_l1_42_addr == 0xffffffff || cpu.cache.ram_l1_42_addr == word_addr) { cpu.cache.ram_l1_42_addr = word_addr; cpu.cache.ram_l1_42_val = val; return; } -else if (cpu.cache.ram_l1_58_addr == 0xffffffff || cpu.cache.ram_l1_58_addr == word_addr) { cpu.cache.ram_l1_58_addr = word_addr; cpu.cache.ram_l1_58_val = val; return; } -else if (cpu.cache.ram_l1_74_addr == 0xffffffff || cpu.cache.ram_l1_74_addr == word_addr) { cpu.cache.ram_l1_74_addr = word_addr; cpu.cache.ram_l1_74_val = val; return; } -break; -case 11: - if (cpu.cache.ram_l1_11_addr == 0xffffffff || cpu.cache.ram_l1_11_addr == word_addr) { cpu.cache.ram_l1_11_addr = word_addr; cpu.cache.ram_l1_11_val = val; return; } -else if (cpu.cache.ram_l1_27_addr == 0xffffffff || cpu.cache.ram_l1_27_addr == word_addr) { cpu.cache.ram_l1_27_addr = word_addr; cpu.cache.ram_l1_27_val = val; return; } -else if (cpu.cache.ram_l1_43_addr == 0xffffffff || cpu.cache.ram_l1_43_addr == word_addr) { cpu.cache.ram_l1_43_addr = word_addr; cpu.cache.ram_l1_43_val = val; return; } -else if (cpu.cache.ram_l1_59_addr == 0xffffffff || cpu.cache.ram_l1_59_addr == word_addr) { cpu.cache.ram_l1_59_addr = word_addr; cpu.cache.ram_l1_59_val = val; return; } -else if (cpu.cache.ram_l1_75_addr == 0xffffffff || cpu.cache.ram_l1_75_addr == word_addr) { cpu.cache.ram_l1_75_addr = word_addr; cpu.cache.ram_l1_75_val = val; return; } -break; -case 12: - if (cpu.cache.ram_l1_12_addr == 0xffffffff || cpu.cache.ram_l1_12_addr == word_addr) { cpu.cache.ram_l1_12_addr = word_addr; cpu.cache.ram_l1_12_val = val; return; } -else if (cpu.cache.ram_l1_28_addr == 0xffffffff || cpu.cache.ram_l1_28_addr == word_addr) { cpu.cache.ram_l1_28_addr = word_addr; cpu.cache.ram_l1_28_val = val; return; } -else if (cpu.cache.ram_l1_44_addr == 0xffffffff || cpu.cache.ram_l1_44_addr == word_addr) { cpu.cache.ram_l1_44_addr = word_addr; cpu.cache.ram_l1_44_val = val; return; } -else if (cpu.cache.ram_l1_60_addr == 0xffffffff || cpu.cache.ram_l1_60_addr == word_addr) { cpu.cache.ram_l1_60_addr = word_addr; cpu.cache.ram_l1_60_val = val; return; } -else if (cpu.cache.ram_l1_76_addr == 0xffffffff || cpu.cache.ram_l1_76_addr == word_addr) { cpu.cache.ram_l1_76_addr = word_addr; cpu.cache.ram_l1_76_val = val; return; } -break; -case 13: - if (cpu.cache.ram_l1_13_addr == 0xffffffff || cpu.cache.ram_l1_13_addr == word_addr) { cpu.cache.ram_l1_13_addr = word_addr; cpu.cache.ram_l1_13_val = val; return; } -else if (cpu.cache.ram_l1_29_addr == 0xffffffff || cpu.cache.ram_l1_29_addr == word_addr) { cpu.cache.ram_l1_29_addr = word_addr; cpu.cache.ram_l1_29_val = val; return; } -else if (cpu.cache.ram_l1_45_addr == 0xffffffff || cpu.cache.ram_l1_45_addr == word_addr) { cpu.cache.ram_l1_45_addr = word_addr; cpu.cache.ram_l1_45_val = val; return; } -else if (cpu.cache.ram_l1_61_addr == 0xffffffff || cpu.cache.ram_l1_61_addr == word_addr) { cpu.cache.ram_l1_61_addr = word_addr; cpu.cache.ram_l1_61_val = val; return; } -else if (cpu.cache.ram_l1_77_addr == 0xffffffff || cpu.cache.ram_l1_77_addr == word_addr) { cpu.cache.ram_l1_77_addr = word_addr; cpu.cache.ram_l1_77_val = val; return; } -break; -case 14: - if (cpu.cache.ram_l1_14_addr == 0xffffffff || cpu.cache.ram_l1_14_addr == word_addr) { cpu.cache.ram_l1_14_addr = word_addr; cpu.cache.ram_l1_14_val = val; return; } -else if (cpu.cache.ram_l1_30_addr == 0xffffffff || cpu.cache.ram_l1_30_addr == word_addr) { cpu.cache.ram_l1_30_addr = word_addr; cpu.cache.ram_l1_30_val = val; return; } -else if (cpu.cache.ram_l1_46_addr == 0xffffffff || cpu.cache.ram_l1_46_addr == word_addr) { cpu.cache.ram_l1_46_addr = word_addr; cpu.cache.ram_l1_46_val = val; return; } -else if (cpu.cache.ram_l1_62_addr == 0xffffffff || cpu.cache.ram_l1_62_addr == word_addr) { cpu.cache.ram_l1_62_addr = word_addr; cpu.cache.ram_l1_62_val = val; return; } -else if (cpu.cache.ram_l1_78_addr == 0xffffffff || cpu.cache.ram_l1_78_addr == word_addr) { cpu.cache.ram_l1_78_addr = word_addr; cpu.cache.ram_l1_78_val = val; return; } -break; -case 15: - if (cpu.cache.ram_l1_15_addr == 0xffffffff || cpu.cache.ram_l1_15_addr == word_addr) { cpu.cache.ram_l1_15_addr = word_addr; cpu.cache.ram_l1_15_val = val; return; } -else if (cpu.cache.ram_l1_31_addr == 0xffffffff || cpu.cache.ram_l1_31_addr == word_addr) { cpu.cache.ram_l1_31_addr = word_addr; cpu.cache.ram_l1_31_val = val; return; } -else if (cpu.cache.ram_l1_47_addr == 0xffffffff || cpu.cache.ram_l1_47_addr == word_addr) { cpu.cache.ram_l1_47_addr = word_addr; cpu.cache.ram_l1_47_val = val; return; } -else if (cpu.cache.ram_l1_63_addr == 0xffffffff || cpu.cache.ram_l1_63_addr == word_addr) { cpu.cache.ram_l1_63_addr = word_addr; cpu.cache.ram_l1_63_val = val; return; } -else if (cpu.cache.ram_l1_79_addr == 0xffffffff || cpu.cache.ram_l1_79_addr == word_addr) { cpu.cache.ram_l1_79_addr = word_addr; cpu.cache.ram_l1_79_val = val; return; } -break; - + if (word_addr == 0) { + // very special case + cpu.cache.ram_l1_last_addr = word_addr; + cpu.cache.ram_l1_last_val = val; + cpu.stall = STALL_MEM_CACHE_L1; + return; } - // L1 overflow, stall to avoid fillup until L2 flush (TODO) or next frame - cpu.cache.ram_l1_last_addr = word_addr; - cpu.cache.ram_l1_last_val = val; - cpu.stall = STALL_MEM_CACHE_L1; + uint arr_idx = RAM_L1_ARRAY_IDX(word_addr); + uint4 cur = l1_cache[arr_idx]; + if (cur.x == 0 || cur.x == word_addr) { + l1_cache[arr_idx].x = word_addr; + l1_cache[arr_idx].y = val; + } else if (cur.z == 0 || cur.z == word_addr) { + l1_cache[arr_idx].z = word_addr; + l1_cache[arr_idx].w = val; + } else { + arr_idx += 512; + uint4 cur = l1_cache[arr_idx]; + if (cur.x == 0 || cur.x == word_addr) { + l1_cache[arr_idx].x = word_addr; + l1_cache[arr_idx].y = val; + } else if (cur.z == 0 || cur.z == word_addr) { + l1_cache[arr_idx].z = word_addr; + l1_cache[arr_idx].w = val; + } else { + cpu.cache.ram_l1_last_addr = word_addr; + cpu.cache.ram_l1_last_val = val; + cpu.stall = STALL_MEM_CACHE_L1; + } + } } } void mem_set(uint addr, uint val, uint word_size) { - if (word_size == WORD_SIZE_FULL) { + if (word_size == WORD_SIZE_FULL && addr & 0x02000000) { [branch] switch (addr & (~0x3)) { // CLINT/timer - only supports full word write as optimization diff --git a/_Nix/rvc/src/mem.h.pp b/_Nix/rvc/src/mem.h.pp index cb3b235e..7ca76d10 100755 --- a/_Nix/rvc/src/mem.h.pp +++ b/_Nix/rvc/src/mem.h.pp @@ -13,68 +13,134 @@ uint mem_get_instruction(uint addr) { uint idx = (addr >> 2) & 0x3; addr = addr >> 4; - uint4 raw = STATE_TEX[RAM_ADDR(addr)]; + uint4 raw = STATE_TEX(RAM_ADDR(addr)); return idx_uint4(raw, idx); } +// Basic bloom filter to slightly optimize memory caching +static uint mem_cache_bloom = 0; + +// addr must be aligned to word boundary (4 byte) +uint mem_get_cached_or_tex(uint addr) { + // query L1 cache + if ((addr & mem_cache_bloom) == addr) { + // array-style L1 + for (uint slice = 0; slice < 2; slice++) { + uint arr_idx = RAM_L1_ARRAY_IDX(addr) + slice * ; + uint4 cur = l1_cache[arr_idx]; + if (cur.x == addr) return cur.y; + else if (cur.z == addr) return cur.w; + } + + if (cpu.cache.ram_l1_last_addr == addr) { + // this may seem unnecessary, but is required for multi-byte write instructions + // which fill the 'last' buffer initially and then need it to be read back correctly + // to intertwine the new value into the cached word + return cpu.cache.ram_l1_last_val; + } + } + + // not in cache, query RAM texture + uint idx = (addr >> 2) & 0x3; + addr >>= 4; + uint4 raw = STATE_TEX(RAM_ADDR(addr)); + return idx_uint4(raw, idx); +} + + // little endian, zero extended, addr must be aligned to word boundary uint mem_get_word(uint addr) { - addr &= ~(0x3); - if (addr >= 0x1020 && addr <= 0x1fff) { - uint dtb_addr = addr - 0x1020; - uint dtb_idx = (dtb_addr >> 2) & 0x3; - dtb_addr = dtb_addr >> 4; - float4 full; - [branch] - switch (dtb_idx) { - case 0: - full = _Data_DTB_R[uint2(dtb_addr, 0)]; - break; - case 1: - full = _Data_DTB_G[uint2(dtb_addr, 0)]; - break; - case 2: - full = _Data_DTB_B[uint2(dtb_addr, 0)]; - break; - case 3: - full = _Data_DTB_A[uint2(dtb_addr, 0)]; - break; - } - return unpack_raw_float4(full); - } - - [branch] - switch (addr) { - // CLINT - case 0x02000000: return cpu.clint.msip ? 1 : 0; - - case 0x02004000: return cpu.clint.mtimecmp_lo; - case 0x02004004: return cpu.clint.mtimecmp_hi; - case 0x0200bff8: return cpu.clint.mtime_lo; - case 0x0200bffc: return cpu.clint.mtime_hi; - - // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) - case 0x10000000: - uint ret = 0; - if ((UART_GET2(LCR) >> 7) == 0) { - uint rbr = UART_GET1(RBR); - UART_SET1(RBR, 0); - UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_DATA_AVAILABLE)); - uart_update_iir(); - ret = rbr; - } - return ret | ((UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0) << 8) | (UART_GET1(IIR) << 16) | (UART_GET2(LCR) << 24); - /* case 0x10000001: return UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0; */ - /* case 0x10000002: return UART_GET1(IIR); */ - /* case 0x10000003: return UART_GET2(LCR); */ - case 0x10000004: return UART_GET2(MCR) | (UART_GET2(LSR) << 8) | (UART_GET2(SCR) << 24); - /* case 0x10000005: return UART_GET2(LSR); */ - /* case 0x10000007: return UART_GET2(SCR); */ - } + //addr &= ~(0x3); if ((addr & 0x80000000) == 0) { + [branch] + if (addr & 0x40000000) { + // MTD/ROM + uint mtd_addr = addr - 0x40000000; + uint mtd_idx = (mtd_addr >> 2) & 0x3; + mtd_addr = mtd_addr >> 4; + uint2 mtd_lin = uint2(mtd_addr % m_dim.x, mtd_addr / m_dim.x); + mtd_lin.y = m_dim.y - mtd_lin.y - 1; + //[branch] if (mtd_lin.y >= m_dim.y) return 0; + float4 full; + [branch] + switch (mtd_idx) { + case 0: + full = _Data_MTD_R[mtd_lin]; + break; + case 1: + full = _Data_MTD_G[mtd_lin]; + break; + case 2: + full = _Data_MTD_B[mtd_lin]; + break; + case 3: + full = _Data_MTD_A[mtd_lin]; + break; + } + return unpack_raw_float4(full); + } + + [branch] + if (addr >= 0x1020 && addr <= 0x1fff) { + uint dtb_addr = addr - 0x1020; + uint dtb_idx = (dtb_addr >> 2) & 0x3; + dtb_addr = dtb_addr >> 4; + float4 full; + [branch] + switch (dtb_idx) { + case 0: + full = _Data_DTB_R[uint2(dtb_addr, 0)]; + break; + case 1: + full = _Data_DTB_G[uint2(dtb_addr, 0)]; + break; + case 2: + full = _Data_DTB_B[uint2(dtb_addr, 0)]; + break; + case 3: + full = _Data_DTB_A[uint2(dtb_addr, 0)]; + break; + } + return unpack_raw_float4(full); + } + + [forcecase] + switch (addr) { + // CLINT + case 0x02000000: return cpu.clint.msip ? 1 : 0; + + case 0x02004000: return cpu.clint.mtimecmp_lo; + case 0x02004004: return cpu.clint.mtimecmp_hi; + case 0x0200bff8: return cpu.clint.mtime_lo; + case 0x0200bffc: return cpu.clint.mtime_hi; + + // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) + case 0x10000000: + uint ret = 0; + if ((UART_GET2(LCR) >> 7) == 0) { + uint rbr = UART_GET1(RBR); + UART_SET1(RBR, 0); + UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_DATA_AVAILABLE)); + uart_update_iir(); + ret = rbr; + } + return ret | ((UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0) << 8) | (UART_GET1(IIR) << 16) | (UART_GET2(LCR) << 24); + /* case 0x10000001: return UART_GET2(LCR) >> 7 == 0 ? UART_GET1(IER) : 0; */ + /* case 0x10000002: return UART_GET1(IIR); */ + /* case 0x10000003: return UART_GET2(LCR); */ + case 0x10000004: return UART_GET2(MCR) | (UART_GET2(LSR) << 8) | (UART_GET2(SCR) << 24); + /* case 0x10000005: return UART_GET2(LSR); */ + /* case 0x10000007: return UART_GET2(SCR); */ + + case 0x030007f8: return cpu.rtc0; + case 0x030007fc: return cpu.rtc1; + } + return 0; + //return addr; } + addr = addr & 0x7FFFFFFF; if (addr >= RAM_MAX) { @@ -85,36 +151,41 @@ uint mem_get_word(uint addr) { } void mem_set_byte(uint addr, uint val) { - [branch] - switch (addr) { - // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) - case 0x10000000: - if ((UART_GET2(LCR) >> 7) == 0) { - UART_SET1(THR, val); - UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_THR_EMPTY)); - uart_update_iir(); - } - return; - case 0x10000001: - if (UART_GET2(LCR) >> 7 == 0) { - if ((UART_GET1(IER) & IER_THREINT_BIT) == 0 && - (val & IER_THREINT_BIT) != 0 && - UART_GET1(THR) == 0) - { - cpu.uart.thre_ip = true; - } - UART_SET1(IER, val); - uart_update_iir(); - } - return; - case 0x10000003: UART_SET2(LCR, val); return; - case 0x10000004: UART_SET2(MCR, val); return; - case 0x10000007: UART_SET2(SCR, val); return; - } - if ((addr & 0x80000000) == 0) { + [branch] + switch (addr) { + // UART (first has rbr_thr_ier_iir, second has lcr_mcr_lsr_scr) + case 0x10000000: + if ((UART_GET2(LCR) >> 7) == 0) { + UART_SET1(THR, val); + UART_SET2(LSR, (UART_GET2(LSR) & ~LSR_THR_EMPTY)); + uart_update_iir(); + } + return; + case 0x10000001: + if (UART_GET2(LCR) >> 7 == 0) { + if ((UART_GET1(IER) & IER_THREINT_BIT) == 0 && + (val & IER_THREINT_BIT) != 0 && + UART_GET1(THR) == 0) + { + cpu.uart.thre_ip = true; + } + UART_SET1(IER, val); + uart_update_iir(); + } + return; + case 0x10000003: UART_SET2(LCR, val); return; + case 0x10000004: UART_SET2(MCR, val); return; + case 0x10000007: UART_SET2(SCR, val); return; + case 0x030007f8: + // ignore control value, always perform RTC_READ + cpu.rtc0 = _RTC0; + cpu.rtc1 = _RTC1; + return; + } return; } + addr = addr & 0x7FFFFFFF; if (addr >= RAM_MAX) { @@ -123,37 +194,50 @@ void mem_set_byte(uint addr, uint val) { // caching can cause stalls, so check for same value before storing uint word_addr = addr & (~0x3); + uint byte_offset = (addr & 0x3)*8; uint cur_val = mem_get_cached_or_tex(word_addr); - val = (cur_val & ~(0xff << ((addr & 0x3)*8))) | (val << ((addr & 0x3)*8)); + val = (cur_val & ~(0xff << byte_offset)) | (val << byte_offset); if (val != cur_val) { // put written value into L1 cache mem_cache_bloom |= word_addr; - [branch] - switch (RAM_L1_TAG(word_addr)) { - + if (word_addr == 0) { + // very special case + cpu.cache.ram_l1_last_addr = word_addr; + cpu.cache.ram_l1_last_val = val; + cpu.stall = STALL_MEM_CACHE_L1; + return; } - // L1 overflow, stall to avoid fillup until L2 flush (TODO) or next frame - cpu.cache.ram_l1_last_addr = word_addr; - cpu.cache.ram_l1_last_val = val; - cpu.stall = STALL_MEM_CACHE_L1; + uint arr_idx = RAM_L1_ARRAY_IDX(word_addr); + uint4 cur = l1_cache[arr_idx]; + if (cur.x == 0 || cur.x == word_addr) { + l1_cache[arr_idx].x = word_addr; + l1_cache[arr_idx].y = val; + } else if (cur.z == 0 || cur.z == word_addr) { + l1_cache[arr_idx].z = word_addr; + l1_cache[arr_idx].w = val; + } else { + arr_idx += ; + uint4 cur = l1_cache[arr_idx]; + if (cur.x == 0 || cur.x == word_addr) { + l1_cache[arr_idx].x = word_addr; + l1_cache[arr_idx].y = val; + } else if (cur.z == 0 || cur.z == word_addr) { + l1_cache[arr_idx].z = word_addr; + l1_cache[arr_idx].w = val; + } else { + cpu.cache.ram_l1_last_addr = word_addr; + cpu.cache.ram_l1_last_val = val; + cpu.stall = STALL_MEM_CACHE_L1; + } + } } } void mem_set(uint addr, uint val, uint word_size) { - if (word_size == WORD_SIZE_FULL) { + if (word_size == WORD_SIZE_FULL && addr & 0x02000000) { [branch] switch (addr & (~0x3)) { // CLINT/timer - only supports full word write as optimization diff --git a/_Nix/rvc/src/trap.h b/_Nix/rvc/src/trap.h index 3371cd4f..3ca81317 100755 --- a/_Nix/rvc/src/trap.h +++ b/_Nix/rvc/src/trap.h @@ -145,31 +145,32 @@ void handle_irq_and_trap(inout ins_ret ret, uint mip_override) { bool trap = ret.trap.en; uint mip_reset = MIP_ALL; uint mie = read_csr_raw(CSR_MIE); + bool irq = false; if (!trap) { + irq = true; uint mirq = mip_override & mie; -#define HANDLE(mip, ttype) case mip: mip_reset = mip; ret.trap.en = true; ret.trap.type = ttype; break; - switch (mirq & MIP_ALL) { + if (false) {} +#define HANDLE(mip, ttype) else if (mirq & mip) { mip_reset = mip; ret.trap.en = true; ret.trap.type = ttype; } HANDLE(MIP_MEIP, trap_MachineExternalInterrupt) HANDLE(MIP_MSIP, trap_MachineSoftwareInterrupt) HANDLE(MIP_MTIP, trap_MachineTimerInterrupt) HANDLE(MIP_SEIP, trap_SupervisorExternalInterrupt) HANDLE(MIP_SSIP, trap_SupervisorSoftwareInterrupt) HANDLE(MIP_STIP, trap_SupervisorTimerInterrupt) - } #undef HANDLE } - bool irq = mip_reset != MIP_ALL; - if (trap || irq) { + if (ret.trap.en) { uint new_mip = mip_override; bool handled = handle_trap(ret, irq, mie); if (handled) { cpu.trap_count++; } - if (handled && irq) { + if (handled && irq && (mip_reset & 0x0A0) == 0) { // reset MIP value since IRQ was handled - // this implies that mip_reset is not MIP_ALL + // (MTIP/MSIP will be reset by write to mtimecmp instead) + // 'irq' implies that mip_reset is not MIP_ALL new_mip = mip_override & (~mip_reset); } write_csr_raw(CSR_MIP, new_mip); diff --git a/_Nix/rvc/src/types.h b/_Nix/rvc/src/types.h index 48bb041e..a53576dd 100755 --- a/_Nix/rvc/src/types.h +++ b/_Nix/rvc/src/types.h @@ -1,16 +1,22 @@ #ifndef TYPES_H #define TYPES_H +#define glsl_mod(x,y) (((x)-(y)*floor((x)/(y)))) -/* must match set/line count above, shift by two to ignore byte offset */ -#define RAM_L1_TAG(a) ((a >> 2) & 0xf) + +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) #define STALL_EXIT_CALL 1 #define STALL_CSR_CACHE 2 #define STALL_MEM_CACHE_L1 3 -#define STALL_MEM_CACHE_L2 4 +#define STALL_RESERVED 4 #define STALL_ILLEGAL_ENTRY_POINT 5 #define STALL_UART 6 #define STALL_FENCE 7 @@ -36,86 +42,6 @@ typedef struct { uint csr_cache_13_addr; uint csr_cache_13_val; uint csr_cache_14_addr; uint csr_cache_14_val; uint csr_cache_15_addr; uint csr_cache_15_val; - uint ram_l1_0_addr; uint ram_l1_0_val; - uint ram_l1_16_addr; uint ram_l1_16_val; - uint ram_l1_32_addr; uint ram_l1_32_val; - uint ram_l1_48_addr; uint ram_l1_48_val; - uint ram_l1_64_addr; uint ram_l1_64_val; - uint ram_l1_1_addr; uint ram_l1_1_val; - uint ram_l1_17_addr; uint ram_l1_17_val; - uint ram_l1_33_addr; uint ram_l1_33_val; - uint ram_l1_49_addr; uint ram_l1_49_val; - uint ram_l1_65_addr; uint ram_l1_65_val; - uint ram_l1_2_addr; uint ram_l1_2_val; - uint ram_l1_18_addr; uint ram_l1_18_val; - uint ram_l1_34_addr; uint ram_l1_34_val; - uint ram_l1_50_addr; uint ram_l1_50_val; - uint ram_l1_66_addr; uint ram_l1_66_val; - uint ram_l1_3_addr; uint ram_l1_3_val; - uint ram_l1_19_addr; uint ram_l1_19_val; - uint ram_l1_35_addr; uint ram_l1_35_val; - uint ram_l1_51_addr; uint ram_l1_51_val; - uint ram_l1_67_addr; uint ram_l1_67_val; - uint ram_l1_4_addr; uint ram_l1_4_val; - uint ram_l1_20_addr; uint ram_l1_20_val; - uint ram_l1_36_addr; uint ram_l1_36_val; - uint ram_l1_52_addr; uint ram_l1_52_val; - uint ram_l1_68_addr; uint ram_l1_68_val; - uint ram_l1_5_addr; uint ram_l1_5_val; - uint ram_l1_21_addr; uint ram_l1_21_val; - uint ram_l1_37_addr; uint ram_l1_37_val; - uint ram_l1_53_addr; uint ram_l1_53_val; - uint ram_l1_69_addr; uint ram_l1_69_val; - uint ram_l1_6_addr; uint ram_l1_6_val; - uint ram_l1_22_addr; uint ram_l1_22_val; - uint ram_l1_38_addr; uint ram_l1_38_val; - uint ram_l1_54_addr; uint ram_l1_54_val; - uint ram_l1_70_addr; uint ram_l1_70_val; - uint ram_l1_7_addr; uint ram_l1_7_val; - uint ram_l1_23_addr; uint ram_l1_23_val; - uint ram_l1_39_addr; uint ram_l1_39_val; - uint ram_l1_55_addr; uint ram_l1_55_val; - uint ram_l1_71_addr; uint ram_l1_71_val; - uint ram_l1_8_addr; uint ram_l1_8_val; - uint ram_l1_24_addr; uint ram_l1_24_val; - uint ram_l1_40_addr; uint ram_l1_40_val; - uint ram_l1_56_addr; uint ram_l1_56_val; - uint ram_l1_72_addr; uint ram_l1_72_val; - uint ram_l1_9_addr; uint ram_l1_9_val; - uint ram_l1_25_addr; uint ram_l1_25_val; - uint ram_l1_41_addr; uint ram_l1_41_val; - uint ram_l1_57_addr; uint ram_l1_57_val; - uint ram_l1_73_addr; uint ram_l1_73_val; - uint ram_l1_10_addr; uint ram_l1_10_val; - uint ram_l1_26_addr; uint ram_l1_26_val; - uint ram_l1_42_addr; uint ram_l1_42_val; - uint ram_l1_58_addr; uint ram_l1_58_val; - uint ram_l1_74_addr; uint ram_l1_74_val; - uint ram_l1_11_addr; uint ram_l1_11_val; - uint ram_l1_27_addr; uint ram_l1_27_val; - uint ram_l1_43_addr; uint ram_l1_43_val; - uint ram_l1_59_addr; uint ram_l1_59_val; - uint ram_l1_75_addr; uint ram_l1_75_val; - uint ram_l1_12_addr; uint ram_l1_12_val; - uint ram_l1_28_addr; uint ram_l1_28_val; - uint ram_l1_44_addr; uint ram_l1_44_val; - uint ram_l1_60_addr; uint ram_l1_60_val; - uint ram_l1_76_addr; uint ram_l1_76_val; - uint ram_l1_13_addr; uint ram_l1_13_val; - uint ram_l1_29_addr; uint ram_l1_29_val; - uint ram_l1_45_addr; uint ram_l1_45_val; - uint ram_l1_61_addr; uint ram_l1_61_val; - uint ram_l1_77_addr; uint ram_l1_77_val; - uint ram_l1_14_addr; uint ram_l1_14_val; - uint ram_l1_30_addr; uint ram_l1_30_val; - uint ram_l1_46_addr; uint ram_l1_46_val; - uint ram_l1_62_addr; uint ram_l1_62_val; - uint ram_l1_78_addr; uint ram_l1_78_val; - uint ram_l1_15_addr; uint ram_l1_15_val; - uint ram_l1_31_addr; uint ram_l1_31_val; - uint ram_l1_47_addr; uint ram_l1_47_val; - uint ram_l1_63_addr; uint ram_l1_63_val; - uint ram_l1_79_addr; uint ram_l1_79_val; uint ram_l1_last_addr;uint ram_l1_last_val; } cache_t; @@ -139,6 +65,11 @@ typedef struct { uint mtime_hi; } clint_state; +typedef struct { + uint mode; + uint ppn; +} mmu_state; + typedef struct { uint ptr; uint buf0; @@ -208,48 +139,11 @@ typedef struct { } uart_buffer; -typedef struct { - uint mode; - uint ppn; -} mmu_state; - typedef struct { uint stall; uint clock; uint commits; - uint xreg0; - uint xreg1; - uint xreg2; - uint xreg3; - uint xreg4; - uint xreg5; - uint xreg6; - uint xreg7; - uint xreg8; - uint xreg9; - uint xreg10; - uint xreg11; - uint xreg12; - uint xreg13; - uint xreg14; - uint xreg15; - uint xreg16; - uint xreg17; - uint xreg18; - uint xreg19; - uint xreg20; - uint xreg21; - uint xreg22; - uint xreg23; - uint xreg24; - uint xreg25; - uint xreg26; - uint xreg27; - uint xreg28; - uint xreg29; - uint xreg30; - uint xreg31; - + uint xreg[32]; uint pc; csr_state csr; clint_state clint; @@ -269,6 +163,11 @@ typedef struct { uint stall_count; uint trap_count; + uint rtc0; + uint rtc1; + + float start_time_ref; + uint debug_do_tick; uint debug_last_ins; uint debug_last_stall; @@ -276,13 +175,13 @@ typedef struct { uint debug_arb_0; - - - - - - - + /* */ + /* */ + /* */ + /* */ + /* */ + /* */ + /* */ cache_t cache; } cpu_t; @@ -309,6 +208,10 @@ typedef struct { // GLOBAL STATICS static cpu_t cpu; +#ifdef PASS_TICK +static uint4 l1_cache[1024]; +#endif + // TYPE HELPERS ins_ret ins_ret_noop() { ins_ret ret = (ins_ret)0; @@ -322,33 +225,21 @@ uint sign_extend(uint x, uint b) { } uint xreg(uint i) { - #define C(x) case x: return cpu.xreg##x; - if (i < 16) { - [flatten] - switch (i) { - C(0) C(1) C(2) C(3) - C(4) C(5) C(6) C(7) - C(8) C(9) C(10) C(11) - C(12) C(13) C(14) C(15) - } - } else { - [flatten] - switch (i) { - C(16) C(17) C(18) C(19) - C(20) C(21) C(22) C(23) - C(24) C(25) C(26) C(27) - C(28) C(29) C(30) C(31) - } - } - return 0xdeadc0de; - #undef C + return cpu.xreg[i]; } // ENCODE/DECODE LOGIC (state serialization into self texture) +// csr_cache_start = 44 (addr=164) +// l1_cache_start = 1068 (addr=164) +// l1_cache_end = 2092 (addr=164) -void decode(uint udonUartPtr) { +#define STATE_WIDTH 64 +#define STATE_HEIGHT 64 + +#ifdef PASS_TICK +void decode() { cpu = (cpu_t)0; cpu.cache.csr_cache_0_addr = uint(4294967295); @@ -383,688 +274,342 @@ void decode(uint udonUartPtr) { cpu.cache.csr_cache_14_val = uint(3735930846); cpu.cache.csr_cache_15_addr = uint(4294967295); cpu.cache.csr_cache_15_val = uint(3735930846); - cpu.cache.ram_l1_0_addr = uint(4294967295); - cpu.cache.ram_l1_0_val = uint(3735931102); - cpu.cache.ram_l1_16_addr = uint(4294967295); - cpu.cache.ram_l1_16_val = uint(3735931102); - cpu.cache.ram_l1_32_addr = uint(4294967295); - cpu.cache.ram_l1_32_val = uint(3735931102); - cpu.cache.ram_l1_48_addr = uint(4294967295); - cpu.cache.ram_l1_48_val = uint(3735931102); - cpu.cache.ram_l1_64_addr = uint(4294967295); - cpu.cache.ram_l1_64_val = uint(3735931102); - cpu.cache.ram_l1_1_addr = uint(4294967295); - cpu.cache.ram_l1_1_val = uint(3735931102); - cpu.cache.ram_l1_17_addr = uint(4294967295); - cpu.cache.ram_l1_17_val = uint(3735931102); - cpu.cache.ram_l1_33_addr = uint(4294967295); - cpu.cache.ram_l1_33_val = uint(3735931102); - cpu.cache.ram_l1_49_addr = uint(4294967295); - cpu.cache.ram_l1_49_val = uint(3735931102); - cpu.cache.ram_l1_65_addr = uint(4294967295); - cpu.cache.ram_l1_65_val = uint(3735931102); - cpu.cache.ram_l1_2_addr = uint(4294967295); - cpu.cache.ram_l1_2_val = uint(3735931102); - cpu.cache.ram_l1_18_addr = uint(4294967295); - cpu.cache.ram_l1_18_val = uint(3735931102); - cpu.cache.ram_l1_34_addr = uint(4294967295); - cpu.cache.ram_l1_34_val = uint(3735931102); - cpu.cache.ram_l1_50_addr = uint(4294967295); - cpu.cache.ram_l1_50_val = uint(3735931102); - cpu.cache.ram_l1_66_addr = uint(4294967295); - cpu.cache.ram_l1_66_val = uint(3735931102); - cpu.cache.ram_l1_3_addr = uint(4294967295); - cpu.cache.ram_l1_3_val = uint(3735931102); - cpu.cache.ram_l1_19_addr = uint(4294967295); - cpu.cache.ram_l1_19_val = uint(3735931102); - cpu.cache.ram_l1_35_addr = uint(4294967295); - cpu.cache.ram_l1_35_val = uint(3735931102); - cpu.cache.ram_l1_51_addr = uint(4294967295); - cpu.cache.ram_l1_51_val = uint(3735931102); - cpu.cache.ram_l1_67_addr = uint(4294967295); - cpu.cache.ram_l1_67_val = uint(3735931102); - cpu.cache.ram_l1_4_addr = uint(4294967295); - cpu.cache.ram_l1_4_val = uint(3735931102); - cpu.cache.ram_l1_20_addr = uint(4294967295); - cpu.cache.ram_l1_20_val = uint(3735931102); - cpu.cache.ram_l1_36_addr = uint(4294967295); - cpu.cache.ram_l1_36_val = uint(3735931102); - cpu.cache.ram_l1_52_addr = uint(4294967295); - cpu.cache.ram_l1_52_val = uint(3735931102); - cpu.cache.ram_l1_68_addr = uint(4294967295); - cpu.cache.ram_l1_68_val = uint(3735931102); - cpu.cache.ram_l1_5_addr = uint(4294967295); - cpu.cache.ram_l1_5_val = uint(3735931102); - cpu.cache.ram_l1_21_addr = uint(4294967295); - cpu.cache.ram_l1_21_val = uint(3735931102); - cpu.cache.ram_l1_37_addr = uint(4294967295); - cpu.cache.ram_l1_37_val = uint(3735931102); - cpu.cache.ram_l1_53_addr = uint(4294967295); - cpu.cache.ram_l1_53_val = uint(3735931102); - cpu.cache.ram_l1_69_addr = uint(4294967295); - cpu.cache.ram_l1_69_val = uint(3735931102); - cpu.cache.ram_l1_6_addr = uint(4294967295); - cpu.cache.ram_l1_6_val = uint(3735931102); - cpu.cache.ram_l1_22_addr = uint(4294967295); - cpu.cache.ram_l1_22_val = uint(3735931102); - cpu.cache.ram_l1_38_addr = uint(4294967295); - cpu.cache.ram_l1_38_val = uint(3735931102); - cpu.cache.ram_l1_54_addr = uint(4294967295); - cpu.cache.ram_l1_54_val = uint(3735931102); - cpu.cache.ram_l1_70_addr = uint(4294967295); - cpu.cache.ram_l1_70_val = uint(3735931102); - cpu.cache.ram_l1_7_addr = uint(4294967295); - cpu.cache.ram_l1_7_val = uint(3735931102); - cpu.cache.ram_l1_23_addr = uint(4294967295); - cpu.cache.ram_l1_23_val = uint(3735931102); - cpu.cache.ram_l1_39_addr = uint(4294967295); - cpu.cache.ram_l1_39_val = uint(3735931102); - cpu.cache.ram_l1_55_addr = uint(4294967295); - cpu.cache.ram_l1_55_val = uint(3735931102); - cpu.cache.ram_l1_71_addr = uint(4294967295); - cpu.cache.ram_l1_71_val = uint(3735931102); - cpu.cache.ram_l1_8_addr = uint(4294967295); - cpu.cache.ram_l1_8_val = uint(3735931102); - cpu.cache.ram_l1_24_addr = uint(4294967295); - cpu.cache.ram_l1_24_val = uint(3735931102); - cpu.cache.ram_l1_40_addr = uint(4294967295); - cpu.cache.ram_l1_40_val = uint(3735931102); - cpu.cache.ram_l1_56_addr = uint(4294967295); - cpu.cache.ram_l1_56_val = uint(3735931102); - cpu.cache.ram_l1_72_addr = uint(4294967295); - cpu.cache.ram_l1_72_val = uint(3735931102); - cpu.cache.ram_l1_9_addr = uint(4294967295); - cpu.cache.ram_l1_9_val = uint(3735931102); - cpu.cache.ram_l1_25_addr = uint(4294967295); - cpu.cache.ram_l1_25_val = uint(3735931102); - cpu.cache.ram_l1_41_addr = uint(4294967295); - cpu.cache.ram_l1_41_val = uint(3735931102); - cpu.cache.ram_l1_57_addr = uint(4294967295); - cpu.cache.ram_l1_57_val = uint(3735931102); - cpu.cache.ram_l1_73_addr = uint(4294967295); - cpu.cache.ram_l1_73_val = uint(3735931102); - cpu.cache.ram_l1_10_addr = uint(4294967295); - cpu.cache.ram_l1_10_val = uint(3735931102); - cpu.cache.ram_l1_26_addr = uint(4294967295); - cpu.cache.ram_l1_26_val = uint(3735931102); - cpu.cache.ram_l1_42_addr = uint(4294967295); - cpu.cache.ram_l1_42_val = uint(3735931102); - cpu.cache.ram_l1_58_addr = uint(4294967295); - cpu.cache.ram_l1_58_val = uint(3735931102); - cpu.cache.ram_l1_74_addr = uint(4294967295); - cpu.cache.ram_l1_74_val = uint(3735931102); - cpu.cache.ram_l1_11_addr = uint(4294967295); - cpu.cache.ram_l1_11_val = uint(3735931102); - cpu.cache.ram_l1_27_addr = uint(4294967295); - cpu.cache.ram_l1_27_val = uint(3735931102); - cpu.cache.ram_l1_43_addr = uint(4294967295); - cpu.cache.ram_l1_43_val = uint(3735931102); - cpu.cache.ram_l1_59_addr = uint(4294967295); - cpu.cache.ram_l1_59_val = uint(3735931102); - cpu.cache.ram_l1_75_addr = uint(4294967295); - cpu.cache.ram_l1_75_val = uint(3735931102); - cpu.cache.ram_l1_12_addr = uint(4294967295); - cpu.cache.ram_l1_12_val = uint(3735931102); - cpu.cache.ram_l1_28_addr = uint(4294967295); - cpu.cache.ram_l1_28_val = uint(3735931102); - cpu.cache.ram_l1_44_addr = uint(4294967295); - cpu.cache.ram_l1_44_val = uint(3735931102); - cpu.cache.ram_l1_60_addr = uint(4294967295); - cpu.cache.ram_l1_60_val = uint(3735931102); - cpu.cache.ram_l1_76_addr = uint(4294967295); - cpu.cache.ram_l1_76_val = uint(3735931102); - cpu.cache.ram_l1_13_addr = uint(4294967295); - cpu.cache.ram_l1_13_val = uint(3735931102); - cpu.cache.ram_l1_29_addr = uint(4294967295); - cpu.cache.ram_l1_29_val = uint(3735931102); - cpu.cache.ram_l1_45_addr = uint(4294967295); - cpu.cache.ram_l1_45_val = uint(3735931102); - cpu.cache.ram_l1_61_addr = uint(4294967295); - cpu.cache.ram_l1_61_val = uint(3735931102); - cpu.cache.ram_l1_77_addr = uint(4294967295); - cpu.cache.ram_l1_77_val = uint(3735931102); - cpu.cache.ram_l1_14_addr = uint(4294967295); - cpu.cache.ram_l1_14_val = uint(3735931102); - cpu.cache.ram_l1_30_addr = uint(4294967295); - cpu.cache.ram_l1_30_val = uint(3735931102); - cpu.cache.ram_l1_46_addr = uint(4294967295); - cpu.cache.ram_l1_46_val = uint(3735931102); - cpu.cache.ram_l1_62_addr = uint(4294967295); - cpu.cache.ram_l1_62_val = uint(3735931102); - cpu.cache.ram_l1_78_addr = uint(4294967295); - cpu.cache.ram_l1_78_val = uint(3735931102); - cpu.cache.ram_l1_15_addr = uint(4294967295); - cpu.cache.ram_l1_15_val = uint(3735931102); - cpu.cache.ram_l1_31_addr = uint(4294967295); - cpu.cache.ram_l1_31_val = uint(3735931102); - cpu.cache.ram_l1_47_addr = uint(4294967295); - cpu.cache.ram_l1_47_val = uint(3735931102); - cpu.cache.ram_l1_63_addr = uint(4294967295); - cpu.cache.ram_l1_63_val = uint(3735931102); - cpu.cache.ram_l1_79_addr = uint(4294967295); - cpu.cache.ram_l1_79_val = uint(3735931102); cpu.cache.ram_l1_last_addr = uint(4294967295); cpu.cache.ram_l1_last_val = uint(3735931358); - cpu.csr.privilege = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 2)); - cpu.uart.rbr_thr_ier_iir = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 3)); - cpu.uart.lcr_mcr_lsr_scr = uint(idx_uint4(STATE_TEX[uint2(49, 0)], 0)); - cpu.uart.thre_ip = bool(idx_uint4(STATE_TEX[uint2(49, 0)], 1)); - cpu.uart.interrupting = bool(idx_uint4(STATE_TEX[uint2(49, 0)], 2)); - cpu.uart.input_tag = uint(idx_uint4(STATE_TEX[uint2(49, 0)], 3)); - cpu.clint.msip = bool(idx_uint4(STATE_TEX[uint2(50, 0)], 0)); - cpu.clint.mtimecmp_lo = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 1)); - cpu.clint.mtimecmp_hi = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 2)); - cpu.clint.mtime_lo = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 3)); - cpu.clint.mtime_hi = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 0)); - cpu.uart_buffer.ptr = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 1)); - cpu.uart_buffer.buf0 = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 2)); - cpu.uart_buffer.buf1 = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 3)); - cpu.uart_buffer.buf2 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 0)); - cpu.uart_buffer.buf3 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 1)); - cpu.uart_buffer.buf4 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 2)); - cpu.uart_buffer.buf5 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 3)); - cpu.uart_buffer.buf6 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 0)); - cpu.uart_buffer.buf7 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 1)); - cpu.uart_buffer.buf8 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 2)); - cpu.uart_buffer.buf9 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 3)); - cpu.uart_buffer.buf10 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 0)); - cpu.uart_buffer.buf11 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 1)); - cpu.uart_buffer.buf12 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 2)); - cpu.uart_buffer.buf13 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 3)); - cpu.uart_buffer.buf14 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 0)); - cpu.uart_buffer.buf15 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 1)); - cpu.uart_buffer.buf16 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 2)); - cpu.uart_buffer.buf17 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 3)); - cpu.uart_buffer.buf18 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 0)); - cpu.uart_buffer.buf19 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 1)); - cpu.uart_buffer.buf20 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 2)); - cpu.uart_buffer.buf21 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 3)); - cpu.uart_buffer.buf22 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 0)); - cpu.uart_buffer.buf23 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 1)); - cpu.uart_buffer.buf24 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 2)); - cpu.uart_buffer.buf25 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 3)); - cpu.uart_buffer.buf26 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 0)); - cpu.uart_buffer.buf27 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 1)); - cpu.uart_buffer.buf28 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 2)); - cpu.uart_buffer.buf29 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 3)); - cpu.uart_buffer.buf30 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 0)); - cpu.uart_buffer.buf31 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 1)); - cpu.uart_buffer.buf32 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 2)); - cpu.uart_buffer.buf33 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 3)); - cpu.uart_buffer.buf34 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 0)); - cpu.uart_buffer.buf35 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 1)); - cpu.uart_buffer.buf36 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 2)); - cpu.uart_buffer.buf37 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 3)); - cpu.uart_buffer.buf38 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 0)); - cpu.uart_buffer.buf39 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 1)); - cpu.uart_buffer.buf40 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 2)); - cpu.uart_buffer.buf41 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 3)); - cpu.uart_buffer.buf42 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 0)); - cpu.uart_buffer.buf43 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 1)); - cpu.uart_buffer.buf44 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 2)); - cpu.uart_buffer.buf45 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 3)); - cpu.uart_buffer.buf46 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 0)); - cpu.uart_buffer.buf47 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 1)); - cpu.uart_buffer.buf48 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 2)); - cpu.uart_buffer.buf49 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 3)); - cpu.uart_buffer.buf50 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 0)); - cpu.uart_buffer.buf51 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 1)); - cpu.uart_buffer.buf52 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 2)); - cpu.uart_buffer.buf53 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 3)); - cpu.uart_buffer.buf54 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 0)); - cpu.uart_buffer.buf55 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 1)); - cpu.uart_buffer.buf56 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 2)); - cpu.uart_buffer.buf57 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 3)); - cpu.uart_buffer.buf58 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 0)); - cpu.uart_buffer.buf59 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 1)); - cpu.uart_buffer.buf60 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 2)); - cpu.uart_buffer.buf61 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 3)); - cpu.uart_buffer.buf62 = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 0)); - cpu.uart_buffer.buf63 = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 1)); - cpu.mmu.mode = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 2)); - cpu.mmu.ppn = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 3)); - cpu.stall = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 0)); - cpu.clock = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 1)); - cpu.commits = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 2)); - cpu.xreg0 = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 3)); - cpu.xreg1 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 0)); - cpu.xreg2 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 1)); - cpu.xreg3 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 2)); - cpu.xreg4 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 3)); - cpu.xreg5 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 0)); - cpu.xreg6 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 1)); - cpu.xreg7 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 2)); - cpu.xreg8 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 3)); - cpu.xreg9 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 0)); - cpu.xreg10 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 1)); - cpu.xreg11 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 2)); - cpu.xreg12 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 3)); - cpu.xreg13 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 0)); - cpu.xreg14 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 1)); - cpu.xreg15 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 2)); - cpu.xreg16 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 3)); - cpu.xreg17 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 0)); - cpu.xreg18 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 1)); - cpu.xreg19 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 2)); - cpu.xreg20 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 3)); - cpu.xreg21 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 0)); - cpu.xreg22 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 1)); - cpu.xreg23 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 2)); - cpu.xreg24 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 3)); - cpu.xreg25 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 0)); - cpu.xreg26 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 1)); - cpu.xreg27 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 2)); - cpu.xreg28 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 3)); - cpu.xreg29 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 0)); - cpu.xreg30 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 1)); - cpu.xreg31 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 2)); - cpu.pc = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 3)); - cpu.reservation_en = bool(idx_uint4(STATE_TEX[uint2(77, 0)], 0)); - cpu.reservation_addr = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 1)); - cpu.memop_src_v = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 2)); - cpu.memop_dst_v = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 3)); - cpu.memop_src_p = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 0)); - cpu.memop_dst_p = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 1)); - cpu.memop_n = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 2)); - cpu.stall_count = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 3)); - cpu.trap_count = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 0)); - cpu.debug_do_tick = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 1)); - cpu.debug_last_ins = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 2)); - cpu.debug_last_stall = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 3)); - cpu.debug_arb_0 = uint(idx_uint4(STATE_TEX[uint2(80, 0)], 0)); - - - if (cpu.stall == STALL_UART && udonUartPtr == cpu.uart_buffer.ptr) { - cpu.stall = 0; - } -} - -#ifdef PASS_COMMIT -void decode_for_commit() { - cpu = (cpu_t)0; - - cpu.cache.csr_cache_0_addr = uint(idx_uint4(STATE_TEX[uint2(0, 0)], 0)); - cpu.cache.csr_cache_0_val = uint(idx_uint4(STATE_TEX[uint2(0, 0)], 1)); - cpu.cache.csr_cache_1_addr = uint(idx_uint4(STATE_TEX[uint2(0, 0)], 2)); - cpu.cache.csr_cache_1_val = uint(idx_uint4(STATE_TEX[uint2(0, 0)], 3)); - cpu.cache.csr_cache_2_addr = uint(idx_uint4(STATE_TEX[uint2(1, 0)], 0)); - cpu.cache.csr_cache_2_val = uint(idx_uint4(STATE_TEX[uint2(1, 0)], 1)); - cpu.cache.csr_cache_3_addr = uint(idx_uint4(STATE_TEX[uint2(1, 0)], 2)); - cpu.cache.csr_cache_3_val = uint(idx_uint4(STATE_TEX[uint2(1, 0)], 3)); - cpu.cache.csr_cache_4_addr = uint(idx_uint4(STATE_TEX[uint2(2, 0)], 0)); - cpu.cache.csr_cache_4_val = uint(idx_uint4(STATE_TEX[uint2(2, 0)], 1)); - cpu.cache.csr_cache_5_addr = uint(idx_uint4(STATE_TEX[uint2(2, 0)], 2)); - cpu.cache.csr_cache_5_val = uint(idx_uint4(STATE_TEX[uint2(2, 0)], 3)); - cpu.cache.csr_cache_6_addr = uint(idx_uint4(STATE_TEX[uint2(3, 0)], 0)); - cpu.cache.csr_cache_6_val = uint(idx_uint4(STATE_TEX[uint2(3, 0)], 1)); - cpu.cache.csr_cache_7_addr = uint(idx_uint4(STATE_TEX[uint2(3, 0)], 2)); - cpu.cache.csr_cache_7_val = uint(idx_uint4(STATE_TEX[uint2(3, 0)], 3)); - cpu.cache.csr_cache_8_addr = uint(idx_uint4(STATE_TEX[uint2(4, 0)], 0)); - cpu.cache.csr_cache_8_val = uint(idx_uint4(STATE_TEX[uint2(4, 0)], 1)); - cpu.cache.csr_cache_9_addr = uint(idx_uint4(STATE_TEX[uint2(4, 0)], 2)); - cpu.cache.csr_cache_9_val = uint(idx_uint4(STATE_TEX[uint2(4, 0)], 3)); - cpu.cache.csr_cache_10_addr = uint(idx_uint4(STATE_TEX[uint2(5, 0)], 0)); - cpu.cache.csr_cache_10_val = uint(idx_uint4(STATE_TEX[uint2(5, 0)], 1)); - cpu.cache.csr_cache_11_addr = uint(idx_uint4(STATE_TEX[uint2(5, 0)], 2)); - cpu.cache.csr_cache_11_val = uint(idx_uint4(STATE_TEX[uint2(5, 0)], 3)); - cpu.cache.csr_cache_12_addr = uint(idx_uint4(STATE_TEX[uint2(6, 0)], 0)); - cpu.cache.csr_cache_12_val = uint(idx_uint4(STATE_TEX[uint2(6, 0)], 1)); - cpu.cache.csr_cache_13_addr = uint(idx_uint4(STATE_TEX[uint2(6, 0)], 2)); - cpu.cache.csr_cache_13_val = uint(idx_uint4(STATE_TEX[uint2(6, 0)], 3)); - cpu.cache.csr_cache_14_addr = uint(idx_uint4(STATE_TEX[uint2(7, 0)], 0)); - cpu.cache.csr_cache_14_val = uint(idx_uint4(STATE_TEX[uint2(7, 0)], 1)); - cpu.cache.csr_cache_15_addr = uint(idx_uint4(STATE_TEX[uint2(7, 0)], 2)); - cpu.cache.csr_cache_15_val = uint(idx_uint4(STATE_TEX[uint2(7, 0)], 3)); - cpu.cache.ram_l1_0_addr = uint(idx_uint4(STATE_TEX[uint2(8, 0)], 0)); - cpu.cache.ram_l1_0_val = uint(idx_uint4(STATE_TEX[uint2(8, 0)], 1)); - cpu.cache.ram_l1_16_addr = uint(idx_uint4(STATE_TEX[uint2(8, 0)], 2)); - cpu.cache.ram_l1_16_val = uint(idx_uint4(STATE_TEX[uint2(8, 0)], 3)); - cpu.cache.ram_l1_32_addr = uint(idx_uint4(STATE_TEX[uint2(9, 0)], 0)); - cpu.cache.ram_l1_32_val = uint(idx_uint4(STATE_TEX[uint2(9, 0)], 1)); - cpu.cache.ram_l1_48_addr = uint(idx_uint4(STATE_TEX[uint2(9, 0)], 2)); - cpu.cache.ram_l1_48_val = uint(idx_uint4(STATE_TEX[uint2(9, 0)], 3)); - cpu.cache.ram_l1_64_addr = uint(idx_uint4(STATE_TEX[uint2(10, 0)], 0)); - cpu.cache.ram_l1_64_val = uint(idx_uint4(STATE_TEX[uint2(10, 0)], 1)); - cpu.cache.ram_l1_1_addr = uint(idx_uint4(STATE_TEX[uint2(10, 0)], 2)); - cpu.cache.ram_l1_1_val = uint(idx_uint4(STATE_TEX[uint2(10, 0)], 3)); - cpu.cache.ram_l1_17_addr = uint(idx_uint4(STATE_TEX[uint2(11, 0)], 0)); - cpu.cache.ram_l1_17_val = uint(idx_uint4(STATE_TEX[uint2(11, 0)], 1)); - cpu.cache.ram_l1_33_addr = uint(idx_uint4(STATE_TEX[uint2(11, 0)], 2)); - cpu.cache.ram_l1_33_val = uint(idx_uint4(STATE_TEX[uint2(11, 0)], 3)); - cpu.cache.ram_l1_49_addr = uint(idx_uint4(STATE_TEX[uint2(12, 0)], 0)); - cpu.cache.ram_l1_49_val = uint(idx_uint4(STATE_TEX[uint2(12, 0)], 1)); - cpu.cache.ram_l1_65_addr = uint(idx_uint4(STATE_TEX[uint2(12, 0)], 2)); - cpu.cache.ram_l1_65_val = uint(idx_uint4(STATE_TEX[uint2(12, 0)], 3)); - cpu.cache.ram_l1_2_addr = uint(idx_uint4(STATE_TEX[uint2(13, 0)], 0)); - cpu.cache.ram_l1_2_val = uint(idx_uint4(STATE_TEX[uint2(13, 0)], 1)); - cpu.cache.ram_l1_18_addr = uint(idx_uint4(STATE_TEX[uint2(13, 0)], 2)); - cpu.cache.ram_l1_18_val = uint(idx_uint4(STATE_TEX[uint2(13, 0)], 3)); - cpu.cache.ram_l1_34_addr = uint(idx_uint4(STATE_TEX[uint2(14, 0)], 0)); - cpu.cache.ram_l1_34_val = uint(idx_uint4(STATE_TEX[uint2(14, 0)], 1)); - cpu.cache.ram_l1_50_addr = uint(idx_uint4(STATE_TEX[uint2(14, 0)], 2)); - cpu.cache.ram_l1_50_val = uint(idx_uint4(STATE_TEX[uint2(14, 0)], 3)); - cpu.cache.ram_l1_66_addr = uint(idx_uint4(STATE_TEX[uint2(15, 0)], 0)); - cpu.cache.ram_l1_66_val = uint(idx_uint4(STATE_TEX[uint2(15, 0)], 1)); - cpu.cache.ram_l1_3_addr = uint(idx_uint4(STATE_TEX[uint2(15, 0)], 2)); - cpu.cache.ram_l1_3_val = uint(idx_uint4(STATE_TEX[uint2(15, 0)], 3)); - cpu.cache.ram_l1_19_addr = uint(idx_uint4(STATE_TEX[uint2(16, 0)], 0)); - cpu.cache.ram_l1_19_val = uint(idx_uint4(STATE_TEX[uint2(16, 0)], 1)); - cpu.cache.ram_l1_35_addr = uint(idx_uint4(STATE_TEX[uint2(16, 0)], 2)); - cpu.cache.ram_l1_35_val = uint(idx_uint4(STATE_TEX[uint2(16, 0)], 3)); - cpu.cache.ram_l1_51_addr = uint(idx_uint4(STATE_TEX[uint2(17, 0)], 0)); - cpu.cache.ram_l1_51_val = uint(idx_uint4(STATE_TEX[uint2(17, 0)], 1)); - cpu.cache.ram_l1_67_addr = uint(idx_uint4(STATE_TEX[uint2(17, 0)], 2)); - cpu.cache.ram_l1_67_val = uint(idx_uint4(STATE_TEX[uint2(17, 0)], 3)); - cpu.cache.ram_l1_4_addr = uint(idx_uint4(STATE_TEX[uint2(18, 0)], 0)); - cpu.cache.ram_l1_4_val = uint(idx_uint4(STATE_TEX[uint2(18, 0)], 1)); - cpu.cache.ram_l1_20_addr = uint(idx_uint4(STATE_TEX[uint2(18, 0)], 2)); - cpu.cache.ram_l1_20_val = uint(idx_uint4(STATE_TEX[uint2(18, 0)], 3)); - cpu.cache.ram_l1_36_addr = uint(idx_uint4(STATE_TEX[uint2(19, 0)], 0)); - cpu.cache.ram_l1_36_val = uint(idx_uint4(STATE_TEX[uint2(19, 0)], 1)); - cpu.cache.ram_l1_52_addr = uint(idx_uint4(STATE_TEX[uint2(19, 0)], 2)); - cpu.cache.ram_l1_52_val = uint(idx_uint4(STATE_TEX[uint2(19, 0)], 3)); - cpu.cache.ram_l1_68_addr = uint(idx_uint4(STATE_TEX[uint2(20, 0)], 0)); - cpu.cache.ram_l1_68_val = uint(idx_uint4(STATE_TEX[uint2(20, 0)], 1)); - cpu.cache.ram_l1_5_addr = uint(idx_uint4(STATE_TEX[uint2(20, 0)], 2)); - cpu.cache.ram_l1_5_val = uint(idx_uint4(STATE_TEX[uint2(20, 0)], 3)); - cpu.cache.ram_l1_21_addr = uint(idx_uint4(STATE_TEX[uint2(21, 0)], 0)); - cpu.cache.ram_l1_21_val = uint(idx_uint4(STATE_TEX[uint2(21, 0)], 1)); - cpu.cache.ram_l1_37_addr = uint(idx_uint4(STATE_TEX[uint2(21, 0)], 2)); - cpu.cache.ram_l1_37_val = uint(idx_uint4(STATE_TEX[uint2(21, 0)], 3)); - cpu.cache.ram_l1_53_addr = uint(idx_uint4(STATE_TEX[uint2(22, 0)], 0)); - cpu.cache.ram_l1_53_val = uint(idx_uint4(STATE_TEX[uint2(22, 0)], 1)); - cpu.cache.ram_l1_69_addr = uint(idx_uint4(STATE_TEX[uint2(22, 0)], 2)); - cpu.cache.ram_l1_69_val = uint(idx_uint4(STATE_TEX[uint2(22, 0)], 3)); - cpu.cache.ram_l1_6_addr = uint(idx_uint4(STATE_TEX[uint2(23, 0)], 0)); - cpu.cache.ram_l1_6_val = uint(idx_uint4(STATE_TEX[uint2(23, 0)], 1)); - cpu.cache.ram_l1_22_addr = uint(idx_uint4(STATE_TEX[uint2(23, 0)], 2)); - cpu.cache.ram_l1_22_val = uint(idx_uint4(STATE_TEX[uint2(23, 0)], 3)); - cpu.cache.ram_l1_38_addr = uint(idx_uint4(STATE_TEX[uint2(24, 0)], 0)); - cpu.cache.ram_l1_38_val = uint(idx_uint4(STATE_TEX[uint2(24, 0)], 1)); - cpu.cache.ram_l1_54_addr = uint(idx_uint4(STATE_TEX[uint2(24, 0)], 2)); - cpu.cache.ram_l1_54_val = uint(idx_uint4(STATE_TEX[uint2(24, 0)], 3)); - cpu.cache.ram_l1_70_addr = uint(idx_uint4(STATE_TEX[uint2(25, 0)], 0)); - cpu.cache.ram_l1_70_val = uint(idx_uint4(STATE_TEX[uint2(25, 0)], 1)); - cpu.cache.ram_l1_7_addr = uint(idx_uint4(STATE_TEX[uint2(25, 0)], 2)); - cpu.cache.ram_l1_7_val = uint(idx_uint4(STATE_TEX[uint2(25, 0)], 3)); - cpu.cache.ram_l1_23_addr = uint(idx_uint4(STATE_TEX[uint2(26, 0)], 0)); - cpu.cache.ram_l1_23_val = uint(idx_uint4(STATE_TEX[uint2(26, 0)], 1)); - cpu.cache.ram_l1_39_addr = uint(idx_uint4(STATE_TEX[uint2(26, 0)], 2)); - cpu.cache.ram_l1_39_val = uint(idx_uint4(STATE_TEX[uint2(26, 0)], 3)); - cpu.cache.ram_l1_55_addr = uint(idx_uint4(STATE_TEX[uint2(27, 0)], 0)); - cpu.cache.ram_l1_55_val = uint(idx_uint4(STATE_TEX[uint2(27, 0)], 1)); - cpu.cache.ram_l1_71_addr = uint(idx_uint4(STATE_TEX[uint2(27, 0)], 2)); - cpu.cache.ram_l1_71_val = uint(idx_uint4(STATE_TEX[uint2(27, 0)], 3)); - cpu.cache.ram_l1_8_addr = uint(idx_uint4(STATE_TEX[uint2(28, 0)], 0)); - cpu.cache.ram_l1_8_val = uint(idx_uint4(STATE_TEX[uint2(28, 0)], 1)); - cpu.cache.ram_l1_24_addr = uint(idx_uint4(STATE_TEX[uint2(28, 0)], 2)); - cpu.cache.ram_l1_24_val = uint(idx_uint4(STATE_TEX[uint2(28, 0)], 3)); - cpu.cache.ram_l1_40_addr = uint(idx_uint4(STATE_TEX[uint2(29, 0)], 0)); - cpu.cache.ram_l1_40_val = uint(idx_uint4(STATE_TEX[uint2(29, 0)], 1)); - cpu.cache.ram_l1_56_addr = uint(idx_uint4(STATE_TEX[uint2(29, 0)], 2)); - cpu.cache.ram_l1_56_val = uint(idx_uint4(STATE_TEX[uint2(29, 0)], 3)); - cpu.cache.ram_l1_72_addr = uint(idx_uint4(STATE_TEX[uint2(30, 0)], 0)); - cpu.cache.ram_l1_72_val = uint(idx_uint4(STATE_TEX[uint2(30, 0)], 1)); - cpu.cache.ram_l1_9_addr = uint(idx_uint4(STATE_TEX[uint2(30, 0)], 2)); - cpu.cache.ram_l1_9_val = uint(idx_uint4(STATE_TEX[uint2(30, 0)], 3)); - cpu.cache.ram_l1_25_addr = uint(idx_uint4(STATE_TEX[uint2(31, 0)], 0)); - cpu.cache.ram_l1_25_val = uint(idx_uint4(STATE_TEX[uint2(31, 0)], 1)); - cpu.cache.ram_l1_41_addr = uint(idx_uint4(STATE_TEX[uint2(31, 0)], 2)); - cpu.cache.ram_l1_41_val = uint(idx_uint4(STATE_TEX[uint2(31, 0)], 3)); - cpu.cache.ram_l1_57_addr = uint(idx_uint4(STATE_TEX[uint2(32, 0)], 0)); - cpu.cache.ram_l1_57_val = uint(idx_uint4(STATE_TEX[uint2(32, 0)], 1)); - cpu.cache.ram_l1_73_addr = uint(idx_uint4(STATE_TEX[uint2(32, 0)], 2)); - cpu.cache.ram_l1_73_val = uint(idx_uint4(STATE_TEX[uint2(32, 0)], 3)); - cpu.cache.ram_l1_10_addr = uint(idx_uint4(STATE_TEX[uint2(33, 0)], 0)); - cpu.cache.ram_l1_10_val = uint(idx_uint4(STATE_TEX[uint2(33, 0)], 1)); - cpu.cache.ram_l1_26_addr = uint(idx_uint4(STATE_TEX[uint2(33, 0)], 2)); - cpu.cache.ram_l1_26_val = uint(idx_uint4(STATE_TEX[uint2(33, 0)], 3)); - cpu.cache.ram_l1_42_addr = uint(idx_uint4(STATE_TEX[uint2(34, 0)], 0)); - cpu.cache.ram_l1_42_val = uint(idx_uint4(STATE_TEX[uint2(34, 0)], 1)); - cpu.cache.ram_l1_58_addr = uint(idx_uint4(STATE_TEX[uint2(34, 0)], 2)); - cpu.cache.ram_l1_58_val = uint(idx_uint4(STATE_TEX[uint2(34, 0)], 3)); - cpu.cache.ram_l1_74_addr = uint(idx_uint4(STATE_TEX[uint2(35, 0)], 0)); - cpu.cache.ram_l1_74_val = uint(idx_uint4(STATE_TEX[uint2(35, 0)], 1)); - cpu.cache.ram_l1_11_addr = uint(idx_uint4(STATE_TEX[uint2(35, 0)], 2)); - cpu.cache.ram_l1_11_val = uint(idx_uint4(STATE_TEX[uint2(35, 0)], 3)); - cpu.cache.ram_l1_27_addr = uint(idx_uint4(STATE_TEX[uint2(36, 0)], 0)); - cpu.cache.ram_l1_27_val = uint(idx_uint4(STATE_TEX[uint2(36, 0)], 1)); - cpu.cache.ram_l1_43_addr = uint(idx_uint4(STATE_TEX[uint2(36, 0)], 2)); - cpu.cache.ram_l1_43_val = uint(idx_uint4(STATE_TEX[uint2(36, 0)], 3)); - cpu.cache.ram_l1_59_addr = uint(idx_uint4(STATE_TEX[uint2(37, 0)], 0)); - cpu.cache.ram_l1_59_val = uint(idx_uint4(STATE_TEX[uint2(37, 0)], 1)); - cpu.cache.ram_l1_75_addr = uint(idx_uint4(STATE_TEX[uint2(37, 0)], 2)); - cpu.cache.ram_l1_75_val = uint(idx_uint4(STATE_TEX[uint2(37, 0)], 3)); - cpu.cache.ram_l1_12_addr = uint(idx_uint4(STATE_TEX[uint2(38, 0)], 0)); - cpu.cache.ram_l1_12_val = uint(idx_uint4(STATE_TEX[uint2(38, 0)], 1)); - cpu.cache.ram_l1_28_addr = uint(idx_uint4(STATE_TEX[uint2(38, 0)], 2)); - cpu.cache.ram_l1_28_val = uint(idx_uint4(STATE_TEX[uint2(38, 0)], 3)); - cpu.cache.ram_l1_44_addr = uint(idx_uint4(STATE_TEX[uint2(39, 0)], 0)); - cpu.cache.ram_l1_44_val = uint(idx_uint4(STATE_TEX[uint2(39, 0)], 1)); - cpu.cache.ram_l1_60_addr = uint(idx_uint4(STATE_TEX[uint2(39, 0)], 2)); - cpu.cache.ram_l1_60_val = uint(idx_uint4(STATE_TEX[uint2(39, 0)], 3)); - cpu.cache.ram_l1_76_addr = uint(idx_uint4(STATE_TEX[uint2(40, 0)], 0)); - cpu.cache.ram_l1_76_val = uint(idx_uint4(STATE_TEX[uint2(40, 0)], 1)); - cpu.cache.ram_l1_13_addr = uint(idx_uint4(STATE_TEX[uint2(40, 0)], 2)); - cpu.cache.ram_l1_13_val = uint(idx_uint4(STATE_TEX[uint2(40, 0)], 3)); - cpu.cache.ram_l1_29_addr = uint(idx_uint4(STATE_TEX[uint2(41, 0)], 0)); - cpu.cache.ram_l1_29_val = uint(idx_uint4(STATE_TEX[uint2(41, 0)], 1)); - cpu.cache.ram_l1_45_addr = uint(idx_uint4(STATE_TEX[uint2(41, 0)], 2)); - cpu.cache.ram_l1_45_val = uint(idx_uint4(STATE_TEX[uint2(41, 0)], 3)); - cpu.cache.ram_l1_61_addr = uint(idx_uint4(STATE_TEX[uint2(42, 0)], 0)); - cpu.cache.ram_l1_61_val = uint(idx_uint4(STATE_TEX[uint2(42, 0)], 1)); - cpu.cache.ram_l1_77_addr = uint(idx_uint4(STATE_TEX[uint2(42, 0)], 2)); - cpu.cache.ram_l1_77_val = uint(idx_uint4(STATE_TEX[uint2(42, 0)], 3)); - cpu.cache.ram_l1_14_addr = uint(idx_uint4(STATE_TEX[uint2(43, 0)], 0)); - cpu.cache.ram_l1_14_val = uint(idx_uint4(STATE_TEX[uint2(43, 0)], 1)); - cpu.cache.ram_l1_30_addr = uint(idx_uint4(STATE_TEX[uint2(43, 0)], 2)); - cpu.cache.ram_l1_30_val = uint(idx_uint4(STATE_TEX[uint2(43, 0)], 3)); - cpu.cache.ram_l1_46_addr = uint(idx_uint4(STATE_TEX[uint2(44, 0)], 0)); - cpu.cache.ram_l1_46_val = uint(idx_uint4(STATE_TEX[uint2(44, 0)], 1)); - cpu.cache.ram_l1_62_addr = uint(idx_uint4(STATE_TEX[uint2(44, 0)], 2)); - cpu.cache.ram_l1_62_val = uint(idx_uint4(STATE_TEX[uint2(44, 0)], 3)); - cpu.cache.ram_l1_78_addr = uint(idx_uint4(STATE_TEX[uint2(45, 0)], 0)); - cpu.cache.ram_l1_78_val = uint(idx_uint4(STATE_TEX[uint2(45, 0)], 1)); - cpu.cache.ram_l1_15_addr = uint(idx_uint4(STATE_TEX[uint2(45, 0)], 2)); - cpu.cache.ram_l1_15_val = uint(idx_uint4(STATE_TEX[uint2(45, 0)], 3)); - cpu.cache.ram_l1_31_addr = uint(idx_uint4(STATE_TEX[uint2(46, 0)], 0)); - cpu.cache.ram_l1_31_val = uint(idx_uint4(STATE_TEX[uint2(46, 0)], 1)); - cpu.cache.ram_l1_47_addr = uint(idx_uint4(STATE_TEX[uint2(46, 0)], 2)); - cpu.cache.ram_l1_47_val = uint(idx_uint4(STATE_TEX[uint2(46, 0)], 3)); - cpu.cache.ram_l1_63_addr = uint(idx_uint4(STATE_TEX[uint2(47, 0)], 0)); - cpu.cache.ram_l1_63_val = uint(idx_uint4(STATE_TEX[uint2(47, 0)], 1)); - cpu.cache.ram_l1_79_addr = uint(idx_uint4(STATE_TEX[uint2(47, 0)], 2)); - cpu.cache.ram_l1_79_val = uint(idx_uint4(STATE_TEX[uint2(47, 0)], 3)); - cpu.cache.ram_l1_last_addr = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 0)); - cpu.cache.ram_l1_last_val = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 1)); - cpu.csr.privilege = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 2)); - cpu.uart.rbr_thr_ier_iir = uint(idx_uint4(STATE_TEX[uint2(48, 0)], 3)); - cpu.uart.lcr_mcr_lsr_scr = uint(idx_uint4(STATE_TEX[uint2(49, 0)], 0)); - cpu.uart.thre_ip = bool(idx_uint4(STATE_TEX[uint2(49, 0)], 1)); - cpu.uart.interrupting = bool(idx_uint4(STATE_TEX[uint2(49, 0)], 2)); - cpu.uart.input_tag = uint(idx_uint4(STATE_TEX[uint2(49, 0)], 3)); - cpu.clint.msip = bool(idx_uint4(STATE_TEX[uint2(50, 0)], 0)); - cpu.clint.mtimecmp_lo = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 1)); - cpu.clint.mtimecmp_hi = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 2)); - cpu.clint.mtime_lo = uint(idx_uint4(STATE_TEX[uint2(50, 0)], 3)); - cpu.clint.mtime_hi = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 0)); - cpu.uart_buffer.ptr = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 1)); - cpu.uart_buffer.buf0 = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 2)); - cpu.uart_buffer.buf1 = uint(idx_uint4(STATE_TEX[uint2(51, 0)], 3)); - cpu.uart_buffer.buf2 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 0)); - cpu.uart_buffer.buf3 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 1)); - cpu.uart_buffer.buf4 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 2)); - cpu.uart_buffer.buf5 = uint(idx_uint4(STATE_TEX[uint2(52, 0)], 3)); - cpu.uart_buffer.buf6 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 0)); - cpu.uart_buffer.buf7 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 1)); - cpu.uart_buffer.buf8 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 2)); - cpu.uart_buffer.buf9 = uint(idx_uint4(STATE_TEX[uint2(53, 0)], 3)); - cpu.uart_buffer.buf10 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 0)); - cpu.uart_buffer.buf11 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 1)); - cpu.uart_buffer.buf12 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 2)); - cpu.uart_buffer.buf13 = uint(idx_uint4(STATE_TEX[uint2(54, 0)], 3)); - cpu.uart_buffer.buf14 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 0)); - cpu.uart_buffer.buf15 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 1)); - cpu.uart_buffer.buf16 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 2)); - cpu.uart_buffer.buf17 = uint(idx_uint4(STATE_TEX[uint2(55, 0)], 3)); - cpu.uart_buffer.buf18 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 0)); - cpu.uart_buffer.buf19 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 1)); - cpu.uart_buffer.buf20 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 2)); - cpu.uart_buffer.buf21 = uint(idx_uint4(STATE_TEX[uint2(56, 0)], 3)); - cpu.uart_buffer.buf22 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 0)); - cpu.uart_buffer.buf23 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 1)); - cpu.uart_buffer.buf24 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 2)); - cpu.uart_buffer.buf25 = uint(idx_uint4(STATE_TEX[uint2(57, 0)], 3)); - cpu.uart_buffer.buf26 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 0)); - cpu.uart_buffer.buf27 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 1)); - cpu.uart_buffer.buf28 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 2)); - cpu.uart_buffer.buf29 = uint(idx_uint4(STATE_TEX[uint2(58, 0)], 3)); - cpu.uart_buffer.buf30 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 0)); - cpu.uart_buffer.buf31 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 1)); - cpu.uart_buffer.buf32 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 2)); - cpu.uart_buffer.buf33 = uint(idx_uint4(STATE_TEX[uint2(59, 0)], 3)); - cpu.uart_buffer.buf34 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 0)); - cpu.uart_buffer.buf35 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 1)); - cpu.uart_buffer.buf36 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 2)); - cpu.uart_buffer.buf37 = uint(idx_uint4(STATE_TEX[uint2(60, 0)], 3)); - cpu.uart_buffer.buf38 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 0)); - cpu.uart_buffer.buf39 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 1)); - cpu.uart_buffer.buf40 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 2)); - cpu.uart_buffer.buf41 = uint(idx_uint4(STATE_TEX[uint2(61, 0)], 3)); - cpu.uart_buffer.buf42 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 0)); - cpu.uart_buffer.buf43 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 1)); - cpu.uart_buffer.buf44 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 2)); - cpu.uart_buffer.buf45 = uint(idx_uint4(STATE_TEX[uint2(62, 0)], 3)); - cpu.uart_buffer.buf46 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 0)); - cpu.uart_buffer.buf47 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 1)); - cpu.uart_buffer.buf48 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 2)); - cpu.uart_buffer.buf49 = uint(idx_uint4(STATE_TEX[uint2(63, 0)], 3)); - cpu.uart_buffer.buf50 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 0)); - cpu.uart_buffer.buf51 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 1)); - cpu.uart_buffer.buf52 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 2)); - cpu.uart_buffer.buf53 = uint(idx_uint4(STATE_TEX[uint2(64, 0)], 3)); - cpu.uart_buffer.buf54 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 0)); - cpu.uart_buffer.buf55 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 1)); - cpu.uart_buffer.buf56 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 2)); - cpu.uart_buffer.buf57 = uint(idx_uint4(STATE_TEX[uint2(65, 0)], 3)); - cpu.uart_buffer.buf58 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 0)); - cpu.uart_buffer.buf59 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 1)); - cpu.uart_buffer.buf60 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 2)); - cpu.uart_buffer.buf61 = uint(idx_uint4(STATE_TEX[uint2(66, 0)], 3)); - cpu.uart_buffer.buf62 = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 0)); - cpu.uart_buffer.buf63 = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 1)); - cpu.mmu.mode = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 2)); - cpu.mmu.ppn = uint(idx_uint4(STATE_TEX[uint2(67, 0)], 3)); - cpu.stall = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 0)); - cpu.clock = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 1)); - cpu.commits = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 2)); - cpu.xreg0 = uint(idx_uint4(STATE_TEX[uint2(68, 0)], 3)); - cpu.xreg1 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 0)); - cpu.xreg2 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 1)); - cpu.xreg3 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 2)); - cpu.xreg4 = uint(idx_uint4(STATE_TEX[uint2(69, 0)], 3)); - cpu.xreg5 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 0)); - cpu.xreg6 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 1)); - cpu.xreg7 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 2)); - cpu.xreg8 = uint(idx_uint4(STATE_TEX[uint2(70, 0)], 3)); - cpu.xreg9 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 0)); - cpu.xreg10 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 1)); - cpu.xreg11 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 2)); - cpu.xreg12 = uint(idx_uint4(STATE_TEX[uint2(71, 0)], 3)); - cpu.xreg13 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 0)); - cpu.xreg14 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 1)); - cpu.xreg15 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 2)); - cpu.xreg16 = uint(idx_uint4(STATE_TEX[uint2(72, 0)], 3)); - cpu.xreg17 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 0)); - cpu.xreg18 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 1)); - cpu.xreg19 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 2)); - cpu.xreg20 = uint(idx_uint4(STATE_TEX[uint2(73, 0)], 3)); - cpu.xreg21 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 0)); - cpu.xreg22 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 1)); - cpu.xreg23 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 2)); - cpu.xreg24 = uint(idx_uint4(STATE_TEX[uint2(74, 0)], 3)); - cpu.xreg25 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 0)); - cpu.xreg26 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 1)); - cpu.xreg27 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 2)); - cpu.xreg28 = uint(idx_uint4(STATE_TEX[uint2(75, 0)], 3)); - cpu.xreg29 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 0)); - cpu.xreg30 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 1)); - cpu.xreg31 = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 2)); - cpu.pc = uint(idx_uint4(STATE_TEX[uint2(76, 0)], 3)); - cpu.reservation_en = bool(idx_uint4(STATE_TEX[uint2(77, 0)], 0)); - cpu.reservation_addr = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 1)); - cpu.memop_src_v = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 2)); - cpu.memop_dst_v = uint(idx_uint4(STATE_TEX[uint2(77, 0)], 3)); - cpu.memop_src_p = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 0)); - cpu.memop_dst_p = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 1)); - cpu.memop_n = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 2)); - cpu.stall_count = uint(idx_uint4(STATE_TEX[uint2(78, 0)], 3)); - cpu.trap_count = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 0)); - cpu.debug_do_tick = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 1)); - cpu.debug_last_ins = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 2)); - cpu.debug_last_stall = uint(idx_uint4(STATE_TEX[uint2(79, 0)], 3)); - cpu.debug_arb_0 = uint(idx_uint4(STATE_TEX[uint2(80, 0)], 0)); + cpu.csr.privilege = uint(idx_uint4(STATE_TEX(uint2(8, 0)), 2)); + cpu.uart.rbr_thr_ier_iir = uint(idx_uint4(STATE_TEX(uint2(8, 0)), 3)); + cpu.uart.lcr_mcr_lsr_scr = uint(idx_uint4(STATE_TEX(uint2(9, 0)), 0)); + cpu.uart.thre_ip = bool(idx_uint4(STATE_TEX(uint2(9, 0)), 1)); + cpu.uart.interrupting = bool(idx_uint4(STATE_TEX(uint2(9, 0)), 2)); + cpu.uart.input_tag = uint(idx_uint4(STATE_TEX(uint2(9, 0)), 3)); + cpu.clint.msip = bool(idx_uint4(STATE_TEX(uint2(10, 0)), 0)); + cpu.clint.mtimecmp_lo = uint(idx_uint4(STATE_TEX(uint2(10, 0)), 1)); + cpu.clint.mtimecmp_hi = uint(idx_uint4(STATE_TEX(uint2(10, 0)), 2)); + cpu.clint.mtime_lo = uint(idx_uint4(STATE_TEX(uint2(10, 0)), 3)); + cpu.clint.mtime_hi = uint(idx_uint4(STATE_TEX(uint2(11, 0)), 0)); + cpu.mmu.mode = uint(idx_uint4(STATE_TEX(uint2(11, 0)), 1)); + cpu.mmu.ppn = uint(idx_uint4(STATE_TEX(uint2(11, 0)), 2)); + cpu.uart_buffer.ptr = uint(4294967295); + cpu.uart_buffer.buf0 = uint(0); + cpu.uart_buffer.buf1 = uint(0); + cpu.uart_buffer.buf2 = uint(0); + cpu.uart_buffer.buf3 = uint(0); + cpu.uart_buffer.buf4 = uint(0); + cpu.uart_buffer.buf5 = uint(0); + cpu.uart_buffer.buf6 = uint(0); + cpu.uart_buffer.buf7 = uint(0); + cpu.uart_buffer.buf8 = uint(0); + cpu.uart_buffer.buf9 = uint(0); + cpu.uart_buffer.buf10 = uint(0); + cpu.uart_buffer.buf11 = uint(0); + cpu.uart_buffer.buf12 = uint(0); + cpu.uart_buffer.buf13 = uint(0); + cpu.uart_buffer.buf14 = uint(0); + cpu.uart_buffer.buf15 = uint(0); + cpu.uart_buffer.buf16 = uint(0); + cpu.uart_buffer.buf17 = uint(0); + cpu.uart_buffer.buf18 = uint(0); + cpu.uart_buffer.buf19 = uint(0); + cpu.uart_buffer.buf20 = uint(0); + cpu.uart_buffer.buf21 = uint(0); + cpu.uart_buffer.buf22 = uint(0); + cpu.uart_buffer.buf23 = uint(0); + cpu.uart_buffer.buf24 = uint(0); + cpu.uart_buffer.buf25 = uint(0); + cpu.uart_buffer.buf26 = uint(0); + cpu.uart_buffer.buf27 = uint(0); + cpu.uart_buffer.buf28 = uint(0); + cpu.uart_buffer.buf29 = uint(0); + cpu.uart_buffer.buf30 = uint(0); + cpu.uart_buffer.buf31 = uint(0); + cpu.uart_buffer.buf32 = uint(0); + cpu.uart_buffer.buf33 = uint(0); + cpu.uart_buffer.buf34 = uint(0); + cpu.uart_buffer.buf35 = uint(0); + cpu.uart_buffer.buf36 = uint(0); + cpu.uart_buffer.buf37 = uint(0); + cpu.uart_buffer.buf38 = uint(0); + cpu.uart_buffer.buf39 = uint(0); + cpu.uart_buffer.buf40 = uint(0); + cpu.uart_buffer.buf41 = uint(0); + cpu.uart_buffer.buf42 = uint(0); + cpu.uart_buffer.buf43 = uint(0); + cpu.uart_buffer.buf44 = uint(0); + cpu.uart_buffer.buf45 = uint(0); + cpu.uart_buffer.buf46 = uint(0); + cpu.uart_buffer.buf47 = uint(0); + cpu.uart_buffer.buf48 = uint(0); + cpu.uart_buffer.buf49 = uint(0); + cpu.uart_buffer.buf50 = uint(0); + cpu.uart_buffer.buf51 = uint(0); + cpu.uart_buffer.buf52 = uint(0); + cpu.uart_buffer.buf53 = uint(0); + cpu.uart_buffer.buf54 = uint(0); + cpu.uart_buffer.buf55 = uint(0); + cpu.uart_buffer.buf56 = uint(0); + cpu.uart_buffer.buf57 = uint(0); + cpu.uart_buffer.buf58 = uint(0); + cpu.uart_buffer.buf59 = uint(0); + cpu.uart_buffer.buf60 = uint(0); + cpu.uart_buffer.buf61 = uint(0); + cpu.uart_buffer.buf62 = uint(0); + cpu.uart_buffer.buf63 = uint(0); + cpu.stall = uint(idx_uint4(STATE_TEX(uint2(28, 0)), 0)); + cpu.clock = uint(idx_uint4(STATE_TEX(uint2(28, 0)), 1)); + cpu.commits = uint(idx_uint4(STATE_TEX(uint2(28, 0)), 2)); + cpu.xreg[0] = uint(idx_uint4(STATE_TEX(uint2(28, 0)), 3)); + cpu.xreg[1] = uint(idx_uint4(STATE_TEX(uint2(29, 0)), 0)); + cpu.xreg[2] = uint(idx_uint4(STATE_TEX(uint2(29, 0)), 1)); + cpu.xreg[3] = uint(idx_uint4(STATE_TEX(uint2(29, 0)), 2)); + cpu.xreg[4] = uint(idx_uint4(STATE_TEX(uint2(29, 0)), 3)); + cpu.xreg[5] = uint(idx_uint4(STATE_TEX(uint2(30, 0)), 0)); + cpu.xreg[6] = uint(idx_uint4(STATE_TEX(uint2(30, 0)), 1)); + cpu.xreg[7] = uint(idx_uint4(STATE_TEX(uint2(30, 0)), 2)); + cpu.xreg[8] = uint(idx_uint4(STATE_TEX(uint2(30, 0)), 3)); + cpu.xreg[9] = uint(idx_uint4(STATE_TEX(uint2(31, 0)), 0)); + cpu.xreg[10] = uint(idx_uint4(STATE_TEX(uint2(31, 0)), 1)); + cpu.xreg[11] = uint(idx_uint4(STATE_TEX(uint2(31, 0)), 2)); + cpu.xreg[12] = uint(idx_uint4(STATE_TEX(uint2(31, 0)), 3)); + cpu.xreg[13] = uint(idx_uint4(STATE_TEX(uint2(32, 0)), 0)); + cpu.xreg[14] = uint(idx_uint4(STATE_TEX(uint2(32, 0)), 1)); + cpu.xreg[15] = uint(idx_uint4(STATE_TEX(uint2(32, 0)), 2)); + cpu.xreg[16] = uint(idx_uint4(STATE_TEX(uint2(32, 0)), 3)); + cpu.xreg[17] = uint(idx_uint4(STATE_TEX(uint2(33, 0)), 0)); + cpu.xreg[18] = uint(idx_uint4(STATE_TEX(uint2(33, 0)), 1)); + cpu.xreg[19] = uint(idx_uint4(STATE_TEX(uint2(33, 0)), 2)); + cpu.xreg[20] = uint(idx_uint4(STATE_TEX(uint2(33, 0)), 3)); + cpu.xreg[21] = uint(idx_uint4(STATE_TEX(uint2(34, 0)), 0)); + cpu.xreg[22] = uint(idx_uint4(STATE_TEX(uint2(34, 0)), 1)); + cpu.xreg[23] = uint(idx_uint4(STATE_TEX(uint2(34, 0)), 2)); + cpu.xreg[24] = uint(idx_uint4(STATE_TEX(uint2(34, 0)), 3)); + cpu.xreg[25] = uint(idx_uint4(STATE_TEX(uint2(35, 0)), 0)); + cpu.xreg[26] = uint(idx_uint4(STATE_TEX(uint2(35, 0)), 1)); + cpu.xreg[27] = uint(idx_uint4(STATE_TEX(uint2(35, 0)), 2)); + cpu.xreg[28] = uint(idx_uint4(STATE_TEX(uint2(35, 0)), 3)); + cpu.xreg[29] = uint(idx_uint4(STATE_TEX(uint2(36, 0)), 0)); + cpu.xreg[30] = uint(idx_uint4(STATE_TEX(uint2(36, 0)), 1)); + cpu.xreg[31] = uint(idx_uint4(STATE_TEX(uint2(36, 0)), 2)); + cpu.pc = uint(idx_uint4(STATE_TEX(uint2(36, 0)), 3)); + cpu.reservation_en = bool(idx_uint4(STATE_TEX(uint2(37, 0)), 0)); + cpu.reservation_addr = uint(idx_uint4(STATE_TEX(uint2(37, 0)), 1)); + cpu.memop_src_v = uint(idx_uint4(STATE_TEX(uint2(37, 0)), 2)); + cpu.memop_dst_v = uint(idx_uint4(STATE_TEX(uint2(37, 0)), 3)); + cpu.memop_src_p = uint(idx_uint4(STATE_TEX(uint2(38, 0)), 0)); + cpu.memop_dst_p = uint(idx_uint4(STATE_TEX(uint2(38, 0)), 1)); + cpu.memop_n = uint(idx_uint4(STATE_TEX(uint2(38, 0)), 2)); + cpu.stall_count = uint(idx_uint4(STATE_TEX(uint2(38, 0)), 3)); + cpu.trap_count = uint(idx_uint4(STATE_TEX(uint2(39, 0)), 0)); + cpu.rtc0 = uint(idx_uint4(STATE_TEX(uint2(39, 0)), 1)); + cpu.rtc1 = uint(idx_uint4(STATE_TEX(uint2(39, 0)), 2)); + cpu.start_time_ref = asfloat(idx_uint4(STATE_TEX(uint2(39, 0)), 3)); + cpu.debug_do_tick = uint(idx_uint4(STATE_TEX(uint2(40, 0)), 0)); + cpu.debug_last_ins = uint(idx_uint4(STATE_TEX(uint2(40, 0)), 1)); + cpu.debug_last_stall = uint(idx_uint4(STATE_TEX(uint2(40, 0)), 2)); + cpu.debug_arb_0 = uint(idx_uint4(STATE_TEX(uint2(40, 0)), 3)); } #endif +#ifdef PASS_COMMIT +#define NEEDS_DFC +#endif +#ifdef PASS_FB +#define NEEDS_DFC +#endif + +#ifdef NEEDS_DFC +void decode_for_commit() { + cpu = (cpu_t)0; + + cpu.cache.csr_cache_0_addr = uint(idx_uint4(STATE_TEX_HART(uint2(0, 0), 0), 0)); + cpu.cache.csr_cache_0_val = uint(idx_uint4(STATE_TEX_HART(uint2(0, 0), 0), 1)); + cpu.cache.csr_cache_1_addr = uint(idx_uint4(STATE_TEX_HART(uint2(0, 0), 0), 2)); + cpu.cache.csr_cache_1_val = uint(idx_uint4(STATE_TEX_HART(uint2(0, 0), 0), 3)); + cpu.cache.csr_cache_2_addr = uint(idx_uint4(STATE_TEX_HART(uint2(1, 0), 0), 0)); + cpu.cache.csr_cache_2_val = uint(idx_uint4(STATE_TEX_HART(uint2(1, 0), 0), 1)); + cpu.cache.csr_cache_3_addr = uint(idx_uint4(STATE_TEX_HART(uint2(1, 0), 0), 2)); + cpu.cache.csr_cache_3_val = uint(idx_uint4(STATE_TEX_HART(uint2(1, 0), 0), 3)); + cpu.cache.csr_cache_4_addr = uint(idx_uint4(STATE_TEX_HART(uint2(2, 0), 0), 0)); + cpu.cache.csr_cache_4_val = uint(idx_uint4(STATE_TEX_HART(uint2(2, 0), 0), 1)); + cpu.cache.csr_cache_5_addr = uint(idx_uint4(STATE_TEX_HART(uint2(2, 0), 0), 2)); + cpu.cache.csr_cache_5_val = uint(idx_uint4(STATE_TEX_HART(uint2(2, 0), 0), 3)); + cpu.cache.csr_cache_6_addr = uint(idx_uint4(STATE_TEX_HART(uint2(3, 0), 0), 0)); + cpu.cache.csr_cache_6_val = uint(idx_uint4(STATE_TEX_HART(uint2(3, 0), 0), 1)); + cpu.cache.csr_cache_7_addr = uint(idx_uint4(STATE_TEX_HART(uint2(3, 0), 0), 2)); + cpu.cache.csr_cache_7_val = uint(idx_uint4(STATE_TEX_HART(uint2(3, 0), 0), 3)); + cpu.cache.csr_cache_8_addr = uint(idx_uint4(STATE_TEX_HART(uint2(4, 0), 0), 0)); + cpu.cache.csr_cache_8_val = uint(idx_uint4(STATE_TEX_HART(uint2(4, 0), 0), 1)); + cpu.cache.csr_cache_9_addr = uint(idx_uint4(STATE_TEX_HART(uint2(4, 0), 0), 2)); + cpu.cache.csr_cache_9_val = uint(idx_uint4(STATE_TEX_HART(uint2(4, 0), 0), 3)); + cpu.cache.csr_cache_10_addr = uint(idx_uint4(STATE_TEX_HART(uint2(5, 0), 0), 0)); + cpu.cache.csr_cache_10_val = uint(idx_uint4(STATE_TEX_HART(uint2(5, 0), 0), 1)); + cpu.cache.csr_cache_11_addr = uint(idx_uint4(STATE_TEX_HART(uint2(5, 0), 0), 2)); + cpu.cache.csr_cache_11_val = uint(idx_uint4(STATE_TEX_HART(uint2(5, 0), 0), 3)); + cpu.cache.csr_cache_12_addr = uint(idx_uint4(STATE_TEX_HART(uint2(6, 0), 0), 0)); + cpu.cache.csr_cache_12_val = uint(idx_uint4(STATE_TEX_HART(uint2(6, 0), 0), 1)); + cpu.cache.csr_cache_13_addr = uint(idx_uint4(STATE_TEX_HART(uint2(6, 0), 0), 2)); + cpu.cache.csr_cache_13_val = uint(idx_uint4(STATE_TEX_HART(uint2(6, 0), 0), 3)); + cpu.cache.csr_cache_14_addr = uint(idx_uint4(STATE_TEX_HART(uint2(7, 0), 0), 0)); + cpu.cache.csr_cache_14_val = uint(idx_uint4(STATE_TEX_HART(uint2(7, 0), 0), 1)); + cpu.cache.csr_cache_15_addr = uint(idx_uint4(STATE_TEX_HART(uint2(7, 0), 0), 2)); + cpu.cache.csr_cache_15_val = uint(idx_uint4(STATE_TEX_HART(uint2(7, 0), 0), 3)); + cpu.cache.ram_l1_last_addr = uint(idx_uint4(STATE_TEX_HART(uint2(8, 0), 0), 0)); + cpu.cache.ram_l1_last_val = uint(idx_uint4(STATE_TEX_HART(uint2(8, 0), 0), 1)); + cpu.csr.privilege = uint(idx_uint4(STATE_TEX_HART(uint2(8, 0), 0), 2)); + cpu.uart.rbr_thr_ier_iir = uint(idx_uint4(STATE_TEX_HART(uint2(8, 0), 0), 3)); + cpu.uart.lcr_mcr_lsr_scr = uint(idx_uint4(STATE_TEX_HART(uint2(9, 0), 0), 0)); + cpu.uart.thre_ip = bool(idx_uint4(STATE_TEX_HART(uint2(9, 0), 0), 1)); + cpu.uart.interrupting = bool(idx_uint4(STATE_TEX_HART(uint2(9, 0), 0), 2)); + cpu.uart.input_tag = uint(idx_uint4(STATE_TEX_HART(uint2(9, 0), 0), 3)); + cpu.clint.msip = bool(idx_uint4(STATE_TEX_HART(uint2(10, 0), 0), 0)); + cpu.clint.mtimecmp_lo = uint(idx_uint4(STATE_TEX_HART(uint2(10, 0), 0), 1)); + cpu.clint.mtimecmp_hi = uint(idx_uint4(STATE_TEX_HART(uint2(10, 0), 0), 2)); + cpu.clint.mtime_lo = uint(idx_uint4(STATE_TEX_HART(uint2(10, 0), 0), 3)); + cpu.clint.mtime_hi = uint(idx_uint4(STATE_TEX_HART(uint2(11, 0), 0), 0)); + cpu.mmu.mode = uint(idx_uint4(STATE_TEX_HART(uint2(11, 0), 0), 1)); + cpu.mmu.ppn = uint(idx_uint4(STATE_TEX_HART(uint2(11, 0), 0), 2)); + cpu.uart_buffer.ptr = uint(idx_uint4(STATE_TEX_HART(uint2(11, 0), 0), 3)); + cpu.uart_buffer.buf0 = uint(idx_uint4(STATE_TEX_HART(uint2(12, 0), 0), 0)); + cpu.uart_buffer.buf1 = uint(idx_uint4(STATE_TEX_HART(uint2(12, 0), 0), 1)); + cpu.uart_buffer.buf2 = uint(idx_uint4(STATE_TEX_HART(uint2(12, 0), 0), 2)); + cpu.uart_buffer.buf3 = uint(idx_uint4(STATE_TEX_HART(uint2(12, 0), 0), 3)); + cpu.uart_buffer.buf4 = uint(idx_uint4(STATE_TEX_HART(uint2(13, 0), 0), 0)); + cpu.uart_buffer.buf5 = uint(idx_uint4(STATE_TEX_HART(uint2(13, 0), 0), 1)); + cpu.uart_buffer.buf6 = uint(idx_uint4(STATE_TEX_HART(uint2(13, 0), 0), 2)); + cpu.uart_buffer.buf7 = uint(idx_uint4(STATE_TEX_HART(uint2(13, 0), 0), 3)); + cpu.uart_buffer.buf8 = uint(idx_uint4(STATE_TEX_HART(uint2(14, 0), 0), 0)); + cpu.uart_buffer.buf9 = uint(idx_uint4(STATE_TEX_HART(uint2(14, 0), 0), 1)); + cpu.uart_buffer.buf10 = uint(idx_uint4(STATE_TEX_HART(uint2(14, 0), 0), 2)); + cpu.uart_buffer.buf11 = uint(idx_uint4(STATE_TEX_HART(uint2(14, 0), 0), 3)); + cpu.uart_buffer.buf12 = uint(idx_uint4(STATE_TEX_HART(uint2(15, 0), 0), 0)); + cpu.uart_buffer.buf13 = uint(idx_uint4(STATE_TEX_HART(uint2(15, 0), 0), 1)); + cpu.uart_buffer.buf14 = uint(idx_uint4(STATE_TEX_HART(uint2(15, 0), 0), 2)); + cpu.uart_buffer.buf15 = uint(idx_uint4(STATE_TEX_HART(uint2(15, 0), 0), 3)); + cpu.uart_buffer.buf16 = uint(idx_uint4(STATE_TEX_HART(uint2(16, 0), 0), 0)); + cpu.uart_buffer.buf17 = uint(idx_uint4(STATE_TEX_HART(uint2(16, 0), 0), 1)); + cpu.uart_buffer.buf18 = uint(idx_uint4(STATE_TEX_HART(uint2(16, 0), 0), 2)); + cpu.uart_buffer.buf19 = uint(idx_uint4(STATE_TEX_HART(uint2(16, 0), 0), 3)); + cpu.uart_buffer.buf20 = uint(idx_uint4(STATE_TEX_HART(uint2(17, 0), 0), 0)); + cpu.uart_buffer.buf21 = uint(idx_uint4(STATE_TEX_HART(uint2(17, 0), 0), 1)); + cpu.uart_buffer.buf22 = uint(idx_uint4(STATE_TEX_HART(uint2(17, 0), 0), 2)); + cpu.uart_buffer.buf23 = uint(idx_uint4(STATE_TEX_HART(uint2(17, 0), 0), 3)); + cpu.uart_buffer.buf24 = uint(idx_uint4(STATE_TEX_HART(uint2(18, 0), 0), 0)); + cpu.uart_buffer.buf25 = uint(idx_uint4(STATE_TEX_HART(uint2(18, 0), 0), 1)); + cpu.uart_buffer.buf26 = uint(idx_uint4(STATE_TEX_HART(uint2(18, 0), 0), 2)); + cpu.uart_buffer.buf27 = uint(idx_uint4(STATE_TEX_HART(uint2(18, 0), 0), 3)); + cpu.uart_buffer.buf28 = uint(idx_uint4(STATE_TEX_HART(uint2(19, 0), 0), 0)); + cpu.uart_buffer.buf29 = uint(idx_uint4(STATE_TEX_HART(uint2(19, 0), 0), 1)); + cpu.uart_buffer.buf30 = uint(idx_uint4(STATE_TEX_HART(uint2(19, 0), 0), 2)); + cpu.uart_buffer.buf31 = uint(idx_uint4(STATE_TEX_HART(uint2(19, 0), 0), 3)); + cpu.uart_buffer.buf32 = uint(idx_uint4(STATE_TEX_HART(uint2(20, 0), 0), 0)); + cpu.uart_buffer.buf33 = uint(idx_uint4(STATE_TEX_HART(uint2(20, 0), 0), 1)); + cpu.uart_buffer.buf34 = uint(idx_uint4(STATE_TEX_HART(uint2(20, 0), 0), 2)); + cpu.uart_buffer.buf35 = uint(idx_uint4(STATE_TEX_HART(uint2(20, 0), 0), 3)); + cpu.uart_buffer.buf36 = uint(idx_uint4(STATE_TEX_HART(uint2(21, 0), 0), 0)); + cpu.uart_buffer.buf37 = uint(idx_uint4(STATE_TEX_HART(uint2(21, 0), 0), 1)); + cpu.uart_buffer.buf38 = uint(idx_uint4(STATE_TEX_HART(uint2(21, 0), 0), 2)); + cpu.uart_buffer.buf39 = uint(idx_uint4(STATE_TEX_HART(uint2(21, 0), 0), 3)); + cpu.uart_buffer.buf40 = uint(idx_uint4(STATE_TEX_HART(uint2(22, 0), 0), 0)); + cpu.uart_buffer.buf41 = uint(idx_uint4(STATE_TEX_HART(uint2(22, 0), 0), 1)); + cpu.uart_buffer.buf42 = uint(idx_uint4(STATE_TEX_HART(uint2(22, 0), 0), 2)); + cpu.uart_buffer.buf43 = uint(idx_uint4(STATE_TEX_HART(uint2(22, 0), 0), 3)); + cpu.uart_buffer.buf44 = uint(idx_uint4(STATE_TEX_HART(uint2(23, 0), 0), 0)); + cpu.uart_buffer.buf45 = uint(idx_uint4(STATE_TEX_HART(uint2(23, 0), 0), 1)); + cpu.uart_buffer.buf46 = uint(idx_uint4(STATE_TEX_HART(uint2(23, 0), 0), 2)); + cpu.uart_buffer.buf47 = uint(idx_uint4(STATE_TEX_HART(uint2(23, 0), 0), 3)); + cpu.uart_buffer.buf48 = uint(idx_uint4(STATE_TEX_HART(uint2(24, 0), 0), 0)); + cpu.uart_buffer.buf49 = uint(idx_uint4(STATE_TEX_HART(uint2(24, 0), 0), 1)); + cpu.uart_buffer.buf50 = uint(idx_uint4(STATE_TEX_HART(uint2(24, 0), 0), 2)); + cpu.uart_buffer.buf51 = uint(idx_uint4(STATE_TEX_HART(uint2(24, 0), 0), 3)); + cpu.uart_buffer.buf52 = uint(idx_uint4(STATE_TEX_HART(uint2(25, 0), 0), 0)); + cpu.uart_buffer.buf53 = uint(idx_uint4(STATE_TEX_HART(uint2(25, 0), 0), 1)); + cpu.uart_buffer.buf54 = uint(idx_uint4(STATE_TEX_HART(uint2(25, 0), 0), 2)); + cpu.uart_buffer.buf55 = uint(idx_uint4(STATE_TEX_HART(uint2(25, 0), 0), 3)); + cpu.uart_buffer.buf56 = uint(idx_uint4(STATE_TEX_HART(uint2(26, 0), 0), 0)); + cpu.uart_buffer.buf57 = uint(idx_uint4(STATE_TEX_HART(uint2(26, 0), 0), 1)); + cpu.uart_buffer.buf58 = uint(idx_uint4(STATE_TEX_HART(uint2(26, 0), 0), 2)); + cpu.uart_buffer.buf59 = uint(idx_uint4(STATE_TEX_HART(uint2(26, 0), 0), 3)); + cpu.uart_buffer.buf60 = uint(idx_uint4(STATE_TEX_HART(uint2(27, 0), 0), 0)); + cpu.uart_buffer.buf61 = uint(idx_uint4(STATE_TEX_HART(uint2(27, 0), 0), 1)); + cpu.uart_buffer.buf62 = uint(idx_uint4(STATE_TEX_HART(uint2(27, 0), 0), 2)); + cpu.uart_buffer.buf63 = uint(idx_uint4(STATE_TEX_HART(uint2(27, 0), 0), 3)); + cpu.stall = uint(idx_uint4(STATE_TEX_HART(uint2(28, 0), 0), 0)); + cpu.clock = uint(idx_uint4(STATE_TEX_HART(uint2(28, 0), 0), 1)); + cpu.commits = uint(idx_uint4(STATE_TEX_HART(uint2(28, 0), 0), 2)); + cpu.xreg[0] = uint(idx_uint4(STATE_TEX_HART(uint2(28, 0), 0), 3)); + cpu.xreg[1] = uint(idx_uint4(STATE_TEX_HART(uint2(29, 0), 0), 0)); + cpu.xreg[2] = uint(idx_uint4(STATE_TEX_HART(uint2(29, 0), 0), 1)); + cpu.xreg[3] = uint(idx_uint4(STATE_TEX_HART(uint2(29, 0), 0), 2)); + cpu.xreg[4] = uint(idx_uint4(STATE_TEX_HART(uint2(29, 0), 0), 3)); + cpu.xreg[5] = uint(idx_uint4(STATE_TEX_HART(uint2(30, 0), 0), 0)); + cpu.xreg[6] = uint(idx_uint4(STATE_TEX_HART(uint2(30, 0), 0), 1)); + cpu.xreg[7] = uint(idx_uint4(STATE_TEX_HART(uint2(30, 0), 0), 2)); + cpu.xreg[8] = uint(idx_uint4(STATE_TEX_HART(uint2(30, 0), 0), 3)); + cpu.xreg[9] = uint(idx_uint4(STATE_TEX_HART(uint2(31, 0), 0), 0)); + cpu.xreg[10] = uint(idx_uint4(STATE_TEX_HART(uint2(31, 0), 0), 1)); + cpu.xreg[11] = uint(idx_uint4(STATE_TEX_HART(uint2(31, 0), 0), 2)); + cpu.xreg[12] = uint(idx_uint4(STATE_TEX_HART(uint2(31, 0), 0), 3)); + cpu.xreg[13] = uint(idx_uint4(STATE_TEX_HART(uint2(32, 0), 0), 0)); + cpu.xreg[14] = uint(idx_uint4(STATE_TEX_HART(uint2(32, 0), 0), 1)); + cpu.xreg[15] = uint(idx_uint4(STATE_TEX_HART(uint2(32, 0), 0), 2)); + cpu.xreg[16] = uint(idx_uint4(STATE_TEX_HART(uint2(32, 0), 0), 3)); + cpu.xreg[17] = uint(idx_uint4(STATE_TEX_HART(uint2(33, 0), 0), 0)); + cpu.xreg[18] = uint(idx_uint4(STATE_TEX_HART(uint2(33, 0), 0), 1)); + cpu.xreg[19] = uint(idx_uint4(STATE_TEX_HART(uint2(33, 0), 0), 2)); + cpu.xreg[20] = uint(idx_uint4(STATE_TEX_HART(uint2(33, 0), 0), 3)); + cpu.xreg[21] = uint(idx_uint4(STATE_TEX_HART(uint2(34, 0), 0), 0)); + cpu.xreg[22] = uint(idx_uint4(STATE_TEX_HART(uint2(34, 0), 0), 1)); + cpu.xreg[23] = uint(idx_uint4(STATE_TEX_HART(uint2(34, 0), 0), 2)); + cpu.xreg[24] = uint(idx_uint4(STATE_TEX_HART(uint2(34, 0), 0), 3)); + cpu.xreg[25] = uint(idx_uint4(STATE_TEX_HART(uint2(35, 0), 0), 0)); + cpu.xreg[26] = uint(idx_uint4(STATE_TEX_HART(uint2(35, 0), 0), 1)); + cpu.xreg[27] = uint(idx_uint4(STATE_TEX_HART(uint2(35, 0), 0), 2)); + cpu.xreg[28] = uint(idx_uint4(STATE_TEX_HART(uint2(35, 0), 0), 3)); + cpu.xreg[29] = uint(idx_uint4(STATE_TEX_HART(uint2(36, 0), 0), 0)); + cpu.xreg[30] = uint(idx_uint4(STATE_TEX_HART(uint2(36, 0), 0), 1)); + cpu.xreg[31] = uint(idx_uint4(STATE_TEX_HART(uint2(36, 0), 0), 2)); + cpu.pc = uint(idx_uint4(STATE_TEX_HART(uint2(36, 0), 0), 3)); + cpu.reservation_en = bool(idx_uint4(STATE_TEX_HART(uint2(37, 0), 0), 0)); + cpu.reservation_addr = uint(idx_uint4(STATE_TEX_HART(uint2(37, 0), 0), 1)); + cpu.memop_src_v = uint(idx_uint4(STATE_TEX_HART(uint2(37, 0), 0), 2)); + cpu.memop_dst_v = uint(idx_uint4(STATE_TEX_HART(uint2(37, 0), 0), 3)); + cpu.memop_src_p = uint(idx_uint4(STATE_TEX_HART(uint2(38, 0), 0), 0)); + cpu.memop_dst_p = uint(idx_uint4(STATE_TEX_HART(uint2(38, 0), 0), 1)); + cpu.memop_n = uint(idx_uint4(STATE_TEX_HART(uint2(38, 0), 0), 2)); + cpu.stall_count = uint(idx_uint4(STATE_TEX_HART(uint2(38, 0), 0), 3)); + cpu.trap_count = uint(idx_uint4(STATE_TEX_HART(uint2(39, 0), 0), 0)); + cpu.rtc0 = uint(idx_uint4(STATE_TEX_HART(uint2(39, 0), 0), 1)); + cpu.rtc1 = uint(idx_uint4(STATE_TEX_HART(uint2(39, 0), 0), 2)); + cpu.start_time_ref = asfloat(idx_uint4(STATE_TEX_HART(uint2(39, 0), 0), 3)); + cpu.debug_do_tick = uint(idx_uint4(STATE_TEX_HART(uint2(40, 0), 0), 0)); + cpu.debug_last_ins = uint(idx_uint4(STATE_TEX_HART(uint2(40, 0), 0), 1)); + cpu.debug_last_stall = uint(idx_uint4(STATE_TEX_HART(uint2(40, 0), 0), 2)); + cpu.debug_arb_0 = uint(idx_uint4(STATE_TEX_HART(uint2(40, 0), 0), 3)); + +} +#endif + +#ifdef PASS_TICK bool pixel_has_state(uint2 pos) { - - return pos.y < 0 || (pos.y == 0 && pos.x <= 80); + // CSR data area and FB are not "state", they're only touched by commit + uint lin = pos.x + 64 * pos.y; + return lin < 44 || (lin >= 1068 && lin < 2092); } - - -/* void set_debug_arb() { */ -/* */ -/* cpu.debug_arb_0 = cpu.xreg0 ^ */ -/* cpu.xreg1 ^ */ -/* cpu.xreg2 ^ */ -/* cpu.xreg3; */ -/* */ -/* cpu.debug_arb_1 = cpu.xreg4 ^ */ -/* cpu.xreg5 ^ */ -/* cpu.xreg6 ^ */ -/* cpu.xreg7; */ -/* */ -/* cpu.debug_arb_2 = cpu.xreg8 ^ */ -/* cpu.xreg9 ^ */ -/* cpu.xreg10 ^ */ -/* cpu.xreg11; */ -/* */ -/* cpu.debug_arb_3 = cpu.xreg12 ^ */ -/* cpu.xreg13 ^ */ -/* cpu.xreg14 ^ */ -/* cpu.xreg15; */ -/* */ -/* cpu.debug_arb_4 = cpu.xreg16 ^ */ -/* cpu.xreg17 ^ */ -/* cpu.xreg18 ^ */ -/* cpu.xreg19; */ -/* */ -/* cpu.debug_arb_5 = cpu.xreg20 ^ */ -/* cpu.xreg21 ^ */ -/* cpu.xreg22 ^ */ -/* cpu.xreg23; */ -/* */ -/* cpu.debug_arb_6 = cpu.xreg24 ^ */ -/* cpu.xreg25 ^ */ -/* cpu.xreg26 ^ */ -/* cpu.xreg27; */ -/* */ -/* cpu.debug_arb_7 = cpu.xreg28 ^ */ -/* cpu.xreg29 ^ */ -/* cpu.xreg30 ^ */ -/* cpu.xreg31; */ -/* */ -/* } */ - uint4 encode(uint2 pos) { + // L1 cache + uint s_lin = pos.x + pos.y * 64; + if (s_lin >= 1068 && s_lin < 2092) { + uint offset = s_lin - 1068; + return l1_cache[offset]; + } + // fallback is passthrough - uint4 ret = STATE_TEX[pos]; + uint4 ret = STATE_TEX(pos); + // cpu_t serialization uint pos_id = pos.x | (pos.y << 16); - + [forcecase] switch (pos_id) { case 0: ret.r = uint(cpu.cache.csr_cache_0_addr); @@ -1079,64 +624,64 @@ uint4 encode(uint2 pos) { ret.a = uint(cpu.cache.csr_cache_3_val); return ret; case 10: - ret.b = uint(cpu.cache.ram_l1_1_addr); - ret.a = uint(cpu.cache.ram_l1_1_val); - ret.r = uint(cpu.cache.ram_l1_64_addr); - ret.g = uint(cpu.cache.ram_l1_64_val); + ret.r = uint(cpu.clint.msip); + ret.a = uint(cpu.clint.mtime_lo); + ret.b = uint(cpu.clint.mtimecmp_hi); + ret.g = uint(cpu.clint.mtimecmp_lo); return ret; case 11: - ret.r = uint(cpu.cache.ram_l1_17_addr); - ret.g = uint(cpu.cache.ram_l1_17_val); - ret.b = uint(cpu.cache.ram_l1_33_addr); - ret.a = uint(cpu.cache.ram_l1_33_val); + ret.r = uint(cpu.clint.mtime_hi); + ret.g = uint(cpu.mmu.mode); + ret.b = uint(cpu.mmu.ppn); + ret.a = uint(cpu.uart_buffer.ptr); return ret; case 12: - ret.r = uint(cpu.cache.ram_l1_49_addr); - ret.g = uint(cpu.cache.ram_l1_49_val); - ret.b = uint(cpu.cache.ram_l1_65_addr); - ret.a = uint(cpu.cache.ram_l1_65_val); + ret.r = uint(cpu.uart_buffer.buf0); + ret.g = uint(cpu.uart_buffer.buf1); + ret.b = uint(cpu.uart_buffer.buf2); + ret.a = uint(cpu.uart_buffer.buf3); return ret; case 13: - ret.b = uint(cpu.cache.ram_l1_18_addr); - ret.a = uint(cpu.cache.ram_l1_18_val); - ret.r = uint(cpu.cache.ram_l1_2_addr); - ret.g = uint(cpu.cache.ram_l1_2_val); + ret.r = uint(cpu.uart_buffer.buf4); + ret.g = uint(cpu.uart_buffer.buf5); + ret.b = uint(cpu.uart_buffer.buf6); + ret.a = uint(cpu.uart_buffer.buf7); return ret; case 14: - ret.r = uint(cpu.cache.ram_l1_34_addr); - ret.g = uint(cpu.cache.ram_l1_34_val); - ret.b = uint(cpu.cache.ram_l1_50_addr); - ret.a = uint(cpu.cache.ram_l1_50_val); + ret.b = uint(cpu.uart_buffer.buf10); + ret.a = uint(cpu.uart_buffer.buf11); + ret.r = uint(cpu.uart_buffer.buf8); + ret.g = uint(cpu.uart_buffer.buf9); return ret; case 15: - ret.b = uint(cpu.cache.ram_l1_3_addr); - ret.a = uint(cpu.cache.ram_l1_3_val); - ret.r = uint(cpu.cache.ram_l1_66_addr); - ret.g = uint(cpu.cache.ram_l1_66_val); + ret.r = uint(cpu.uart_buffer.buf12); + ret.g = uint(cpu.uart_buffer.buf13); + ret.b = uint(cpu.uart_buffer.buf14); + ret.a = uint(cpu.uart_buffer.buf15); return ret; case 16: - ret.r = uint(cpu.cache.ram_l1_19_addr); - ret.g = uint(cpu.cache.ram_l1_19_val); - ret.b = uint(cpu.cache.ram_l1_35_addr); - ret.a = uint(cpu.cache.ram_l1_35_val); + ret.r = uint(cpu.uart_buffer.buf16); + ret.g = uint(cpu.uart_buffer.buf17); + ret.b = uint(cpu.uart_buffer.buf18); + ret.a = uint(cpu.uart_buffer.buf19); return ret; case 17: - ret.r = uint(cpu.cache.ram_l1_51_addr); - ret.g = uint(cpu.cache.ram_l1_51_val); - ret.b = uint(cpu.cache.ram_l1_67_addr); - ret.a = uint(cpu.cache.ram_l1_67_val); + ret.r = uint(cpu.uart_buffer.buf20); + ret.g = uint(cpu.uart_buffer.buf21); + ret.b = uint(cpu.uart_buffer.buf22); + ret.a = uint(cpu.uart_buffer.buf23); return ret; case 18: - ret.b = uint(cpu.cache.ram_l1_20_addr); - ret.a = uint(cpu.cache.ram_l1_20_val); - ret.r = uint(cpu.cache.ram_l1_4_addr); - ret.g = uint(cpu.cache.ram_l1_4_val); + ret.r = uint(cpu.uart_buffer.buf24); + ret.g = uint(cpu.uart_buffer.buf25); + ret.b = uint(cpu.uart_buffer.buf26); + ret.a = uint(cpu.uart_buffer.buf27); return ret; case 19: - ret.r = uint(cpu.cache.ram_l1_36_addr); - ret.g = uint(cpu.cache.ram_l1_36_val); - ret.b = uint(cpu.cache.ram_l1_52_addr); - ret.a = uint(cpu.cache.ram_l1_52_val); + ret.r = uint(cpu.uart_buffer.buf28); + ret.g = uint(cpu.uart_buffer.buf29); + ret.b = uint(cpu.uart_buffer.buf30); + ret.a = uint(cpu.uart_buffer.buf31); return ret; case 2: ret.r = uint(cpu.cache.csr_cache_4_addr); @@ -1145,64 +690,64 @@ uint4 encode(uint2 pos) { ret.a = uint(cpu.cache.csr_cache_5_val); return ret; case 20: - ret.b = uint(cpu.cache.ram_l1_5_addr); - ret.a = uint(cpu.cache.ram_l1_5_val); - ret.r = uint(cpu.cache.ram_l1_68_addr); - ret.g = uint(cpu.cache.ram_l1_68_val); + ret.r = uint(cpu.uart_buffer.buf32); + ret.g = uint(cpu.uart_buffer.buf33); + ret.b = uint(cpu.uart_buffer.buf34); + ret.a = uint(cpu.uart_buffer.buf35); return ret; case 21: - ret.r = uint(cpu.cache.ram_l1_21_addr); - ret.g = uint(cpu.cache.ram_l1_21_val); - ret.b = uint(cpu.cache.ram_l1_37_addr); - ret.a = uint(cpu.cache.ram_l1_37_val); + ret.r = uint(cpu.uart_buffer.buf36); + ret.g = uint(cpu.uart_buffer.buf37); + ret.b = uint(cpu.uart_buffer.buf38); + ret.a = uint(cpu.uart_buffer.buf39); return ret; case 22: - ret.r = uint(cpu.cache.ram_l1_53_addr); - ret.g = uint(cpu.cache.ram_l1_53_val); - ret.b = uint(cpu.cache.ram_l1_69_addr); - ret.a = uint(cpu.cache.ram_l1_69_val); + ret.r = uint(cpu.uart_buffer.buf40); + ret.g = uint(cpu.uart_buffer.buf41); + ret.b = uint(cpu.uart_buffer.buf42); + ret.a = uint(cpu.uart_buffer.buf43); return ret; case 23: - ret.b = uint(cpu.cache.ram_l1_22_addr); - ret.a = uint(cpu.cache.ram_l1_22_val); - ret.r = uint(cpu.cache.ram_l1_6_addr); - ret.g = uint(cpu.cache.ram_l1_6_val); + ret.r = uint(cpu.uart_buffer.buf44); + ret.g = uint(cpu.uart_buffer.buf45); + ret.b = uint(cpu.uart_buffer.buf46); + ret.a = uint(cpu.uart_buffer.buf47); return ret; case 24: - ret.r = uint(cpu.cache.ram_l1_38_addr); - ret.g = uint(cpu.cache.ram_l1_38_val); - ret.b = uint(cpu.cache.ram_l1_54_addr); - ret.a = uint(cpu.cache.ram_l1_54_val); + ret.r = uint(cpu.uart_buffer.buf48); + ret.g = uint(cpu.uart_buffer.buf49); + ret.b = uint(cpu.uart_buffer.buf50); + ret.a = uint(cpu.uart_buffer.buf51); return ret; case 25: - ret.r = uint(cpu.cache.ram_l1_70_addr); - ret.g = uint(cpu.cache.ram_l1_70_val); - ret.b = uint(cpu.cache.ram_l1_7_addr); - ret.a = uint(cpu.cache.ram_l1_7_val); + ret.r = uint(cpu.uart_buffer.buf52); + ret.g = uint(cpu.uart_buffer.buf53); + ret.b = uint(cpu.uart_buffer.buf54); + ret.a = uint(cpu.uart_buffer.buf55); return ret; case 26: - ret.r = uint(cpu.cache.ram_l1_23_addr); - ret.g = uint(cpu.cache.ram_l1_23_val); - ret.b = uint(cpu.cache.ram_l1_39_addr); - ret.a = uint(cpu.cache.ram_l1_39_val); + ret.r = uint(cpu.uart_buffer.buf56); + ret.g = uint(cpu.uart_buffer.buf57); + ret.b = uint(cpu.uart_buffer.buf58); + ret.a = uint(cpu.uart_buffer.buf59); return ret; case 27: - ret.r = uint(cpu.cache.ram_l1_55_addr); - ret.g = uint(cpu.cache.ram_l1_55_val); - ret.b = uint(cpu.cache.ram_l1_71_addr); - ret.a = uint(cpu.cache.ram_l1_71_val); + ret.r = uint(cpu.uart_buffer.buf60); + ret.g = uint(cpu.uart_buffer.buf61); + ret.b = uint(cpu.uart_buffer.buf62); + ret.a = uint(cpu.uart_buffer.buf63); return ret; case 28: - ret.b = uint(cpu.cache.ram_l1_24_addr); - ret.a = uint(cpu.cache.ram_l1_24_val); - ret.r = uint(cpu.cache.ram_l1_8_addr); - ret.g = uint(cpu.cache.ram_l1_8_val); + ret.g = uint(cpu.clock); + ret.b = uint(cpu.commits); + ret.r = uint(cpu.stall); + ret.a = uint(cpu.xreg[0]); return ret; case 29: - ret.r = uint(cpu.cache.ram_l1_40_addr); - ret.g = uint(cpu.cache.ram_l1_40_val); - ret.b = uint(cpu.cache.ram_l1_56_addr); - ret.a = uint(cpu.cache.ram_l1_56_val); + ret.r = uint(cpu.xreg[1]); + ret.g = uint(cpu.xreg[2]); + ret.b = uint(cpu.xreg[3]); + ret.a = uint(cpu.xreg[4]); return ret; case 3: ret.r = uint(cpu.cache.csr_cache_6_addr); @@ -1211,64 +756,64 @@ uint4 encode(uint2 pos) { ret.a = uint(cpu.cache.csr_cache_7_val); return ret; case 30: - ret.r = uint(cpu.cache.ram_l1_72_addr); - ret.g = uint(cpu.cache.ram_l1_72_val); - ret.b = uint(cpu.cache.ram_l1_9_addr); - ret.a = uint(cpu.cache.ram_l1_9_val); + ret.r = uint(cpu.xreg[5]); + ret.g = uint(cpu.xreg[6]); + ret.b = uint(cpu.xreg[7]); + ret.a = uint(cpu.xreg[8]); return ret; case 31: - ret.r = uint(cpu.cache.ram_l1_25_addr); - ret.g = uint(cpu.cache.ram_l1_25_val); - ret.b = uint(cpu.cache.ram_l1_41_addr); - ret.a = uint(cpu.cache.ram_l1_41_val); + ret.g = uint(cpu.xreg[10]); + ret.b = uint(cpu.xreg[11]); + ret.a = uint(cpu.xreg[12]); + ret.r = uint(cpu.xreg[9]); return ret; case 32: - ret.r = uint(cpu.cache.ram_l1_57_addr); - ret.g = uint(cpu.cache.ram_l1_57_val); - ret.b = uint(cpu.cache.ram_l1_73_addr); - ret.a = uint(cpu.cache.ram_l1_73_val); + ret.r = uint(cpu.xreg[13]); + ret.g = uint(cpu.xreg[14]); + ret.b = uint(cpu.xreg[15]); + ret.a = uint(cpu.xreg[16]); return ret; case 33: - ret.r = uint(cpu.cache.ram_l1_10_addr); - ret.g = uint(cpu.cache.ram_l1_10_val); - ret.b = uint(cpu.cache.ram_l1_26_addr); - ret.a = uint(cpu.cache.ram_l1_26_val); + ret.r = uint(cpu.xreg[17]); + ret.g = uint(cpu.xreg[18]); + ret.b = uint(cpu.xreg[19]); + ret.a = uint(cpu.xreg[20]); return ret; case 34: - ret.r = uint(cpu.cache.ram_l1_42_addr); - ret.g = uint(cpu.cache.ram_l1_42_val); - ret.b = uint(cpu.cache.ram_l1_58_addr); - ret.a = uint(cpu.cache.ram_l1_58_val); + ret.r = uint(cpu.xreg[21]); + ret.g = uint(cpu.xreg[22]); + ret.b = uint(cpu.xreg[23]); + ret.a = uint(cpu.xreg[24]); return ret; case 35: - ret.b = uint(cpu.cache.ram_l1_11_addr); - ret.a = uint(cpu.cache.ram_l1_11_val); - ret.r = uint(cpu.cache.ram_l1_74_addr); - ret.g = uint(cpu.cache.ram_l1_74_val); + ret.r = uint(cpu.xreg[25]); + ret.g = uint(cpu.xreg[26]); + ret.b = uint(cpu.xreg[27]); + ret.a = uint(cpu.xreg[28]); return ret; case 36: - ret.r = uint(cpu.cache.ram_l1_27_addr); - ret.g = uint(cpu.cache.ram_l1_27_val); - ret.b = uint(cpu.cache.ram_l1_43_addr); - ret.a = uint(cpu.cache.ram_l1_43_val); + ret.a = uint(cpu.pc); + ret.r = uint(cpu.xreg[29]); + ret.g = uint(cpu.xreg[30]); + ret.b = uint(cpu.xreg[31]); return ret; case 37: - ret.r = uint(cpu.cache.ram_l1_59_addr); - ret.g = uint(cpu.cache.ram_l1_59_val); - ret.b = uint(cpu.cache.ram_l1_75_addr); - ret.a = uint(cpu.cache.ram_l1_75_val); + ret.a = uint(cpu.memop_dst_v); + ret.b = uint(cpu.memop_src_v); + ret.g = uint(cpu.reservation_addr); + ret.r = uint(cpu.reservation_en); return ret; case 38: - ret.r = uint(cpu.cache.ram_l1_12_addr); - ret.g = uint(cpu.cache.ram_l1_12_val); - ret.b = uint(cpu.cache.ram_l1_28_addr); - ret.a = uint(cpu.cache.ram_l1_28_val); + ret.g = uint(cpu.memop_dst_p); + ret.b = uint(cpu.memop_n); + ret.r = uint(cpu.memop_src_p); + ret.a = uint(cpu.stall_count); return ret; case 39: - ret.r = uint(cpu.cache.ram_l1_44_addr); - ret.g = uint(cpu.cache.ram_l1_44_val); - ret.b = uint(cpu.cache.ram_l1_60_addr); - ret.a = uint(cpu.cache.ram_l1_60_val); + ret.g = uint(cpu.rtc0); + ret.b = uint(cpu.rtc1); + ret.a = asuint(cpu.start_time_ref); + ret.r = uint(cpu.trap_count); return ret; case 4: ret.r = uint(cpu.cache.csr_cache_8_addr); @@ -1277,64 +822,10 @@ uint4 encode(uint2 pos) { ret.a = uint(cpu.cache.csr_cache_9_val); return ret; case 40: - ret.b = uint(cpu.cache.ram_l1_13_addr); - ret.a = uint(cpu.cache.ram_l1_13_val); - ret.r = uint(cpu.cache.ram_l1_76_addr); - ret.g = uint(cpu.cache.ram_l1_76_val); - return ret; - case 41: - ret.r = uint(cpu.cache.ram_l1_29_addr); - ret.g = uint(cpu.cache.ram_l1_29_val); - ret.b = uint(cpu.cache.ram_l1_45_addr); - ret.a = uint(cpu.cache.ram_l1_45_val); - return ret; - case 42: - ret.r = uint(cpu.cache.ram_l1_61_addr); - ret.g = uint(cpu.cache.ram_l1_61_val); - ret.b = uint(cpu.cache.ram_l1_77_addr); - ret.a = uint(cpu.cache.ram_l1_77_val); - return ret; - case 43: - ret.r = uint(cpu.cache.ram_l1_14_addr); - ret.g = uint(cpu.cache.ram_l1_14_val); - ret.b = uint(cpu.cache.ram_l1_30_addr); - ret.a = uint(cpu.cache.ram_l1_30_val); - return ret; - case 44: - ret.r = uint(cpu.cache.ram_l1_46_addr); - ret.g = uint(cpu.cache.ram_l1_46_val); - ret.b = uint(cpu.cache.ram_l1_62_addr); - ret.a = uint(cpu.cache.ram_l1_62_val); - return ret; - case 45: - ret.b = uint(cpu.cache.ram_l1_15_addr); - ret.a = uint(cpu.cache.ram_l1_15_val); - ret.r = uint(cpu.cache.ram_l1_78_addr); - ret.g = uint(cpu.cache.ram_l1_78_val); - return ret; - case 46: - ret.r = uint(cpu.cache.ram_l1_31_addr); - ret.g = uint(cpu.cache.ram_l1_31_val); - ret.b = uint(cpu.cache.ram_l1_47_addr); - ret.a = uint(cpu.cache.ram_l1_47_val); - return ret; - case 47: - ret.r = uint(cpu.cache.ram_l1_63_addr); - ret.g = uint(cpu.cache.ram_l1_63_val); - ret.b = uint(cpu.cache.ram_l1_79_addr); - ret.a = uint(cpu.cache.ram_l1_79_val); - return ret; - case 48: - ret.r = uint(cpu.cache.ram_l1_last_addr); - ret.g = uint(cpu.cache.ram_l1_last_val); - ret.b = uint(cpu.csr.privilege); - ret.a = uint(cpu.uart.rbr_thr_ier_iir); - return ret; - case 49: - ret.a = uint(cpu.uart.input_tag); - ret.b = uint(cpu.uart.interrupting); - ret.r = uint(cpu.uart.lcr_mcr_lsr_scr); - ret.g = uint(cpu.uart.thre_ip); + ret.a = uint(cpu.debug_arb_0); + ret.r = uint(cpu.debug_do_tick); + ret.g = uint(cpu.debug_last_ins); + ret.b = uint(cpu.stall == 0 ? cpu.debug_last_stall : cpu.stall); return ret; case 5: ret.r = uint(cpu.cache.csr_cache_10_addr); @@ -1342,212 +833,29 @@ uint4 encode(uint2 pos) { ret.b = uint(cpu.cache.csr_cache_11_addr); ret.a = uint(cpu.cache.csr_cache_11_val); return ret; - case 50: - ret.r = uint(cpu.clint.msip); - ret.a = uint(cpu.clint.mtime_lo); - ret.b = uint(cpu.clint.mtimecmp_hi); - ret.g = uint(cpu.clint.mtimecmp_lo); - return ret; - case 51: - ret.r = uint(cpu.clint.mtime_hi); - ret.b = uint(cpu.uart_buffer.buf0); - ret.a = uint(cpu.uart_buffer.buf1); - ret.g = uint(cpu.uart_buffer.ptr); - return ret; - case 52: - ret.r = uint(cpu.uart_buffer.buf2); - ret.g = uint(cpu.uart_buffer.buf3); - ret.b = uint(cpu.uart_buffer.buf4); - ret.a = uint(cpu.uart_buffer.buf5); - return ret; - case 53: - ret.r = uint(cpu.uart_buffer.buf6); - ret.g = uint(cpu.uart_buffer.buf7); - ret.b = uint(cpu.uart_buffer.buf8); - ret.a = uint(cpu.uart_buffer.buf9); - return ret; - case 54: - ret.r = uint(cpu.uart_buffer.buf10); - ret.g = uint(cpu.uart_buffer.buf11); - ret.b = uint(cpu.uart_buffer.buf12); - ret.a = uint(cpu.uart_buffer.buf13); - return ret; - case 55: - ret.r = uint(cpu.uart_buffer.buf14); - ret.g = uint(cpu.uart_buffer.buf15); - ret.b = uint(cpu.uart_buffer.buf16); - ret.a = uint(cpu.uart_buffer.buf17); - return ret; - case 56: - ret.r = uint(cpu.uart_buffer.buf18); - ret.g = uint(cpu.uart_buffer.buf19); - ret.b = uint(cpu.uart_buffer.buf20); - ret.a = uint(cpu.uart_buffer.buf21); - return ret; - case 57: - ret.r = uint(cpu.uart_buffer.buf22); - ret.g = uint(cpu.uart_buffer.buf23); - ret.b = uint(cpu.uart_buffer.buf24); - ret.a = uint(cpu.uart_buffer.buf25); - return ret; - case 58: - ret.r = uint(cpu.uart_buffer.buf26); - ret.g = uint(cpu.uart_buffer.buf27); - ret.b = uint(cpu.uart_buffer.buf28); - ret.a = uint(cpu.uart_buffer.buf29); - return ret; - case 59: - ret.r = uint(cpu.uart_buffer.buf30); - ret.g = uint(cpu.uart_buffer.buf31); - ret.b = uint(cpu.uart_buffer.buf32); - ret.a = uint(cpu.uart_buffer.buf33); - return ret; case 6: ret.r = uint(cpu.cache.csr_cache_12_addr); ret.g = uint(cpu.cache.csr_cache_12_val); ret.b = uint(cpu.cache.csr_cache_13_addr); ret.a = uint(cpu.cache.csr_cache_13_val); return ret; - case 60: - ret.r = uint(cpu.uart_buffer.buf34); - ret.g = uint(cpu.uart_buffer.buf35); - ret.b = uint(cpu.uart_buffer.buf36); - ret.a = uint(cpu.uart_buffer.buf37); - return ret; - case 61: - ret.r = uint(cpu.uart_buffer.buf38); - ret.g = uint(cpu.uart_buffer.buf39); - ret.b = uint(cpu.uart_buffer.buf40); - ret.a = uint(cpu.uart_buffer.buf41); - return ret; - case 62: - ret.r = uint(cpu.uart_buffer.buf42); - ret.g = uint(cpu.uart_buffer.buf43); - ret.b = uint(cpu.uart_buffer.buf44); - ret.a = uint(cpu.uart_buffer.buf45); - return ret; - case 63: - ret.r = uint(cpu.uart_buffer.buf46); - ret.g = uint(cpu.uart_buffer.buf47); - ret.b = uint(cpu.uart_buffer.buf48); - ret.a = uint(cpu.uart_buffer.buf49); - return ret; - case 64: - ret.r = uint(cpu.uart_buffer.buf50); - ret.g = uint(cpu.uart_buffer.buf51); - ret.b = uint(cpu.uart_buffer.buf52); - ret.a = uint(cpu.uart_buffer.buf53); - return ret; - case 65: - ret.r = uint(cpu.uart_buffer.buf54); - ret.g = uint(cpu.uart_buffer.buf55); - ret.b = uint(cpu.uart_buffer.buf56); - ret.a = uint(cpu.uart_buffer.buf57); - return ret; - case 66: - ret.r = uint(cpu.uart_buffer.buf58); - ret.g = uint(cpu.uart_buffer.buf59); - ret.b = uint(cpu.uart_buffer.buf60); - ret.a = uint(cpu.uart_buffer.buf61); - return ret; - case 67: - ret.b = uint(cpu.mmu.mode); - ret.a = uint(cpu.mmu.ppn); - ret.r = uint(cpu.uart_buffer.buf62); - ret.g = uint(cpu.uart_buffer.buf63); - return ret; - case 68: - ret.g = uint(cpu.clock); - ret.b = uint(cpu.commits); - ret.r = uint(cpu.stall == STALL_CSR_CACHE ? 0 : (cpu.stall == STALL_MEM_CACHE_L1 ? 0 : cpu.stall)); - ret.a = uint(cpu.xreg0); - return ret; - case 69: - ret.r = uint(cpu.xreg1); - ret.g = uint(cpu.xreg2); - ret.b = uint(cpu.xreg3); - ret.a = uint(cpu.xreg4); - return ret; case 7: ret.r = uint(cpu.cache.csr_cache_14_addr); ret.g = uint(cpu.cache.csr_cache_14_val); ret.b = uint(cpu.cache.csr_cache_15_addr); ret.a = uint(cpu.cache.csr_cache_15_val); return ret; - case 70: - ret.r = uint(cpu.xreg5); - ret.g = uint(cpu.xreg6); - ret.b = uint(cpu.xreg7); - ret.a = uint(cpu.xreg8); - return ret; - case 71: - ret.g = uint(cpu.xreg10); - ret.b = uint(cpu.xreg11); - ret.a = uint(cpu.xreg12); - ret.r = uint(cpu.xreg9); - return ret; - case 72: - ret.r = uint(cpu.xreg13); - ret.g = uint(cpu.xreg14); - ret.b = uint(cpu.xreg15); - ret.a = uint(cpu.xreg16); - return ret; - case 73: - ret.r = uint(cpu.xreg17); - ret.g = uint(cpu.xreg18); - ret.b = uint(cpu.xreg19); - ret.a = uint(cpu.xreg20); - return ret; - case 74: - ret.r = uint(cpu.xreg21); - ret.g = uint(cpu.xreg22); - ret.b = uint(cpu.xreg23); - ret.a = uint(cpu.xreg24); - return ret; - case 75: - ret.r = uint(cpu.xreg25); - ret.g = uint(cpu.xreg26); - ret.b = uint(cpu.xreg27); - ret.a = uint(cpu.xreg28); - return ret; - case 76: - ret.a = uint(cpu.pc); - ret.r = uint(cpu.xreg29); - ret.g = uint(cpu.xreg30); - ret.b = uint(cpu.xreg31); - return ret; - case 77: - ret.a = uint(cpu.memop_dst_v); - ret.b = uint(cpu.memop_src_v); - ret.g = uint(cpu.reservation_addr); - ret.r = uint(cpu.reservation_en); - return ret; - case 78: - ret.g = uint(cpu.memop_dst_p); - ret.b = uint(cpu.memop_n); - ret.r = uint(cpu.memop_src_p); - ret.a = uint(cpu.stall_count); - return ret; - case 79: - ret.g = uint(cpu.debug_do_tick); - ret.b = uint(cpu.debug_last_ins); - ret.a = uint(cpu.stall); - ret.r = uint(cpu.trap_count); - return ret; case 8: - ret.r = uint(cpu.cache.ram_l1_0_addr); - ret.g = uint(cpu.cache.ram_l1_0_val); - ret.b = uint(cpu.cache.ram_l1_16_addr); - ret.a = uint(cpu.cache.ram_l1_16_val); - return ret; - case 80: - ret.r = uint(cpu.debug_arb_0); + ret.r = uint(cpu.cache.ram_l1_last_addr); + ret.g = uint(cpu.cache.ram_l1_last_val); + ret.b = uint(cpu.csr.privilege); + ret.a = uint(cpu.uart.rbr_thr_ier_iir); return ret; case 9: - ret.r = uint(cpu.cache.ram_l1_32_addr); - ret.g = uint(cpu.cache.ram_l1_32_val); - ret.b = uint(cpu.cache.ram_l1_48_addr); - ret.a = uint(cpu.cache.ram_l1_48_val); + ret.a = uint(cpu.uart.input_tag); + ret.b = uint(cpu.uart.interrupting); + ret.r = uint(cpu.uart.lcr_mcr_lsr_scr); + ret.g = uint(cpu.uart.thre_ip); return ret; } @@ -1556,180 +864,84 @@ uint4 encode(uint2 pos) { } uint tex_get_csr(uint addr) { - uint lin = (addr >> 2) + 324; + uint lin = (addr >> 2) + 44; uint idx = addr & 0x3; - return idx_uint4(STATE_TEX[uint2(lin % 128, lin / 128)], idx); + return idx_uint4(STATE_TEX(uint2(lin % 64, lin / 64)), idx); } - -#define RAM_ADDR(lin) uint2(lin % 2048, 128 + (lin / 2048)) -#define RAM_MAX (2048 * (2048 - 128) * 4 * 4) - - -// Memory operations (should be in mem.h but cyclic dependencies...) - -// Basic bloom filter to slightly optimize memory caching -#ifdef PASS_TICK -static uint mem_cache_bloom = 0; -#else -static uint mem_cache_bloom = 0xffffffff; #endif -[noinline] // I'm pretty sure this does nothing, but see it as a prayer to the compiler gods -uint mem_get_cached_or_tex(uint addr) { - // query L1 cache - if ((addr & mem_cache_bloom) != addr) { /* not cached */ } - else { - [forcecase] - switch (RAM_L1_TAG(addr)) { -case 0: - if (cpu.cache.ram_l1_0_addr == addr) { return cpu.cache.ram_l1_0_val; } -else if (cpu.cache.ram_l1_16_addr == addr) { return cpu.cache.ram_l1_16_val; } -else if (cpu.cache.ram_l1_32_addr == addr) { return cpu.cache.ram_l1_32_val; } -else if (cpu.cache.ram_l1_48_addr == addr) { return cpu.cache.ram_l1_48_val; } -else if (cpu.cache.ram_l1_64_addr == addr) { return cpu.cache.ram_l1_64_val; } -break; -case 1: - if (cpu.cache.ram_l1_1_addr == addr) { return cpu.cache.ram_l1_1_val; } -else if (cpu.cache.ram_l1_17_addr == addr) { return cpu.cache.ram_l1_17_val; } -else if (cpu.cache.ram_l1_33_addr == addr) { return cpu.cache.ram_l1_33_val; } -else if (cpu.cache.ram_l1_49_addr == addr) { return cpu.cache.ram_l1_49_val; } -else if (cpu.cache.ram_l1_65_addr == addr) { return cpu.cache.ram_l1_65_val; } -break; -case 2: - if (cpu.cache.ram_l1_2_addr == addr) { return cpu.cache.ram_l1_2_val; } -else if (cpu.cache.ram_l1_18_addr == addr) { return cpu.cache.ram_l1_18_val; } -else if (cpu.cache.ram_l1_34_addr == addr) { return cpu.cache.ram_l1_34_val; } -else if (cpu.cache.ram_l1_50_addr == addr) { return cpu.cache.ram_l1_50_val; } -else if (cpu.cache.ram_l1_66_addr == addr) { return cpu.cache.ram_l1_66_val; } -break; -case 3: - if (cpu.cache.ram_l1_3_addr == addr) { return cpu.cache.ram_l1_3_val; } -else if (cpu.cache.ram_l1_19_addr == addr) { return cpu.cache.ram_l1_19_val; } -else if (cpu.cache.ram_l1_35_addr == addr) { return cpu.cache.ram_l1_35_val; } -else if (cpu.cache.ram_l1_51_addr == addr) { return cpu.cache.ram_l1_51_val; } -else if (cpu.cache.ram_l1_67_addr == addr) { return cpu.cache.ram_l1_67_val; } -break; -case 4: - if (cpu.cache.ram_l1_4_addr == addr) { return cpu.cache.ram_l1_4_val; } -else if (cpu.cache.ram_l1_20_addr == addr) { return cpu.cache.ram_l1_20_val; } -else if (cpu.cache.ram_l1_36_addr == addr) { return cpu.cache.ram_l1_36_val; } -else if (cpu.cache.ram_l1_52_addr == addr) { return cpu.cache.ram_l1_52_val; } -else if (cpu.cache.ram_l1_68_addr == addr) { return cpu.cache.ram_l1_68_val; } -break; -case 5: - if (cpu.cache.ram_l1_5_addr == addr) { return cpu.cache.ram_l1_5_val; } -else if (cpu.cache.ram_l1_21_addr == addr) { return cpu.cache.ram_l1_21_val; } -else if (cpu.cache.ram_l1_37_addr == addr) { return cpu.cache.ram_l1_37_val; } -else if (cpu.cache.ram_l1_53_addr == addr) { return cpu.cache.ram_l1_53_val; } -else if (cpu.cache.ram_l1_69_addr == addr) { return cpu.cache.ram_l1_69_val; } -break; -case 6: - if (cpu.cache.ram_l1_6_addr == addr) { return cpu.cache.ram_l1_6_val; } -else if (cpu.cache.ram_l1_22_addr == addr) { return cpu.cache.ram_l1_22_val; } -else if (cpu.cache.ram_l1_38_addr == addr) { return cpu.cache.ram_l1_38_val; } -else if (cpu.cache.ram_l1_54_addr == addr) { return cpu.cache.ram_l1_54_val; } -else if (cpu.cache.ram_l1_70_addr == addr) { return cpu.cache.ram_l1_70_val; } -break; -case 7: - if (cpu.cache.ram_l1_7_addr == addr) { return cpu.cache.ram_l1_7_val; } -else if (cpu.cache.ram_l1_23_addr == addr) { return cpu.cache.ram_l1_23_val; } -else if (cpu.cache.ram_l1_39_addr == addr) { return cpu.cache.ram_l1_39_val; } -else if (cpu.cache.ram_l1_55_addr == addr) { return cpu.cache.ram_l1_55_val; } -else if (cpu.cache.ram_l1_71_addr == addr) { return cpu.cache.ram_l1_71_val; } -break; -case 8: - if (cpu.cache.ram_l1_8_addr == addr) { return cpu.cache.ram_l1_8_val; } -else if (cpu.cache.ram_l1_24_addr == addr) { return cpu.cache.ram_l1_24_val; } -else if (cpu.cache.ram_l1_40_addr == addr) { return cpu.cache.ram_l1_40_val; } -else if (cpu.cache.ram_l1_56_addr == addr) { return cpu.cache.ram_l1_56_val; } -else if (cpu.cache.ram_l1_72_addr == addr) { return cpu.cache.ram_l1_72_val; } -break; -case 9: - if (cpu.cache.ram_l1_9_addr == addr) { return cpu.cache.ram_l1_9_val; } -else if (cpu.cache.ram_l1_25_addr == addr) { return cpu.cache.ram_l1_25_val; } -else if (cpu.cache.ram_l1_41_addr == addr) { return cpu.cache.ram_l1_41_val; } -else if (cpu.cache.ram_l1_57_addr == addr) { return cpu.cache.ram_l1_57_val; } -else if (cpu.cache.ram_l1_73_addr == addr) { return cpu.cache.ram_l1_73_val; } -break; -case 10: - if (cpu.cache.ram_l1_10_addr == addr) { return cpu.cache.ram_l1_10_val; } -else if (cpu.cache.ram_l1_26_addr == addr) { return cpu.cache.ram_l1_26_val; } -else if (cpu.cache.ram_l1_42_addr == addr) { return cpu.cache.ram_l1_42_val; } -else if (cpu.cache.ram_l1_58_addr == addr) { return cpu.cache.ram_l1_58_val; } -else if (cpu.cache.ram_l1_74_addr == addr) { return cpu.cache.ram_l1_74_val; } -break; -case 11: - if (cpu.cache.ram_l1_11_addr == addr) { return cpu.cache.ram_l1_11_val; } -else if (cpu.cache.ram_l1_27_addr == addr) { return cpu.cache.ram_l1_27_val; } -else if (cpu.cache.ram_l1_43_addr == addr) { return cpu.cache.ram_l1_43_val; } -else if (cpu.cache.ram_l1_59_addr == addr) { return cpu.cache.ram_l1_59_val; } -else if (cpu.cache.ram_l1_75_addr == addr) { return cpu.cache.ram_l1_75_val; } -break; -case 12: - if (cpu.cache.ram_l1_12_addr == addr) { return cpu.cache.ram_l1_12_val; } -else if (cpu.cache.ram_l1_28_addr == addr) { return cpu.cache.ram_l1_28_val; } -else if (cpu.cache.ram_l1_44_addr == addr) { return cpu.cache.ram_l1_44_val; } -else if (cpu.cache.ram_l1_60_addr == addr) { return cpu.cache.ram_l1_60_val; } -else if (cpu.cache.ram_l1_76_addr == addr) { return cpu.cache.ram_l1_76_val; } -break; -case 13: - if (cpu.cache.ram_l1_13_addr == addr) { return cpu.cache.ram_l1_13_val; } -else if (cpu.cache.ram_l1_29_addr == addr) { return cpu.cache.ram_l1_29_val; } -else if (cpu.cache.ram_l1_45_addr == addr) { return cpu.cache.ram_l1_45_val; } -else if (cpu.cache.ram_l1_61_addr == addr) { return cpu.cache.ram_l1_61_val; } -else if (cpu.cache.ram_l1_77_addr == addr) { return cpu.cache.ram_l1_77_val; } -break; -case 14: - if (cpu.cache.ram_l1_14_addr == addr) { return cpu.cache.ram_l1_14_val; } -else if (cpu.cache.ram_l1_30_addr == addr) { return cpu.cache.ram_l1_30_val; } -else if (cpu.cache.ram_l1_46_addr == addr) { return cpu.cache.ram_l1_46_val; } -else if (cpu.cache.ram_l1_62_addr == addr) { return cpu.cache.ram_l1_62_val; } -else if (cpu.cache.ram_l1_78_addr == addr) { return cpu.cache.ram_l1_78_val; } -break; -case 15: - if (cpu.cache.ram_l1_15_addr == addr) { return cpu.cache.ram_l1_15_val; } -else if (cpu.cache.ram_l1_31_addr == addr) { return cpu.cache.ram_l1_31_val; } -else if (cpu.cache.ram_l1_47_addr == addr) { return cpu.cache.ram_l1_47_val; } -else if (cpu.cache.ram_l1_63_addr == addr) { return cpu.cache.ram_l1_63_val; } -else if (cpu.cache.ram_l1_79_addr == addr) { return cpu.cache.ram_l1_79_val; } -break; - - } - - if (cpu.cache.ram_l1_last_addr == addr) { - return cpu.cache.ram_l1_last_val; - } +uint mem_get_cached_or_tex_from_state_cache(uint addr) { + // array-style L1 (direct texture access) + for (uint i = 0; i < 2; i++) { + uint arr_idx = RAM_L1_ARRAY_IDX(addr) + i * 512; + uint lin = 1068 + arr_idx; + uint4 cur = STATE_TEX_HART(uint2(lin % 64, lin / 64), 0); + if (cur.x == addr) return cur.y; + else if (cur.z == addr) return cur.w; } + // query RAM texture uint idx = (addr >> 2) & 0x3; addr >>= 4; - - uint4 raw = STATE_TEX[RAM_ADDR(addr)]; + uint4 raw = STATE_TEX_HART(RAM_ADDR(addr), 0); return idx_uint4(raw, idx); } - #ifdef PASS_COMMIT +uint mem_get_cached_or_tex_from_state_cache_or_mtd(uint addr) { + if (addr & 0x80000000) { + return mem_get_cached_or_tex_from_state_cache(addr & 0x7fffffff); + } else if (addr & 0x40000000) { + // query MTD/ROM + uint mtd_addr = addr - 0x40000000; + uint mtd_idx = (mtd_addr >> 2) & 0x3; + mtd_addr = mtd_addr >> 4; + uint2 mtd_lin = uint2(mtd_addr % m_dim.x, mtd_addr / m_dim.x); + mtd_lin.y = m_dim.y - mtd_lin.y - 1; + //[branch] if (mtd_lin.y >= m_dim.y) return 0; + float4 full; + [branch] + switch (mtd_idx) { + case 0: + full = _Data_MTD_R[mtd_lin]; + break; + case 1: + full = _Data_MTD_G[mtd_lin]; + break; + case 2: + full = _Data_MTD_B[mtd_lin]; + break; + case 3: + full = _Data_MTD_A[mtd_lin]; + break; + } + return unpack_raw_float4(full); + } + return 0; +} + uint4 commit(uint2 pos) { - if (pos.y < 128 && pos.x >= 128) { + if (pos.y < 64 && pos.x >= 64) { return (uint4)0; } // fallback is passthrough - uint4 ret = STATE_TEX[pos]; + uint4 ret = STATE_TEX_HART(pos, 0); - uint pos_id = pos.x | (pos.y << 16); + uint pos_id = pos.x | ((pos.y) << 16); // increment commits - if (!_Init && pos_id == 68) { + if (!_Init && pos_id == 28) { ++ret.b; } - // clear stall - if (pos_id == 68) { - [flatten] + // clear stalls + if (pos_id == 28) { switch (ret.r) { - case STALL_MEM_CACHE_L2: + case STALL_CSR_CACHE: + ret.r = 0; + break; + case STALL_MEM_CACHE_L1: ret.r = 0; break; case STALL_FENCE: @@ -1738,14 +950,17 @@ uint4 commit(uint2 pos) { case STALL_MEMOP_COPY: // will be handled now, so we can unset ret.r = 0; break; + case STALL_UART: + ret.r = 0; + break; } } - uint s_lin = pos.x + pos.y * 128; + uint s_lin = pos.x + pos.y * 64; // CSR area - if (s_lin >= 324 && s_lin < 1348) { - uint addr = s_lin - 324; + if (s_lin >= 44 && s_lin < 1068) { + uint addr = s_lin - 44; addr <<= 2; if (cpu.cache.csr_cache_0_addr == addr + 0) { ret.x = cpu.cache.csr_cache_0_val; } else if (cpu.cache.csr_cache_0_addr == addr + 1) { ret.y = cpu.cache.csr_cache_0_val; } @@ -1815,17 +1030,17 @@ uint4 commit(uint2 pos) { } // RAM - if (pos.y >= 128) { - uint2 pos_ram = uint2(pos.x, pos.y - 128); + if (pos.y >= 64) { + uint2 pos_ram = uint2(pos.x, pos.y - 64); uint lin = pos_ram.x + pos_ram.y * 2048; if (_Init) { // init main memory from texture uint2 ram_dim; _Data_RAM_A.GetDimensions(ram_dim.x, ram_dim.y); - - // TODO: something feels off here... off by one, you might say... - uint2 pos2 = uint2(lin % ram_dim.x, lin / ram_dim.x); + uint2 pos2 = uint2(pos.x, pos.y - 64); + // something feels off here... off by one, you might say... + // ...but this way it actually works pos2.y = ram_dim.y - pos2.y - 1; if (pos2.y >= ram_dim.y) { @@ -1854,352 +1069,27 @@ uint4 commit(uint2 pos) { if (lin_word >= cpu.memop_dst_p && lin_word < (cpu.memop_dst_p + cpu.memop_n)) { - uint offset = cpu.memop_dst_p - lin_word; + uint offset = lin_word - cpu.memop_dst_p; uint src = cpu.memop_src_p + offset; - uint transfer = mem_get_cached_or_tex(src); - switch (icp) { - case 0: - ret.r = transfer; - break; - case 1: - ret.g = transfer; - break; - case 2: - ret.b = transfer; - break; - case 3: - ret.a = transfer; - break; - } + uint transfer = mem_get_cached_or_tex_from_state_cache_or_mtd(src); + set_idx_uint4(ret, transfer, icp); + } + } + } else { + // write back L1 cache + [loop] + for (uint offset = 0; offset < 4; offset++) { + uint addr_off = lin + (offset << 2); + for (uint slice = 0; slice < 2; slice++) { + uint cache_idx = RAM_L1_ARRAY_IDX(addr_off) + slice * 512; + uint lin = 1068 + cache_idx; + uint4 cur = STATE_TEX_HART(uint2(lin % 64, lin / 64), 0); + if (cur.x == addr_off) { set_idx_uint4(ret, cur.y, offset); } + else if (cur.z == addr_off) { set_idx_uint4(ret, cur.w, offset); } } } - } - else - { - // write back L1 cache - if (cpu.cache.ram_l1_0_addr == lin) { ret.r = cpu.cache.ram_l1_0_val; } - else if (cpu.cache.ram_l1_0_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_0_val; } - else if (cpu.cache.ram_l1_0_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_0_val; } - else if (cpu.cache.ram_l1_0_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_0_val; } - if (cpu.cache.ram_l1_16_addr == lin) { ret.r = cpu.cache.ram_l1_16_val; } - else if (cpu.cache.ram_l1_16_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_16_val; } - else if (cpu.cache.ram_l1_16_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_16_val; } - else if (cpu.cache.ram_l1_16_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_16_val; } - if (cpu.cache.ram_l1_32_addr == lin) { ret.r = cpu.cache.ram_l1_32_val; } - else if (cpu.cache.ram_l1_32_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_32_val; } - else if (cpu.cache.ram_l1_32_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_32_val; } - else if (cpu.cache.ram_l1_32_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_32_val; } - if (cpu.cache.ram_l1_48_addr == lin) { ret.r = cpu.cache.ram_l1_48_val; } - else if (cpu.cache.ram_l1_48_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_48_val; } - else if (cpu.cache.ram_l1_48_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_48_val; } - else if (cpu.cache.ram_l1_48_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_48_val; } - if (cpu.cache.ram_l1_64_addr == lin) { ret.r = cpu.cache.ram_l1_64_val; } - else if (cpu.cache.ram_l1_64_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_64_val; } - else if (cpu.cache.ram_l1_64_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_64_val; } - else if (cpu.cache.ram_l1_64_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_64_val; } - if (cpu.cache.ram_l1_1_addr == lin) { ret.r = cpu.cache.ram_l1_1_val; } - else if (cpu.cache.ram_l1_1_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_1_val; } - else if (cpu.cache.ram_l1_1_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_1_val; } - else if (cpu.cache.ram_l1_1_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_1_val; } - if (cpu.cache.ram_l1_17_addr == lin) { ret.r = cpu.cache.ram_l1_17_val; } - else if (cpu.cache.ram_l1_17_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_17_val; } - else if (cpu.cache.ram_l1_17_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_17_val; } - else if (cpu.cache.ram_l1_17_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_17_val; } - if (cpu.cache.ram_l1_33_addr == lin) { ret.r = cpu.cache.ram_l1_33_val; } - else if (cpu.cache.ram_l1_33_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_33_val; } - else if (cpu.cache.ram_l1_33_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_33_val; } - else if (cpu.cache.ram_l1_33_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_33_val; } - if (cpu.cache.ram_l1_49_addr == lin) { ret.r = cpu.cache.ram_l1_49_val; } - else if (cpu.cache.ram_l1_49_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_49_val; } - else if (cpu.cache.ram_l1_49_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_49_val; } - else if (cpu.cache.ram_l1_49_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_49_val; } - if (cpu.cache.ram_l1_65_addr == lin) { ret.r = cpu.cache.ram_l1_65_val; } - else if (cpu.cache.ram_l1_65_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_65_val; } - else if (cpu.cache.ram_l1_65_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_65_val; } - else if (cpu.cache.ram_l1_65_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_65_val; } - if (cpu.cache.ram_l1_2_addr == lin) { ret.r = cpu.cache.ram_l1_2_val; } - else if (cpu.cache.ram_l1_2_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_2_val; } - else if (cpu.cache.ram_l1_2_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_2_val; } - else if (cpu.cache.ram_l1_2_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_2_val; } - if (cpu.cache.ram_l1_18_addr == lin) { ret.r = cpu.cache.ram_l1_18_val; } - else if (cpu.cache.ram_l1_18_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_18_val; } - else if (cpu.cache.ram_l1_18_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_18_val; } - else if (cpu.cache.ram_l1_18_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_18_val; } - if (cpu.cache.ram_l1_34_addr == lin) { ret.r = cpu.cache.ram_l1_34_val; } - else if (cpu.cache.ram_l1_34_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_34_val; } - else if (cpu.cache.ram_l1_34_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_34_val; } - else if (cpu.cache.ram_l1_34_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_34_val; } - if (cpu.cache.ram_l1_50_addr == lin) { ret.r = cpu.cache.ram_l1_50_val; } - else if (cpu.cache.ram_l1_50_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_50_val; } - else if (cpu.cache.ram_l1_50_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_50_val; } - else if (cpu.cache.ram_l1_50_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_50_val; } - if (cpu.cache.ram_l1_66_addr == lin) { ret.r = cpu.cache.ram_l1_66_val; } - else if (cpu.cache.ram_l1_66_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_66_val; } - else if (cpu.cache.ram_l1_66_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_66_val; } - else if (cpu.cache.ram_l1_66_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_66_val; } - if (cpu.cache.ram_l1_3_addr == lin) { ret.r = cpu.cache.ram_l1_3_val; } - else if (cpu.cache.ram_l1_3_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_3_val; } - else if (cpu.cache.ram_l1_3_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_3_val; } - else if (cpu.cache.ram_l1_3_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_3_val; } - if (cpu.cache.ram_l1_19_addr == lin) { ret.r = cpu.cache.ram_l1_19_val; } - else if (cpu.cache.ram_l1_19_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_19_val; } - else if (cpu.cache.ram_l1_19_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_19_val; } - else if (cpu.cache.ram_l1_19_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_19_val; } - if (cpu.cache.ram_l1_35_addr == lin) { ret.r = cpu.cache.ram_l1_35_val; } - else if (cpu.cache.ram_l1_35_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_35_val; } - else if (cpu.cache.ram_l1_35_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_35_val; } - else if (cpu.cache.ram_l1_35_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_35_val; } - if (cpu.cache.ram_l1_51_addr == lin) { ret.r = cpu.cache.ram_l1_51_val; } - else if (cpu.cache.ram_l1_51_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_51_val; } - else if (cpu.cache.ram_l1_51_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_51_val; } - else if (cpu.cache.ram_l1_51_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_51_val; } - if (cpu.cache.ram_l1_67_addr == lin) { ret.r = cpu.cache.ram_l1_67_val; } - else if (cpu.cache.ram_l1_67_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_67_val; } - else if (cpu.cache.ram_l1_67_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_67_val; } - else if (cpu.cache.ram_l1_67_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_67_val; } - if (cpu.cache.ram_l1_4_addr == lin) { ret.r = cpu.cache.ram_l1_4_val; } - else if (cpu.cache.ram_l1_4_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_4_val; } - else if (cpu.cache.ram_l1_4_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_4_val; } - else if (cpu.cache.ram_l1_4_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_4_val; } - if (cpu.cache.ram_l1_20_addr == lin) { ret.r = cpu.cache.ram_l1_20_val; } - else if (cpu.cache.ram_l1_20_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_20_val; } - else if (cpu.cache.ram_l1_20_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_20_val; } - else if (cpu.cache.ram_l1_20_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_20_val; } - if (cpu.cache.ram_l1_36_addr == lin) { ret.r = cpu.cache.ram_l1_36_val; } - else if (cpu.cache.ram_l1_36_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_36_val; } - else if (cpu.cache.ram_l1_36_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_36_val; } - else if (cpu.cache.ram_l1_36_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_36_val; } - if (cpu.cache.ram_l1_52_addr == lin) { ret.r = cpu.cache.ram_l1_52_val; } - else if (cpu.cache.ram_l1_52_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_52_val; } - else if (cpu.cache.ram_l1_52_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_52_val; } - else if (cpu.cache.ram_l1_52_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_52_val; } - if (cpu.cache.ram_l1_68_addr == lin) { ret.r = cpu.cache.ram_l1_68_val; } - else if (cpu.cache.ram_l1_68_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_68_val; } - else if (cpu.cache.ram_l1_68_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_68_val; } - else if (cpu.cache.ram_l1_68_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_68_val; } - if (cpu.cache.ram_l1_5_addr == lin) { ret.r = cpu.cache.ram_l1_5_val; } - else if (cpu.cache.ram_l1_5_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_5_val; } - else if (cpu.cache.ram_l1_5_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_5_val; } - else if (cpu.cache.ram_l1_5_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_5_val; } - if (cpu.cache.ram_l1_21_addr == lin) { ret.r = cpu.cache.ram_l1_21_val; } - else if (cpu.cache.ram_l1_21_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_21_val; } - else if (cpu.cache.ram_l1_21_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_21_val; } - else if (cpu.cache.ram_l1_21_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_21_val; } - if (cpu.cache.ram_l1_37_addr == lin) { ret.r = cpu.cache.ram_l1_37_val; } - else if (cpu.cache.ram_l1_37_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_37_val; } - else if (cpu.cache.ram_l1_37_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_37_val; } - else if (cpu.cache.ram_l1_37_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_37_val; } - if (cpu.cache.ram_l1_53_addr == lin) { ret.r = cpu.cache.ram_l1_53_val; } - else if (cpu.cache.ram_l1_53_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_53_val; } - else if (cpu.cache.ram_l1_53_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_53_val; } - else if (cpu.cache.ram_l1_53_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_53_val; } - if (cpu.cache.ram_l1_69_addr == lin) { ret.r = cpu.cache.ram_l1_69_val; } - else if (cpu.cache.ram_l1_69_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_69_val; } - else if (cpu.cache.ram_l1_69_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_69_val; } - else if (cpu.cache.ram_l1_69_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_69_val; } - if (cpu.cache.ram_l1_6_addr == lin) { ret.r = cpu.cache.ram_l1_6_val; } - else if (cpu.cache.ram_l1_6_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_6_val; } - else if (cpu.cache.ram_l1_6_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_6_val; } - else if (cpu.cache.ram_l1_6_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_6_val; } - if (cpu.cache.ram_l1_22_addr == lin) { ret.r = cpu.cache.ram_l1_22_val; } - else if (cpu.cache.ram_l1_22_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_22_val; } - else if (cpu.cache.ram_l1_22_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_22_val; } - else if (cpu.cache.ram_l1_22_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_22_val; } - if (cpu.cache.ram_l1_38_addr == lin) { ret.r = cpu.cache.ram_l1_38_val; } - else if (cpu.cache.ram_l1_38_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_38_val; } - else if (cpu.cache.ram_l1_38_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_38_val; } - else if (cpu.cache.ram_l1_38_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_38_val; } - if (cpu.cache.ram_l1_54_addr == lin) { ret.r = cpu.cache.ram_l1_54_val; } - else if (cpu.cache.ram_l1_54_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_54_val; } - else if (cpu.cache.ram_l1_54_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_54_val; } - else if (cpu.cache.ram_l1_54_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_54_val; } - if (cpu.cache.ram_l1_70_addr == lin) { ret.r = cpu.cache.ram_l1_70_val; } - else if (cpu.cache.ram_l1_70_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_70_val; } - else if (cpu.cache.ram_l1_70_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_70_val; } - else if (cpu.cache.ram_l1_70_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_70_val; } - if (cpu.cache.ram_l1_7_addr == lin) { ret.r = cpu.cache.ram_l1_7_val; } - else if (cpu.cache.ram_l1_7_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_7_val; } - else if (cpu.cache.ram_l1_7_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_7_val; } - else if (cpu.cache.ram_l1_7_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_7_val; } - if (cpu.cache.ram_l1_23_addr == lin) { ret.r = cpu.cache.ram_l1_23_val; } - else if (cpu.cache.ram_l1_23_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_23_val; } - else if (cpu.cache.ram_l1_23_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_23_val; } - else if (cpu.cache.ram_l1_23_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_23_val; } - if (cpu.cache.ram_l1_39_addr == lin) { ret.r = cpu.cache.ram_l1_39_val; } - else if (cpu.cache.ram_l1_39_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_39_val; } - else if (cpu.cache.ram_l1_39_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_39_val; } - else if (cpu.cache.ram_l1_39_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_39_val; } - if (cpu.cache.ram_l1_55_addr == lin) { ret.r = cpu.cache.ram_l1_55_val; } - else if (cpu.cache.ram_l1_55_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_55_val; } - else if (cpu.cache.ram_l1_55_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_55_val; } - else if (cpu.cache.ram_l1_55_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_55_val; } - if (cpu.cache.ram_l1_71_addr == lin) { ret.r = cpu.cache.ram_l1_71_val; } - else if (cpu.cache.ram_l1_71_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_71_val; } - else if (cpu.cache.ram_l1_71_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_71_val; } - else if (cpu.cache.ram_l1_71_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_71_val; } - if (cpu.cache.ram_l1_8_addr == lin) { ret.r = cpu.cache.ram_l1_8_val; } - else if (cpu.cache.ram_l1_8_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_8_val; } - else if (cpu.cache.ram_l1_8_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_8_val; } - else if (cpu.cache.ram_l1_8_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_8_val; } - if (cpu.cache.ram_l1_24_addr == lin) { ret.r = cpu.cache.ram_l1_24_val; } - else if (cpu.cache.ram_l1_24_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_24_val; } - else if (cpu.cache.ram_l1_24_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_24_val; } - else if (cpu.cache.ram_l1_24_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_24_val; } - if (cpu.cache.ram_l1_40_addr == lin) { ret.r = cpu.cache.ram_l1_40_val; } - else if (cpu.cache.ram_l1_40_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_40_val; } - else if (cpu.cache.ram_l1_40_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_40_val; } - else if (cpu.cache.ram_l1_40_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_40_val; } - if (cpu.cache.ram_l1_56_addr == lin) { ret.r = cpu.cache.ram_l1_56_val; } - else if (cpu.cache.ram_l1_56_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_56_val; } - else if (cpu.cache.ram_l1_56_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_56_val; } - else if (cpu.cache.ram_l1_56_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_56_val; } - if (cpu.cache.ram_l1_72_addr == lin) { ret.r = cpu.cache.ram_l1_72_val; } - else if (cpu.cache.ram_l1_72_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_72_val; } - else if (cpu.cache.ram_l1_72_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_72_val; } - else if (cpu.cache.ram_l1_72_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_72_val; } - if (cpu.cache.ram_l1_9_addr == lin) { ret.r = cpu.cache.ram_l1_9_val; } - else if (cpu.cache.ram_l1_9_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_9_val; } - else if (cpu.cache.ram_l1_9_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_9_val; } - else if (cpu.cache.ram_l1_9_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_9_val; } - if (cpu.cache.ram_l1_25_addr == lin) { ret.r = cpu.cache.ram_l1_25_val; } - else if (cpu.cache.ram_l1_25_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_25_val; } - else if (cpu.cache.ram_l1_25_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_25_val; } - else if (cpu.cache.ram_l1_25_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_25_val; } - if (cpu.cache.ram_l1_41_addr == lin) { ret.r = cpu.cache.ram_l1_41_val; } - else if (cpu.cache.ram_l1_41_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_41_val; } - else if (cpu.cache.ram_l1_41_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_41_val; } - else if (cpu.cache.ram_l1_41_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_41_val; } - if (cpu.cache.ram_l1_57_addr == lin) { ret.r = cpu.cache.ram_l1_57_val; } - else if (cpu.cache.ram_l1_57_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_57_val; } - else if (cpu.cache.ram_l1_57_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_57_val; } - else if (cpu.cache.ram_l1_57_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_57_val; } - if (cpu.cache.ram_l1_73_addr == lin) { ret.r = cpu.cache.ram_l1_73_val; } - else if (cpu.cache.ram_l1_73_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_73_val; } - else if (cpu.cache.ram_l1_73_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_73_val; } - else if (cpu.cache.ram_l1_73_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_73_val; } - if (cpu.cache.ram_l1_10_addr == lin) { ret.r = cpu.cache.ram_l1_10_val; } - else if (cpu.cache.ram_l1_10_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_10_val; } - else if (cpu.cache.ram_l1_10_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_10_val; } - else if (cpu.cache.ram_l1_10_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_10_val; } - if (cpu.cache.ram_l1_26_addr == lin) { ret.r = cpu.cache.ram_l1_26_val; } - else if (cpu.cache.ram_l1_26_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_26_val; } - else if (cpu.cache.ram_l1_26_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_26_val; } - else if (cpu.cache.ram_l1_26_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_26_val; } - if (cpu.cache.ram_l1_42_addr == lin) { ret.r = cpu.cache.ram_l1_42_val; } - else if (cpu.cache.ram_l1_42_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_42_val; } - else if (cpu.cache.ram_l1_42_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_42_val; } - else if (cpu.cache.ram_l1_42_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_42_val; } - if (cpu.cache.ram_l1_58_addr == lin) { ret.r = cpu.cache.ram_l1_58_val; } - else if (cpu.cache.ram_l1_58_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_58_val; } - else if (cpu.cache.ram_l1_58_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_58_val; } - else if (cpu.cache.ram_l1_58_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_58_val; } - if (cpu.cache.ram_l1_74_addr == lin) { ret.r = cpu.cache.ram_l1_74_val; } - else if (cpu.cache.ram_l1_74_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_74_val; } - else if (cpu.cache.ram_l1_74_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_74_val; } - else if (cpu.cache.ram_l1_74_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_74_val; } - if (cpu.cache.ram_l1_11_addr == lin) { ret.r = cpu.cache.ram_l1_11_val; } - else if (cpu.cache.ram_l1_11_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_11_val; } - else if (cpu.cache.ram_l1_11_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_11_val; } - else if (cpu.cache.ram_l1_11_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_11_val; } - if (cpu.cache.ram_l1_27_addr == lin) { ret.r = cpu.cache.ram_l1_27_val; } - else if (cpu.cache.ram_l1_27_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_27_val; } - else if (cpu.cache.ram_l1_27_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_27_val; } - else if (cpu.cache.ram_l1_27_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_27_val; } - if (cpu.cache.ram_l1_43_addr == lin) { ret.r = cpu.cache.ram_l1_43_val; } - else if (cpu.cache.ram_l1_43_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_43_val; } - else if (cpu.cache.ram_l1_43_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_43_val; } - else if (cpu.cache.ram_l1_43_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_43_val; } - if (cpu.cache.ram_l1_59_addr == lin) { ret.r = cpu.cache.ram_l1_59_val; } - else if (cpu.cache.ram_l1_59_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_59_val; } - else if (cpu.cache.ram_l1_59_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_59_val; } - else if (cpu.cache.ram_l1_59_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_59_val; } - if (cpu.cache.ram_l1_75_addr == lin) { ret.r = cpu.cache.ram_l1_75_val; } - else if (cpu.cache.ram_l1_75_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_75_val; } - else if (cpu.cache.ram_l1_75_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_75_val; } - else if (cpu.cache.ram_l1_75_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_75_val; } - if (cpu.cache.ram_l1_12_addr == lin) { ret.r = cpu.cache.ram_l1_12_val; } - else if (cpu.cache.ram_l1_12_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_12_val; } - else if (cpu.cache.ram_l1_12_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_12_val; } - else if (cpu.cache.ram_l1_12_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_12_val; } - if (cpu.cache.ram_l1_28_addr == lin) { ret.r = cpu.cache.ram_l1_28_val; } - else if (cpu.cache.ram_l1_28_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_28_val; } - else if (cpu.cache.ram_l1_28_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_28_val; } - else if (cpu.cache.ram_l1_28_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_28_val; } - if (cpu.cache.ram_l1_44_addr == lin) { ret.r = cpu.cache.ram_l1_44_val; } - else if (cpu.cache.ram_l1_44_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_44_val; } - else if (cpu.cache.ram_l1_44_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_44_val; } - else if (cpu.cache.ram_l1_44_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_44_val; } - if (cpu.cache.ram_l1_60_addr == lin) { ret.r = cpu.cache.ram_l1_60_val; } - else if (cpu.cache.ram_l1_60_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_60_val; } - else if (cpu.cache.ram_l1_60_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_60_val; } - else if (cpu.cache.ram_l1_60_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_60_val; } - if (cpu.cache.ram_l1_76_addr == lin) { ret.r = cpu.cache.ram_l1_76_val; } - else if (cpu.cache.ram_l1_76_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_76_val; } - else if (cpu.cache.ram_l1_76_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_76_val; } - else if (cpu.cache.ram_l1_76_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_76_val; } - if (cpu.cache.ram_l1_13_addr == lin) { ret.r = cpu.cache.ram_l1_13_val; } - else if (cpu.cache.ram_l1_13_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_13_val; } - else if (cpu.cache.ram_l1_13_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_13_val; } - else if (cpu.cache.ram_l1_13_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_13_val; } - if (cpu.cache.ram_l1_29_addr == lin) { ret.r = cpu.cache.ram_l1_29_val; } - else if (cpu.cache.ram_l1_29_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_29_val; } - else if (cpu.cache.ram_l1_29_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_29_val; } - else if (cpu.cache.ram_l1_29_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_29_val; } - if (cpu.cache.ram_l1_45_addr == lin) { ret.r = cpu.cache.ram_l1_45_val; } - else if (cpu.cache.ram_l1_45_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_45_val; } - else if (cpu.cache.ram_l1_45_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_45_val; } - else if (cpu.cache.ram_l1_45_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_45_val; } - if (cpu.cache.ram_l1_61_addr == lin) { ret.r = cpu.cache.ram_l1_61_val; } - else if (cpu.cache.ram_l1_61_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_61_val; } - else if (cpu.cache.ram_l1_61_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_61_val; } - else if (cpu.cache.ram_l1_61_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_61_val; } - if (cpu.cache.ram_l1_77_addr == lin) { ret.r = cpu.cache.ram_l1_77_val; } - else if (cpu.cache.ram_l1_77_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_77_val; } - else if (cpu.cache.ram_l1_77_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_77_val; } - else if (cpu.cache.ram_l1_77_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_77_val; } - if (cpu.cache.ram_l1_14_addr == lin) { ret.r = cpu.cache.ram_l1_14_val; } - else if (cpu.cache.ram_l1_14_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_14_val; } - else if (cpu.cache.ram_l1_14_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_14_val; } - else if (cpu.cache.ram_l1_14_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_14_val; } - if (cpu.cache.ram_l1_30_addr == lin) { ret.r = cpu.cache.ram_l1_30_val; } - else if (cpu.cache.ram_l1_30_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_30_val; } - else if (cpu.cache.ram_l1_30_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_30_val; } - else if (cpu.cache.ram_l1_30_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_30_val; } - if (cpu.cache.ram_l1_46_addr == lin) { ret.r = cpu.cache.ram_l1_46_val; } - else if (cpu.cache.ram_l1_46_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_46_val; } - else if (cpu.cache.ram_l1_46_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_46_val; } - else if (cpu.cache.ram_l1_46_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_46_val; } - if (cpu.cache.ram_l1_62_addr == lin) { ret.r = cpu.cache.ram_l1_62_val; } - else if (cpu.cache.ram_l1_62_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_62_val; } - else if (cpu.cache.ram_l1_62_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_62_val; } - else if (cpu.cache.ram_l1_62_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_62_val; } - if (cpu.cache.ram_l1_78_addr == lin) { ret.r = cpu.cache.ram_l1_78_val; } - else if (cpu.cache.ram_l1_78_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_78_val; } - else if (cpu.cache.ram_l1_78_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_78_val; } - else if (cpu.cache.ram_l1_78_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_78_val; } - if (cpu.cache.ram_l1_15_addr == lin) { ret.r = cpu.cache.ram_l1_15_val; } - else if (cpu.cache.ram_l1_15_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_15_val; } - else if (cpu.cache.ram_l1_15_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_15_val; } - else if (cpu.cache.ram_l1_15_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_15_val; } - if (cpu.cache.ram_l1_31_addr == lin) { ret.r = cpu.cache.ram_l1_31_val; } - else if (cpu.cache.ram_l1_31_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_31_val; } - else if (cpu.cache.ram_l1_31_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_31_val; } - else if (cpu.cache.ram_l1_31_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_31_val; } - if (cpu.cache.ram_l1_47_addr == lin) { ret.r = cpu.cache.ram_l1_47_val; } - else if (cpu.cache.ram_l1_47_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_47_val; } - else if (cpu.cache.ram_l1_47_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_47_val; } - else if (cpu.cache.ram_l1_47_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_47_val; } - if (cpu.cache.ram_l1_63_addr == lin) { ret.r = cpu.cache.ram_l1_63_val; } - else if (cpu.cache.ram_l1_63_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_63_val; } - else if (cpu.cache.ram_l1_63_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_63_val; } - else if (cpu.cache.ram_l1_63_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_63_val; } - if (cpu.cache.ram_l1_79_addr == lin) { ret.r = cpu.cache.ram_l1_79_val; } - else if (cpu.cache.ram_l1_79_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_79_val; } - else if (cpu.cache.ram_l1_79_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_79_val; } - else if (cpu.cache.ram_l1_79_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_79_val; } - - if (cpu.cache.ram_l1_last_addr == lin ) { ret.r = cpu.cache.ram_l1_last_val; } + if (cpu.cache.ram_l1_last_addr == lin ) { ret.r = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_last_val; } @@ -2218,87 +1108,90 @@ uint4 commit(uint2 pos) { C# layout: #region LOAD - private const int UART_BUFFER_SIZE = 64; + private const int STATE_WIDTH = 64; + private const int STATE_HEIGHT = 64; + private const int TOTAL_WIDTH = 2048; + private const int TOTAL_HEIGHT = 4096; private int[] addr_lin(int lin) { int[] ret = new int[3]; ret[2] = lin & 0x3; // c lin = lin >> 2; - ret[0] = lin % 128; // x - ret[1] = lin / 128; // y + ret[0] = lin % 64; // x + ret[1] = lin / 64; // y return ret; } - private uint load_csr__privilege() { return decodePackedData(48, 0, 2); } - private uint load_uart__rbr_thr_ier_iir() { return decodePackedData(48, 0, 3); } - private uint load_uart__lcr_mcr_lsr_scr() { return decodePackedData(49, 0, 0); } - private uint load_uart__thre_ip() { return decodePackedData(49, 0, 1); } - private uint load_uart__interrupting() { return decodePackedData(49, 0, 2); } - private uint load_uart__input_tag() { return decodePackedData(49, 0, 3); } - private uint load_clint__msip() { return decodePackedData(50, 0, 0); } - private uint load_clint__mtimecmp_lo() { return decodePackedData(50, 0, 1); } - private uint load_clint__mtimecmp_hi() { return decodePackedData(50, 0, 2); } - private uint load_clint__mtime_lo() { return decodePackedData(50, 0, 3); } - private uint load_clint__mtime_hi() { return decodePackedData(51, 0, 0); } - private uint load_uart_buffer__ptr() { return decodePackedData(51, 0, 1); } - private uint load_mmu__mode() { return decodePackedData(67, 0, 2); } - private uint load_mmu__ppn() { return decodePackedData(67, 0, 3); } - private uint load_stall() { return decodePackedData(68, 0, 0); } - private uint load_clock() { return decodePackedData(68, 0, 1); } - private uint load_commits() { return decodePackedData(68, 0, 2); } - private uint load_xreg0() { return decodePackedData(68, 0, 3); } - private uint load_xreg1() { return decodePackedData(69, 0, 0); } - private uint load_xreg2() { return decodePackedData(69, 0, 1); } - private uint load_xreg3() { return decodePackedData(69, 0, 2); } - private uint load_xreg4() { return decodePackedData(69, 0, 3); } - private uint load_xreg5() { return decodePackedData(70, 0, 0); } - private uint load_xreg6() { return decodePackedData(70, 0, 1); } - private uint load_xreg7() { return decodePackedData(70, 0, 2); } - private uint load_xreg8() { return decodePackedData(70, 0, 3); } - private uint load_xreg9() { return decodePackedData(71, 0, 0); } - private uint load_xreg10() { return decodePackedData(71, 0, 1); } - private uint load_xreg11() { return decodePackedData(71, 0, 2); } - private uint load_xreg12() { return decodePackedData(71, 0, 3); } - private uint load_xreg13() { return decodePackedData(72, 0, 0); } - private uint load_xreg14() { return decodePackedData(72, 0, 1); } - private uint load_xreg15() { return decodePackedData(72, 0, 2); } - private uint load_xreg16() { return decodePackedData(72, 0, 3); } - private uint load_xreg17() { return decodePackedData(73, 0, 0); } - private uint load_xreg18() { return decodePackedData(73, 0, 1); } - private uint load_xreg19() { return decodePackedData(73, 0, 2); } - private uint load_xreg20() { return decodePackedData(73, 0, 3); } - private uint load_xreg21() { return decodePackedData(74, 0, 0); } - private uint load_xreg22() { return decodePackedData(74, 0, 1); } - private uint load_xreg23() { return decodePackedData(74, 0, 2); } - private uint load_xreg24() { return decodePackedData(74, 0, 3); } - private uint load_xreg25() { return decodePackedData(75, 0, 0); } - private uint load_xreg26() { return decodePackedData(75, 0, 1); } - private uint load_xreg27() { return decodePackedData(75, 0, 2); } - private uint load_xreg28() { return decodePackedData(75, 0, 3); } - private uint load_xreg29() { return decodePackedData(76, 0, 0); } - private uint load_xreg30() { return decodePackedData(76, 0, 1); } - private uint load_xreg31() { return decodePackedData(76, 0, 2); } - private uint load_pc() { return decodePackedData(76, 0, 3); } - private uint load_reservation_en() { return decodePackedData(77, 0, 0); } - private uint load_reservation_addr() { return decodePackedData(77, 0, 1); } - private uint load_memop_src_v() { return decodePackedData(77, 0, 2); } - private uint load_memop_dst_v() { return decodePackedData(77, 0, 3); } - private uint load_memop_src_p() { return decodePackedData(78, 0, 0); } - private uint load_memop_dst_p() { return decodePackedData(78, 0, 1); } - private uint load_memop_n() { return decodePackedData(78, 0, 2); } - private uint load_stall_count() { return decodePackedData(78, 0, 3); } - private uint load_trap_count() { return decodePackedData(79, 0, 0); } - private uint load_debug_do_tick() { return decodePackedData(79, 0, 1); } - private uint load_debug_last_ins() { return decodePackedData(79, 0, 2); } - private uint load_debug_last_stall() { return decodePackedData(79, 0, 3); } - private uint load_debug_arb_0() { return decodePackedData(80, 0, 0); } + private uint load_csr__privilege() { return decodePackedData(8, 0, 2); } + private uint load_uart__rbr_thr_ier_iir() { return decodePackedData(8, 0, 3); } + private uint load_uart__lcr_mcr_lsr_scr() { return decodePackedData(9, 0, 0); } + private uint load_uart__thre_ip() { return decodePackedData(9, 0, 1); } + private uint load_uart__interrupting() { return decodePackedData(9, 0, 2); } + private uint load_uart__input_tag() { return decodePackedData(9, 0, 3); } + private uint load_clint__msip() { return decodePackedData(10, 0, 0); } + private uint load_clint__mtimecmp_lo() { return decodePackedData(10, 0, 1); } + private uint load_clint__mtimecmp_hi() { return decodePackedData(10, 0, 2); } + private uint load_clint__mtime_lo() { return decodePackedData(10, 0, 3); } + private uint load_clint__mtime_hi() { return decodePackedData(11, 0, 0); } + private uint load_mmu__mode() { return decodePackedData(11, 0, 1); } + private uint load_mmu__ppn() { return decodePackedData(11, 0, 2); } + private uint load_stall() { return decodePackedData(28, 0, 0); } + private uint load_clock() { return decodePackedData(28, 0, 1); } + private uint load_commits() { return decodePackedData(28, 0, 2); } + private uint load_xreg0() { return decodePackedData(28, 0, 3); } + private uint load_xreg1() { return decodePackedData(29, 0, 0); } + private uint load_xreg2() { return decodePackedData(29, 0, 1); } + private uint load_xreg3() { return decodePackedData(29, 0, 2); } + private uint load_xreg4() { return decodePackedData(29, 0, 3); } + private uint load_xreg5() { return decodePackedData(30, 0, 0); } + private uint load_xreg6() { return decodePackedData(30, 0, 1); } + private uint load_xreg7() { return decodePackedData(30, 0, 2); } + private uint load_xreg8() { return decodePackedData(30, 0, 3); } + private uint load_xreg9() { return decodePackedData(31, 0, 0); } + private uint load_xreg10() { return decodePackedData(31, 0, 1); } + private uint load_xreg11() { return decodePackedData(31, 0, 2); } + private uint load_xreg12() { return decodePackedData(31, 0, 3); } + private uint load_xreg13() { return decodePackedData(32, 0, 0); } + private uint load_xreg14() { return decodePackedData(32, 0, 1); } + private uint load_xreg15() { return decodePackedData(32, 0, 2); } + private uint load_xreg16() { return decodePackedData(32, 0, 3); } + private uint load_xreg17() { return decodePackedData(33, 0, 0); } + private uint load_xreg18() { return decodePackedData(33, 0, 1); } + private uint load_xreg19() { return decodePackedData(33, 0, 2); } + private uint load_xreg20() { return decodePackedData(33, 0, 3); } + private uint load_xreg21() { return decodePackedData(34, 0, 0); } + private uint load_xreg22() { return decodePackedData(34, 0, 1); } + private uint load_xreg23() { return decodePackedData(34, 0, 2); } + private uint load_xreg24() { return decodePackedData(34, 0, 3); } + private uint load_xreg25() { return decodePackedData(35, 0, 0); } + private uint load_xreg26() { return decodePackedData(35, 0, 1); } + private uint load_xreg27() { return decodePackedData(35, 0, 2); } + private uint load_xreg28() { return decodePackedData(35, 0, 3); } + private uint load_xreg29() { return decodePackedData(36, 0, 0); } + private uint load_xreg30() { return decodePackedData(36, 0, 1); } + private uint load_xreg31() { return decodePackedData(36, 0, 2); } + private uint load_pc() { return decodePackedData(36, 0, 3); } + private uint load_reservation_en() { return decodePackedData(37, 0, 0); } + private uint load_reservation_addr() { return decodePackedData(37, 0, 1); } + private uint load_memop_src_v() { return decodePackedData(37, 0, 2); } + private uint load_memop_dst_v() { return decodePackedData(37, 0, 3); } + private uint load_memop_src_p() { return decodePackedData(38, 0, 0); } + private uint load_memop_dst_p() { return decodePackedData(38, 0, 1); } + private uint load_memop_n() { return decodePackedData(38, 0, 2); } + private uint load_stall_count() { return decodePackedData(38, 0, 3); } + private uint load_trap_count() { return decodePackedData(39, 0, 0); } + private uint load_rtc0() { return decodePackedData(39, 0, 1); } + private uint load_rtc1() { return decodePackedData(39, 0, 2); } + private uint load_start_time_ref() { return decodePackedData(39, 0, 3); } + private uint load_debug_do_tick() { return decodePackedData(40, 0, 0); } + private uint load_debug_last_ins() { return decodePackedData(40, 0, 1); } + private uint load_debug_last_stall() { return decodePackedData(40, 0, 2); } + private uint load_debug_arb_0() { return decodePackedData(40, 0, 3); } private uint load_csr(int addr) { - int lin = (addr >> 2) + 324; - return decodePackedData(lin % 128, lin / 128, addr & 0x3); + int lin = (addr >> 2) + 44; + return decodePackedData(lin % 64, lin / 64, addr & 0x3); } - private uint getUartBuffer(int idx) { - - int lin = idx + 206; - int[] acc = addr_lin(lin); - return decodePackedData(acc[0], acc[1], acc[2]); + private uint load_l1_cache(int addr) { + int lin = (addr >> 2) + 1068; + return decodePackedData(lin % 64, lin / 64, addr & 0x3); } #endregion diff --git a/_Nix/rvc/src/types.h.pp b/_Nix/rvc/src/types.h.pp index 999ce4f3..bee4f5e6 100755 --- a/_Nix/rvc/src/types.h.pp +++ b/_Nix/rvc/src/types.h.pp @@ -1,12 +1,14 @@ #ifndef TYPES_H #define TYPES_H +#define glsl_mod(x,y) (((x)-(y)*floor((x)/(y)))) + #define STALL_EXIT_CALL 1 #define STALL_CSR_CACHE 2 #define STALL_MEM_CACHE_L1 3 -#define STALL_MEM_CACHE_L2 4 +#define STALL_RESERVED 4 #define STALL_ILLEGAL_ENTRY_POINT 5 #define STALL_UART 6 #define STALL_FENCE 7 @@ -14,11 +16,6 @@ {$nn} = { + name => $nn, + type => $type, + addr => $addr, + }; + $addr++; + } + if ($name =~ m/.*\.(.*)$/) { + print "$type $1"; + } else { + print "$type $name"; + } + print "[${size}];"; +}; my $d = sub { if (0) { # enable for DEBUG @@ -54,17 +69,6 @@ typedef struct { $s->("uint", "cache.csr_cache_${i}_val", 0xdeadc7de); print "\n "; } - - for my $i (0..$ram_l1_set_max) { - for my $j (0..$ram_l1_line_max) { - my $ci = $i + $j * ($ram_l1_set_max + 1); - $s->("uint", "cache.ram_l1_${ci}_addr", 0xffffffff); - print " "; - $s->("uint", "cache.ram_l1_${ci}_val", 0xdeadc8de); - print "\n "; - } - } - $s->("uint", "cache.ram_l1_last_addr", 0xffffffff); $s->("uint", "cache.ram_l1_last_val", 0xdeadc9de); ?> @@ -91,28 +95,25 @@ typedef struct { } clint_state; typedef struct { - ("uint", "uart_buffer.ptr"); ?> + ("uint", "mmu.mode"); ?> + ("uint", "mmu.ppn"); ?> +} mmu_state; + +typedef struct { + ("uint", "uart_buffer.ptr", 0xffffffff); ?> ("uint", "uart_buffer.buf${i}"); + $s->("uint", "uart_buffer.buf${i}", 0); print "\n "; } ?> } uart_buffer; -typedef struct { - ("uint", "mmu.mode"); ?> - ("uint", "mmu.ppn"); ?> -} mmu_state; - typedef struct { ("uint", "stall"); ?> ("uint", "clock"); ?> ("uint", "commits"); ?> - ("uint", "xreg$i"); - print "\n "; - } ?> + ("uint", "xreg", 32); ?> ("uint", "pc"); ?> csr_state csr; clint_state clint; @@ -132,6 +133,11 @@ typedef struct { ("uint", "stall_count"); ?> ("uint", "trap_count"); ?> + ("uint", "rtc0"); ?> + ("uint", "rtc1"); ?> + + ("float", "start_time_ref"); ?> + ("uint", "debug_do_tick"); ?> ("uint", "debug_last_ins"); ?> ("uint", "debug_last_stall"); ?> @@ -139,13 +145,13 @@ typedef struct { ("uint", "debug_mem_val"); ?> ("uint", "debug_arb_0"); ?> - ("uint", "debug_arb_1"); ?> - ("uint", "debug_arb_2"); ?> - ("uint", "debug_arb_3"); ?> - ("uint", "debug_arb_4"); ?> - ("uint", "debug_arb_5"); ?> - ("uint", "debug_arb_6"); ?> - ("uint", "debug_arb_7"); ?> + /* ("uint", "debug_arb_1"); ?> */ + /* ("uint", "debug_arb_2"); ?> */ + /* ("uint", "debug_arb_3"); ?> */ + /* ("uint", "debug_arb_4"); ?> */ + /* ("uint", "debug_arb_5"); ?> */ + /* ("uint", "debug_arb_6"); ?> */ + /* ("uint", "debug_arb_7"); ?> */ cache_t cache; } cpu_t; @@ -172,6 +178,10 @@ typedef struct { // GLOBAL STATICS static cpu_t cpu; +#ifdef PASS_TICK +static uint4 l1_cache[]; +#endif + // TYPE HELPERS ins_ret ins_ret_noop() { ins_ret ret = (ins_ret)0; @@ -185,26 +195,7 @@ uint sign_extend(uint x, uint b) { } uint xreg(uint i) { - #define C(x) case x: return cpu.xreg##x; - if (i < 16) { - [flatten] - switch (i) { - C(0) C(1) C(2) C(3) - C(4) C(5) C(6) C(7) - C(8) C(9) C(10) C(11) - C(12) C(13) C(14) C(15) - } - } else { - [flatten] - switch (i) { - C(16) C(17) C(18) C(19) - C(20) C(21) C(22) C(23) - C(24) C(25) C(26) C(27) - C(28) C(29) C(30) C(31) - } - } - return 0xdeadc0de; - #undef C + return cpu.xreg[i]; } // ENCODE/DECODE LOGIC (state serialization into self texture) @@ -216,8 +207,8 @@ my $addr_lin = sub { my $col = $lin & 0x3; $lin = ($lin & (~0x3)) >> 2; return { - x => $lin % $width, - y => int($lin / $width), + x => $lin % $width_hart, + y => int($lin / $width_hart), c => $col, }; }; @@ -234,9 +225,25 @@ for my $prop (keys %$state) { $rev->{$aid}->{$prop} = $state->{$prop}; } +# misnomer: csr_cache here is actually CSR data area, cache is in cpu_t +my $csr_cache_start = (($addr / 4) + 3) & (~0x3); +print "// csr_cache_start = $csr_cache_start (addr=$addr)\n"; +my $l1_cache_start = $csr_cache_start + (4096/4); +my $l1_cache_end = $l1_cache_start + $ram_l1_size; +print "// l1_cache_start = $l1_cache_start (addr=$addr)\n"; +print "// l1_cache_end = $l1_cache_end (addr=$addr)\n"; + +my $max_allowed = $width_hart * $height_hart; +die "too much data! max $max_allowed vs cur $l1_cache_end\n" + if $l1_cache_end >= $max_allowed; + ?> -void decode(uint udonUartPtr) { +#define STATE_WIDTH +#define STATE_HEIGHT + +#ifdef PASS_TICK +void decode() { cpu = (cpu_t)0; ($state->{$prop}->{addr}); my $t = $state->{$prop}->{type}; + $t = "asfloat" if $t eq "float"; + if (defined($state->{$prop}->{def})) { print " cpu.$n = $t($state->{$prop}->{def});\n"; } else { - print " cpu.$n = $t(idx_uint4(STATE_TEX[uint2($a->{x}, $a->{y})], $a->{c}));\n"; + print " cpu.$n = $t(idx_uint4(STATE_TEX(uint2($a->{x}, $a->{y})), $a->{c}));\n"; } } ?> - - if (cpu.stall == STALL_UART && udonUartPtr == cpu.uart_buffer.ptr) { - cpu.stall = 0; - } } +#endif #ifdef PASS_COMMIT +#define NEEDS_DFC +#endif +#ifdef PASS_FB +#define NEEDS_DFC +#endif + +#ifdef NEEDS_DFC void decode_for_commit() { cpu = (cpu_t)0; @@ -268,42 +281,39 @@ void decode_for_commit() { my $a = $addr_lin->($state->{$prop}->{addr}); my $t = $state->{$prop}->{type}; + $t = "asfloat" if $t eq "float"; + # for committing only the L1 RAM and CSR caches are important # (not anymore?) # next if !($prop =~ m/cache\.ram/ || $prop =~ m/cache\.csr/); - print " cpu.$n = $t(idx_uint4(STATE_TEX[uint2($a->{x}, $a->{y})], $a->{c}));\n"; + print " cpu.$n = $t(idx_uint4(STATE_TEX_HART(uint2($a->{x}, $a->{y}), 0), $a->{c}));\n"; } ?> } #endif +#ifdef PASS_TICK bool pixel_has_state(uint2 pos) { - ($addr); - ?> - return pos.y < {y} ?> || (pos.y == {y} ?> && pos.x <= {x} ?>); + // CSR data area and FB are not "state", they're only touched by commit + uint lin = pos.x + * pos.y; + return lin < || (lin >= && lin < ); } - - -/* void set_debug_arb() { */ -/* */ -/* cpu.debug_arb_ = cpu.xreg ^ */ -/* cpu.xreg ^ */ -/* cpu.xreg ^ */ -/* cpu.xreg; */ -/* */ -/* } */ - uint4 encode(uint2 pos) { + // L1 cache + uint s_lin = pos.x + pos.y * ; + if (s_lin >= && s_lin < ) { + uint offset = s_lin - ; + return l1_cache[offset]; + } + // fallback is passthrough - uint4 ret = STATE_TEX[pos]; + uint4 ret = STATE_TEX(pos); + // cpu_t serialization uint pos_id = pos.x | (pos.y << 16); - + [forcecase] switch (pos_id) { {$aid}->{$prop}; my $c = $addr_lin->($p->{addr})->{c}; $c = ("r", "g", "b", "a")[$c]; - if ($prop eq "stall") { - print " ret.$c = uint(cpu.$p->{name} == STALL_CSR_CACHE ? 0 : (cpu.$p->{name} == STALL_MEM_CACHE_L1 ? 0 : cpu.$p->{name}));\n"; - } elsif ($prop eq "debug_last_stall") { - print " ret.$c = uint(cpu.stall);\n"; + my $conv = "uint"; + $conv = "asuint" if $p->{type} eq "float"; + if ($prop eq "debug_last_stall") { + print " ret.$c = $conv(cpu.stall == 0 ? cpu.debug_last_stall : cpu.stall);\n"; } else { - print " ret.$c = uint(cpu.$p->{name});\n"; + print " ret.$c = $conv(cpu.$p->{name});\n"; } } print " return ret;\n"; @@ -331,78 +341,82 @@ uint4 encode(uint2 pos) { uint tex_get_csr(uint addr) { uint lin = (addr >> 2) + ; uint idx = addr & 0x3; - return idx_uint4(STATE_TEX[uint2(lin % , lin / )], idx); + return idx_uint4(STATE_TEX(uint2(lin % , lin / )), idx); } - - - -// Memory operations (should be in mem.h but cyclic dependencies...) - -// Basic bloom filter to slightly optimize memory caching -#ifdef PASS_TICK -static uint mem_cache_bloom = 0; -#else -static uint mem_cache_bloom = 0xffffffff; #endif -[noinline] // I'm pretty sure this does nothing, but see it as a prayer to the compiler gods -uint mem_get_cached_or_tex(uint addr) { - // query L1 cache - if ((addr & mem_cache_bloom) != addr) { /* not cached */ } - else { - [forcecase] - switch (RAM_L1_TAG(addr)) { - - } - - if (cpu.cache.ram_l1_last_addr == addr) { - return cpu.cache.ram_l1_last_val; - } +uint mem_get_cached_or_tex_from_state_cache(uint addr) { + // array-style L1 (direct texture access) + for (uint i = 0; i < 2; i++) { + uint arr_idx = RAM_L1_ARRAY_IDX(addr) + i * ; + uint lin = + arr_idx; + uint4 cur = STATE_TEX_HART(uint2(lin % , lin / ), 0); + if (cur.x == addr) return cur.y; + else if (cur.z == addr) return cur.w; } + // query RAM texture uint idx = (addr >> 2) & 0x3; addr >>= 4; - - uint4 raw = STATE_TEX[RAM_ADDR(addr)]; + uint4 raw = STATE_TEX_HART(RAM_ADDR(addr), 0); return idx_uint4(raw, idx); } - #ifdef PASS_COMMIT +uint mem_get_cached_or_tex_from_state_cache_or_mtd(uint addr) { + if (addr & 0x80000000) { + return mem_get_cached_or_tex_from_state_cache(addr & 0x7fffffff); + } else if (addr & 0x40000000) { + // query MTD/ROM + uint mtd_addr = addr - 0x40000000; + uint mtd_idx = (mtd_addr >> 2) & 0x3; + mtd_addr = mtd_addr >> 4; + uint2 mtd_lin = uint2(mtd_addr % m_dim.x, mtd_addr / m_dim.x); + mtd_lin.y = m_dim.y - mtd_lin.y - 1; + //[branch] if (mtd_lin.y >= m_dim.y) return 0; + float4 full; + [branch] + switch (mtd_idx) { + case 0: + full = _Data_MTD_R[mtd_lin]; + break; + case 1: + full = _Data_MTD_G[mtd_lin]; + break; + case 2: + full = _Data_MTD_B[mtd_lin]; + break; + case 3: + full = _Data_MTD_A[mtd_lin]; + break; + } + return unpack_raw_float4(full); + } + return 0; +} + uint4 commit(uint2 pos) { - if (pos.y < && pos.x >= ) { + if (pos.y < && pos.x >= ) { return (uint4)0; } // fallback is passthrough - uint4 ret = STATE_TEX[pos]; + uint4 ret = STATE_TEX_HART(pos, 0); - uint pos_id = pos.x | (pos.y << 16); + uint pos_id = pos.x | ((pos.y) << 16); // increment commits if (!_Init && pos_id == ($state->{commits}->{addr}) ?>) { ++ret.($state->{commits}->{addr})->{c}; $c = ("r", "g", "b", "a")[$c]; print $c; ?>; } - // clear stall + // clear stalls if (pos_id == ($state->{stall}->{addr}) ?>) { - [flatten] switch (ret.($state->{stall}->{addr})->{c}; $c2 = ("r", "g", "b", "a")[$c2]; print $c2; ?>) { - case STALL_MEM_CACHE_L2: + case STALL_CSR_CACHE: + ret. = 0; + break; + case STALL_MEM_CACHE_L1: ret. = 0; break; case STALL_FENCE: @@ -411,10 +425,13 @@ uint4 commit(uint2 pos) { case STALL_MEMOP_COPY: // will be handled now, so we can unset ret. = 0; break; + case STALL_UART: + ret. = 0; + break; } } - uint s_lin = pos.x + pos.y * ; + uint s_lin = pos.x + pos.y * ; // CSR area if (s_lin >= && s_lin < ) { @@ -431,17 +448,17 @@ uint4 commit(uint2 pos) { } // RAM - if (pos.y >= ) { - uint2 pos_ram = uint2(pos.x, pos.y - ); + if (pos.y >= ) { + uint2 pos_ram = uint2(pos.x, pos.y - ); uint lin = pos_ram.x + pos_ram.y * ; if (_Init) { // init main memory from texture uint2 ram_dim; _Data_RAM_A.GetDimensions(ram_dim.x, ram_dim.y); - - // TODO: something feels off here... off by one, you might say... - uint2 pos2 = uint2(lin % ram_dim.x, lin / ram_dim.x); + uint2 pos2 = uint2(pos.x, pos.y - ); + // something feels off here... off by one, you might say... + // ...but this way it actually works pos2.y = ram_dim.y - pos2.y - 1; if (pos2.y >= ram_dim.y) { @@ -470,42 +487,27 @@ uint4 commit(uint2 pos) { if (lin_word >= cpu.memop_dst_p && lin_word < (cpu.memop_dst_p + cpu.memop_n)) { - uint offset = cpu.memop_dst_p - lin_word; + uint offset = lin_word - cpu.memop_dst_p; uint src = cpu.memop_src_p + offset; - uint transfer = mem_get_cached_or_tex(src); - switch (icp) { - case 0: - ret.r = transfer; - break; - case 1: - ret.g = transfer; - break; - case 2: - ret.b = transfer; - break; - case 3: - ret.a = transfer; - break; - } + uint transfer = mem_get_cached_or_tex_from_state_cache_or_mtd(src); + set_idx_uint4(ret, transfer, icp); } } - } - else - { - // write back L1 cache -; + uint lin = + cache_idx; + uint4 cur = STATE_TEX_HART(uint2(lin % , lin / ), 0); + if (cur.x == addr_off) { set_idx_uint4(ret, cur.y, offset); } + else if (cur.z == addr_off) { set_idx_uint4(ret, cur.w, offset); } + } } - } -?> - if (cpu.cache.ram_l1_last_addr == lin ) { ret.r = cpu.cache.ram_l1_last_val; } + if (cpu.cache.ram_l1_last_addr == lin ) { ret.r = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (1 << 2)) { ret.g = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (2 << 2)) { ret.b = cpu.cache.ram_l1_last_val; } else if (cpu.cache.ram_l1_last_addr == lin + (3 << 2)) { ret.a = cpu.cache.ram_l1_last_val; } @@ -524,13 +526,16 @@ uint4 commit(uint2 pos) { C# layout: #region LOAD - private const int UART_BUFFER_SIZE = ; + private const int STATE_WIDTH = ; + private const int STATE_HEIGHT = ; + private const int TOTAL_WIDTH = ; + private const int TOTAL_HEIGHT = ; private int[] addr_lin(int lin) { int[] ret = new int[3]; ret[2] = lin & 0x3; // c lin = lin >> 2; - ret[0] = lin % ; // x - ret[1] = lin / ; // y + ret[0] = lin % ; // x + ret[1] = lin / ; // y return ret; } {$a}->{addr} <=> $state->{$b}->{addr} } keys %$stat if (!defined($state->{$prop}->{def})) { my $fname = $prop; - next if $prop =~ m/uart_buffer\.buf/; $fname =~ s/\./__/; + $fname =~ s/\]//; + $fname =~ s/\[//; print " private uint load_$fname() { return decodePackedData($a->{x}, $a->{y}, $a->{c}); }\n"; } } ?> private uint load_csr(int addr) { int lin = (addr >> 2) + ; - return decodePackedData(lin % , lin / , addr & 0x3); + return decodePackedData(lin % , lin / , addr & 0x3); } - private uint getUartBuffer(int idx) { - {"uart_buffer.buf0"}->{addr}; - my $uart_a = $addr_lin->($uart_start); - ?> - int lin = idx + ; - int[] acc = addr_lin(lin); - return decodePackedData(acc[0], acc[1], acc[2]); + private uint load_l1_cache(int addr) { + int lin = (addr >> 2) + ; + return decodePackedData(lin % , lin / , addr & 0x3); } #endregion diff --git a/_Nix/rvc/src/uart.h b/_Nix/rvc/src/uart.h index d0c2c138..88f3600e 100755 --- a/_Nix/rvc/src/uart.h +++ b/_Nix/rvc/src/uart.h @@ -3,8 +3,12 @@ -/* must match set/line count above, shift by two to ignore byte offset */ -#define RAM_L1_TAG(a) ((a >> 2) & 0xf) +#define RAM_ADDR(lin) uint2(lin % 2048, 64 + (lin / 2048)) +#define RAM_MAX (2048 * (4096 - 64) * 4 * 4) + + +/* shift by two to ignore byte offset */ +#define RAM_L1_ARRAY_IDX(a) (((a >> 2) & 127) | (((a >> 11) & 0x3) << 7)) #define SHIFT_RBR 0 @@ -38,12 +42,12 @@ void uart_update_iir() { UART_SET1(IIR, (rx_ip ? IIR_RD_AVAILABLE : (thre_ip ? IIR_THR_EMPTY : IIR_NO_INTERRUPT))); } -void put_char_to_udon(uint c) { +void put_byte_to_fb(uint c) { cpu.uart_buffer.ptr++; - if (cpu.uart_buffer.ptr == 64) { - cpu.uart_buffer.ptr = 0; + if (cpu.uart_buffer.ptr == 63) { + cpu.stall = STALL_UART; } - [branch] + [forcecase] switch (cpu.uart_buffer.ptr) { case 0: cpu.uart_buffer.buf0 = c; break; case 1: cpu.uart_buffer.buf1 = c; break; @@ -111,36 +115,28 @@ case 62: cpu.uart_buffer.buf62 = c; break; case 63: cpu.uart_buffer.buf63 = c; break; } - - // check for overflow on Udon side, stall if necessary - if (cpu.uart_buffer.ptr == _UdonUARTPtr - 1 || - (cpu.uart_buffer.ptr == 63 && _UdonUARTPtr == 0)) - { - cpu.stall = STALL_UART; - } } void uart_tick() { - bool rx_ip = false; + //bool rx_ip = false; - if ((cpu.clock % 128) == 0) { + if ((cpu.clock & 0xff) == 0xff) { if (cpu.uart.input_tag != _UdonUARTInTag && UART_GET1(RBR) == 0) { cpu.uart.input_tag = _UdonUARTInTag; if (_UdonUARTInChar != 0) { UART_SET1(RBR, _UdonUARTInChar); - cpu.debug_arb_0 = _UdonUARTInChar; UART_SET2(LSR, (UART_GET2(LSR) | LSR_DATA_AVAILABLE)); uart_update_iir(); - if ((UART_GET1(IER) & IER_RXINT_BIT) != 0) { - rx_ip = true; - } + //if ((UART_GET1(IER) & IER_RXINT_BIT) != 0) { + // rx_ip = true; + //} } } } uint thr = UART_GET1(THR); - if ((cpu.clock % 16) == 0 && thr != 0) { - put_char_to_udon(thr); + if (thr != 0) { + put_byte_to_fb(thr); UART_SET1(THR, 0); UART_SET2(LSR, (UART_GET2(LSR) | LSR_THR_EMPTY)); uart_update_iir(); @@ -149,12 +145,12 @@ void uart_tick() { } } - if (!cpu.uart.interrupting && (cpu.uart.thre_ip || rx_ip)) { - cpu.uart.interrupting = true; - cpu.uart.thre_ip = false; - } else { - cpu.uart.interrupting = false; - } + // if (!cpu.uart.interrupting && (cpu.uart.thre_ip || rx_ip)) { + // cpu.uart.interrupting = true; + // cpu.uart.thre_ip = false; + // } else { + // cpu.uart.interrupting = false; + // } } #endif diff --git a/_Nix/rvc/src/uart.h.pp b/_Nix/rvc/src/uart.h.pp index d1e9d51c..e749ad99 100755 --- a/_Nix/rvc/src/uart.h.pp +++ b/_Nix/rvc/src/uart.h.pp @@ -34,45 +34,37 @@ void uart_update_iir() { UART_SET1(IIR, (rx_ip ? IIR_RD_AVAILABLE : (thre_ip ? IIR_THR_EMPTY : IIR_NO_INTERRUPT))); } -void put_char_to_udon(uint c) { +void put_byte_to_fb(uint c) { cpu.uart_buffer.ptr++; - if (cpu.uart_buffer.ptr == ) { - cpu.uart_buffer.ptr = 0; + if (cpu.uart_buffer.ptr == ) { + cpu.stall = STALL_UART; } - [branch] + [forcecase] switch (cpu.uart_buffer.ptr) { } - - // check for overflow on Udon side, stall if necessary - if (cpu.uart_buffer.ptr == _UdonUARTPtr - 1 || - (cpu.uart_buffer.ptr == && _UdonUARTPtr == 0)) - { - cpu.stall = STALL_UART; - } } void uart_tick() { - bool rx_ip = false; + //bool rx_ip = false; - if ((cpu.clock % 128) == 0) { + if ((cpu.clock & 0xff) == 0xff) { if (cpu.uart.input_tag != _UdonUARTInTag && UART_GET1(RBR) == 0) { cpu.uart.input_tag = _UdonUARTInTag; if (_UdonUARTInChar != 0) { UART_SET1(RBR, _UdonUARTInChar); - cpu.debug_arb_0 = _UdonUARTInChar; UART_SET2(LSR, (UART_GET2(LSR) | LSR_DATA_AVAILABLE)); uart_update_iir(); - if ((UART_GET1(IER) & IER_RXINT_BIT) != 0) { - rx_ip = true; - } + //if ((UART_GET1(IER) & IER_RXINT_BIT) != 0) { + // rx_ip = true; + //} } } } uint thr = UART_GET1(THR); - if ((cpu.clock % 16) == 0 && thr != 0) { - put_char_to_udon(thr); + if (thr != 0) { + put_byte_to_fb(thr); UART_SET1(THR, 0); UART_SET2(LSR, (UART_GET2(LSR) | LSR_THR_EMPTY)); uart_update_iir(); @@ -81,12 +73,12 @@ void uart_tick() { } } - if (!cpu.uart.interrupting && (cpu.uart.thre_ip || rx_ip)) { - cpu.uart.interrupting = true; - cpu.uart.thre_ip = false; - } else { - cpu.uart.interrupting = false; - } + // if (!cpu.uart.interrupting && (cpu.uart.thre_ip || rx_ip)) { + // cpu.uart.interrupting = true; + // cpu.uart.thre_ip = false; + // } else { + // cpu.uart.interrupting = false; + // } } #endif diff --git a/_Nix/state_export_1.png b/_Nix/state_export_1.png new file mode 100755 index 00000000..6720eadc Binary files /dev/null and b/_Nix/state_export_1.png differ diff --git a/_Nix/state_export_1.png.meta b/_Nix/state_export_1.png.meta new file mode 100755 index 00000000..67078bca --- /dev/null +++ b/_Nix/state_export_1.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 38a0325426fe50c489b0cee2b74539cf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 3 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 3 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 3 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/state_export_2.png b/_Nix/state_export_2.png new file mode 100755 index 00000000..40af47f9 Binary files /dev/null and b/_Nix/state_export_2.png differ diff --git a/_Nix/rvc/data/linux_payload.a.bmp.meta b/_Nix/state_export_2.png.meta similarity index 85% rename from _Nix/rvc/data/linux_payload.a.bmp.meta rename to _Nix/state_export_2.png.meta index 87ac5068..0a98b4d4 100755 --- a/_Nix/rvc/data/linux_payload.a.bmp.meta +++ b/_Nix/state_export_2.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2e7c56c1f22f0814086f5d7a6f50221e +guid: eb60d0967eb1cb842bcf011cf569734a TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -48,7 +48,7 @@ TextureImporter: spritePixelsToUnits: 100 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 + alphaUsage: 0 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 @@ -63,7 +63,7 @@ TextureImporter: buildTarget: DefaultTexturePlatform maxTextureSize: 8192 resizeAlgorithm: 0 - textureFormat: 4 + textureFormat: 3 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 @@ -75,7 +75,7 @@ TextureImporter: buildTarget: Standalone maxTextureSize: 8192 resizeAlgorithm: 0 - textureFormat: 4 + textureFormat: 3 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 @@ -87,7 +87,19 @@ TextureImporter: buildTarget: Android maxTextureSize: 8192 resizeAlgorithm: 0 - textureFormat: 4 + textureFormat: 3 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: 3 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 diff --git a/_Nix/vm_export_display.mat b/_Nix/vm_export_display.mat new file mode 100755 index 00000000..86e4fae4 --- /dev/null +++ b/_Nix/vm_export_display.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: vm_export_display + m_Shader: {fileID: 4800000, guid: 0d9402df573cc2d41a7b91aba5bc16bb, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8600000, guid: cebb0068b90e40246b9bdd23499cf08e, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _FullData: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _VisualizeState: 1 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/_Nix/vm_export_display.mat.meta b/_Nix/vm_export_display.mat.meta new file mode 100755 index 00000000..aa9a44fd --- /dev/null +++ b/_Nix/vm_export_display.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bd5779537f8c58949b252b4b15f16c19 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/_Nix/vm_mat.mat b/_Nix/vm_mat.mat index 074efe9e..84756297 100755 --- a/_Nix/vm_mat.mat +++ b/_Nix/vm_mat.mat @@ -24,47 +24,63 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_DTB_A: - m_Texture: {fileID: 2800000, guid: b79088bde5219a84994c413765be2fc5, type: 3} + m_Texture: {fileID: 2800000, guid: 9f20f03e60d52a54fa937b3aaddb8b6d, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_DTB_B: - m_Texture: {fileID: 2800000, guid: 113ecc14420d26b40bd84a317752e413, type: 3} + m_Texture: {fileID: 2800000, guid: 4c9d5f02a55e80848bcf79927b7f02b3, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_DTB_G: - m_Texture: {fileID: 2800000, guid: 6a4ccabd039d33640a175ee46ff45f7c, type: 3} + m_Texture: {fileID: 2800000, guid: ae4a4c8d48256a54d911bdd382e9b0da, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_DTB_R: - m_Texture: {fileID: 2800000, guid: 41d3eb80306a6fd4f8aa6ff80c39c0a5, type: 3} + m_Texture: {fileID: 2800000, guid: 8c5c09ea7dd038a479903123a2d44e6b, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_Init: m_Texture: {fileID: 2800000, guid: b4920b816de053648a7b261072fe296b, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Data_MTD_A: + m_Texture: {fileID: 2800000, guid: 623a4d94f4925cc43ac5b58f51eab204, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Data_MTD_B: + m_Texture: {fileID: 2800000, guid: 3ae072c7edbd89642952bc3bf59dbc83, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Data_MTD_G: + m_Texture: {fileID: 2800000, guid: 3493f7528e90c83459c3da7ad8df1c6a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Data_MTD_R: + m_Texture: {fileID: 2800000, guid: 3e8b18a896196e34f908356152183b5d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Data_RAM: m_Texture: {fileID: 8600000, guid: 35a15195514b5ed458915e4734f7125a, type: 2} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_RAM_A: - m_Texture: {fileID: 2800000, guid: a791f5afa4522d942a73fd07c4dcb65a, type: 3} + m_Texture: {fileID: 2800000, guid: 63b2abc10de218b449d9664d25a91e73, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_RAM_B: - m_Texture: {fileID: 2800000, guid: 930c7bf438045694485e81e75156474f, type: 3} + m_Texture: {fileID: 2800000, guid: 528bfeb01354be94c829b91b0be31547, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_RAM_G: - m_Texture: {fileID: 2800000, guid: 37b500d8dc755314b9640d3efa58d023, type: 3} + m_Texture: {fileID: 2800000, guid: 6a990bd617015f1428733a2f526e1c0f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_RAM_R: - m_Texture: {fileID: 2800000, guid: a58002ff0acde4e4da9028b14ca32746, type: 3} + m_Texture: {fileID: 2800000, guid: 628d8f9225c4fdc458d3a7250cd33bd4, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _Data_RAM_RAW: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: eb60d0967eb1cb842bcf011cf569734a, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _DetailAlbedoMap: @@ -142,11 +158,14 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 + - _PlayerID: 1 + - _RTC0: 424158240 + - _RTC1: 570763500 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 - - _Ticks: 1024 - - _TicksDivisor: 2 + - _Ticks: 2048 + - _TicksDivisor: 1 - _UVSec: 0 - _UdonUARTInChar: 0 - _UdonUARTInTag: 0 diff --git a/_Nix/vm_state_crt.asset b/_Nix/vm_state_crt.asset index 891963c4..864ef740 100755 --- a/_Nix/vm_state_crt.asset +++ b/_Nix/vm_state_crt.asset @@ -14,11 +14,11 @@ CustomRenderTexture: m_DownscaleFallback: 0 serializedVersion: 3 m_Width: 2048 - m_Height: 2048 + m_Height: 4096 m_AntiAliasing: 1 m_MipCount: -1 m_DepthFormat: 0 - m_ColorFormat: 44 + m_ColorFormat: 40 m_MipMap: 0 m_GenerateMips: 1 m_SRGB: 0 @@ -45,23 +45,13 @@ CustomRenderTexture: m_UpdateZoneSpace: 1 m_CurrentUpdateZoneSpace: 1 m_UpdateZones: - - updateZoneCenter: {x: 64, y: 1984, z: 0.5} - updateZoneSize: {x: 128, y: 128, z: 1} + - updateZoneCenter: {x: 32, y: 4064, z: 0.5} + updateZoneSize: {x: 64, y: 64, z: 1} rotation: 0 passIndex: 0 needSwap: 1 - - updateZoneCenter: {x: 1024, y: 1024, z: 0.5} - updateZoneSize: {x: 2048, y: 2048, z: 1} - rotation: 0 - passIndex: 1 - needSwap: 1 - - updateZoneCenter: {x: 64, y: 1984, z: 0.5} - updateZoneSize: {x: 128, y: 128, z: 1} - rotation: 0 - passIndex: 0 - needSwap: 1 - - updateZoneCenter: {x: 1024, y: 1024, z: 0.5} - updateZoneSize: {x: 2048, y: 2048, z: 1} + - updateZoneCenter: {x: 1024, y: 2048, z: 0.5} + updateZoneSize: {x: 2048, y: 4096, z: 1} rotation: 0 passIndex: 1 needSwap: 1