9:22. The clock says: 9:22.
9:22 is a mystery visual novel game. The main character struggles to find his way in life.
A little later, it turns out that there was a murder, where the victim looks like him.
Sub-Page#
Graphics#
Sprites#
Ian#
Sequence: The Freeman Run prelude
A different look-away expression is used.
Image |
|---|
|
Sequence: Pumpkin carving post talk
The expressions are only used in their stained variants.
Image |
|---|
|
Sequence: Bus stop talk
The only expression with the phone pulled out used is the one with looking at it.
Image |
|---|
|
Kurt#
Sequence: The Freeman Run prelude
Image |
|---|
|
Sequence: Shelter break-in
Image |
|---|
|
Crowd#
Sequence: Ending
The steps between the appearing crowd are inconsistent on both Spencer's and Fisher's side.
Image |
|---|
|
Image |
|---|
|
|
Manipulating their sprites also reveals more insight into their individual strokes and faint parts, like noses or longer ears.
Though it's possible they were painted with low sensitivity and weren't intended to be.
Image |
|---|
Opaque |
tunnel-close-crowd-fisher6.webp |
Backgrounds#
The actual background of the shelter tunnel uses a different image with the necessary padding for effections.
Image |
|---|
|
There is also a cropped CG of Spencer sitting on the campus, possibly stretched to match other backgrounds' resolution.
Image |
|---|
|
Miscellaneous#
Matching with the current menu is a reminder of the background buttons being still functional.
Currently not in use, possibly from a separate chapter menu in the options on the right.
Image |
|---|
|
Obscured#
The Freeman Run#
As the game is in SFW mode by default, it obscures Spencer and Kurt's sprites.
Although they exist in their full resolution, they would be different images from their NSFW counterparts.
Example |
|---|
|
Food court#
The expressions of the characters in this scene are connected to the bodies.
There are unfinished details underneath the normally covered layer with the table.
Example |
|---|
|
Other#
The newspaper page in the title screen has a paragraph of readable text.
Example |
|---|
Original |
title-menu-paper.webp |
Possible transcription of the headline:
THE REAL MEANING OF BROWN...
'Red' terror in Dene...
for using 5th Amendment...
The mentioned event is not part of the game's plot.
Audio#
There is one unused sound effect of a mechanical click. Judging by its definition in the code, it has been replaced by another.
define audio.mechanical_click = "audio/sound/mechanical-click2.ogg"
Unused |
Used |
|---|---|
|
|
In addition, there is also an unused definition of a sound, which itself is called via another method.
define audio.train_passing = "audio/sound/train-passing.ogg"
Effects#
The last visit to Ian's workplace has a definition of an unused effect of a light bright pulse.
It itself differs only in cycle lengths, and a 2nd version was used in its place.
Effect |
|
|---|---|
Used |
elsewhere_overlay |
elsewhere_overlay2 |
|
Unused |
elsewhere_overlay3 |
All of them were made specifically for the endgame.
Story#
Easter egg#
Originally the story was supposed to be non-linear.
The only remnant is a disabled easter egg where Spencer was able to answer Andrew's questions with something inappropriate during their first meeting.
When encountered, the additional narrative will play out and the input will be repeated.
Input |
Default |
Thought |
|---|---|---|
I'm from... |
Toronto |
That's pretty good,{w=0.35} but I should make it sound more like a name of a place. |
We eat... |
Burgers |
Not bad,{w=0.35} but I should make it sound more like a name of a dish. |
Possible inappropriate user inputs
"arse" "ass" "balls" "baps" "bazookas" "behind" "bollocks" "boner" "boners" "boob" "boobies" "boobs" "booties" "booty" "bosom" "bosoms" "bottom" "box" "breasts" "bum" "bums" "buns" "bust" "butt" "buttocks" "butts" "caboose" "chest" "chode" "chodes" "cock" "cocks" "cojones" "cooter" "cunt" "cunts" "derriere" "dick" "dicks" "dingaling" "dong" "dongs" "dork" "dorks" "erection" "erections" "fanny" "gonads" "goolies" "heinie" "johnsons" "jubblies" "knackers" "knob" "knobs" "knockers" "manhood" "manhoods" "minge" "muff" "nuts" "patootie" "peepee" "peepees" "penis" "penises" "phallus" "posterior" "prick" "pricks" "pussies" "pussy" "quim" "rear" "rump" "rumps" "schlong" "schlongs" "snatch" "snatches" "stiffies" "stiffy" "tail" "tails" "testicle" "testicles" "tits" "titties" "todger" "todgers" "trouser snake" "trouser snakes" "tush" "twat" "twats" "vagina" "vaginas" "weenie" "wiener" "willies" "willy"
Now the game explicitly forces a default answer (this was also the case for touchscreen based devices).
However, this can be re-enabled by setting force_default_value to False in scene_80.
Video |
|---|
Indexing system#
Normally in the story scene indexing system there are numbers from 10 to 500, offset by 10. There are two exceptions to this.
scene_30 -> scene_50
Between attempts to enter the site normally and through the shelter it has a missing scene 40.
However, it is marked by its name as completed at the end of 30.
It is possible that scene 40 was dedicated to Spencer and the planned option to return home.
scene_390 -> scene_391 -> scene_400
Scene 391 is the only one that falls on a strange index. It is a continuation of the pumpkin carving, and the predecessor of the visit to Kurt's workplace.
Debug#
Classification#
build.rpyc is a leftover classification script, stating which files will be excluded and which will be bundled.
Included:
build.classify('game/**.png', 'archive')
build.classify('game/**.jpg', 'archive')
build.classify('game/**.webp', 'archive')
build.classify('game/**.ogg', 'archive')
build.classify('game/**.rpyc', 'archive')
build.classify('game/**.rpymc', 'archive')
build.classify('game/**.ttf', 'archive')
build.classify('game/**.otf', 'archive')
build.classify('game/**.webm', 'archive')
Excluded:
build.classify('**~', None)
build.classify('**.bak', None)
build.classify('**/.**', None)
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)
build.classify('**/*.psd', None)
build.classify('**/*.rpy', None)
build.classify('**/*.rpym', None)
build.classify('**/*.rpyb', None)
build.classify('**/*.txt', None)
build.classify('**/*.sh', None)
build.classify('**/*.html', None)
build.classify('**/*.odt', None)
build.classify('platforms/**.**', None)
build.classify('docs/**.**', None)
build.classify('**nsfw**', None)
Character test#
_debug.rpyc contains a debug label, with consecutive characters stating their character name.
Among them are the main narrator, Spencer, Todd, Spencer's mum, Reed, Cliff, Roger and Tony.
The scene ends with a return to the title screen.
The purpose is most likely to be to see the colours of the names.
Video |
|---|
Scene test#
Having config.developer set to True precedes the launch of the title screen in _start.rpyc by a custom label and a NSFW flag state.
At build time, the custom label was also set to the title screen and the NSFW flag is set to False.
Screen test#
Having config.developer and show_debug in debug.rpyc set to True will append a new debug overlay to your screen.
Screenshot |
Field |
|---|---|
![]() |
physical dimensions |
physical aspect ratio |
|
variants |
|
persistent.small_display |
NSFW#
A NSFW patch was planned for the game. Any assets regarding it are excluded from the build.
The only leftovers from this are the variable responsible for enabling the mode in sfw.rpyc and _script.rpyc along with the corresponding changes during The Freeman Run.
This mode would change the sprites for Spencer, Kurt, Ian (though still in his jacket) and Andrew (and his speech CG).
When off, it deliberately pushes down Spencer and Andrew's current sprites down.
The only changed text would be Kurt refusing to cover himself with the map.
Example |
|---|
Off |
On |











