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

Frequent sprite glitches

A topic by AstroTibs created Jul 10, 2016 Views: 995 Replies: 5
Viewing posts 1 to 3

Hi. I'm getting some weird behavior when I "adjust" object settings in the Editor tab.

  1. Frequently, the "depth" value decremented by 1, especially when I use V/H Cylinder (also, "Cylinder" is misspelled.)
  2. Applying "Cylinder" to some assets will sometimes completely remove part of the sprite. See this pic, where a chunk of Fire Man's head is missing.
  3. Applying "Cube" or "Full Cube" sometimes causes block surfaces to be indented, and sometimes doesn't. See here. I also don't understand the difference between "Cube" and "Full Cube." I've never seen them do different things.

I've had a bit of a think about point #2. This only seems to happen with objects that use overlaid sprites (Fire Man's body is a separate entity from his face. I also see it on all the other robot masters except Cutman, who does not have a separate face entity).

So that may help guide investigation a bit. I'm not sure if this is a 3DNes flaw, or some inextricable detail about NES sprite display.

Here are my answers:

1. For V/H Cylinders, your input depth is just the maximal depth for the sprite, 3DNes will automatically calculate the real depth. That's why you see the difference between the depth you entered and the real depth after math

2. The situation is not very clear for me. Need more infos.

3.Click the intended cube and press Adjust again. It will not intended anymore. There is no difference between Cube and Full Cube for the moment. It's reserved for future development. It applies also for Unknown and Char.

(1 edit)
  1. That would make sense if there was a single absolute max for the sprite, but I see this happening:
    a. I set a sprite to Depth 15, V Cylinder: Example A. Note that this sprite can go up to 18.
    b. I click "adjust," leave the sprite, and then return. It says 14, as you suggested. Example B
    c. I change the sprite entry (say, to H Cylinder), click "adjust," but then change it back to Cylinder. When I leave and return, Depth is changed to 13. Example C

    If I keep doing that in order:
    H Cylinder > Adjust > V Cylinder > Adjust > leave sprite > click on sprite
    the Depth goes down by 1 each time. Eventually it went to 0 and then returned "Array index is out of range."

    I don't think it's specifically a math effect. When I enter Depth of 100, it will correctly change to 18. Other than that, it always decreases by 1: I think that's a bug. The pattern should only truncate if the number exceeds the maximum; it shouldn't always decrease by 1 after each Adjust.
  2. Sure. Here's the main sprite with a Char pattern, rendering in full: Char
    Here, I change it to H Cylinder. The sprite's mouth disappears. H Cylinder
    Changing it to V Cylinder, the mouth is still missing. V Cylinder

    Notice how his eyes are a separate entity. They have to be, because they use a different palette. This glitch only seems to happen to characters that have eyes as a separate entity. Sometimes parts of a helmet are missing, sometimes a shoulder, etc. In the examples for Part 1 above, you can see the top of his head is missing.
  3. Unfortunately, your advice does not work. Here's an example:
    The start of Elec Man's stage looks okay.
    I reach a part that has holes in it
    I change pattern to V Cylinder, then back to Full Cube.
    I return to the beginning of the stage. The floor now has holes in it.
(2 edits)

Thanks for invaluable feedbacks

1. That's interesting. I will review the code.

2. I will review the code too but i guess it's probably a current technology limitation rather than bug.

3. Then if you click the floor , it say cube or cylinder? Whatever it may say, change to cube and press Adjust again. What will happen then? You should also try the Delete button. It will delete the sprite then try to regenerate it. It's best to use in situations when 3dnes do the wrong sprite segmentation ( one correct sprite is cut into small parts or two sprites are seen as a wrong big sprite.

I've tried your new #3 multiple times and it ultimately results in the same effect. Fixing the floor in one area damages it in another.

I've uploaded the .3dn file in the Repository in case you want to play around and try to reproduce the problem.