forked from Ports/goldeneye-pc-port
PC port: Phase 1.5 done, first frames render (D38-D42)
- D38: implicit function declarations truncated pointer returns on x86-64; added port/include/pc_protos.h prototype shim (398 decls, C-only, anchored in port/shim/PR/ucode.h) + pc_netorder.c for ntohl/ntohs; build warning-clean. - D39: Globalimagetable rebasing - per-symbol offsets + GIMG_OFF() in image_bank.c (== N64 (u32)&sym incl. the 0x02000000 base); segment end markers extended to the true 0x13F8 size (CSV entry truncated by 0x930). - D40: g_ModelHitEntries pool sized for the 40-byte PC ModelHitEntry stride (was a 12KB .bss overflow clobbering is_ramrom_flag -> demo-replay SIGSEGV). - D41: release the GL context from the host main thread after videoInit so the game scheduler thread can bind it (WGL single-thread currency; this SDL2 build's MakeCurrent return value is an inverted ABI artifact). - D42: rsp.c g_gfxTaskSettingsList XOR toggle -> explicit toggle on x86-64. Boot now renders real frames ([NOTE] frame N rendered in ... us). Next blocker D43 (model-file loading ABI mismatch) documented in PCPortResearch.md section F/H; HANDOFF.md rewritten for it.
This commit is contained in:
1 parent
b3000825f2
commit
98412c281c
33 files changed
+2136
-198
No files matched your search
@@ -197,6 +197,194 @@
|
||||
// These are compile time extern constants (so not "really" const), but used the same
|
||||
// as the defines above, which is to index into ptr_animation_table.
|
||||
|
||||
#if defined(__x86_64__)
|
||||
/* D34 (docs/PCPortResearch.md): on N64 this segment links at VMA 0
|
||||
* (ge007.ld), so &ANIM_DATA_x is the record's offset within the
|
||||
* animation_data segment and game code re-bases it with
|
||||
* `(s32)&ANIM_DATA_x + ptr_animation_table`. A PE image cannot be placed
|
||||
* at a low address, so each ANIM_DATA_x is instead an lvalue at
|
||||
* g_pc_animdata_base + offset (g_pc_animdata_base is the 4GiB-aligned PE
|
||||
* image base, set by romdataInit); (s32)&ANIM_DATA_x then equals
|
||||
* PTR_ANIM_x exactly. Address-only: the record data itself is romCopy'd
|
||||
* from ROM into ptr_animation_table, and assets/animationtable_data.c is
|
||||
* not compiled into the PC image. Never dereference these lvalues. */
|
||||
extern unsigned char *g_pc_animdata_base;
|
||||
#define ANIM_DATA_empty (g_pc_animdata_base[0x0u])
|
||||
#define ANIM_DATA_idle (g_pc_animdata_base[0x1cu])
|
||||
#define ANIM_DATA_fire_standing (g_pc_animdata_base[0x144u])
|
||||
#define ANIM_DATA_fire_standing_fast (g_pc_animdata_base[0x214u])
|
||||
#define ANIM_DATA_fire_hip (g_pc_animdata_base[0x318u])
|
||||
#define ANIM_DATA_fire_shoulder_left (g_pc_animdata_base[0x3c4u])
|
||||
#define ANIM_DATA_fire_turn_right1 (g_pc_animdata_base[0x610u])
|
||||
#define ANIM_DATA_fire_turn_right2 (g_pc_animdata_base[0x814u])
|
||||
#define ANIM_DATA_fire_kneel_right_leg (g_pc_animdata_base[0x990u])
|
||||
#define ANIM_DATA_fire_kneel_left_leg (g_pc_animdata_base[0xb84u])
|
||||
#define ANIM_DATA_fire_kneel_left (g_pc_animdata_base[0xdb4u])
|
||||
#define ANIM_DATA_fire_kneel_right (g_pc_animdata_base[0x1028u])
|
||||
#define ANIM_DATA_fire_roll_left (g_pc_animdata_base[0x1334u])
|
||||
#define ANIM_DATA_fire_roll_right1 (g_pc_animdata_base[0x1578u])
|
||||
#define ANIM_DATA_fire_roll_left_fast (g_pc_animdata_base[0x17b4u])
|
||||
#define ANIM_DATA_hit_left_shoulder (g_pc_animdata_base[0x186cu])
|
||||
#define ANIM_DATA_hit_right_shoulder (g_pc_animdata_base[0x1984u])
|
||||
#define ANIM_DATA_hit_left_arm (g_pc_animdata_base[0x1a6cu])
|
||||
#define ANIM_DATA_hit_right_arm (g_pc_animdata_base[0x1b54u])
|
||||
#define ANIM_DATA_hit_left_hand (g_pc_animdata_base[0x1c9cu])
|
||||
#define ANIM_DATA_hit_right_hand (g_pc_animdata_base[0x1e40u])
|
||||
#define ANIM_DATA_hit_left_leg (g_pc_animdata_base[0x1f84u])
|
||||
#define ANIM_DATA_hit_right_leg (g_pc_animdata_base[0x2134u])
|
||||
#define ANIM_DATA_death_genitalia (g_pc_animdata_base[0x282cu])
|
||||
#define ANIM_DATA_hit_neck (g_pc_animdata_base[0x299cu])
|
||||
#define ANIM_DATA_death_neck (g_pc_animdata_base[0x2e64u])
|
||||
#define ANIM_DATA_death_stagger_back_to_wall (g_pc_animdata_base[0x2f94u])
|
||||
#define ANIM_DATA_death_forward_face_down (g_pc_animdata_base[0x30b8u])
|
||||
#define ANIM_DATA_death_forward_spin_face_up (g_pc_animdata_base[0x31dcu])
|
||||
#define ANIM_DATA_death_backward_fall_face_up1 (g_pc_animdata_base[0x32c8u])
|
||||
#define ANIM_DATA_death_backward_spin_face_down_right (g_pc_animdata_base[0x33acu])
|
||||
#define ANIM_DATA_death_backward_spin_face_up_right (g_pc_animdata_base[0x34d4u])
|
||||
#define ANIM_DATA_death_backward_spin_face_down_left (g_pc_animdata_base[0x35c8u])
|
||||
#define ANIM_DATA_death_backward_spin_face_up_left (g_pc_animdata_base[0x36d8u])
|
||||
#define ANIM_DATA_death_forward_face_down_hard (g_pc_animdata_base[0x384cu])
|
||||
#define ANIM_DATA_death_forward_face_down_soft (g_pc_animdata_base[0x39c0u])
|
||||
#define ANIM_DATA_death_fetal_position_right (g_pc_animdata_base[0x3af0u])
|
||||
#define ANIM_DATA_death_fetal_position_left (g_pc_animdata_base[0x3c10u])
|
||||
#define ANIM_DATA_death_backward_fall_face_up2 (g_pc_animdata_base[0x3d04u])
|
||||
#define ANIM_DATA_side_step_left (g_pc_animdata_base[0x3d9cu])
|
||||
#define ANIM_DATA_fire_roll_right2 (g_pc_animdata_base[0x3fa0u])
|
||||
#define ANIM_DATA_walking (g_pc_animdata_base[0x4018u])
|
||||
#define ANIM_DATA_sprinting (g_pc_animdata_base[0x4070u])
|
||||
#define ANIM_DATA_running (g_pc_animdata_base[0x40d4u])
|
||||
#define ANIM_DATA_bond_eye_walk (g_pc_animdata_base[0x4144u])
|
||||
#define ANIM_DATA_bond_eye_fire (g_pc_animdata_base[0x4298u])
|
||||
#define ANIM_DATA_bond_watch (g_pc_animdata_base[0x42c8u])
|
||||
#define ANIM_DATA_surrendering_armed (g_pc_animdata_base[0x4384u])
|
||||
#define ANIM_DATA_surrendering_armed_drop_weapon (g_pc_animdata_base[0x4504u])
|
||||
#define ANIM_DATA_fire_walking (g_pc_animdata_base[0x4574u])
|
||||
#define ANIM_DATA_fire_running (g_pc_animdata_base[0x45ccu])
|
||||
#define ANIM_DATA_fire_jump_to_side_left (g_pc_animdata_base[0x47bcu])
|
||||
#define ANIM_DATA_fire_jump_to_side_right (g_pc_animdata_base[0x4a40u])
|
||||
#define ANIM_DATA_hit_butt_long (g_pc_animdata_base[0x4ce0u])
|
||||
#define ANIM_DATA_hit_butt_short (g_pc_animdata_base[0x4f14u])
|
||||
#define ANIM_DATA_death_head (g_pc_animdata_base[0x51c4u])
|
||||
#define ANIM_DATA_death_left_leg (g_pc_animdata_base[0x540cu])
|
||||
#define ANIM_DATA_slide_right (g_pc_animdata_base[0x54a0u])
|
||||
#define ANIM_DATA_slide_left (g_pc_animdata_base[0x5554u])
|
||||
#define ANIM_DATA_jump_backwards (g_pc_animdata_base[0x5684u])
|
||||
#define ANIM_DATA_extending_left_hand (g_pc_animdata_base[0x5744u])
|
||||
#define ANIM_DATA_fire_throw_grenade (g_pc_animdata_base[0x5964u])
|
||||
#define ANIM_DATA_spotting_bond (g_pc_animdata_base[0x5d10u])
|
||||
#define ANIM_DATA_look_around (g_pc_animdata_base[0x5ef0u])
|
||||
#define ANIM_DATA_fire_standing_one_handed_weapon (g_pc_animdata_base[0x60d4u])
|
||||
#define ANIM_DATA_fire_standing_draw_one_handed_weapon_fast (g_pc_animdata_base[0x6254u])
|
||||
#define ANIM_DATA_fire_standing_draw_one_handed_weapon_slow (g_pc_animdata_base[0x637cu])
|
||||
#define ANIM_DATA_fire_hip_one_handed_weapon_fast (g_pc_animdata_base[0x6484u])
|
||||
#define ANIM_DATA_fire_hip_one_handed_weapon_slow (g_pc_animdata_base[0x6554u])
|
||||
#define ANIM_DATA_fire_hip_forward_one_handed_weapon (g_pc_animdata_base[0x6644u])
|
||||
#define ANIM_DATA_fire_standing_right_one_handed_weapon (g_pc_animdata_base[0x6738u])
|
||||
#define ANIM_DATA_fire_step_right_one_handed_weapon (g_pc_animdata_base[0x6808u])
|
||||
#define ANIM_DATA_fire_standing_left_one_handed_weapon_slow (g_pc_animdata_base[0x694cu])
|
||||
#define ANIM_DATA_fire_standing_left_one_handed_weapon_fast (g_pc_animdata_base[0x6a18u])
|
||||
#define ANIM_DATA_fire_kneel_forward_one_handed_weapon_slow (g_pc_animdata_base[0x6c18u])
|
||||
#define ANIM_DATA_fire_kneel_forward_one_handed_weapon_fast (g_pc_animdata_base[0x6d50u])
|
||||
#define ANIM_DATA_fire_kneel_right_one_handed_weapon_slow (g_pc_animdata_base[0x6f08u])
|
||||
#define ANIM_DATA_fire_kneel_right_one_handed_weapon_fast (g_pc_animdata_base[0x700cu])
|
||||
#define ANIM_DATA_fire_kneel_left_one_handed_weapon_slow (g_pc_animdata_base[0x71d0u])
|
||||
#define ANIM_DATA_fire_kneel_left_one_handed_weapon_fast (g_pc_animdata_base[0x7304u])
|
||||
#define ANIM_DATA_fire_kneel_left_one_handed_weapon (g_pc_animdata_base[0x7430u])
|
||||
#define ANIM_DATA_aim_walking_one_handed_weapon (g_pc_animdata_base[0x74a4u])
|
||||
#define ANIM_DATA_aim_walking_left_one_handed_weapon (g_pc_animdata_base[0x7514u])
|
||||
#define ANIM_DATA_aim_walking_right_one_handed_weapon (g_pc_animdata_base[0x7588u])
|
||||
#define ANIM_DATA_aim_running_one_handed_weapon (g_pc_animdata_base[0x75ecu])
|
||||
#define ANIM_DATA_aim_running_right_one_handed_weapon (g_pc_animdata_base[0x7650u])
|
||||
#define ANIM_DATA_aim_running_left_one_handed_weapon (g_pc_animdata_base[0x76b8u])
|
||||
#define ANIM_DATA_aim_sprinting_one_handed_weapon (g_pc_animdata_base[0x7714u])
|
||||
#define ANIM_DATA_running_one_handed_weapon (g_pc_animdata_base[0x777cu])
|
||||
#define ANIM_DATA_sprinting_one_handed_weapon (g_pc_animdata_base[0x77d4u])
|
||||
#define ANIM_DATA_draw_one_handed_weapon_and_look_around (g_pc_animdata_base[0x78c8u])
|
||||
#define ANIM_DATA_draw_one_handed_weapon_and_stand_up (g_pc_animdata_base[0x7aa8u])
|
||||
#define ANIM_DATA_aim_one_handed_weapon_left_right (g_pc_animdata_base[0x7c4cu])
|
||||
#define ANIM_DATA_cock_one_handed_weapon_and_turn_around (g_pc_animdata_base[0x7d04u])
|
||||
#define ANIM_DATA_holster_one_handed_weapon_and_cross_arms (g_pc_animdata_base[0x7dd8u])
|
||||
#define ANIM_DATA_cock_one_handed_weapon_turn_around_and_stand_up (g_pc_animdata_base[0x7f0cu])
|
||||
#define ANIM_DATA_draw_one_handed_weapon_and_turn_around (g_pc_animdata_base[0x7fb4u])
|
||||
#define ANIM_DATA_step_forward_and_hold_one_handed_weapon (g_pc_animdata_base[0x8080u])
|
||||
#define ANIM_DATA_holster_one_handed_weapon_and_adjust_suit (g_pc_animdata_base[0x8164u])
|
||||
#define ANIM_DATA_idle_unarmed (g_pc_animdata_base[0x8194u])
|
||||
#define ANIM_DATA_walking_unarmed (g_pc_animdata_base[0x8204u])
|
||||
#define ANIM_DATA_fire_walking_dual_wield (g_pc_animdata_base[0x8274u])
|
||||
#define ANIM_DATA_fire_walking_dual_wield_hands_crossed (g_pc_animdata_base[0x82e0u])
|
||||
#define ANIM_DATA_fire_running_dual_wield (g_pc_animdata_base[0x8340u])
|
||||
#define ANIM_DATA_fire_running_dual_wield_hands_crossed (g_pc_animdata_base[0x83a4u])
|
||||
#define ANIM_DATA_fire_sprinting_dual_wield (g_pc_animdata_base[0x8404u])
|
||||
#define ANIM_DATA_fire_sprinting_dual_wield_hands_crossed (g_pc_animdata_base[0x845cu])
|
||||
#define ANIM_DATA_walking_female (g_pc_animdata_base[0x84c4u])
|
||||
#define ANIM_DATA_running_female (g_pc_animdata_base[0x8520u])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield (g_pc_animdata_base[0x8698u])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield_left (g_pc_animdata_base[0x8800u])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield_right (g_pc_animdata_base[0x8978u])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield_hands_crossed (g_pc_animdata_base[0x8aacu])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield_hands_crossed_left (g_pc_animdata_base[0x8bf0u])
|
||||
#define ANIM_DATA_fire_kneel_dual_wield_hands_crossed_right (g_pc_animdata_base[0x8d28u])
|
||||
#define ANIM_DATA_fire_standing_dual_wield (g_pc_animdata_base[0x8e1cu])
|
||||
#define ANIM_DATA_fire_standing_dual_wield_left (g_pc_animdata_base[0x8f2cu])
|
||||
#define ANIM_DATA_fire_standing_dual_wield_right (g_pc_animdata_base[0x9084u])
|
||||
#define ANIM_DATA_fire_standing_dual_wield_hands_crossed_left (g_pc_animdata_base[0x9194u])
|
||||
#define ANIM_DATA_fire_standing_dual_wield_hands_crossed_right (g_pc_animdata_base[0x92ecu])
|
||||
#define ANIM_DATA_fire_standing_aiming_down_sights (g_pc_animdata_base[0x9444u])
|
||||
#define ANIM_DATA_fire_kneel_aiming_down_sights (g_pc_animdata_base[0x95fcu])
|
||||
#define ANIM_DATA_hit_taser (g_pc_animdata_base[0x97bcu])
|
||||
#define ANIM_DATA_death_explosion_forward (g_pc_animdata_base[0x98c8u])
|
||||
#define ANIM_DATA_death_explosion_left1 (g_pc_animdata_base[0x9a2cu])
|
||||
#define ANIM_DATA_death_explosion_back_left (g_pc_animdata_base[0x9b48u])
|
||||
#define ANIM_DATA_death_explosion_back1 (g_pc_animdata_base[0x9c4cu])
|
||||
#define ANIM_DATA_death_explosion_right (g_pc_animdata_base[0x9d5cu])
|
||||
#define ANIM_DATA_death_explosion_forward_right1 (g_pc_animdata_base[0x9e44u])
|
||||
#define ANIM_DATA_death_explosion_back2 (g_pc_animdata_base[0x9f48u])
|
||||
#define ANIM_DATA_death_explosion_forward_roll (g_pc_animdata_base[0xa094u])
|
||||
#define ANIM_DATA_death_explosion_forward_face_down (g_pc_animdata_base[0xa1b8u])
|
||||
#define ANIM_DATA_death_explosion_left2 (g_pc_animdata_base[0xa2f8u])
|
||||
#define ANIM_DATA_death_explosion_forward_right2 (g_pc_animdata_base[0xa424u])
|
||||
#define ANIM_DATA_death_explosion_forward_right2_alt (g_pc_animdata_base[0xa538u])
|
||||
#define ANIM_DATA_death_explosion_forward_right3 (g_pc_animdata_base[0xa650u])
|
||||
#define ANIM_DATA_running_hands_up (g_pc_animdata_base[0xa6b0u])
|
||||
#define ANIM_DATA_sprinting_hands_up (g_pc_animdata_base[0xa704u])
|
||||
#define ANIM_DATA_aim_and_blow_one_handed_weapon (g_pc_animdata_base[0xa8bcu])
|
||||
#define ANIM_DATA_aim_one_handed_weapon_left (g_pc_animdata_base[0xa94cu])
|
||||
#define ANIM_DATA_aim_one_handed_weapon_right (g_pc_animdata_base[0xa9dcu])
|
||||
#define ANIM_DATA_conversation (g_pc_animdata_base[0xacacu])
|
||||
#define ANIM_DATA_drop_weapon_and_show_fight_stance (g_pc_animdata_base[0xb174u])
|
||||
#define ANIM_DATA_yawning (g_pc_animdata_base[0xb2acu])
|
||||
#define ANIM_DATA_swatting_flies (g_pc_animdata_base[0xb528u])
|
||||
#define ANIM_DATA_scratching_leg (g_pc_animdata_base[0xb6b0u])
|
||||
#define ANIM_DATA_scratching_butt (g_pc_animdata_base[0xb7c8u])
|
||||
#define ANIM_DATA_adjusting_crotch (g_pc_animdata_base[0xb854u])
|
||||
#define ANIM_DATA_sneeze (g_pc_animdata_base[0xb9a8u])
|
||||
#define ANIM_DATA_conversation_cleaned (g_pc_animdata_base[0xbc40u])
|
||||
#define ANIM_DATA_conversation_listener (g_pc_animdata_base[0xbf80u])
|
||||
#define ANIM_DATA_startled_and_looking_around (g_pc_animdata_base[0xc224u])
|
||||
#define ANIM_DATA_laughing_in_disbelief (g_pc_animdata_base[0xc410u])
|
||||
#define ANIM_DATA_surrendering_unarmed (g_pc_animdata_base[0xc544u])
|
||||
#define ANIM_DATA_coughing_standing (g_pc_animdata_base[0xc838u])
|
||||
#define ANIM_DATA_coughing_kneel1 (g_pc_animdata_base[0xcb78u])
|
||||
#define ANIM_DATA_coughing_kneel2 (g_pc_animdata_base[0xce6cu])
|
||||
#define ANIM_DATA_standing_up (g_pc_animdata_base[0xd0a8u])
|
||||
#define ANIM_DATA_dancing (g_pc_animdata_base[0xd348u])
|
||||
#define ANIM_DATA_dancing_one_handed_weapon (g_pc_animdata_base[0xd54cu])
|
||||
#define ANIM_DATA_keyboard_right_hand1 (g_pc_animdata_base[0xd5e4u])
|
||||
#define ANIM_DATA_keyboard_right_hand2 (g_pc_animdata_base[0xd668u])
|
||||
#define ANIM_DATA_keyboard_left_hand (g_pc_animdata_base[0xd6f8u])
|
||||
#define ANIM_DATA_keyboard_right_hand_tapping (g_pc_animdata_base[0xd728u])
|
||||
#define ANIM_DATA_bond_eye_fire_alt (g_pc_animdata_base[0xd89cu])
|
||||
#define ANIM_DATA_dam_jump (g_pc_animdata_base[0xdbe4u])
|
||||
#define ANIM_DATA_surface_vent_jump (g_pc_animdata_base[0xdd20u])
|
||||
#define ANIM_DATA_cradle_jump (g_pc_animdata_base[0xe05cu])
|
||||
#define ANIM_DATA_cradle_fall (g_pc_animdata_base[0xe08cu])
|
||||
#define ANIM_DATA_credits_bond_kissing (g_pc_animdata_base[0xe0bcu])
|
||||
#define ANIM_DATA_credits_natalya_kissing (g_pc_animdata_base[0xe18cu])
|
||||
#define ANIM_DATA_helicopter_cradle (g_pc_animdata_base[0xe470u])
|
||||
#define ANIM_DATA_plane_runway (g_pc_animdata_base[0xe5f4u])
|
||||
#define ANIM_DATA_helicopter_takeoff (g_pc_animdata_base[0xe7c0u])
|
||||
#else
|
||||
|
||||
extern s32 ANIM_DATA_idle;
|
||||
extern s32 ANIM_DATA_fire_standing;
|
||||
extern s32 ANIM_DATA_fire_standing_fast;
|
||||
@@ -384,6 +572,7 @@ extern s32 ANIM_DATA_credits_natalya_kissing;
|
||||
extern s32 ANIM_DATA_helicopter_cradle;
|
||||
extern s32 ANIM_DATA_plane_runway;
|
||||
extern s32 ANIM_DATA_helicopter_takeoff;
|
||||
#endif /* __x86_64__ (D34) */
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user