Memory Functions¶
These functions are used for directly reading/writing to Halo’s memory. Functions here are not displayed in alphabetical order for logical reasons.
Function |
Description |
---|---|
safe_read |
Enabling safe reading prevents segmentation fault when reading invalid addresses at a performance penalty. Read functions will also return nil upon failure. Don’t use this unless necessary (which is never). If you think that this is the only way you can do something, then you are probably doing something wrong. Takes: boolean Enabled |
safe_write |
Enabling safe writing prevents segmentation fault when writing to invalid addresses at a performance penalty. Write functions will also return false upon failure or true upon success. Read-only memory such as Halo’s instructions can also be written to when this is enabled, allowing one to modify Halo’s code. The game may still crash or result in undefined behavior if you write invalid instructions to Halo’s memory (e.g. your name is Devieth). Make sure you undo your changes to Halo’s instructions when your script is unloaded. Takes: boolean Enabled |
read_bit |
This function reads a bit from a byte at an address. Bits are the most basic unit of binary, and thus the possible values for bits are 0 or 1. Takes: number Address, number Bit Returns: number Value |
write_bit |
This function writes a bit to a byte at an address. Bits are the most basic unit of binary, and thus the possible values for bits are 0 or 1. Takes: number Address, number Bit, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_byte |
This function reads an unsigned 8-bit byte at an address. Possible values range from 0 to 255. Takes: number Address Returns: number Value |
write_byte |
This function writes to an unsigned 8-bit byte at an address. Possible values range from 0 to 255, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_char |
This function reads a signed 8-bit byte at an address. Possible values range from -128 to 127, and values outside of this range may overflow. Takes: number Address Returns: number Value |
write_char |
This function writes to a signed 8-bit byte at an address. Possible values range from -128 to 127, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_word |
This function reads an unsigned 16-bit integer at an address. Possible values range from 0 to 65535, and values outside of this range may overflow. Takes: number Address Returns: number Value |
write_word |
This function writes to an unsigned 16-bit integer at an address. Possible values range from 0 to 65535, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_short |
This function reads a signed 16-bit integer at an address. Possible values range from -32768 to 32767, and values outside of this range may overflow. Takes: number Address Returns: number Value |
write_short |
This function writes to a signed 16-bit integer at an address. Possible values range from -32768 to 32767, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_dword |
This function reads an unsigned 32-bit integer at an address. Possible values range from 0 to 4294967295, and values outside of this range may overflow. Takes: number Address Returns: number Value |
write_dword |
This function writes to an unsigned 32-bit integer at an address. Possible values range from 0 to 4294967295, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_int |
This function reads a signed 32-bit integer at an address. Possible values range from -2147483648 to 2147483647, and values outside of this range may overflow. Takes: number Address Returns: number Value |
write_int |
This function writes to a signed 32-bit integer at an address. Possible values range from -2147483648 to 2147483647, and values outside of this range may overflow. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_float |
This function reads a 32-bit floating point number at an address. Takes: number Address Returns: number Value |
write_float |
This function writes to a 32-bit floating point number at an address. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_double |
This function reads a 64-bit double-precision floating point number at an address. Takes: number Address Returns: number Value |
write_double |
This function writes to a 64-bit double-precision floating point number at an address. Takes: number Address, number Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_vector3d |
This function reads three 32-bit floating point numbers at an address. Takes: number Address Returns: number ValueX, number ValueY, number ValueZ |
write_vector3d |
This function writes to three 32-bit floating point numbers at an address. Takes: number Address, number ValueX, number ValueY, number ValueZ Returns: boolean Success (segfaults on failure unless safe_write is enabled) |
read_string |
This function reads an 8-bit null-terminated string at an address. Takes: number Address Returns: string Value |
write_string |
This function writes an 8-bit null-terminated string at an address. Takes: number Address, string Value Returns: boolean Success (segfaults on failure unless safe_write is enabled) |