Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

Reply
 
Thread Tools Display Modes
  #1  
Old 07-08-2012, 09:58
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
Exclamation INNO TROUBLESHOOT - Tutorials and Answers about INNO Setup

Please do NOT ask Questions in this thread, you can ask your INNO Questions HERE

This thread will contain all possible solutions, tutorials, and problems regarding INNO Setup, which we're using these days. Before opening any help thread about something, check this thread for response or help about it.

CONTENTS:

I. INTRODUCTION: History and Features of INNO Setup
II. VISUALIZATION: Using Photoshop, Tips about the work, Creating PNG logos
III. INTERFACE 1: Meaning of Used Values in Setup.ini
III. INTERFACE 2: Editing Setup.cab contents
III. INTERFACE 3: Internal External Setups, Registry Keys
IV. COMPRESSION - When lzma is not enough
V. TROUBLESHOOT - Questions/Problems and Solutions


IA. INTRODUCTION



Inno Setup is a free script-driven installation system created in CodeGear Delphi by Jordan Russell. The first version was released in 1997.

Since Jordan Russell wasn't satisfied with InstallShield Express which he had received upon purchase of Borland Delphi, he decided to make his own installer. At first, Inno Setup was little known. The first public version was 1.09

IB. Capacity of INNO Setup (What you can do with it)

-Supports Windows 7, Windows Vista, Windows Server 2003, Windows XP (including x64 editions)
-Extensive support for installation of 64-bit applications on Windows XP and Windows Server 2003. Both the x64 and IA-64 architectures are supported.
-Multiple platforms (IA-32, x64 and IA-64) in a single binary
-Prior versions supported Windows NT 3.51 (Before v3.0) and Windows 3.X (Before v1.3)
-Supports creation of a single EXE to install programs for easy online distribution.
-Supports disk spanning.
-Customizable setup types, e.g. Full, Minimal, Custom.
-Complete uninstall capabilities.
-Integrated support for “deflate”, bzip2, and 7-Zip LZMA file compression. The installer has the ability to compare file version info, replace in-use files, use shared file counting, register DLL/OCXs and type libraries, and install fonts.
-Creation of shortcuts, including in the Start Menu and on the desktop.
-Creation of registry and INI file entries.
-Integrated Pascal scripting engine.
-Support for multilingual installs.
-Support for passworded and encrypted installs.
-Silent install and uninstall.
-Full source code is available (Borland Delphi 2.0-5.0).
-Supports Unicode and right-to-left languages.

IC. Unicode

As you all know, INNO Setup has 2 versions; ANSI and Unicode. Unicode is the most used and universal one.

Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems. Developed in conjunction with the Universal Character Set standard and published in book form as The Unicode Standard, the latest version of Unicode consists of a repertoire of more than 110,000 characters covering 100 scripts, a set of code charts for visual reference, an encoding methodology and set of standard character encodings, an enumeration of character properties such as upper and lower case, a set of reference data computer files, and a number of related items, such as character properties, rules for normalization, decomposition, collation, rendering, and bidirectional display order (for the correct display of text containing both right-to-left scripts, such as Arabic and Hebrew, and left-to-right scripts).As of 2012, the most recent version is Unicode 6.1.

History:

V1.00 - 08.07.2012: Actual Thread
V1.01 - 08.07.2012: Added PNG logo tutorial
V1.02 - 08.09.2012: Added Compression tutorial and some fixes on it.

Last edited by REV0; 09-08-2012 at 08:59.
Reply With Quote
The Following 11 Users Say Thank You to REV0 For This Useful Post:
EIDO7 (20-04-2015), mamed3000 (19-09-2015), mausschieber (09-03-2013), mertderler (25-05-2015), oltjon (21-01-2014), pakrat2k2 (13-02-2013), Razor12911 (02-03-2013), RoxorProject (06-09-2013), Shadow Delta (22-05-2014), sucht (18-10-2014), zougjaysean (21-06-2013)
Sponsored Links
  #2  
Old 07-08-2012, 09:58
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
IIA. VISUALIZATION
Creating unique setups by using yener's CI

-Before discovering Unicode and yener's CI, we were using ANSI version of INNO. However today, thanks to yener's script, we can change and create unique conversions for games.

But to create good looking setup you need more than INNO Setup. You need second tools.

Corel X5, Adobe Photoshop (the one i'm using) and GIMP are good examples for creating different and unique looking buttons and background for your setup.


Example background work for 'Dishonored' - Photoshop CS5

IIB. Hints and Tips

I'll give you some advises about graphics (I'll talk on PS)

1. You may use different sized of backgrounds. In this case, work on fullscreen and resize the background you'll use in Photoshop. By doing this, you will see how background will look on %100.

2. Do not pass 720 resolution since it's the smallest monitor size and still selling global. Oversized Installer will create problems.

3. PNG is your friend during setups. By working without a background will create more possibilities about setups and in the end you'll get nicer setups.

4. Know the contrast. If you have dark texts in the setup, use light images so people can read them. If you have light text use the dark images instead. Same goes for button layouts.


TDU2 conversion with button which have PNG extension.

4. When you're creating buttons, apply the rule number 1 and work on background itself, so you can see how buttons will look over installer.

