EXECUTE_IN_GHOST_SPACE

Previous Advanced Options of TIGCC Next

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.