• To celebrate the release of Halo: The Master Chief Collection on Steam, Xbox Games Studios has provided 5 Steam copies of the game and 5 Xbox One copies of the game! We will be giving these away in the Gaming Giveaways |OT|. Some Steam copies will also be given away to the PC Gaming Era community.
  • An old favorite feature returns: Q&ERA is back! This time we'll be collecting questions for Remedy Entertainment, makers of Max Payne, Alan Wake, Quantum Break, and Control. Members can submit questions for the next 3 days, 15 hours, 7 minutes, 39 seconds. Submissions will close on Dec 12, 2019 at 12:00 AM.

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

1-D_FE

Member
Oct 27, 2017
3,096
That runway in Pilotwings in nuts.

Goes from a couple of random white squares scattered about into an actual runway.
 
Explanation on how high-res rendering works here

Krejlooc

Indie Game Dev
Verified
Oct 27, 2017
20,101
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.
 

Weltall Zero

Member
Oct 26, 2017
10,915
Madrid
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

Indie Game Dev
Verified
Oct 27, 2017
20,101
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.
 

higemaru

Member
Nov 30, 2017
1,869
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
 

Hayama Akito

Member
Oct 25, 2017
712
Update: the spiral tower in Super Castlevania IV works. You need to disable "Optimize pseudo 3D perspectives". This option is part of BSNES, it is not related to this mod.

 

SweetVermouth

Member
Mar 5, 2018
4,096
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
Member
Oct 25, 2017
2,106
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.
 

chanunnaki

Banned
Oct 25, 2017
1,783
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
 

LewieP

Member
Oct 26, 2017
8,782
I'd love to see someone eventually get Star Fox in HD. Maybe even remove framerate caps without speeding up the game.
 

Alo81

Member
Oct 27, 2017
209
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.
 

TheOMan

Avenger
Oct 25, 2017
2,851
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!
 

chanunnaki

Banned
Oct 25, 2017
1,783
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?
 

Eon

Member
Nov 21, 2017
1,326
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.
 
Apr 10, 2018
3,736
The F-Zero stuff is crazy, I though that was an attempt at 3d depiction people(on bleachers or whatever) along the track. Shame I don't really mess with emulation, I want to try out Final Fantasy 6 with this.
 

Niosai

Member
Oct 28, 2017
1,091
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

Indie Game Dev
Verified
Oct 27, 2017
20,101
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.
 

Cow Mengde

Member
Oct 26, 2017
4,990
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:

Jazzem

Member
Feb 2, 2018
1,653
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
 

Celine

Member
Oct 26, 2017
2,948
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:

TheZynster

Member
Oct 26, 2017
6,585
would love to see the two breath of wild titles with this. The overworld maps should get a decent bump in clarity as well as the battlefields.
 

Reticon6

Banned
Oct 19, 2018
177
10,000m under surface level
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 .