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
Mods introducing new content into the game.
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.