UI Manual
Overview
3dSen Maker is a build of 3dSen Project that focus on 3d profile creation. A 3dn file is not a ROM! It contains 3d parameter set for a specific ROM. This data is used by 3dSen while emulating the game to create and render 3d graphics on the fly. The Editor Tab allows you to adjust certain parameters of the graphics to get them looking the way you want. You can then save the new data as a 3dn file by clicking the “Save 3Dn” button. This new data will automatically be loaded when you open the ROM again. The 3dn file must have the same name as the ROM in order for the 3D data to be paired with the ROM (e.g. a ROM named “xyz.nes” will always be paired with the 3Dn file named “xyz.3dn”). All 3dn files are stored in the sub folder “./3dn”.
There are some 3d profiles provided in the build to create reference points: Super Mario Bros, Super Mario Bros 3, Legend Of Zelda, Chip 'and Dale: Rescue Ranger, Micro Mages.
General
- Load: open a rom file (nes/zip) or save state file (sav).
- Save: Save the current game state to a file.
- Reset: Restart the game from the beginning.
- Save 3DN: save the current 3d data to a file with the same name with rom file and 3dn extension.
- Quick Load: Load the file quick.sav from the current directory.
- Quick Save: Save the current game state to the file quick.sav.
- Load Input: load recorded input from external file. Supported formats are: fm2 and bk2.
- Exit: quit 3dSen.
Setting
Generic settings - ones aren't baked into 3d profiles
- Core: supported emulation cores. There are two built-in core: Default(3dsen core) and Bizhawk cores. Additionally the fceumm core is also supported. To import it just copy its binary into:
- On Windows: 3dSenMaker_Data\Plugins
- On Linux: 3dSenMaker_Data\Plugins\x86_64\
- On Mac: Contents\Plugins\
- VrMode:
- None : 2d rendering
- OpenVR: SteamVR mode
- Oculus: Oculus runtime mode
- Fast Render: skip re-rendering and use the previous output if 3dsen hasn't had a new game frame yet. Doesn't work in some Mac and Linux config.
- Speed: adjust the game speed.
- Vsync: Default is Off.
- Volume: adjust audio volume.
- Movie Mode:
- None: normal mode
- Playback: input will be read from pre-loaded sources (fm2, bk2, sav)
- Record: record the current input and save it into save states later
- Skybox:
- None: default game color
- Black: always black
- Gradient: the gradient of the first color palette
- Fantasy: skybox with color from the first color palette
Profile specific setting - ones are baked into 3d profiles
- Scan Direction: Vertical or Horizontal. the prioritized direction used in segmentation algorithm.
- Sprite Tolerance: the maximal offset pixel count tolerated to group different sprites into a shape
- Same Palette: decide if tiles in a shape need to have the same color palette or not
- Auto Layering: enable the code to auto assign any shapes to a specific layer of depth . Should let disable in most cases.
Render

- Light Dir: light direction vector
- Intensity: light brightness
- Def Layer: default layer assigned to a shape if its layer hasn't been initialized yet
- BG Color: use the game back ground color or use
- Shadow: enable/disable shadow rendering
- Border ... masks ... px: adjust how many pixel will be clipped at each border.
- Layer ... :depth, alignment ...: adjust the z position and the alignment of each layer.
- Render: select to render voxel in Normal or Retina mode.
Input
- Player: select which player gamepad is going to be configured, the first or the second.
- Type: select input type Keyboard or Controller. For controller press any controller button first to bind the controller with the current gamepad.
- Select an action its text field will turn yellow, press the key/button you want to bind to this action then move on.
- Key/Button bindings will be automatically loaded/saved each time 3dSes is launched/existed.
Editor

