 |
EXECUTE_IN_GHOST_SPACE |
Sometimes it is necessary to execute a program in the so-called "ghost space",
which is the area of addresses above 0x40000. If you need to know more about
this, read the launcher FAQ entry. If you
put
#define EXECUTE_IN_GHOST_SPACE
at the beginning of your program, the program will automatically be
executed in the ghost space. This causes an overhead of about 130 bytes.
More precisely, it will relocate itself in the ghost space (by
applying EX_patch to itself with the
start address increased by 0x40000) before entering the ghost space.
Everything will be performed before anything else. Therefore, there
are no limitations introduced by this directive, whereas the older
enter_ghost_space function
was very limited and hard to use.
EXECUTE_IN_GHOST_SPACE
allows the user to simply call one
program from another, without worrying about the AMS protections which
usually prevent this.