Skip to content

Commit 01faa8c

Browse files
Add README
1 parent 7edb80f commit 01faa8c

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# SilentPatch for TOCA 2 Touring Cars
2+
3+
In the spirit of the initial purpose of SilentPatches, this release revisits an old game for once - TOCA 2 Touring Cars from 1998.
4+
The patch corrects several compatibility issues with modern computers, previously requiring a manual fix, and adds full widescreen support.
5+
Original issues have also been corrected, and I also added some quality of life improvements, bringing the game closer to what more modern
6+
racing games can offer.
7+
8+
## Featured fixes
9+
* In-game timers have been rewritten to fix a freeze when starting the race or leaving the game, occurring on modern machines. Previously this issue required hex editing to work it around.
10+
* The game now handles all arbitrary aspect ratios without the need for hex editing. Both the 3D elements and UI have been fully fixed for widescreen.
11+
* The game now lists all available resolutions, lifting the limit of dimensions (up to 1600x1200) and the limit of 24 resolutions.
12+
* HUD scaling has been made more consistent on high resolutions, so the UI now looks identical regardless of resolution.
13+
* CD checks have been removed. When a Full installation is in use, the game now can be played without a CD, without the need to use a no-CD executable.
14+
* Fixed multiple distinct crashes occurring when minimizing the game excessively.
15+
* Fixed a crash when minimizing the game during a Support Car race. The crash happened because those cars don't have a name decal on the rear windshield.
16+
* Alt + F4 now works properly.
17+
* The process icon is now fetched from the toca2.exe file, giving the game an icon of a checkered flag.
18+
* Field of View can now be adjusted via the INI file, with separate values for external cameras and for the two interior cameras. You can select any value in the 30.0 - 150.0 range.
19+
* HUD scaling and menu text scaling can now be adjusted via the INI file.
20+
* Metric/imperial units can now be freely switched via the INI file. The new default behaviour is to use the user's OS setting to determine whether to use metric or imperial, but the choice can also be overridden via the INI file.
21+
* In-car rearview mirrors now can be forced to show regardless of the HUD settings. This feature can be toggled via the INI file.
22+
* In-car rearview mirror resolution can now be changed via the INI file, up to 512x256. Do note that higher resolutions might make the game slow if dgVoodoo isn't used.
23+
* The center interior camera now uses a full range of steering animations and gear shifting animations, just like the main interior camera. This feature can be toggled via the INI file.
24+
* Driver's hands and the steering wheel can now be toggled on/off via the INI file independently. This feature might be useful for specific steering wheel setups to avoid a "duplicate steering wheel".
25+
26+
## Credits
27+
* [AuToMaNiAk005](https://www.youtube.com/user/AuToMaNiAk005) - for his extremely useful widescreen/ultrawide tutorials I used as a base for my implementation of widescreen & high resolutions support
28+
29+
[![Preview](http://img.youtube.com/vi/QVSzsOuwAA8/0.jpg)](http://www.youtube.com/watch?v=QVSzsOuwAA8 "Preview")

source/SilentPatchTOCA2.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,13 +244,12 @@ namespace WidescreenFix
244244
static float verticalFOV = 2.5f;
245245
void __stdcall SetViewport_CalculateAR(int width, int unk1, int unk2, int unk3, int height, int unk4)
246246
{
247-
// TODO: Adjustable FOV
248247
const double currentInvAR = static_cast<double>(m_currentRes->height) / m_currentRes->width;
249248

250249
uint32_t camID = GetCurrentCamera(0);
251250
const double FOVMult = camID == 2 || camID == 4 ? FOVDashboardMult : FOVNormalMult;
252251

253-
constexpr double AR_HOR_CONSTANT = 2.0 * 4.0 / 3.0; // 2.0f * (4/3)
252+
constexpr double AR_HOR_CONSTANT = 2.0 * 4.0 / 3.0;
254253
constexpr double AR_VERT_CONSTANT = 2.5;
255254
horizontalFOV = static_cast<float>(AR_HOR_CONSTANT * FOVMult * currentInvAR);
256255
verticalFOV = static_cast<float>(AR_VERT_CONSTANT * FOVMult);

0 commit comments

Comments
 (0)