Skip to content

alandtse/skyrim_vr_address_library

Repository files navigation

Skyrim VR Address Library

GitHub Release GitHub all releases GitHub release (latest by SemVer) GitHub Activity

License

Project Maintenance BuyMeCoffee

Tools for converting a Skyrim SSE skse mod to VR.

Description

This repo includes CSV files that include various data. This is meant to be processed by https://github.com/alandtse/vr_address_tools.

CSV Files

database.csv

A csv for generating release csv files for loading in CommonLibVR to replace addresslib. This intended to be a database to identify addresslib ids that represent SkyrimSSE addresses and convert to appropriate VR address. This can be manually edited and is intended to be a community resource. The database.csv can be converted to a release csv using vr_address_tools.py generate.

id sse vr status name
10878 0x1400f7210 0x1401077c0 3 RE::Offset::BGSDefaultObjectManager::GetSingleton
  • id - Addresslib id
  • sse - SSE Address with base (e.g., 0x1400f7210)
  • vr - VR Address with base (e.g., 0x1401077c0)
  • status - The level of confidence in the VR address.
    • 0 - Unknown
    • 1 - Suggested by automatic tools
    • 2 - Manually entered and assumed manually verified
    • 3 - Manually entered with suggested automatic tools verification
    • 4 - Bit for bit identical (offsets and patches should work identically)
  • name (optional) - A friendly name to describe the id

Release CSVs

A non-standard csv installed by end users in the data/skse/plugins/ directory. This follows the addresslib naming of version-{skyrim version}.csv. The first row of data is the csv header, second row is meta data, and third row and beyond is the actual data:

id offset
total entries version
10878 01077c0
  • id - Addresslib id
  • offset - VR Address as offset (e.g., 01077c0)
  • total entries - The number of entries to reserve space for. WARNING: CTDs may occur if the total entries is less than the actual number of entries since it is allocating space for a memory map.
  • version - The release version which is a semantic version.

Analysis CSVs

These are CSVs intended to aid in analysis.

offsets-1.5.97.0.csv

A dump of addresslib for SkyrimSSE 1.5.97.0. This should be considered canonical for the id -> sse mapping.

id sse
2 10d0
  • id - Addresslib id
  • sse - SSE offset (e.g., 10d0)
addrlib.csv

A mapping file generated by bakou using ida. Partially automated.

vr sse id
0x1400010d0 0x1400010d0 2
  • vr - VR Address with base (e.g., 0x1401077c0)
  • sse - SSE Address with base (e.g., 0x1400f7210)
  • id - Addresslib id
sse_vr.csv

A mapping file generated by meh321 using IDADiffCalculator, the script used to calculate SSE offsets. Partially automated.

sse vr
0x141992C10 0x141A33D38
  • sse - SSE Address with base (e.g., 0x1400f7210)
  • vr - VR Address with base (e.g., 0x1401077c0)
offsets-1.6.318.0.csv

A dump of addresslib for SkyrimSSE 1.6.318.0 (AE). This should be considered canonical for the aeid -> ae_addr mapping.

aeid ae_addr
1 140001022
  • aeid - Addresslib id for Anniversary Edition
  • ae_addr - AE offset (e.g., 140001022)
1.5.97_comments.csv

Some mappings by Ultra of 1.5.97.0 used in IDA/ghidra. This has some naming info (but should be considered less current then AddressLibraryDatabase)

sse_addr comments
140001258 anonymous_namespace__MonitorAPO::Func9_140001258
  • sse_addr - SSE offset (e.g., 140001022)
  • comments - Potential name (e.g., anonymous_namespace__MonitorAPO::Func9_140001258)
se-ae-attempted-match.csv

Algorithmic mapping of SSE to AE addresses. This is a csv version of what is available under misc files at address library.

sse_addr ae_addr
140001022 140001022
  • sse_addr - SSE offset (e.g., 140001022)
  • ae_addr - AE offset (e.g., 140001022)
se-ae_offsets.csv

Output of [merge.py]. This tries to map various comments with the offsets* file. This is an algorithmic only mapping and meant as input for vr_address_tools.

sseid sse_addr ae_addr aeid comments
5 140001258 140001258 11.0 MonitorAPO::Func9_*
  • sseid - SSE ID
  • sse_addr - SSE offset (e.g., 140001022)
  • ae_addr - AE offset (e.g., 140001022)
  • aeid - AE ID
  • comments - Name
se-ae.csv

Output of [vr_address_tools.py]. This takes the automated items from se_ae_offsets and combines it with se-ae.csv and whatever is scanned by vr_address_tools.

sseid aeid confidence name
5 11 1 MonitorAPO::Func9_*
  • sseid - SSE ID
  • aeid - AE ID
  • confidence - The level of confidence in the mapping.
    • 0 - Unknown
    • 1 - Suggested by automatic tools
    • 2 - Manually entered and assumed manually verified
    • 3 - Manually entered with suggested automatic tools verification
    • 4 - Bit for bit identical (offsets and patches should work identically)
  • name - Name

Address IDs

Address IDs are keyed into SSE. However, occasionally an SSE address will not have an Address ID. In that case, they may still be entered by taking the integer value of the SkyrimSSE address.

id sse vr status name
5370397616 0x14019c3b0 0x1401ac0e0 3 RE::BSShaderProperty::InvalidateMaterial

Contributions are welcome!

If you want to contribute to this please read the Contribution guidelines