When you want to change the 3d presentation of a shape just select it, the game will be paused and the Editor tab will be activated. Every shape is linked with a pattern whose parameters are displayed on (1) and can be adjusted. (2) provides 5 slots so we can save/load frequently used pattern parameter sets. (3) provides access to frame navigation, on-screen shape navigation and pattern edition. (4) provide a basic texture editor to adjust the pattern texture.
To be able to adjust patterns of a shape or some shapes at once, Click on the target shape or Shift+Click to add/remove one or Shift + Drag to select all shapes in one region.
Pattern Parameter - 1
- SizeZ: the shape depth in z axis – integer value. For Cylinder pattern, the depth that you enter is just the upper bound, the actual one will be calculated by 3dSen
- Layer: To create the 3d depth, 3dSen is using the layer concept. There are four normal layers L1, L2, L3, L4 and a special layer UI which contain ui element of the game. There is also an initializing value called Unknown. Every pattern layer is Unknown by default. When you are playing, 3dSes will try to guess layer value for some patterns (Auto Layering checkbox in Render tab) but you still have to manually assign value in most cases.
- Geo: is the geometric pattern to create the 3D appearance. There are six patterns: Default, HCylinder, VCylinder, Cube, HalfHCylinder, and HalfVCylinder. Depend on Geo value, there are several additional boolean parameters like AS, Solid, Flip, Wrap.
- Scale: the shape scale vector – real values.
- Offset: the shape position offset vector – real values.
- Rot: the shape rotation vector – real values.
- Pivot: the normalized pivot to rotate the shape. With value triple 0.5, 0.5, 0.5 shape will be rotated at its center.
- Tags: a list of tag separated by comma. Tags will be used to linked shape with corresponding scripts.
- Rm(Render Mode)
- 0: use global Render Mode
- 1: forced to use Normal Mode
- 2: forced to use Retina Mode
- Alpha: shape transparency, from 1: solid to 0: invisible – real value.
- Restrict: the maximum width and height (in tile unit) of shape linked with this pattern.
- RenAtr (Render Atribute) : On, Off, Shadow Only
- Self: determine if tiles at the bottom/right will link to ones at the top/left or not
- Deform: show/ hide the sub-window Deform.
- Tex: show/hide the sub-window Texture Editor.
Parameter Slots - 2
- Param slots located at bottom left (Config1, Config2 ...). They can be used to save parameter set that we use often in the profile creation process. Steps to use those slots:
- Shift + click a slot to rename it.
- Ctrl + click a slot to save pattern parameters in (1) and (5) into it.
- Ctrl + [i] to save pattern parameters into the slot ith
- Click a slot to load its saved parameters.
- Alt + [i] to load parameters from i-th slot.
Tex Editor - 4
Providing some basic tools likes Pen, Fill, Replace, Copy/Pase, Color Picker to edit the pattern texture.
Deform Editor
If we want to deform or animate a shape, we could define parameters of above formula. Note that in this formula, xyz are all normalized by dPivot and sizeX, sizeY, sizeZ. For example if dPivot is 0, 0, 0 then x,y,z will run from 0 to 1. If dPivot is 1, 1, 1 then x,y,z will run from -1, -1, -1 to 0, 0, 0.
Moreover there are 8 slots CData0 ... CData7 to store additional info which can be read and process later by script.
The five slots at top left works similarly to the ones in editor tab but they only store parameters of the Deform window.
Control - 2
- Frame >, >>: forward the emulation 1 and 3 frames
- Navigation <,>: navigate the selected shapes/tiles
- Working Mode
- Shape : working with shapes
- Tile : working with tiles
- Adjust: apply new/on-screen parameters for the selected pattern. The shape appearance will be updated after button click.
- Delete: delete the selected pattern.
- Clone: clone the selected pattern to a new one and add it into the database
- Track: tracked the selected shape in following frames and adjust the same parameter set to its linked patterns.
- Stop: stop tracking process.
- Merge: shift + drag to select multi-shapes then merging them into a new pattern
- Create: shift + mouse click/ shift + mouse drag to select multi-tiles then create a new pattern from them.
History
Emulation rollbacks.
Script Editor
The left panel lists all Lua scripts of the current profile. The middle displays all field of a script: name, tag list and code. On the left side there is a tiny console. More details about scripting system are described in the Scripting Manual.
Hot Keys
- Esc : Show/ hide main UI.
- F2: Switch camera mode: fixed mode and tracking mode
- F4: Reset camera and headset in VR case.
- F5 : Switch between fastest and normal game speed
- F6: Switch between slowest and normal game speed
- Ctrl + O : Open File Dialog
- Ctrl + D : Save 3dn file
- Ctrl + R : Reset the game
- Ctrl + S : Quick save game state to quick.sav
- Ctrl + Q: Quick load state from quick.sav
- Ctrl + F : Toggle Full screen Mode
- Ctrl + X : Exit 3DNes
If Editor tab is activated:
- Ctrl + A : trigger Adjust function
- Ctrl + E: trigger Delete function
- Ctrl + M: trigger Merge function
- Ctrl + C: trigger clone function
- Ctrl + Left/Right: shape navigation
- Ctrl +. : Forward 1 frames
- Ctrl + Shift + . : Forward 3 frames
- Ctrl + Mouse Click : switch camera from fix mode to tracking mode with the selected pattern