Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

3dSen VR - 3D NES Emulator For Virtual Reality

Breathing new life into classic NES games by magically converting it into 3D and letting you play in VR · By geod

3DNes Comprehensive Feature Request List Sticky

A topic by thecarterlilleyproject created Jul 04, 2016 Views: 4,333 Replies: 65
Viewing posts 1 to 27 of 34 · Next page · Last page
(1 edit) (+4)

Loving this emulator so far! Reliving a lot of old classics! I figured to help geod have all requests in one area, we could start a comprehensive list. Feel free to add your own!


+Load Roms Directly, not manually

+2 Controller support (at the same time)

+Top down light source vs. Platformer Lightsource. (Directly Above)

+Transparent color choosing per tile. (Would fix edge tiles in Zelda I for example)

+Save States


Feel free to add on! This is just to help out, so please be constructive and helpful!

(1 edit) (+1)

I'd love a spritesheet function. This would be some sort of option (maybe while loading the rom or something like that) that would load all of the game's sprites in a style similar to a sprite sheet. This would be helpful for working with things like the health bar in Kid Icarus, which switches to a different sprite with each hit, and also would be helpful for dealing with more difficult games.

Also, camera panning would be really nice. Only being able to rotate the camera is really limiting.

(+1)

The problem is that sprites are different from the objects that use them. In my naive understanding, the program assigns properties to objects, and not to sprites.

(+3)

You need to be able to select multiple parts at once, maybe a sort of cursor selection. Also better .3dn management and loading would be nice it doesnt seem to load them half the time.

A fast forward and rewind would also be nice.

Keybindings

and ability to load .zips and .7zips right now, it can only do unzipped roms.

(5 edits) (+1)

More control over the light source at all would be good, even if it was just to choose where it's located overhead.

Maybe a new layer type where the object is above the Front? Call it Above or call it Front and change the current Front to Midplane. Have a checkbox that causes an object to be transparent if another object occupies the same space as it (player sprite runs behind a foreground wall or pole)

In the same vein: a value for z offset so the entity doesn't have to be located symmetric about its plane axis?

New Patterns like:
Upward Wedge (useful for the Mega Man title cards)
Downward Wedge
Rightward Wedge
Leftward Wedge (these two might world well for like Legend of Zelda)
Pyramid/Cone (the point would be toward the player)
Inverse Pyramid/Cone (A divot)
Dome (bulges out toward the player; good for giant eyes in the wall)
Inverse Dome (inward; good for giant mouths in the wall)
Bevel
Inverse Bevel

Game Genie support

(2 edits)

Thank you for your feedbacks. I'm working on the next version. Just an info, i have tested Battle City and could use two controllers just fine.

(+2)

Maybe something to colorize or label an asset (red = modified this session, blue = unmodified, etc.). That way if I change a floor pattern in one level that happens to be in another, I can see that via its tag or special color that I've already changed it. that way I'll be warned that changing it here will change it elsewhere.

(3 edits) (+1)

A setting where you can assign a color of an asset to not display shadows. This would make some backgrounds look a bit more like backgrounds rather than backdrops. And/or a setting so that a certain asset doesn't drop shadows.

An option so that a sprite that's rendered with e.g. Cyinder can also be filled rather than just a shell.

(1 edit) (+1)

I think the best way to make most of the games work would be to have a "transparent" color per each object. (Tan for the corner walls in Zelda I), that makes every Sprite that has background attached viable to fix.


Movable lightsources are imparitive

(1 edit)

It'd be nice if instead of the Front and Back layer, there's a Z Position Value you can edit for each object. The front and back layer feel too restrictive to make a nice 3D Picture. An editable value like that would provide more variety, especially for games with more complex backgrounds.

Slopes (wedges) would also be very nice to have. Top-down games that display walls at an angle (Metal Gear, Sweet Home) can definitely use this.

Thanks!

"Slopes (wedges) would also be very nice to have"

It's not clear for me. Could you clarify it?

(1 edit)

