and0p / N3S

DirectX 3D NES Emulator for Windows
http://n3s.io
61 stars 18 forks source link

CHR Map is Upside Down #8

Open frozenLake opened 6 years ago

frozenLake commented 6 years ago

I was trying to edit Metroid Incursion (metroid rom hack that actually manages to work with N3S instead of crashing) And noticed that when I click the CHR selection at the bottom, all the tiles are upside down. Also attempting to edit those gives an odd offset, placing voxels in incorrect locations, much like when trying to handle doors, so this editing issue also applies to when the game itself is flipping and rotating tiles.

Of course, I realize this project might be dead, so for all I know, posting this issue could revive it. Edit: Didn't see the develop branch when I posted this. Glad to see this is still being worked on.

and0p commented 6 years ago

Hi frozenLake,

The project is not dead at all! But development takes place on miscellaneous branches, and I keep packing new features into the 0.4 alpha instead of just publishing it. I'm super glad to hear there's interest for it!

It's interesting that a Metroid ROM hack would work, but it makes sense: I'm sure with a ROM hack the creator would have decompressed the CHR data in ROM rather than keeping it compressed in PRG, for easier editing. Playing and editing games with compressed sprite data is an incoming feature.

I'm not sure what causes the CHR "scenes" in the editor to sometimes flip the sprites. I saw this with Super Mario Bros (US / Japanese version), but only after I saved the N3S file. I checked a few possible causes and didn't see why, but it seemed like a minor issue so I haven't addressed it yet. I will make it a priority, though, if it's causing issues for you. I have fixed the issue with mirrored sprites not having the voxels drawn on the right side.

There are a lot of other quality-of-life improvements on the way, and new features. The ability to copy+paste groups of voxels, etc. Selection is also currently really hard in the editor, and I think the version you're using breaks highlight / selection effects which makes selecting things in the editor even harder 😞 I also have a mirroring feature that lets you draw voxels and mirrors them along whatever axis you set.

In terms of new features, I've added the ability to do actual outlines for sprites, so if a sprite has a 1-pixel border in-game (ie the Megaman series, everything has a black outline) you can have it work in 3D. I also just added the ability to make sprites render different 3D meshes depending on various contexts (color, position on screen, adjacent sprites). This fixes a major roadblock that became quickly apparent when I realized a solid color 8x8 sprite was used for both the bushes / clouds AND a variety of other sprites that have very different shapes in 3D.

And I'm not sure if this was in 0.3, but you can now add voxels that match the background color to 3D models. This is very critical for Metroid, which let sprites have 4 color by keeping the background black and using it for transparent fills. A lot of models definitely need black voxels.

Anyhow, thanks again for the interest and reaching out. I'll update this issue when I fix it. In the meantime, I you can use an XInput controller to pause to pause and advance a single frame at a time, which might make grabbing in-game animations easier. Again, the editor is not nearly in a polished state, but the N3S file format is mostly finalized and your current work will stay compatible if you want to work through the issues.

Thanks, Andrew