private void UpdateJAL(byte[] file, uint jalCmd, int position) { uint jalImmediate = ASM.GetJalImmediate(jalCmd); uint fullAddress = jalImmediate + 0x80000000; // Convert to new address. uint offset = (uint)(fullAddress - _BASERAM); uint newAddress = (uint)(_baseRam + RomFile.CurrentFileOffset + offset); uint newJal = ASM.BuildNewJalCommand(newAddress); byte[] JalArray = BitConverter.GetBytes(newJal); if (BitConverter.IsLittleEndian) { Array.Reverse(JalArray); } if ((jalImmediate >= (_BASERAM - 0x80000000)) && (jalImmediate <= (_upperRAM - 0x80000000))) { file[position] = JalArray[0]; file[position + 1] = JalArray[1]; file[position + 2] = JalArray[2]; file[position + 3] = JalArray[3]; } }