From ea3e30a11e9eaa9bcc4f7ca4977badfa9d8363ed Mon Sep 17 00:00:00 2001 From: Ed_ Date: Thu, 13 Aug 2026 20:51:40 -0400 Subject: [PATCH] oops --- code/duffle/memory.h | 2 +- code/duffle/pad.atom.c | 2 +- code/duffle/pad.c | 2 +- code/hello_camera/hello_camera.atom.c | 12 +++++++----- code/hello_camera/hello_camera.c | 10 +++++----- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/code/duffle/memory.h b/code/duffle/memory.h index bfb1ce7..023bb82 100644 --- a/code/duffle/memory.h +++ b/code/duffle/memory.h @@ -73,7 +73,7 @@ typedef Slice_(B1); #define slice_iter(container, iter) (T_((container).ptr) iter = (container).ptr; iter != slice_end(container); ++ iter) #define slice_arg_from_array(type, ...) & (tmpl(Slice,type)) { .ptr = Array_decl(type,__VA_ARGS__), .len = Array_len( Array_decl(type,__VA_ARGS__)) } -#define slice_from_array(type, array) (tmpl(Slice,type)) { .ptr = array, .len = S_(array) / S_(type) } +#define slice_from_array(type, array) (tmpl(Slice,type)) { .ptr = array, .len = Array_len(array) } FI_ void slice_zero_(Slice s) { slice_assert(s); mem_zero(u4_(s.ptr), s.len); } #define slice_zero(s) slice_zero_(slice_to_ut(s)) diff --git a/code/duffle/pad.atom.c b/code/duffle/pad.atom.c index 4df64d1..d49ae28 100644 --- a/code/duffle/pad.atom.c +++ b/code/duffle/pad.atom.c @@ -32,7 +32,7 @@ FI_ Slice_MipsCode ac_pad_set_status(AtomBuilder_R ab, U4 r_tmp, U1 r_state, U4 * the preceding load_half_u with an instruction that doesn't read r_buttons). */ FI_ Slice_MipsCode ac_pad_store_inverted_buttons(AtomBuilder_R ab, U1 r_buttons, U1 r_pad_state) atom_dbg_skip MipsAtomComp_Proc_(ac_pad_store_inverted_buttons, ab, { nor_u( r_buttons, r_buttons, R_0), - store_half( r_buttons, r_pad_state, O_(PadState, buttons)), + store_half( r_buttons, r_pad_state, O_(PadState,buttons)), }) #pragma endregion MACs (Mips Atom Components) diff --git a/code/duffle/pad.c b/code/duffle/pad.c index ce183b3..482713f 100644 --- a/code/duffle/pad.c +++ b/code/duffle/pad.c @@ -36,7 +36,7 @@ NI_ void pad_bios_init_start(PadBiosRaw* raw0, PadBiosRaw* raw1) * $t2 = 0xB0 (BIOS B-table address) */ asm volatile( asm_words( - or_u( R_A2, R_A0, R_0), /* $a2 = $a1 = raw1 */ + or_u( R_A2, R_A1, R_0), /* $a2 = $a1 = raw1 */ add_ui( R_A1, R_0, bios_pad_buffer_size), /* $a1 = 0x22 */ add_ui( R_A3, R_0, bios_pad_buffer_size), /* $a3 = 0x22 */ add_ui( R_T1, R_0, bios_init_pad_2), /* $t1 = 0x12 */ diff --git a/code/hello_camera/hello_camera.atom.c b/code/hello_camera/hello_camera.atom.c index 2cd3ee2..da80ca6 100644 --- a/code/hello_camera/hello_camera.atom.c +++ b/code/hello_camera/hello_camera.atom.c @@ -480,9 +480,9 @@ internal MipsAtom* resolve_look_at__matrix_vector_proc(AtomArena_R aa gte_mv_to_data_r(r_tmp2, C2_IR3), nop2, /* MTC2 retirement (2 slots) */ - /* === MVMVA pass 2 EXACT C11 command: 0x4A49E012 === + /* === MVMVA pass 2 — C11 ApplyMatrixLV command === * sf=1, mx=0 (RT), v=3 (IR), cv=3. Reads RT × IR >> 12. */ - gte_cmdw_mvmva_c11_pass2_exact, + gte_cmdw_mvmva_c11_pass2, nop, /* GTE interlock */ /* === mfc2 MAC1/2/3 → r_tmp0/1/2 === */ @@ -515,17 +515,19 @@ I_ MipsAtom* resolve_look_at__trans_matrix_proc(AtomArena_R aa , U4 r_scratch , U4 r_off_ptr , U4 r_tmp0 + , U4 r_tmp1 + , U4 r_tmp2 ) MipsAtom_Proc_(resolve_look_at__trans_matrix, aa, { /* Pop look_at* from tape. */ - load_word(r_look_at, R_TapePtr, O_(Binds_ResolveLookAtPopAndTrans,look_at)), - add_ui_self( R_TapePtr, S_(Binds_ResolveLookAtPopAndTrans)), + // load_word(r_Vlook_at, R_TapePtr, O_(Binds_ResolveLookAtPopAndTrans,look_at)), + // add_ui_self( R_TapePtr, S_(Binds_ResolveLookAtPopAndTrans)), /* r_off_ptr = &off (= &scratch.eye since atom 6b overwrote eye with off). */ add_si(r_off_ptr, r_scratch, O_(ResolveLookAtScratch,eye)), nop, /* Copy off → look_at.t[] (mac_trans_matrix: m->t = v). */ - mac_trans_matrix(r_look_at, r_off_ptr, r_tmp0), + mac_trans_mt3s3s4(r_look_at, r_off_ptr, r_tmp0, r_tmp1, r_tmp2), mac_yield() }) diff --git a/code/hello_camera/hello_camera.c b/code/hello_camera/hello_camera.c index ffc1464..155b1a9 100644 --- a/code/hello_camera/hello_camera.c +++ b/code/hello_camera/hello_camera.c @@ -362,7 +362,7 @@ internal void resolve_look_at_init(void) { U4 const r_off_ptr_6c = R_T1; /* &scratch.eye (= off dst) */ U4 const r_tmp0_6c = R_T2; smem.resolve_look_at_atom_addrs[9] = resolve_look_at__trans_matrix_proc(& ab, - r_look_at_6c, r_scratch_6c, r_off_ptr_6c, r_tmp0_6c); + r_look_at_6c, r_scratch_6c, r_off_ptr_6c, r_tmp0_6c, R_T3, R_T4); /* Sanity check: arena didn't overflow. */ assert(ab.used <= ResolveLookAtArena_Size); @@ -409,7 +409,7 @@ I_ void resolve_look_at( tb_data(tb, u4_(look_at)); } tb_emit(tb, smem.resolve_look_at_atom_addrs[9]); { - tb_data(tb, u4_(look_at)); + // tb_data(tb, u4_(look_at)); } } @@ -425,9 +425,9 @@ void update(PrimitiveArena* pa, U4* ordering_buf) tb_emit_(pad_bios_snapshot); tb_data_(raw, & smem.pad_raw[0]); tb_data_(state, & smem.pad[0]); - tb_emit_(pad_bios_snapshot); - tb_data_(raw, & smem.pad_raw[1]); - tb_data_(state, & smem.pad[1]); + // tb_emit_(pad_bios_snapshot); + // tb_data_(raw, & smem.pad_raw[1]); + // tb_data_(state, & smem.pad[1]); tb_emit_(pad_input_cam); tb_data_(state, & smem.pad[0]);