Giter Club home page Giter Club logo

Comments (4)

DarkStarSword avatar DarkStarSword commented on July 17, 2024

I have a slight preference to using only the information in the assembly file rather than reusing sections from the original binary - I've just added a feature to inject new custom shaders and currently that only works with HLSL because of the requirement to have an original binary for the assembly shaders. I'm not sure if anyone will ever want to inject a new assembly shader, but maybe if it was copied partially/fully from an existing assembly shader...

The only risk at the moment is if someone has used an assembly shader and removed/corrupted the comment, which will work in the current version but not once we start parsing the comment. I don't think we should worry about this - I doubt that anyone will have done this, and if it has happened they can continue to use an old version or fix the comment.

Good to know that there is info in the WDK - I never installed that either.

from 3dmigoto.

Flugan avatar Flugan commented on July 17, 2024

Assembler has not been widely used in 3DMigoto compared to HLSL. When it has been used I don't think the signature comments have been altered or stripped. When disabling shaders sometimes the whole file has been nuked leaving some simple ASM code replacing the content. This is following guides from helixmod. As I see it the commented input and output signature segments have become required as we start parsing these sections in the assembler. You can still strip all assembler code and replace with stubs as long as the signatures are kept or altered but not removed. I won't be able to produce ISGN and OSGN out of thin air.

from 3dmigoto.

DarkStarSword avatar DarkStarSword commented on July 17, 2024

This is now implemented in commit f1ade95

The parser is currently in cmd_Decompiler, which manufactures a new shader binary containing ISGN, ISG1, OSGN, OSG5, OSG1, PCSG, PSG1 sections based on what it finds in the comment blocks, and an empty SHDR / SHEX section depending on the shader model. This is passed to the assembler as though it was the original binary which will then replace the SHDR/SHEX section and fill in the hash.

Currently this is restricted to cmd_Decompiler while it undergoes testing (I haven't run it in game yet). Later we can move the code into the assembler itself.

from 3dmigoto.

DarkStarSword avatar DarkStarSword commented on July 17, 2024

This is now fully integrated into 3DMigoto 1.2.65, with a config option to enable the signature parsing (mostly in case an existing fix has corrupted the comment blocks)

from 3dmigoto.

Related Issues (20)

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.