; ============================================================================= ; Golf (JU) application-specific RAM aliases ; ============================================================================= ; Pass 2 names are introduced only where usage is established. RAM reused by ; unrelated subsystems remains numeric until the owning routines are audited. ; PPU/NMI infrastructure ppu_ctrl_shadow = $00 ppu_mask_shadow = $01 nmi_vector_lo = $02 nmi_vector_hi = $03 source_pointer_lo = $04 source_pointer_hi = $05 destination_pointer_lo = $06 destination_pointer_hi = $07 nmi_complete_flag = $08 ; Title/menu state title_input_mode = $09 menu_input_latch = $0A menu_selection = $0D current_hole_index = $2B ; Course overview/grid generation grid_inner_index = $6F grid_group_index = $70 ; Gameplay controller and shot-selection callback ($C5A0-$C71D) active_controller_index = $7A ; 0 selects JOY1, 1 selects JOY2 primary_action_pressed = $2E ; first serial controller bit, normalized to 0/1 directional_input_index = $30 ; serial direction position, $FF when none found directional_repeat_latch = $18 ; prevents immediate repeated club changes club_selection_index = $17 ; wraps through $00-$0D aim_angle_index = $44 ; low-nibble aim/angle phase aim_adjust_direction = $45 ; zero/increment vs nonzero/decrement direction animation_tick_counter = $8E animation_frame_index = $8F ; Gameplay sequence callback chain ($CF87-$D123) sequence_position = $32 ; mirrored into OAM Y fields $027B/$027F sequence_phase = $34 ; selects forward vs return frame tables sequence_return_complete = $35 ; set when the return bound is reached sequence_lower_bound = $1E ; lower endpoint used by the decrementing phase sequence_upper_bound = $1D ; upper endpoint used by the incrementing phase sequence_return_bound = $1F ; endpoint used by the return phase sequence_frame_index = $15 ; layout/frame selector passed to sprite refresh sequence_frame_limit = $20 ; cap applied to one forward frame-table result