5. After applying rule number4, use Crop Tool and separate button from installer. Now you can work on buttons directly and all your buttons will have same size.

IIC. SPLASH.PNG/CREATING .PNG LOGOs

Most of the game have transparent logo. And since we're using Splash.png aka logos in conversion, you may need this tut.

There are couple of solutions for this. The most basic one is; search. Type the game's name and add 'logo' word on google search. Eventually, you'll find nice and one big logo for your work. (I have 8000x5000 logo for Shogun2) If you're not default person and want to be creative, search again. Since it has png extension, you can do literally everything. Change fonts, add additional pictures, grunge it etc.

But if you cant find a png logo, you'll have create your own.

A) Via Photoshop

Photoshop have Magic Wand function which will help you. Use Magic Wand (the wizard icon on toolbox of PS) and start to select your logo. Hold down shift key and repeat the process. You'll pretty much cover your logo. Then press Ctrl+J and you'll have your logo on second/different layer.

Couple of tips:

If your logo is dark, find the image which has light background. If it's light logo, find with dark background, this will make selection easier.

B) Irfanview

Load the picture into IrfanView, press S for "Save as...", set the image type (PNG), enable "Save Transparent Color" and the program will ask you to click on the color that should be turned into transparent.
Thanks to Joe Forster/STA for this tip.

C) GIMP

No additional info since i'm not using it.

TIP V2:

If you're heavy converter, i really recommend Photoshop, it's your savior in visual stuff

Last edited by REV0; 15-09-2012 at 03:28.
Reply With Quote
The Following 10 Users Say Thank You to REV0 For This Useful Post:
ASSAiL (25-10-2013), EIDO7 (20-04-2015), mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), oltjon (23-12-2013), pakrat2k2 (13-02-2013), Razor12911 (02-03-2013), RoxorProject (06-09-2013), Shadow Delta (22-05-2014)
  #3  
Old 07-08-2012, 09:59
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
IIIA - INTERFACE]

-Once you've created buttons, backgrounds and other stuff, it's time to add them to setup.

If you worked on exactly same size on existing setup, you can simply overwrite them by opening Setup.cab with Winrar and drag elements over current ones.

However generally every game and setup is different so still, you may have to edit some values in Setup.ini.

IIIB. Meaning of Used Values in Setup.ini

There's no need to re-discover America so i'm taking this part from yener's thread:

Quote:
InstallOptions => this part defines main game info
ApplicationName => Name of the game
Publisher => Publisher name of the game
MyExecutableName => main executable of the game (this will have .exe extension)
MyExecutablePath => define this if the main executable is not in root folder, but in subfolder
example gamefolder\bin32\yener90.exe you need to define like this:
MyExecutableName=yener90
MyExecutablePath=bin32
#######
if you have two executables, you need following lines:
MyExecutableIconName2 => Name of the shortcut and autorun menu of the second executable
MyExecutableName2 => secobd executable of the game
MyExecutablePath2 => define this if the second executable is not in root folder, but in subfolder
#######
SaveGameFolder => define here the folder of the savegames
GameSize => Size of the game in MB
Lang => supported languages
LangUI => if you enable this (by using worth 1), language selector will be disabled and windows language will be used automaticly
PrecompVer => defines the version of precomp, if you used it
Editor => if you edited my source, you can put your name here.
Install Settings

Quote:
InstallSettings => this part defines gdf binaries
GDFBinary => name of the gdf binary
only required if your games needs two gdf binaries:
GDFBinary2 => name of the second gdf binary
You can also define language specific gdf binaries:
just take from Language Info your language and add it to the end of GDFBinary.
Example for a Turkish and Greek gdf binary
GDFBinaryTR=GDF_Turkish.dll
GDFBinaryGR=GDF_Greek.dll
Extract Settings

Quote:
ExtractSettings => this part defines files for extracting
FreeArcFile1={src}\Data1.cab;DestDir:{app};Disk:1; PrecSrep:0;Lang:de
FreeArcFile2={src}\Data2.cab;DestDir:{app};Disk:1

Data1.cab => name of the archive that should be extracted
DestDir:{app} => folder where the game should be extracted ({app} is game folder)
Disk => number of, on which disk the archive is
Precsrep => use extreme decompression method
for this you need to compress the archive this way:
Example if you want to name your archive Data.cab
Compress all files in Data.arc
-> Compress Data.arc in Data.pcf
-> Compress Data.pcf in Data.srep
-> Compress Data.srep in Data.cab
Lang => defines for which language the archive should be extracted (look for available languages to "Language Info")
FreeArcFile1 number of archive which should be extracted
FreeArcFile = Defines the file header. Possible values FreeArcFile, 7zFile and RarFile
1 = defines number of archive which should be extracted
if you want to extract one FreeArcFile one 7z file you need to define like this:
FreeArcFile1={src}\Data1.cab;DestDir:{app};Disk:1; PrecSrep:0;Lang:de
7zFile1={src}\Data2.cab;DestDir:{app};Disk:1
Interface

