From 5c96feccafb205cdd31f0b09e3ef149022022129 Mon Sep 17 00:00:00 2001 From: Astralcircle <142503363+Astralcircle@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:19:30 +0300 Subject: [PATCH 1/2] Merge some zcpu stuff with wire --- lua/autorun/cpu_load.lua | 38 --------------- lua/autorun/wire_load.lua | 21 +++++++++ lua/wire/cpu_default_data_decompressor.lua | 54 ---------------------- lua/wire/default_data_generator.lua | 5 +- 4 files changed, 25 insertions(+), 93 deletions(-) delete mode 100644 lua/autorun/cpu_load.lua delete mode 100644 lua/wire/cpu_default_data_decompressor.lua diff --git a/lua/autorun/cpu_load.lua b/lua/autorun/cpu_load.lua deleted file mode 100644 index d3cadd1b66..0000000000 --- a/lua/autorun/cpu_load.lua +++ /dev/null @@ -1,38 +0,0 @@ -AddCSLuaFile() - --- HL-ZASM -AddCSLuaFile("wire/client/hlzasm/hc_compiler.lua") -AddCSLuaFile("wire/client/hlzasm/hc_opcodes.lua") -AddCSLuaFile("wire/client/hlzasm/hc_expression.lua") -AddCSLuaFile("wire/client/hlzasm/hc_preprocess.lua") -AddCSLuaFile("wire/client/hlzasm/hc_syntax.lua") -AddCSLuaFile("wire/client/hlzasm/hc_codetree.lua") -AddCSLuaFile("wire/client/hlzasm/hc_optimize.lua") -AddCSLuaFile("wire/client/hlzasm/hc_output.lua") -AddCSLuaFile("wire/client/hlzasm/hc_tokenizer.lua") - --- ZVM -AddCSLuaFile("wire/zvm/zvm_core.lua") -AddCSLuaFile("wire/zvm/zvm_features.lua") -AddCSLuaFile("wire/zvm/zvm_opcodes.lua") -AddCSLuaFile("wire/zvm/zvm_data.lua") - -if SERVER then - include("wire/zvm/zvm_tests.lua") -end - -AddCSLuaFile("wire/cpulib.lua") -include("wire/cpulib.lua") - --- AddCSLuaFile("wire/cpulib_example_extension.lua") --- include("wire/cpulib_example_extension.lua") - -AddCSLuaFile("wire/gpulib.lua") -include("wire/gpulib.lua") - -AddCSLuaFile("wire/cpu_default_data_decompressor.lua") -include("wire/cpu_default_data_decompressor.lua") - -if CLIENT then - include("wire/client/hlzasm/hc_compiler.lua") -end \ No newline at end of file diff --git a/lua/autorun/wire_load.lua b/lua/autorun/wire_load.lua index 6cf4e42a25..404705a750 100644 --- a/lua/autorun/wire_load.lua +++ b/lua/autorun/wire_load.lua @@ -33,6 +33,7 @@ if SERVER then AddCSLuaFile("wire/fpgagates.lua") AddCSLuaFile("wire/cpugates.lua") AddCSLuaFile("wire/wiremonitors.lua") + AddCSLuaFile("wire/cpulib.lua") AddCSLuaFile("wire/gpulib.lua") AddCSLuaFile("wire/timedpairs.lua") AddCSLuaFile("wire/default_data_generator.lua") @@ -69,6 +70,23 @@ if SERVER then AddCSLuaFile("wire/client/node_editor/nodeeditor.lua") AddCSLuaFile("wire/client/node_editor/wire_fpga_editor.lua") + -- hl-zasm + AddCSLuaFile("wire/client/hlzasm/hc_compiler.lua") + AddCSLuaFile("wire/client/hlzasm/hc_opcodes.lua") + AddCSLuaFile("wire/client/hlzasm/hc_expression.lua") + AddCSLuaFile("wire/client/hlzasm/hc_preprocess.lua") + AddCSLuaFile("wire/client/hlzasm/hc_syntax.lua") + AddCSLuaFile("wire/client/hlzasm/hc_codetree.lua") + AddCSLuaFile("wire/client/hlzasm/hc_optimize.lua") + AddCSLuaFile("wire/client/hlzasm/hc_output.lua") + AddCSLuaFile("wire/client/hlzasm/hc_tokenizer.lua") + + -- zvm + AddCSLuaFile("wire/zvm/zvm_core.lua") + AddCSLuaFile("wire/zvm/zvm_features.lua") + AddCSLuaFile("wire/zvm/zvm_opcodes.lua") + AddCSLuaFile("wire/zvm/zvm_data.lua") + for _, filename in ipairs(file.Find("wire/client/text_editor/modes/*.lua","LUA")) do AddCSLuaFile("wire/client/text_editor/modes/" .. filename) end @@ -83,6 +101,7 @@ include("wire/wiregates.lua") include("wire/fpgagates.lua") include("wire/cpugates.lua") include("wire/wiremonitors.lua") +include("wire/cpulib.lua") include("wire/gpulib.lua") include("wire/timedpairs.lua") include("wire/default_data_generator.lua") @@ -95,6 +114,7 @@ if SERVER then include("wire/server/debuggerlib.lua") include("wire/server/sents_registry.lua") include("wire/server/wire_map_interface.lua") + include("wire/zvm/zvm_tests.lua") if CreateConVar("wire_force_workshop", "1", FCVAR_ARCHIVE, "Should Wire force all clients to download the Workshop edition of Wire, for models? (requires restart to disable)"):GetBool() then if select(2, WireLib.GetVersion()):find("Workshop", 1, true) then @@ -130,6 +150,7 @@ if CLIENT then include("wire/client/customspawnmenu.lua") include("wire/client/node_editor/nodeeditor.lua") include("wire/client/node_editor/wire_fpga_editor.lua") + include("wire/client/hlzasm/hc_compiler.lua") end if SERVER then print("Wiremod " .. select(2, WireLib.GetVersion()) .. " loaded") end diff --git a/lua/wire/cpu_default_data_decompressor.lua b/lua/wire/cpu_default_data_decompressor.lua deleted file mode 100644 index 2cf6cd4a2b..0000000000 --- a/lua/wire/cpu_default_data_decompressor.lua +++ /dev/null @@ -1,54 +0,0 @@ --- Garry has imposed a file extension whitelist for the Steam Workshop which does not permit the dangerous format .txt --- Therefore, we must store our .txt's in default_data_files.lua, and then extract them when first run - -local ignored_dirs = { - ["cpuchip/tests"] = true, - ["gpuchip/tests"] = true, - ["spuchip/tests"] = true -} - -local checked_dirs = { - "cpuchip", - "gpuchip", - "spuchip" -} - --- Compress all files in addons/wire/data recursively into 1 json string -local function ReadDir(root) - if ignored_dirs[root] then return nil end - local tab = {} - local files,dirs = file.Find("data_static/"..root.."*","GAME") - for _, f in pairs(files) do - f = root..f - tab[f] = file.Read("data_static/"..f, "GAME") - end - for _, f in pairs(dirs) do - f = root..f.."/" - tab[f] = ReadDir(f) - end - return tab -end - --- Uncomment and Rename this file to wire/lua/wire/default_data_files.lua to update it --- file.Write("cpu_default_data_files.txt", "--"..util.TableToJSON(ReadDir(""))) - --- Decompress the json string wire/lua/wire/default_data_files.lua into the corresponding 36+ default data files -local function WriteDir(tab) - for f, contents in pairs(tab) do - if isstring(contents) then - if not file.Exists(f,"DATA") then - file.Write(f, contents) - end - else - file.CreateDir(f) - WriteDir(contents) - end - end -end - --- Write any missing files to the folder -if CLIENT then - for _,dir in pairs(checked_dirs) do - WriteDir(ReadDir(dir..'/'), 3) - end -end \ No newline at end of file diff --git a/lua/wire/default_data_generator.lua b/lua/wire/default_data_generator.lua index 265015eb10..3e91928a68 100644 --- a/lua/wire/default_data_generator.lua +++ b/lua/wire/default_data_generator.lua @@ -18,11 +18,14 @@ function WireLib.GenerateDefaultData() -- When adding new folders that need to be generated, add them to this list RecursivelyGenerateFolder("data_static/expression2/") RecursivelyGenerateFolder("data_static/fpgachip/") + RecursivelyGenerateFolder("data_static/cpuchip/") + RecursivelyGenerateFolder("data_static/gpuchip/") + RecursivelyGenerateFolder("data_static/spuchip/") RecursivelyGenerateFolder("data_static/soundlists/") end -- Regenerate data files on every structure update -local DataVersion = 2 +local DataVersion = 3 if cookie.GetNumber("wire_data_version", 0) < DataVersion then cookie.Set("wire_data_version", tostring(DataVersion)) From 06fb8aad5a10ffc3c456ebb00e2855bd07f528f2 Mon Sep 17 00:00:00 2001 From: Astralcircle <142503363+Astralcircle@users.noreply.github.com> Date: Mon, 16 Feb 2026 02:01:13 +0300 Subject: [PATCH 2/2] Add icons for new tools --- lua/wire/stools/cpu.lua | 2 ++ lua/wire/stools/fpga.lua | 2 ++ lua/wire/stools/gpu.lua | 2 ++ lua/wire/stools/spu.lua | 2 ++ 4 files changed, 8 insertions(+) diff --git a/lua/wire/stools/cpu.lua b/lua/wire/stools/cpu.lua index 204620d2f8..58fe294e4b 100644 --- a/lua/wire/stools/cpu.lua +++ b/lua/wire/stools/cpu.lua @@ -11,6 +11,8 @@ if CLIENT then { name = "reload", text = "Attach debugger" }, { name = "reload_shift", text = "Shift+Reload: Clear" }, } + + WireToolSetup.setToolMenuIcon("icon16/server.png") end WireToolSetup.BaseLang() WireToolSetup.SetupMax( 7 ) diff --git a/lua/wire/stools/fpga.lua b/lua/wire/stools/fpga.lua index e70602ce1c..5fe2eee49d 100644 --- a/lua/wire/stools/fpga.lua +++ b/lua/wire/stools/fpga.lua @@ -10,6 +10,8 @@ if CLIENT then { name = "right", text = "Open editor" }, { name = "reload", text = "Reset" } } + + WireToolSetup.setToolMenuIcon("icon16/application_view_icons.png") end WireToolSetup.BaseLang() WireToolSetup.SetupMax(40) diff --git a/lua/wire/stools/gpu.lua b/lua/wire/stools/gpu.lua index f444992e69..323febbc53 100644 --- a/lua/wire/stools/gpu.lua +++ b/lua/wire/stools/gpu.lua @@ -10,6 +10,8 @@ if CLIENT then { name = "right", text = "open editor and/or attach debugger to the ZGPU" }, { name = "reload", text = "Wipe ROM/RAM and reset memory model" }, } + + WireToolSetup.setToolMenuIcon("icon16/monitor.png") end WireToolSetup.BaseLang() WireToolSetup.SetupMax( 7 ) diff --git a/lua/wire/stools/spu.lua b/lua/wire/stools/spu.lua index 962e7b5955..29e4fad619 100644 --- a/lua/wire/stools/spu.lua +++ b/lua/wire/stools/spu.lua @@ -9,6 +9,8 @@ if CLIENT then { name = "left", text = "Create/reflash " .. TOOL.Name }, { name = "right", text = "Open editor" }, } + + WireToolSetup.setToolMenuIcon("icon16/ipod_sound.png") end WireToolSetup.BaseLang() WireToolSetup.SetupMax( 7 )