I've tinkered with the editor on this for a little bit, using "Super Mario Bros. 3", "Kirby's Adventure", "Batman", and "The Legend of Zelda". There were a few things that I've noticed with these games.

SMB3 is kind of difficult to edit well once you hit World 1-2, where you have the various slopes. I was hoping that the Cube or Full Cube settings would let me place the same front graphic on the top of the shape, but it didn't work. I ended up having to use "Font", which made the tops of the slopes completely black. A new shape option that would be identical to Font, but uses more than just the edges of the graphic to color the sides would be nice.

Kirby's Adventure and Batman ended up giving me a headache when I tried messing with them. I ended up having to download a pre-made set to give me a decent starting point. Would it be possible to have a "Blank Slate" option for situations like these, that renders everything as a flat surface that we can then start pulling and stretching to make our 3D versions? Also, being able to choose which color is transparent or if none of them should be would be nice. As it is now, Batman (which uses heavy emphasis on black to give the illusion of lighting and additional color) ends up with all transparent buildings where you can see through the bricks.

Legend of Zelda has a couple problems of its own. The majority of them have to with the way the shapes work currently. You either pull in a full square shape, or not at all. Mountains are near impossible to get to look good, since you can't pull out the shape of the mountain. The ability to pick a color and ignore it when you stretch a shape would help. Also, a wedge shape would be nice for top-down games like this, for characters like Link. Dungeon walls can be fudged to look relatively well using the Cylinder settings, but Link's kind of a special case.

As a more general request, can we have the option to have increment buttons for each number in the editor that adjust it by one, and let us see the result immediately rather than manually clicking "Adjust". It would be nice for detail work, seeing results much more quickly, and I personally tend to forget to hit "Adjust" to activate my changes, resulting in having to re-edit the same object multiple times.

Finally, I would like to make a bit of an ambitious feature request. Let's say that we extracted the graphics from our ROM using something like Tile Layer Pro. If we were to save the graphics in the same compression as the source game, so the emulator would be able to read them and match the data appropriately, could we possibly have the ability to create pixel-based height-maps for tiles? I'd imagine making a black/white version of the tiles in the exact same format as the original game, using four shades of grey. The emulator would start by matching up shapes with the contents of the ROM to figure out what corresponds to what. Then, it would check the color of the pixels and pull out each color a set amount based on the shade. We could do something like this to get a much more elaborate 3D effect. For instance, the curtains in Castlevania's first level would be able to be a separate object rather than having to pull out bits of the grey background as well, and we could get more detail in the shape. (Bad example, since the "ignore color" request would functionally do the same thing, but you get the idea.)

--- TL;DR ---

We need a new shape that works like Font, but uses the whole graphic for the sides rather than the edge color.

We need to be able to set up a perfectly flat canvas for a starting state to work with.

We need to be able to pick transparency for objects.

We need to be able to pick "ignore colors" for objects.

We need a simple wedge option for top-down characters.

Can we have "increment" buttons for each numbered value in the editor, with instant results instead of manually hitting "Adjust"?

*Pipe Dream Request* Can we create height-maps for individual tiles in a game, if we were willing to keep them in the same compression format as the source ROM using an external program?

(1 edit)

"We need to be able to set up a perfectly flat canvas for a starting state to work with."

Orthographic view could do the work, no?

"We need a simple wedge option for top-down characters."

I don't understand wedge option. Clarify please.

by wedge they mean a diagonal surface the can be used for ojects drawn to be receding into background.

An example would be buildings in an isometric game.

Have you played "A Link Between Worlds"? They use a trick involving angles and the camera to make a 3D environment and characters all look the same as the earlier top-down 2D games. They make everything that's supposed to be upright lean sharply away from the camera. You get the full-frontal view of the characters atop a 3D world, just like the older games. I'd like it if we would be able to do a similar trick, and make a flat surface that protrudes further along the top edge than the bottom edge. Using "The Legend of Zelda" as an example again, looking at it top-down would still look the same, because the voxels are each a single color. However, the player can tilt the camera to get a more 3D view of the world, and the characters and enemies would still line up well with the camera.