Quote:
InterfaceSettings => this part defines interface settings of the installer
BackgroundWidth => set the background image width => it should be the width of 1.jpg or flash.swf
BackgroundHeight => set the background image height => it should be the height of 1.jpg or flash.swf
ButtonWidth => set the button image width => it should be the width of button.png
ButtonHeight => set the button image height => it should be the height of button.png (not the whole height -> only one button height)
ButtonLabelX => move the buttons text to left/right (standard = 0) positive value moves right/negative left
ButtonLabelY => move the buttons text to up/down (standard = 0) positive value moves down/negative up
Button1Left => set the button position left (next / standard installation button)
Button1Top => set the button position top (next / standard installation button)
Button2Left => set the button position left (back / custom installation button)
Button2Top => set the button position top (back / custom installation button)
Button3Left => set the button position left (cancel button)
Button3Top => set the button position top (cancel button)
Button4Left => set the button position left (music button)
Button4Top => set the button position top (music button)
FinishPosBackPos => set where the finish button should be placed => 1 = place of back button 0 = place of nextbutton
ButtonFont => set the button font
ButtonFontBold => set if the button font should be bold
ButtonFontSize => set the button font size
this part only works if you used button.png
ButtonFontColor => set the button font color => color need to be reversed => exchange first two values with the last two values
ButtonFontColorOnMouse => set the button font color, if you move the mouse on it => color need to be reversed => exchange first two values with the last two values
ButtonFontColorMouseDown => set the button font color, if you click on it => color need to be reversed => exchange first two values with the last two values
ButtonFontColorDisabled => set the button font color, if button is disabled => color need to be reversed => exchange first two values with the last two values
ButtonOneLiner => set if the button text should be wrapped or not
EnableAutorunMenu => enable this if you want to use Autorun menu feature
EnableFastInstall => enable/disable standard installation/custom installation button
FlashLeft => set the flash animation position left in installer
FlashTop => set the flash animation position top in installer
FlashWidth => set the flash animation position widthin installer
FlashHeight => set the flash animation position height in installer
InstallerWidth => set the width of the installer = it should have the width of installer.jpg
InstallerHeight => set the height of the installer = it should have the height of installer.jpg
LogoLeft => set the logo position left in installer
LogoTop => set the logo position top in installer
LogoWidth => set the width of the logo = it should have the width of logo.jpg
LogoHeight => set the height of the logo = it should have the height of logo.jpg
ProgressBarHeight => set the width of progressbar
SetupFont => set the setup font
SetupFontColor => set the setup font color, if you click on it => color need to be reversed => exchange first two values with the last two values
ShowLogoInBG => enable/disable logo in background
SmallButtonWidth => set the small button image width => it should be the width of smallbutton.png
SmallButtonHeight => set the small button image height => it should be the height of smallbutton.png
SmallInstallerFontColor => define the color of setup font in small installer => if not defined, setup will use SetupFontColor
SmallInstallerWidth => set the small installer image width => it should be the width of smallinstaller.jpg
SmallInstallerHeight => set the small installer image height => it should be the height of smallinstaller.jpg
TextCenter => enable/disable center alignment of the text in installer
TextPositionLeft => set the texts left position
TextPositionTop => set the texts top position
TextPositionWidth => set the texts width => it should be the width of TextBG.png if you use it
TextPositionHeight => set the texts height => it should be the height of TextBG.png if you use it
TextSpaceFromBorder => set the space between the text and the border of the text file
Autorun

Quote:
This part AutorunSettings is only required, if you enabled EnableAutorunMenu=1
AutorunSettings => options for autorunmenu
AutorunWidth => set the width of the Autorun= it should have the width of Autorun.jpg
AutorunHeight => set the height of the Autorun = it should have the height of Autorun.jpg
ButtonLabelX => move the buttons text to left/right (standard = 0) positive value moves right/negative left
ButtonLabelY => move the buttons text to up/down (standard = 0) positive value moves down/negative up
ButtonWidth => set the button image width => it should be the width of button.png
ButtonHeight => set the button image height => it should be the height of button.png (not the whole height -> only one button height)
ExitLeft => set the button position left (exit button)
ExitTop => set the button position top (exit button)
InstallLeft => set the button position left (install/uninstall button)
InstallTop => set the button position top (install/uninstall button)
PlayLeft => set the button position left (play button)
PlayTop => set the button position top (play button)
ButtonFont => set the button font
ButtonFontBold => set if the button font should be bold
ButtonFontSize => set the button font size
this part only works if you used button.png
ButtonFontColor => set the button font color => color need to be reversed => exchange first two values with the last two values
ButtonFontColorOnMouse => set the button font color, if you move the mouse on it => color need to be reversed => exchange first two values with the last two values
ButtonFontColorMouseDown => set the button font color, if you click on it => color need to be reversed => exchange first two values with the last two values
ButtonFontColorDisabled => set the button font color, if button is disabled => color need to be reversed => exchange first two values with the last two values
DisableWindowBorder => Enable/disable window border in autorun
LangBoxCenter => center language box in autorun
if LangBoxCenter enabled then you dont need to set LangBoxLeft
LangBoxLeft => set the language box position left
LangBoxTop => set the language box position top
RoundedCornerX => will give you rounded corner in autorun (Standard = 0)
RoundedCornerY => will give you rounded corner in autorun (Standard = 0)
for perfect math RoundedCornerX and RoundedCornerY should have the same values
example if you set both to 200

