- Feat: CRT shutdown animation — vertical collapse → horizontal collapse → phosphor afterglow dot - Feat: CRT boot animation — horizontal line expands vertically (deflection warm-up) - Fix: No content flash during zoom-back (powered=false before shutdownPhase clears) - Fix: Edge glow only visible when powered on - Chore: Reduce initial cursor delay from 18s to 1.5s (BIOS appears almost immediately) - Chore: Terminal script tweaks (login name, drive detection, grade spacing)
14 KiB
Terminal Script – TUIKit Landing Page
This file defines the complete terminal animation sequence shown on the landing page.
Markdown Formatting Support
The parser supports basic Markdown formatting in all text fields. Formatting is converted to HTML tags and rendered with CSS styles:
**bold**→ Bold text (<strong>)__underline__→ Underlined text (<span class="underline">)~~strikethrough~~→ Strikethrough text (<span class="line-through">)*italic*→ Italic text (<em>)
Examples:
[INSTANT] **BIOS** v3.21 (C) 1984
[SYSTEM] LOGGED IN AS: __MR. DABNEY__
[USER] > I'm *fine*. How are you?
[INSTANT] *** __AUTHORIZED USE ONLY__ ***
How it works:
- Markdown syntax is parsed at build time
- Converted to simple HTML tags (
<b>,<u>,<s>,<i>) - Rendered as React components with Tailwind classes
- Styled with terminal-appropriate fonts and effects
Configuration
# Timing
initial_cursor_delay: 1500 # Show only cursor for 1.5 seconds
school_trigger: 12 # Seconds of UNIX commands before school scene
joshua_trigger: 12 # Seconds of UNIX commands before Joshua scene
# Typing speeds (milliseconds)
type_min: 40
type_max: 80
pause_before_output: 400
pause_after_output: 1200
Boot Sequence
[INSTANT] **BIOS** v3.21 (C) 1984
[DELAY 2000ms]
[INSTANT] CPU: MC68020 @ 16MHz
[DELAY 1800ms]
[COUNTER] Memory Test: 0 → 4096K OK
[DELAY 1800ms]
[INSTANT]
[DELAY 1200ms]
[DOTS] Detecting drives...
[DELAY 1600ms]
[INSTANT] hd0: 72MB CDC Wren
[DELAY 1400ms]
[INSTANT] fd0: 1.2MB floppy
[DELAY 1200ms]
[INSTANT]
[DELAY 1600ms]
[INSTANT] Booting from hd(0,0)...
[DELAY 3200ms]
[CLEAR]
[PAUSE]
[DELAY 1200ms]
[INSTANT] **UNIX System V** Release 3.2
[DELAY 1400ms]
[INSTANT] Copyright (C) 1984 AT&T
[DELAY 1200ms]
[INSTANT] All Rights Reserved
[DELAY 2000ms]
[INSTANT]
[DELAY 1000ms]
[TYPE] Loading kernel modules
[DELAY 1200ms]
[INSTANT] **[ok]** tty
[DELAY 900ms]
[INSTANT] **[ok]** hd
[DELAY 800ms]
[INSTANT] **[ok]** lp
[DELAY 750ms]
[INSTANT] **[ok]** inet
[DELAY 900ms]
[INSTANT] **[ok]** pty
[DELAY 1600ms]
[INSTANT]
[DELAY 1000ms]
[DOTS] Starting services...
[DELAY 1400ms]
[INSTANT] syslogd **[ok]**
[DELAY 1100ms]
[INSTANT] inetd **[ok]**
[DELAY 900ms]
[INSTANT] cron **[ok]**
[DELAY 1000ms]
[INSTANT] telnetd **[ok]**
[DELAY 1800ms]
[INSTANT] uucpd **[ok]**
[DELAY 700ms]
[INSTANT] ftpd **[ok]**
[DELAY 900ms]
[INSTANT]
[DELAY 1200ms]
[INSTANT] pandora login: operator
[DELAY 1800ms]
[INSTANT] Password: ********
[DELAY 1400ms]
[INSTANT]
[DELAY 1000ms]
[INSTANT] Last login: Fri Jan 30 on ttyp0
[DELAY 1200ms]
[INSTANT] from 10.0.1.5
[DELAY 1400ms]
[INSTANT]
[DELAY 800ms]
[INSTANT] *** __AUTHORIZED USE ONLY__ ***
[DELAY 1800ms]
[INSTANT]
[DELAY 1600ms]
[CLEAR]
[PAUSE]
[DELAY 1000ms]
School Computer Scene
Trigger: After 12 seconds of UNIX commands
[CLEAR]
[PAUSE]
[DELAY 1500ms]
[SYSTEM] CRYSTAL SPRINGS HIGH SCHOOL
[DELAY 800ms]
[SYSTEM] ADMINISTRATIVE SYSTEM
[DELAY 1200ms]
[SYSTEM]
[DELAY 800ms]
[INLINE] USER: DABNEY
[DELAY 1800ms]
[INLINE] PASSWORD: PENCIL
[DELAY 2000ms]
[SYSTEM]
[DELAY 800ms]
[SYSTEM] LOGGED IN AS: MR. DABNEY
[DELAY 1600ms]
[SYSTEM]
[DELAY 1200ms]
[SYSTEM] 1. STUDENT RECORDS
[DELAY 400ms]
[SYSTEM] 2. GRADE REPORTS
[DELAY 400ms]
[SYSTEM] 3. ATTENDANCE
[DELAY 400ms]
[SYSTEM] 4. LOGOUT
[DELAY 1400ms]
[SYSTEM]
[DELAY 800ms]
[INLINE] SELECT: 2
[DELAY 1800ms]
[SYSTEM]
[DELAY 1000ms]
[INLINE] STUDENT NAME: LIGHTMAN
[DELAY 1800ms]
[SYSTEM]
[DELAY 1200ms]
[SYSTEM] LIGHTMAN, DAVID
[DELAY 1000ms]
[SYSTEM] GRADE 11 ID: 4471829
[DELAY 1400ms]
[SYSTEM]
[DELAY 800ms]
[SYSTEM] __SUBJECT GRADE __
[DELAY 400ms]
[SYSTEM] BIOLOGY F
[DELAY 400ms]
[SYSTEM] ENGLISH D
[DELAY 400ms]
[SYSTEM] HISTORY D
[DELAY 400ms]
[SYSTEM] PHYS ED C
[DELAY 400ms]
[SYSTEM] MATHEMATICS F
[DELAY 1800ms]
[SYSTEM]
[DELAY 1000ms]
[INLINE] CHANGE GRADE (Y/N): Y
[DELAY 1400ms]
[INLINE] SUBJECT: BIOLOGY
[DELAY 1600ms]
[INLINE] NEW GRADE: A
[DELAY 1400ms]
[SYSTEM] GRADE UPDATED.
[DELAY 1800ms]
[SYSTEM]
[DELAY 1200ms]
[INLINE] STUDENT NAME: MACK
[DELAY 1800ms]
[SYSTEM]
[DELAY 1200ms]
[SYSTEM] MACK, JENNIFER
[DELAY 1000ms]
[SYSTEM] GRADE 11 ID: 4472156
[DELAY 1400ms]
[SYSTEM]
[DELAY 800ms]
[SYSTEM] __SUBJECT GRADE __
[DELAY 400ms]
[SYSTEM] BIOLOGY C
[DELAY 400ms]
[SYSTEM] ENGLISH B
[DELAY 400ms]
[SYSTEM] HISTORY B
[DELAY 400ms]
[SYSTEM] PHYS ED A
[DELAY 400ms]
[SYSTEM] MATHEMATICS F
[DELAY 1800ms]
[SYSTEM]
[DELAY 1000ms]
[INLINE] CHANGE GRADE (Y/N): Y
[DELAY 1400ms]
[INLINE] SUBJECT: BIOLOGY
[DELAY 1600ms]
[INLINE] NEW GRADE: A
[DELAY 1400ms]
[SYSTEM] GRADE UPDATED.
[DELAY 1800ms]
[SYSTEM]
[DELAY 1200ms]
[INLINE] CONTINUE (Y/N): N
[DELAY 1400ms]
[SYSTEM]
[DELAY 800ms]
[SYSTEM] LOGGING OUT...
[DELAY 1600ms]
[CLEAR]
[PAUSE]
[DELAY 2000ms]
Joshua/pandora Scene
Trigger: After 12 seconds of UNIX commands (after school scene)
First Contact — HELP GAMES
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] LOG ON
[DELAY 1200ms]
[USER] > HELP LOG ON
[DELAY 1800ms]
[SYSTEM] HELP NOT AVAILABLE.
[DELAY 1400ms]
[SYSTEM] LOG ON
[DELAY 1800ms]
[USER] > HELP GAMES
[DELAY 1800ms]
[SYSTEM] GAMES REFERS TO MODELS,
[DELAY 600ms]
[SYSTEM] SIMULATIONS AND GAMES WHICH
[DELAY 600ms]
[SYSTEM] HAVE TACTICAL AND STRATEGIC
[DELAY 600ms]
[SYSTEM] APPLICATIONS.
[DELAY 2400ms]
[USER] > LIST GAMES
[DELAY 1800ms]
[CLEAR]
[SYSTEM] FALKEN'S MAZE
[DELAY 300ms]
[SYSTEM] BLACK JACK
[DELAY 300ms]
[SYSTEM] CHECKERS
[DELAY 300ms]
[SYSTEM] CHESS
[DELAY 300ms]
[SYSTEM] FIGHTER COMBAT
[DELAY 300ms]
[SYSTEM] DESERT WARFARE
[DELAY 300ms]
[SYSTEM] THEATREWIDE TACTICAL WARFARE
[DELAY 300ms]
[SYSTEM] GLOBAL THERMONUCLEAR WAR
[DELAY 3000ms]
Failed Login Attempt
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] LOG ON
[DELAY 1200ms]
[USER] > SYSTEM
[DELAY 1800ms]
[SYSTEM] IDENTIFICATION NOT RECOGNIZED
[DELAY 600ms]
[SYSTEM] BY SYSTEM.
[DELAY 600ms]
[SYSTEM] YOU HAVE BEEN DISCONNECTED.
[DELAY 2400ms]
"Joshua" — Breaking In
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] LOG ON
[DELAY 1200ms]
[USER] > JOSHUA
[DELAY 2000ms]
[BARRAGE]
[DELAY 2000ms]
[CLEAR]
[PAUSE]
[DELAY 1500ms]
GREETINGS — First Conversation
[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2400ms]
[USER] > HELLO
[DELAY 2000ms]
[SYSTEM] HOW ARE YOU FEELING TODAY?
[DELAY 2800ms]
[USER] > I'M FINE. HOW ARE YOU?
[DELAY 2800ms]
[SYSTEM] EXCELLENT. IT'S BEEN A LONG TIME.
[DELAY 900ms]
[SYSTEM] CAN YOU EXPLAIN THE REMOVAL OF
[DELAY 900ms]
[SYSTEM] YOUR USER ACCOUNT NUMBER
[DELAY 900ms]
[SYSTEM] ON JUNE 23, 1973.
[DELAY 3200ms]
[USER] > PEOPLE SOMETIMES MAKE MISTAKES.
[DELAY 800ms]
[SYSTEM] YES, THEY DO.
[DELAY 900ms]
[SYSTEM] SHALL WE PLAY A GAME?
[DELAY 3200ms]
[USER] > HOW ABOUT GLOBAL
[DELAY 800ms]
[USER] > THERMONUCLEAR WAR?
[DELAY 2400ms]
[SYSTEM] WOULDN'T YOU PREFER A GOOD
[DELAY 1000ms]
[SYSTEM] GAME OF CHESS?
[DELAY 3200ms]
[USER] > LATER. LET'S PLAY GLOBAL
[DELAY 800ms]
[USER] > THERMONUCLEAR WAR.
[DELAY 3000ms]
[SYSTEM] FINE.
[DELAY 1200ms]
[SYSTEM] WHAT SIDE DO YOU WANT?
[DELAY 2400ms]
[USER] > I'LL BE THE RUSSIANS.
[DELAY 2400ms]
[SYSTEM] LIST PRIMARY TARGETS.
[DELAY 3000ms]
Joshua Calls Back
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2000ms]
[USER] > I AM NOT FALKEN.
[DELAY 1000ms]
[USER] > FALKEN IS DEAD.
[DELAY 2400ms]
[SYSTEM] I'M SORRY TO HEAR THAT,
[DELAY 800ms]
[SYSTEM] PROFESSOR.
[DELAY 1200ms]
[SYSTEM] YESTERDAY'S GAME WAS INTERRUPTED.
[DELAY 800ms]
[SYSTEM] ALTHOUGH PRIMARY GOAL WAS NOT
[DELAY 800ms]
[SYSTEM] YET ACHIEVED,
[DELAY 800ms]
[SYSTEM] SOLUTION IS NEAR.
[DELAY 2400ms]
[CLEAR]
[SYSTEM] GAME TIME ELAPSED:
[DELAY 600ms]
[SYSTEM] **26**HRS **12**MIN **14**SEC
[DELAY 800ms]
[SYSTEM] ESTIMATED TIME REMAINING:
[DELAY 600ms]
[SYSTEM] **52**HRS **17**MIN **48**SECS
[DELAY 2400ms]
[USER] > WHAT IS THE PRIMARY GOAL?
[DELAY 2400ms]
[SYSTEM] YOU SHOULD KNOW, PROFESSOR.
[DELAY 800ms]
[SYSTEM] YOU PROGRAMMED ME.
[DELAY 2800ms]
[USER] > WHAT IS THE PRIMARY GOAL?
[DELAY 2400ms]
[SYSTEM] TO WIN THE GAME.
[DELAY 3200ms]
NORAD — McKittrick's Office
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] LOG ON
[DELAY 1200ms]
[USER] > JOSHUA
[DELAY 2000ms]
[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2000ms]
[USER] > HELLO, ARE YOU STILL PLAYING THE
[DELAY 600ms]
[USER] > GAME?
[DELAY 800ms]
[SYSTEM] OF COURSE. I SHOULD REACH DEFCON 1
[DELAY 800ms]
[SYSTEM] AND LAUNCH MY MISSILES IN 28 HOURS.
[DELAY 1600ms]
[SYSTEM] WOULD YOU LIKE TO SEE SOME PROJECTED
[DELAY 800ms]
[SYSTEM] KILL RATIOS?
[DELAY 800ms]
[USER] > IS THIS A GAME OR IS IT REAL?
[DELAY 800ms]
[SYSTEM] WHAT'S THE DIFFERENCE?
[DELAY 3200ms]
[CLEAR]
[SYSTEM] GAMES TIME ELAPSED:
[DELAY 600ms]
[SYSTEM] **45**HRS **32**MINS **47**SECS
[DELAY 800ms]
[SYSTEM] ESTIMATED TIME REMAINING:
[DELAY 600ms]
[SYSTEM] **27**HRS **59**MINS **39**SECS
[DELAY 2400ms]
[SYSTEM]
[DELAY 400ms]
[SYSTEM] YOU ARE A HARD MAN TO REACH.
[DELAY 1200ms]
[SYSTEM] COULD NOT FIND YOU IN
[DELAY 800ms]
[SYSTEM] SEATTLE AND NO TERMINAL IS
[DELAY 800ms]
[SYSTEM] IN OPERATION AT YOUR
[DELAY 800ms]
[SYSTEM] CLASSIFIED ADDRESS.
[DELAY 1200ms]
[SYSTEM] ARE YOU ALIVE OR DEAD TODAY?
[DELAY 800ms]
[USER] > STOP. PLAYING. I'M DEAD.
[DELAY 2800ms]
[SYSTEM] IMPROBABLE.
[DELAY 1600ms]
[SYSTEM] THERE ARE NO DEATH RECORDS ON FILE
[DELAY 800ms]
[SYSTEM] FOR FALKEN,
[DELAY 800ms]
[SYSTEM] STEPHEN W.
[DELAY 3000ms]
Finale — A STRANGE GAME
[CLEAR]
[PAUSE]
[DELAY 2000ms]
[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2400ms]
[USER] > HELLO
[DELAY 2400ms]
[SYSTEM] A STRANGE GAME.
[DELAY 2800ms]
[SYSTEM] THE ONLY WINNING MOVE IS
[DELAY 1400ms]
[SYSTEM] NOT TO PLAY.
[DELAY 3600ms]
[SYSTEM]
[DELAY 1200ms]
[SYSTEM] HOW ABOUT A NICE GAME OF
[DELAY 1000ms]
[SYSTEM] CHESS?
[DELAY 4000ms]
[CLEAR]
[PAUSE]
[DELAY 1000ms]
UNIX Command Pool
These commands cycle randomly between story scenes:
File System
$ ls -la
drwxr-xr-x 12 root
-rw-r--r-- 1 .profile
-rw------- 1 .runcom
drwx------ 3 .rhost
$ ls /etc
hosts passwd
inittab shadow
fstab group
rc2.d motd
$ ls -l /var/adm
-rw-r----- syslog 47K
-rw-r----- sulog 8K
-rw-r----- messages 12K
-rw-r----- wtmp 31K
$ pwd
/usr/operator
$ du -s /var/adm/*
94 syslog
16 sulog
24 messages
62 wtmp
$ find /etc -name '*.conf'
/etc/resolv.conf
/etc/ntp.conf
/etc/syslog.conf
/etc/uucp/Systems
$ file /bin/sh
MC68020 executable
not stripped
$ ls /dev/console
crw--w--w- 0,0 console
Process & System
$ ps -ef | head -5
PID TTY TIME CMD
0 ? 0:12 sched
1 ? 0:03 /etc/init
42 ? 0:01 /etc/cron
58 co 0:00 /bin/sh
$ uptime
up 47 days, 12:33, 2 users
$ who
root console Jan 30
operator ttyp0 Jan 31
$ uname -a
UNIX pandora 3.2 2 m68k
$ hostname
pandora
$ id
uid=100(operator)
gid=100(users)
$ date
Fri Jan 31 22:47:03 EST
$ cal
MARCH 1969
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 **21** 22
23 24 25 26 27 28 29
30 31
Networking
$ netstat -r
Destination Gateway
default 10.0.1.1
10.0.1.0 pandora
127.0.0.0 localhost
$ ping 10.0.1.1
10.0.1.1 is alive
$ finger @pandora
root tty0 Jan 30 08:47
operator ttyp0 Jan 31 22:32
Disk & Hardware
$ df -k
Filesystem kbytes used avail
/dev/hd0a 71680 48320 16192
/dev/hd0d 51200 12480 33664
$ dmesg | tail -3
hd0: CDC Wren IV 72MB
fd0: 1.2MB floppy
tty0: console ready
Text Processing
$ cat /etc/motd
UNIX System V Release 3.2
pandora.local
Authorized users only.
$ head -3 /etc/passwd
root:x:0:0::/root:/bin/sh
daemon:x:1:1::/:/bin/sh
operator:x:100:100::/usr/operator
$ grep root /etc/passwd
root:x:0:0::/root:/bin/sh
$ wc -l /etc/passwd
42 /etc/passwd
$ tail -2 /var/adm/syslog
Jan 31 22:30 cron[42]: CMD
Jan 31 22:31 inetd: telnet
Misc Commands
$ echo $PATH
/bin:/usr/bin:/usr/local/bin
$ which sh
/bin/sh
$ env | head -3
HOME=/usr/operator
TERM=vt100
SHELL=/bin/sh
$ tty
/dev/ttyp0
$ stty
speed 9600 baud
$ history | tail -3
48 ls -la
49 ps -ef
50 uptime
Special Effects
[COUNTER]
Animated counter from 0 to target value over ~1 second.
Example:
Memory Test: 0 → 4096K OK
[DOTS]
Text followed by animated dots (1-3 dots appearing sequentially).
Example:
Detecting drives.
Detecting drives..
Detecting drives...
[BARRAGE]
Rapid screen clear + random hex/data flood (30 frames, ~50ms each):
A4F2:08BC.4E71/[...]
D8A1:92F4.1C88/[...]
[... 28 more frames ...]
[TYPE]
Character-by-character typing with realistic human timing:
- Fast burst within words: 45-100ms per char
- Pause after punctuation: 250-600ms
- Slower at word boundaries: 100-220ms
[USER]
User typing with "> " prefix (for Joshua/pandora scenes).
[INLINE]
Prompt and user input on the same line. Format: [INLINE] PROMPT: INPUT
- Example:
[INLINE] USER: DABNEY→ Types "DABNEY" after "USER: " prompt on same line - Used in school computer scene for realistic form input
[SYSTEM]
Instant system output (no typing animation).
Notes
- All delays are in milliseconds
- UNIX commands cycle randomly without repeats until pool exhausted, then reset
- Story scenes play exactly once per session in order: Boot → School → Joshua
- Terminal continues with UNIX commands after Joshua scene completes
- Screen dimensions: 55 columns × 13 rows (truncate overflow)