add ProcessorInterface::Read16. wii64 uses this (by accident), but real hardware...
[dolphin.git] / Installer / Installer_x64.nsi
blobf5c8648fe1879c6131e6c625d2b343613ae8789a
1 !system "GetSVNRev.exe" ; ATTENTION: This MUST be run before this script
2 !include "svnrev.txt" ; !defines PRODUCT_VERSION
3 !define BASE_DIR "..\Binary\x64"
5 ; HM NIS Edit Wizard helper defines
6 !define PRODUCT_NAME "Dolphin x64"
7 !define PRODUCT_PUBLISHER "Dolphin Team"
8 !define PRODUCT_WEB_SITE "http://www.dolphin-emu.com"
9 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Dolphin.exe"
10 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
11 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
13 SetCompressor lzma
15 ; MUI 1.67 compatible ------
16 !include "MUI.nsh"
18 ; MUI Settings
19 !define MUI_ABORTWARNING
20 !define MUI_ICON "Dolphin.ico"
21 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
23 ; Language Selection Dialog Settings
24 !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
25 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
26 !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
28 ; License page
29 !insertmacro MUI_PAGE_LICENSE "Licence.txt"
30 ; Components page
31 !insertmacro MUI_PAGE_COMPONENTS
32 ; Directory page
33 !insertmacro MUI_PAGE_DIRECTORY
34 ; Instfiles page
35 !insertmacro MUI_PAGE_INSTFILES
36 ; Finish page
37 ; We launch the desktop shortcut to set the working dir
38 !define MUI_FINISHPAGE_RUN
39 !define MUI_FINISHPAGE_RUN_TEXT "Start $(^Name)"
40 !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchDolphin"
41 !insertmacro MUI_PAGE_FINISH
43 ; Uninstaller pages
44 !insertmacro MUI_UNPAGE_INSTFILES
46 ; Language files
47 !insertmacro MUI_LANGUAGE "Afrikaans"
48 !insertmacro MUI_LANGUAGE "Albanian"
49 !insertmacro MUI_LANGUAGE "Arabic"
50 !insertmacro MUI_LANGUAGE "Basque"
51 !insertmacro MUI_LANGUAGE "Belarusian"
52 !insertmacro MUI_LANGUAGE "Bosnian"
53 !insertmacro MUI_LANGUAGE "Breton"
54 !insertmacro MUI_LANGUAGE "Bulgarian"
55 !insertmacro MUI_LANGUAGE "Catalan"
56 !insertmacro MUI_LANGUAGE "Croatian"
57 !insertmacro MUI_LANGUAGE "Czech"
58 !insertmacro MUI_LANGUAGE "Danish"
59 !insertmacro MUI_LANGUAGE "Dutch"
60 !insertmacro MUI_LANGUAGE "English"
61 !insertmacro MUI_LANGUAGE "Estonian"
62 !insertmacro MUI_LANGUAGE "Farsi"
63 !insertmacro MUI_LANGUAGE "Finnish"
64 !insertmacro MUI_LANGUAGE "French"
65 !insertmacro MUI_LANGUAGE "Galician"
66 !insertmacro MUI_LANGUAGE "German"
67 !insertmacro MUI_LANGUAGE "Greek"
68 !insertmacro MUI_LANGUAGE "Hebrew"
69 !insertmacro MUI_LANGUAGE "Hungarian"
70 !insertmacro MUI_LANGUAGE "Icelandic"
71 !insertmacro MUI_LANGUAGE "Indonesian"
72 !insertmacro MUI_LANGUAGE "Irish"
73 !insertmacro MUI_LANGUAGE "Italian"
74 !insertmacro MUI_LANGUAGE "Japanese"
75 !insertmacro MUI_LANGUAGE "Korean"
76 !insertmacro MUI_LANGUAGE "Kurdish"
77 !insertmacro MUI_LANGUAGE "Latvian"
78 !insertmacro MUI_LANGUAGE "Lithuanian"
79 !insertmacro MUI_LANGUAGE "Luxembourgish"
80 !insertmacro MUI_LANGUAGE "Macedonian"
81 !insertmacro MUI_LANGUAGE "Malay"
82 !insertmacro MUI_LANGUAGE "Mongolian"
83 !insertmacro MUI_LANGUAGE "Norwegian"
84 !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
85 !insertmacro MUI_LANGUAGE "Polish"
86 !insertmacro MUI_LANGUAGE "Portuguese"
87 !insertmacro MUI_LANGUAGE "PortugueseBR"
88 !insertmacro MUI_LANGUAGE "Romanian"
89 !insertmacro MUI_LANGUAGE "Russian"
90 !insertmacro MUI_LANGUAGE "Serbian"
91 !insertmacro MUI_LANGUAGE "SerbianLatin"
92 !insertmacro MUI_LANGUAGE "SimpChinese"
93 !insertmacro MUI_LANGUAGE "Slovak"
94 !insertmacro MUI_LANGUAGE "Slovenian"
95 !insertmacro MUI_LANGUAGE "Spanish"
96 !insertmacro MUI_LANGUAGE "SpanishInternational"
97 !insertmacro MUI_LANGUAGE "Swedish"
98 !insertmacro MUI_LANGUAGE "Thai"
99 !insertmacro MUI_LANGUAGE "TradChinese"
100 !insertmacro MUI_LANGUAGE "Turkish"
101 !insertmacro MUI_LANGUAGE "Ukrainian"
102 !insertmacro MUI_LANGUAGE "Uzbek"
103 !insertmacro MUI_LANGUAGE "Welsh"
105 ; Reserve files
106 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
108 ; MUI end ------
110 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
111 !define UN_NAME "Uninstall $(^Name)"
112 OutFile "Dolphin_Installer_x64.exe"
113 InstallDir "$PROGRAMFILES64\$(^Name)"
114 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
115 ShowInstDetails show
116 ShowUnInstDetails show
118 Function .onInit
119 !include "x64.nsh"
120 ; This checks if nsis is running under wow64 (since nsis is only 32bit)
121 ; hopefully this will be dependable in the future too...
122 ${If} ${RunningX64}
123 !insertmacro MUI_LANGDLL_DISPLAY
124 SetRegView 64
125 ${Else}
126 MessageBox MB_OK|MB_ICONSTOP "You cannot run this version of Dolphin on your OS.$\r$\n\
127 Please use a 64-bit OS or download a 32-bit version of Dolphin."
128 Quit
129 ${EndIf}
130 FunctionEnd
132 Section "Complete" SEC01
133 SetShellVarContext all
134 ; Dolphin exe and dlls
135 ; TODO: cg is only for OGL, SDL is only for nJoy
136 ; TODO: Make a nice subsection-ized display
137 SetOutPath "$INSTDIR"
138 SetOverwrite ifnewer
139 File "${BASE_DIR}\Dolphin.exe"
140 File "..\Externals\Cg64\cg.dll"
141 File "..\Externals\Cg64\cgGL.dll"
142 ; File "..\Externals\Cg64\cgD3D9.dll"
143 File "..\Externals\WiiUse\X64\wiiuse.dll"
144 File "..\Externals\SDL\x64\SDL.dll"
145 File "..\Externals\OpenAL\win64\OpenAL32.dll"
146 File "..\Externals\OpenAL\win64\wrap_oal.dll"
147 ; This needs to be done after Dolphin.exe is copied
148 CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
149 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Dolphin x64.lnk" "$INSTDIR\Dolphin.exe"
150 CreateShortCut "$DESKTOP\Dolphin x64.lnk" "$INSTDIR\Dolphin.exe"
152 ; Plugins
153 SetOutPath "$INSTDIR\Plugins"
154 SetOverwrite ifnewer
155 File "${BASE_DIR}\Plugins\Plugin_DSP_HLE.dll"
156 File "${BASE_DIR}\Plugins\Plugin_DSP_LLE.dll"
157 File "${BASE_DIR}\Plugins\Plugin_nJoy_SDL.dll"
158 File "${BASE_DIR}\Plugins\Plugin_nJoy_SDL_Test.dll"
159 File "${BASE_DIR}\Plugins\Plugin_PadSimple.dll"
160 File "${BASE_DIR}\Plugins\Plugin_VideoDX9.dll"
161 File "${BASE_DIR}\Plugins\Plugin_VideoOGL.dll"
162 File "${BASE_DIR}\Plugins\Plugin_Wiimote.dll"
163 File "${BASE_DIR}\Plugins\Plugin_VideoSW.dll"
165 ; GC/Wii static settings
166 SetOutPath "$INSTDIR\Sys\GC"
167 SetOverwrite ifnewer
168 File "..\Data\Sys\GC\font_ansi.bin"
169 File "..\Data\Sys\GC\font_sjis.bin"
170 SetOutPath "$INSTDIR\Sys\Wii"
171 SetOverwrite ifnewer
172 File "..\Data\Sys\Wii\setting-eur.txt"
173 File "..\Data\Sys\Wii\setting-jpn.txt"
174 File "..\Data\Sys\Wii\setting-usa.txt"
176 ; GC/Wii User settings
177 SetOutPath "$INSTDIR\User\GC"
178 SetOutPath "$INSTDIR\User\Wii\shared2\sys"
179 SetOverwrite ifnewer
180 File "..\Data\User\Wii\shared2\sys\readme.txt"
181 File "..\Data\User\Wii\shared2\sys\SYSCONF"
183 ; GameConfigs
184 SetOutPath "$INSTDIR\User\GameConfig"
185 SetOverwrite ifnewer
186 File "..\Data\User\GameConfig\*.*"
187 SectionEnd
189 Section -AdditionalIcons
190 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk" "$INSTDIR\uninst.exe"
191 SectionEnd
193 Section -Post
194 WriteUninstaller "$INSTDIR\uninst.exe"
195 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Dolphin.exe"
196 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
197 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
198 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Dolphin.exe"
199 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
200 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
201 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
202 SectionEnd
204 ; Section descriptions
205 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
206 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "It is recommended that you install all of the included files."
207 !insertmacro MUI_FUNCTION_DESCRIPTION_END
210 Function un.onUninstSuccess
211 HideWindow
212 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was uninstalled successfully.$\r$\n\
213 ATTENTION: You must manually delete$\r$\n$INSTDIR"
214 FunctionEnd
216 Function un.onInit
217 !insertmacro MUI_UNGETLANGUAGE
218 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to remove $(^Name)?" IDYES +2
219 Abort
220 FunctionEnd
222 Section Uninstall
223 SetShellVarContext all
224 ; Only uninstall what we put there; all $INSTDIR\User is left as is
225 Delete "$INSTDIR\uninst.exe"
226 Delete "$INSTDIR\*.dll"
227 Delete "$INSTDIR\Plugins\*.dll"
228 Delete "$INSTDIR\Sys\Wii\setting-usa.txt"
229 Delete "$INSTDIR\Sys\Wii\setting-jpn.txt"
230 Delete "$INSTDIR\Sys\Wii\setting-eur.txt"
231 Delete "$INSTDIR\Sys\GC\font_sjis.bin"
232 Delete "$INSTDIR\Sys\GC\font_ansi.bin"
233 Delete "$INSTDIR\Dolphin.exe"
235 Delete "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk"
236 Delete "$DESKTOP\Dolphin x64.lnk"
237 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Dolphin x64.lnk"
239 RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
240 RMDir "$INSTDIR\Sys\GC"
241 RMDir "$INSTDIR\Sys\Wii"
242 RMDir "$INSTDIR\Sys"
243 RMDir "$INSTDIR\Plugins"
244 RMDir "$INSTDIR"
246 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
247 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
248 SetAutoClose true
249 SectionEnd
251 Function LaunchDolphin
252 ExecShell "" "$DESKTOP\Dolphin x64.lnk"
253 FunctionEnd