IDO: Difference between revisions
No edit summary |
(Expanded on stuff) |
||
Line 1: | Line 1: | ||
IDO (IRIS Development Option) by SGI was used by developers that developed games on SGI hardware (e.g. Rare, DMA). | 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 === | ==== 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 [https://github.com/decompals/ido-static-recomp here], and releases [https://github.com/decompals/ido-static-recomp/releases/tag/v0.6 here]. | The recomp project can be found [https://github.com/decompals/ido-static-recomp here], and releases [https://github.com/decompals/ido-static-recomp/releases/tag/v0.6 here]. | ||
=== Decomp === | ==== 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 Haskell as well. This probably is the first matching decomp project for Haskell. | |||
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]. |
Revision as of 03:39, 19 March 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 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 Haskell as well. This probably is the first matching decomp project for Haskell.
The matching decomp project can be found here.