Author Topic: [XP] H-Mode7 (by MGCaladtogel)  (Read 12073 times)

Offline Rudria

  • Trained Member
  • *
  • Posts: 15
  • LV: 0
  • Gender: Male
  • I am Handsome !!! isn't it ???
    • View Profile
[XP] H-Mode7 (by MGCaladtogel)
« on: June 13, 2011, 10:29:10 AM »
Authors: MGCaladtogel
Version: 1.2.1
Type: 3D Map Display
Key Term: Custom Environment System

Important Notes
I did NOT make this!

This engine is an alternative to the NeoMode7 engine.
While the purpose of the NeoM7 is to emulate the Mode7 feature of the NES, this new engine go further in the 3D feeling.
The main cause of negative feedbacks regarding the NeoM7 is that the map seems too flat, like a paper sheet.
The HM7 engine is a response to these critics. It handles heightmaps so that the rendered map is embossed.
The relief is not very pronounced, so this engine is more suited for worldmaps-like maps, where graphical elements are small.
The script might be hard to master, because it requires specific graphics and it is important to understand how the elements are drawn to create them properly.
Therefore this script is not suited for RM beginners.


  • more 3D, more lag (don't even try this engine if you find the NeoM7 too laggy)
  • adjustable slant angle
  • 360┬░ rotation
  • zoom in, zoom out
  • animated autotiles
  • probably a throng of bugs since it's the first version
  • works with 200 * 200 tiles┬▓ maps (HM7 won't activate if the width or height exceeds 200 tiles)





The script can be found in the demo.


What is required :
- the script (above main, as usual)
- the file MGC_Hmode7.dll at the root of your project
- specific autotiles, tilesets, textures and heightmaps

To activate the H-Mode7, you must add [HM7] to the map name.
The following tags are optionnal :
[HMAPXXX] : XXX is the identifier of the ground heightmap that must be used for the map
[#XX] : XX is the angle of slant (in degree) : 0 -> 80, 0 by default
[%XXX] : XXX is the angle of rotation (in degree) : 0 -> 359, 0 by default
[X] : enable horizontal map looping
[Y] : enable vertical map looping
[DA] : deactivate animated autotiles
[AFXXX] : XXX is the animations period for animated autotiles : 1 -> 999, 20 frames by default
[DL] : deactivate automatic lighting effects
[RX] : X = 1 -> high resolution (default)
X = 2 -> medium resolution (to increase performance)
X = 3 -> low resolution (to drastically increase performance)
[CX] : X = 0 -> no vertical offset (default)
X = 1 -> vertical offset so that the camera do not cut the ground at the bottom of the screen.
Should be used only when the horizon is visible.
X = 2 -> vertical offset so that the camera do not cut the map at the bottom of the screen.
Should be used only when the horizon is visible.
[DF] : deactivate the filter (better quality, drastically decrease performance)
[HF] : refresh the map every two frames (less fluent, increase performance)
[E] (V.1.2.1) : edmhotta's request to have less cut elements at the bottom of the screen. May cause massive lag, especially when rotating.
[DB] (V.1.2.1) : cut elements at the bottom of the screen are not filled with black (but they're still cut).

You can also associate a keyword to a configuration at the beginning of the script.
For example, with the following command :
HM7::Maps_Settings["MyKeyword"] = ["#60", "X", "HMAP3"]
if a map name contains "MyKeyword", then the HM7 will be activated, with a slant angle of 60 degrees, horizontal looping,
and using the picture "Heightmap_003" as ground heightmap.

- To set a new angle of slant (0~80) :
$scene.hm7_set_alpha(new angle)
To slide progressively into a new angle of slant :
$scene.hm7_to_alpha(new angle, speed)
To increase/decrease the slant :

- To set a new angle of rotation (0~379) :
$scene.hm7_set_theta(new angle)
To slide progressively into a new angle of rotation :
$scene.hm7_to_theta(angle, speed, dir)
To increase/decrease the angle of rotation :

- To set a new zoom level (in percentage - default = 100) :
$scene.hm7_set_zoom(new value)
To slide progressively into a new zoom level :
$scene.hm7_to_zoom(value, speed)
To increase/decrease the zoom level :

- To change the horizon light fading :
$scene.hm7_set_fading(red, green, blue, flag)
flag = 1 : the color determined by (red, green, blue) will be added to the horizon line
flag = 0 : the color determined by (red, green, blue) will be substracted to the horizon line

- To set the altitude of an event :
add a comment in the commands list with : "Altitude X", where X is the
height value ("Altitude 64" will draw the event 64 pixels above its original position)
- To set the altitude of the player :
use : $game_player.altitude = X
- To have a fixed altitude for an event (not dependant on the maps heights) :
add the comment "Floating" in the commands list
- To have a fixed altitude for the player :
use : $game_player.floating = true


Most probably not compatible with special map display customizations that affect sprites.

Credits and Thanks

  • MGCaladtogel for The script
  • DerVVulfman for his help file about textures

Author's Notes

For the moment there is only a handful of tileset elements compatible with this script.
It would be really great if anyone that creates such elements decides to share them.
Hey, My picture is NOT cloud, it real my face.
(before My face burned)

Offline Ryex

  • Arctic Bird of Programming
  • Global Moderator
  • Chaos Ultimate
  • ****
  • Posts: 5131
  • LV: 197
  • Gender: Male
  • Wants to write a compiler for fun
    • View Profile
Re: [XP] H-Mode7 (by MGCaladtogel)
« Reply #1 on: June 13, 2011, 07:54:24 PM »
Truly an impressive script. though personalty I think that it just a bit too much trouble to go though.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.

DropBox, the best free file syncing service there is.
(click to show/hide)