Illusion of Gaia: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(→‎External Links: add randomizer link)
 
(23 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[Wikipedia:Illusion of Gaia|Illusion of Gaia]] has not yet been extensively hacked.
{{SNES| title = Illusion of Gaia
 
|image = [[Image:Illusion of Gaia Title.PNG|center]]
{{magnify|factor=1.5|text=[[Game:ROM map|ROM map]]}}
|name = ILLUSION OF GAIA USA
 
|company = Nintendo
{{magnify|factor=1.5|text=[[Game:RAM map|RAM map]]}}
|header = None
|bank = HiROM
|interleaved = No
|sram = 64 Kb
|type = Normal + Batt
|rom = 16 Mb
|country = USA
|video = NTSC
|romspeed = 120ns (FastROM)
|revision = 1.0
|checksum = Good 0xBEA9
|crc32 = 1C3848C0
|game = Illusion of Gaia
}}


==Utilities==
==Utilities==
* [http://gaiathecreator.blogspot.com/ Gaia the Creator] is an Editor for the Super Nintendo Game Illusion of Gaia.


==Hacks==
==Hacks==
* None known.
==Translations==
* None known.


==Miscellaneous==
==Miscellaneous==
// Illusion of Gaia Text Converter v 0.7 by Andrew Clunn
* Illusion of Gaia uses Quintet's standard LZSS compression algorithm.
/*
* The format of the map metadata is similar to that used in other Quintet games.
Currently this will convert some words in Illusion of Gaia into their
hex value equivalents.  This also requires the apstring class, which can be
aquired for free from the AP Central.  The final version will translate
all text into hex, as well as hex into text, and will not require the
apstring class.  If you do not understand how this could be useful for
hacking Illusion of Gaia, read up on text editing.*/
 
#include <iostream.h>
#include "apstring.h"
 
apstring toHex (apstring);
 
int main( void )
{
apstring text = "";
apstring hex = "Enter q to exit";
char charArray[256];
 
while (true)
{
cout<<hex<<"\n\n    ";
cin.getline (charArray,256);
text = "";
text += charArray;
if (text == "q")
{
break;
}
hex = toHex(text);
}
 
return 0;
}
 
apstring toHex(apstring text)
{
apstring temp = "";
for (int i = 0; i < text.length(); i++)
{
// Words
if ( // Attack
(i+5)<text.length() &&
text[i] == 'A' && text[i+1] == 't' && text[i+2] == 't' &&
text[i+3] == 'a' && text[i+4] == 'c' && text[i+5] == 'k')
{
temp += " D6  00 ";
i+=6;
if (i >= text.length()) break;
}
 
if ( // Angel
(i+4)<text.length() &&
text[i] == 'A' && text[i+1] == 'n' && text[i+2] == 'g' &&
text[i+3] == 'e' && text[i+4] == 'l')
{
temp += " D6  01 ";
i+=5;
if (i >= text.length()) break;
}


if ( // After
==Known Dumps==
(i+4)<text.length() &&
* Gaia Gensouki (J)
text[i] == 'A' && text[i+1] == 'f' && text[i+2] == 't' &&
* Illusion of Gaia (Beta)
text[i+3] == 'e' && text[i+4] == 'r')
* Illusion of Time (E) [!]
{
* Illusion of Time (F)
temp += " D6  02 ";
* Illusion of Time (G)
i+=5;
* Illusion of Time (S)
if (i >= text.length()) break;
* Illusion of Gaia (U) [!]
}
 
if ( // Aura
(i+3)<text.length() &&
text[i] == 'A' && text[i+1] == 'u' && text[i+2] == 'r' &&
text[i+3] == 'a')
{
temp += " D6  03 ";
i+=4;
if (i >= text.length()) break;
}
 
if ( // Ankor
(i+4)<text.length() &&
text[i] == 'A' && text[i+1] == 'n' && text[i+2] == 'k' &&
text[i+3] == 'o' && text[i+4] == 'r')
{
temp += " D6  04 ";
i+=5;
if (i >= text.length()) break;
}
 
if ( // Black
(i+4)<text.length() &&
text[i] == 'B' && text[i+1] == 'l' && text[i+2] == 'a' &&
text[i+3] == 'c' && text[i+4] == 'k')
{
temp += " D6  05 ";
i+=5;
if (i >= text.length()) break;
}
 
if ( // Bill:
(i+4)<text.length() &&
text[i] == 'B' && text[i+1] == 'i' && text[i+2] == 'l' &&
text[i+3] == 'l' && text[i+4] == ':')
{
temp += " D6  06 ";
i+=5;
if (i >= text.length()) break;
}
 
if ( // Crystal
(i+6)<text.length() &&
text[i] == 'C' && text[i+1] == 'r' && text[i+2] == 'y' &&
text[i+3] == 's' && text[i+4] == 't' && text[i+5] == 'a' &&
text[i+6] == 'l')
{
temp += " D6  07 ";
i+=7;
if (i >= text.length()) break;
}
 
if ( // City
(i+3)<text.length() &&
text[i] == 'C' && text[i+1] == 'i' && text[i+2] == 't' &&
text[i+3] == 'y')
{
temp += " D6  08 ";
i+=4;
if (i >= text.length()) break;
}
 
if ( // Come
(i+3)<text.length() &&
text[i] == 'C' && text[i+1] == 'o' && text[i+2] == 'm' &&
text[i+3] == 'e')
{
temp += " D6  09 ";
i+=4;
if (i >= text.length()) break;
}
// Symbols
if (text[i] == '?') temp += " 0D ";
if (text[i] == '.') temp += " 2A ";
if (text[i] == ',') temp += " 2B ";
if (text[i] == '"') temp += " 2D ";
if (text[i] == ':') temp += " 2F ";
if (text[i] == '!') temp += " 4F ";
if (text[i] == '/') temp += " 6B ";
if (text[i] == '*') temp += " 6C ";
if (text[i] == '-') temp += " 6D ";
if (text[i] == '(') temp += " 6E ";
if (text[i] == ')') temp += " 6F ";
if (text[i] == ' ') temp += " AC ";
if (text[i] == '$') temp += " CB ";
// Numbers
if (text[i] == '0') temp += " 20 ";
if (text[i] == '1') temp += " 21 ";
if (text[i] == '2') temp += " 22 ";
if (text[i] == '3') temp += " 23 ";
if (text[i] == '4') temp += " 24 ";
if (text[i] == '5') temp += " 25 ";
if (text[i] == '6') temp += " 26 ";
if (text[i] == '7') temp += " 27 ";
if (text[i] == '8') temp += " 28 ";
if (text[i] == '9') temp += " 29 ";
// Uppercase Letters
if (text[i] == 'A') temp += " 40 ";
if (text[i] == 'B') temp += " 41 ";
if (text[i] == 'C') temp += " 42 ";
if (text[i] == 'D') temp += " 43 ";
if (text[i] == 'E') temp += " 44 ";
if (text[i] == 'F') temp += " 45 ";
if (text[i] == 'G') temp += " 46 ";
if (text[i] == 'H') temp += " 47 ";
if (text[i] == 'I') temp += " 48 ";
if (text[i] == 'J') temp += " 49 ";
if (text[i] == 'K') temp += " 4A ";
if (text[i] == 'L') temp += " 4B ";
if (text[i] == 'M') temp += " 4C ";
if (text[i] == 'N') temp += " 4D ";
if (text[i] == 'O') temp += " 4E ";
if (text[i] == 'P') temp += " 60 ";
if (text[i] == 'Q') temp += " 61 ";
if (text[i] == 'R') temp += " 62 ";
if (text[i] == 'S') temp += " 63 ";
if (text[i] == 'T') temp += " 64 ";
if (text[i] == 'U') temp += " 65 ";
if (text[i] == 'V') temp += " 66 ";
if (text[i] == 'W') temp += " 67 ";
if (text[i] == 'X') temp += " 68 ";
if (text[i] == 'Y') temp += " 69 ";
if (text[i] == 'Z') temp += " 6A ";
// LOWERCASE LETTERS
if (text[i] == 'a') temp += " 80 ";
if (text[i] == 'b') temp += " 81 ";
if (text[i] == 'c') temp += " 82 ";
if (text[i] == 'd') temp += " 83 ";
if (text[i] == 'e') temp += " 84 ";
if (text[i] == 'f') temp += " 85 ";
if (text[i] == 'g') temp += " 86 ";
if (text[i] == 'h') temp += " 87 ";
if (text[i] == 'i') temp += " 88 ";
if (text[i] == 'j') temp += " 89 ";
if (text[i] == 'k') temp += " 8A ";
if (text[i] == 'l') temp += " 8B ";
if (text[i] == 'm') temp += " 8C ";
if (text[i] == 'n') temp += " 8D ";
if (text[i] == 'o') temp += " 8E ";
if (text[i] == 'p') temp += " A0 ";
if (text[i] == 'q') temp += " A1 ";
if (text[i] == 'r') temp += " A2 ";
if (text[i] == 's') temp += " A3 ";
if (text[i] == 't') temp += " A4 ";
if (text[i] == 'u') temp += " A5 ";
if (text[i] == 'v') temp += " A6";
if (text[i] == 'w') temp += " A7 ";
if (text[i] == 'x') temp += " A8 ";
if (text[i] == 'y') temp += " A9 ";
if (text[i] == 'z') temp += " AA ";
}
return temp;
}


==External Links==
==External Links==
 
* [https://github.com/DontBaguMe/IoGR The Illusion of Gaia Randomizer] - In addition to modding large parts of the game, also includes hacking notes.
[[Category:Super Nintendo games|Illusion of Gaia]]

Latest revision as of 14:16, 10 May 2020


Illusion of Gaia
Illusion of Gaia Title.PNG
Name ILLUSION OF GAIA USA
Company Nintendo
Header None
Bank HiROM
Interleaved No
SRAM 64 Kb
Type Normal + Batt
ROM 16 Mb
Country USA
Video NTSC
ROM Speed 120ns (FastROM)
Revision 1.0
Checksum Good 0xBEA9
CRC32 1C3848C0
ROM map | RAM map | Text table | Notes | Tutorials

Utilities

Hacks

  • None known.

Translations

  • None known.

Miscellaneous

  • Illusion of Gaia uses Quintet's standard LZSS compression algorithm.
  • The format of the map metadata is similar to that used in other Quintet games.

Known Dumps

  • Gaia Gensouki (J)
  • Illusion of Gaia (Beta)
  • Illusion of Time (E) [!]
  • Illusion of Time (F)
  • Illusion of Time (G)
  • Illusion of Time (S)
  • Illusion of Gaia (U) [!]

External Links