Espozo wrote:I was wondering, when the emulator looks at a 8x8 tile, does it look at any of the ones around it before it decides how it wants to render that tile? I don't know if that makes sense, but I was looking at how the magnifying glass on Dr. Mario has the middle bulging out in a staircase like pattern while the rest is rounded (which is incorrect, but it's a start.) I think some of the bushes and stuff in SMB do the same thing. Maybe you could have it check stuff around it to make it bulge out as much as the stuff around it instead of completely. Just trying to give advice. I really like what you've done so far though. I will say one thing that was strange is how the text in SMB was rendered perfectly, but in Kung Fu, different characters were at different depths for seemingly no reason.
The rendering mechanism is not just based on 8x8 tile, but based on "shape" - meaningful collection of consecutive tiles. Shape recognition - like any recognition problem - is hard and does not have an ultimate answer. On Nes System fortunately we can choose color pattern as the main factor for shape clustering, it works for 90% case. It's still an open problem for improvement through. Consequently an 2D tile is not always mapping to an "3D tile", for example an 2D solid tile can be used in the introduction cube at the begin of SMB, but also be used in grass or cloud. The corresponding 3d tile in each case is completely different. The original code only allowed one 2d tile to be mapped to one 3d tile. For the current code one 2d tile is technically allowed to be mapped to many 3d tile but still be mapped to only one 3d tile. That's why you see some small strange detail in grass, in pipe etc. I could tack it earlier of course, but it would affect greatly on emulation speed so instead i went for the missing aspect (light, shadow, adequate sound quality) first then performance re-optimization. Right now i'm ready to return to 3d convert problem.