Scooby-Doo! Mystery Mayhem - PC port: release notes
====================================================

1.0.0-rc.2 (release candidate 2)
--------------------------------
rc.2 is rc.1 plus the fixes found while testing it (listed below together with the rc.1 changes),
most visibly much faster level drawing.
Release candidate of the PC port of the original PS2 game. It plays the complete
original game (all six episodes, menus, saves) from a disc image of your own PS2 disc.

Fixed during the release-candidate testing
- Smoke and scorch effects that darken the picture (e.g. the fireball smoke in Episode 6) were drawn
  as solid black squares; they now darken softly like on the PS2.
- Particle sprites whose centre is at the camera or far outside the view are skipped, as the PS2
  does (fewer stray haze patches right in front of the camera).
- Saving: a damaged memory card file no longer crashes the game and is left untouched by a load;
  card writes, the settings file and a new controls file are written safely (an interrupted save
  keeps the previous file).
- Only one game at a time uses a memory card: a second game window on the same card shows "already
  running with this memory card" and closes instead of mixing both games' saves.
- Settings changed inside the game are no longer overwritten by the launcher (it merges and reloads
  them), and a save inside the game only writes the settings you changed there (a launcher change of
  another setting is kept).
- An unsupported or damaged disc image is rejected with a clear message in the launcher and when
  game.exe starts, instead of failing later.
