EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
1.01k stars 191 forks source link

Custom Feature: SNES style mode 7 map support #2670

Open fmatthew5876 opened 3 years ago

fmatthew5876 commented 3 years ago

I would like to add a feature which allows us to render maps in mode 7 style like old snes games. This would be implemented as a set of mode7 parameters in the RPG::Map and modifiable by editor.

Features:

Examples:

Ogre Battle SNES--Ogre Battle  The March of the Black Queen_Dec7 17_37_36

Final Fantasy 6 final fantasy vi world map screen ffviairship

Romance of the Three Kingdoms IV sefa60900

Tales of Phantasia 53197-tales-of-phantasia-snes-screenshot-world-map-3d

Treasure Hunter G huntergshot02

Soeufans commented 3 years ago

Hello!!

Only maps?

What about the parrallax backdrop?

Im using parallax mapping, will the pictures be available for this feature?

Thanks for your great work!!

Ghabry commented 3 years ago

What mode 7 defines is a rotation matrix (Affine transformation).

This is possible in software with pixman but only makes real sense with GPU acceleration imo because you can do it in Full HD or 4k.

Mode 7 looks ugly on 320x240. What emulators do is render in full hd or higher then the mode 7 looks much better. See this video: https://youtu.be/0gE35yPt4oc and this https://youtu.be/bijiVafeMsg

carstene1ns commented 3 years ago

This looks like we need to decouple the actual layers (e.g. background, events). With this additional things would be possible, for example rendering in 3D on the 3DS, which is done by shifting the upper (event) layer to the right.

fmatthew5876 commented 3 years ago

What mode 7 defines is a rotation matrix (Affine transformation).

This is possible in software with pixman but only makes real sense with GPU acceleration imo because you can do it in Full HD or 4k.

Mode 7 looks ugly on 320x240. What emulators do is render in full hd or higher then the mode 7 looks much better. See this video: https://youtu.be/0gE35yPt4oc and this https://youtu.be/bijiVafeMsg

Is it really just affine transformation? Some of those examples look like they have curvature added as well.

fdelapena commented 3 years ago

Is it really just affine transformation? Some of those examples look like they have curvature added as well.

The horizon curvature could be handmade to keep it as an illusion while the perspective still being plain and cheap to process, even for platforms without GPU.

Ghabry commented 3 years ago

Mode7 is done by altering some registers so if you change them while rendering you can make more fancy effects

gadesx commented 3 years ago

There's a dynrpg plugin and looks good, but with more settings could be customizable. Dynmodeseven

Tayruu commented 3 years ago

Mode 7 looks ugly on 320x240. What emulators do is render in full hd or higher then the mode 7 looks much better. See this video: https://youtu.be/0gE35yPt4oc and this https://youtu.be/bijiVafeMsg

I feel like if this feature was implemented, devs should be able to define if it's rendered in "HD" or not. Some of these examples look overly smooth and artificial to me personally, and I would probably stick with non-HD myself, or at least prefer a limited internal resolution.

SasikaAT commented 2 years ago

Wow, would be great to have such a Mode7 effect on the world map.

Mode 7 looks ugly on 320x240. What emulators do is render in full hd or higher then the mode 7 looks much better.

Not a big fan of the HD-Mode7, looks wrong in my eyes. I prefer it when all pixels have the same size. But an optional HD mode for those who prefer it would be nice, too.

LeoKids commented 2 years ago

This is not a snes emulator so why