RoundedCorner applied Deux Ex Autorun example

Launcher

Quote:
LauncherSettings => install additional files
InstallRedist => enable/disable additional installations

Launch1 => set the name of the application which should be installed
Launch164 => if you enable this, this application will be only installed on X64 systems
Launch1BeforeInstall => if you enable this, this application will be installed before the installation begins
LaunchCom1 => type the path of executable including it's name
LaunchArg1 => set the command line of the application (if you launch it silent then its required)
you can max execute 8 applications

ADDITIONAL: If Additional installations exist in another folder such as 'redist' then you'll start with this folder name, for example: redist\program.exe

Last edited by REV0; 07-08-2012 at 11:21.
Reply With Quote
The Following 10 Users Say Thank You to REV0 For This Useful Post:
adiel26 (13-07-2013), EIDO7 (20-04-2015), Harsh ojha (18-08-2019), mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), MMR (21-02-2013), pakrat2k2 (13-02-2013), RoxorProject (06-09-2013), Shadow Delta (22-05-2014)
  #4  
Old 07-08-2012, 10:09
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
IIIC. Editing of Used Files in Setup.CAB
Taken from yener90

Autorun folder:

Quote:
Required files:
Autorun.jpg => Autorun background image
Optional files:
Button.png => Button background image (not selected)
ButtonSelected.png => Button background image (selected)
ButtonClicked.png => Button background image (clicked)
ButtonDisabled.png => Button background image (disabled)
Quote:
Button.wav => sound if you clicked the button
for getting the next work you need button.png:
ButtonOnMouse.wav => sound if you move the mouse to a button
Background folder: (optional)

Quote:
1 - unlimited.jpg => background image for installer
example 4 background images Background folder:
1.jpg, 2.jpg, 3.jpg, 4.jpg
OR
you can also use Flash files as background image
flash.swf => flash file for background
KNOWN BUG: Backgrounds supported 10 images, putting more than 10 images will cause instant skip to latest image.
Setup folder:

Quote:
Required files:
Installer.jpg => Installer background image
Optional files:
Button.png => Button background image for the big buttons (not selected)
ButtonSelected.png => Button background image for the big buttons (selected)
ButtonClicked.png => Button background image for the big buttons (clicked)
You can also use for the 4 big buttons CUSTOM buttons -> not necessary.
names should be for button2 for example:
Button2.png => Button background image for the big buttons (not selected)
Button2Selected.png => Button background image for the big buttons (selected)
Button2Clicked.png => Button background image for the big buttons (clicked)
Button.wav => sound if you clicked the button
for getting the next work you need button.png:
ButtonOnMouse.wav => sound if you move the mouse to a button
Checkbox.png => checkbox image
Edit.png => image for the background of your game path selection
Flash.swf => Flash animation in setup
logo.png => logo image for installer (and background => look at the options)
logo2.png => logo image for background
music.mp3 => installer music
ProgressBackground.png => progressbar background image
ProgressImg.png => progressbar image
SmallButton.png => Button background image for the small buttons (not selected)
SmallButtonSelected.png => Button background image for the small buttons (selected)
SmallButtonClicked.png => Button background image for the small buttons (clicked)
SmallInstaller.jpg => background of the installer while installing
SmallInstaller.png => dark base for the installer while installing
Splash.png => logo image while starting
TextBg.png => background of the text part of installer
Main - Inside setup.cab

Quote:
font.ttf => custom font for setup's writings
font2.ttf => custom font for buttons
setup.cjstyles => isskin for setup
cursor.cur => custom cursor for setup

Last edited by REV0; 07-08-2012 at 11:21.
Reply With Quote
The Following 8 Users Say Thank You to REV0 For This Useful Post:
mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), MMR (21-02-2013), pakrat2k2 (13-02-2013), RoxorProject (06-09-2013), Shadow Delta (22-05-2014), zougjaysean (21-06-2013)
  #5  
Old 07-08-2012, 10:21
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
IIID. Internal-External Setups, Registry Keys

a) Internal Installation

This is activated by removing semicolon ( ; ) from following line in script:

Code:
;#define ProgramFiles "F:\Program Files (x86)\Atari\TDU2"
By removing semicolon from this, you will 'authorize' INNO setup to create it's own .bin files according to diskspan(not spam) and compression ratio.

INNO Setup will compress files in given path (in this example; TDU2). It will compress them regardless the content or anything else, so using internal setups in conversions is easy and effective solution.

b) External Installation

By keeping semicolon, you'll create only base files (setup.exe, .ico, trasferring of any changing to exe)

This type of installation will give converter more possibilites about compressions. Since you cant do precomp+srep+lzma at the same time in INNO, using external inst. is more logic. You can compress files better than INNO's compression, however beware; it'll take more time to create conversion and also install the game.

For example, converting MaxPayne 3 with all types of compressions took 12 hours and more than 1 hour to install.

c) Registry Keys:

Another important feature of INNO Setup. No matter how you install the game, you will need registry keys. Adding them may look complicated, however it's easy as other stuff in INNO.

