PDA

View Full Version : Issue with 6.5 gig install on Dual layer DVD


Philby
04-05-2007, 03:00 AM
Hi All

Im having a bit of an issue with installing 6.5 gigs of data from SU7 off a dual layer DVD.
The Install progress bar climbs to 100% then starts again to 100%.

The program takes about 30 mins to install and this problem is really off putting.
I think that the installer is reading each layer from the DVD as 2 DVD's but im not sure.

The installer is vista ready so the setup.exe is 35 meg in size. (to stop the silly vista checks taking hours to run the setup) The rest of the files are stored externally on the DVD.
The same problem happens if all the files are in the EXE too.

Can Anyone assist me please.

pww
04-05-2007, 03:06 PM
I don't understand what's the problem exactly - only that the progress bar goes 0-100% twice, or there is more?

What's the final result - is the program installed correctly or not?

Is there any difference if you first copy the DVD to HDD and then install from HDD?

Philby
04-07-2007, 05:45 AM
To expand on my first post.

The installation progress bar does climb to 100% twice during the installation.
( Very off putting during a long install). This is the only problem with the installer.

The installation installs 100% correctly.

The installation still has the progress problem if its installed from HDD aswell as on DVD. ( so it must be to do with the size of install not the DVD)

The publish settings size was initially set to DVD (maybe only supports single layer) and is now set to custon 6.5GB still no change in progress bar.

Can anyone advise?

pww
04-08-2007, 08:28 AM
is it possible the progress bar end value to be greater than 32700+ (2^15) ?

in such case it maybe automatically restarts from 0 for the rest of
endvalue-2^15

Philby
04-08-2007, 03:22 PM
is it possible the progress bar end value to be greater than 32700+ (2^15) ?

Thanks for your posts but I need you to explain.

32700 what? files? position? pixels?

As a pointer I'm using the standard progress bar with no mods to the code. I have not modified end values. As this has never been an issue before with SF.

If this is the case however, is their a solution?

pww
04-08-2007, 04:33 PM
32700 what? files? position? pixels?
------

I don't know what exactly, you should know this - what drives the progress bar?

Acc. to SF docs, a progress bar may have an end value of 32767 (2^15) maximum.

If your progress bar displays the number of copied files for example, and this number exceeds 32767 , then, maybe, the progress bar restarts from 0 after copying 32767 files.

I'm not sure, this is just my speculaton. I've used progress bars only with setups that don't exceed 60 MB and ~1000 files.

Philby
04-11-2007, 03:10 AM
Thank-you pww for your help so far, but with all due respect I feel that I need some more help from any of the SUF7 team if anyone can spare the time.

Im having a bit of an issue with installing 6.5 gigs of data from SU7

1. The installation progress bar does climb to 100% twice during the installation.
This is the only problem with the installer.
The program takes about 30 mins to install and this problem is really off putting.

2. The installer is vista ready so the setup.exe is 35 meg in size the rest is external. The same problem happens if all the files are in the EXE too.

3.The installation installs 100% correctly.

4. The installation still has the progress problem if its installed from HDD aswell as on DVD. ( so it must be to do with the size of install not the DVD)

5. The publish settings size was initially set to DVD (maybe only supports single layer) and is now set to custon 6.5GB still no change in progress bar.

6. The installation only contains 852 files and is 6.5 gigs in size.
The project mainly contains Mpeg2 files that are transfered to the HDD from the DVD.

Please can anyone from Indego Rose Help..as I need to release this product asap.

Jason Pate
04-11-2007, 03:07 PM
You could consider using Scrolling Text progress bar during the install.

Lorne
04-12-2007, 10:41 AM
The problem likely has to do with the total size of the files being larger than the maximum value for an unsigned integer in the percentage calculation.

Since the maximum value for an unsigned integer is around 4 GB (4294967295 to be exact), the percentage reaches 100% and then starts over about two thirds of the way through your 6.5 GB installation.

The easiest solution of course would be to use a screen without a progress bar, like scrolling text progress screen. :)

A true fix would require changes to the internal code, but there might be a couple ways to perform a workaround.

One would be to replace the percentage calculation with your own, done entirely in script. For example, you could count the number of files that will be installed (using SetupData.GetFileList) and then update a counter in the On Progress event whenever e_CurrentItemText changes, and use that to set the progress bar position.

Another way would be to change the range of the progress bar to 200 or 185 or whatever (maybe use SetupData.CalculateRequiredSpace to calculate the actual range you need), and then detect when e_StagePct reaches 100, and fudge it by adding 100 to it inside On Progress afterwards.

Basically just set a flag (um, set a variable to true) when it reaches 100, and add 100 to the value in e_StagePct whenever that flag is set.

On Preload:
-- set Progress Bar range to something higher than 100 here
-- maybe use SetupData.CalculateRequiredSpace
-- and the maximum value for an unsigned integer (4294967295)
-- to calculate a better total "percent"
-- oh, and initialize the flag variable too:

bStagePctOverride = false;

On Progress:
-- watch for 100%
-- note: might need to leave a little extra room, e.g. check for > 98% or whatever, depends how things go
if e_StagePct == 100 then
bStagePctOverride = true;
end

if bStagePercentOverride then
-- update the progress bar
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, e_StagePct + 100);
else
-- update the progress bar
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, e_StagePct);
end

If the On Progress never gets called when e_StagePct is exactly 100, you could do something like this instead:

-- assumes you set nMaxPercent to the new range you gave the progress bar
if (e_StagePct > nMaxPercent - 100) then
bStagePctOverride = true;
end

if bStagePercentOverride and (e_StagePct + 100 <= nMaxPercent) then
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, e_StagePct + 100);
else
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, e_StagePct);
end

I haven't tested that and it's just off the top of my head, but it should give you some ideas for a workaround.

In any case I've submitted a bug for this: #15210

Philby
05-01-2007, 04:29 AM
Sorry Ive not been about for a few weeks, but thanks for the reply.

I will give this a whirl and see what happens. At the moment the project has been released with the scrolling text window, But I would like to use the progress bar.

Thanks again.