Giter Club home page Giter Club logo

skyrim_vr_address_library's Introduction

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


skyrim_vr_address_library's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

skyrim_vr_address_library's Issues

Vortex Update Detection

Here's a little timeline of my experience, partly explained in alandtse/PapyrusExtenderSSE#1 (comment):

  • I started with 0.36.0
  • Vortex detected updates as expected up to 0.48.0.
  • The "v" prefix started on v0.50.0. Vortex didn't consider it an update.
  • 0.52.0 released without the prefix. Vortex didn't consider it an update.
  • I manually updated to v0.65.0 to see if Vortex would detect v0.66.0, and it did.
  • Now similarly to 0.52.0, Vortex doesn't consider 0.67.1 an update.

Apparently, the existence of any prefixed version turns Vortex blind to non-prefixed versions. I suspect even if the prefixes could be removed from old versions, it wouldn't help players currently on a prefixed version. So I think the lesser evil is to continue prefixing at this point, unless a third version format can set Vortex straight by showing up as an update regardless of a player's current version.

Catch new po3 formulation

	REL::Relocation<std::uintptr_t> target{ RELOCATION_ID(25638, 26179), OFFSET(0x238, 0x223) };  //Precipitation::Update

Create CI

Create CI to autobuild release 7z using semantic versioning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.