First of all find your game in your Registry Editor. (In our example we'll work on Test Driver Unlimited 2):



Once you found your data, open INNO script and found registry section. Normally you will find default uninstall registry key in there. Copy it, paste it, and edit it along adding regkeys. However DO NOT delete it.

In your registry editor, you will find 3 columns; Name, Type, Data.

Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName} "; ValueName: UninstallString; ValueData: {uninstallexe}; ValueType: string; Flags: UninsDeleteKey;

Subkey corresponds the path of registry key, so we will not touch it.

ValueName corresponds 'Name' in your registry editor. You will edit this according to your registry key in OS. 'Exepath, InstallDir' are our ValueNames in here.

ValueData corresponds 'Data' in Registry Editor. According to conversion, this can be numbers, game path, or simply a command. If you're working on multiple language supported game, it's better to add all possible languages to it.

If you need to add number or letter, you'll type it directly without these ' {} '

ValueType is generaly remains same, so i'll pass this, same goes for Flags.

So in the end, our Registrykeys about TDU2 will look like this (Attention to multiple language keys and how they're looking):

Code:
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: UninstallString; ValueData: {uninstallexe}; ValueType: string; Flags: UninsDeleteKey;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: ExePath; ValueData: {app}\{code:GetMyAppExePath}\{code:GetMyAppExeName}; ValueType: string; Flags: UninsDeleteKey;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: InstallDir; ValueData: {app}\{code:GetMyAppExePath}; ValueType: string; Flags: UninsDeleteKey;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: LanguagePack; ValueData: EU; ValueType: string; Flags: UninsDeleteKey;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: LauncherPath; ValueData: {app}\{code:GetMyAppExePath}\UpLauncher.exe; ValueType: string; Flags: UninsDeleteKey;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: Language; ValueData: en; ValueType: string; Flags: UninsDeleteKey; Languages: eng;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: Language; ValueData: fr; ValueType: string; Flags: UninsDeleteKey; Languages: fre;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: Language; ValueData: de; ValueType: string; Flags: UninsDeleteKey; Languages: ger;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: Language; ValueData: it; ValueType: string; Flags: UninsDeleteKey; Languages: ita;
Root: HKLM; SubKey: "SOFTWARE\{code:GetAppPublisher}\{code:GetAppName}"; ValueName: Language; ValueData: sp; ValueType: string; Flags: UninsDeleteKey; Languages: esp;

Last edited by REV0; 07-08-2012 at 11:21.
Reply With Quote
The Following 9 Users Say Thank You to REV0 For This Useful Post:
mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), MMR (21-02-2013), pakrat2k2 (13-02-2013), RoxorProject (06-09-2013), samer1 (08-09-2014), Shadow Delta (22-05-2014), zougjaysean (21-06-2013)
  #6  
Old 07-08-2012, 10:25
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
IV. COMPRESSION



Like our poster said, when lzma is not enough for our needs, external installation enters the business.

INNO's internal compression supports up to lzma2/ultra64. Don't be deceived to it's title, there's a slight difference between lzma and ultra64, in some content. Compression takes longer, however the gain might be couple of megabytes.

To use external compression, first of all you need a setup. But attention, this one's compression system must be disabled. To do this, add semicolon on second line of INNO, which there's game's path lies.

After this, re-compile the script and you got external-ready setup.exe.

Currently, you can use cmd/bat file to automate everything. You only need to edit compression level etc. in bat file and then you're good to go.

Regardless what you're going to do with compression, if you are using external methods, you will need to add, PrecompVer=inside in InstallOptions in setup.ini.

Bamse clearly explained these values;

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means definition of compression method

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means compressing with precomp (with parameters defined in arc.ini under [External compressorrecomp] section)

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means additional parameter for precomp (which is not defined in arc.ini), in this case it's -v parameter

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means compressing with srep (with parameters defined in arc.ini under [External compressor:srep] section), also here you can add parameters separated by ":"

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means compression with lzma

Code:
-mprecomp:v+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8
means additional parameters for lzma, in this case -a1 -mfbt4 -d256m -fb128 -mc1000 -lc8

