meta.txt is a text file that lists a number of fields that describe the level, each field should start on a new line. While most of these are optional you should set at least:
kindsizetitledialogue
Fields
kind: LevelKind- One of
misc,combinational,sequential,architecture,factory
- One of
immutable_program: Bool- Player cannot edit the program in assembley enabled RAM & ROM
immutable_spec: Bool- Player cannot edit the
spec.isa
- Player cannot edit the
overwrite_assembly: Boolno_score: Booltests: SInt- Number of tests to run, defaults to 1
title: String- Pretty name for display in game
default_isa_spec: Stringdefault_assembly: Stringno_panel: Boolno_state_ui: Boolno_controls: Boolsize: (S16,S16,S16,S16)- Coordinates of the edges of the allowed draw area
(left, top, right, bottom) - Ignored for architecture levels
- Coordinates of the edges of the allowed draw area
unlocks_components: [ComponentKind]components_available: {ComponentKind: SInt}- This overrides the default component list based on the level progression
- Maximum number of allowed instances of
ComponentKind - -1 means unlimited
- If this option is specified then custom components will NOT be available unless the IO pins (
com_cc_input: -1, com_cc_output: -1) are also listed.
add_components: {ComponentKind: SInt}- This adds to the default component list based on the level progression
- -1 means unlimited
remove_components: [ComponentKind]- Exclude these Components from the build menu
tick_past_fail: SIntoutput_history_pins: SIntcopy_solution_to_level: [String]- Note: Potentially broken parsing code, might copy stuff to weird locations on small mistakes
copy_solution_to_architecture: Stringsave_solution_as_custom: Stringunlocks_info: Stringinput_labels: [(String,)|(String,String)|(String,String,String)]- Same Note, but less danger, just messed up names
output_labels: [String]- Same Note
unlocks_pages: [String]- Same Note
unlocks_special: [String]- Same Note
background: UIntarch_input_word_size: SIntnext_level: Stringdialogue: Dialoguepost_mortem_first_win: Dialoguepost_mortem: Dialogue
Dialogue
The <Dialogue> format is TODO.
Hints
To disable all custom components specify components_available with all of the allowed built-in components, excluding the IO pins.
