Skip to content

[PROJECT] Switch to Visual Studio 2005 SP1 toolset and verify reimplementations to far #85

@TheRedDaemon

Description

@TheRedDaemon

The function at 0x00479C80 (SoundSystem::findSamplePlaceForSoundUnk) is as of now subject of #76 and has shown a difference that was unsolvable through various tries.

As it turns out, we might have the wrong compiler version. According to sources like this list, MSVC 2005 released in two "main" versions.

  • Visual C++ 2005:
    • Product version: 8.00.50727.42
    • Compiler version: 14.00.50727.42
    • Linker version: 8.00.50727.42
  • Visual C++ 2005 SP1:
    • Product version: 8.00.50727.762
    • Compiler version: 14.00.50727.762
    • Linker version: 8.00.50727.762

Trying the compilation of 0x00479C80 with the SP1 version actually got rid of the seemingly unsolvable difference.

A thing to consider however: There seems to have been other patches and even other versions. Wikipedia lists the base RTM release as 14.00.50320, for example. Regardless if we have a difference here between RTM and SP1 or two different SP1 patch versions, the 762 produced more fitting bytecode, at least for this version.


The tasks are the following:

  • Replace the current MSVC with a SP1 (...762) version.
    • msvc800_sp1 for example contains the compiler, however, it lacks stuff like the redistributables for debugging and is therefore incomplete.
    • It would be better to also control the source (repo)
  • If this happend, all cpp files done so far would need to be tested again: If we have a regression, we need to reconsider.
    • Note that the implementation status percent usually not the percentage as if the resolvers would use the reimplemented code.
    • Also consider that a regression that can be fixed by moving code around a bit is less servere than the mismatch from 0x00479C80, which was otherwise unsolvable.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions