Skip to content

N64 exporter#3258

Closed
moisesjpelaez wants to merge 313 commits intoarmory3d:mainfrom
moisesjpelaez:n64
Closed

N64 exporter#3258
moisesjpelaez wants to merge 313 commits intoarmory3d:mainfrom
moisesjpelaez:n64

Conversation

@moisesjpelaez
Copy link
Copy Markdown
Collaborator

@moisesjpelaez moisesjpelaez commented Dec 8, 2025

This adds an initial Nintendo 64 exporter. It translates Blender scenes and Haxe traits to an N64 friendly C code (with macros + Python codegen), in a mini engine that uses libdragon and tiny3d. It also converts BSDF shaders to F3D during export, using the fast64 addon (this specific branch).

This mini engine was made with templates under the armorcore/Deployment/n64 directory, but I wonder, @luboslenco is this the best place for it?


So far it supports:

  • scenes (flattened, no parent/child hierarchy)
    • cameras
    • directional lights
    • transitions (Scene.setActive)
  • objects with traits:
    • Transform.translate
    • Transform.rotate
    • Transform.scale
      - logic nodes (small subset)
  • gamepad input (hardcoded mapping)
  • physics (an n64 stripped down 'OimoPhysics' engine)"
    • RigidBody.applyForce
    • RigidBody.notifyOnContact
    • debugging
  • UI (Koui Editor)
    • labels:
      • font family
      • text color
      • font size
    • image panels
  • Audio (Aura)
  • Render2D (kha.graphics2.Graphics)
    • fillRect
    • color

The idea I have is to freely write arbitrary Haxe code so the games can be tested in Krom or HTML5 before building a ROM. Small physics based games can be made with it. I have tested generated ROMs in original hardware and Analogue3D with successful results.

Notes (01/28/2026) - I removed Logic Nodes support for now since they were increasing the difficulty and adding more things to maintain.

…ow and hide grouped UI elements: AnchorPane, RowLayout and ColLayout
@moisesjpelaez
Copy link
Copy Markdown
Collaborator Author

moisesjpelaez commented Feb 27, 2026

I separated this into a library for multiple reasons, closing this PR in favor of that. The branch will remain available for reference but I'm going to continue the n64 exporter in the new repository for now.

Link: https://github.com/moisesjpelaez/n64_exporter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant