; ============================================================================= ; 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 ; Golf (JU) - Pass 1 compressed primary course-stream bounds. ; End labels are exclusive and include the primary $FF terminator. CourseLayoutStream01 = $E6E7 CourseLayoutStream01_End = $E7A5 CourseLayoutStream02 = $EAAF CourseLayoutStream02_End = $EB7B CourseLayoutStream03 = $F2E8 CourseLayoutStream03_End = $F3A5 CourseLayoutStream04 = $F4BC CourseLayoutStream04_End = $F5B5 CourseLayoutStream05 = $E991 CourseLayoutStream05_End = $EA7B CourseLayoutStream06 = $EEF3 CourseLayoutStream06_End = $EFAF CourseLayoutStream07 = $F0C5 CourseLayoutStream07_End = $F1B9 CourseLayoutStream08 = $F7BC CourseLayoutStream08_End = $F8D5 CourseLayoutStream09 = $F6BA CourseLayoutStream09_End = $F78E CourseLayoutStream10 = $EFE3 CourseLayoutStream10_End = $F0B0 CourseLayoutStream11 = $EDEC CourseLayoutStream11_End = $EECB CourseLayoutStream12 = $ED09 CourseLayoutStream12_End = $EDDA CourseLayoutStream13 = $E7BA CourseLayoutStream13_End = $E89E CourseLayoutStream14 = $E8CF CourseLayoutStream14_End = $E982 CourseLayoutStream15 = $F3D3 CourseLayoutStream15_End = $F48E CourseLayoutStream16 = $EBAC CourseLayoutStream16_End = $ECD8 CourseLayoutStream17 = $F5C7 CourseLayoutStream17_End = $F6A8 CourseLayoutStream18 = $F1EA CourseLayoutStream18_End = $F2B4