IDO: Difference between revisions
mNo edit summary |
AngheloAlf (talk | contribs) (Add IDO itself to list of projects using IDO) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Whilst there are many versions of IDO, at the time of writing, only 2 versions appear to have been used for N64 development; IDO 5.3 and IDO 7.1. | Whilst there are many versions of IDO, at the time of writing, only 2 versions appear to have been used for N64 development; IDO 5.3 and IDO 7.1. | ||
== Running IDO == | |||
Because IDO is a compiler written for the IRIX platform, it does not run on modern development computers. For early decomp projects like SM64 and most of OOT, IDO was run through [https://www.qemu.org/ qemu], an emulation layer. However, the overhead of qemu was slow, it required development of a separate fork of qemu, and it only worked on Linux and MacOS. | Because IDO is a compiler written for the IRIX platform, it does not run on modern development computers. For early decomp projects like SM64 and most of OOT, IDO was run through [https://www.qemu.org/ qemu], an emulation layer. However, the overhead of qemu was slow, it required development of a separate fork of qemu, and it only worked on Linux and MacOS. | ||
=== Recomp === | |||
Later on, community member Emil began working on statically recompiling IDO, which yielded a faster executable that could be run on any modern system. This project eventually became mature enough to the point that it is the main way of running IDO for most projects today. | Later on, community member Emil began working on statically recompiling IDO, which yielded a faster executable that could be run on any modern system. This project eventually became mature enough to the point that it is the main way of running IDO for most projects today. | ||
The recomp project can be found [https://github.com/decompals/ido-static-recomp here], and releases available [https://github.com/decompals/ido-static-recomp/releases | The recomp project can be found [https://github.com/decompals/ido-static-recomp here], and releases available [https://github.com/decompals/ido-static-recomp/releases here]. | ||
=== Decomp === | |||
The "holy grail" of understanding and being able to recompile a binary is to decompile it, and that holds true for IDO. An effort to decompile IDO has begun. A notable difference in this decomp compared to others is that, despite much of the compiler being written in C, there is a fair amount of [[wikipedia:Pascal_(programming_language)|Pascal]] as well. This probably is the first matching decomp project for Pascal. | The "holy grail" of understanding and being able to recompile a binary is to decompile it, and that holds true for IDO. An effort to decompile IDO has begun. A notable difference in this decomp compared to others is that, despite much of the compiler being written in C, there is a fair amount of [[wikipedia:Pascal_(programming_language)|Pascal]] as well. This probably is the first matching decomp project for Pascal. | ||
The matching decomp project can be found [https://github.com/decompals/ido-matching-decomp here]. | The matching decomp project can be found [https://github.com/decompals/ido-matching-decomp here]. | ||
== Projects using this compiler == | |||
The following is a list of known projects that use this compiler: | |||
* [[Animal Forest]], mostly IDO 7.1 | |||
* [[Banjo-Kazooie]] | |||
* [[Banjo-Tooie]] | |||
* [[Chameleon Twist]] | |||
* [[Chameleon Twist 2]] | |||
* [[IDO#Decomp|IDO Decomp]] | |||
* [[libultra]] ([[ultralib]]) | |||
* [[Mischief Makers]] | |||
* [[Pokémon Snap]] | |||
* [[Quest 64]] | |||
* [[Space Station Silicon Valley]] | |||
* [[Super Mario 64]] | |||
* [[The Legend of Zelda: Ocarina of Time]], mostly IDO 7.1 | |||
* [[The Legend of Zelda: Majora's Mask]], mostly IDO 7.1 | |||
* [[Yoshi's Story]] |
Latest revision as of 19:14, 23 September 2023
IDO (IRIS Development Option) by SGI was used by developers that developed games on SGI hardware (e.g. Rare, DMA).
Whilst there are many versions of IDO, at the time of writing, only 2 versions appear to have been used for N64 development; IDO 5.3 and IDO 7.1.
Running IDO
Because IDO is a compiler written for the IRIX platform, it does not run on modern development computers. For early decomp projects like SM64 and most of OOT, IDO was run through qemu, an emulation layer. However, the overhead of qemu was slow, it required development of a separate fork of qemu, and it only worked on Linux and MacOS.
Recomp
Later on, community member Emil began working on statically recompiling IDO, which yielded a faster executable that could be run on any modern system. This project eventually became mature enough to the point that it is the main way of running IDO for most projects today.
The recomp project can be found here, and releases available here.
Decomp
The "holy grail" of understanding and being able to recompile a binary is to decompile it, and that holds true for IDO. An effort to decompile IDO has begun. A notable difference in this decomp compared to others is that, despite much of the compiler being written in C, there is a fair amount of Pascal as well. This probably is the first matching decomp project for Pascal.
The matching decomp project can be found here.
Projects using this compiler
The following is a list of known projects that use this compiler:
- Animal Forest, mostly IDO 7.1
- Banjo-Kazooie
- Banjo-Tooie
- Chameleon Twist
- Chameleon Twist 2
- IDO Decomp
- libultra (ultralib)
- Mischief Makers
- Pokémon Snap
- Quest 64
- Space Station Silicon Valley
- Super Mario 64
- The Legend of Zelda: Ocarina of Time, mostly IDO 7.1
- The Legend of Zelda: Majora's Mask, mostly IDO 7.1
- Yoshi's Story