CLANNAD Access 1.0
A screen reader accessibility mod for CLANNAD (Steam, English HD Edition).

With this mod, CLANNAD can be played without sight. The mod reads dialogue,
narration, speaker names, choices, menus, save slots and the story date
through your screen reader, and lets you use the keyboard for all the menus
the game normally only lets you use with the mouse, including the
configuration screen, the Dangopedia glossary and achievements. It runs
inside the game itself: there is no extra program to start.


WHAT YOU NEED

- CLANNAD on Steam, with the game language set to English (this is the default).
- Windows 10 or 11.
- NVDA or JAWS. If no screen reader is running, the mod uses the Windows voice
  instead, so Windows Narrator users will still hear it.


HOW TO INSTALL

The mod is three files. Installing means copying them into the game folder;
there is nothing to run.

1. Close CLANNAD if it is running.
2. Open the CLANNAD game folder. In Steam: open your Library, open the context
   menu on CLANNAD, choose Manage, then Browse local files. The folder that opens
   contains a file called SiglusEngine_Steam.exe.
3. Copy these files from this zip into that folder, next to
   SiglusEngine_Steam.exe (not into a sub-folder):
     version.dll
     Tolk.dll
     nvdaControllerClient32.dll
     clannad_access.ini (optional: the settings file)
   If Windows asks for permission, choose Continue.
4. Start CLANNAD from Steam as usual. After a few seconds you will hear
   "CLANNAD Access 1.0 loaded".

The game's language in Steam must be English (Steam, Library, CLANNAD,
Properties, Language). Other language versions of CLANNAD on Steam use a
different game engine, and the mod stays switched off there.

Some antivirus programs are suspicious of a new version.dll in a game folder,
because that is how mods like this one load. The mod does not change any game
files. If your antivirus removes version.dll, restore it or allow it, and copy
it again.


KEYS

The mod's keys only work while the CLANNAD window is in focus.

Everywhere
  Up and Down arrows: move through menu items
  Home and End: jump to the first or last item
  Enter: choose the current item
  Escape: go back or close

In the story
  Enter: next line (the game's own key)
  Escape: open the system menu (save, load, configuration, return to title...)
  Left bracket: read the previous line in the text log. Hold it to move quickly.
  Right bracket: read the next line in the text log.
  Shift with left bracket: jump to the oldest line in the log.
  Shift with right bracket: jump back to the latest line.
  P: play the character's voice again for the current line, or for the line
     you are reviewing in the log.
  D: say the current story date.

Notifications
  When the story unlocks a new Dangopedia entry, you hear "Dangopedia term
  added" and the term (if Dangopedia notifications are on in the game). When
  you earn an achievement, you hear "Achievement unlocked" and its name.

Choices
  When a choice appears, all the options are read. Use Up and Down to pick one
  and Enter to select it. The text log keys still work during a choice.

Save and Load
  Up and Down: move between the 10 slots on a page. Each slot tells you if it
  is empty, or the chapter and the date and time it was saved.
  Left and Right: change page (10 pages).
  Enter: save to or load from the slot.
  Escape: go back.

Yes and No questions
  Left and Right: choose Yes or No. Enter: accept.

System menu extras
  "No menu transition delay" and "Auto Mode" tell you whether they are on or
  off; Enter switches them.
  "Auto mode settings" opens the auto mode timing panel. In auto mode each line
  waits for its number of characters times the character delay, plus the base
  delay. Up and Down move between Character delay, Base delay, Restore
  defaults and Close. Left and Right change a delay and tell you the new value
  in seconds. Escape closes the panel.

Configuration
  Up and Down: move through the settings. Each one tells you its current
  state: which option is selected, whether a box is checked, or a slider's
  level in percent.
  Page Up and Page Down: jump between sections (Display, Sound, Character
  voices, Window background, Text, Other settings, Exit).
  Left and Right: change a setting that has two options (for example
  Fullscreen or Windowed), or move a slider (volumes, text speed, window
  colours) by about 13 percent. Hold Shift for small steps of about 2 percent.
  Enter: tick or untick a box, press a button, or turn a sound on or off.
  Escape: leave the configuration screen.

Dangopedia (the game's glossary)
  Up and Down: move between the entries you have discovered on this page, then
  the two checkboxes and Exit.
  Enter on an entry: read its full description.
  Left and Right: change page (5 pages).
  Escape: close.

Achievements (from the title screen)
  Tells you how many achievements you have unlocked. Up and Down go through
  the unlocked ones (name and what it was for) and the ones you can already
  see; achievements that are still secret are counted together. Then the two
  checkboxes and Exit. Escape: close.

Name change (from the title screen)
  Type the last name, press Tab, type the first name, then press Enter to
  confirm or Escape to cancel. After you confirm, the game asks whether to turn
  off voices (the voices still say the default name). Use Left and Right to
  choose and Enter to accept.


KNOWN LIMITS

- The text log only contains lines read since you started the game. Lines from
  before you loaded a save are not in it.
- Voices for lines you skipped quickly can sometimes not be replayed.
- The Window mode "Settings", "Select font", "Movie settings" and "MMX
  settings" buttons open normal Windows dialogs, which your screen reader reads
  by itself (Tab and arrow keys). The mod names the ones whose title is not in
  English.
- Pictures (backgrounds and character art) are not described. The story text
  describes the scenes.
- Song subtitles (in the opening movie and the endings) are part of the
  pictures, so they are not read.


WINDOWED OR FULLSCREEN

The mod works in both, but windowed mode is recommended. In fullscreen, the
game itself shows extra Windows popups each time it starts, and the mod's keys
only work once they are closed:

- "Change resolution": the game has switched your screen resolution and asks
  whether to keep it. Press Escape to switch back straight away, or wait 15
  seconds and it switches back by itself.
- "Screen settings": the game opens this after switching back. Press Escape
  to close it and go back to the game.
- Sometimes a window about the opening movie appears. Its text is in
  Japanese, so your screen reader may read question marks; the mod tells you
  what it says. Press Escape to skip the movie.

To go back to windowed mode: in Configuration, move to Window mode and press
the Right arrow (Windowed).


SETTINGS FILE

clannad_access.ini in the game folder turns parts of the mod on or off
(1 means on, 0 means off). Restart the game after changing it. For example,
set narration=0 if you only want dialogue read.


IF SOMETHING GOES WRONG

- You hear nothing when the game starts: check that version.dll, Tolk.dll and
  nvdaControllerClient32.dll are all in the same folder as
  SiglusEngine_Steam.exe.
- You hear "this version of the game is not supported": the game files are
  different from the version the mod was made for, usually because the game's
  language in Steam is not English. The game still works normally, only the
  mod stays off.
- To report a problem, please send the file clannad_access_log.txt from the
  game folder, and say what you did just before it went wrong. The log from the
  session before that is kept as clannad_access_log_prev.txt.


HOW TO UNINSTALL

Close the game and delete these files from the game folder: version.dll,
Tolk.dll, nvdaControllerClient32.dll and clannad_access.ini, plus the log
files clannad_access_log.txt and clannad_access_log_prev.txt if they are
there. If you used an older version of this mod, also delete
version_real.dll. The game is then back to normal; your saves are not
touched.


CREDITS AND LICENCES

Speech output uses Tolk and the NVDA controller client. Function hooking uses
MinHook. See THIRD-PARTY-NOTICES.txt.
