VOGONS

Common searches


First post, by sam223

User metadata
Rank Newbie
Rank
Newbie

Ive been a long time fan of this game engine. Mainly due to how many wonderful mods have been made for it and the customisation options.
Before i start,you can get the full game for free (minus the game shipped 'content'. Mod support only) - google "Nascar Heat Essentials"

One of your members recently posted this about getting the game to run on windows 8.1 (help with graphics card errors) - http://superuser.com/questions/880216/windows … ith-older-games. Contains info of how the .exe runs aswell.

It got me thinking about one the things that was never fully understood or looked into properly with the game engine.Vertex damage.Free moving of model verts in realtime.Unfortunately i am no expert with assembly or a debugger and wondered if anyone could help me digging deeper into this?

Vertex damage is a game option that is not displayed within the game options.However can be manually enabled/disabled within the install directory option.cfg.

[GX]
vertex_damage (yes/no)

Ive done a bit of digging into the patch.bin file and found multiple references of vertex_damage. Id like to try and find the variables within this option and increase them to create a more realistic/dramatic effect in game.Mainly the min_force and max_dist that verts can be moved (see screenshot below)
Here lies the problem though. With little debugger experience i dont know where to go from here.

a4D8nrF.png

Reply 1 of 13, by beatcracker

User metadata
Rank Newbie
Rank
Newbie

Just a heads up:

  1. Nascar Heat really-really has to be installed in "Program Files" directory. It's hardcoded and this leads to all sorts of issues and unnecessary workarounds (admin privileges, etc). I've circumvented it by creating a directory symlink named "Nascar Heat" in "c:\Program Files (x86)\Hasbro Interactive\" to my installation folder . Will try to patch it once and for all, someday.
  2. Nascar Heat UI Control Center and Nascar Heat Mod Launcher are packed with ASPack (it was en vogue those days). Unfortunately it makes them crash if you have EMET running with all knobs turned up to eleven. So I had to unpack them. I'm attaching unpacked exes to this post just in case.

Main question: How does one verifies that vertex damage is turned on? I've downloaded Craftsman Truck Series mod and 34_Raceway.trk dirt track, but when I crash a car into the wall, I see hood and bumper damage regardless of vertex_damage option in mod.cfg and mod launcher. And the breakpoints in sub_4552A0, (this is where vertex damage strings are used) are not triggered, so I wasn't able to dig further for now. Am I missing something?

Attachments

  • Filename
    Unpacked_Exes.zip
    File size
    780.15 KiB
    Downloads
    71 downloads
    File comment
    Unpacked Nascar Heat UI Control Center and Nascar Heat Mod Launcher
    File license
    Fair use/fair dealing exception
Last edited by beatcracker on 2015-04-28, 10:00. Edited 1 time in total.

Reply 2 of 13, by sam223

User metadata
Rank Newbie
Rank
Newbie

The game supports 2 types of types of visual damage. Pre staged (on the model geometry) thats always on and vertex damage on the fly.You can tell if its on due to increased loading times and visual damage to models with no pre-staged damage. Had a quick check of the craftsman truck model and it looks like its mainly prestaged at the front end. Youll be able to see if vertex is on by damaging the rear.

u1y8k4gl.png

The options.cfg should be located within c:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\'modname' and a part quote of what it should look like:

no_speed_overlay no shadow 1 skids 1 smoke 1 specular 0 try_texture_compression no use_radeon_compression_method no vertex_damag […]
Show full quote

no_speed_overlay no
shadow 1
skids 1
smoke 1
specular 0
try_texture_compression no
use_radeon_compression_method no
vertex_damage yes
video_mode 3
[MULTI]

Last edited by sam223 on 2015-04-28, 16:28. Edited 1 time in total.

Reply 3 of 13, by beatcracker

User metadata
Rank Newbie
Rank
Newbie

Thanks! Couple of clarifying questions:

  1. I don't have the options.cfg file in the mod folder, only mod.cfg. I've assumed that mod launcher automatically renames it to the options.cfg. Is it so, or I should manually copy it as options.cfg ? I'm completely new to this game and it's mod system, so forgive my ignorance.
  2. Yep, the damage I've seen is definitely pre-staged one. I'll try some backwards driving 😀. Is there any other car models that come with little or no pre-staged damage, so I wouldn't have to guess what type of damage is it?

Btw, imgur automatically resizes pictures, so you can do this:

