Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ set(DISRUPTOR_EXTRA_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/session/capsule.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/session/cheats.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/input/control_probe.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/session/diagnostics.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/render/far_rendering.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/frame/frame_rate.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/game/host.cpp"
Expand Down Expand Up @@ -220,6 +221,7 @@ if(BUILD_TESTING)
disruptor_contract(smooth_turn)
disruptor_contract(ambient_occlusion)
disruptor_contract(debug_tab)
disruptor_contract(diagnostics)
disruptor_contract(instruction_hooks)
disruptor_contract(state_key)
disruptor_contract(test_registration)
Expand Down Expand Up @@ -261,6 +263,11 @@ if(BUILD_TESTING AND NOT CMAKE_CROSSCOMPILING)
set_tests_properties(disruptor_mouse_aim PROPERTIES
ENVIRONMENT "PSX_DISRUPTOR_MOUSE_AIM=;PSX_DISRUPTOR_VERTICAL_LOOK=;PSX_DISRUPTOR_MODERN_CONTROLS=;PSX_DISRUPTOR_HIGH_PRECISION_CAMERA=")

add_test(NAME disruptor_mouse_aim_replay
COMMAND disruptor-mouse-aim-test --replay)
set_tests_properties(disruptor_mouse_aim_replay PROPERTIES
ENVIRONMENT "PSX_DISRUPTOR_CAPSULE_REPLAY=capsule;PSX_DISRUPTOR_MOUSE_AIM=;PSX_DISRUPTOR_VERTICAL_LOOK=;PSX_DISRUPTOR_MODERN_CONTROLS=;PSX_DISRUPTOR_HIGH_PRECISION_CAMERA=")

add_test(NAME disruptor_mouse_aim_registration
COMMAND disruptor-mouse-aim-test --registration)
set_tests_properties(disruptor_mouse_aim_registration PROPERTIES
Expand All @@ -281,6 +288,16 @@ if(BUILD_TESTING AND NOT CMAKE_CROSSCOMPILING)
set_tests_properties(disruptor_high_precision_camera_registration PROPERTIES
ENVIRONMENT "PSX_DISRUPTOR_MOUSE_AIM=;PSX_DISRUPTOR_VERTICAL_LOOK=;PSX_DISRUPTOR_MODERN_CONTROLS=;PSX_DISRUPTOR_HIGH_PRECISION_CAMERA=1")

disruptor_unit_test(disruptor_diagnostics tests/unit/disruptor_diagnostics_test.cpp
SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/game/session/diagnostics.cpp"
INCLUDES tests/support/stubs
DEFINITIONS PSX_SDL3=1)
set_tests_properties(disruptor_diagnostics PROPERTIES ENVIRONMENT "PSX_DISRUPTOR_DETAILED_LOGGING=")
add_test(NAME disruptor_diagnostics_forced COMMAND disruptor-diagnostics-test --forced)
set_tests_properties(disruptor_diagnostics_forced PROPERTIES ENVIRONMENT "PSX_DISRUPTOR_DETAILED_LOGGING=1")
add_test(NAME disruptor_diagnostics_refused COMMAND disruptor-diagnostics-test --refused)
set_tests_properties(disruptor_diagnostics_refused PROPERTIES ENVIRONMENT "PSX_DISRUPTOR_DETAILED_LOGGING=0")

disruptor_unit_test(disruptor_cheats tests/unit/disruptor_cheats_test.cpp RUNTIME_HEADERS)
disruptor_unit_test(disruptor_vertical_camera tests/unit/disruptor_vertical_camera_test.cpp RUNTIME_HEADERS)
disruptor_unit_test(disruptor_far_rendering tests/unit/disruptor_far_rendering_test.cpp RUNTIME_HEADERS)
Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ disc revision; the redistributable OpenBIOS backend is used for booting.
- Experimental vertical mouse look and weapon aim.
- In-game settings for controls, display, fullscreen, VSync, volume, and mute.
- Diagnostic views and a screen recorder for reports of a fault in the picture.
- A launcher button that gathers logs and settings for a bug report, and a
detailed log to switch on for one.
- Memory-card saves and twelve save-state slots.
- Windows launcher with disc-image browsing, automatic copy/CUE setup,
full-disc SHA-256 verification, the game's settings with a hint for each,
Expand Down Expand Up @@ -84,8 +86,9 @@ Press **backquote** (`` ` ``) to open settings; **Escape** closes them. Gameplay
continues while the menu is open, but game input is blocked.

With modern controls enabled: **WASD** moves, **left mouse** fires, **right
mouse** uses psionics, **Space** jumps, and **E** interacts. **Middle-click**
captures the mouse; middle-click or Escape releases it. Add `-VerticalLook` to
mouse** uses psionics, **Space** jumps, and **E** interacts. The game holds
the mouse while its window has focus. Escape or a middle-click releases it,
and a left-click in the window takes it back. Add `-VerticalLook` to
enable experimental vertical aim.

**Alt+Enter** toggles fullscreen. **Shift+F1–F12** saves a state;
Expand Down
33 changes: 28 additions & 5 deletions docs/PLAYING.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ folder; these backups can be removed manually once the repaired copy works.
| --- | --- |
| Move / strafe | W / S / A / D |
| Turn | Mouse, after capture; arrow keys also work |
| Capture / release mouse | Middle-click; Escape also releases |
| Release / capture mouse | Escape or middle-click releases; a left or middle click captures again |
| Fire / menu confirm | Left mouse / Enter |
| Psionic attack | Right mouse / F |
| Jump / menu cancel | Space |
Expand Down Expand Up @@ -146,6 +146,28 @@ retain your controls and display preferences.
God Mode resets off on launch. Granting all weapons and psionics marks the game
as cheated, including subsequent game saves.

## Reporting a problem

Press **Report a problem** in the launcher. It gathers the game's log of the
last two runs, the mouse log, your settings, the notes the game leaves of how
its last run ended and of a freeze, and a note of the system into one
ZIP under `reports/` beside the executable and shows it in Explorer. Where
Windows cannot make the ZIP, it is a folder of the same name: attach its
files. The name of your Windows user folder is cut out of paths, and
your disc image, BIOS and saves are never
included. Attach the ZIP to a
[bug report](https://github.com/micmea668/DisruptorRecomp/issues) with the
level and the steps that lead to the problem. For a fault in the picture add
a replay capsule or a screen recording, described below.

For a problem you can repeat, first switch on **Detailed logging** on the
launcher's **Troubleshooting** page, play until it shows, close the game and
then make the report. The log then also says every ten seconds how the
frames ran, each setting changed in the game's menu, controllers connected
and removed, and what the graphics driver complains of. The switch is in the
game's menu too, under **Settings → Debug**, where the driver's part starts
with the next launch.

## Reports and replay capsules

**Settings → Debug** offers diagnostic views and **Record the screen** for
Expand Down Expand Up @@ -180,10 +202,11 @@ for the replay tool and its limits.
- **Slow rendering:** lower resolution to 2x or 1x in Enhancements and update
your graphics driver. Try turning off 60 FPS gameplay and in-between
frames if they are enabled.
- **Mouse does not turn:** enter gameplay and middle-click to capture it.
- **Other problems:** include the level, reproduction steps, render settings,
and `startup.log` in a [bug report](https://github.com/micmea668/DisruptorRecomp/issues).
Do not attach your game image, game assets, or BIOS files.
- **Mouse does not turn:** the game holds the mouse while its window has
focus and mouse aim or modern controls are on. After Escape or a
middle-click, left-click in the window to capture it again.
- **Other problems:** see [Reporting a problem](#reporting-a-problem). Do not
attach your game image, game assets, or BIOS files.

This is an early alpha. The first mission and training-level path have been
tested, including the recent 8x / 32:9 corruption fix. Full campaign coverage
Expand Down
Loading
Loading