- Sound keeps working when the audio device is unplugged or changed (it reconnects; a running
  cut-scene movie's sound continues in sync on the new device); no slow memory growth when there is
  no audio device. Cut-scene speech follows the "Voice / movies" volume.
- Hardened against bad files: damaged disc images, unreadable settings or controls files (unknown
  key names are reported and skipped; a controls file with no valid bindings falls back to the
  defaults), and a missing user folder.
- Crash handling: the launcher shows the reason if the game or the launcher itself stops with an
  error, with a "Report a bug" button (it opens the project's GitHub Issues page); console output is
  captured into game.log. An internal error inside the game shows an error box instead of the window
  just closing.
- A disc image on a removed USB drive or an offline network share no longer freezes the launcher
  (the disc check gives up after a few seconds; PLAY then shows a clear message). The launcher
  remembers its window position (and stays on a connected monitor).
- "Press the key" binding only takes a fresh press: a button that was already held, or a gamepad that
  was just plugged in, no longer gets bound by accident.
- If the disc image disappears while playing (moved, deleted, USB drive or network share
  disconnected) or the graphics driver resets, the game closes with a clear message (and a crash.log
  entry) instead of freezing or vanishing; the memory-card saves are kept. A single failed disc read
  (e.g. a USB drive waking up) is retried once first.
- game.exe no longer hangs on exit (or after an error) when its output is redirected to a file.
- Smoother frame times (the renderer no longer re-uploads unchanged scene data every frame, and
  prepares animated characters and lights once per object instead of once per material: up to a
  third less CPU time in busy scenes); character shadows take about half the time to draw.
- Much faster level drawing: the level geometry reuses one material per surface type instead of
  one per level piece (pictures unchanged; up to 3-4x higher frame rate in the heaviest rooms, e.g.
  Episode 1's library and the Episode 6 finale). GAME_WORLD_MERGE=0 restores the old path.
- Two gamepads: a button press on a pad makes it the active one; a second pad with a drifting stick
  can no longer take the controls away.
- Very quick key taps (pressed and released within a sixtieth of a second) are no longer lost; a tap
  during a level load no longer reaches the new level (e.g. as a pause).
- Mouse camera in a window: the cursor is hidden and kept inside the window while playing (it could
  wander onto the desktop and take the focus away); menus and movies show it as usual. The click
  that brings the window back is never passed to the game.

New controls and settings
- Backspace = back in menus (Triangle, as in the original PC key table) instead of Select.
- Arrow keys work as the d-pad in menus.
- "Pause when the window loses focus" (off by default): launcher Controls tab and in-game PC
  SETTINGS.
- "PC key prompts (experimental)" (off by default): launcher Controls tab and in-game PC SETTINGS ->
  CONTROLS (row "PC KEY PROMPTS"); menu prompts show the bound keyboard key instead of the PS2
  button icon while you use the keyboard.

The game
- The whole game: the boot logos and intro movie, title and Options menus, all six episodes with
  their levels, boss fights, cut-scene movies and credits, as on the PS2 (the game's logic was
  ported function by function from the original program, so routes, enemies and puzzles behave as on
  the console).
- Saving and loading through the game's own memory-card menus and checkpoints; the memory card is
  stored per Windows user in %LOCALAPPDATA%\ScoobyMM\saves\memcard1 (saves of earlier test builds
  are copied there once).
- Music, sound effects and voices through the game's own sound banks and streams; looping music
  without gaps; cut-scene movies with their sound in sync and skippable as on the PS2 (Start);
  movies keep their 4:3 picture with black side bars on wide screens.
- Rendering on DirectX 12 or Vulkan (wgpu): any window size, 4:3 / 16:9 / ultra-wide (more picture
  at the sides, same vertical view), anti-aliasing (MSAA up to 8x), PS2-accurate depth, shadows,
  transparency and glow effects.
- The game runs at the original speed whatever the frame rate (fixed-step logic at the PS2 rate).

The PC side
- Launcher ("Scooby-Doo Mystery Mayhem.exe"): finds or lets you pick the disc image, checks it
  (which disc release, or a clear reason why an image cannot be used: archives, compressed images,
  other games, damaged images, network locations), shows the disc's title art, starts the game and
  shows the reason if the game ever stops with an error. Graphics / Audio / Controls settings, "Skip
  launcher next time" (hold Shift to get it back), keyboard and gamepad navigation.
- Disc images: .iso, .img, .bin (2048- or 2352-byte sectors) and .cue + .bin.
- Keyboard + mouse and gamepads (Xbox, PlayStation, Switch Pro and other controllers), hot-plug,
  deadzone and trigger settings, optional mouse camera, invert camera Y.
- All controls rebindable: two keys and one gamepad button per PS2 button, by list or "press the
  key", in the launcher and inside the game (Pause -> Options -> PC SETTINGS -> BUTTONS).
- Display modes windowed / borderless / fullscreen (F11 toggles), VSync, FPS cap, volume controls
  (master, music, effects, voice / movies, mute) on top of the game's own options.
- No console window; game.log and crash.log in %LOCALAPPDATA%\ScoobyMM\logs for bug reports (crash
  reasons with a backtrace; a separate symbols zip lets developers turn them into source lines).
- Version shown in the launcher, in the exe's file properties, by `game.exe --version` and in
  VERSION.txt.

Known issues
- Tested with the European SCEE disc PBPX-95506 only. The North American (SLUS-20701) and the
  European retail (SLES-51883) discs are accepted with an "untested" warning: please report how they
  play.
- Episode 1, first level (the mansion): on slower CPUs the frame rate can drop in parts of the level
  (the renderer's CPU preparation takes up to ~30 ms per frame there; every other level measured
  needs 12.5 ms or less).
- Episode 3, last level: the dust-devil boss effect was reworked to match the PS2 and has not been
  re-checked in a full play-through.
- The in-game PC SETTINGS: anti-aliasing changes apply after restarting the game (marked "(R)").
- Not yet tested: other GPUs than NVIDIA (AMD, Intel), low-end PCs, Windows 10, and the audio mix on
  real speakers against the PS2 (checked from captures only).
- No render-scale / internal-resolution setting (the picture is always rendered at the window size).
- Windows SmartScreen / some antivirus programs may warn about the unsigned exes.

Please report problems on the Issues page of the project's GitHub repository (address and details:
README.txt, section 10) with crash.log, game.log and VERSION.txt.
