forked from Ports/goldeneye-pc-port
PC port: full compile + link milestone (ge007.x86_64.exe builds clean)
All ~235 translation units now compile and the target links under MSYS2 GCC 16 + CMake/Ninja (ninja ge007 -k 0: 236/236, zero errors). N64 build untouched; every src/ change is -DPORT-gated. Portability fixes (findings D7-D17 in docs/PCPortResearch.md section 11): - AI X-macro system: SWITCH() call sites activated to the author's hand-written byte-identical references under PORT; port/shim/ bondaicommands.h + bondconstants.h + CPPLib.h re-emit the IDO paste tricks (isSubroutine, file-record macros, generated CALL) GCC-clean. - 64-bit pointer-in-word initializers: monAnim jump targets now go through an index table resolved by the interpreter (chrai.h/propobj.c); UsetuplenZ.c credits pointer PORT-gated to 0. - IDO printf engine compiled for PC (xprintf/xlitob/xldtob) with a shadow xstdio.h resolving the _Printf prototype clash. - Host-libc gaps stubbed in port/: bcopy/bzero, __libm_qnan_f, tlbmanage*, g_ViXScales/YScales; chrObjRandom PRNG ported from .s. Asset data strategy (D16): single-file assets compiled for real (animation tables, fonts, textures, rareware logo); obseg per-file .c excluded (colliding file-local globals the N64 build isolates via per-ELF linking); 758 ROM-derived table symbols + ramrom_* + segment markers stubbed in port/src/assetstubs.c / n64stubs.c. fast3d is a no-op placeholder (port/src/gfxstub.c) until Phase 2 brings in the real software RSP. Binary not yet runnable end-to-end: ROM loading in romdata.c is still a TODO.
This commit is contained in:
1 parent
cd6cc158b6
commit
5ea46fabc1
35 files changed
+2417
-53
No files matched your search
@@ -149,7 +149,7 @@ u8 m_StandardGuard[] = {
|
||||
return to List set by SetReturnAiList - If not set will crash
|
||||
*/
|
||||
u8 m_IdleAnimations[] = {
|
||||
#if 0
|
||||
#ifdef PORT /* D7: SWITCH() is IDO-specific metaprogramming GCC cannot expand; the hand-written form below is its byte-identical expansion (see docs/PCPortResearch.md §11) */
|
||||
IFNewRandomGreaterThan(50, lblNext) /* generate annd compare random seed to see which animation to play */
|
||||
PlayAnimation(ANIM_yawning, 0, 193, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION)
|
||||
GotoNext(lblDone) /* jump to end, we're done */
|
||||
@@ -213,7 +213,7 @@ u8 m_IdleAnimations[] = {
|
||||
return to List set by SetReturnAiList - If not set will crash
|
||||
*/
|
||||
u8 m_BashKeyboard[] = {
|
||||
#if 0
|
||||
#ifdef PORT /* D7: SWITCH() is IDO-specific metaprogramming GCC cannot expand; the hand-written form below is its byte-identical expansion (see docs/PCPortResearch.md §11) */
|
||||
IFNewRandomGreaterThan(60, lblNext)
|
||||
PlayAnimation(ANIM_keyboard_right_hand1, 0, 69, 0x00, ANIM_DEFAULT_INTERPOLATION)
|
||||
GotoNext(lblDone) /* jump to end, we're done */
|
||||
@@ -232,7 +232,7 @@ u8 m_BashKeyboard[] = {
|
||||
PlayAnimation(ANIM_keyboard_right_hand_tapping, 0, 89, 0x00, ANIM_DEFAULT_INTERPOLATION)
|
||||
GotoNext(lblDone) /* jump to end, we're done */
|
||||
Label(lblDone)
|
||||
#endif
|
||||
#else
|
||||
SWITCH(SetNewRandom(),
|
||||
IFRandomGreaterThan,180,
|
||||
PlayAnimation(ANIM_keyboard_right_hand_tapping, 0, 89, 0x00, ANIM_DEFAULT_INTERPOLATION)
|
||||
@@ -247,6 +247,7 @@ u8 m_BashKeyboard[] = {
|
||||
PlayAnimation(ANIM_keyboard_right_hand1, 0, 69, 0x00, ANIM_DEFAULT_INTERPOLATION)
|
||||
BREAK,
|
||||
)
|
||||
#endif
|
||||
|
||||
Return()
|
||||
EndList()};
|
||||
@@ -587,7 +588,7 @@ u8 m_RunToBondPersistent[] = {
|
||||
|
||||
/*DO*/
|
||||
Label(lblMaybeThrowGrenade)
|
||||
#if 0
|
||||
#ifdef PORT /* D7: SWITCH() is IDO-specific metaprogramming GCC cannot expand; the hand-written form below is its byte-identical expansion (see docs/PCPortResearch.md §11) */
|
||||
IFNewRandomGreaterThan(10, lblNext)
|
||||
TRYThrowingGrenade(lblDone) /* depends on chr->grenadeprob value */
|
||||
|
||||
|
||||
Reference in new issue
Block a user