Code Monkey home page Code Monkey logo

Comments (13)

AngheloAlf avatar AngheloAlf commented on June 16, 2024 1

In case you don't know what a symbol_addrs.txt file is, it is a file where you can list the symbols from your ROM, give them a name different than the autogenerated ones, add additional properties, etc. All this information will be used when generating the disassembly.

As an example of manually mangling the function from your error:

_GLOBAL_$F$func_8001D584__Fv = 0x8001D584;

And the disassembler will use that name to disassemble the function

from splat.

AngheloAlf avatar AngheloAlf commented on June 16, 2024

Yeah, that's how C++ works, not an splat issue

If you don't want the name to be mangled then you would need to use extern "C"

from splat.

polybiusproxy avatar polybiusproxy commented on June 16, 2024

Yeah, that's how C++ works, not an splat issue

If you don't want the name to be mangled then you would need to use extern "C"

That's what I'm doing currently. But eventually, we will have to use C++ classes.

from splat.

ethteck avatar ethteck commented on June 16, 2024

Ignoring the splat aspect of this for a sec, how is it supposed to look? Clearly you wouldn't be putting mangled names into source code, so something is missing

from splat.

AngheloAlf avatar AngheloAlf commented on June 16, 2024

Then use them 🤷‍♂️

This is likely to produce a domino effect in which most of your files will become C++ instead of C.
To get the C++ functions to see the undecomped asm functions you would probably need to mangle the asm functions yourself

from splat.

ethteck avatar ethteck commented on June 16, 2024

So the issue is that our generated function name for the s files would need to be mangled? I think that's not an unreasonable thing for us to do (include the mangled name with a comment for the actual func name). The problem is having a symbol mangler that matches your exact compiler, which could be tricky. It's also a lot of stuff for splat to worry about (all possible compilers' symbol mangling algorithm)

from splat.

AngheloAlf avatar AngheloAlf commented on June 16, 2024

symbol mangling depends on the signature of the function, so we would need to know ahead of time what types the function take and what it returns, which we can't figure out with just the assembly.

The only solution I can think of is the user doing it manually with a symbol_addrs file, which sounds tedious

from splat.

polybiusproxy avatar polybiusproxy commented on June 16, 2024

The only solution I can think of is the user doing it manually with a symbol_addrs file, which sounds tedious

Perhaps a mangled_names file?

from splat.

ethteck avatar ethteck commented on June 16, 2024

Ah yeah, that's a good point. I guess on some platforms, the mangled names are visible because you have an elf or something. But yeah... Definitely seems like a much later thing for us to work on if at all

from splat.

AngheloAlf avatar AngheloAlf commented on June 16, 2024

The only solution I can think of is the user doing it manually with a symbol_addrs file, which sounds tedious

Perhaps a mangled_names file?

How would a mangled_names file would work and look like?

from splat.

polybiusproxy avatar polybiusproxy commented on June 16, 2024

How would a mangled_names file would work and look like?

Nevermind, lol. Yeah, doing it on the symbol_addrs file sounds fine.

from splat.

mkst avatar mkst commented on June 16, 2024

Is there anything for us to do here, or can we close this as 'wont/cant fix' ?

from splat.

mkst avatar mkst commented on June 16, 2024

Closing as wont/cant fix.

from splat.

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.