Once you edit these values (or you can leave them unchanged - attention do not use the values above they're just examples) Click the bat file and let the cmd run and do the compressing for you.

Here's the example of Bamse's Prototype 2 conversion (I'm testing something different)


Code:
echo off

arc a -ep1 -r -w.\ .\data1.cab [email protected] -mlzma:a1:mfbt4:d256m:fb128:mc1000:lc8

arc a -ep1 -r -ed -w.\ .\data2.cab [email protected] -x".\audio\*" -x".\movies\*" -mprecomp+srep+lzma:a1:mfbt4:d256m:fb128:mc1000:lc8 ".\*"

arc a -ep1 -r -w.\ .\data3.cab -mlzma:a1:mfbt4:d256m:fb128:mc1000:lc8 ".\movies\#converted\*"
This cmd works with 2 data.txt files which contains which files will be compressed or excluded. '-n' value means cmd will compress files inside .txt and '-x' value means they'll be excluded. '-r' value means, bat file will compress everything in that folder, including sub-folders and their contents.

Last edited by REV0; 20-02-2013 at 15:09.
Reply With Quote
The Following 14 Users Say Thank You to REV0 For This Useful Post:
GBT repack (02-06-2015), Junior.666_PL (11-04-2013), kassane (25-04-2015), mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), MMR (21-02-2013), pakrat2k2 (13-02-2013), ramydarkness (22-03-2022), Razor12911 (03-04-2013), RoxorProject (06-09-2013), Shadow Delta (22-05-2014), truerepacks (12-08-2015), zougjaysean (21-06-2013)
  #7  
Old 07-08-2012, 11:29
REV0 REV0 is offline
Banned
 
Join Date: Nov 2010
Location: Hawaii
Posts: 998
Thanks: 63
Thanked 1,851 Times in 292 Posts
REV0 is on a distinguished road
V. TROUBLESHOOT - TUTORIALS

Q: I'm having TGUID error during Compile. It says 'Error: Unknown type 'TGUID'

S: You're not using correct version of INNO Setup. You must use/download Unicode version and compile the conversion with it.

Q: I'm having TGUID errror during Compile. It says 'Duplicate identifier 'TGUID'

S: You're not using correct version of INNO Setup. You must use/download ANSI version and compile the conversion with it.

Q: I downloaded the conversion, edited path of the game and clicked Compile. It completed in a second and it's not installing the game.

S: Delete the semicolon ( ; ) in front of second line aka #define ProgramFiles and re-compile.

Q: I downloaded the setup and backgrounds/buttons are missing.

S: This is a known bug, i also have this issue time to time. There are multiple solutions:

a) Rename the folder. (Chance of success 75%)
b) Create another folder on desktop, move the content to this folder (Chance of success 100%)

Q: Where can i put video.avi and how to play it ?

S: You will place video.avi/flv in Setup.cab/Setup folder. But beware, current CI doesnt support video-backgrounds and music at the same time, so you will watch the same video over and over again during install.

Q: I'm having 'Insert next disk' error in conversion, what should i do ?

S: If you have bin files in conversion and getting this error, open Setup.ini and delete [ExtractSettings] and it's contents.

Q: I'm having 'Insert Disk1 to continue' error, in fact Disk1 is already inserted ?

S: That's because you put 2 or less bin files in the folder. In general every conversion needs 3bin files for each DVDs. You can put 4 or more if you're making DVD9 however, putting less bin files, will result this error.

Last edited by REV0; 17-08-2012 at 10:17.
Reply With Quote
The Following 8 Users Say Thank You to REV0 For This Useful Post:
dienszge (21-03-2014), mamed3000 (19-09-2015), mausschieber (09-03-2013), mconstantine (17-12-2014), MMR (21-02-2013), pakrat2k2 (13-02-2013), RoxorProject (06-09-2013), zougjaysean (21-06-2013)
  #8  
Old 04-04-2013, 04:39
Errol Errol is offline
Registered User
 
Join Date: Aug 2011
Location: Trinidad W.I.
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Errol is on a distinguished road
Smile How to display a shortcut with a different icon?

I know it might have been answered but have not seen it. I'm making an installer for Dos Box running an old Dos game called 007 License to Kill, using Inno-Setup and would like to set a shortcut in the start menu and on the desktop using an icon I made.

Lets say the icon name is myicon.ico, after I made the script using Inno-Setup, under the heading [Icons] this is what it looks like;

[Icons]
Name: {group}\007 License to Kill; Filename: C:\Games\007LicensetoKill\dosbox.exe; IconFilename: C:\Games\007LicensetoKill\dosbox.exe; IconIndex: 0
Name: {commondesktop}\007 License to Kill; Filename: C:\Games\007LicensetoKill\dosbox.exe; IconFilename: C:\Games\007LicensetoKill\dosbox.exe; IconIndex: 0; Tasks: desktopicon

What I want to add or change is, instead of the DosBox.exe showing up as the desktop or start menu icon I wanted it to show myicon.ico I already have the .ico file placed in the DosBox directory and the game in a separate folder in the DosBox directory. I tried to do it but it seems I'm doing the wrong thing. After compiling the game and DosBox I either end up with no icon to display or end up with the DosBox icon. I've attached the Iss file I made and if someone can please give me a working example or even modify my Iss file I would really appreciate it very much. Thank you.
Attached Files
File Type: zip Inno Iss.zip (18.6 KB, 234 views)
Reply With Quote
  #9  
Old 04-04-2013, 05:06
Razor12911's Avatar
Razor12911 Razor12911 is offline
Noob
 
Join Date: Jul 2012
Location: South Africa
Posts: 3,746
Thanks: 2,141
Thanked 11,099 Times in 2,295 Posts
Razor12911 is on a distinguished road
check post 293 and 294 in this thread
Reply With Quote
  #10  
Old 04-04-2013, 10:38
Errol Errol is offline
Registered User
 
Join Date: Aug 2011
Location: Trinidad W.I.
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Errol is on a distinguished road
Thank you Razor but somehow it still does not work for me. Take a look at the first three pictures and then look at the fourth picture the first one I click on the desktop "properties" no target.
The second picture I click on "open file location" Third picture shows you where its linked to.

4th picture is after installing using the Dosbox.exe as the destop shortcut icon and when clicked it opens DosBox and launches the game immediately.



