Centralized game state structure.
- Note
- IMPORTANT COMPILER PATTERN: Using a global struct with s16 types is the REQUIRED pattern for sprite coordinates in OpenSNES. The following patterns FAIL:
signed short s16
16-bit signed integer (-32768 to 32767)
Definition types.h:50
unsigned short u16
16-bit unsigned integer (0 to 65535)
Definition types.h:53
s16 player_y
Definition main.c:103
s16 player_x
Definition main.c:102
Per-player position state.
Definition main.c:95
This is due to a compiler quirk where separate static u16 variables generate different (broken) code compared to struct member access. See .claude/KNOWLEDGE.md for detailed documentation.
- See also
- animated_sprite example for reference implementation