Actions
Name |
Path |
Arguments |
Working Directory |
Primary |
Play |
nfs2se-gl2.exe |
|
|
True |
Name Change Script
This script patches the config.dat file found in the user's AppData\Roaming\.nfs2se\config folder that is created by the NFSIISE port created by zaps166. The config file has no checksum so modifying the player names is as simple as patching two locations in the binary.
$NewName = $args[0]
$InstallDir = $PSScriptRoot
function Get-AsciiBytes([string]$InputString, [int]$MaxLength)
{
if ($InputString.Length -gt $MaxLength)
{
$InputString = $InputString.Substring(0, $MaxLength)
}
$bytes = [System.Text.Encoding]::ASCII.GetBytes($InputString)
$array = @()
$count = 0
$extraPadding = $MaxLength - $bytes.Length
foreach ($byte in $bytes)
{
if ($count -lt $MaxLength)
{
$array += $byte
$count++
}
}
for ($i = $count; $i -lt $MaxLength; $i++)
{
$array += 0x00
}
return $bytes
}
function Patch-Binary([byte[]]$Data, [int]$Offset, [string]$FilePath)
{
$bytes = [System.IO.File]::ReadAllBytes($FilePath)
for ($i = 0; $i -lt $Data.Length; $i++)
{
$bytes[$Offset + $i] = $Data[$i]
}
[System.IO.File]::WriteAllBytes($FilePath, $bytes)
}
$rawBytes = Get-AsciiBytes -InputString $newName -MaxLength 8
Patch-Binary -FilePath "$($env:APPDATA)\.nfs2se\config.dat" -Offset 228 -Data $rawBytes
Patch-Binary -FilePath "$($env:APPDATA)\.nfs2se\config.dat" -Offset 428 -Data $rawBytes