[url=http://i.imgur.com/u1y8k4g.png][img]http://i.imgur.com/u1y8k4gl.png[/img][/url]

and it will show resized picture with link to the full size image in your post.

Reply 4 of 13, by sam223

User metadata
Rank Newbie
Rank
Newbie

Good point about the img tag,fixed.
I am a bit unfamiliar with the Craftsman Truck Series and mod launcher.
Place these 2 files inside the CTS mod install directory though. Run from the CTS shortcut .It should load the mod with vertex damage enabled then.

Attachments

  • Filename
    options.zip
    File size
    2.58 KiB
    Downloads
    58 downloads
    File comment
    options.cfg
    File license
    Fair use/fair dealing exception

Reply 5 of 13, by beatcracker

User metadata
Rank Newbie
Rank
Newbie

Unfortunately, I couldn't find any working references for the vertex damage modifiers. So I resorted to the brute force: I've ripped all floating point constants used in the code and converted them to the CheatEngine table. All 728 of them. So now, anyone willing to spend time modifying those constants in memory and observing the result, is free to do so.

I've uploaded all relevant info (including cheat table itself and IDC\PowerShell scripts used to create it) to the GitHub repo.

Here is a some offsets to get you started:

  • 4F85D0 - Some kind of tire\world opacity
  • 4F85C0 - Car will warp\distort, start from 0.9, 1.2 is max.
  • 4F8930 - Spin car around its axis (values 3 and up)
  • 4F89A8 - Car speed

Reply 6 of 13, by leileilol

User metadata
Rank l33t++
Rank
l33t++
beatcracker wrote:

Nascar Heat really-really has to be installed in "Program Files" directory. It's hardcoded and this leads to all sorts of issues and unnecessary workarounds (admin privileges, etc). I've circumvented it by creating a directory symlink named "Nascar Heat" in "c:\Program Files (x86)\Hasbro Interactive\" to my installation folder . Will try to patch it once and for all, someday.

Zuh? I have no issues running the game from a d:\games\ subfolder.

Also the game came out in 2000 and is technically inherited from Viper Racing's technology (which had Vertex Damage to the point of ridiculousness where you could damage the whole car down to a single tire)

apsosig.png
long live PCem

Reply 7 of 13, by beatcracker

User metadata
Rank Newbie
Rank
Newbie
leileilol wrote:

Zuh? I have no issues running the game from a d:\games\ subfolder.

Maybe it's because I've used a "NASCAR Heat Essentials" package and not a retail game? But there are hardcoded paths and registry locations in the executable and game writes files there. Or maybe you have UAC disabled and\or running game as admin, so it's able to write in the Program Files (x86) folder?

leileilol wrote:

Also the game came out in 2000 and is technically inherited from Viper Racing's technology (which had Vertex Damage to the point of ridiculousness where you could damage the whole car down to a single tire)

Yep, it's even inherited the bugs: Viper Racing vs modern graphics card!

Last edited by beatcracker on 2015-06-10, 16:13. Edited 1 time in total.

Reply 8 of 13, by sam223

User metadata
Rank Newbie
Rank
Newbie
beatcracker wrote:
Unfortunately, I couldn't find any working references for the vertex damage modifiers. So I resorted to the brute force: I've r […]
Show full quote

Unfortunately, I couldn't find any working references for the vertex damage modifiers. So I resorted to the brute force: I've ripped all floating point constants used in the code and converted them to the CheatEngine table. All 728 of them. So now, anyone willing to spend time modifying those constants in memory and observing the result, is free to do so.

I've uploaded all relevant info (including cheat table itself and IDC\PowerShell scripts used to create it) to the GitHub repo.

Here is a some offsets to get you started:

  • 4F85D0 - Some kind of tire\world opacity
  • 4F85C0 - Car will warp\distort, start from 0.9, 1.2 is max.
  • 4F8930 - Spin car around its axis (values 3 and up)
  • 4F89A8 - Car speed

Thanks for the effort.I will start digging through them shortly.

Reply 10 of 13, by Dalags

User metadata
Rank Newbie
Rank
Newbie

Hi all, like Sam I've been into Heat modding for a few years.

A limitation within Heat is that when more than 22 different cars are being used, the game crashes.
i.e you can have 40 of the same car fine, but if more than 22 are different to each other, it produces this crash log.

53.47.953: ======================================================================
53.47.953: Sep 6 2002 12:09:31 N W32 M6 R senor_b
53.47.953: ======================================================================
53.47.953: mem: p/s/t t/a 1023M/1023M 2047M/1023M 2047M/1956M
53.48.000: JoyBegin
53.48.000: data directory: C:\Program Files\Hasbro Interactive\NASCAR Heat\Data\
53.48.000: Config Dir: C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\
53.48.000: Add-on tracks dir: "C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\tracks\"
53.48.000: mod: trying mod "OnlineBangers"...53.48.000: mod.cfg found ok.
53.48.000: mod: Config Dir override: C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\OnlineBangers\
53.48.000: Running on WinNT version 5.1:2600 Service Pack 3
53.48.359: ddraw: created directdraw with igdumd32.dll (Intel(R) HD Graphics 3000)
53.48.359: ddraw: version 0.0.0.0
53.49.763: vid: 64 meg card (reported:1696.000000)
53.49.763: vid: using AGP textures (1711), total: 64
53.49.810: vid: triple buffer on
53.49.810: texture: supports compressed solid texture
53.49.997: mr: 3D performance: 1462 MPix/sec, 8875 KTris/sec
53.49.997: mr: fill rate is AWESOME, poly rate is AWESOME, machine speed is 0
53.50.044: using sound mixer Sound
53.50.169: WaveBegin(): Compatibility mode.
53.50.247: WaveBegin(): Using secondary buffer.
53.50.398: drivers.txt: Bad line: 1635472
53.50.408: drivers.txt: Bad line: 1635472
53.50.438: drivers.txt: Bad line: 1635472
53.50.438: drivers.txt: Bad line: 1635472
53.50.438: drivers.txt: Bad line: 1635472
53.50.438: drivers.txt: Bad line: 1635472
53.50.448: drivers.txt: Bad line: 1635472
53.50.448: Using user driver file
53.50.528: res: ResourceGet("b_career.img") not found, returning NULL!
53.50.528: Empty image: b_career.img
53.52.248: res: ResourceGet("b_paint.img") not found, returning NULL!
53.52.248: Empty image: b_paint.img
53.53.208: res: ResourceGet("B_event2.img") not found, returning NULL!
53.53.218: Empty image: B_event2.img
53.53.298: name = *Hednesford2CWRX.trk/trkshot.img, image = 4d9a5a4
53.56.368: res: ResourceGet("pract.img") not found, returning NULL!
53.56.368: Empty image: pract.img
53.56.378: res: ResourceGet("b_qualif.img") not found, returning NULL!
53.56.378: Empty image: b_qualif.img
53.59.818: res: ResourceGet("pract.img") not found, returning NULL!
53.59.818: Empty image: pract.img
53.59.818: res: ResourceGet("b_qualif.img") not found, returning NULL!
53.59.818: Empty image: b_qualif.img
54.00.248: unloading ui: 169.4 MB
54.00.308: unloaded ui: 169.6 MB
54.00.658: ======================================================================
54.00.658: () Panic: file.cpp: Can't alloc file "C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\OnlineBangers\260c.car", increase MAX_FILES
54.00.658: ======================================================================
54.00.718: except: dec: exe 6b0e29b
54.00.718: NON-DEBUG
54.00.718: ( 00419510 , none , my_handler )
54.00.718: ( 004194A0 , EXCEPTION_BREAKPOINT , ? )
54.00.718: ( 0041A7F5, call-stack , ? )
54.00.718: ( 00412A2D, call-stack , ? )
54.00.718: ( 004E7925, call-stack , ? )
54.00.718: ( 0041295B, call-stack , ? )
54.00.718: ( 004E7925, call-stack , ? )
54.00.718: ( 00418ED4, call-stack , ? )
Show last 54 lines
54.00.718: ( 00412E51, call-stack , ? )
54.00.718: ( 00412E97, call-stack , ? )
54.00.718: ( 00413036, call-stack , ? )
54.00.718: ( 0041BF61, call-stack , ? )
54.00.718: ( 0041C2EA, call-stack , ? )
54.00.718: ( 0040E134, call-stack , ? )
54.00.718: ( 0040E1E3, call-stack , ? )
54.00.718: ( 0040E0FB, call-stack , ? )
54.00.718: ( 004B308B, call-stack , ? )
54.00.718: ( 004B2C75, call-stack , ? )
54.00.718: ( 004E9FA8, call-stack , ? )
54.00.718: ( 004E9EC9, call-stack , ? )
54.00.718: ( 00418F24, call-stack , ? )
54.00.718: ( 00496537, call-stack , ? )
54.00.718: ( 00496014, call-stack , ? )
54.00.718: ( 0041EBC3, call-stack , ? )
54.00.718: ( 0041E992, call-stack , ? )
54.00.718: ( 004B37CA, call-stack , ? )
54.00.718: ( 004B299A, call-stack , ? )
54.00.718: ( 004A955C, call-stack , ? )
54.00.718: ( 004E9FA8, call-stack , ? )
54.00.718: ( 004E99B7, call-stack , ? )
54.00.718: ( 004E9FA8, call-stack , ? )
54.00.718: ( 004E99B7, call-stack , ? )
54.00.718: ( 00412102, call-stack , ? )
54.00.718: ( 004E7D0F, call-stack , ? )
54.00.718: ( 00418F24, call-stack , ? )
54.00.718: ( 0041290F, call-stack , ? )
54.00.718: ( 004EBC41, call-stack , ? )
54.00.718: ( 004EBC25, call-stack , ? )
54.00.718: ( 004EBC0F, call-stack , ? )
54.00.718: ( 004EB86E, call-stack , ? )
54.00.718: ( 004E7D62, call-stack , ? )
54.00.718: ( 0041F16D, call-stack , ? )
54.00.718: ( 0041F192, call-stack , ? )
54.00.718: ( 004E7D62, call-stack , ? )
54.00.718: ( 0041F11D, call-stack , ? )
54.00.718: ( 00450065, call-stack , ? )
54.00.718: ( 004E9FA8, call-stack , ? )
54.00.718: ( 004E9EC9, call-stack , ? )
54.00.718: ( 00418F24, call-stack , ? )
54.00.718: ( 0041C6AD, call-stack , ? )
54.00.718: ( 004E7E43, call-stack , ? )
54.00.718: ( 00418F24, call-stack , ? )
54.00.718: ( 00418F24, call-stack , ? )
54.00.718: ( 00498830, call-stack , ? )
54.00.718: ( 00496CB8, call-stack , ? )
54.00.718: ( 0049672E, call-stack , ? )
54.00.718: ( 004012BE, call-stack , ? )
54.00.718: ( 004A942A, call-stack , ? )
54.00.718: ( 004011E5, call-stack , ? )
54.00.718: ( 00413F27, call-stack , ? )
54.00.718: ( 004E7F73, call-stack , ? )
54.00.718: ( 004E81E0, call-stack , ? )

The .car file it spouts is irrelevant, but the 'increase MAX_FILES' line has always intrigued me.
I suspect the MAX_FILES is set to 22 somewhere, due to PC limitations at the time. It'd be great to be able to increase this to 43
Would anyone know how or where to change this?

Reply 11 of 13, by beatcracker

User metadata
Rank Newbie
Rank
Newbie
Dalags wrote:

I suspect the MAX_FILES is set to 22 somewhere, due to PC limitations at the time. It'd be great to be able to increase this to 43
Would anyone know how or where to change this?

The code here looks like it's checking the MAX_FILES limit:

z1YuCb3l.png

If you could upload an archive with more than 22 different cars, that crashes the game (with short note about to how to install them), I could look at it more closely.

Reply 12 of 13, by Dalags

User metadata
Rank Newbie
Rank
Newbie

I think you need Heat Essentials installed to be able to run mods, if you've not got that you can get it here: http://www.heatfinder.net/downloads.php?f=19

Install this test mod to: C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat\testmod
https://drive.google.com/file/d/0B5Dc9XzP3SQ7 … 3hxOW1GMGc5RGM/

Use the mod launcher (called NHml2 in C:\Program Files (x86)\Hasbro Interactive\NASCAR Heat), which comes with the Essentials, to run the mod
Ingame on setup you can change the amount of cars in a race after selecting a track

Reply 13 of 13, by tincup

User metadata
Rank Oldbie
Rank
Oldbie
beatcracker wrote:
Maybe it's because I've used a "NASCAR Heat Essentials" package and not a retail game? But there are hardcoded paths and registr […]
Show full quote
leileilol wrote:

Zuh? I have no issues running the game from a d:\games\ subfolder.

Maybe it's because I've used a "NASCAR Heat Essentials" package and not a retail game? But there are hardcoded paths and registry locations in the executable and game writes files there. Or maybe you have UAC disabled and\or running game as admin, so it's able to write in the Program Files (x86) folder?

leileilol wrote:

Also the game came out in 2000 and is technically inherited from Viper Racing's technology (which had Vertex Damage to the point of ridiculousness where you could damage the whole car down to a single tire)

Yep, it's even inherited the bugs: Viper Racing vs modern graphics card!

I have the CD version and it runs properly in any directory you install it to. It's the Essentials mod package that seems hardwired to Programs (x86) - which is a pity since it's a nice mod interface. I try to keep C as free from data and games as possible, and after a few hours of installing and testing mods and add-on tracks the folder was cresting 1.5gb - just too fat for me to justify.

But the base game is cool and I content myself with two stand alone installs on D drive - one with the default tracks, another with a an all road course schedule.

I tried to create stand alone installs of the various mods that could be run independently of the mod launcher. Though I couldn't manage it I think there may be a way to it by having the proper files in the root and 'run' folders at launch. For another time..