Files
pikuma_ps1/code/hello_joypad/hello_joypad.h
T
2026-08-02 21:58:57 -04:00

50 lines
1.1 KiB
C

#ifdef INTELLISENSE_DIRECTIVES
# pragma once
# include "duffle/dsl.h"
# include "duffle/math.h"
# include "duffle/gp.h"
#endif
enum {
PrimitiveBuff_Len = 4096,
OrderingTbl_Len = 2048
};
#define ScreenRes_X 320
#define ScreenRes_Y 240
#define ScreenZ 320
#define ScreenRes_CenterX (ScreenRes_X >> 1)
#define ScreenRes_CenterY (ScreenRes_Y >> 1)
enum {
fp_one = (1 << 12),
};
#define v3s4_fp_one() v3s4(fp_one, fp_one, fp_one)
#ifdef INTELLISENSE_DIRECTIVES
# include "duffle/pad.h"
#endif
/* ============================================================
* Raw SIO0 pad subsystem (raw_sio_pad_poll_20260802)
* ============================================================ */
typedef Struct_(Binds_PadSioStep) {
PadState* state0;
PadState* state1;
U4 sio_base_addr0;
U4 sio_base_addr1;
};
typedef Struct_(Binds_PadApplyInput) {
PadState* state;
V3_S2* cube_rot;
V3_S2* floor_rot;
};
/* Populates smem.pad_sio_init with the two PadState pointers and the
* KSEG1 SIO0 base. The caller (main()) runs this once at boot before
* the first tb_emit(pad_sio_init). */
void pad_sio_init_setup(PadSioInit* init, PadState* s0, PadState* s1);