Sly 1:Executable: Difference between revisions
Added infobox
TheOnlyZac (talk | contribs) (→Game loop: Tweaked main game loop) |
TheOnlyZac (talk | contribs) (Added infobox) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1:
{{Infobox file
|name=SCUS_971.98
'''SCUS_971.98''' is the [[executable]] for {{Sly 1}}. It is an ELF binary compiled for the PS2’s [[Wikipedia:Emotion Engine|Emotion Engine]] processor. The compiler is GCC v2.9-ee-991111b.<ref>Based on strings found in the May 2002 demo build</ref>▼
|type=MIPS r5900 ELF
}}
▲'''SCUS_971.98''' is the [[executable]] for {{Sly 1}}. It is an ELF binary compiled for the PS2’s [[Wikipedia:Emotion Engine|Emotion Engine]] processor. The compiler is
== Libraries ==
Line 38 ⟶ 42:
* '''libipu 2400''' – Image data Processor (IPU) library<ref name=":1" />
== Initialization and main loop ==
=== _start ===
The entry point for the executable is <code>_start</code>, which is provided by the PS2 SDK's <code>crt0.s</code>. It sets up the main thread, initializes the main thread's heap, and calls <code>main</code>.
=== main ===
The <code>main</code> function takes two parameters, <code>int cphzArgs</code> (the number of arguments) and <code>char** apchzArgs</code> (an array of arguments), which it stores as the the global variables <code>g_cphzArgs</code> and <code>g_apchzArgs</code> respectively. It calls <code>__main</code> and <code>Startup</code> to initialize the game engine, then begins the main loop.
====
<code>main</code>
==== Startup ====
<code>Startup</code> begins by calling <code>SetPhase</code>, setting <code>g_phase</code> to <code>PHASE::Startup</code>. It then iterates over an array of function pointers, called <code>StartupSampler</code>, and calls each one. The startup sampler includes the startup functions for many game subsystems, such as DMA, Thread, Codes, Screen, and Clock, and more.
=== Game loop ===
|