tructv / 3DNes_Engine

Engine to convert NES games into 3D
https://geod.itch.io/3dnes
GNU General Public License v3.0
70 stars 13 forks source link

Hello! I would love to get in touch with you to discuss how i might do a similar conversion for Virtual Boy Games #1

Open jakedowns opened 2 years ago

jakedowns commented 2 years ago

hi there, i would love to chat about how this conversion process works, as I'm interested in doing a similar conversion process for virtual boy games.

BenMcLean commented 2 years ago

hi there, i would love to chat about how this conversion process works, as I'm interested in doing a similar conversion process for virtual boy games.

But Virtual Boy games are already 3D?

jakedowns commented 2 years ago

they are, but to my knowledge, unlike parallax sprites on SNES, theres not a great, or uniform way to read sprites from memory and determine their depth (i could be way off there, i dont know too much of the emulation internals)

i know that the vb hardware does have some specific draw calls for dictating sprite depth, but not all games use those methods, and some just draw directly, managing that data uniquely and never presenting it to a uniform api for keeping track of it by an additional layer like what i have in mind

essentially i want to add head-tracking support to a vb emulator, that would allow for dynamic parallax of the sprites (as well as manual rotation and global depthiness control)

as far as i can tell, 3DNES/3DSEN's pre-conversion process is likely the best way to go about classifying this sprite metadata on a per game basis

so while yes, VB games are already "3D" not all games have a generic or uniform way of dealing with this "3D" data, making the following things basically non-starters:

ive also explored the prospect of using opencv stereopair depth estimation, and neural networks to generate depth maps at runtime, but both of those technologies are not mature enough for pixel precise, temporally coherent real time conversion. (at least not ones that aren't proprietary or that would work well in a mobile cpu/gpu context)

if you have any information about anything i may be ignorant of in these areas i would love to learn more.