(3 edits)

I'd like to see an anti-aliasing option for rendering, and a button to "snap" the perspective back to centered.

How about a way to restrict or gradient-fade the background color? When the sky changes during this ending sequence, the whole screen floods with the new color. It's abrupt and jarring.

Things that need adding....

1. Multiple selection

2. Rectangle selection tool

3. Mouse wheel moves tiles forward and back in space.

4. Keyboard Shortcuts

5. Light source direction control

6. Ability to make sprite emit light and color of choice.

7. Global Illumination.

8. Command to send all tiles to back (fresh slate)

9. Ability to turn off shadows on specific tiles.

10. Save states.

It would be possible to add Widescreen?

Some way to generate content 3d does not appear on screen sides?

(+1)

Here is what i think:

  • Save/Load states is something reaaally important
  • Widescreen is possible?
  • Select multiple sprites at the same time
  • Custom Layers for Sprites
  • Full Cube/Cube is going to get improved?,sometimes when i play Megaman for example,some blocks get a "hole" when in FC/C
  • Turn Shadow Off in the background sprites or the sprites or your choice
  • Sprites that render some kinda of light
  • Mouse wheel moves tiles forward and back in space.
  • Command to send all tiles to back (fresh slate)
  • Anti-Aliasing and FXAA ?
  • A new pattern that turn some sprites in something like a Ball made of pixels? (without holes like V-Cylinder and H-Cylinder)
  • Possibility to turn Shadows off without putting Graphics on Low
Yes,i copyed some functions from the others comments
(1 edit)

Anti-aliasing is possible in DX9 mode through Nvidia Profile Inspector (SGSSAA). Use "0x004000C1" as the compatibility bits. I don't know if there are known compatibility bits for the Unity engine in DX11. But it would be good having some native AA options in 3DNes.

3DNes uses some AA already, but I don't know what type it is. I've tried hunting it in DX9 mode with the Helixmod dll and it seems it isn't a pixel or vertex shader, so maybe it is MSAA.

Thanks for the reply,i will test that on my Nvidia Profile I. right now!

My requests (trying to not repeat what others have requested):

- Software mouse cursor that is placed at the depth of what it's pointing. I use 3D Vision and it would help immensely whenever I want to click on an element.

- Overclocking feature, like FCEUmm has. There are games that have slowdowns in the real console and this would fix it.

- Configurable number of layers, maybe.

- Save states, speedup, rewind, etc (typical emulator features).

(5 edits)

I'd like the sound volume to save between sessions. When I Twitch stream, I have the volume set to nearly zero, but if I close and re-open, the volume is back to max, and the audience gets an earful.

Conversely, I'd like NOT to have the background depth get saved, or at the very least, I'd like a way to easily restore the default background depth.

Please change "advance frame" to only advance one frame instead of two. Sometimes sprites or object phenomena occur on a single-frame basis. Or at least have a checkbox so switch that hotkey between 1 and 2 frame advancement.

Also, can you allow us to press Tab to change from "Depth" to "Z scale" in the editing menu? That would be a nice feature.

Lastly, can the "Depth" and "ZScale" fields be widened so that I can see more than two characters? When I type in 0.25, I can only see 0.2.

So advance 1 and 2 frames are ok? 4 -> 2 and 2 -> 1?

I think 1 and 4 might be better. Sometimes you need to fine-tune an animation, and sometimes, you need to carefully, but more hastily, move through it.

