Hello,
Has anyone considered something like HDNes but with the added capability to replace (groups of) tiles with 3D models? That's what I had originally planned for Nesalizer, but since I seem to have a hard time getting around to it, I thought I'd just throw the idea out there.
The implementation I imagine is having a bunch of contexts, where a context consists of at least a context identifier and an (x,y) position on the screen. A context could be defined by a particular tile, by a tile but only if surrounded by particular other tiles, or by something more complex. With that general framework, the original graphics, replacement graphics, a 3D model, etc., could later be drawn for each context. The context identification/generation code would be decoupled from the drawing code (except perhaps for passing stuff like tile data if available), so that most of the work would turn into just identifying different types of contexts after a while. It would probably be possible to do fancy stuff like detect how far into a level a game has scrolled and generate different context identifiers depending on that.
Having an editor would be nice too, where you could e.g. select a few tiles and drag-and-drop them to have the editor generate a .png with a filename that uniquely identifies those tiles and allows them to be edited.
It might seem silly, but I've felt pretty bad over the last few years about not getting around to this, and in a way it would give me some closure if someone else implemented it.
HDNes with 3D graphics?
Moderator: Moderators
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: HDNes with 3D graphics?
There's one attempt in this recent thread: viewtopic.php?f=3&t=13552
Re: HDNes with 3D graphics?
That's a cool approach, but I'm thinking of something more manual. Having as an option to assign a shape instead of importing a 3D model would probably be nice though.rainwarrior wrote:There's one attempt in this recent thread: viewtopic.php?f=3&t=13552
Re: HDNes with 3D graphics?
Do you have any code or anything that showcase how to do it?ulfalizer wrote:Hello,
Has anyone considered something like HDNes but with the added capability to replace (groups of) tiles with 3D models? That's what I had originally planned for Nesalizer, but since I seem to have a hard time getting around to it, I thought I'd just throw the idea out there.
The implementation I imagine is having a bunch of contexts, where a context consists of at least a context identifier and an (x,y) position on the screen. A context could be defined by a particular tile, by a tile but only if surrounded by particular other tiles, or by something more complex. With that general framework, the original graphics, replacement graphics, a 3D model, etc., could later be drawn for each context. The context identification/generation code would be decoupled from the drawing code (except perhaps for passing stuff like tile data if available), so that most of the work would turn into just identifying different types of contexts after a while. It would probably be possible to do fancy stuff like detect how far into a level a game has scrolled and generate different context identifiers depending on that.
Having an editor would be nice too, where you could e.g. select a few tiles and drag-and-drop them to have the editor generate a .png with a filename that uniquely identifies those tiles and allows them to be edited.
It might seem silly, but I've felt pretty bad over the last few years about not getting around to this, and in a way it would give me some closure if someone else implemented it.
Re: HDNes with 3D graphics?
How about absolute address of the tile in CHR memory (after banking bits, etc are applied)? That is a very unique identifier and you could group them together in a json file, something like so:ulfalizer wrote:The implementation I imagine is having a bunch of contexts, where a context consists of at least a context identifier and an (x,y) position on the screen. A context could be defined by a particular tile, by a tile but only if surrounded by particular other tiles, or by something more complex.
Code: Select all
{
"models": [
{ "name": "model-2.fbx", "replaces": [ "$1f000", "$1f008", "$1f010", "$1f018" ] }
{ "name": "model-3.fbx", "replaces": [ "$1f020", "$1f028", "$1f030", "$1f038" ] }
]
}
Since it's all just based on CHR address, you could replace sprites and backgrounds with the same functionality. The only problems arise with games using CHR-RAM, but that's another story.
EDIT: Replacing sprites in this fashion could be more difficult, perhaps provide a way of mapping groups of sprites to certain key frames to provide for rudimentary animation?