Stage 1 (shop scene, customer, siphon brew minigame, serve loop) and the M2 day spine: day counter, three-phase day, event-driven clock, journal line, and a SaveState with magic/version/checksum. Saving to disk is NOT working yet. A cartridge ROM can reach the Disk ROM only from RAM (both PHYDIO and CALSLT switch page 1 out from under the caller), and ROMDelayBoot is required so the Disk ROM's INIT runs at all. With both in place the disk is detected, but sector I/O returns carry-clear without transferring — proven with a sentinel. Probe now verifies the buffer actually changed, so a non-working disk degrades to "no save" rather than corrupting anything. Full findings in the project CLAUDE.md. Also documented: keyboard reads need interrupt protection (the BIOS ISR scans the matrix too), and BankedCall must stay off until banked data exists. Docs: PLAN.md (ten milestones, per-stage requirements, decision queue), SCRIPT.md (all four character arcs, 60 beats, checked against the 26-character box), and amendment notes in DESIGN.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
493 lines
14 KiB
Markdown
493 lines
14 KiB
Markdown
# Kissaten Yūgure — Script
|
||
|
||
First draft of all four character arcs, plus order lines, brew reactions and
|
||
ambient lines. Written as prose-first per `PLAN.md` §9 — no data format yet.
|
||
|
||
**This is a draft to edit, not to approve.** The characters are yours; if
|
||
anyone's voice is wrong, it's wrong now and cheap to fix.
|
||
|
||
---
|
||
|
||
## How to read this
|
||
|
||
Every beat is one dialogue box: **3 lines × 26 characters**, ASCII, as laid
|
||
out in `DESIGN.md` §4. Every line here has been checked against that limit.
|
||
|
||
```
|
||
**B4 · the crack** — `day>=7` — troubled
|
||
Mock exam results came.
|
||
Law faculty. Tokyo.
|
||
Father framed the sheet.
|
||
```
|
||
|
||
- **B4** — beat number. Beats fire in order; a beat's trigger is *also*
|
||
gated on the previous beat having played (`arc_stage`).
|
||
- **Trigger** — conditions from the vocabulary in `PLAN.md` §4.
|
||
- **Expression** — `neutral` / `happy` / `troubled`. Three per character, per
|
||
`DESIGN.md` §5.
|
||
|
||
Triggers are deliberately loose. Tighten them once pacing is playable —
|
||
day numbers here assume roughly one visit per character per 2 days.
|
||
|
||
---
|
||
|
||
## 1. Hoshino Aki — the exam student
|
||
|
||
> Cream soda. Weekday evenings, scarcer as exams approach.
|
||
> **Want:** pass the Tokyo entrance exams.
|
||
> **Secret:** the course is her father's choice. She wants astronomy, at a
|
||
> small college in Sendai with an observatory on the roof.
|
||
> **Change:** orders coffee instead of the soda.
|
||
|
||
The dusk sky through the shop window is her arc's spine — she is the reason
|
||
that window is there. **Beats 1–6 are the M3 vertical slice.**
|
||
|
||
**B1** — `day>=2, phase=evening` — neutral
|
||
Cream soda, please.
|
||
The big one, if that's
|
||
all right.
|
||
|
||
**B2** — `day>=3` — neutral
|
||
Exams in the spring.
|
||
They say third year goes
|
||
fast. It hasn't.
|
||
|
||
**B3** — `day>=5, served=CREAM_SODA` — happy
|
||
You remembered.
|
||
Nobody at home remembers
|
||
what I like.
|
||
|
||
**B4 · the crack** — `day>=7` — troubled
|
||
Mock exam results came.
|
||
Law faculty. Tokyo.
|
||
Father framed the sheet.
|
||
|
||
**B5** — `day>=9, weather=rain` — neutral
|
||
Can't see the sky today.
|
||
...Sorry. That was a
|
||
strange thing to say.
|
||
|
||
**B6 · slice ends** — `day>=11, served=CREAM_SODA` — neutral
|
||
Master, do you ever look
|
||
out that window and think
|
||
about anything else?
|
||
|
||
**B7** — `day>=13` — troubled
|
||
Father's friend teaches
|
||
at the Tokyo faculty.
|
||
It's arranged, basically.
|
||
|
||
**B8** — `day>=15, absent>=3` — troubled
|
||
Sorry I haven't come.
|
||
Cram school added hours.
|
||
I missed this place.
|
||
|
||
**B9** — `day>=17, affinity>=60` — neutral
|
||
There's a small college
|
||
in Sendai. They have an
|
||
observatory on the roof.
|
||
|
||
**B10** — `day>=19` — happy
|
||
I wrote for a prospectus.
|
||
It came in a brown
|
||
envelope. I hid it.
|
||
|
||
**B11** — `day>=21, weather=clear, phase=evening` — happy
|
||
Look - that's Vega.
|
||
You can see it even from
|
||
town, if you know where.
|
||
|
||
**B12** — `day>=23` — troubled
|
||
Applications close on
|
||
the twentieth.
|
||
I haven't told them.
|
||
|
||
**B13 · the change** — `day>=25, served=COFFEE` — neutral
|
||
Not the soda today.
|
||
Coffee. Black, like you
|
||
make for Ota-san.
|
||
|
||
**B14** — `day>=27` — troubled
|
||
I told them.
|
||
Mother cried. Father
|
||
hasn't spoken since.
|
||
|
||
**B15 · resolution** — `day>=30` — happy
|
||
Sendai. I posted it.
|
||
Father drove me to the
|
||
post office. Said nothing.
|
||
|
||
---
|
||
|
||
## 2. Ōta-san — the retired stationmaster
|
||
|
||
> Black coffee, no sugar. Early mornings. Rain makes him certain.
|
||
> **Want:** somewhere to be at a fixed time.
|
||
> **Secret:** the ten-fifteen was cut in his last spring. His precision keeps
|
||
> a timetable that no longer exists.
|
||
> **Change:** stops apologising for lingering; orders a second cup.
|
||
|
||
**B1** — `day>=1, phase=morning` — neutral
|
||
Coffee. Black.
|
||
Seven forty. You open
|
||
at seven forty.
|
||
|
||
**B2** — `day>=3, phase=morning` — neutral
|
||
Your father opened at
|
||
seven forty as well.
|
||
I never asked him why.
|
||
|
||
**B3** — `day>=5, weather=rain` — neutral
|
||
Rain. I always came in
|
||
the rain. The platform
|
||
had no roof at the end.
|
||
|
||
**B4** — `day>=7, served=COFFEE` — happy
|
||
Thirty-one years I
|
||
poured tea on that
|
||
platform. Never coffee.
|
||
|
||
**B5 · the crack** — `day>=9` — troubled
|
||
They cut the ten-fifteen
|
||
in my last spring.
|
||
Nobody came to say so.
|
||
|
||
**B6** — `day>=11` — neutral
|
||
I still wake at five.
|
||
The body keeps a
|
||
timetable of its own.
|
||
|
||
**B7** — `day>=13, absent>=2` — troubled
|
||
Forgive me. I'm keeping
|
||
your counter. I'll go.
|
||
...No. Not yet.
|
||
|
||
**B8** — `day>=15, affinity>=50` — neutral
|
||
The house is not small.
|
||
That is the trouble.
|
||
It was sized for four.
|
||
|
||
**B9** — `day>=17` — neutral
|
||
My daughter telephones
|
||
on Sundays. Eleven a.m.
|
||
She is very punctual.
|
||
|
||
**B10** — `day>=19, weather=rain` — happy
|
||
You knew I'd come.
|
||
The pot was already on.
|
||
That is a fine thing.
|
||
|
||
**B11** — `day>=21` — neutral
|
||
The station is a
|
||
convenience store now.
|
||
I have not gone in.
|
||
|
||
**B12** — `day>=23` — troubled
|
||
I went in. For batteries.
|
||
The ticket window is
|
||
where the freezers are.
|
||
|
||
**B13** — `day>=25, affinity>=80` — neutral
|
||
You keep good time,
|
||
Master. That is not a
|
||
small compliment from me.
|
||
|
||
**B14 · the change** — `day>=27` — happy
|
||
I'll have a second cup.
|
||
I am not going anywhere
|
||
in particular today.
|
||
|
||
**B15 · resolution** — `day>=30` — happy
|
||
Seven forty.
|
||
Tomorrow also, I think.
|
||
That is all I wanted.
|
||
|
||
---
|
||
|
||
## 3. Fujimoto — the manga artist
|
||
|
||
> Strongest coffee, endless refills, toast set when reminded to eat.
|
||
> Very late. Frequency and panic follow a monthly deadline cycle.
|
||
> **Want:** finish the chapter.
|
||
> **Secret:** the series is being cancelled. Comes here to be anywhere that
|
||
> isn't the desk.
|
||
> **Change:** the shop appears in the final chapter.
|
||
|
||
Fujimoto carries the comedy. A cozy game with four sad people is not cozy —
|
||
it's a wake. Let them be funny about their own misery.
|
||
|
||
**B1** — `day>=2, phase=evening` — neutral
|
||
Strongest you have.
|
||
No, stronger. I have
|
||
eleven pages by Friday.
|
||
|
||
**B2** — `day>=4` — troubled
|
||
Do you know how long
|
||
eleven pages is?
|
||
Neither do I anymore.
|
||
|
||
**B3** — `day>=6, served=COFFEE` — neutral
|
||
Refill. And again after.
|
||
I'll pay for the pot.
|
||
Cheaper by the hour.
|
||
|
||
**B4** — `day>=8` — troubled
|
||
Editor called me
|
||
'reliable' today. That's
|
||
what they say before.
|
||
|
||
**B5** — `day>=10, absent>=4` — troubled
|
||
Four days at the desk.
|
||
I have drawn one hand.
|
||
It's a bad hand.
|
||
|
||
**B6 · the crack** — `day>=12` — troubled
|
||
I don't come here to
|
||
work, Master.
|
||
I come here to not.
|
||
|
||
**B7** — `day>=14, served=TOAST` — happy
|
||
When did I last eat?
|
||
Don't answer that.
|
||
...Thank you for this.
|
||
|
||
**B8** — `day>=16` — neutral
|
||
Thirty-two volumes.
|
||
Nine years. My whole
|
||
twenties, in a drawer.
|
||
|
||
**B9 · the secret** — `day>=18, affinity>=50` — troubled
|
||
They're ending it.
|
||
Two more chapters.
|
||
I asked for three.
|
||
|
||
**B10** — `day>=20` — troubled
|
||
Nine years and I get
|
||
two chapters to say
|
||
goodbye properly.
|
||
|
||
**B11** — `day>=22` — neutral
|
||
I've been drawing this
|
||
counter. Not for work.
|
||
Just drawing it.
|
||
|
||
**B12** — `day>=24, weather=rain` — neutral
|
||
Rain's good for pages.
|
||
Nobody expects you
|
||
anywhere in the rain.
|
||
|
||
**B13 · the change** — `day>=26, affinity>=70` — happy
|
||
The last chapter is
|
||
set in a coffee shop.
|
||
I hope that's all right.
|
||
|
||
**B14** — `day>=28` — happy
|
||
Here. Page forty.
|
||
That's your counter.
|
||
That's your lamp.
|
||
|
||
**B15 · resolution** — `day>=31` — happy
|
||
It's done. Nine years.
|
||
I'm starting something
|
||
new. Set here, I think.
|
||
|
||
---
|
||
|
||
## 4. Nakajima-san — the widow
|
||
|
||
> Two coffees. One with milk, one black. Slow, seasonal, weather-tied.
|
||
> **Want:** keep a routine that belonged to two people.
|
||
> **Secret:** the second coffee is his. It goes cold every time.
|
||
> **Change:** one day she orders one.
|
||
|
||
**Handle with care.** Her hook is the strongest in the game because the
|
||
player solves it unaided — the order is visible in the serve mechanic long
|
||
before anything is said. Per `PLAN.md` §8 item 14: **no one but Nakajima-san
|
||
ever explains it**, and she does so obliquely, at B4, and never apologises
|
||
for it. Do not let another character mention her situation.
|
||
|
||
Her arc runs on a slower day scale than the others by design — she should
|
||
feel like someone you see less often.
|
||
|
||
**B1** — `day>=4` — neutral
|
||
Two coffees, please.
|
||
One with milk.
|
||
The other black.
|
||
|
||
**B2** — `day>=8` — neutral
|
||
The same, please.
|
||
You remember which is
|
||
which. That's good.
|
||
|
||
**B3** — `day>=12, served=TWO_COFFEE` — neutral
|
||
No, don't clear it yet.
|
||
Leave it a while.
|
||
I'm not finished.
|
||
|
||
**B4 · the crack** — `day>=16, season=autumn` — neutral
|
||
He liked the autumn.
|
||
Said the town looked
|
||
better in brown.
|
||
|
||
**B5** — `day>=20` — neutral
|
||
Forty-one years of
|
||
two coffees.
|
||
It's a hard habit.
|
||
|
||
**B6** — `day>=24, weather=rain` — troubled
|
||
He'd have hated today.
|
||
He walked everywhere.
|
||
Never once took a bus.
|
||
|
||
**B7** — `day>=28, affinity>=40` — neutral
|
||
Your father served us
|
||
at that end table.
|
||
We were young then.
|
||
|
||
**B8** — `day>=32` — neutral
|
||
I know it goes cold.
|
||
That isn't the point
|
||
of it, Master.
|
||
|
||
**B9** — `day>=36, season=winter` — troubled
|
||
Three years this month.
|
||
People stop asking after
|
||
the second one.
|
||
|
||
**B10** — `day>=40` — neutral
|
||
My son says it's time
|
||
I stopped. He means
|
||
well. He means well.
|
||
|
||
**B11** — `day>=44, season=spring` — neutral
|
||
The cherry by the
|
||
station is out.
|
||
He'd have said it's early.
|
||
|
||
**B12** — `day>=48, affinity>=70` — neutral
|
||
I don't cry about it.
|
||
I just like ordering
|
||
for two. It's an hour.
|
||
|
||
**B13** — `day>=52` — neutral
|
||
You never asked me why.
|
||
That's why I come here
|
||
and not the new place.
|
||
|
||
**B14 · the change** — `day>=56` — neutral
|
||
One coffee today.
|
||
...With milk.
|
||
Just the one.
|
||
|
||
**B15 · resolution** — `day>=60, affinity>=90` — happy
|
||
One, please.
|
||
I'll take the window
|
||
seat. He never liked it.
|
||
|
||
---
|
||
|
||
## 5. Order lines
|
||
|
||
Spoken on arrival, before the brew. Rotate at random within a character;
|
||
they're texture, not story.
|
||
|
||
**Aki**
|
||
Cream soda, please.
|
||
The usual, Master.
|
||
Soda. I've earned it.
|
||
|
||
**Ōta-san**
|
||
Coffee. Black.
|
||
The usual, if you please.
|
||
Coffee. No sugar. Ever.
|
||
|
||
**Fujimoto**
|
||
Coffee. Keep it coming.
|
||
Something that will hurt.
|
||
Strongest. And toast.
|
||
|
||
**Nakajima-san**
|
||
Two coffees, please.
|
||
The same as always.
|
||
Two. Milk in one.
|
||
|
||
---
|
||
|
||
## 6. Brew reactions
|
||
|
||
Replaces the generic quality lines currently hardcoded in `kissaten.c`.
|
||
Quality bands as implemented: 3 = perfect, 2 = good, 1 = fair, 0 = off
|
||
(thin or over-strong depending on which side of centre you locked).
|
||
|
||
| | Aki | Ōta-san | Fujimoto | Nakajima-san |
|
||
|---|---|---|---|---|
|
||
| **3** | The ice is just right. | That is correct coffee. | Oh, that's cruel. Good. | He'd have liked that one. |
|
||
| **2** | Mm. That's a good one. | Good. Very good. | That'll do damage. | Very good, Master. |
|
||
| **1** | Thank you, Master. | Thank you. | Fine. It's wet. | Thank you, dear. |
|
||
| **0 thin** | It's a bit flat today. | A little pale today. | Is this tea? | A little weak today. |
|
||
| **0 strong** | Ooh. That's a lot. | Strong. I'll manage. | Perfect. Awful. Perfect. | Oh my. That's bracing. |
|
||
|
||
---
|
||
|
||
## 7. Ambient lines
|
||
|
||
Shown while the shop is empty. The four currently in `kissaten.c` are
|
||
placeholders; these replace them. Weather- and season-gated where marked.
|
||
|
||
**Any time**
|
||
The radio hums softly.
|
||
The kettle ticks as it
|
||
cools.
|
||
Steam on the window glass.
|
||
A bicycle bell, outside.
|
||
The lamp buzzes, once.
|
||
|
||
**Rain** — `weather=rain`
|
||
Rain taps at the window.
|
||
Someone runs past under
|
||
a newspaper.
|
||
The gutter is singing.
|
||
|
||
**Clear evening** — `weather=clear, phase=evening`
|
||
Dusk settles over the
|
||
street.
|
||
The sky goes orange, then
|
||
nothing.
|
||
|
||
**Autumn** — `season=autumn`
|
||
A leaf is stuck to the
|
||
door.
|
||
|
||
**Winter** — `season=winter`
|
||
The window fogs faster
|
||
than you can wipe it.
|
||
|
||
---
|
||
|
||
## 8. Notes and open questions
|
||
|
||
**Aki's soda doesn't fit the brew minigame.** The siphon minigame is
|
||
coffee-specific, but her usual is a cream soda. My recommendation: **soda
|
||
skips the minigame entirely** — it's poured, not brewed. That's not a
|
||
workaround, it's an improvement: her visits get a different, lighter rhythm
|
||
than the three coffee drinkers, which suits a teenager dropping in after cram
|
||
school. Her B13 switch to coffee then means she enters the minigame for the
|
||
first time, which is a lovely mechanical echo of the story beat.
|
||
|
||
**Nakajima-san's two coffees imply a two-brew serve.** Simplest reading: one
|
||
minigame, both cups. Making the player brew twice would be tedious and would
|
||
also make the second cup feel like a chore rather than a small sadness.
|
||
|
||
**Cross-references are deliberate.** Aki's B13 names Ōta-san; Ōta's B2 and
|
||
Nakajima's B7 both reference your father running the shop before you. These
|
||
cost nothing and make the cast feel like one place rather than four
|
||
unrelated visitors. Add more of these freely — but never let anyone discuss
|
||
Nakajima-san's second cup.
|
||
|
||
**Nobody dies during the game, nobody is cured.** All four arcs resolve by
|
||
someone deciding something small. That is the genre working correctly.
|
||
|
||
**Beat count is 60.** At three beats per sitting that's the twenty writing
|
||
sessions budgeted in `PLAN.md` §5 — already spent, if this draft survives
|
||
editing.
|