Fall Further 050 Bug Report Thread

Attachments

  • Civ4BeyondSword 2009-03-25 14-23-47-04.jpg
    Civ4BeyondSword 2009-03-25 14-23-47-04.jpg
    70.2 KB · Views: 114
Did you ever install a patch, or just installed Fall Further itself? Especially with you saying that Svartalfar was the problem I am suspecting you do not have a patch. Initial release had an art issue with Svartalfar settlers. So please download and install Patch J
 
I am using .40v and I think it was the race, I just loaded random and race and got Kuriotates and the game did not crash when I placed the settler. I was playing Svartalfar when it crashed.

You must patch FF. This was a bug of the initial release of FF 0.50.
 
I am getting a persistant CTD whenever I finish researching Infernal Pact. I get the message about Hyboreum being founded and then the game hangs for a second and then CTDs.

I have the current version of both FFH2 (y) anf FF (j) installed.

::EDIT:: I have included the save game file.

I have also changed techs and ended the turn (not finishing Infernal Pact) and the game progresses just fine. I'm pretty sure the CTD is tied to either the Infernal Pact tech or, more likely to my mind, tied to the emergence of the Hyboreum (sp?) with the completion of Infernal Pact.

More thoughts. Could it be the FFH2 patch making things screwey? I didn't see anywhere in the FF install instruction about patching FFH2. I just assumed you needed the current version of FFH2. Should I reinstall FF over a vanilla FFH2?
 

Attachments

Ok yeah I spaced on patch "j". Down loaded and it's not crashing when I popp a settler. Thanks for the help.
 
More info.

I have completely reinstalled and patched civ 4 and bts.

I have completely reinstalled ffh2 without patching.

Reinstalled and patched ff. Started up the saved game and still got ctd when completing Inferrnal Pact.
 
Started up the saved game and still got ctd when completing Inferrnal Pact.

I downloaded your save and got the same issue. Bleh! That's not good...

As a sidenote, as the game I'm playing in MP creeps up in the turns (I think we're about to 300 turns, which is a new record for a Fall Further game) some old problems are creeping up... I'm starting to crash again. Generally, I'm fine until I have to open a civic menu or an AI decides to contact me. It's that same sort of "open menu, explode game" issue I was having. I think the reason the game did(and does again :( ) crash during the turnswap is because the AI contacts you, that's loaded into memory, then you explode due to memory leak overrun issues.. Every time there's been a between turn period I explode on, when I load the autosave for that turn, there's some AI harassing me about something stupid.
 
I think the reason the game did(and does again :( ) crash during the turnswap is because the AI contacts you, that's loaded into memory, then you explode due to memory leak overrun issues.. Every time there's been a between turn period I explode on, when I load the autosave for that turn, there's some AI harassing me about something stupid.

I have tried playing without finishing Infernal Pact for upwards of twenty turns now (just to see if maybe too much was happening in one end turn phase) and still ctds when I do finally try and complete Infernal Pact.
 
Oh no, my problem is unrelated, I think, to yours.
 
I am having problems conquering cities

I am playing a game as Faeryl of Svartalfar and I am running Council of Esus as religion.
I am in a war started by Tasunke and I killed all the guys in one of his cities but my hunters and swordsmen would enter the city but not conquer it. Even adepts could enter the city. I have the CoE shrine and I have tried using units without the shrous (or whatever it is that lets them be visible in your land) and of course these units are not masked (ie they are not HN)

THe only unit that actually triggered the city capture was Gibbon Goetia but only after he summoned a mistform.

I guess I am either confused about some kind of game mechanism that I am unaware of, or it's a bug.


Also I am curious regarding forest stealth. Can it be removed such that the unit can defend if an enemy unit enters its tile
 
The crash is a division by zero error, I haven't checked just yet to see precisely where it happens, but I know which function so it shouldn't be hard to fix for next patch :)

MrPopov: So you have non-invis, non-HN units enter the city, you are at war with the city, and it won't capture for you? Are you coming from within your own territory (cultural pressure allows you to own a tile adjacent to them), or just a normal "I am in your land, attacking your city" scenario?
 
The crash is a division by zero error, I haven't checked just yet to see precisely where it happens, but I know which function so it shouldn't be hard to fix for next patch :)

I'd assume you're referring to the Summon Hybie crash, not the one I'm having when AIs bother me and the game drops?
 
