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.

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 WedgeRightward WedgeLeftward 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)BevelInverse Bevel

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.

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.

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.

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.

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?

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.

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.

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.

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.

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.

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?

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.

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?

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.

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:

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.

the new first view person feature is pretty cool, but for now not very useful. A fantastic thing thing to add would be the ability to tether the camera to a sprite/object. just find the coordinates to any given sprite/object, and in real time match the coordinates of the camera to the given sprite/object. Also allow the ability to make any sprite/object transparent in first person, as they could get in the way of the camera in some games.

also, the ability to make all sprites/objects render sideways for top down games ( ie. Legend of zelda) would also be a nice addition as well ( assuming that it would be easy to change the formula for making games 3d.)

I know this might be a pipe dream (or very least a long ways away) but it would be amazing if there was a mode where you could editing objects by selecting individual pixels (as many as needed). Theory being, we could have finer control over sprites. Example, a building sprite object has a triangle roof and a portion of the blue sky is part of the object. You could select the blue pixels to "delete" them from the object, giving you just the house.

Another thing that would be awesome would be another checkbox (similar to the one that disables the black outline on some objects such as in Mario) to disable transparency for that object. For example, in towns the "ground" being black and thus transparent causes you to see the other objects that may protrude backwards due to their size. There are also sprites that should be see through that are due to black being transparent.