So the thread you referred me to, I tried it and it just does not work.
Reply With Quote
  #11  
Old 04-04-2013, 11:28
Razor12911's Avatar
Razor12911 Razor12911 is offline
Noob
 
Join Date: Jul 2012
Location: South Africa
Posts: 3,746
Thanks: 2,141
Thanked 11,099 Times in 2,295 Posts
Razor12911 is on a distinguished road
you have to include the icon in [Files] and set destination to {app}
Reply With Quote
  #12  
Old 04-04-2013, 14:36
Errol Errol is offline
Registered User
 
Join Date: Aug 2011
Location: Trinidad W.I.
Posts: 10
Thanks: 2
Thanked 0 Times in 0 Posts
Errol is on a distinguished road
Thank you Razor. That fixed it. I saw the mistake I made after you pointed it out .
Reply With Quote
  #13  
Old 06-04-2013, 00:08
mausschieber's Avatar
mausschieber mausschieber is offline
Conversion Designer
 
Join Date: Jan 2011
Location: germany
Posts: 3,681
Thanks: 5,794
Thanked 10,285 Times in 2,724 Posts
mausschieber is on a distinguished road
How can i solve this

the error is in both versions
I have read many treads
but no solution found
so I hope you can help me
oh and my system is win7 64bit
my video card has 4GB

Thanks in advance







[Code]
#define processor "2000"
#define videoram "255500000"
#define ram "2047"
#define pagefile "756"

