Fast-64 / fast64

Blender based editor for scenes, meshes, and more in first-party N64 games
GNU General Public License v3.0
316 stars 74 forks source link

Binary DL Export is somehow broken (SM64) #458

Open aGitrHUbUser opened 2 months ago

aGitrHUbUser commented 2 months ago

it is exported sucessfully but when i tried to change the geo dl to load the exported one, it crashed

Lilaa3 commented 2 months ago

Does your mesh happen to have multiple materials?

Lilaa3 commented 2 months ago

OK so as one does I learned how to use the exporter myself and i think i know what is causing your confusion, yes the displaylist exporter seems to be outdated for binary (ill pr to fix that) but this is probably because you're trying to use the geolayout address (like the name would suggest) instead of the address in the command itself, so say you want to update the sand dl, the load from dl command is at 0x2ABD88, but the address that points to the dl is at 0x2ABD8C, does that make sense?

aGitrHUbUser commented 2 months ago

Does your mesh happen to have multiple materials?

Only one material

Lilaa3 commented 2 months ago

Does your mesh happen to have multiple materials?

Only one material

Could you respond to my other comment?

aGitrHUbUser commented 2 months ago

OK so as one does I learned how to use the exporter myself and i think i know what is causing your confusion, yes the displaylist exporter seems to be outdated for binary (ill pr to fix that) but this is probably because you're trying to use the geolayout address (like the name would suggest) instead of the address in the command itself, so say you want to update the sand dl, the load from dl command is at 0x2ABD88, but the address that points to the dl is at 0x2ABD8C, does that make sense?

If you're talking about LOAD_MODEL_FROM_DL or LOAD_MODEL_FROM_GEO function, not really, i exported it without overwrite geolayout or dl pointers, only export it and change bully's GEO horn to load exported display list

Lilaa3 commented 2 months ago

yes, the address you used is probably not the start for the main display list, if you know the address of the display list command's display list you could tell fast64 to override that like you would for load model from dl

aGitrHUbUser commented 2 months ago

yes, the address you used is probably not the start for the main display list, if you know the address of the display list command's display list you could tell fast64 to override that like you would for load model from dl

i did looked in the hxd and it seem to have 3 fast3d commands that linked to 3 displaylists, i load one of them in a door geo and it came out like this (ok it's my bad i remember it load 3 displaylists when exported, 1 probably material, 1 probably dl reset and 1 model displaylist mb) image

Lilaa3 commented 2 months ago

material, geometry and material revert specifically! does the door render correctly if you use the main displaylist with all 3? also are you using the correct level option? that's used to convert the virtual address to the correct segmented address

aGitrHUbUser commented 2 months ago

material, geometry and material revert specifically! does the door render correctly if you use the main displaylist with all 3? also are you using the correct level option? that's used to convert the virtual address to the correct segmented address

if i use segmented address (0x4035378) that have 3 dls and replace it in the door geo it's still the same as soon as it displayed image image

Lilaa3 commented 2 months ago

0x4035378 should be correct, do you have a blend you can share by the way?

aGitrHUbUser commented 2 months ago

0x4035378 should be correct, do you have a blend you can share by the way?

didn't have a blend plus uh it's a cube image