Save breaker changes: Difference between revisions

From Turing Complete
(Initial draft)
 
(Added stub section for New Assembler)
Line 12: Line 12:


Both wires and built-in components have configurable widths instead of separate 8-, 16-, 32-, and 64- bit versions, these now have a single component which has a configurable width.
Both wires and built-in components have configurable widths instead of separate 8-, 16-, 32-, and 64- bit versions, these now have a single component which has a configurable width.
== New Assembler ==
The Program block has been replaced with the Assemlber for writing assembly code.
This provides much greater flexibility in instruction formats.
'''TODO''': This needs more detail.


== Scoring ==
== Scoring ==

Revision as of 07:20, 14 December 2024

wip
wip

This page descibes the early access verion 0.1250 Beta. It may not be completly correct for the the current stable version, nor the latest unstable version. Help us update it, and you get a cookie.

Save breaker is the alpha development branch on Steam.

While there is some support for converting a stable save game to save_breaker it is NOT possible to switch back and forth, switching from save_breaker back to stable will break your save. Rendering it unsuable in either version.

Make a backup of the save folder, see in game options menu for the location.

This is a brief overview of the main changes from stable (version 0.1059).

Variable width

Both wires and built-in components have configurable widths instead of separate 8-, 16-, 32-, and 64- bit versions, these now have a single component which has a configurable width.

New Assembler

The Program block has been replaced with the Assemlber for writing assembly code.

This provides much greater flexibility in instruction formats.

TODO: This needs more detail.

Scoring

The main scroring mechanic is now gates * delay * ticks instead of the sumamtion of the three scores.

Component scores have also been updated

Component Old (gate/delay) New (gate/delay)
Basic bit gates (AND/OR/NAND/NOR) 1/2 1/1
Bit Switch 1/2 2/1
Bit Delay Line 1/0 5/0

IO pins

There are now only 2 main types of component IO pins

Old Component Replaced with
Input (any width) Input (configured width)
Output (any width) Output
Bidirectional (any width) Output
Switched Output (any width) Output (add Swtich)

Output pins are now "unbuffered" and will propagate Z-state. If this is not desired add a static indexer, or other noop componet to corece Z-state to zero.

Output pins will inherit the width of the connected wire/component feeding them.

The various widths of input pins have been merged in to a single Input Pin with a configurable width, including 1.

To convert the old Switched Outputs you need to add a switch inside the CC before the new output pin.

IO pins are a different shape and larger then the used to be, this most affects 1-bit pins.

Size changes

A number of components have changed size, most will have wrappers to preserve the form factor. These can be found in the old_components build menu.

A few cannot be wrapped in this way and circuits using them will need to be adjusted:

  • RAM (all types)
  • ROM
  • IO pins (all types, see above)
  • Front Panel
  • Assembler (replacing Program)

Circuits using componets that have changed size so that some components now overlap will be unsable with "ghost" versions that can be moved. Once all of the overlaps have been resovled, and wires reconnected, the circuit can be used again.

Level changes

The Overture opcodes have changed, but the Overture levels are realatively unchanged otherwise.

Operation Old opcode New opcode
OR 0 1
NAND 1 0
NOR 2 3
AND 3 2
ADD 4 4
SUB 5 5

The LEG levels in CPU Architecture 2, and beyond, have been rewritten, there are too many changes to list here.

There are new levels, expanding on LEG.