Sly 2:Executable: Difference between revisions

From SlyMods
Jump to navigation Jump to search
Content added Content deleted
(Removed displaytitle)
(→‎Main loop: Added skeleton of main loop)
Line 5: Line 5:


== Main loop ==
== Main loop ==
{{Investigate|There's a lot of gaps as many of the core functions haven't been researched yet.}}
{{Empty section}}
The main game loop can be broken down as follows.

* Call an unknown function that takes a pointer to a global struct as an argument.
* <code>UpdateJoy(&g_joy)</code> – Handles [[Sly 2:Input|controller input]]
* <tt>...</tt>
* <code>MarkClockTick(&g_clock)</code> – Updates the global [[Sly 2:Clock|clock]] values
* <tt>...</tt>
* <code>if (DAT_002dd644 == 0)</code> – If the global variable at <tt>0x002dd644</tt> is zero...
** <tt>...</tt>
* Otherwise...
** <tt>...</tt>
* <code>if (DAT_002dd644 != 0)</code> – If the global variable at <tt>002dd644</tt> is not zero..
** <tt>...</tt>
* <code>CloseFrame()</code> – Finishes rendering the frame
* Increment the global frame counter, <code>g_cframe</code>.

This routine continues in an infinite loop unless <code>Exit</code> is called or a handled exception causes execution to halt, in which case you are immediately booted back to the PS2 BIOS.


== Build Strings ==
== Build Strings ==

Revision as of 02:44, 3 August 2022

SCUS_973.16 is the executable for the NTSC-U release of Sly 2: Band of Thieves. It is an ELF binary compiled for the PS2’s Emotion Engine processor.

Libraries

Main loop

The main game loop can be broken down as follows.

  • Call an unknown function that takes a pointer to a global struct as an argument.
  • UpdateJoy(&g_joy) – Handles controller input
  • ...
  • MarkClockTick(&g_clock) – Updates the global clock values
  • ...
  • if (DAT_002dd644 == 0) – If the global variable at 0x002dd644 is zero...
    • ...
  • Otherwise...
    • ...
  • if (DAT_002dd644 != 0) – If the global variable at 002dd644 is not zero..
    • ...
  • CloseFrame() – Finishes rendering the frame
  • Increment the global frame counter, g_cframe.

This routine continues in an infinite loop unless Exit is called or a handled exception causes execution to halt, in which case you are immediately booted back to the PS2 BIOS.

Build Strings

Build User america
Build Date Long 08/13/04 00:32
Build Date Short 0813.0032