2026-10-18 19:26:20 +02:00
|
|
|
// Song text, timing, ASCII art and credits from Portal's ending sequence,
|
|
|
|
|
// imported from still-alive-web by SD SkyKlouD:
|
|
|
|
|
// https://github.com/SDSkyKlouD/still-alive-web
|
|
|
|
|
//
|
|
|
|
|
// Disclaimer: "Still Alive" was written by Jonathan Coulton for Portal (2007).
|
|
|
|
|
// Portal, its credits and ASCII art are (c) Valve Corporation, see
|
|
|
|
|
// https://store.steampowered.com/legal/. Included only for personal,
|
|
|
|
|
// non-commercial use in this hobby project; all rights remain with their
|
|
|
|
|
// owners. This project is not affiliated with or endorsed by Valve.
|
|
|
|
|
//
|
|
|
|
|
// Generated by tools/import_still_alive.py - do not edit by hand.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2026-10-18 20:20:13 +02:00
|
|
|
#include "still_alive.h"
|
|
|
|
|
|
|
|
|
|
namespace el512sa {
|
2026-10-18 19:26:20 +02:00
|
|
|
|
|
|
|
|
static const char* const ART_APERTURE_LINES[] = {
|
|
|
|
|
" .,-:;//;:=,",
|
|
|
|
|
" . :H@@@MM@M#H/.,+%;,",
|
|
|
|
|
" ,/X+ +M@@M@MM%=,-%HMMM@X/,",
|
|
|
|
|
" -+@MM; $M@@MH+-,;XMMMM@MMMM@+-",
|
|
|
|
|
" ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/.",
|
|
|
|
|
" ,%MM@@MH ,@%= .---=-=:=,.",
|
|
|
|
|
" =@#@@@MX ., -%HX$$%%%+;",
|
|
|
|
|
" =-./@M@M$ .;@MMMM@MM:",
|
|
|
|
|
" X@/ -$MM/ .+MM@@@M$",
|
|
|
|
|
",@M@H: :@: . =X#@@@@-",
|
|
|
|
|
",@@@MMX, . /H- ;@M@M=",
|
|
|
|
|
".H@@@@M@+, %MM+..%#$.",
|
|
|
|
|
" /MMMM@MMH/. XM@MH; =;",
|
|
|
|
|
" /%+%$XHH@$= , .H@@@@MX,",
|
|
|
|
|
" .=--------. -%H.,@@@@@MX,",
|
|
|
|
|
" .%MM@@@HHHXX$$$%+- .:$MMX =M@@MM%.",
|
|
|
|
|
" =XMMM@MM@MM#H;,-+HMM@M+ /MMMX=",
|
|
|
|
|
" =%@M@M#@$-.=$@MM@@@M; %M%=",
|
|
|
|
|
" ,:+$+-,/H#MMMMMMM@= =,",
|
|
|
|
|
" =++%%%%+/:-.",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_CAKE_LINES[] = {
|
|
|
|
|
" ,:/+/-",
|
|
|
|
|
" /M/ .,-=;//;-",
|
|
|
|
|
" .:/= ;MH/, ,=/+%$XH@MM#@:",
|
|
|
|
|
" -$##@+$###@H@MMM#######H:. -/H#",
|
|
|
|
|
" .,H@H@ X######@ -H#####@+- -+H###@X",
|
|
|
|
|
" .,@##H; +XM##M/, =%@###@X;-",
|
|
|
|
|
"X%- :M##########$. .:%M###@%:",
|
|
|
|
|
"M##H, +H@@@$/-. ,;$M###@%, -",
|
|
|
|
|
"M####M=,,---,.-%%H####M$: ,+@##",
|
|
|
|
|
"@##################@/. :%H##@$-",
|
|
|
|
|
"M###############H, ;HM##M$=",
|
|
|
|
|
"#################. .=$M##M$=",
|
|
|
|
|
"################H..;XM##M$= .:+",
|
|
|
|
|
"M###################@%= =+@MH%",
|
|
|
|
|
"@################M/. =+H#X%=",
|
|
|
|
|
"=+M##############M, -/X#X+;.",
|
|
|
|
|
" .;XM##########H= ,/X#H+:,",
|
|
|
|
|
" .=+HM######M+/+HM@+=.",
|
|
|
|
|
" ,:/%XM####H/.",
|
|
|
|
|
" ,.:=-.",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_EXPLOSION_LINES[] = {
|
|
|
|
|
" .+",
|
|
|
|
|
" /M;",
|
|
|
|
|
" H#@: ;,",
|
|
|
|
|
" -###H- -@/",
|
|
|
|
|
" %####$. -; .%#X",
|
|
|
|
|
" M#####+;#H :M#M.",
|
|
|
|
|
".. .+/;%#########X###-",
|
|
|
|
|
" -/%H%+;-, +##############/",
|
|
|
|
|
" .:$M###MH$%+############X ,--=;-",
|
|
|
|
|
" -/H#####################H+=.",
|
|
|
|
|
" .+#################X.",
|
|
|
|
|
" =%M####################H;.",
|
|
|
|
|
" /@###############+;;/%%;,",
|
|
|
|
|
" -%###################$.",
|
|
|
|
|
" ;H######################M=",
|
|
|
|
|
" ,%#####MH$%;+#####M###-/@####%",
|
|
|
|
|
" :$H%+;=- -####X.,H# -+M##@-",
|
|
|
|
|
" . ,###; ; =$##+",
|
|
|
|
|
" .#H, :XH,",
|
|
|
|
|
" + .;-",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_RADIO_LINES[] = {
|
|
|
|
|
" ;=",
|
|
|
|
|
" /=",
|
|
|
|
|
" ;=",
|
|
|
|
|
" /=",
|
|
|
|
|
" ;=",
|
|
|
|
|
" /=",
|
|
|
|
|
" ;=",
|
|
|
|
|
" /=",
|
|
|
|
|
" ,--==-:$;",
|
|
|
|
|
" ,/$@#######@X+-",
|
|
|
|
|
" ./@###############X=",
|
|
|
|
|
" /M#####X+/;;;;+H#####$.",
|
|
|
|
|
" %####M/;+H@XX@@%;;@####@,",
|
|
|
|
|
" +####H=+##$,--,=M#X-%####@.",
|
|
|
|
|
" -####X,X@HHXH##MXHXXH-+####$",
|
|
|
|
|
" X###@.X/$M$:####$=@X/X,X####-",
|
|
|
|
|
".####:+$:##@:####$:##H/X=####%",
|
|
|
|
|
"-%%$%,+==%$+-$+:$;-$$%-+,/$%%+",
|
|
|
|
|
"-/+%%X$XX$$$$$$$%$$$%$X$X$%+/-",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_ATOM_LINES[] = {
|
|
|
|
|
" =/;;/-",
|
|
|
|
|
" +: //",
|
|
|
|
|
" /; /;",
|
|
|
|
|
" -X H.",
|
|
|
|
|
".//;;;:;;-, X= :+ .-;:=;:;%;.",
|
|
|
|
|
"M- ,=;;;#:, ,:#;;:=, ,@",
|
|
|
|
|
":% :%.=/++++/=.$= %=",
|
|
|
|
|
" ,%; %/:+/;,,/++:+/ ;+.",
|
|
|
|
|
" ,+/. ,;@+, ,%H;, ,/+,",
|
|
|
|
|
" ;+;;/= @. .H##X -X :///+;",
|
|
|
|
|
" ;+=;;;.@, .XM@$. =X.//;=%/.",
|
|
|
|
|
" ,;: :@%= =$H: .+%-",
|
|
|
|
|
" ,%= %;-///==///-// =%,",
|
|
|
|
|
";+ :%-;;;:;;;;-X- +:",
|
|
|
|
|
"@- .-;;;;M- =M/;;;-. -X",
|
|
|
|
|
" :;;::;;-. %- :+ ,-;;-;:==",
|
|
|
|
|
" ,X H.",
|
|
|
|
|
" ;/ %=",
|
|
|
|
|
" // +;",
|
|
|
|
|
" ,////,",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_BIOHAZARD_LINES[] = {
|
|
|
|
|
" =+$HM####@H%;,",
|
|
|
|
|
" /H###############M$,",
|
|
|
|
|
" ,@################+",
|
|
|
|
|
" .H##############+",
|
|
|
|
|
" X############/",
|
|
|
|
|
" $##########/",
|
|
|
|
|
" %########/",
|
|
|
|
|
" /X/;;+X/",
|
|
|
|
|
"",
|
|
|
|
|
" -XHHX-",
|
|
|
|
|
" ,######,",
|
|
|
|
|
"#############X .M####M. X#############",
|
|
|
|
|
"##############- -//- -##############",
|
|
|
|
|
"X##############%, ,+##############X",
|
|
|
|
|
"-##############X X##############-",
|
|
|
|
|
" %############% %############%",
|
|
|
|
|
" %##########; ;##########%",
|
|
|
|
|
" ;#######M= =M#######;",
|
|
|
|
|
" .+M###@, ,@###M+.",
|
|
|
|
|
" :XH. .HX:",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_BLACKMESA_LINES[] = {
|
|
|
|
|
" .-;+$XHHHHHHX$+;-.",
|
|
|
|
|
" ,;X@@X%/;=----=:/%X@@X/,",
|
|
|
|
|
" =$@@%=. .=+H@X:",
|
|
|
|
|
" -XMX: =XMX=",
|
|
|
|
|
" /@@: =H@+",
|
|
|
|
|
" %@X, .$@$",
|
|
|
|
|
" +@X. $@%",
|
|
|
|
|
"-@@, .@@=",
|
|
|
|
|
"%@% +@$",
|
|
|
|
|
"H@: :@H",
|
|
|
|
|
"H@: :HHHHHHHHHHHHHHHHHHX, =@H",
|
|
|
|
|
"%@% ;@M@@@@@@@@@@@@@@@@@H- +@$",
|
|
|
|
|
"=@@, :@@@@@@@@@@@@@@@@@@@@@= .@@:",
|
|
|
|
|
" +@X :@@@@@@@@@@@@@@@M@@@@@@:%@%",
|
|
|
|
|
" $@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$.",
|
|
|
|
|
" +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+",
|
|
|
|
|
" =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=",
|
|
|
|
|
" :$@@@@@@@@@@@@@@@@@@@M@@@@$:",
|
|
|
|
|
" ,;$@@@@@@@@@@@@@@@@@@X/-",
|
|
|
|
|
" .-;+$XXHHHHHX$+;-.",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_BROKENHEART_LINES[] = {
|
|
|
|
|
" .,---.",
|
|
|
|
|
" ,/XM#MMMX;,",
|
|
|
|
|
" -%##########M%,",
|
|
|
|
|
" -@######% $###@=",
|
|
|
|
|
" .,--, -H#######$ $###M:",
|
|
|
|
|
" ,;$M###MMX; .;##########$;HM###X=",
|
|
|
|
|
" ,/@##########H= ;################+",
|
|
|
|
|
"-+#############M/, %##############+",
|
|
|
|
|
"%M###############= /##############:",
|
|
|
|
|
"H################ .M#############;.",
|
|
|
|
|
"@###############M ,@###########M:.",
|
|
|
|
|
"X################, -$=X#######@:",
|
|
|
|
|
"/@##################%- +######$-",
|
|
|
|
|
".;##################X .X#####+,",
|
|
|
|
|
" .;H################/ -X####+.",
|
|
|
|
|
" ,;X##############, .MM/",
|
|
|
|
|
" ,:+$H@M#######M#$- .$$=",
|
|
|
|
|
" .,-=;+$@###X: ;/=.",
|
|
|
|
|
" .,/X$; .::,",
|
|
|
|
|
" ., ..",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_CHECK_LINES[] = {
|
|
|
|
|
" :X-",
|
|
|
|
|
" :X###",
|
|
|
|
|
" ;@####@",
|
|
|
|
|
" ;M######X",
|
|
|
|
|
" -@########$",
|
|
|
|
|
" .$##########@",
|
|
|
|
|
" =M############-",
|
|
|
|
|
" +##############$",
|
|
|
|
|
" .H############$=.",
|
|
|
|
|
" ,/: ,M##########M;.",
|
|
|
|
|
" -+@###; =##########M;",
|
|
|
|
|
" =%M#######; :#########M/",
|
|
|
|
|
"-$M###########; :#########/",
|
|
|
|
|
" ,;X###########; =########$.",
|
|
|
|
|
" ;H#########+#######M=",
|
|
|
|
|
" ,+##############+",
|
|
|
|
|
" /M#########@-",
|
|
|
|
|
" ;M######%",
|
|
|
|
|
" +####:",
|
|
|
|
|
" ,$M-",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_COMPANIONCUBE_LINES[] = {
|
|
|
|
|
"+@##########M/ :@#########@/",
|
|
|
|
|
"##############$;H#######@;+#############",
|
|
|
|
|
"###############M########################",
|
|
|
|
|
"##############X,-/++/+%+/,%#############",
|
|
|
|
|
"############M$: -X############",
|
|
|
|
|
"##########H;. ,--. =X##########",
|
|
|
|
|
":X######M; -$H@M##MH%: :H#######@",
|
|
|
|
|
" =%#M+=, ,+@#######M###H: -=/M#%",
|
|
|
|
|
" %M##@+ .X##$, ./+- ./###; +M##%",
|
|
|
|
|
" %####M. /###= @##M. X###%",
|
|
|
|
|
" %####M. ;M##H:. =$###X. $###%",
|
|
|
|
|
" %####@. /####M$-./@#####: %###%",
|
|
|
|
|
" %H#M/, /H###########@: ./M#%",
|
|
|
|
|
" ;$H##@@H: .;$HM#MMMH$;, ./H@M##M$=",
|
|
|
|
|
"X#########%. ..,,. .;@#########",
|
|
|
|
|
"###########H+:. ./@###########",
|
|
|
|
|
"##############/ ./%%%%+/.-M#############",
|
|
|
|
|
"##############H$@#######@@##############",
|
|
|
|
|
"##############X%########M$M#############",
|
|
|
|
|
"+M##########H: .$##########X=",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_FIRE_LINES[] = {
|
|
|
|
|
" -$-",
|
|
|
|
|
" .H##H,",
|
|
|
|
|
" +######+",
|
|
|
|
|
" .+#########H.",
|
|
|
|
|
" -$############@.",
|
|
|
|
|
" =H###############@ -X:",
|
|
|
|
|
" .$##################: @#@-",
|
|
|
|
|
" ,; .M###################; H###;",
|
|
|
|
|
" ;@#: @###################@ ,#####:",
|
|
|
|
|
" -M###. M#################@. ;######H",
|
|
|
|
|
" M####- +###############$ =@#######X",
|
|
|
|
|
" H####$ -M###########+ :#########M,",
|
|
|
|
|
" /####X- =########% :M########@/.",
|
|
|
|
|
" ,;%H@X; .$###X :##MM@%+;:-",
|
|
|
|
|
" ..",
|
|
|
|
|
" -/;:-,. ,,-==+M########H",
|
|
|
|
|
" -##################@HX%%+%%$%%%+:,,",
|
|
|
|
|
" .-/H%%%+%%$H@###############M@+=:/+:",
|
|
|
|
|
"/XHX%:#####MH%= ,---:;;;;/%%XHM,:###$",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_GLADOS_LINES[] = {
|
|
|
|
|
" #+ @ # # M#@",
|
|
|
|
|
" . .X X.%##@;# # +@#######X. @#%",
|
|
|
|
|
" ,==. ,######M+ -#####%M####M- #",
|
|
|
|
|
" :H##M%:=##+ .M##M,;#####/+#######% ,M#",
|
|
|
|
|
" .M########= =@#@.=#####M=M#######= X#",
|
|
|
|
|
" :@@MMM##M. -##M.,#######M#######. = M",
|
|
|
|
|
" @##..###:. .H####. @@ X,",
|
|
|
|
|
" ############: ###,/####; /##= @#. M",
|
|
|
|
|
" ,M## ;##,@#M;/M#M @# X#% X#",
|
|
|
|
|
".%= ######M## ##.M#: ./#M ,M #M ,#$",
|
|
|
|
|
"##/ $## #+;#: #### ;#/ M M- @# :",
|
|
|
|
|
"#+ #M@MM###M-;M #:$#-##$H# .#X @ + $#. #",
|
|
|
|
|
" ######/.: #%=# M#:MM./#.-# @#: H#",
|
|
|
|
|
"+,.= @###: /@ %#,@ ##@X #,-#@.##% .@#",
|
|
|
|
|
"#####+;/##/ @## @#,+ /#M . X,",
|
|
|
|
|
" ;###M#@ M###H .#M- ,##M ;@@; ###\"",
|
|
|
|
|
" .M#M##H ;####X ,@#######M/ -M###$ -H",
|
|
|
|
|
" .M###% X####H .@@MM@; ;@#M@",
|
|
|
|
|
" H#M /@####/ ,++. / ==-,",
|
|
|
|
|
" ,=/:, .+X@MMH@#H #####$=",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_LIGHTBULB_LINES[] = {
|
|
|
|
|
" ,=;%$%%$X%%%%;/%%%%;=,",
|
|
|
|
|
" ,/$$+:- -:+$$/,",
|
|
|
|
|
" :X$= =$X:",
|
|
|
|
|
" ;M%. .%M;",
|
|
|
|
|
"+#/ /#+",
|
|
|
|
|
"## M#",
|
|
|
|
|
"H#, =;+/;, ,#X",
|
|
|
|
|
".HM- :@X+%H: .%M%- .M#. -M@.",
|
|
|
|
|
" /#%. @#- ,H@--MH, .;@$- .%#+",
|
|
|
|
|
" .$M; .+@X;, MM#@:/$X;. ;M$,",
|
|
|
|
|
" =@H, ,:+%H#M%;- ,H@=",
|
|
|
|
|
" .$#; -#H =#$",
|
|
|
|
|
" %#; #M ;#%",
|
|
|
|
|
" H#- ## -#H",
|
|
|
|
|
" ;#+ ## +#;",
|
|
|
|
|
" ;H+;;;;;;HH;;;;;;+H/",
|
|
|
|
|
" =H#@HHHHHHHHHH@#H=",
|
|
|
|
|
" =@#H%%%%%%%$HH@#@=",
|
|
|
|
|
" =@#X%%%%%%%$M###@=",
|
|
|
|
|
" =+%XHHX%+=",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_MECHARM_LINES[] = {
|
|
|
|
|
" X MM X",
|
|
|
|
|
" X MM X",
|
|
|
|
|
" X MM X",
|
|
|
|
|
" X MM X",
|
|
|
|
|
" + HX +",
|
|
|
|
|
" ,=$$XX%/-",
|
|
|
|
|
" =X#########@%-",
|
|
|
|
|
" ;##############=",
|
|
|
|
|
"-###############M,",
|
|
|
|
|
";##@@@######M@###=",
|
|
|
|
|
".+:;+:=H##$=:/:;H.",
|
|
|
|
|
"- +###- ## :###,,;",
|
|
|
|
|
"+@:/%;-H##H==/::H;",
|
|
|
|
|
" /#@/-=+$$%::+H#$",
|
|
|
|
|
" $#%-, ,.:##-",
|
|
|
|
|
"-@/ =X%.",
|
|
|
|
|
"%H= -$;",
|
|
|
|
|
" =HH, .%M;",
|
|
|
|
|
" /MM/ :@M/.",
|
|
|
|
|
" .:XX, -$H:.",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const char* const ART_PERSONALITYSPHERE_LINES[] = {
|
|
|
|
|
" .-+$H###MM@MMMMM##@$+-,. ....",
|
|
|
|
|
"-@$+%$+%HX+--.. . . .,:X$/+/++$#:",
|
|
|
|
|
"-#MXH$= $HXH#:",
|
|
|
|
|
" .--,:#+ ,+$HMX =@@X%, . .X#:,,,",
|
|
|
|
|
" =#@$H :####H =####;,M%$#X",
|
|
|
|
|
" X###$ $####X =####H %###X",
|
|
|
|
|
" ;###X /###@$: ,+HM##H.+###;",
|
|
|
|
|
" :###;,X##%=;%H@H$;-;M#@-;###/",
|
|
|
|
|
" ,M##;.@##;-H#######M=.M##-:###-",
|
|
|
|
|
" ;##M ;##X @###H-=@###.;##X H##;",
|
|
|
|
|
" ;##M./##X.@###H:/M###-=##X X##;",
|
|
|
|
|
" -###;,M##:,@########+-H##; @##-",
|
|
|
|
|
" %##M==@##%==%HMH%::/M##+.X##+",
|
|
|
|
|
" %###/./###X+: -+$M##M=,X##+",
|
|
|
|
|
" X###X X####H +#####% @##H",
|
|
|
|
|
" :###H %####H +#####; X##;",
|
|
|
|
|
" /#$. -HM##H /###@+. +#$. .",
|
|
|
|
|
"/HX%$X: .,-, .-,. =XX$H@-",
|
|
|
|
|
"/#H+/+%+/+;=. .=/%;;/;;+#+",
|
|
|
|
|
" .. .,-:XM#MM@@@@@@H@@M#@+=,. ,,",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Art ARTS[] = {
|
|
|
|
|
{nullptr, 0},
|
|
|
|
|
{ART_APERTURE_LINES, 20}, // 1
|
|
|
|
|
{ART_CAKE_LINES, 20}, // 2
|
|
|
|
|
{ART_EXPLOSION_LINES, 20}, // 3
|
|
|
|
|
{ART_RADIO_LINES, 19}, // 4
|
|
|
|
|
{ART_ATOM_LINES, 20}, // 5
|
|
|
|
|
{ART_BIOHAZARD_LINES, 20}, // 6
|
|
|
|
|
{ART_BLACKMESA_LINES, 20}, // 7
|
|
|
|
|
{ART_BROKENHEART_LINES, 20}, // 8
|
|
|
|
|
{ART_CHECK_LINES, 20}, // 9
|
|
|
|
|
{ART_COMPANIONCUBE_LINES, 20}, // 10
|
|
|
|
|
{ART_FIRE_LINES, 19}, // 11
|
|
|
|
|
{ART_GLADOS_LINES, 20}, // 12
|
|
|
|
|
{ART_LIGHTBULB_LINES, 20}, // 13
|
|
|
|
|
{ART_MECHARM_LINES, 20}, // 14
|
|
|
|
|
{ART_PERSONALITYSPHERE_LINES, 20}, // 15
|
|
|
|
|
};
|
|
|
|
|
static constexpr size_t ART_COUNT = sizeof(ARTS) / sizeof(ARTS[0]);
|
|
|
|
|
|
|
|
|
|
static const LyricStep LYRICS[] = {
|
|
|
|
|
{0, 0, STEP_CLEAR, ART_KEEP, ""},
|
|
|
|
|
{0, 2000, STEP_NEWLINE, ART_KEEP, "Forms FORM-29827281-12:"},
|
|
|
|
|
{2000, 2000, STEP_NEWLINE, ART_KEEP, "Test Assessment Report"},
|
|
|
|
|
{4010, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{4020, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{6870, 2050, STEP_NEWLINE, ART_KEEP, "This was a triumph."},
|
|
|
|
|
{10820, 2100, STEP_NEWLINE, ART_KEEP, "I'm making a note here:"},
|
|
|
|
|
{12930, 1800, STEP_NEWLINE, ART_KEEP, "HUGE SUCCESS."},
|
|
|
|
|
{15730, 2360, STEP_NEWLINE, ART_KEEP, "It's hard to overstate"},
|
|
|
|
|
{18130, 2710, STEP_NEWLINE, ART_KEEP, "my satisfaction."},
|
|
|
|
|
{22970, 1760, STEP_NEWLINE, 1, "Aperture Science"},
|
|
|
|
|
{26830, 1570, STEP_NEWLINE, ART_KEEP, "We do what we must"},
|
2026-10-18 19:29:16 +02:00
|
|
|
{28600, 750, 0, ART_KEEP, "because "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{29550, 710, STEP_NEWLINE, ART_KEEP, "we can."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{31930, 1550, 0, ART_KEEP, "For the good "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{33480, 1530, STEP_NEWLINE, ART_KEEP, "of all of us."},
|
|
|
|
|
{35289, 1741, STEP_NEWLINE, 6, "Except the ones who are dead."},
|
|
|
|
|
{37030, 400, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{37430, 1858, STEP_NEWLINE, 1, "But there's no sense crying"},
|
|
|
|
|
{39298, 1782, STEP_NEWLINE, ART_KEEP, "over every mistake."},
|
|
|
|
|
{41280, 1985, STEP_NEWLINE, ART_KEEP, "You just keep on trying"},
|
2026-10-18 19:29:16 +02:00
|
|
|
{43275, 1366, 0, ART_KEEP, "till you run out of "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{44641, 400, STEP_NEWLINE, ART_KEEP, "cake."},
|
|
|
|
|
{45227, 1970, STEP_NEWLINE, 5, "And the Science gets done."},
|
|
|
|
|
{47197, 1970, STEP_NEWLINE, ART_KEEP, "And you make a neat gun."},
|
|
|
|
|
{49187, 1520, STEP_NEWLINE, 1, "For the people who are"},
|
|
|
|
|
{50727, 1500, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{53827, 0, STEP_CLEAR, ART_KEEP, ""},
|
|
|
|
|
{53827, 550, STEP_NEWLINE, ART_KEEP, "Forms FORM-55551-5:"},
|
|
|
|
|
{54377, 1100, STEP_NEWLINE, ART_KEEP, "Personnel File Addendum:"},
|
|
|
|
|
{55477, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{58487, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{58547, 1917, STEP_NEWLINE, ART_KEEP, "I'm not even angry."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{62832, 697, 0, ART_KEEP, "I'm being "},
|
|
|
|
|
{63529, 650, 0, ART_KEEP, "so "},
|
|
|
|
|
{64179, 906, 0, ART_KEEP, "sincere "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{65085, 1115, STEP_NEWLINE, ART_KEEP, "right now."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{67825, 650, 0, ART_KEEP, "Even "},
|
|
|
|
|
{68475, 1347, 0, ART_KEEP, "though you "},
|
|
|
|
|
{69822, 488, 0, 8, "broke "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{70310, 998, STEP_NEWLINE, ART_KEEP, "my heart."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{71308, 325, 0, ART_KEEP, "And "},
|
|
|
|
|
{71633, 488, 0, ART_KEEP, "killed "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{72121, 557, STEP_NEWLINE, ART_KEEP, "me."},
|
|
|
|
|
{74678, 1649, STEP_NEWLINE, 3, "And tore me to pieces."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{78649, 1440, 0, ART_KEEP, "And threw every piece "},
|
|
|
|
|
{80091, 580, 0, ART_KEEP, "into "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{81066, 882, STEP_NEWLINE, 11, "a fire."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{83597, 1400, 0, ART_KEEP, "As they burned "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{84997, 1509, STEP_NEWLINE, ART_KEEP, "it hurt because"},
|
|
|
|
|
{86831, 1625, STEP_NEWLINE, 9, "I was so happy for you!"},
|
|
|
|
|
{88897, 2067, STEP_NEWLINE, ART_KEEP, "Now these points of data"},
|
|
|
|
|
{90964, 1950, STEP_NEWLINE, ART_KEEP, "make a beautiful line."},
|
|
|
|
|
{92914, 2020, STEP_NEWLINE, ART_KEEP, "And we're out of beta."},
|
|
|
|
|
{94934, 1950, STEP_NEWLINE, ART_KEEP, "We're releasing on time."},
|
|
|
|
|
{96884, 2113, STEP_NEWLINE, 3, "So I'm GLaD. I got burned."},
|
|
|
|
|
{98997, 2020, STEP_NEWLINE, 5, "Think of all the things we learned"},
|
|
|
|
|
{101017, 1556, STEP_NEWLINE, 1, "for the people who are"},
|
2026-10-18 19:29:16 +02:00
|
|
|
{102573, 395, 0, ART_KEEP, "still "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{102968, 1440, STEP_NEWLINE, ART_KEEP, "alive."},
|
|
|
|
|
{106008, 0, STEP_CLEAR, ART_KEEP, ""},
|
|
|
|
|
{106008, 450, STEP_NEWLINE, ART_KEEP, "Forms FORM-55551-6:"},
|
|
|
|
|
{106459, 1310, STEP_NEWLINE, ART_KEEP, "Personnel File Addendum Addendum:"},
|
|
|
|
|
{107768, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{108428, 2200, STEP_NEWLINE, ART_KEEP, "One last thing:"},
|
|
|
|
|
{110628, 0, STEP_NEWLINE, ART_KEEP, ""},
|
2026-10-18 19:29:16 +02:00
|
|
|
{110678, 1324, 0, ART_KEEP, "Go ahead and leave "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{112002, 627, STEP_NEWLINE, ART_KEEP, "me."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{114417, 534, 0, ART_KEEP, "I think "},
|
|
|
|
|
{114951, 1184, 0, ART_KEEP, "I prefer "},
|
|
|
|
|
{116135, 1022, 0, ART_KEEP, "to stay "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{117157, 232, 0, ART_KEEP, "in"},
|
|
|
|
|
{117389, 882, STEP_NEWLINE, ART_KEEP, "side."},
|
|
|
|
|
{119701, 511, 0, ART_KEEP, "May"},
|
|
|
|
|
{120212, 2972, STEP_NEWLINE, ART_KEEP, "be you'll find someone else"},
|
|
|
|
|
{123184, 1254, STEP_NEWLINE, ART_KEEP, "to help you."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{126690, 511, 0, ART_KEEP, "Maybe "},
|
|
|
|
|
{127201, 325, 0, 7, "Black "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{127526, 998, 0, ART_KEEP, "Mesa"},
|
|
|
|
|
{128524, 2183, STEP_NEWLINE, ART_KEEP, "..."},
|
2026-10-18 19:29:16 +02:00
|
|
|
{130707, 1440, 0, ART_KEEP, "THAT WAS A JOKE. "},
|
|
|
|
|
{133168, 279, 0, ART_KEEP, "FAT "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{133447, 859, STEP_NEWLINE, ART_KEEP, "CHANCE."},
|
|
|
|
|
{135699, 1486, 0, ART_KEEP, "Anyway"},
|
|
|
|
|
{137185, 1765, STEP_NEWLINE, 2, ", this cake is great."},
|
|
|
|
|
{138950, 1904, STEP_NEWLINE, ART_KEEP, "It's so delicious and moist."},
|
|
|
|
|
{141272, 1927, STEP_NEWLINE, 12, "Look at me still talking"},
|
|
|
|
|
{143199, 2090, STEP_NEWLINE, 6, "when there's Science to do."},
|
|
|
|
|
{145289, 1695, STEP_NEWLINE, 1, "When I look out there,"},
|
|
|
|
|
{146984, 2183, STEP_NEWLINE, ART_KEEP, "it makes me GLaD I'm not you."},
|
|
|
|
|
{149167, 2043, STEP_NEWLINE, 5, "I've experiments to run."},
|
|
|
|
|
{151210, 2020, STEP_NEWLINE, 3, "There is research to be done."},
|
|
|
|
|
{153230, 1625, STEP_NEWLINE, 1, "On the people who are"},
|
2026-10-18 19:29:16 +02:00
|
|
|
{154855, 348, 0, ART_KEEP, "still "},
|
2026-10-18 19:26:20 +02:00
|
|
|
{155203, 1440, STEP_NEWLINE, ART_KEEP, "alive."},
|
|
|
|
|
{156843, 0, STEP_CLEAR, ART_KEEP, ""},
|
|
|
|
|
{156953, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{156963, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{156973, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{156983, 300, 0, ART_NONE, "PS: "},
|
|
|
|
|
{157283, 1625, STEP_NEWLINE, ART_KEEP, "And believe me I am"},
|
|
|
|
|
{158908, 1138, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{160846, 198, 0, ART_KEEP, "PPS: "},
|
|
|
|
|
{161044, 1904, STEP_NEWLINE, ART_KEEP, "I'm doing Science and I'm"},
|
|
|
|
|
{162948, 1091, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{164839, 175, 0, ART_KEEP, "PPPS: "},
|
|
|
|
|
{165014, 1904, STEP_NEWLINE, ART_KEEP, "I feel FANTASTIC and I'm"},
|
|
|
|
|
{166918, 1091, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{168009, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{168109, 1154, STEP_NEWLINE, ART_KEEP, "FINAL THOUGHT: "},
|
|
|
|
|
{169263, 1579, STEP_NEWLINE, ART_KEEP, "While you're dying I'll be"},
|
|
|
|
|
{170842, 1254, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{172096, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{172196, 829, STEP_NEWLINE, ART_KEEP, "FINAL THOUGHT PS: "},
|
|
|
|
|
{173025, 1834, STEP_NEWLINE, ART_KEEP, "And when you're dead I will be"},
|
|
|
|
|
{174859, 1161, STEP_NEWLINE, ART_KEEP, "still alive."},
|
|
|
|
|
{176020, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{176479, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{176879, 1184, STEP_NEWLINE, ART_KEEP, "STILL ALIVE"},
|
|
|
|
|
{179250, 0, STEP_CLEAR, ART_KEEP, ""},
|
|
|
|
|
{180250, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{181250, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{182250, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{183250, 1500, STEP_NEWLINE, ART_KEEP, " ***"},
|
|
|
|
|
{184750, 1500, STEP_NEWLINE, ART_KEEP, " Portal? 10th anniversary"},
|
|
|
|
|
{186250, 1500, STEP_NEWLINE, ART_KEEP, " 'Still Alive' ending scene"},
|
|
|
|
|
{187750, 1500, STEP_NEWLINE, ART_KEEP, " remade with HTML, JS"},
|
|
|
|
|
{189250, 2500, STEP_NEWLINE, ART_KEEP, " by SD SkyKlouD"},
|
|
|
|
|
{191750, 0, STEP_NEWLINE, ART_KEEP, ""},
|
|
|
|
|
{192250, 600, STEP_NEWLINE, ART_KEEP, " ? 2007- Valve Corporation."},
|
|
|
|
|
{192850, 900, STEP_NEWLINE, ART_KEEP, " All Rights Reserved."},
|
|
|
|
|
{193750, 1500, STEP_NEWLINE, ART_KEEP, " Valve, Steam, Portal are trademarks"},
|
|
|
|
|
{195250, 1500, STEP_NEWLINE, ART_KEEP, " and/or registered trademarks of"},
|
|
|
|
|
{196750, 1500, STEP_NEWLINE, ART_KEEP, " Valve Corporation. All other trademarks"},
|
|
|
|
|
{198250, 1500, STEP_NEWLINE, ART_KEEP, " are property of their respective owners."},
|
|
|
|
|
};
|
|
|
|
|
static constexpr size_t LYRIC_COUNT = sizeof(LYRICS) / sizeof(LYRICS[0]);
|
|
|
|
|
|
|
|
|
|
static const char* const CREDITS[] = {
|
|
|
|
|
">LIST PERSONNEL",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Gautam Babbar",
|
|
|
|
|
"Ted Backman",
|
|
|
|
|
"Kelly Bailey",
|
|
|
|
|
"Jeff Ballinger",
|
|
|
|
|
"Aaron Barber",
|
|
|
|
|
"Jeep Barnett",
|
|
|
|
|
"Jeremy Bennett",
|
|
|
|
|
"Dan Berger",
|
|
|
|
|
"Yahn Bernier",
|
|
|
|
|
"Ken Birdwell",
|
|
|
|
|
"Derrick Birum",
|
|
|
|
|
"Mike Blaszczak",
|
|
|
|
|
"Iestyn Bleasdale-Shepherd",
|
|
|
|
|
"Chris Bokitch",
|
|
|
|
|
"Steve Bond",
|
|
|
|
|
"Matt Boone",
|
|
|
|
|
"Antoine Bourdon",
|
|
|
|
|
"Jamaal Bradley",
|
|
|
|
|
"Jason Brashill",
|
|
|
|
|
"Charlie Brown",
|
|
|
|
|
"Charlie Burgin",
|
|
|
|
|
"Andrew Burke",
|
|
|
|
|
"Augusta Butlin",
|
|
|
|
|
"Julie Caldwell",
|
|
|
|
|
"Dario Casali",
|
|
|
|
|
"Chris Chin",
|
|
|
|
|
"Jess Cliffe",
|
|
|
|
|
"Phil Co",
|
|
|
|
|
"John Cook",
|
|
|
|
|
"Christen Coomer",
|
|
|
|
|
"Greg Coomer",
|
|
|
|
|
"Scott Dalton",
|
|
|
|
|
"Kerry Davis",
|
|
|
|
|
"Jason Deakins",
|
|
|
|
|
"Joe Demers",
|
|
|
|
|
"Ariel Diaz",
|
|
|
|
|
"Quintin Doroquez",
|
|
|
|
|
"Jim Dose",
|
|
|
|
|
"Chris Douglass",
|
|
|
|
|
"Laura Dubuk",
|
|
|
|
|
"Mike Dunkle",
|
|
|
|
|
"Mike Durand",
|
|
|
|
|
"Mike Dussault",
|
|
|
|
|
"Dhabih Eng",
|
|
|
|
|
"Katie Engel",
|
|
|
|
|
"Chet Faliszek",
|
|
|
|
|
"Adrian Finol",
|
|
|
|
|
"Bill Fletcher",
|
|
|
|
|
"Moby Francke",
|
|
|
|
|
"Stephane Gaudette",
|
|
|
|
|
"Kathy Gehrig",
|
|
|
|
|
"Vitaliy Genkin",
|
|
|
|
|
"Paul Graham",
|
|
|
|
|
"Chris Green",
|
|
|
|
|
"Chris Grinstead",
|
|
|
|
|
"John Guthrie",
|
|
|
|
|
"Aaron Halifax",
|
|
|
|
|
"Reagan Halifax",
|
|
|
|
|
"Leslie Hall",
|
|
|
|
|
"Jeff Hameluck",
|
|
|
|
|
"Joe Han",
|
|
|
|
|
"Don Holden",
|
|
|
|
|
"Jason Holtman",
|
|
|
|
|
"Gray Horsfield",
|
|
|
|
|
"Keith Huggins",
|
|
|
|
|
"Jim Hughes",
|
|
|
|
|
"Jon Huisingh",
|
|
|
|
|
"Brian Jacobson",
|
|
|
|
|
"Lars Jensvold",
|
|
|
|
|
"Erik Johnson",
|
|
|
|
|
"Jakob Jungels",
|
|
|
|
|
"Rich Kaethler",
|
|
|
|
|
"Steve Kalning",
|
|
|
|
|
"Aaron Kearly",
|
|
|
|
|
"Iikka Keranen",
|
|
|
|
|
"David Kircher",
|
|
|
|
|
"Eric Kirchmer",
|
|
|
|
|
"Scott Klintworth",
|
|
|
|
|
"Alden Kroll",
|
|
|
|
|
"Marc Laidlaw",
|
|
|
|
|
"Jeff Lane",
|
|
|
|
|
"Tim Larkin",
|
|
|
|
|
"Dan LeFree",
|
|
|
|
|
"Isabelle LeMay",
|
|
|
|
|
"Tom Leonard",
|
|
|
|
|
"Jeff Lind",
|
|
|
|
|
"Doug Lombardi",
|
|
|
|
|
"Bianca Loomis",
|
|
|
|
|
"Richard Lord",
|
|
|
|
|
"Realm Lovejoy",
|
|
|
|
|
"Randy Lundeen",
|
|
|
|
|
"Scott Lynch",
|
|
|
|
|
"Ido Magal",
|
|
|
|
|
"Nick Maggiore",
|
|
|
|
|
"John McCaskey",
|
|
|
|
|
"Patrick McClard",
|
|
|
|
|
"Steve McClure",
|
|
|
|
|
"Hamish McKenzie",
|
|
|
|
|
"Gary McTaggart",
|
|
|
|
|
"Jason Mitchell",
|
|
|
|
|
"Mike Morasky",
|
|
|
|
|
"John Morello II",
|
|
|
|
|
"Bryn Moslow",
|
|
|
|
|
"Arsenio Navarro",
|
|
|
|
|
"Gabe Newell",
|
|
|
|
|
"Milton Ngan",
|
|
|
|
|
"Jake Nicholson",
|
|
|
|
|
"Martin Otten",
|
|
|
|
|
"Nick Papineau",
|
|
|
|
|
"Karen Prell",
|
|
|
|
|
"Bay Raitt",
|
|
|
|
|
"Tristan Reidford",
|
|
|
|
|
"Alfred Reynolds",
|
|
|
|
|
"Matt Rhoten",
|
|
|
|
|
"Garret Rickey",
|
|
|
|
|
"Dave Riller",
|
|
|
|
|
"Elan Ruskin",
|
|
|
|
|
"Matthew Russell",
|
|
|
|
|
"Jason Ruymen",
|
|
|
|
|
"David Sawyer",
|
|
|
|
|
"Marc Scaparro",
|
|
|
|
|
"Wade Schin",
|
|
|
|
|
"Matthew Scott",
|
|
|
|
|
"Aaron Seeler",
|
|
|
|
|
"Jennifer Seeley",
|
|
|
|
|
"Taylor Sherman",
|
|
|
|
|
"Eric Smith",
|
|
|
|
|
"Jeff Sorensen",
|
|
|
|
|
"David Speyrer",
|
|
|
|
|
"Jay Stelly",
|
|
|
|
|
"Jeremy Stone",
|
|
|
|
|
"Eric Strand",
|
|
|
|
|
"Kim Swift",
|
|
|
|
|
"Kelly Thornton",
|
|
|
|
|
"Eric Twelker",
|
|
|
|
|
"Carl Uhlman",
|
|
|
|
|
"Doug Valente",
|
|
|
|
|
"Bill Van Buren",
|
|
|
|
|
"Gabe Van Engel",
|
|
|
|
|
"Alex Vlachos",
|
|
|
|
|
"Robin Walker",
|
|
|
|
|
"Joshua Weier",
|
|
|
|
|
"Andrea Wicklund",
|
|
|
|
|
"Greg Winkler",
|
|
|
|
|
"Erik Wolpaw",
|
|
|
|
|
"Doug Wood",
|
|
|
|
|
"Matt T. Wood",
|
|
|
|
|
"Danika Wright",
|
|
|
|
|
"Matt Wright",
|
|
|
|
|
"Shawn Zabecki",
|
|
|
|
|
"Torsten Zabka ",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"'Still Alive' by:",
|
|
|
|
|
"Jonathan Coulton",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Voices:",
|
|
|
|
|
"Ellen McLain - GlaDOS, Turrets",
|
|
|
|
|
"Mike Patton - THE ANGER SPHERE",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Voice Casting:",
|
|
|
|
|
"Shana LandsburgTeri Fiddleman",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Voice Recording:",
|
|
|
|
|
"Pure Audio, Seattle, WA",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Voice recording",
|
|
|
|
|
"scheduling and logistics:",
|
|
|
|
|
"Pat Cockburn, Pure Audio",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Translations:",
|
|
|
|
|
"SDL",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Crack Legal Team:",
|
|
|
|
|
"Liam Lavery",
|
|
|
|
|
"Karl Quackenbush",
|
|
|
|
|
"Kristen Boraas",
|
|
|
|
|
"Kevin Rosenfield",
|
|
|
|
|
"Alan Bruggeman",
|
|
|
|
|
"Dennis Tessier",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Thanks for the use of their face:",
|
|
|
|
|
"Alesia Glidewell - Chell",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"Special thanks to everyone at:",
|
|
|
|
|
"Alienware",
|
|
|
|
|
"ATI",
|
|
|
|
|
"Dell",
|
|
|
|
|
"Falcon Northwest",
|
|
|
|
|
"Havok",
|
|
|
|
|
"SOFTIMAGE",
|
|
|
|
|
"and Don Kemmis, SLK Technologies",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"THANK YOU FOR PARTICIPATING",
|
|
|
|
|
"IN THIS",
|
|
|
|
|
"ENRICHMENT CENTER ACTIVITY!!",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
};
|
|
|
|
|
static constexpr size_t CREDIT_COUNT = sizeof(CREDITS) / sizeof(CREDITS[0]);
|
|
|
|
|
|
|
|
|
|
static constexpr uint32_t SONG_START_MS = 6750;
|
|
|
|
|
static constexpr uint32_t CREDITS_START_MS = 9000;
|
|
|
|
|
static constexpr uint32_t CREDIT_CHAR_US = 68624;
|
|
|
|
|
static constexpr bool CREDITS_LOOP = false;
|
2026-10-18 20:20:13 +02:00
|
|
|
|
|
|
|
|
} // namespace el512sa
|