Commit Graph
1023 Commits
Author SHA1 Message Date
Yanis fa3eff11bc [OOT/MM] Rename OoT to Z64 and remove the OoT prefix from the files (#540)
* `fast64_internal/oot` -> `fast64_internal/z64`

* remove oot prefix (and delete `oot_spline.py`)

* remove another useless file

* load issues
2025-06-15 18:46:36 +02:00
YanisandDragorn421 d7b1ae878f [OoT] Fix the importers (#547)
* fix cutscene import

* account for committed assets

* add enums, add misc tools and fix few things

* fix matrix regex and fix get_include_data file path order

* fix collision import

* format

* fix camera and crawlspace import

* fixed waterbox import

* fixed exit lists

* fixed paths

* misc fixes

* fix lights

* misc fixes and moved utility funcs to global utility module

* fixed room parsing and mesh imports

* fixed actors and misc issues

* fix more issues (it works! or should work)

* fixed transition actors

* fix cutscenes

* note about CS_CMD_UNIMPLEMENTED_16

* camera roll is signed now

* fixed import issues with the older way

* fix fast64 imports + some improvements

* add comment about ignore_tlut

* fix skeletons

* fix animations

* fixed dl importer

* remove useless comment

* fixed lights

* review and "fixed" matrix issues

* review 2

* fix jabu imports

Co-authored-by: Dragorn421 <[email protected]>

* review 3

* review 4

* camroll thing

* format

* remove useless code

* "fixed" collision props regression

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-06-15 12:06:11 +02:00
YanisandDragorn421 7d710783f4 [OoT] Exporter Cleanup (#533)
* remove old exporter files

* move anim/skeleton exporters to the exporter folder

* reimplement collision and cutscene exporter

* black

* fix small issues

* remove cs insert feature

* tweaks

* review

Co-authored-by: Dragorn421 <[email protected]>

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-06-14 15:55:47 +02:00
Dragorn421 c4376de2e9 Cleanup: deselectAllObjects() and selectSingleObject() (#538) 2025-06-14 15:33:51 +02:00
Dragorn421 d6bb836aa3 Cleanup: setOrigin() (#537) 2025-06-14 15:33:33 +02:00
Dragorn421 6365e7af0b Bump bl_info version to v2.4.0 (#542) 2025-06-14 15:04:49 +02:00
Dragorn421 e95bd6f895 Fix export of custom conveyorSpeed (#550)
* Fix export of custom conveyorSpeed

* black
2025-06-10 06:58:13 +02:00
Dragorn421 f637ed8813 [OoT] Fix includes for z64 prefix removal (#549)
* [OoT] Fix includes for z64 prefix removal

* review
2025-06-06 06:32:38 +02:00
Yanis fa62e1343b [OoT] Fix animation exporter expecting an object name with custom paths (#546)
fix animation exporter expecting an object name with custom paths
2025-06-01 02:10:42 +02:00
Yanis a80a05bce5 [OoT] Fixed object being added to the duplicated room object (#543)
* fixed object auto-add adding to the duplicated room object

* don't trust sorting by names
2025-05-30 10:43:48 +02:00
Lila c6b678256d [F3D Bleed] Fix switch option doing an extra reset (#534) 2025-05-29 09:55:58 +02:00
Dragorn421 d536ebf745 [OoT] Fix player flipbooks export (#536) 2025-05-28 20:27:55 +02:00
Dragorn421andYanis d705b7a853 [OoT] Add move cutscene bone operator (#530)
* [OoT] Add move cutscene bone operator

* fixup

* No longer sort bones by name for computing the camera shot preview (which was different from what the exporter did anyway)

* Update fast64_internal/oot/cutscene/motion/properties.py

Co-authored-by: Yanis <[email protected]>

---------

Co-authored-by: Yanis <[email protected]>
2025-05-25 18:07:32 +02:00
YanisandDragorn421 985f4c48e1 [OoT] Scene/Cutscene Export Fixes (#528)
* cutscene fixes

* add missing includes in cs exporter

* use CS_FLOAT

* don't use cs_float for actor cues and use it for the unused values

* review

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-05-24 10:20:38 +02:00
LilaandDragorn421 f221e640d3 [SM64/F3D] Use WriteDifferingAndRevert for bleed (#461)
* [SM64/F3D] Use WriteDifferingAndRevert for bleed

Write all logic remains unaffected, obviously.

A new dict was added to map each mode cmd to its default.
For the actual bleed part, we fIrst need to add geo mode reverts of the last material to the geo mode of the current material, since the current material may not set them now. For othermodes we do something different, get all reverts and add any that doesn´t get set again by the current material ignoring bleeding.
For the geo mode revert, we keep track of one geo mode command for set and clear, updating it as we go. For othermodes we keep track of all of the command types and then revert them using the new dict.

* remove this

* scut sabotage

* Port over #462

We cannot just assume that othermodeh or othermodel are always setting the same bits, so instead we write the diff of the current cmd to the one already in the reset dict, this means that if a materials sets rendermode and another sets alpha compare (for example) it will still revert the rendermode because those bits will be carried over in the reset dict

* make write different optional, as it can lead to bigger dls

* clean up sm64 repo settings

* im gonna have to rework a bunch of othermode stuff i actually dispise fast64 so much

* RendermodeBlender class

* Update f3d_bleed.py

* i just want to be done with this

* [Repo Settings] Only set if different

Fixes lag at start up from draw layers being set unnecessarily.
Some clean up that I already did in #461

* Update utility.py

* is_rendermode_cmd to def

* fix rendermode

* return RendermodeBlender instead of temp list

* instead of using a revert, set when no render mode

* make rendermode command hashable, check for default

* pick appropriate geo cmd, make geo cmds use sets

makes dls just a bit cleaner and makes ex1 work correctly

* implement render mode reset fix

* Update f3d_bleed.py

* undo dumb change

* respect write method

* only revert as needed, i feel like a god

* make switchs work super well

* fix setting rendermode

* remove repeated resets in switch options and add options for reverts in bones

* use last_mat by default

* comment out occlusion plane code to show bleed indep

* functions already work

* fix load othermodes

these work more like write diffs, so we do that

* someone forgot

* fix prev node issue

* create our own pipe syncs

* Update f3d_bleed.py

* fix disgusting broken late night code

* Revert "fix disgusting broken late night code"

This reverts commit 9ece1511595678a551fae02f906a998fbde1ffba.

* Update sm64_geolayout_classes.py

* something is wrong but i cant figure it out

* dont remove lighting

* fix DPSetRenderMode

* fix write all rendermode

* fix this bug once and for all

* write all get_flags impl

* get_flags

* forgot to do diff in reverts in write all

* add back prim depth, accidentally removed

* comments (not ready)

* not a union

* not a tuple

Co-authored-by: Dragorn421 <[email protected]>

* proper formatting

Co-authored-by: Dragorn421 <[email protected]>

* use load sync

* oopsie dasie

* use pipe syncs again

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-05-23 19:48:29 +01:00
Yanis 552bdb797c [OoT] Add basic title cards support (#525)
* add basic title card support

* review

* add z64path.h

* remove added includes in favor of another PR
2025-05-23 07:39:46 +02:00
Lila 66d38da91a [F3D] Fix for blender 4.4 (#529)
[F3D] Fix blender 4.4
2025-05-23 06:35:31 +01:00
Yanis 8336f42009 [OoT] Add missing versions to oot_versions_items and add overlay support for quick import (#482)
* add missing versions and improve quick import

* remove debug print

* add ignore cs stop preview setting

* lilaa's suggestion + added ique-cn

* throw a warning when trying to import a cutscene which already exists in the data
2025-05-20 20:34:23 +02:00
Yanis 88c304138a [OoT] Remove global.h, macros.h and z64.h in the exported includes (#518)
* fix exporting using obsolete headers

* old behavior for legacy version

* check for z64.h instead of specific version

* z64.h -> global.h
2025-05-20 20:33:50 +02:00
Yanis cebdd146e1 [OoT] Fixed collision export (#507)
* fixed collision export

* fixed include oddities

* fix compile issues

* support for older decomp headers

* z64.h -> global.h
2025-05-20 20:31:21 +02:00
Yanis 5445d2ebe1 [OoT] Move collection operators/functions from oot_utility.py (#486)
move collection stuff to its own file
2025-05-20 20:30:59 +02:00
Yanis 236c34a964 [OoT] Add a toggle for the new actor panel (#505)
* add toggle for new actor panel

* fix custom issue
2025-05-20 20:30:29 +02:00
Lila 49080393c7 [F3D] Fix cycle 2 NOOP identifier (#521) 2025-05-20 16:47:15 +01:00
LilaandDragorn421 515a14ccb5 [F3D] Use set for image and pal dependencies (#522)
* [F3D] Use set for image and pal dependencies

Prevents duplicates, causing the behavior seen in this issue https://discord.com/channels/874816709855440926/1373127651283439636

* use set in default_factory

Co-authored-by: Dragorn421 <[email protected]>

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-05-20 16:47:01 +01:00
LilaandDragorn421 2a9a249ae7 Make update UI more understandable (#446)
* Make update UI more understandable

Don't box the ui as the preferences are already part of a box (looks disgusting in 4.2)
Update to stable now on the same column as update to main to make them seem both equally useful
Change text for main/old to be more obviously important, from "Install main / old version" to "Install specific version (Latest or Older)"
Move the restore operator into another row

Updated readme with new instructions and screenshots

* Remove mat screenshot and link to updater instructions early into the readme

* Update redundant text

* merge request button

* Update README.md

Co-authored-by: Dragorn421 <[email protected]>

* change to gross github name only used by github and no one else

Co-authored-by: Dragorn421 <[email protected]>

* use to be added updater in fast64docs

* mention ability to test prs

---------

Co-authored-by: Dragorn421 <[email protected]>
2025-05-20 14:47:30 +01:00
Yanis f2a0ca6330 [OoT] Fixed writing to the spec file (#503)
* fixed spec file

* review
2025-05-19 15:45:23 +02:00
Yanis 0ba82439d8 [OoT] Fixed standalone cutscene export (#480)
fixed standalone cutscene export
2025-04-20 15:59:58 +01:00
Yanis f599185dc6 [OoT] Updated EnumData.xml (fixes some cutscene import issues) (#484)
fixed enum data
2025-04-20 15:58:22 +01:00
Scutandscut <scut> 791971fa46 [SM64] Add better exception processing to combined exporter (#496)
* added warnings for when exporting all has exceptions for some objects

* changed code to instead generate exceptions except for specific ones which will give a warning in the console. Possibility to add warning for user for other exceptions though probably not

---------

Co-authored-by: scut <scut>
2025-04-20 15:58:02 +01:00
YanisandLila c903642cd1 [OoT] Update actor scale's default value (#508)
* make actor scale default to 10

* add a print for clarity

* Show actor scale outside custom and check custom in skeletons

Not an oot expert but this seems like a very obvious issue with this.

---------

Co-authored-by: Lila <[email protected]>
2025-04-20 15:56:00 +01:00
Yanis 420dba362d [OoT] Fixed UI issue when an actor has no type (#509)
* fixed UI bug when actor has no type

* fixed missing collectible item none
2025-04-20 15:54:32 +01:00
Yanis 8652b0bb11 [OoT] Fixed actor enums overriding actor types (#504)
fixed actor enums overriding actor types
2025-03-20 16:45:31 +01:00
CDi-Fails 095696ff00 Fix bug where water conveyors set COLPOLY_IS_FLOOR_CONVEYOR (#502) 2025-03-04 11:14:17 +01:00
Lila 3f476dffb2 Check if fog data exists (#497) 2025-03-03 09:34:22 -05:00
Lila c51e462990 [SM64/F3D] Fix and update Ui Image Exporter (#452)
* [SM64/F3D] Fix and update Ui Image Exporter

Fixes #451
Missing: Load and set commands and pallets (currently relying on multitex manager, will have to be changed somehow)
Updated: Tex prop is now drawn using ui_image, ui_image has been updated to optionally hide low and high props (are handled by size cmd, does not exist for texrect)
materialless_setup func for TexInfo, equivelant to moreSetupFromModel for bpy material-less contexts, obviously cannot handle flipbooks
ignore_tex_set bool for fromProp
Use only fromProp and updated writeAll
Some basic ui reordering to match other panels

* Fix noted issues, clean up code to be consistent, add tlut mode

* use world defaults and saveModeSetting to remove revert code, remove extra syncs

* close to being finished

* refresh 13 memes

* automatically pick 1 cycle instead of copy mode

* Rasky confirmed ia16 tlut works for copy mode, cool

* Revert "Rasky confirmed ia16 tlut works for copy mode, cool"

This reverts commit 7fe981cc15e3a45766a2aacd21c725af8e2f708b.

* [SM64/F3D] Fix and update Ui Image Exporter

Updated: Tex prop is now drawn using ui_image, ui_image has been updated to optionally hide low and high props (are handled by size cmd, does not exist for texture rectangles)
materialless_setup func for TexInfo, equivelant to moreSetupFromModel for bpy material-less contexts, obviously cannot handle flipbooks
setup_single_tex func for TexInfo, sets up a single texture without the context of the multi texture manager
ignore_tex_set bool for fromProp
Use only fromProp and updated writeAll
Use saveModeSetting (and world defaults) instead of manullay appending each DP command (except for blend color)
Removed syncs except for the sync after the texrect cmd to do the reverts
Removed deprecated arg for png exporting in save_textures (assumed from fimage)
Removed the ) part of the delimiter checked when exporting "Menu", refresh 13 made it (void) instead of ()
Some basic ui reordering to match other panels
Added 1 cycle variant for non rgba16 exports
Fix dynamic dls

* fix dsdx and dsdy

* fix overwrite data issues

could not deal with aligner and palletes, now can!

* sauren nitpicks

* fix first test

* Update f3d_texture_writer.py

* make the regex allow even more whitespace

* fix extra new lines
2025-02-14 21:33:28 +01:00
MegaMech a139743cf5 [mk64] Implement Material Presets & World Defaults (#470)
* Update f3d_material_presets.py

* Update f3d_material_presets.py

* Create mk64_constants.py

* Update __init__.py

* Update f3d_material_presets.py

* Update mk64_constants.py

* Update __init__.py

* Update f3d_gbi.py

* Update f3d_gbi.py
2025-02-14 21:32:52 +01:00
Lila 328736da79 [SM64] Bring binary dl exporter up-to-date (#459)
* [SM64] Bring binary dl exporter up-to-date

Add bleed and inline support.
Assert for fmeshes len
No longer use getDrawLayerV3, yes it doesn´t matter here but it was the last bit of code to use it, with permission I'd like to remove the function

* DLFormat.Static
2025-02-11 16:30:38 -05:00
Scutandscut <scut> f247e20c59 [F3D] [Bugfix] Fix Sync Optimization for Mat Bleed (#487)
fixed optimize_syncs function for bleeds

Co-authored-by: scut <scut>
2025-01-28 14:28:43 -05:00
Gregory Heskett e18c45ea71 SM64: Add missing typecasts from Gfx* to SetTileSize* to suppress compiler warnings (#492) 2025-01-19 10:57:53 -05:00
Yanis 003bd4992c [OoT] Fix issue where light settings is using the wrong name (#493)
fix issue where lightsetting is using the wrong name
2025-01-17 16:13:34 +01:00
Lila 79d3badf1c [OOT + F3D] More informative error messages for deleted lights (#491)
* [OOT + F3D] More informative error messages for deleted lights

I thought of wrapping saveOrGetF3DMaterial to avoid these kind of empty errors in the future, im fine with reverting that tho I think it is for the better (in ac I wanted to throw errors where the material wasn't in the args already and it's very annoying, this way everything is consistent)

* fix from watching somone's stream
2025-01-09 00:01:00 +01:00
Lila a07242766d [SM64] Add in actor preset information for future use (#393)
* [SM64] Add in actor preset information for future use

Used in animation rework for import presets and export presets for binary

* Added animation names

* black

* Mario animation names

* black

* undo weird change

* name all animations

* fix piranha animation names

* Small mistake in mario

* add docstring

* clean up validation

* add groups, fix mistakes

* figure out level from group

* fix toad

* hack for bowser

* Use hex

* Fixes from animations rework final testing
2025-01-01 10:47:57 -05:00
Lila 98520f1d6a [SM64] Fix SM64 binary geolayout exports (#423)
* First pass

There seems to be something wrong with reverts still, will investigate

* currently hasn´t caused a bug but update this to be sure

* another similar issue
2025-01-01 10:47:42 -05:00
Yanis dac0a8fd00 [OOT] Detailed Actor Panel (Actors, Transition Actors, Entrance Actors) (#242)
* parsed parameters for actor data

* removed paramsByType

* main logic

* fixed issues and export

* operators

* black

* fixes, transition actor list

* upgrade logic

* fixes

* black

* review

* review

* fixed export issues

* format

* kure's review part 1

* fixed upgrade issues (custom not handled yet)

* snake case-ify functions, tiny xml docs/fixes, completed upgrade stuff

* add custom values for enums

* added custom values for string props

* small fix and default to custom in upgrade

* fixed custom values not working

* fixed issues related to custom value for Chest/Navi Msg

* fixed issue where 'get_param_value' can return None in some cases

* latest review from kure
2025-01-01 15:54:52 +01:00
Lila 60bdf25388 [SM64] Only throw empty gfx exception in actor exports (#413)
* [SM64] Only throw empty gfx exception in actor exports

* type hint

* removed comment

* Remove other unused camera args

* don't pass in arg for camera

* remove last unused camera
2024-12-28 18:22:01 +00:00
Lila c475ce3303 [SM64] Fix/Improve multi-actor UI (not export all selected) (#450)
* [SM64] Fix/Improve multi-actor UI (not export all selected)

* abs_decomp_path

a little extra addition for code quality

* dragon's review suggestions

* forgot to change this to a comma, oops
2024-12-28 15:15:34 +00:00
Lila 85330e1f68 [SM64] Add exception handling for area init and throw error for instant warp objects (#390)
* [SM64] Add exception handling for area init and throw error for instant warp object

* Add back exception handeling
2024-12-28 15:12:39 +00:00
Lila f0ff40c87e [SM64/F3D] Area fog improvements (#378)
* [SM64] Area fog improvements

Area fog is now a toggle in the area root
Renamed the text for global fog to area fog
Materials now by default show color and position if set fog is on, then in sm64 mode, if they are parented to an area that sets fog the option for area fog shows up with the area name in the text, if it's on a disabled column with the area's fog properties will also show

* Fixed description

* Shorten description, black

* black
2024-12-28 15:12:17 +00:00
fig02 81fd463532 [OoT] Update cutscene macro names (#481)
* update CS_HEADER and CS_END_OF_SCRIPT

* deleted a word

* format
2024-12-03 16:47:47 +01:00
Lila bce9ebd376 [SM64] show custom export path without save textures (#475)
recent regression caused by me, yay
2024-12-01 19:51:44 +00:00