code/game/game.sh
/game cyberloode$ ./game.sh
cpp: ../../qcommon/q_shared.h:110 ../g_local.h:25 ../g_main.c:24 Could not find include file "q_platform.h"
q_math.c & q_shared.c are missing in dir game.
use tools:
http://www.netwolf.free.fr/mac-qvmtools/
solution:
add -I../../qcommon to the q3lcc statement in game.sh
copy q_math.c & q_shared.c to dir game before compiling
ps: hey first bug report in my life, sure as hell sux...
Created attachment 1262[details]
includepath and directories fixed
added inlcudeDir qcommon to the q3lcc command
changed 2 file locations in the script
from code/game/q_math.c to code/qcommon/q_math.c
same for q_shared.c
Setting a QA contact on all ioquake3 bugs, even resolved ones. Sorry if you get a flood of email from this, it should only happen once. Apologies for the incovenience.
--ryan.
The QVMs are built as part of the normal build process, no external tools are necessary. Tony says that the ppc QVM compiler doesn't work, so it's better to fix this than bring in patches to external tools.
Perhaps you could determine what is fixed by the tools here http://www.netwolf.free.fr/mac-qvmtools/ and create a patch that merges the changes back to ioq3. Contact the author(s) I guess.
Do we know which part of the qvm compilation process causes the problem? Is it the '.c' to '.asm', or the '.asm's to '.qvm'? (Or is the quake3 qvm process significantly different from the trem process?)
Chances are it's q3asm. My first suspicion would be the file writes not dealing with endianness. Failing that, writing non-packed structs to file may be causing problems. It's easy enough to debug, just compare a valid QVM with the broken one and find where they differ.
Here is a comparison: (game.qvm is Lakitu's, vm/game.qvm is my compilation of it using the appropriate svn and his patch) NOTE: It looked a little different in terminal.
diff -a game.qvm vm/game.qvm
1c1
? ErC?$P?t??H$??P=x (
&
---
? rE?C$???tH??$?Pdx (
&
3399c3399
< ***g_actionPrefixg_allowActionsg_allowShareg_rankingsg_dretchPuntmaing_tagg_devmapKillerHPg_antiSpawnBlockg_minLevelToSpecMM1g_publicSayadminsg_myStatsg_privateMessagesg_minLevelToJoinTeam120g_adminTempBang_adminNameProtectg_adminSayFilterg_adminParseSayadmin.logg_adminLogadmin.datg_adming_layoutAutog_layoutsg_mapConfigsLoadedg_mapConfigs15g_shoveg_initialMapRotationg_currentMap-1g_currentMapRotationg_debugMapRotationg_deconDeadg_markDeconstruct2000g_floodMinTime5000g_floodMaxDemeritsg_chatTeamPrefixg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_unlaggedg_teamImbalanceWarningsg_alienStage3Thresholdg_alienStage2Thresholdg_alienMaxStageg_alienKillsg_alienStage40g_humanStage3Thresholdg_humanStage2Thresholdg_humanMaxStageg_humanKillsg_humanStageg_alienBuildPoints100g_humanBuildPointspmove_msecpmove_fixedg_clientUpgradeNoticeg_smoothClientsNewbie#g_newbieNamePrefixg_newbieNumberingg_maxNameChangesg_minNameChangePeriod500g_minCommandPeriodg_listEntityg_designateVotes50g_mapVotesPercent75g_suddenDeathVotePercentg_voteLimitg_allowVote70g_podiumDrop80g_podiumDistcom_bloodg_motdg_debugAllocg_debugDamageg_debugMoveg_inactivity20g_forcerespawng_weaponTeamRespawn5g_weaponrespawn3g_quadfactor1000g_knockback800g_gravity320g_speeddedicatedg_needpassg_filterBang_banIPsg_passwordg_logFileSyncgames.logg_logFileg_doWarmup10g_warmupg_teamForceBalanceg_teamAutoJoing_devmapNoStructDmgg_devmapNoGod1g_friendlyFireMovementAttacksg_friendlyBuildableFireg_retributiong_friendlyFireHumansg_friendlyFireAliensg_friendlyFireg_synchronousClientsg_suddenDeath2g_suddenDeathMode30g_suddenDeathTime45timelimitg_maxGameClients8sv_maxclientsffPsv_mapnameg_lockTeamsAtStart0g_restartedAug 23 2007gamedatebasegamenamesv_cheats%x%x%08x%08xg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_alienStage^3WARNING: unknown buildable %s
---
> ***g_actionPrefixg_allowActionsg_allowShareg_rankingsg_dretchPuntmaing_tagg_devmapKillerHPg_antiSpawnBlockg_minLevelToSpecMM1g_publicSayadminsg_myStatsg_privateMessagesg_minLevelToJoinTeam120g_adminTempBang_adminNameProtectg_adminSayFilterg_adminParseSayadmin.logg_adminLogadmin.datg_adming_layoutAutog_layoutsg_mapConfigsLoadedg_mapConfigs15g_shoveg_initialMapRotationg_currentMap-1g_currentMapRotationg_debugMapRotationg_deconDeadg_markDeconstruct2000g_floodMinTime5000g_floodMaxDemeritsg_chatTeamPrefixg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_unlaggedg_teamImbalanceWarningsg_alienStage3Thresholdg_alienStage2Thresholdg_alienMaxStageg_alienKillsg_alienStage40g_humanStage3Thresholdg_humanStage2Thresholdg_humanMaxStageg_humanKillsg_humanStageg_alienBuildPoints100g_humanBuildPointspmove_msecpmove_fixedg_clientUpgradeNoticeg_smoothClientsNewbie#g_newbieNamePrefixg_newbieNumberingg_maxNameChangesg_minNameChangePeriod500g_minCommandPeriodg_listEntityg_designateVotes50g_mapVotesPercent75g_suddenDeathVotePercentg_voteLimitg_allowVote70g_podiumDrop80g_podiumDistcom_bloodg_motdg_debugAllocg_debugDamageg_debugMoveg_inactivity20g_forcerespawng_weaponTeamRespawn5g_weaponrespawn3g_quadfactor1000g_knockback800g_gravity320g_speeddedicatedg_needpassg_filterBang_banIPsg_passwordg_logFileSyncgames.logg_logFileg_doWarmup10g_warmupg_teamForceBalanceg_teamAutoJoing_devmapNoStructDmgg_devmapNoGod1g_friendlyFireMovementAttacksg_friendlyBuildableFireg_retributiong_friendlyFireHumansg_friendlyFireAliensg_friendlyFireg_synchronousClientsg_suddenDeath2g_suddenDeathMode30g_suddenDeathTime45timelimitg_maxGameClients8sv_maxclientsffPsv_mapnameg_lockTeamsAtStart0g_restartedOct 9 2007gamedatebasegamenamesv_cheats%x%x%08x%08xg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_alienStage^3WARNING: unknown buildable %s
Could you paste the output of the following (*without* applying the patch):
xxd valid_game.qvm > valid_game.qvm.txt
xxd ppc_game.qvm > ppc_game.qvm.txt
diff -u valid_game.qvm.txt ppc_game.qvm.txt
Thanks.
Created attachment 1262 [details] includepath and directories fixed added inlcudeDir qcommon to the q3lcc command changed 2 file locations in the script from code/game/q_math.c to code/qcommon/q_math.c same for q_shared.c
Here is a comparison: (game.qvm is Lakitu's, vm/game.qvm is my compilation of it using the appropriate svn and his patch) NOTE: It looked a little different in terminal. diff -a game.qvm vm/game.qvm 1c1 ? ErC?$P?t??H$??P=x ( & --- ? rE?C$???tH??$?Pdx ( & 3399c3399 < ***g_actionPrefixg_allowActionsg_allowShareg_rankingsg_dretchPuntmaing_tagg_devmapKillerHPg_antiSpawnBlockg_minLevelToSpecMM1g_publicSayadminsg_myStatsg_privateMessagesg_minLevelToJoinTeam120g_adminTempBang_adminNameProtectg_adminSayFilterg_adminParseSayadmin.logg_adminLogadmin.datg_adming_layoutAutog_layoutsg_mapConfigsLoadedg_mapConfigs15g_shoveg_initialMapRotationg_currentMap-1g_currentMapRotationg_debugMapRotationg_deconDeadg_markDeconstruct2000g_floodMinTime5000g_floodMaxDemeritsg_chatTeamPrefixg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_unlaggedg_teamImbalanceWarningsg_alienStage3Thresholdg_alienStage2Thresholdg_alienMaxStageg_alienKillsg_alienStage40g_humanStage3Thresholdg_humanStage2Thresholdg_humanMaxStageg_humanKillsg_humanStageg_alienBuildPoints100g_humanBuildPointspmove_msecpmove_fixedg_clientUpgradeNoticeg_smoothClientsNewbie#g_newbieNamePrefixg_newbieNumberingg_maxNameChangesg_minNameChangePeriod500g_minCommandPeriodg_listEntityg_designateVotes50g_mapVotesPercent75g_suddenDeathVotePercentg_voteLimitg_allowVote70g_podiumDrop80g_podiumDistcom_bloodg_motdg_debugAllocg_debugDamageg_debugMoveg_inactivity20g_forcerespawng_weaponTeamRespawn5g_weaponrespawn3g_quadfactor1000g_knockback800g_gravity320g_speeddedicatedg_needpassg_filterBang_banIPsg_passwordg_logFileSyncgames.logg_logFileg_doWarmup10g_warmupg_teamForceBalanceg_teamAutoJoing_devmapNoStructDmgg_devmapNoGod1g_friendlyFireMovementAttacksg_friendlyBuildableFireg_retributiong_friendlyFireHumansg_friendlyFireAliensg_friendlyFireg_synchronousClientsg_suddenDeath2g_suddenDeathMode30g_suddenDeathTime45timelimitg_maxGameClients8sv_maxclientsffPsv_mapnameg_lockTeamsAtStart0g_restartedAug 23 2007gamedatebasegamenamesv_cheats%x%x%08x%08xg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_alienStage^3WARNING: unknown buildable %s --- > ***g_actionPrefixg_allowActionsg_allowShareg_rankingsg_dretchPuntmaing_tagg_devmapKillerHPg_antiSpawnBlockg_minLevelToSpecMM1g_publicSayadminsg_myStatsg_privateMessagesg_minLevelToJoinTeam120g_adminTempBang_adminNameProtectg_adminSayFilterg_adminParseSayadmin.logg_adminLogadmin.datg_adming_layoutAutog_layoutsg_mapConfigsLoadedg_mapConfigs15g_shoveg_initialMapRotationg_currentMap-1g_currentMapRotationg_debugMapRotationg_deconDeadg_markDeconstruct2000g_floodMinTime5000g_floodMaxDemeritsg_chatTeamPrefixg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_unlaggedg_teamImbalanceWarningsg_alienStage3Thresholdg_alienStage2Thresholdg_alienMaxStageg_alienKillsg_alienStage40g_humanStage3Thresholdg_humanStage2Thresholdg_humanMaxStageg_humanKillsg_humanStageg_alienBuildPoints100g_humanBuildPointspmove_msecpmove_fixedg_clientUpgradeNoticeg_smoothClientsNewbie#g_newbieNamePrefixg_newbieNumberingg_maxNameChangesg_minNameChangePeriod500g_minCommandPeriodg_listEntityg_designateVotes50g_mapVotesPercent75g_suddenDeathVotePercentg_voteLimitg_allowVote70g_podiumDrop80g_podiumDistcom_bloodg_motdg_debugAllocg_debugDamageg_debugMoveg_inactivity20g_forcerespawng_weaponTeamRespawn5g_weaponrespawn3g_quadfactor1000g_knockback800g_gravity320g_speeddedicatedg_needpassg_filterBang_banIPsg_passwordg_logFileSyncgames.logg_logFileg_doWarmup10g_warmupg_teamForceBalanceg_teamAutoJoing_devmapNoStructDmgg_devmapNoGod1g_friendlyFireMovementAttacksg_friendlyBuildableFireg_retributiong_friendlyFireHumansg_friendlyFireAliensg_friendlyFireg_synchronousClientsg_suddenDeath2g_suddenDeathMode30g_suddenDeathTime45timelimitg_maxGameClients8sv_maxclientsffPsv_mapnameg_lockTeamsAtStart0g_restartedOct 9 2007gamedatebasegamenamesv_cheats%x%x%08x%08xg_disabledBuildablesg_disabledClassesg_disabledEquipmentg_alienStage^3WARNING: unknown buildable %s