[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check

[Files]
Source: C:\Program Files (x86)\Inno Setup 5\get_hw_caps.dll; Flags: dontcopy

[Code]
function GetVideoCardName(): PansiChar; external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
function GetSoundCardName(): PansiChar; external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
function DetectHardware(): Integer; external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';
function GetHardDriveFreeSpace(hdd: integer): Integer; external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
function GetHardDriveName(hdd: integer): PansiChar; external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
function GetHardDriveTotalSpace(hdd: integer): Integer; external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
function GetHardDrivesCount(): Integer; external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
function GetSoundCards(): Integer; external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';
function GetSystemPage(): Integer; external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
function GetSystemPhys(): Integer; external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
function GetVidMemLocal(): Integer; external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';
function GetVidMemNonLocal(): Integer; external 'hwc_GetVidMemNonLocal@files:get_hw_caps.dll stdcall';
function GetVideoCardDev(): Integer; external 'hwc_GetVideoCardDev@files:get_hw_caps.dll stdcall';
function GetVideoCardVen(): Integer; external 'hwc_GetVideoCardVen@files:get_hw_caps.dll stdcall';

function CheckSystemPage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
ProcessorName:string;
Processor,ProcessorNamePanel,VideoCardNamePanel,Vi deoCardPanel,AudioCardNamePanel,RAMTotalPanel,Page FileTotalPanel,AudioCardPanel,RAMPanel,PageFilePan el: TMemo;
ProcessorMHZ: Cardinal;
StaticText,StaticText2:TNewStaticText;
oneGhz,oneMB,Rest:Integer;
begin
RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',' ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',' ~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
oneGhz:=1000;
Rest:=ProcessorMHZ - oneGhz;
oneMB:=1024*1024;

Page := CreateCustomPage(PreviousPageId,'Hardware','Setup hat die folgenden Voraussetzungen erkannt');

StaticText:=TNewStaticText.Create(Page);
with StaticText do begin
Parent:=Page.Surface;
Caption:='Alle Komponenten erfüllen die Anforderungen des Spiels.';
Left:=0;
Top:=5;
AutoSize:=True;
end;

StaticText2:=TNewStaticText.Create(Page);
with StaticText2 do begin
Parent:=Page.Surface;
Caption:='Wenn Sie bereit sind fortzufahren, klicken Sie auf "Weiter"'
Left:=0;
Top:=220;
AutoSize:=True;
end;

Processor := TMemo.Create(Page);
with Processor do begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Prozessor'));
Color := -16777194;
Left := ScaleX(0);
Top := ScaleY(32);
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True;
Cursor := crArrow;
end;

ProcessorNamePanel := TMemo.Create(Page);
with ProcessorNamePanel do begin
Parent := Page.Surface;
Lines.Add(' '+ProcessorName+' '+IntToStr(ProcessorMHZ/oneGhz)+','+IntToStr(Rest)+'GHz'+' '+'@'+IntToStr(ProcessorMHZ)+'MHz');
Left := ScaleX(109);
Top := ScaleY(32);
Width := ScaleX(304);
Height := ScaleY(21);
Color := $CCFFCC;
ReadOnly := True;
Cursor := crArrow;
end;

//CPU-Geschwindigkeit//
if ProcessorMHZ<{#processor} then begin
ProcessorNamePanel.Color:=clred;
StaticText.Caption:='Komponenten in rot erfüllen nicht die Anforderungen des Spiels.';
end;

VideoCardPanel:=TMemo.Create(Page);
with VideoCardPanel do begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Grafikkarte'));
Color := -16777194;
Left:=ScaleX(0);
Top:=Processor.Top+27;
Width:=ScaleX(104);
Height:=ScaleY(21);
ReadOnly := True;
Cursor := crArrow;
end;

VideoCardNamePanel:=TMemo.Create(Page);
with VideoCardNamePanel do begin
Parent:=Page.Surface;
Lines.Add(' '+GetVideoCardName+' '+IntToStr(GetVidMemLocal/oneMB)+' MB');
Left:=ScaleX(109);
Top:=VideoCardPanel.Top;
Width:=ScaleX(304);
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True;
Cursor := crArrow;
end;

//Video Memory//
if GetVidMemLocal<{#videoram} then begin
StaticText.Caption:='Komponenten in rot erfüllen nicht die Anforderungen des Spiels.';
VideoCardNamePanel.Color:=clred;
end

; AudioCardPanel:=TMemo.Create(Page);
with AudioCardPanel do begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Soundkarte'));
Color := -16777194;
Left := ScaleX(0);
Top:=VideoCardPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;

AudioCardNamePanel:=TMemo.Create(Page);
with AudioCardNamePanel do begin
Parent:=Page.Surface;
Lines.Add(' '+GetSoundCardName);
Left:=ScaleX(109);
Top:=AudioCardPanel.Top;
Width:=ScaleX(304);
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True;
Cursor := crArrow;
end;

//Audio//
if GetSoundCards=0 then begin
StaticText.Caption:='Komponenten in rot erfüllen nicht die Anforderungen des Spiels.';
with
AudioCardNamePanel do begin
Color:=clred;
Lines.Add('nicht gefunden');
ReadOnly := True; Cursor := crArrow;
end;
end;

RAMPanel:=TMemo.Create(Page);
with RAMPanel do begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' RAM'));
Color := -16777194;
Left := ScaleX(0);
Top:=AudioCardPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True;
Cursor := crArrow;
end;

RAMTotalPanel:=TMemo.Create(Page);
with RAMTotalPanel do begin
Parent:=Page.Surface;
Lines.Add(' '+IntToStr(GetSystemPhys+1) +' MB');
Left:=AudioCardNamePanel.Left;
Top:=RAMPanel.Top;
Width:=AudioCardNamePanel.Width;
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True;
Cursor := crArrow;
end;

//RAM//
if GetSystemPhys+1<{#ram} then begin
RAMTotalPanel.Color:=clred;
StaticText.Caption:='Komponenten in rot erfüllen nicht die Anforderungen des Spiels.';
end;

PageFilePanel:=TMemo.Create(Page);
with PageFilePanel do begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Auslagerungsdatei'));
Color := -16777194;
Left := ScaleX(0);
Top:=RAMPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True;
Cursor := crArrow;
end;

PageFileTotalPanel:=TMemo.Create(Page);
with PageFileTotalPanel do begin
Parent:=Page.Surface;
Lines.Add(' '+IntToStr(GetSystemPage)+' MB');
Left:=RAMTotalPanel.Left;
Top:=PageFilePanel.Top;
Width:=RAMTotalPanel.Width;
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;

//Auslagerungsdatei//
if GetSystemPage<{#pagefile} then begin
PageFileTotalPanel.Color:=clred;
StaticText.Caption:='Komponenten in rot erfüllen nicht die Anforderungen des Spiels.';
end;

Result:=Page.ID;
end;

procedure InitializeWizard();
begin
CheckSystemPage(wpWelcome);
end;
[LangOptions]
LanguageName=German
LanguageID=$0407

Last edited by mausschieber; 06-04-2013 at 00:47. Reason: Code insert
Reply With Quote
The Following 2 Users Say Thank You to mausschieber For This Useful Post:
zougjaysean (21-06-2013)
  #14  
Old 06-04-2013, 01:45
pakrat2k2's Avatar
pakrat2k2 pakrat2k2 is offline
Moderator
 
Join Date: Apr 2005
Location: Canada
Posts: 7,209
Thanks: 3,040
Thanked 9,030 Times in 3,083 Posts
pakrat2k2 is on a distinguished road
problem statement ?

#define videoram "255500000" > bytes
#define ram "2047" > 2MB = 2048
Reply With Quote
The Following User Says Thank You to pakrat2k2 For This Useful Post:
mausschieber (06-04-2013)
  #15  
Old 06-04-2013, 10:52
Razor12911's Avatar
Razor12911 Razor12911 is offline
Noob
 
Join Date: Jul 2012
Location: South Africa
Posts: 3,746
Thanks: 2,141
Thanked 11,099 Times in 2,295 Posts
Razor12911 is on a distinguished road
The Problem is that the integer produced by get_hw_caps.dll is a negative value. you can even see the -42MB which is false information.

Therefore I came up with something to fix but I don't know if it work. I want you to test this installer system req. if the problem is solved then I will tell you what to do. if not, tough luck.

you must report back results.
Attached Files
File Type: 7z Output.7z (4.76 MB, 800 views)

Last edited by Razor12911; 06-04-2013 at 16:44.
Reply With Quote
The Following 3 Users Say Thank You to Razor12911 For This Useful Post:
mausschieber (06-04-2013), RamiroCruzo (24-08-2015), zougjaysean (21-06-2013)
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



All times are GMT -7. The time now is 04:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Copyright 2000-2020, FileForums @ https://fileforums.com