fCPU :: SE Fix :: Memory fix + Improvements deprecated


Original: Factorio Customizable Processing Unit. SpaceExploration FIx: Fixed fCPU to continue operation while a space ship is jumping between surfaces. Extra: Fixed fCPU indexing in memory read/write. (NO SIMD) Extra improvements have been added

Content
1 year, 8 months ago
1.1
889
Circuit network

Changelog

Version: 0.5.0
Date: 2023-03-21
  Changes:
    - Implemented new channel for logistic network (logi) read only
    - Now can use logistic network data on instructions: add, sub, mul, div, mod, pow, subi, divi, modi, powi, rnd, dig, cos, sin, tan, atan2, sqrt, exp, ln, band, bor, bxor, bnot, bsl, bsr, brl, brr, teq, tne, tgt, tlt, tge, tle, tas, tad, cnts, cntv
    - Added new instruction: bkl cnt[C/R/M] - Block until there are at least cnt signals on logistic network.
    - Added new instruction: btl type[C/R/M] - Block until signal type found on logistic network.
    - Added new instruction: btlc reg[R] - Block while reference register have same value as in red/green/both_input wires
    - Removed fCPU image from booktorio and informatron
    - Updated wiki with new logistic information
    - Added new signal for counting
    - Added new instruction: cnts dst[R/O/M] src[M/I/W/LN]- Count signals
    - Added new instruction: cntv dst[R/O/M] src[M/I/W/LN]- Count values of all signals
  Bugfixes:
    - Fixed crash when click on register not defined
    - Fixed change old signal icon when set new signal
    - Fixed text-box editor width
Version: 0.4.22
Date: 2023-03-20
  Changes:
    - Added spanish localization
    - Added new icons for memory view, copy, paste and signals
    - Added new opcode "wc <branch_when_exists> <branch_when_no_exists>" to check if a wire is connected and jump to desired branch based on result
  Bugfixes:
    - Fixed crash when paste a program without copy program before
Version: 0.4.21
Date: 2023-03-20
  Bugfixes:
    - Fixed get type when use register (with item as signal) in operations
Version: 0.4.20
Date: 2023-03-20
  Bugfixes:
    - Fixed get type when use register in operations
    - Added new nil signal (Used when type is not defined to a memory cell)
Version: 0.4.19
Date: 2023-03-20
  Changes:
    - Arithmetic instructions now can use memory as destination
    - Trigonometry instructions now can use memory as destination
    - Bitwise instructions now can use memory as destination
    - Flow control instructions now can use memory as destination
    - Added values to memory tooltips
    - Added new label signal (Used when use `lea` to a memory cell)
  Bugfixes:
    - Added changelog
Version: 0.4.18
Date: 2023-03-19
  Bugfixes:
    - Fixed crash when show tooltip with nil signal type
