diff --git a/code/hello_joypad/gen/offsets.h b/code/hello_joypad/gen/offsets.h index b08d1fc..66af86d 100644 --- a/code/hello_joypad/gen/offsets.h +++ b/code/hello_joypad/gen/offsets.h @@ -28,18 +28,18 @@ enum { atom_offset_bounds_chk_floor_f3_face_exit = _atom_offset_bounds_chk_floor_f3_face_exit, }; -// --- atom: pad_bios_snapshot (77 words) --- +// --- atom: pad_bios_snapshot (78 words) --- #define _atom_offset_snap_root_skip_disconnected 8 -#define _atom_offset_disconnected_snap_end 60 +#define _atom_offset_disconnected_snap_end 61 #define _atom_offset_case_2_id_dispatch 8 -#define _atom_offset_pending_snap_end 50 +#define _atom_offset_pending_snap_end 51 #define _atom_offset_id_dispatch_try_analog_stick 11 -#define _atom_offset_id_dispatch_snap_end 37 +#define _atom_offset_id_dispatch_snap_end 38 #define _atom_offset_try_analog_stick_try_analog_pad 12 -#define _atom_offset_analog_stick_snap_end 23 +#define _atom_offset_analog_stick_snap_end 24 #define _atom_offset_try_analog_pad_try_unsupported 11 -#define _atom_offset_analog_pad_snap_end 9 +#define _atom_offset_analog_pad_snap_end 10 enum { atom_offset_snap_root_skip_disconnected = _atom_offset_snap_root_skip_disconnected, @@ -54,14 +54,14 @@ enum { atom_offset_analog_pad_snap_end = _atom_offset_analog_pad_snap_end, }; -// --- atom: pad_apply_input (59 words) --- +// --- atom: pad_apply_input (60 words) --- #define _atom_offset_dpad_left_exit_dpad_left 6 #define _atom_offset_dpad_right_exit_dpad_right 6 #define _atom_offset_dead_zone_low_check_dead_low_active 8 #define _atom_offset_dead_zone_high_check_dead_high_active 15 -#define _atom_offset_dead_zone_skip_exit_stick 23 -#define _atom_offset_end_low_exit_stick 11 +#define _atom_offset_dead_zone_skip_exit_stick 24 +#define _atom_offset_end_low_exit_stick 12 enum { atom_offset_dpad_left_exit_dpad_left = _atom_offset_dpad_left_exit_dpad_left, diff --git a/code/hello_joypad/hello_joypad.atom.c b/code/hello_joypad/hello_joypad.atom.c index 9eece99..e276f96 100644 --- a/code/hello_joypad/hello_joypad.atom.c +++ b/code/hello_joypad/hello_joypad.atom.c @@ -493,6 +493,9 @@ atom_label(try_unsupported) /* === Case 7: Unsupported — fall through from the store_byte( R_T4, R_PadState, O_(PadState,id)), /* Fall through to snap_end. */ +atom_label(no_jump_fallthrough) + mac_yield_load(), + atom_label(snap_end) /* NOT mac_yield() — R_AtomJmp was already loaded in the BD-slot of the case-exit branch. */ mac_yield_tail(), @@ -624,6 +627,9 @@ atom_label(dead_high_active) add_u( R_T0, R_T0, R_T4), store_half( R_T0, R_FloorRot, O_(V3_S2,y)), +atom_label(no_jump_fallthrough) + mac_yield_load(), + atom_label(exit_stick) /* NOT mac_yield() — R_AtomJmp was already loaded in the BD-slot of the dead-zone/exit branch. */ mac_yield_tail(),