Files
jurjen.ladeniusandClaude Opus 5 45749775fa Scaffold Kissaten Yugure; add M2 day spine, plan and script
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>
2026-07-27 21:58:22 +02:00

493 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 16 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.