Version: 0.4.17
Date: 2023-03-19
  Changes:
    - Added new map option: Num of Registers (min=8, max=80)
    - Added new map option: Registers per row (min=8, max=20)
    - Added new map option: Num of memory channels (min=4, max=16)
    - Increase editor lines to 256
  Bugfixes:
    - Fixed index memory read/write (when don't use SIMD)
Version: 0.4.16
Date: 2022-07-19
  Bugfixes:
    - Fixed me bricking the mod
Version: 0.4.15 (Branch)
Date: 2022-07-19
  Changes:
    - I have made a branch because a known issue of 1 yr 7 months has not been fixed
  Bugfixes:
    - Fixed fCPU combinator becoming unresponsive after surface change
    - Fixed Space exploration satellite mode induing a soft crash
Version: 0.4.14
Date: 2022-03-20
  Changes:
    - Updated supporters list. Thank you for supporting fCPU and our Factorio community!
  Bugfixes:
    - Fixed missed `offset` to `bad` and `bas` instructions (https://mods.factorio.com/mod/fcpu/discussion/6196bc801bc21ba14dfca424)
Version: 0.4.13
Date: 2021-08-20
  Changes:
    - Added instructions (https://mods.factorio.com/mod/fcpu/discussion/5ff1e8c767060ec2750c4a88)
  Bugfixes:
    - Fixed issue on startup with moderm flib 0.8.0 (https://mods.factorio.com/mod/fcpu/discussion/6111ee81a39dd8a4252da8b2)
Version: 0.4.12
Date: 2021-01-03
  Bugfixes:
    - Found missed deffered action on `fcpu/src/cpu/controller.lua:223` (https://mods.factorio.com/mod/fcpu/discussion/5fecb1c3ae469395d4714320)
Version: 0.4.11
Date: 2021-01-03
  Bugfixes:
    - `xuni` incorrect timeout (https://mods.factorio.com/mod/fcpu/discussion/5fecd7edfa0ed601c1c792ce)
Version: 0.4.10
Date: 2020-12-29
  Features:
    - Added editor width setting (look in the player runtime tab).
  Changes:
    - SIMD `x*` instructions optimisation: 2 ticks less for signal handling.
    - Instruction pointer advances after finishing current intrustion.
    - Refactored 'clear' and 'sync' sequences.
    - Some preparations for ordered memory.
  Bugfixes:
    - Allow read memory from output buffer.
    - Correct clock `clk` register after `slp` and `x*`.
    - Crash when updating BP (program still could not be saved, please use new BP rather than `update contents`, see https://forums.factorio.com/viewtopic.php?f=48&t=88100).
Version: 0.4.9
Date: 2020-12-03
  Changes:
    - Added support for calling functions in `ugpf`.
Version: 0.4.8
Date: 2020-12-01
  Features:
    - Added string comparison (`t*`, `b*` mnemonics).
  Changes:
    - `ugpf` uses dots `.` for getting prototype fields.
Version: 0.4.7
Date: 2020-11-29
  Features:
    - Added setting for disabling program editor icons.
  Bugfixes:
    - Destroying sleeping fCPU.
    - Newly created processors can't be controlled via external run signals
Version: 0.4.6
Date: 2020-11-26
  Bugfixes:
    - Typo in `lea`.
    - Typo in `ln`.
    - Removed version constrain from flib (it is still less than 6.0.0).
Version: 0.4.5
Date: 2020-11-23
  Features:
    - Factorio 1.1.0 support.
Version: 0.4.4
Date: 2020-11-23
  Features:
    - Added `lea` for loading address of a labels.
    - Common mnemonics extended with optional src operand.
  Bugfixes:
    - Breakpoint miss right after `slp`.
    - `Step` may ignore instructions when stepping out of sleep mode.
    - `btrc`/`btgc`/`btic` retains type when a signal became 0.
Version: 0.4.3
Date: 2020-11-22
  Changes:
    - `xc*` now ignore signal types rather than rely on it's value from src.
Version: 0.4.2
Date: 2020-11-22
  Features:
    - Added `emit` for appending signals to memory.
  Changes:
    - Cleaup fixed in v0.4.1 missed combinators.
  Bugfixes:
    - `bt*c` now correct handles zeroed signals.
Version: 0.4.1
Date: 2020-11-22
  Changes:
    - Added `xflt` mnemonic with two operands (`xflt dst mask`).
    - Pressing rename fCPU title button now selects edit field.
  Bugfixes:
    - Added missed combinators to `xflt`.
Version: 0.4.0
Date: 2020-11-21
  Features:
    - Added `xflt` (thanks to https://www.reddit.com/user/Halke1986/ for original filter blueprint).
    - Added `bti` (break until input have type) mnemonic.
    - Added `btrc`,`btgc`,`btic` (break until input type changed) mnemonics.
    - Added `ugpf` *Utility Get Prototype Field*.
    - Added `xc*` SIMD *Comparision*.
    - Added basic string support.
    - Added pin button.
    - Added debugging hotkeys.
    - Added ability to rename fCPU unit.
    - Added auto select last modified memory channel.
  Changes:
    - GUI refresh rate could be changed in runtime, please update this setting to needed value.
    - In sleep mode, fCPU does not handle interruptions.
    - SIMD instructions have global queue for handling. Significant (~30%) performance increase for `x*` mnemonics.
    - Sleeping/Disabled fCPU now not eats UPS at all! Huge (~10-40%) performance increse for maps with a lot of fCPUs.
  Bugfixes:
    - `xuni` now correct handle input wire at second operand.
    - `xmin r1 red` when there is no item "Input channel is unavailable".
    - Possible fix for (https://mods.factorio.com/mod/fcpu/discussion/5fb00a179d70848806c566dd).
Version: 0.3.27
Date: 2020-11-15
  Bugfixes:
    - Fixed invalid LuaArithmeticCombinatorControlBehavior in `validation_cache`.
Version: 0.3.26
Date: 2020-11-14
  Bugfixes:
    - Fixed typo from v0.3.24. Which actually fixes some other mods shit.
Version: 0.3.25
Date: 2020-11-14
  Bugfixes:
    - Added extra check for tiles-only BP.
Version: 0.3.24
Date: 2020-11-13
  Features:
    - Added detection of broken mods, which mess with blueprint data and take care of their shit.
  Bugfixes:
    - Fixed crash when destroying broken fcpu entity.
Version: 0.3.23
Date: 2020-11-10
  Bugfixes:
    - Fixed cache for old entities.
Version: 0.3.22
Date: 2020-11-09
  Bugfixes:
    - Fixed: attempt to index local 'ast' (a nil value).
Version: 0.3.21
Date: 2020-11-09
  Bugfixes:
    - Fixed: attempt to index local 'wires' (a nil value).
Version: 0.3.20
Date: 2020-11-09
  Features:
    - Added three operands `x*` mnemonics.
    - Added `xuni` for uniting values from two memory channels.
  Changes:
    - Added fourth parameter to branch mnemonics (https://mods.factorio.com/mod/fcpu/discussion/5fa6613ce4b0eb8935a026b1).
    - Removed `xinc`, `xdec` as it is not usefull (replaced with `xadd dst 1` and `xsub dst 1`).
    - Docs for SIMD.
Version: 0.3.19
Date: 2020-11-06
  Bugfixes:
    - Typo in docs (https://mods.factorio.com/mod/fcpu/discussion/5fa3e5b23ededbcdb59dd237).
    - Nil value when no number specified (https://mods.factorio.com/mod/fcpu/discussion/5fa3d9945969b495fb130816).
Version: 0.3.18
Date: 2020-11-03
  Features:
    - Added relative `jmp` mnemonic variant.
    - Added support for Nanobots (https://mods.factorio.com/mod/Nanobots).
Version: 0.3.17
Date: 2020-11-03
  Features:
    - Added `clr reg` mnemonic.
    - Registers tooltips now show exact count and type (click to paste in code RMB or LMB, see https://mods.factorio.com/mod/fcpu/discussion/5f79ff3e92eab70c66c8b8af).
    - Updated supporters list. Thank you for supporting fCPU and our Factorio community!
  Changes:
    - Performance optimization and basic caching.
    - `uiss` now handle only `item` type signals other will be zeroed.
  Bugfixes:
    - `xinc`, `xdec` docs updated.
Version: 0.3.16
Date: 2020-10-20
  Features:
    - Added *Utility Item Stack Size* `uiss`.
  Bugfixes:
    - Correct error message when trying to `clr` memory cell.
    - Allow `mov ... 0` to memory cell without signal type.
Version: 0.3.15
Date: 2020-10-16
  Changes:
    - `bkr`,` bkg`, `btr`,` btg` now execute next instruction on same tick the condition were met.
    - `xmov` now catch signal on 0 tick and have 1 tick less to settle (3 ticks).
Version: 0.3.14
Date: 2020-10-15
  Bugfixes:
    - Fixed `idx` after memory changed (`mov m1[2] r3`).
Version: 0.3.13
Date: 2020-10-15
  Bugfixes:
    - No `gui_cache` for a new players (https://mods.factorio.com/mod/fcpu/discussion/5f87cf424309a388cdb0fc03).
Version: 0.3.12
Date: 2020-10-15
  Changes:
    - Do not open memory viewer by default.
  Bugfixes:
    - Fixed `clr mem`.
    - Fixed toggling memory viewer.
    - Fixed disappeared instruction pointer for new fCPUs.
Version: 0.3.11
Date: 2020-10-14
  Bugfixes:
    - PickerDollies move whole internal scheme.
    - Removed smoke clouds while building or modifying fCPU.
Version: 0.3.10
Date: 2020-10-14
  Features:
    - Added breakpoints support.
    - Easter egg.
  Bugfixes:
    - Line number is crooked when UI scale >100% .
    - Clear memory when `ics` is a sparse arrays.
Version: 0.3.9
Date: 2020-10-13
  Features:
    - New `xmini` and `xmaxi`, same as `xmin` `xmax` but assigns index as a result.
    - Added memory assignment support `mov mem1[23] 4[item=copper-ore]`.
  Bugfixes:
    - Allow indexing of empty memory cells.
    - Fixed fCPU clone operation.
Version: 0.3.8
Date: 2020-10-12
  Changes:
    - Added memory view for `vector output` and `composite output`.
  Bugfixes:
    - Fixed `clr out` after `xmov out ...`.
    - Fixed bug with handling when using old fCPU entities, created from before v0.3.0 .
    - Fixed crash when mod with signals extensions were removed.
Version: 0.3.7
Date: 2020-10-11
  Features:
    - Added `idx` mnemonic.
  Changes:
    - Renamed mnemonic `fim` to `fid` and swapped two first and seccond operand (check your programs before save!).
    - Added support for `red`/`green` input wire into `fid` mnemonic.
    - Increased program lines from 99 up to 128.
    - `emit` mnemonics is now deprecated (should be replaced by `mov out1 ...`). It will be reused for memory manipulations.
  Bugfixes:
    - Booktorio2 crash when toggled without fCPU widget close.
    - Minor wiki fixes.
    - Possible fix for `attempt to index local 'ast' (a nil value)` (https://mods.factorio.com/mod/fcpu/discussion/5f776ae7f3f086498c4a6b36).
Version: 0.3.6
Date: 2020-10-03
  Changes:
    - Improved comments parsing, no space needed as delimiter.
    - Reduced contrast for error color.
Version: 0.3.5
Date: 2020-10-02
  Bugfixes:
    - Fixed regression `clr out1`.
Version: 0.3.4
Date: 2020-10-01
  Bugfixes:
    - Fixed sporadic double tick handling after removing fCPU.
Version: 0.3.3
Date: 2020-10-01
  Changes:
    - Added some tooltips.
  Bugfixes:
    - Fixed `mov out1 0`, which was introduced in v0.3.1
Version: 0.3.2
Date: 2020-09-30
  Bugfixes:
    - Fixed disconnected memory channel output error (https://discordapp.com/channels/705695217512349768/749991013950554233/760774462219485206).
    - Fixed `xmov m1 green` always used red input.
Version: 0.3.1
Date: 2020-09-29
  Features:
    - Added `xmin`, `xmax`, `xavg` mnemonics.
    - Added `fim` mnemonic.
    - Added `rnd` mnemonic (https://mods.factorio.com/mod/fcpu/discussion/5f70ee95fdf18a7b9c41d0d1).
    - Added `fract`, `floor`, `round`, `ceil` math mnemonics.
  Changes:
    - Performance improvements for signal get\set.
    - Deffer power check once in 10 ticks.
    - Increased program lines from 64 up to 99.
  Bugfixes:
    - Fixed broken `clr outN`.
    - Fixed `hlt` interrupt handling while sleeping.
    - Fixed `stp` interrupt handling while sleeping (explicit skip sleep instruction).
Version: 0.3.0
Date: 2020-09-25
  Features:
    - Added memory viewer.
    - Added GUI refresh rate setting.
    - Added `btr`, `btg` mnemonics.
    - Added SIMD mnemonics.
  Changes:
    - Added disabled state into blueprint.
    - fCPU program now saved in tags. No more `fcpu-imposter` entities needed. Please update your blueprints.
    - Better performance on repeated state changes (hlt, run, hlt...) by external signals.
  Bugfixes:
    - Escape key handling.
    - The Pause/Stop button now correctly displays the reset status.
    - Correctly skips empty instructions and comments.
    - Fixed on/off switch, ipc register mess. When turned on, the program runs if it is in a reset state.
    - If there is no energy in the mains (accumulator), the fCPU stops until there is enough energy in the mains.
    - Program and state are not removed after fCPU crash.
    - Improved tick handling with `for_n_of`.
Version: 0.2.14
Date: 2020-09-24
  Bugfixes:
    - Possible fix for surface cloning (https://mods.factorio.com/mod/fcpu/discussion/5f6a720161a727b5e735e6af)
Version: 0.2.13
Date: 2020-09-03
  Changes:
    - `out` should be replaced with explicit `out1`, except for `clr out` which is correct.
  Bugfixes:
    - `bas`, `bad` was accidentally inverted.
    - `crl out` now clears all output signals.
Version: 0.2.12
Date: 2020-08-31
  Features:
    - Added test and jump mnemonics (https://mods.factorio.com/mod/fcpu/discussion/5f49bc5bc5438f3510d94409).
  Bugfixes:
    - Signed numbers with signals parse (https://mods.factorio.com/mod/fcpu/discussion/5f4a5ac5c5438f3510e60ea9).
Version: 0.2.11
Date: 2020-08-27
  Bugfixes:
    - Show correct error message when trying to use invalid signal.
Version: 0.2.10
Date: 2020-08-27
  Features:
    - Added error line coloring.
  Bugfixes:
    - Typo introduced in v0.2.9 .
Version: 0.2.9
Date: 2020-08-26
  Changes:
    - Cleaned-up fCPU state and moved some of it into player_data.
  Bugfixes:
    - Closing widget with `E` now do not open Character widget.
    - Infinity value handling (https://mods.factorio.com/mod/fcpu/discussion/5f4692c016d864df7ac0b531).
Version: 0.2.8
Date: 2020-08-25
  Features:
    - Added Booktorio wiki support.
  Changes:
    - Added sections for Informatron.
Version: 0.2.7
Date: 2020-08-24
  Features:
    - Added Informatron support (https://mods.factorio.com/mod/informatron).
  Changes:
    - Use monospace font for `ru` language.
Version: 0.2.6
Date: 2020-08-23
  Feature:
    - Added support for Picker Dollies mod (https://mods.factorio.com/mod/PickerDollies).
Version: 0.2.5
Date: 2020-08-23
  Changes:
    - Increased output registers count (128 -> 256).
  Features:
    - Error state (`ERR`) now report `[virtual-signal=signal-fcpu-error]` signal to output wires.
    - Added russian docs (see `readme.ru.md`).
Version: 0.2.4
Date: 2020-08-22
  Changes:
    - Allow `ssv`, `sst` on output registers.
  Bugfixes:
    - Input control-signal priority now handled properly.
    - Restore run state of fCPU after blueprint stamp.
Version: 0.2.3
Date: 2020-08-21
  Bugfixes:
    - Skip openning widget while connecting wires.
Version: 0.2.2
Date: 2020-08-21
  Bugfixes:
    - Fixed custom signal names parsing.
Version: 0.2.1
Date: 2020-08-20
  Features:
    - Added copy, paste and insert signal buttons.
  Bugfixes:
    - Added missed l10n strings.
Version: 0.2.0
Date: 2020-08-20
  Features:
    - Added support for output multiple signals simultaneously.
    - Added operation state display in Alt mode.
    - Added shorthand for clearing outputs `clr out`.
  Changes:
    - `emit` opcode now set `out1` register.
    - `out1` register replaced with `out1` (`out` is deprecated and will be reserved for SIMD instructions later).
    - Updated unit-tests with new output mechanics.
  Bugfixes:
    - Use default `chanagelog.txt` sections naming.
    - Updated `readme.md`.
    - Minor changes and improvements.
Version: 0.1.14
Date: 2020-08-18
  Bugfixes:
    - The program is saved when you destroy the fCPU and then restore it from the ghost.
Version: 0.1.13
Date: 2020-08-18
  Changes:
    - Updated to Factorio v1.0 .
  Bugfixes:
    - Correct header title while not in debug.
    - Minor fixes and optimizations.
Version: 0.1.12
Date: 2020-08-17
  Bugfixes:
    - Handle non specified `event.entity` (https://mods.factorio.com/mod/fcpu/discussion/5f3a002784e738a1cc130cd3) .
Version: 0.1.11
Date: 2020-08-17
  Bugfixes:
    - `r@1` aliases now parsed correctly.
Version: 0.1.10
Date: 2020-08-16
  Changes:
    - New thumbnail, thanks Sapfy.
Version: 0.1.9
Date: 2020-08-16
  Bugfixes:
    - handling for `script_raised_*` (https://mods.factorio.com/mod/fcpu/discussion/5f36b0d2501de5727f3f1b03), see (https://mods.factorio.com/mod/Construction_Drones/discussion/5e35543fee8592000bbab6ee) .
Version: 0.1.8
Date: 2020-08-14
  Bugfixes:
    - fig, fir (https://mods.factorio.com/mod/fcpu/discussion/5f36a84b9b7aaf3d992d8d8f) .
Version: 0.1.7
Date: 2020-08-13
  Features:
    - Added new comment style `;`.
  Changes:
    - Program size increased up to 64 lines.
  Bugfixes:
    - tas, tad (https://mods.factorio.com/mod/fcpu/discussion/5f3596e989786166f267f2d7) .
Version: 0.1.6
Date: 2020-08-13
  Features:
    - Registers now support aliases. `mov r1 123` is the same as `mov reg1 123` and so on.
  Changes:
    - Case insensitive source code.
Version: 0.1.5
Date: 2020-08-12
  Bugfixes:
    - Correct gui layout for languages with bold monospaced font.
Version: 0.1.4
Date: 2020-08-11
  Bugfixes:
    - Inline comments # freeze a game.
    - `[virtual-signal=...]` properly handled.
Version: 0.1.3
Date: 2020-08-09
  Features:
    - Added pause button.
    - New control button graphics.
  Changes:
    - Disabling fCPU will clear its output signals.
  Bugfixes:
    - Fixed fixedpoint operations.
Version: 0.1.2
Date: 2020-08-09
  Bugfixes:
    - Fixed clr.
Version: 0.1.1
Date: 2020-08-09
  Changes:
    - Renamed opcode `out` to `emit`.
  Bugfixes:
    - Fixed crash on division by zero.
Version: 0.1.0
Date: 2020-08-09
  Features:
    - Initial release.
    - Basic documentation.
Version: 0.0.2
Date: 2020-07-12
  Features:
    - Added new opcodes.
    - Added settings widget.
    - Added english and russian localization.
    - Added frame handling limit.
Version: 0.0.1
Date: 2020-07-01
  Features:
    - First prototype.
    - Added blueprint save.
    - Added copy & paste ability.