[FIXED] CPU timing system was updated
[ADDED] New RT-based digital screen. Supports any resolution up to 512x512. Features yet not implemented: faster data streaming, RGB color support, clear row/col isn't working yet.
[ADDED] R key now erases all data from CPU/GPU (matters only for duping)
[ADDED] Memory mapping support in paging system. You can map one page to be physically linking to a different page
[ADDED] SMAP & GMAP opcodes to set memory mapping
[ADDED] BREAKPOINT EmuFox-only opcode
[ADDED] ##include## macro to include source files (clientside in ZASM)
[FIXED] Fixed character skipping in console screen (but increased network data volume)
[FIXED] ZASM bug in "alloc x,y,z" syntax
[ADDED] ZGPU X/Y scaling registers
[FIXED] Keyboard input bug when using more than one keyboard
[FIXED] "e" character getting captured when you turn on keyboard
[FIXED] Wrong keyboard buffer clear operation (now you write anything to zeroth byte to clear it, OR you write -1 to any other location in buffer to clear it)
[FIXED] Text bug in CPU stool
[FIXED] Removed obsolete code from some hispeed devices
[FIXED] Misc ZASM error
[ADDED] "Connected" outputs to data socket and data plug
[FIXED] Added a neater error display in GPU
[FIXED] Added small fix for when other player removes your keyboard and you cant get out
[FIXED] Bug in CPU & GPU stools that prevented files from being found, or properly loaded. NOTICE: You might need to set convar "wire_cpu_packet_bandwidth 300" and "wire_gpu_packet_bandwidth 300" manually if problem continues. Else just lower it even further.
[ADDED] ZASM2
[ADDED] New ZASM2 GPU macros: float scalar vector vector1f vector2f vector3f vector4f uv color
[ADDED] New ZASM2 macros: offset wipe_locals wipe_labels setvar asmfile asmend function return getarg
[ADDED] ZASM2 now supports local labels
[FIXED] Split ZCPU into several share-able files
[ADDED] CPUs now have serial numbers
[ADDED] Increased max frequency
[FIXED] Stool code. It's still a WIP, so this is only a temp placeholder
[FIXED] Bitwise functions are now confirmed to work under 48bit precision (settable)
[FIXED] Address bus requests must be 48-bit integers now
[ADDED] Extended mode for CPU
[ADDED] 4-byte interrupt table [IP][CS][PARAM][0]
[ADDED] Interrupt parameter for error interrupts
[ADDED] New opcodes: NOP CPUSET CPUGET SPP CPP SRL GRL LEA
[ADDED] ZCPU now supports this kind of requests: <ANY REGISTER OR CONSTANT>:<ANYTHING> and <ANY REGISTER OR CONSTANT>:#<ANYTHING>
[FIXED] Explosives range is now clamped
[DELETED] Reduant files. BASIC is never gonna happen, sorry
Please wait for documentation update for all the new feature description. Or look in lua files, they are neat now. ZASM2 is unretarded now, and approx 10 times faster.
[FIXED] Changed max multiplayer frequency from 20000 to 30000
[FIXED] Proper SHIFT key support in wired keyboard
[FIXED?] Possibly fixed bug with more than one keyboard
[FIXED] Some issues with ZASM (ROM and Memory are now not zeroed out before compile)
[ADDED] IDLE opcode (makes CPU skip some cycles, causes less lag, but also a small delay)
[ADDED] Better debugger. It shows code flow now. To enable it, change line 16 of init.lua
[FIXED] Critical bug with DB compiler macro
[FIXED] Faster compile
[FIXED] One-byte opcodes not precompiled
[CHANGED] Internal change, PF and IF are now values rather than booleans
[CHANGED] Interrupts #0 and #1 will not be handled by interrupt handler if interrupt #1 has property magic value set to "96"
[FIXED] CPU ignoring IF flag
[CHANGED] STI now does not affect next opcode (interrupts will be enabled after next executed opcode, not right after STI was executed)
[ADDED] Missing bitwise operations (BXOR, BOR, BAND, BSHL, BSHR). Still missing BNOT.
[ADDED] Missing TBIT opcode
[FIXED] SBIT, CBIT, BIT operations now use new bitwise logic
[FIXED] XCHG opcode now works (I think)
[FIXED] NMIRET now pops 2 values off stack, to simulate IRET opcode behaviour
[FIXED] Limited input value to 32..255 range on NMI input
[FIXED] CPU internal VM state was not completly reset inbetween ZASM compiles
[CHANGED] ZCPU virtual machine was replaced with new, much faster dynamic recompile VM. It's now approx 150% faster
[FIXED] ZCPU internal RAM is now not pre-allocated (faster memory operations)
[FIXED] Renewed optional debug mode (change line 16 in ZCPU init.lua)
[FIXED] ZASM now can write outside ZCPU 64KB ROM
[FIXED] Small bugs with RD/WD opcodes (yes, they serve purpose)
[CHANGED] Error in opcode will result in internal error (5). This includes wrong RM byte, or error during read (this way interrupt will be called twice)
[FIXED] CPU now runs very smoothly.
[FIXED] Lowered CPU bandwidth (due to precompile stage during compile process). Temporary fix, compile process will be sped up later
[FIXED] Console spam when CPU entity is removed in middle of compile process.
[ADD] ZASM now shows revisions of its main files
[ADD] ZCPU now returns its SVN revision number instead of version on CPUID. Useful for checking for working version of CPU
[FIXED] Compiler representing labels as "labelname:", not "labelname"
[FIXED] Compiler writing 2 values in memory instead of 1 when label is not yet defined. This corrupted label/pointer table, and led to Unknown Opcode (4), End of execution (2), Internal error (5) errors randomly, because it jumped to wrong data.
[FIXED] Compiler did not reset write pointer after second pass, therefore when ORG 0 was not present in program it wrote junk, resulting in usually Internal Error (5).
Previous eeprom flash data will not be compatible with new one.
[ADDED] Address bus outputs data rate via it's memory output (for regular wire)
[FIXED] Address bus wrong undo message
[FIXED] CPU compiler erroring on empty program
[FIXED] MCOPY opcode in CPU
[FIXED] Internal error not handled in 1 place
[FIXED] Timing system being buggy (triggering inf loops all the time)
[FIXED] Wired keyboard outputting bad values
[FIXED] Compile bandwidth set to 100 lines. Set it back to 500 if you wanna, but it lags less with 100.
[ADD] Support for long lines
[ADD] VGUI Progress indicators, showing percent, lines processed, and time left (for compiling and uploading)
[BETA] Beta preview of ZyeliosEditor
[FIXED] Changed "Load" to "Quick Load" (because of ZE)
[ADD] File support for EEPROM (BETA)
You can compile long programs now.
There is extra verbose mode for now, expect it to be removed soon.
[ADD] CPU shows how average upload speed, percent, and how much time left till upload finishes
[ADD] In singleplayer progress is done into chat window, in MP its in console (till VGUI)
[ANNOUNCE] Coming up: CPU extended protection, multitasking (native support!), and some more stuff.
[ADD] Temporary binary opcodes
[FIX] Reading and writing to non-existing port does not cause interrupt now
[FIX] Port bus failure is interrupt #8 now (instead of #10)
[FIX] Reading from non-existing port is now #10 instead of #8
[FIX] Increased max CPU frequency
[FIX] Fixed bug when setting frequency over limit does not set it to maximum allowed value
[FIX] Removed debug message in constant gate
[FIX] CPU now sends packets with more bandwidth and speed in SP (bandwidth only in MP). Uploading 70KB now takes 3-5 seconds
[TEMP FIX] Multiply "CPU Upload complete" messages
[ADD] Presets in address bus
[ADD] wire_cpu_dumpcode convar, set it to "enable" to enable dumping some debug information (pointers to functions and variables, code listing with corresponding byte addresses, and raw bytes dump)
[ADD] Supports filenames without extension now
[ADD] More information for user about CPU upload status
[ADD] CVAR: wire_cpu_packet_bandwidth (size of each packet, def. 50). It seems that it's reliable to use bandwidth of 100, but not tested in MP (twice the less time needed for uploading program)
[ADD] CVAR: wire_cpu_packet_rate_sp (data rate in SP, def. 0.1)
[ADD] CVAR: wire_cpu_packet_rate_mp (data rate in MP, def. 0.4)
[FIX] Parameters handled as strings
[FIX] Precision fixed (at least floating point digits precision, 14-15 digits actual precision)
[FIX] TPG now sets CMPR to address of error instead of next page address (you cant read cmpr anyway)
[FIX] CPU upload status not displaying in MP
Virtual Keyboard (Hi-Speed link only)
FLASH support in digital screen
Fixed:
CPU Compiler bugs
Numpad hi-speed link mode
Digital screen & console screen (partially)
Known bugs:
Console screen special registers may not work
Keyboard wont accept shift with anything other then letter
Console Screen (30x18 dos-like console)
Address Bus (To join up to 4 address spaces)
Data Port (Aka old ports in CPU, but external)
Data Plug (Connects address spaces)
32KB RAM module
CPU Protected Mode (Simple)
CPU Interrupts (in PM)
Strings supported in DB macro.
Lots more I forgot.
CPU Frequency limit to 5000Hz
Fixed:
CPU is now V2.00, added lots and lots of opcodes, around 100 (but 8 are disabled due to some reasons)
Digital Screen (new inputs)
Wired Numpad (Hi-Speed link added, acts as buffer)
New examples for CPU
CPU supports writing to ROM, i.e. program will be restored each reset.
ZCPU & ZASM bugs.
Known bugs:
Address Bus settings do not save when duping
Console screen does not dupe (duplications of it result in things connected to old copy)
Removed in-game editor, reworking it into VGUI. You can always use notepad, or my editor, it might be posted on forum
Some other misc little bugs.
changed deleteonremove to use new system in welds instead
massive updates to adv duplicator. now separate module and addon
include modified weight stool that support duplication
lots of other shit