• Introducing Image Options for ResetEra 2.0! Check the left side navigation bar to show or hide images, avatars, covers, and embedded media. More details at the link.

BSNES (emulator) mod allows for HD rendering of Mode7 games

Explanation on how high-res rendering works here

Krejlooc

Dreamcast Porno Party
Member
Oct 27, 2017
14,658
#55
So how does this work? Is it interpolating data to fill in more pixels, or is this data that's already present but obscured via Mode 7? Look at the Pilotwings comparison - there's a ton of detail on the landing strip that doesn't appear to exist no matter how hard you squint. Surely that can't be interpolation.
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
 
Oct 26, 2017
8,296
Madrid
#57
That's generally how low -> high resolution ends up looking

These are pretty bad example because the textures are actually higher res (from the angle, it's possible that the "low res" ground textures are being too aggressively anisotropic filtered, but it's still technically a different texture). That's not what's happening in the BSNES example, they're the exact same sprites.
 

Krejlooc

Dreamcast Porno Party
Member
Oct 27, 2017
14,658
#60
BTW when I talk about Virtual Reality, and how resolvable viewing distance is a direct function of resolution, this is the exact stuff I'm talking about. This is why I say, with the Oculus Rift DK1, you couldn't play racing games, because you couldn't see far enough in front of you. Without adequate resolution, at a certain distance, it's literally not possible to discern the subpixel scatter anymore.
 
Nov 30, 2017
1,124
#61
From wikipedia:
"Mode 7 games include the titles F-Zero, Terranigma, Pilotwings, Yoshi's Safari, Teenage Mutant Ninja Turtles IV: Turtles in Time, Super Castlevania IV, Secret of Mana, Secret of Evermore, Final Fantasy IV, Final Fantasy V, Final Fantasy VI, Super Mario RPG: Legend of the Seven Stars, DinoCity, HyperZone, Super Mario Kart, Super Mario World, Super Metroid, the Super Robot Wars series, Super Star Wars, Chrono Trigger, ActRaiser, Exhaust Heat, Skyblazer, 7th Saga, Mega Man 7, Kirby Super Star, Axelay, SOS, NCAA Basketball, NHL Stanley Cup, Al Unser Jr.'s Road to the Top, Rendering Ranger: R2, The Legend of Zelda: A Link to the Past, and Zoku: The Legend of Bishin."
I would love to see Hyperzone. That game gives me a headache usually lol
 
Mar 5, 2018
3,012
#67
I have seen a screenshot of F-Zero just a week ago and I can't believe they've actually done it. I mean you could do that with N64 games ages ago, but these were 3D games and they had real cameras so it wasn't that difficult to add, but here they seem to hijack some parts of the way the SNES render stuff and it's really cool.
 

Robin

Restless Insomniac
Moderator
Oct 25, 2017
1,675
#68
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
This makes sense! Fascinating, very cool.
 
Oct 25, 2017
1,713
#69
Another reason why I don't really care for cycle accuracy in emulation anymore. Would rather just use the real hardware. When it comes to emulation, give me "better-than-real" any day
 
Oct 27, 2017
162
#78
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
Really great breakdown dude. Gets the idea across in a really straightforward manner.
 
Oct 25, 2017
2,088
#79
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
Excellent explanation. Thank you!
 
Oct 25, 2017
1,713
#80
This is actually cycle accurate.
yes, sure, I know BSNES is cycle accurate. my point was: if i had to choose between cycle accuracy and improvements to the base game, I'd prefer the latter. having both is the ideal scenario though, cycle accurate + rewind + reduced latency + improved visuals, etc. I wonder when we'll get a classic console that can take an original cartridge and accomplish all of that?
 
Nov 21, 2017
853
#81
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
Absolute brilliant explanation. Much appreciated.
 
Oct 28, 2017
652
#83
I wonder if this could also be achieved on GBA. The ROI might be smaller because of the lower resolution, but IQ on GBA games can be really bad when mixed with Mode7.
 

Krejlooc

Dreamcast Porno Party
Member
Oct 27, 2017
14,658
#84
I wonder if this could also be achieved on GBA. The ROI might be smaller because of the lower resolution, but IQ on GBA games can be really bad when mixed with Mode7.
It'd be harder to detect and do on the GBA because it's done in software on the GBA, and thus every game would have a different way of handling the effect.

This could be done with Sega Saturn games, too.
 
Oct 26, 2017
3,572
#87
High res mode 7 has been in ZSNES since maybe the later 90s early 2000s. That said, it looks no where near as impressive as this.

Edit - Fucking typo.
 
Last edited:
Feb 2, 2018
1,400
#88
I am stupidly excited for this, wanted something like this for the longest time! Can't wait to try Mario Kart

Now we just need Super FX game res boosts, though I suspect that's a hefty challenge
 
Oct 26, 2017
2,267
#92
Tested on Super Castlevania IV.

Sadly the spiral tower doesn't work, in fact the whole effect dies. I think is because this is not technically a Mode 7 effect, but the same technical stuff Konami used on Axelay.




Kinda disappointing.
What about Street Racer? Terranigma underworld map? Super Turrican worm boss?

Street Racer is the best looking Mode 7 racing game on the system.

DKC2 comparison please :(
What? I don't think DKC2 made big use of Mode 7 if any.
 
Last edited:
Oct 27, 2017
1,172
Missoula
#93
Tested on Super Castlevania IV.

Sadly the spiral tower doesn't work, in fact the whole effect dies. I think is because this is not technically a Mode 7 effect, but the same technical stuff Konami used on Axelay.




Kinda disappointing.
I'm sure the effect is way more noticeable in the airship, since there's more scaling involved. IV and V probably get a nice airship bump too.
 
They're scaling the tiles before applying the mathematical skew and distortion that achieves rotation and scaling. There is no interpolation being done. Consider the following tile:



This is at a native resolution, where each pixel of the tile is equal to a single pixel on the screen. When we rotate at this low resolution, distortion happens because pixels in the rotation fall between boundries, but can't be represented except at pixel resolution:







By scaling the tiles in memory so they take multiple pixels, you can subdivide a single texel in the tile into sub-pixels:



This is a 1:16 scale, a single texel of the tile map takes 16 pixels on screen to represent. When I rotate the tile, the edges of the pixels now have more granularity to represent falling between boundries:





The higher you pre-scale the tiles:



The smoother the subpixel rotation:



All of the above images are done 100% with interpolation turned off.
You should have an online university for this kind of stuff. I'd pay for a subscription .