I get a repeatable crash. After debugging for quite some time, it appears it happens in bool CvDiplomacyResponse::getAttitudeTypes(). Memory could not be read(it appears the register ecx in mov eax,[ecx+10h] is pointing to 0...
I went there and I saw there is a couple of asserts to verify that i is between 0 and NUM_OF_ATTITUDE_TYPES. The other version of the method, though
bool *CvDiplomacyResponce::GetAttitudeTypes(), does not check if the pointer it is about to return is NULL...It could be that somehow this was NULL...But, I do not see why it wouldn't return if that was the case...More propable is that it has been attached an invalid address other than NULL. Anyway, I hope my attempts in further helping, other than just posting a save game, help a bit.

My debugger may not be reliable, though(I use IDA pro, free edition).
 
Thanks a lot for this mod, very interesting.

But it seems to be a problem with the size/scale of some dwarven units : Dwarven slingers and Druids especially. In FF2, they are not so "big" :)...
 
I get a repeatable crash. After debugging for quite some time, it appears it happens in bool CvDiplomacyResponse::getAttitudeTypes(). Memory could not be read(it appears the register ecx in mov eax,[ecx+10h] is pointing to 0...
I went there and I saw there is a couple of asserts to verify that i is between 0 and NUM_OF_ATTITUDE_TYPES. The other version of the method, though
bool *CvDiplomacyResponce::GetAttitudeTypes(), does not check if the pointer it is about to return is NULL...It could be that somehow this was NULL...But, I do not see why it wouldn't return if that was the case...More propable is that it has been attached an invalid address other than NULL. Anyway, I hope my attempts in further helping, other than just posting a save game, help a bit.

My debugger may not be reliable, though(I use IDA pro, free edition).

I think your debugger's lying to you :)

I've tracked the problem down to CvPlot.cpp, line 3874: the code assumes that the FindCity() function will come back with a valid pointer. Here's my patch:

Code:
CvCity* pCity = GC.getMapINLINE().findCity(getX_INLINE(), getY_INLINE(), NO_PLAYER, eTeam, false, false, NO_TEAM, NO_DIRECTION, 0, true);
FAssert(pCity != NULL);
if (pCity != NULL)
{
	if (plotDistance(getX_INLINE(), getY_INLINE(), pCity->getX(), pCity->getY()) < 10)
	{
		if (pCity->plot()->getNumDefenders(pCity->getOwner()) < pCity->AI_minDefenders()/2)
		{
			return false;
		}
	}
}

That being said, while this patch fixes the crash, there could be something subtle I'm missing here - the code is searching for a city match, but it only discovers settlements for the given player team, and ignores them all. I'm not sure if that's the intent here... maybe someone more familiar with CvPlot::isRevealedGoody() can doublecheck (Xien?).
 
I am getting a persistant CTD whenever I finish researching Infernal Pact. I get the message about Hyboreum being founded and then the game hangs for a second and then CTDs.

I have the current version of both FFH2 (y) anf FF (j) installed.

::EDIT:: I have included the save game file.

I have also changed techs and ended the turn (not finishing Infernal Pact) and the game progresses just fine. I'm pretty sure the CTD is tied to either the Infernal Pact tech or, more likely to my mind, tied to the emergence of the Hyboreum (sp?) with the completion of Infernal Pact.

More thoughts. Could it be the FFH2 patch making things screwey? I didn't see anywhere in the FF install instruction about patching FFH2. I just assumed you needed the current version of FFH2. Should I reinstall FF over a vanilla FFH2?


There's two crashes here:

First one's in CvPlayerAI::AI_calculateUnitAIViability()

Here's my patch -

Code:
	for (int iI = 0; iI < GC.getNumUnitClassInfos(); iI++)
	{
		UnitTypes eLoopUnit = (UnitTypes)GC.getUnitClassInfo((UnitClassTypes)iI).getDefaultUnitIndex();
/*************************************************************************************************/
/** Better AI                      03/18/09               Written: jdog5000  Imported: Notque   **/
/**                                                                                             **/
/** Seems like the call before this one should be checking for our UUs instead of the default	**/
/** Then of course we need to not do any of this at all if we don't have any unit for this class**/
/**                                                                                             **/
/**				More Units from cities with mil prod bonuses								    **/
/*************************************************************************************************/
/**								---- Start Original Code ----									**
		CvUnitInfo& kUnitInfo = GC.getUnitInfo((UnitTypes)iI);
/**								----  End Original Code  ----									**/
		FAssert(eLoopUnit > NO_UNIT);
		// Mootpoint 03/26/09 - fall back to a safe value if the default unit index is invalid
		if (eLoopUnit == NO_UNIT)
		{
			eLoopUnit = (UnitTypes)iI;
		}
		CvUnitInfo& kUnitInfo = GC.getUnitInfo(eLoopUnit);

Crash number two is in CvCityAI.cpp, line 7927 (this one's the div by zero). Proposed patch:
Code:
iSlaveryValue *= iConsumtionPerPop * 2;
iSlaveryValue /= std::max(1, iConsumtionPerPop * 2 + std::max(0, iAdjustedFoodDifference));
 
Back
Top Bottom