mika-n / NGPCarMenu

Custom "Select Car in-game menu" for Richard Burns Rally (RBR v1.02 SSE) game. The plugin supports custom car preview images (the real RBR 3D rendered custom car images), car specs from NGP physics model (engine, transmission, FIA category, year, etc), longer car menu names (up to 30 chars in a menu) and even more chars in the car specs window. New car preview images are created through in-game menu of the plugin.
37 stars 4 forks source link

NGPCarMenu

Custom plugin for Richard Burns Rally game (RBR v1.02 SSE) to improve the "Select Car" in-game menu and RBRTM and RBR_RX "Select Stage" menus (ie. for those people who don't use external RBR game launchers).

The original RBR game and RBRTM and RBR_RX plugins have various problems and limitations:

Good news! NGPCarMenu plugin solves these issues by doing following enhancements in RBR:

The plugin supports RBRTM Czech Tournament plugin (V0.88) integration. Use NGPCarMenu in-game menu or INI file to enable/disable this integration. RBR_RX plugin (RBR_RX.dll with 417792 bytes, the file doesn't have version tag) integration. Use NGPCarMenu in-game menu or INI file to enable/disable this integration. RallySimFans plugin (RSF). Refer to RSF home page for more information. RBRPro RBR bundle. Refer to RBRPro home page for more information.

Download

Installation

The NGPCarMenu.ini file has various screen resolution specific options. There are default values for the most common resolutions, but if the resolution you use is not there the plugin adds it there automatically with default values. Refer to NGPCarMenu.ini.sample for more information about new options.

Note! If you use Windows Explorer integrated unzip tool to unzip the package then rbr\Plugins\NGPCarMenu.dll file may be in "blocked" state in some PC environments because the file was downloaded from Internet. To solve this issue choose properties of NGPCarMenu.dll file (right mouse button click and Properties popup menu) and untick "blocked" option. Or use better zip tools like 7-Zip.org or WinRAR to unzip packages.

Upgrading from an old version

Configuration

rbr\Plugins\NGPCarMenu.ini options (see the NGPCarMenu.ini.sample file for more details): Option Comment
AutoLogon Disabled, Main, Plugins, custom plugin name, Replay. If this is set then NGPCarMenu opens the specified menu screen automatically when RBR is launched. Replay option runs a RPL replay file (see AutoLogonParam1). If you have multi-profile RBR then see AutoLogonWaitProfileSelection option also. See NGPCarMenu in-game menu.
AutoLogonWaitProfileSelection 0 (disabled) or 1 (enabled). If autologon is set and you have multiple profiles in RBR then setting this option to value 1 lets you to select a profile before autologon sequence does it job. If set to value 0, NGPCarMenu autologon selects automatically the first profile.
AutoLogonParam1 Additional parameter for AutoLogon command. At the moment only AutoLogon=Replay uses this option and the value should be RBR replay RPL filename. See NGPCarMenu.ini.sample for examples.
RallySchoolMenuReplacement Replace the RallySchool menu with a custom menu shortcut (Plugins or a custom plugin menu shortcut). See NGPCarMenu in-game menu.
RaceStatDB The path of raceStatDB storage file. RaceStatDB=0 option value disables the feature.
RecentResultsPosition The location of "Recent results" data on RBR main screen. If the option is missing or empty then the plugin uses default location. RecentResultsPosition=0 option hides this information.
RBRTM_RecentResultsPosition The location of "Recent results" data on RBRTM main menu. RBRTM_RecentResultsPosition=0 hides the information.
RBRRX_RecentResultsPosition The location of "Recent results" data on RBRRX stages menu. RBRRB_RecentResultsPosition=0 hides the information.
InvertedPedalsStartupFix 0 or 1. If enabled (default) then NGPCarMenu fixes the notorious "inverted pedals" RBR bug when the car is at starting line (ie. throttle goes to 100% until a driver presses the inverted pedal at least once).
SecondaryGearUpDownControls 0 (disabled) or 1 (enabled, default). If enabled and an analog Steering control is set then RBR control screen supports both primary and secondary gear up/down control keys (for example, you can map both sequantial gear stick and steering wheel paddles as gear buttons at the same time).
SplitCombinedThrottleBrakeAxis The game controller ID used when a combined triggers are splitted as two different analog axis in RBR controls. 0 (disabled), 1-4 gamepad ID.
SplitThrottleAxis LT = Left trigger, RT = Right trigger. The same for SplitBrakeAxis option also. If combined trigger is splitted then defines which trigger is throttle or brake.
DeadzoneXXXX Optional deadzone for DeadzoneSteering/Throttle/Brake/Clutch/Handbrake controls. Useful for those gamepad drivers where the left or right stick in the gamepad is no longer stable or don't return to absolute center position.
CockpitCameraShaking Enable or Disable the camera shaking in the cockpit (internal) camera view. 0=Use the model default, 1=Disabled shaking, 2=Enabled shaking
CockpitSteeringWheel Show or Hide steering wheel/windscreen/wipers in the cockpit camera view. 0=Use the model default, 1=Hidden, 2=Shown
CockpitOverrideFOV Enable or Disable overriding of FOV value in the cockpit (internal) camera view. Use CockpitOverrideFOVValue option to set the new FOV value
ScreenshotPath Path of car preview images (relative to RBR executable location or absolute path). Supports various runtime variables (see NGPCarMenu.ini.sample for more details)
ScreenshotReplay Replay filename the plugin uses to generate preview images.
ScreenshotFileType PNG or BMP file format in car preview image files. There is also in-game plugin option to set this value.
ScreenshotAPIType 0 or 1. 0=DirectX framebuffer capture while creating preview images. 1=GDI capture. Some Win7 PCs seemed to have issues with DX9 framebuffer captures (wrong colors), so this option 1 (GDI) may help in those scenarios.
LanguageFile Path to localization file (localized text labels shown in RBR car selection screen). English is the default language.
RBRCITCarListPath Path to NGP carList.ini configuration file (NGP car specs). If you use RBRCIT tool then the tool has downloaded the file in RBRCIT folder.
EasyRBRPath Path to EasyRBR.ini configuration file (EasyRBR car manager tool configurations). By default this is commented out, so NGPCarMenu assumes RBRCIT tool is used. By uncommenting this line NGPCarMenu uses custom car information from EasyRBR car manager tool.
ScreenshotCropping Cropping rectangle for the screenshot. Make it "big enough but not too big" to fill the bottom part of "Select Car" RBR menu screen (empty string or 0 0 0 0 uses full screen in a car preview images).
CarSelectLeftBlackBar Optional rectangle black bar to hide the stock RBR "left frame" image in "Select Car" menu (empty string or 0 0 0 0 disables the black side bar). The first value (left pos) also defines the X-pos where the car preview image is drawn.
CarSelectRightBlackBar (the same as above)
Car3DModelInfoPosition 3D model into textbox X Y position. Empty or missing uses the default position. 320 200 would set both X and Y positions, but having just 320 value would set X position only and Y would be at default position.
CarPictureScale Scaling of the car picture in the built-in RBR car selection menus (-1=no scaling or stretching (default), 0=Stretch to fill the picture area (ignore aspect ratio), 3=Scale while keeping the aspect ratio and place the image on the bottom of the picture rectangle area.
CarPictureUseTransparent 0 or 1. 0=No transparent support with PNG files. 1=If PNG file has a transparent background then use it (alpha channel)
ScreenshotCarPosition Car position while taking the car preview screenshot. 0=The default location on the road, 1=The car is on the sky in the middle of nowhere
ScreenshotCamPosition Camera position while taking the screenshot. (not yet implemented)
RBRTM_Integration 0 or 1. 0=RBRTM integration disabled. 1=RBRTM integration enabled (if the RBRTM plugin is installed and it is V0.88 version)
RBRTM_TrackLoadBugFixWhenNotActive 0 or 1. 0=NGPCarMenu doesn't fix the RBRTM map bug preventing QuickRally and BTB maps to work after racing on RBRTM tracks (RBR should be restarted to race those other maps), 1=NGPCarMenu plugin fixes this RBRTM bug (default)
RBRTM_CarPictureRect Rectangle coordinates where the car preview image is drawn in RBRTM Shakedown and OnlineTournament menus (left top right bottom). Tweak this value if the image is drawn at wrong location.
RBRTM_CarPictureCropping Rectangle coordinates of cropping area of the preview image shown in RBRTM menus (not yet implemented)
RBRTM_CarPictureScale Scaling of the car picture in the RBRTM car selection menus (0=Stretch to fill the picture area, 3=Scale while keeping the aspect ratio and place the image on the bottom of the picture rectangle area (default).
RBRTM_CarPictureUseTransparent 0 or 1. 0=No transparent support with PNG files. 1=If PNG file has a transparent background then use it (alpha channel)
RBRTM_MapScreenshotPath Path of custom map preview images (relative to RBR.EXE location or absolute path). NGPCarMenu uses map preview images from this folder location. If the file is missing then the plugin uses a map specific Maps\Tracks.ini SplashScreen option as a preview image.
RBRTM_MapPictureRect Location of the map preview image on RBRTM Shakedown stages menu screen (x1 y1 x2 y2, values in screen coordinates). If missing or empty then NGPCarMenu plugin draws the image at default location.
RBRTM_MinimapPictureRect Location of the minimap in stage selecton menu screen. 0=Disables the minimap feature. By default the minimap is drawn on top of the map preview image
RBRTM_MapPictureRectOpt The same as above, but for the options screen following the stages menu list (ie. when a stage has been already selected)
RBRTM_MinimapPictureRectOpt (see the comment above)
RBRTM_RecentMapsMaxCount Maximum number of recent driven maps shown on top of the RBRTM Shakedown stages menu list (shortcuts to a map)
RBRRX_Integration 0 or 1. 0=RBRRX integration disabled. 1=RBRRX integration enabled
RBRRX_MapScreenshotPath Path of custom map preview images (relative to RBR.EXE location or absolute path)
RBRRX_MapPictureRect Location of the map preview image on RBR_RX stages menu screen (x1 y1 x2 y2, values in screen coordinates). If missing or empty then NGPCarMenu plugin draws the image at default location.
RBRRX_MinimapPictureRect Location of the minimap in stage selecton menu screen. 0=Disables the minimap feature. By default the minimap is drawn on top of the map preview image
RBRRX_MapPictureRectOpt The same as above, but for the options screen following the stages menu list (ie. when a stage has been already selected)
RBRRX_MinimapPictureRectOpt (see the comment above)
RBRRX_MapPictureRectLoadTrack The same as above, but for the custom BTB "loading a track" screen.
RBRRX_MinimapPictureRectLoadTrack (see the comment above)
RBRRX_CustomLoadTrackScreen 0 or 1. 0=Custom BTB "loading a track" screen disabled. 1=Custom BTB "loading a track" screen enabled (default).
RBRRX_RecentMapsMaxCount Maximum number of recent driven maps shown on top of the RBR_RX stages menu list (shortcuts to a map)
GenerateReplayMetadataFile 0 or 1. Generates a replay metadata INI file when a new RBR, RBRTM or RBRRX replay is saved in Replays folder. BTB replay in NGPCarMenu needs this metadata file, so don't disable this if you want to replay BTB recordings afterwards.

Questions and Answers

One potential problem issue in WinOS FileExplorer integrated ZIP tool is that in some PC setups the extract DLL plugin file may be blocked because the file was downloaded from Internet (GitHub). To solve this issue select properties of plugins\NGPCarMenu.dll file in FileExplorer (right mouse button) and tick "Unblock" option. Another solution is to use WinRAR or 7-Zip tools to extract the ZIP file. Also, some Windows OS setups limit writing new files under c:\program files\ or c:\program files (x86)\ folders. If creation of new car preview PNG image file fails then change the default ScreenshotPath option value or copy the whole RBR game to, for example, c:\apps\rbr\ folder.

BTB track authors and new metadata fields in a BTB map specific track.ini file (used by RBR_RX and NGPCarMenu plugins)

NGPCarMenu plugin supports custom metadata tags in track.ini file. If these are set then NGPCarMenu plugin can show this information in RBR_RX stages menu list while people browse through their track collections. By default RBR_RX plugin has supported only name and physics metadata tags, but now following metadata fields are supported (no need to try to embed all information into name attribute and this way making the BTB menu ). Hopefully BTB track authors would add these tags to new maps and track.ini files. This way they will also get more well deserved visibility within the RBR game while people browse through a list of BTB tracks.

Sample of RX_Content\tracks\myBTBMap\track.ini file:

If the length attribute is missing then NGPCarMenu plugin takes the length from BTB track model data when the map is loaded for the first time. If this value is invalid (<1km) then NGPCarMenu tries to estimate the stage length from start-finish markers in BTB pacenotes data. The value is stored in track.ini file automatically for later use if the option was not there already.

BTB replay support

RBRRX/BTB replay support in NGPCarMenu plugin requires replay metadata files next to the actual RPL replay file in rbr\Replays folder. NGPCarMenu plugin creates this metadata file automatically when a new replay is saved in RBR. The replay metadata file links the replay to a specific BTB track name (as shown in RBRRX/BTB stages menu list and defined in a BTB map specific track.ini Name option): Sample of Replays\myReplayfileName.ini file (replays folder should have the normal myReplayfileName.rpl file also):

Additional links

The customized "Select Car" menu works also with RBR_RX plugin and NGPCarMenu shows a scrolling stage menu list in RBR_RX "Tracks" menu list:

This plugin has been tested by NGPCarMenu author with these magnificent RBR plugins/tools and the plugin works great with these other plugins. In fact, this plugin should be compatible with any plugin because the plugin doesn't change how the RBR game handles racing and the actual car models.

NGPCarMenu. Copyright (c) 2020-2021 by MIKA-N. All rights reserved. See LicenseText.txt file for more information (don't worry, this is published free of charge but use at your own risk). https://github.com/mika-n/NGPCarMenu