Code Monkey home page Code Monkey logo

z64hdr's People

Contributors

crookedpoe avatar dragorn421 avatar sauraen avatar skawo avatar z64me avatar z64rankaisija avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

z64hdr's Issues

memset symbol

I am only using mq debug so I didn't check other linker scripts but it would be a good idea to do so.

standard memset

(man memset): void *memset(void *s, int c, size_t n);

fills the first n bytes of the memory area pointed to by s with the constant byte c.

oot memset

there are two implementations:
void Lib_MemSet(u8* dest, size_t size, u8 val); (unlike the standard)
void* MemSet(void* dest, s32 val, s32 size); (like the standard)

in z64hdr

https://github.com/turpaan64/z64hdr/blob/ba7ce14e23c342a6336bb93a22d24e3ee0485d61/oot_mq_debug/syms.ld#L787-L788
https://github.com/turpaan64/z64hdr/blob/ba7ce14e23c342a6336bb93a22d24e3ee0485d61/oot_mq_debug/syms.ld#L2842

the addresses are accurate, but memset = Lib_MemSet is an issue since they use a different prototype
memset = MemSet would be better?

But I'm not sure why memset is even defined in the first place

Stuff that needs fixup in temp-update branch

common/actor.h flags are now in decomp's z64actor.h

common/symbols.h : gTimeSpeed? (also the two other syms need to be defined by #11 it currently doesnt)

include/functions.h : how was it computed? figure out how to easily handle manual stuff added on top of the decomp headers

actorfixer.py should be expanded to include any name replacement
and it should read its data from a simpler format than python structures

the readme should be updated with update instructions (also _Z64OVL cmon :hermosauhut:)

Carry over decomp documentation

The way z64hdr copies headers from decomp means it doesn't include any documentation there is in source files.

For example in sys_math3d.c:

https://github.com/zeldaret/oot/blob/ed78d18a256ae941d2e821b14e17fb558703775d/src/code/sys_math3d.c#L148

/**
 * Creates a line between the intersections of two planes defined from `planeAA`x + `planeAB`y + `planeAC`z +
 * `planeADist` = 0 and `planeBA`x + `planeBB`y + `planeBC`z + `planeBDist` = 0, and outputs the line to `intersect`.
 * Returns false if the planes are parallel.
 */
s32 Math3D_PlaneVsPlaneNewLine(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, f32 planeBB,
                               f32 planeBC, f32 planeBDist, InfiniteLine* intersect) {

I'm not sure how one would go about automating that (definitely don't do it manually, right). I may try some day if nobody "fixed" it by then

EDIT: skawo is onto something https://github.com/skawo/Decomp2z64hdr (I hope he doesn't mind me linking it here)

Symbols from objects

When decomp commits headers for object files (containing stuff like extern AnimationHeader gIngoIdleAnim;), it would be nice to also have them in z64hdr.

And also define the symbols in a linker script like gIngoIdleAnim = 0x06123456.

This would make compiling decomp actors with CAT work out of the box I think, apart from updating the includes.

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.