User blog:RottenBlock/Rance VI Decompile Issues

If you try to decompile Rance VI, and then recompile it back right away, the game will no longer transition between map squares, it will just "jump" into the next position. This is not unlike the dummied "No Wait Mode," though it has nothing to do with it.

I originally assumed that this was some sort of problem with the EN version, partially because decompiling the EN version causes errors to show up in the code. However, after trying to decompile/recompile the JP version, I ended up with the exact same problem!

Possibilities: I've tried following along with the dungeon update and render process, but nothing seems to be going wrong? CDungeon::UpdateMove seems to move the camera along exactly as intended over a reasonable number of ticks, SACT_UPDATE is being called... I mean, the code shouldn't be "wrong" to begin with but I'm not sure how else to go about searching for a problem!
 * The decompiler is breaking something else, but god knows what or where.
 * The game is supposed to be compiled with something the decompiler doesn't have. Notably, the decompile/recompile process creates a much smaller .AIN file, but I it's just as possible that this is just the decompiler using better compression routines?

By the way, the errors in the decompiled EN file are easily fixed. The ASD code for it seems to be 100% correct, though some confusion is causing the decompiler to cough up a bad "code" version. The decompiler will unfortunately recreate the problem if you decompile it again. The fact that it coughs up the same ASD/code every time at least suggests I'm fixing the problem correctly.

void SP_CREATE_REAL(int nSP, int nWidth, int nHeight, int nR, int nG, int nB, int nBlendRate, int bShow) {	if (!SACT2.SP_Create(nSP, nWidth, nHeight, nR, nG, nB, nBlendRate)) {		return; }	if (!SACT2.SP_SetShow(nSP, bShow)) {		return; }	return; }

int SP_SET_CG_REAL(int nSP, int nCG, bool bShow) {	if (!LoadCG.SP_SetCG(nSP, nCG)) {		return 0; }	if (!SACT2.SP_SetShow(nSP, bShow)) {		return 0; }	return 1; }