ZX FFI Reference
The ZX console provides 250+ FFI functions. Always read nethercore/include/zx.rs for accurate signatures.
FFI Categories
| Category |
Key Functions |
Find In zx.rs |
| System |
delta_time, tick_count, log |
Lines 1-100 |
| Random |
random, random_range, random_f32 |
Search "random" |
| Input |
button_held, button_pressed, left_stick_x |
Search "button" |
| Camera |
camera_set, camera_fov |
Search "camera" |
| Transforms |
push_translate, push_rotate_y, push_scale |
Search "push_" |
| Meshes |
load_mesh, draw_mesh, cube, sphere |
Search "mesh" |
| Textures |
load_texture, texture_bind |
Search "texture" |
| Materials |
material_albedo, material_mre, material_normal |
Search "material" |
| Audio |
load_sound, play_sound, music_play |
Search "sound" |
| 2D Drawing |
draw_sprite, draw_text, draw_rect |
Search "draw_" |
| Environment |
draw_env, env_gradient |
Search "env_" |
| Debug |
debug_register_*, debug_watch_*, debug_group_* |
Search "debug_" |
Init-Only Functions
Must call only during init():
set_tick_rate(rate) - 0=24fps, 1=30fps, 2=60fps, 3=120fps
set_clear_color(color) - 0xRRGGBBAA
render_mode(mode) - 0=Lambert, 1=Matcap, 2=PBR, 3=Hybrid
- All
rom_*(), load_*(), procedural mesh functions
Render-Only Functions
Call only during render():
- All
draw_* functions
camera_set(), camera_fov()
push_translate(), push_rotate_y(), push_scale()
texture_bind(), font_bind()
begin_pass(), begin_pass_stencil_write()
Asset Loading
// In init()
let tex = rom_texture_str("player");
let mesh = rom_mesh_str("character");
let sfx = rom_sound_str("jump");
let music = rom_music_str("theme");
Transform Stack
// In render()
push_translate(x, y, z);
push_rotate_y(angle_degrees);
push_scale_uniform(scale);
draw_mesh(MESH);
push_identity(); // Reset
Coordinate System
- Y-up, right-handed, -Z forward
- When yaw=0, camera looks toward -Z
- Angles in degrees for FFI functions
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: nethercore-systems-nethercore-ai-plugins-ffi-reference3description: ZX FFI Reference4---56# ZX FFI Reference78The ZX console provides 250+ FFI functions. **Always read `nethercore/include/zx.rs` for accurate signatures.**910## FFI Categories1112| Category | Key Functions | Find In zx.rs |13|----------|--------------|---------------|14| System | `delta_time`, `tick_count`, `log` | Lines 1-100 |15| Random | `random`, `random_range`, `random_f32` | Search "random" |16| Input | `button_held`, `button_pressed`, `left_stick_x` | Search "button" |17| Camera | `camera_set`, `camera_fov` | Search "camera" |18| Transforms | `push_translate`, `push_rotate_y`, `push_scale` | Search "push_" |19| Meshes | `load_mesh`, `draw_mesh`, `cube`, `sphere` | Search "mesh" |20| Textures | `load_texture`, `texture_bind` | Search "texture" |21| Materials | `material_albedo`, `material_mre`, `material_normal` | Search "material" |22| Audio | `load_sound`, `play_sound`, `music_play` | Search "sound" |23| 2D Drawing | `draw_sprite`, `draw_text`, `draw_rect` | Search "draw_" |24| Environment | `draw_env`, `env_gradient` | Search "env_" |25| Debug | `debug_register_*`, `debug_watch_*`, `debug_group_*` | Search "debug_" |2627## Init-Only Functions2829Must call only during `init()`:30- `set_tick_rate(rate)` - 0=24fps, 1=30fps, 2=60fps, 3=120fps31- `set_clear_color(color)` - 0xRRGGBBAA32- `render_mode(mode)` - 0=Lambert, 1=Matcap, 2=PBR, 3=Hybrid33- All `rom_*()`, `load_*()`, procedural mesh functions3435## Render-Only Functions3637Call only during `render()`:38- All `draw_*` functions39- `camera_set()`, `camera_fov()`40- `push_translate()`, `push_rotate_y()`, `push_scale()`41- `texture_bind()`, `font_bind()`42- `begin_pass()`, `begin_pass_stencil_write()`4344## Asset Loading4546```rust47// In init()48let tex = rom_texture_str("player");49let mesh = rom_mesh_str("character");50let sfx = rom_sound_str("jump");51let music = rom_music_str("theme");52```5354## Transform Stack5556```rust57// In render()58push_translate(x, y, z);59push_rotate_y(angle_degrees);60push_scale_uniform(scale);61draw_mesh(MESH);62push_identity(); // Reset63```6465## Coordinate System6667- Y-up, right-handed, -Z forward68- When yaw=0, camera looks toward -Z69- Angles in degrees for FFI functions7071---72> Converted and distributed by [TomeVault](https://tomevault.io/claim/nethercore-systems) — claim your Tome and manage your conversions.73<!-- tomevault:4.0:skill_md:2026-04-13 -->