Found a bug? Please report it, but remember to follow the bug reporting guidelines.
Missing a sane feature? Let us know!
But please do NOT request ports to other systems.
I was curious if there's any plans to add Stereoscopic 3D support in the future to ZSNES? I'm not sure how the renderer works, but with the way the emulator can toggle on and off layers I would think it's probably possible? Seeing A Link to the Past or FFIII in 3D would be really damn cool. Again, I have no idea how viable or even possible it would be, so please don't crucify me.
Well, it could conceivably be done (I guess with game specific hackery and major changes to the emulator), but it would just look odd most of the time, I imagine.
Most BG modes could technically lend themselves to background to foreground rendering in their screen layering. However, there are many different possibilities when the background and sprite priority bits come into play. There are also a number of ways games construct the screen with the backgrounds that would not follow a logical scenario for background to foreground viewing. It would probably end up just looking weird in most cases. However, there's probably a handful of games out there that it might look OK for. I believe I have seen some that do simple rendering with background, then sprites, then foreground.
This is one of the less crazy ideas presented over the years, but still it probably doesn't hold much practical application.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
Nightcrawler wrote:
This is one of the less crazy ideas presented over the years, but still it probably doesn't hold much practical application.
I think I've brought it up more than once myself.
Never too seriously, since, well, the games weren't designed for it and I can think of a lot of situations offhand where it'd break. But it'd be a neat "toy" feature, even if it IS of very little actual use.
Squall_Leonhart wrote:
You have your 2s, 4s, 8s, 16s, 32s, 64s, and 128s(crash course in binary counting!). But no 1s.
DirectInput represents all bits, not just powers of 2 in an axis.
Useless since ZSNES does not render using any 3D API. The entire image is composed in software and drawn to a flat buffer. No way to derive 3D information from that.
I recently came across a neat little software called iz3D, I saw a video on youtube where someone was using it with PJ64 and thought maybe it might work on other emulators as well. It does, but only the ones that run modern polygon based games (got it working nicely with Dolphin while playing Burnout 2: Point of Impact, but it doesn't even acknowledge NNNester J or Zsnes). Anyway, one would think that it would be possible to add a setting into Zsnes that would activate a slight red/cyan split image with an adjustable "separation" or "convergence" like in iz3d, but it would only affect the background layers and leave the main sprite layers untouched... sort of like this:
(anaglyph red/cyan glasses needed to see affect)
This is just a mock image that I made by taking a screencap with sprite layer turned off in Zsnes, then using a freeware program called "Stereo Photo Maker" to give the cap of the background a slight left/right red/cyan 3D effect, then taking another cap with sprites turned back on and pasting that into Photoshop and using the lasso tool to carve out the sprite of Flammie and then placing it as a separate layer over the 3D-ified background.
Applying actual 3D separation to mode 7 layers like that would need to be designed per game and per situation, as mode 7 isn't actually 3D. In fact, it isn't even perspective.
Mode 7 supports straight scaling and rotation. Any effects involving perspective are implemented by the games using HDMA to adjust the scaling and scrolling position per scanline.
There's also the problem of "high priority" layers displaying stuff that's for the back (since the sprites will be on top), which makes it impossible to set which red/blue delta to use for which layer.
And sprites have their own issues regarding which are on top.
Sorry guys, I was just curious about what Evilpaul and Franpa were talking about, and thought maybe it could be done as a filter effect, like the 2xSai filter and how it can exclude certain layers (like how in Seiken Densetsu 3, it doesn't filter the layer for the character sprites in the menu and certain text, perhaps on purpose or by accident, guessing on purpose since the really tiny text in certain parts would be nearly unreadable if it did). But as you say, it would still have problems defining what layer to do what to...
I_am_dumb wrote:Sorry guys, I was just curious about what Evilpaul and Franpa were talking about, and thought maybe it could be done as a filter effect, like the 2xSai filter and how it can exclude certain layers (like how in Seiken Densetsu 3, it doesn't filter the layer for the character sprites in the menu and certain text, perhaps on purpose or by accident, guessing on purpose since the really tiny text in certain parts would be nearly unreadable if it did). But as you say, it would still have problems defining what layer to do what to...
That's an unintended quirk, actually. As I recall, ZSNES renders the image in a 512*448 buffer area. Most games, which run at 256*224, and the extra space is used for the filters. SD3's menu text is in high-res mode, and the extra space is used by the game, so there's nowhere left to draw the upscaling filters.
Squall_Leonhart wrote:
You have your 2s, 4s, 8s, 16s, 32s, 64s, and 128s(crash course in binary counting!). But no 1s.
DirectInput represents all bits, not just powers of 2 in an axis.
It would be interesting to see the results of general rudimentary 3D based on the background layers in an SNES emulator. While it obviously will be highly flawed, there are a number of games which I believe it would work very well for. Platformers with parallax scrolling come to mind. In many cases each background is intended to be progressively farther away in perspective, with one foreground layer. Sprites can be treated all on equal plane in games like this.
As others have stated, with Mode 7, it's a very different ballgame due to the design. I know this sounds unintuitive to the uninformed as Mode 7 appears to be the closest thing to 3D the SNES displays. In actuality, it's probably the most difficult to get 3D out of for the reasons mentioned here. To do it, you'd need have a per game configuration that was manually given the depth information for each scanline. Even then, it would be per Mode 7 scene. So, I don't know how you'd be able to differentiate more than one scene per game. I suppose it might also be possible to develop a general algorithm in the emulator for HDMA heuristics of popular Square games or something, but that's a long shot. However you slice it, it's a flawed and difficult task.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
Nightcrawler wrote:Sprites can be treated all on equal plane in games like this.
Except sprites can go behind bg layers, or in front of them. Whenever that happens, the effect will go bonkers. :/
The idea would be the sprite plane would be set to be behind one specific background layer (acting as the foreground) for the game. If the game so chooses to change which background layer is being used for foreground throughout the game, you're screwed. However, at least a few basic (we're not talking Contra III or Super Star Wars here) platformers I recall generally used the same background/foreground layer order throughout most or all levels of the game.
Menus and cut scenes would probably be broken as I'm sure they would not use the same layering as the rest of the game (Even then, you have have no mechanism to tell what menu tiles belong at what depth). This is more of a experimental feature that might apply to a handful of games, and even then guaranteed to be partially broken. It's certainly not a very practical or useful feature by any means, but could be a fun one to play if the day ever came where you had nothing better to do.
New business:
Does anybody here have a 3D TV with a 2D to 3D conversion feature? What does it do if you try to play an SNES (or any console) on it in 3D? I would image the results are pretty poor, but I have no idea. I'm curious what it attempts to make 3D.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
A post-process filter like what a TV would do has better chances to result in acceptable depth reproduction, assuming there's some sort of "depth buffer" used alongside differential scrolling detection for depth computation when the picture stops moving.
This is something I've wanted to see in emulators for a long time, too. Thought I'd point out that I made a handful of SNES mockups. I just shifted layers, so everything I did should be perfectly reproduceable--though that sometimes means some awkward depths.