shonumi / gbe-plus

DMG/GBC/GBA emulator and experimental NDS emulator.
GNU General Public License v2.0
530 stars 80 forks source link

[Suggestion] Implement HD Mode 7 for GBA #101

Open frozenLake opened 5 years ago

frozenLake commented 5 years ago

That is, when you get around to increasing the resolution of GBA Games.

Now, before anyone claims this is impossible, do note that [https://i.redd.it/5wphk4fk1is21.png]There was a recent addition to bsnes that does this same thing(url)

Now, this actually can be split into two halves: HD Rotation, and HD Scanline effects. While Rotation will only help the GBA and DS emulation in the future, the Scanline effects may be able to be applied to the gameboy as well, Resulting in certain wavy effects to look far better with CGFX.

Its fine if this request sits around for a long time: I am patient.

shonumi commented 5 years ago

It's WIP for now. Some results from 2x sampling:

sample1

sample2

Hard to see the differences at 2x, but they're there. 3x and 4x would give the best results. Definitely doable, but very buggy atm. Needs more work.

frozenLake commented 5 years ago

So, how does it work with not full mode 7 cases, like the rotation of sprites in Sonic Advance?

ghost commented 5 years ago

Does this apply to any DS game that uses 2D effects like scaling and rotation in the future? Or it needs to be done separately.

shonumi commented 5 years ago

The DS' affine transformations are copy+paste from the GBA, so yes, it applies to the NDS as much as the GBA. However, most DS games (if any?) did not use a psuedo Mode-7 like MK:SS or F-Zero. They still did it for some sprites and backgrounds.

ghost commented 5 years ago

Chrono Trigger DS (the bike race) and possibly Kirby Super Star Ultra used them as they are ports from the SNES. CT DS used the feature for sure because i checked upscaling with Desmume and it didnt upscale them which means it uses the 2D engine for "Mode-7".

shonumi commented 5 years ago

Yeah, good catch. You'd probably only find the psuedo Mode 7 in a few other SNES ports. Most 2D games (original NDS titles) just scale/rotate sprites and a couple of BG layers from what I've seen though. The effect certainly got down played after the GBA.