I am not sure if this is possible or not, but I am curious. I`d like to see a way to move the camera, so we can get a better perspective. Maybe different camera position for each portion(i.e menu, main game, e.t.c) I do wonder if additional planes to be added(like a concrete outer wall) for games like Legend of Zelda. In-game sprites are used for the wall textures. This needs a new perspective. The picture is of the actual NES game. https://upload.wikimedia.org/wikipedia/en/3/3a/Legend_of_Zelda_NES.PNG I hope this gets continued, and would be happy to clarify if need be.

How about a version of cube wrap that leaves the top and bottom of the object as "char" type? Or one that leaves left/right side as "char" type?

Clarification pls!

If you had something like V Cube, it would wrap the face around the front, left, right, and back; but the top and bottom would be the same as though you had done Char.

Same with H Cube: the face would be displayed on the front, top, back, and bottom; but left and right would be Char.

(1 edit)

Clear enough. What do you think if cylinder patterns will be defined like that and the currents representations will be removed? I would like to keep the pattern count as small as possible.

I like the H and V cylinders perfectly as they are.

Maybe you can make the AS checkbox also apply to cube somehow? But then there would need to be a way to distinguish between the two versions I described. I don't know a simple way to do it without adding patterns.

(2 edits)

First off, thank you very much for this new emulator experience. It has breathed new life into these old classics. The real impressive part to me is how well the program is able to guess alot of the layout on it's own.

I have a lot to say so forgive me if I ramble a little.

More shapes:

I think a lot of users would agree that this is an area that needs expansion. What you have is a good start, but more variety would be welcome. Spheres, pyramids, half-shapes like half-cylinders or half-spheres.

Custom Shapes:

Even better than more shapes would be custom shapes. An editor to create or add your own shapes would allow better customization for games using less traditional side-on views.

Z Position:

We already have Z depth and Z scale, but it would also be nice to be able to set Z position, as well. The layer system kind of already handles this, but having just a front and back layer can feel too restrictive. Sometimes it can be difficult to get HUD elements to not be obstructed by level or character sprites. I don't know how big of a value would be needed. 0-255? Would 256 levels of depth be enough?

Sprite Groups:

While the emulator does a good job of grouping up sprites that belong together, it can sometimes make mistakes. The delete tool can help, but even that doesn't work, or causes more problems. Some examples are in Bionic Commando, some text sprites in the demo screen would get attached to a background sprite and deleting did nothing to help. In Spelunker, when trying to group the ground tiles together, every time I deleted some, it would effect others that I already fixed that I didn't select. Also Punch-Out is a good example since it has such large character sprites. Editing can give strange results because of the way the emulator decides to group them together.

I don't know how difficult it would be to implement, but a way to control what sprites are grouped together would be very helpful. Even being able to see how the program decides what is grouped together or what sprites are associated with each other would be nice. That way when you are editing, you know what will be affected by any changes you make. Of course that only works for whatever you can currently see on screen...

That's about all I have for requests for now. One other thing I noticed is that when setting objects to the background layer, setting their depth only seems to make it the depth go further back into the background. For example, if I have 2 objects set to the background layer, one with a depth of 8, the other with a depth of 32, the front face of both objects will be on the same plane and only the backs will be different - 8 and 32 respectively. Shouldn't it be the other way around so that the front of the objects stick out from the background at different depths? I can get that effect by fiddling with depth and Z scale, but it just seems overly complicated.

Another thing, like some others people have commented before, I thought it would be cool to have a sprite sheet option so that we could edit sprites directly from them. But then I realized why that is not possible. Take Super Mario Bros. for example. A classic bit of trivia and clever programming is how they used the bush sprites as cloud sprites or vice versa. You couldn't edit that one sprites values since it is used as 2 different objects unless you don't mind them appearing exactly the same.

Lastly, I would like to know what plans you have for expanding this emulator yourself. What is your vision for it beyond what it currently is?

More shapes: Agree in general

Custom Shape: Agree in general. But two factors are not mature yet : modde and good technical solution

Z Position, Sprite Groups: Already discussed. It will be supported in the future

Background sprite front faces on same plane : nice observation :) This is due to a historical resolution. When i was testing 3DNes on Castevania, the background was devised into sprites with different depth so i set it that way to have a perfect flat background without the need of any further customization. It concerns only the way of rendering and doesn't relate to 3d data. I admit it's not "correct" way to do in long-term though. I will fix this behavior in future update.

Mario Bush and Cloud: If i'm not wrong, they are seen as different shapes in Super Mario Bros :)

My vision for 3DNes is: this is a generic tool to convert any 2D console game into 3D/2.5D one. With that in mind i will focus in improvement of 3Dification part of 3DNes. The Emulation functions come second. Virtual reality will be integrated. Porting to different platforms. And finally apply this technology to other 2D consoles. I'm open and well-come to any feedback and suggestion to make this technology better.

I hope you can reach that vision. It is very cool to hear that your idea is to make this a general tool for any type of 2D game/console. That will be amazing to see! I don't know if you are familiar with programs like Sprite Lamp, or SpriteIlluminator, but they are used to create normal maps for 2D sprite based games. Where those just allow better 3D lighting of 2D sprites, 3DNes gives real depth to the them allowing you to move around them. Its awesome!

Anyways, when I mentioned the sphere shape, I forgot to say that the cylinder shapes make good spheres themselves, but the problem is that they can appear hollow when viewed at different angles. If there was an option to have a filled cylinder instead, that might cover the need to have a sphere shape.

My only concern with the emulator functions coming second is that it can make editing 3D difficult. You need to be more than just good at playing a game. You need to be good at playing a game while editing it as well. Some people just want to play, so making it easier for others to create premade .3dn files for players to use will only benefit 3DNes in the long run. Common emulator functions like save states, or recording and playback could help with that.

You are probably right about the Mario cloud thing. I have no idea what an NES does at a technical level. ;)

Now I have to create an account somewhere to host the .3dn files I have been working on. Any suggestions? I'm pretty new to this.

Save/Load will be implemented in 1.2

Dropbox/Google Drive for the win :)

@Cherkov Holy crap, recording/playback would be amazing for this!

@mrgame131 Being able to record and playback would be amazing, but I'll take save/load, too.

After spending some time editing, I thought of a new feature that would be helpful. It would be cool to have some sort of palette with different presets you could apply to the currently selected sprite. You could set all of the values for the setting (depth, scale, layer, and pattern), and then give that setting an appropriate name, like Text, Background, Pick-up, or Enemy. Then whenever you come across a sprite that should have those settings, you just press the right button and they get applied.

This would help when editing animations. Each time the animation changes to a new frame, sometimes all of the settings will change as well. Then you have to go through and adjust each setting by hand again, hit the Adjust button, and then do it again for the next frame.

It would also help when editing large sprites that are made up of separate groups or game with complex backgrounds that you want to have a consistent feel.


Finally, an undo button would be nice. It drives me crazy when I accidentally hit Delete. That might just be me though.

Pattern preset hotkeys was already noted. For animation i'm also thinking of auto object tracking and pattern applying. Just select a sprite and an pattern, all animated sprites of this sprite will be applied the preset pattern. Is this any good?

Pattern preset hotkeys sounds great, but will they be user definable? Each game can need its own settings to get a good effect and I think hard coded values might be a problem.

If you can do that with animated sprites, that would be better than good, that would be amazing! As long as the user still has some control over it, that's cool.

Do you have a feature list of what's being worked on and what is planned for later updates? I don't want to keep bugging you with things that you are already addressing.

(7 edits)

Suggestions / Bug List for Future Reference:

Hotkey Suggestions

Missing and Mangled Characters (Shadowgate) / Mass Shape Selection

Sprite Grouping / Delete Key Function

ZOffset

Game Genie Support? / Save States

Missing Walls and Floors Bug (Blaster Master)

Masking Sprites in Certain Instances. Is it Possible?

Disappearing Sprites/Layers (Double Dragon II)


Suggested Mapper Addons:

- Mapper 232 for Codemaster Games like Quattro Adventure and Adventures of Dizzy

- Mapper 8 for A Boy and His Blob

You had mentioned that it would be easier for people to keep track of suggestions in this thread, so I put links to all of our discussions here.

If you accidently set something to zero, use the Nav buttons to get back to the sprite since you can no longer click on it. I've had it happen quite a few times, so I know how frustrating it is.

That's awesome to know. Thanks! I've done it 3 times and just thought they were gone forever and you had to start over.

I think you can still select it, you will notice the change in parameters, nothing will be displayed though.

You're right. You can still select it by clicking, but I find it easier using the nav buttons. It can be difficult to select the missing sprite if there's another sprite right behind it. At least I had that problem with River City Ransom a few times.

Yeah. Until you've been using it about 25 hours and really start getting the trick to it, it's hard selecting very visible pieces. I've put at least 25 hours into working on the emulator so far and i still find myself clicking 15 times to select a specific piece if it's smaller and surrounded by larger pieces.

I can't even really explain why I'm much better at that now. You just get a feel for exactly where the emulator wants you to click to highlight a specific piece based off of what angle you're looking at it from. It's definately much easier to use Cherkov's navigation method.

(4 edits)

Please could you remove the requirement to hold Ctrl for hotkeys and add more shortcuts for so editing features can be done more quickly with keyboard (for edit action) and mouse (for selection, and camera movement)? Suggestion:

  • View
    • P - perspective view
    • O - orthogonal view
  • Layers
    • B - background layer
    • N - foreground layer (near)
    • M - mid-ground layer (new)
    • - and =/+ - move forward/backward between layers (if more than 3)
  • Sprite patterns
    • X/1 - Unknown (Extrude)
    • C/2 - Cube
    • F/3 - Full Cube
    • V/4 - Vertical Cylinder
    • H/5 - Horzontal Cylinder
    • S/6 - Sphere (new)
    • G & arrow key (or cycle)/7-0 - slope directions (gradient)
  • Other
    • arrow keys - Navigate tiles (new, not cycling by line)
    • A - Adjust (Apply)
    • R - Delete (Reset)
    • Del - Reset All (with prompt, new)
    • T - transparent colour picker (new)
    • Z - type Z-scale (only accept numeric characters)
      • [ and ] - change z-scale (normal press = 1, Ctrl+Press = 0.5, Shift + Press = 0.25)
    • D - type depth (only accept numeric characters)
      • < and > - change depth (modifiers as above)
    • W/E - next frame, jump 3 frames
    • Q - clear selection (no translucency without switching tabs)

Hope you like it!

Looking forward to the next version.

I might be covering a few already mentioned but these are things that would get my 3Derizing more games.

+ Object voxel painting. Voxel per voxel manual painting for objects with weird shapes or suggested foreground parts of sprites so we can make it stand out and paint behind it where it covers up supposed parts of the sprite that could otherwise not be seen.
+ Sprite/Object recoloring and replacing for fancy full color repaints. (Though palette changes might cause a bit of trouble)
+ Precise Z location placing (I figure that would happen soon anyway)
+ Smart Z location movement based on position of sprites under it. (rarely needed but might be helpful in odd games)
+ Camera scripting.
For things like placing the camera behind the player sprite, attempted third person views, camera tilting based on button presses or sprite/object location. Maybe even zooming or other functions based on memory values like used in cheat codes
+ Object naming, listing in an easy to edit text window. Also a notes and comments section.

Maybe some aren't all that needed up but I'd overall just like more control over things and quick ways to edit and document things for handing over 3dns file projects others and more difficult games.
Plus some extra features just to further enhance things would always be great.

I'd just like to see save states at this point. Until that happens, nothing else really else matters. I've still got a ton of free time at the moment to work on these games, but haven't even used this for over 2 weeks now because of no save states.

- Save states(which would increase community participation)

- Higher emulation compatibility(there's a bunch of games that 3dnes still can't emulate)

(1 edit)

- Save state will be added in the next release.

- Rom compatibility will be enhanced after the rework of 3dification framework

Being able to give different settings to objects that are the same, like giving 2 different settings to two goombas in SMB3.

How would the emulator know what pattern to use?

You just started to analyze 3dification in depth :P

What do you mean?

Viewing posts 1 to 27 of 34 · Next page · Last page