forked from exult/exult
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
1887 lines (1564 loc) · 109 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Exult Documentation
last changed: 14 April 2016(GMT)
The latest version of this document can be found at http://exult.sourceforge.net/docs.php
1. Introduction
1.1. Exult Version
1.2. What is Exult?
1.3. Terms we use in regard to Exult and Ultima 7
2. Configurations
2.1. Installation
2.2. Location of exult.cfg
2.3. Settings in exult.cfg
2.4. Path-Settings
2.5. Path-Settings for Windows 95, 98, 98 SE and NT4.0
2.6. Path-Settings for Windows ME, 2000, XP, Vista and Windows 7
2.7. Path-Settings for Mac OS X
2.8. Path-Settings for *nix based systems
2.9. Advanced Configuration: Using both the original and the Add-Ons
2.10. Command line options
2.11. Error Log
3. Audio
3.1. Music
3.2. MIDI Music
3.3. Abilities and limitations of the MIDI music engine
3.4. Windows MIDI Mapper
3.5. OS X CoreMidi device ID
3.6. Digital Music
3.7. Digital Wave Sound Effects
3.8. All-in-One Audio Data pack and installers
3.9. Installation of the digital music packs
3.10. Installation of the digital wave sound effects
3.11. Speech
3.12. Turn off Audio
3.13. Linux and Audio
4. Video
4.1. Resolution
4.2. Fill modes
4.3. Higher resolution is cheating
4.4. Scaler
5. Movement and Keys
5.1. Movement
5.2. Keyboard commands
5.3. Cheat keys
5.4. Map Editing keys
6. ShortcutBar, Notebook and Screenshots
6.1. ShortcutBar for one or double click actions
6.2. Using the Notebook
6.3. The automatic Notebook
6.4. Screenshots
7. Exult Setup and Game Menu
7.1. Access to the Exult Setup and Game menu
7.2. Load/Save Game
7.3. Video Options
7.4. Audio Options
7.5. Gameplay Options
7.6. Misc Options
7.7. Quit
8. Mods and Patches
8.1. Introduction to Mods and Patches
8.2. Installing Mods
8.3. Installing Patches
8.4. Adapting the location of Mods and Patches
8.5. Where to find the savegames of modded games
8.6. Exchanging Savegames between original games and Mods
9. iOS Guide
9.1. The port to iOS
9.2. Installing Exult on your iPhone/iPad
9.3. Installing the games on your iPhone/iPad
9.4. Installing sfx and digital music
9.5. iOS controls
9.6. Additional iOS settings
10. Installing the original Ultima VII games for use with Exult
10.1. Installing the floppy disks of BG/SI on Windows
10.2. Installing the floppy disks of the Add-Ons FoV/SS on Windows
10.3. Installing the floppy disks of BG/SI using DOSBox
10.4. Installing the floppy disks of the Add-Ons FoV/SS using DOSBox
10.5. Manual installation of the BG floppy disks
10.6. Manual installation of the SI floppy disks
10.7. Installing the CD-ROM versions of Ultima VII
10.8. Fixing permissions of Ultima Collection on *nix systems
10.9. Using the version for Windows from GOG.com
10.10. Using the version for OS X from GOG.com
11. Credits and Contact
11.1. Thanks
11.2. Contacting us
12. Changes to the Documentation
12.1. - 14 April 2016
12.2. - 17 March 2016
12.3. - 13 March 2016
12.4. - 19 March 2015
12.5. - 09 May 2014
12.6. - 19 December 2013
12.7. - 21 November 2013
12.8. - 11 February 2013
12.9. - 15 January 2013
12.10. - 01 January 2013
12.11. - 16 December 2012
12.12. - 14 November 2012
12.13. - 28 October 2012
12.14. - 01 December 2011
12.15. - 16 March 2011
12.16. - 19 February 2011
12.17. - 24 January 2011
12.18. - 23 January 2011
12.19. - 13 October 2010
12.20. - 30 August 2010
12.21. - 25 August 2010
12.22. - 15 August 2010
12.23. - 28 April 2010
12.24. - 11 March 2010
12.25. - 10 March 2010
12.26. - 08 March 2010
12.27. - 16 July 2009
12.28. - 03 June 2009
12.29. - 20 May 2009
12.30. - 19 May 2009
12.31. - 18 May 2009
12.32. - 28 April 2009
12.33. - 21 October 2007
12.34. - 08 April 2006
12.35. - 14 March 2005
12.36. - 14 August 2004
12.37. - 23 May 2004
12.38. - 11 February 2004
12.39. - 12 December 2003
--------------------------------------------------------------------------------
1. Introduction
1.1. Exult Version
This documentation is for the 1.5.0 Git version of Exult. If you have another Exult version, its documentation can be found where you installed the release.
1.2. What is Exult?
Ultima 7, an RPG from the early 1990's, still has a huge following. But, being a DOS game with a very nonstandard memory manager, it is difficult to run it on the latest computers. Exult is a project to create an Ultima 7 game engine that runs on modern operating systems, capable of using the data and graphics files that come with the game.
Exult is written in C++ and runs on, at least, Linux, Mac OS X and Windows using the SDL library to make porting to other platforms relatively easy. The current version supports all of "Ultima 7: The Black Gate" and "Ultima 7 part 2: The Serpent Isle", allowing you to finish both games. This is only possible due to the work done by other fans who have decoded the various Ultima 7 data files, especially Gary Thompson, Maxim Shatskih, Jakob Schonberg, and Wouter Dijkslag.
Exult aims to let those people who own Ultima 7 (copyright 1993) play the game on modern hardware, in as close to (or perhaps even surpassing) its original splendor as is possible. You need to own "Ultima 7: The Black Gate" and/or "Ultima 7: Serpent Isle" and optionally the add-ons (not required to run) in order to use Exult, and we encourage you to buy a legal copy.
1.3. Terms we use in regard to Exult and Ultima 7
We are using many terms in this documentation, the FAQ and other documentation files that people may have difficulties to understand. Here we will try to give some explanations.
* BG, SI, FoV or SS: we refer to "Ultima 7: The Black Gate" as BG and to "Ultima 7: Serpent Isle" as SI. The add-ons "Forge of Virtue" and "Silver Seed" are called FoV and SS.
* eggs: these are trip-wires that can cause monsters to spawn, execute scripts, play music, change weather, trigger traps or teleport when you get near them.
* flex files: also known as flexes, these are used by the original to store the data files. Also when you choose to not use compressed save games (see save_compression_level in 2.3.) our save games are also "flexed".
* gumps: the windows used in the game interface for containers, characters, menus, etc..
* paperdoll: when pressing 'i' you get the inventory display. It's the picture of your characters body (or the bodies of your party members) onto which you can drag all kinds of equipment. The way this is displayed in SI is what we call paperdoll. We integrated this for BG as well. (see FAQ.txt).
* shapes: shape files are the format used for storage of all graphics elements (from UI buttons to terrain features) of the games Exult supports. Shapes may contain one or more frames (a frame is a single image).
* snapshot: see FAQ.txt. Please note that our documentation usually refers to the latest snapshot.
* usecode: that's the scripting language that drives all of U7 (conversations, objects...).
* Exult data folder: that's the folder where Exult stores its data files (exult.flx, exult_bg.flx and exult_si.flx).
* gamename name of games that are set in exult.cfg's <game>, Exult knows by default the gamenames blackgate, forgeofvirtue, serpentisle and silverseed
--------------------------------------------------------------------------------
2. Configurations
2.1. Installation
* First you need to get Ultima 7. Either you own it already, or you buy it somewhere.
* You need an installed version of Ultima 7 to run Exult with. At 10. Installing the original Ultima VII games for use with Exult we have a guide on how to install the original games.
* Copy the installed Ultima7 folder to an appropriate folder
* Download Exult from our download section and install it. The Windows version comes with an installer that asks for the location of both BG and SI. If you entered the correct location the next two steps are not necessary.
* Now run exult (exult.exe on Windows) and quit it immediately.
* Edit the configuration file with a text editor (e.g. on Windows use Notepad) and enter the correct paths for the game folders - see 2.3. for details
* Run exult and enjoy the game :-)
Word of advice: Don't mix the files from BG and SI.
Note: If you run Exult on an original Ultima7 game which you're actually in the middle of playing, your game will be overwritten. Since Exult's files have a different format, there is no way to convert those original save games.
2.2. Location of exult.cfg
Exult stores its setting in the file exult.cfg. The location of the file varies depending on the Operating System and in the case of Windows OS it also depends on the version of Windows.
* On UNIX systems you can expect to find it in $HOME/.exult.cfg
* Mac OS X saves it to ~/Library/Preferences/exult.cfg
* Windows 95, 98, 98 SE and NT4.0 save the exult.cfg to the folder where you installed Exult to (by default C:\Program Files\Exult)
* Windows ME saves exult.cfg to C:\Windows\Application Data\Exult
* Windows 2000 and XP save exult.cfg to LOCAL_APPDATA\Exult, which translates to C:\Documents and Settings\YourUsername\Local Settings\Application Data\Exult for an English version of Windows
* Windows Vista and Windows 7 also save exult.cfg to LOCAL_APPDATA\Exult, but on these this translates to "C:\Users\YourUsername\AppData\Local\Exult"
* On Windows 2000, XP, Vista and 7 you can quickly access this folder by executing "shell:Local AppData\Exult" in the "Run" entry of the Startmenu (or the "Run or Search" entry of the Windows Vista and 7 Startmenu)
2.3. Settings in exult.cfg
Most of the options in Exult can be changed from the Setup menu when you run Exult or via the Game Options menu. Exult stores these changes in a configuration file. Except for changing paths to the games you shouldn't need to edit the file. Very few options need manual editing.
Note: the settings in exult.cfg are the same on all operating systems (except when explicitly stated below).
The file uses a simple hierarchical XML-like syntax, which should be simple to understand and modify. Take care though. Handling of syntax errors in this file is not well tested.
The file looks like this (do not copy the **and following - these are my remarks), options you can only change manually are colored in purple.
Note: yes means enabled, no means disabled
<config>
<disk>
<save_compression_level>
1
**save games are now compressed as zip files. 0 disables compression,
1 enables it, 2 compresses even a bit better. Default is 1.
</save_compression_level>
<data_path>
data
**this is where Exult stores its data files that are needed to run (e.g. exult???.flx files)
</data_path>
<music_path>
data/music
**optional. Location of digital music. See also 3.6.
</music_path>
<game>
<blackgate>
<path>
path_to/blackgate
**path to the BG game. See 2.4. before changing it.
</path>
<savegame_path>
optional_path
**optional. Default is the same as <path>, change to whatever you like.
Also see 2.4. before changing it.
</savegame_path>
<static_path>
path_to/blackgate/static
**optional. See 2.4. before changing it.
</static_path>
<gamedat_path>
optional_path/gamedat
**optional. See 2.4. before changing it.
</gamedat_path>
<keys>
(default)
**configure custom key bindings or leave the (default)
- see 5.2.
</keys>
<autonotes>
(default)
**set path to a custom autonotes file or leave the (default)
- see 6.3.
</autonotes>
<waves>
jmsfx.flx
**optional setting see 3.7. for configuration
</waves>
<mods>
optional_path/mods
**optional. See 8.4.
</mods>
<patch>
optional_path/patch
**optional. See 8.4.
</patch>
</blackgate>
<serpentisle>
<path>
path_to/serpentisle
**path to the SI game. See 2.4. before changing it.
</path>
<savegame_path>
optional_path
**optional. Default is the same as <path>, change to whatever you like.
Also see 2.4. before changing it.
</savegame_path>
<static_path>
path_to/serpentisle/static
**optional. See 2.4. before changing it.
</static_path>
<gamedat_path>
optional_path/gamedat
**optional. See 2.4. before changing it.
</gamedat_path>
<keys>
(default)
**configure custom key bindings or leave the (default)
- see 5.2.
</keys>
<autonotes>
(default)
**set path to a custom autonotes file or leave the (default)
- see 6.3.
</autonotes>
<waves>
jmsisfx.flx
**optional setting see 3.7. for configuration
</waves>
<mods>
optional_path/mods
**optional. See 8.4.
</mods>
<patch>
optional_path/patch
**optional. See 8.4.
</patch>
</serpentisle>
</game>
</disk>
<gameplay>
<facestats>
-1
**activates the status faces and the position on the screen.
-1 disable,0 left, 1 middle, 2 right.
</facestats>
<textbackground>
-1
**with this enabled all the text in the games have a colored background
to improve readability. 0 gives a solid light gray, 1 dark purple,
2 bright yellow, 3 light blue, 4 dark green, 5 dark red, 6 purple,
7 orange, 8 light gray, 9 green, 10 yellow, 11 pale blue, 12 dark green,
13 red, 14 bright white, 15 dark gray, 16 white. -1 disables this.
</textbackground>
<fastmouse>
no
**enables faster cursor movement in full screen mode.
</fastmouse>
<mouse3rd>
yes
**enables using of the middle mouse button.
</mouse3rd>
<double_click_closes_gumps>
no
</double_click_closes_gumps>
<right_click_closes_gumps>
no
</right_click_closes_gumps>
<allow_right_pathfind>
double
**right-clicking lets the Avatar walk automatically
to where you clicked. it defaults to double click but
you can opt for a single click or disable it.
</allow_right_pathfind>
<scroll_with_mouse>
no
**when in cheat mode allow to scroll the gameview with the mouse-
</scroll_with_mouse>
<gumps_dont_pause_game>
yes
**yes doesn't pause the game when gumps are shown.
</gumps_dont_pause_game>
<cheat>
yes
**enable/disable cheats
</cheat>
<bg_paperdolls>
no
**yes enables SI style paperdolls in BG.
</bg_paperdolls>
<smooth_scrolling>
0
**0/25/50/75/100 percentage of how smooth the game scrolls when the avatar
moves. 0 disables smooth scrolling and uses the "jerky" scrolling of the
original game.
</smooth_scrolling>
<skip_intro>
no
**this skips the scripted first scene in BG and SI during which you can't move.
</skip_intro>
<skip_splash>
no
**this skips the splash screen, the intro before you get to the
game menu. Disabling it brings you straight to the game menu.
</skip_splash>
<formation>
yes
**yes forces the party to walk in a formation similar to the original game.
See FAQ.txt in the FAQ.
</formation>
<step_tile_delta>
8
**Controls how far the Avatar will move before Exult recalculates the
Avatar's and the party's movement. Bigger # avoids jerkiness, but may cause other
problems.
</step_tile_delta>
<alternate_drop>
no
**Dropping stacks of items will drop the whole stack without asking how many when enabled.
Hold 'Ctrl' while dropping to split the stack.
</alternate_drop>
<allow_autonotes>
no
**Automatically fill the notebook with entries when game flags are set.
See 6.3.
</allow_autonotes>
<combat>
<difficulty>
0
**0 is default, negative values make combat easier, positive makes it
harder. It affects the chance of a hit, and the HP's lost if a hit occurs.
Ranges from -3 to 3 (easiest to hardest).
</difficulty>
<mode>
original
**original or keypause. On keypause the game pauses when you hit space
so you can make changes in combat.
</mode>
<show_hits>
no
**no is default. With yes you see the hit points of NPCs
in brackets after their name.
</show_hits>
<charmDifficulty>
normal
**with normal the Avatar behaves as in the original game. When he is charmed
he will be highlighted as charmed and the status icon will show but you can control him as usual.
"hard" will neither allow the player to control the Avatar nor access his inventory.
</charmDifficulty>
</combat>
</gameplay>
<audio>
<enabled>
yes
**enable/disable all audio - this takes precedence over the
other audio settings. (You can change this in game via
'Esc' - the setting is saved.)
</enabled>
<disablepause>
no
**enable/disable the pausing of SFX and digital music when the
game pauses (e.g. not the focused window). MIDI music is currently not paused.
</disablepause>
<sample_rate>
22050
**set the sample rate of Exult. Default is 22050, Windows CE defaults to 11025.
</sample_rate>
<stereo>
yes
**enable/disable stereo sound. Windows CE is set to disabled.
</stereo>
<effects>
<enabled>
yes
**enable/disable sound effects. (You can change this in game via
'Esc' - the setting is saved.)
</enabled>
</effects>
<speech>
<enabled>
yes
**enable/disable speech. (You can change this in game via
'Esc' - the setting is saved.)
</enabled>
</speech>
<midi>
<enabled>
yes
**enable/disable ALL Music (You can change this in game via
'Esc' - the setting is saved.)
</enabled>
<use_oggs>
no
**use pre-recorded ogg files for music - see 3.1.
</use_oggs>
<driver>
default
**choose your music driver between default, MT32Emu, Fluidsynth, FMOPL,
TiMidity, Windows, Amiga, Forked, KMIDI, alsa, CoreAudio,
CoreMidi, UnixSeqDevice.
See 3.1. for details.
</driver>
<convert>
gm
**see 3.2.
</convert>
<looping>
yes
**No disables music looping. See 7.4.
</looping>
<chorus>
<enabled>
no
**alters the way MIDI is played.
</enabled>
<level>
0
**how much the MIDI is altered. Value can be 0-127.
</level>
</chorus>
<reverb>
<enabled>
no
**alters the way MIDI is played.
</enabled>
<level>
0
**how much the MIDI is altered. Value can be 0-127.
</level>
</reverb>
<precacheTimbers>
<onStartup>
no
**when enabled it preloads the entire timbre bank on starting
up Exult with a penalty on start up time.
</onStartup>
<onPlay>
yes
**only preloads needed timbres and patches when a song gets
loaded.
</onPlay>
</precacheTimbers>
<win32_device>
-1
**choose the Windows MIDI Device. See 3.4.
</win32_device>
<coreaudio_soundfont>
path
**path to the sound font you want to use for CoreAudio on OS X.
CoreAudio uses the system sound font by default.
</coreaudio_soundfont>
<coremidi_device>
path
**select the CoreMidi device ID on OS X.
You need to start Exult from Terminal.app to see the IDs when you select CoreMidi as Midi driver.
See 3.5..
</coremidi_device>
<alsa_port>
65:0
**use this to change the ALSA port when you have chosen alsa as your driver
(format: XX:YY).
</alsa_port>
<unixseqdevice>
/dev/sequencer
**the device to be used when you have chosen the driver UnixSeqDevice
</unixseqdevice>
<fluidsynth_soundfont>
path
**path to the sound font that will be used to render the MIDI music
when Fluidsynth is chosen as driver.
</fluidsynth_soundfont>
<fluidsynth_soundfontN>
path
**support for FluidSynth soundfont stack, add multiple soundfonts
(N = 0 to 9). See 3.2..
</fluidsynth_soundfontN>
<volume_curve>
1.000000
**set volume (kind of at least, best don't change)
</volume_curve>
</midi>
</audio>
<video>
<share_video_settings>
yes
**yes means that fullscreen and windowed mode share the same
video settings.
</share_video_settings>
<fullscreen>
no
**do you want to play full screen?
</fullscreen>
<scale_method>
2xSaI
**choose different scalers here - see 4.4. - applies to fullscreen if video settings are not shared.
</scale_method>
<scale>
2
**2 enables / 1 disables scaling, some scalers support higher values.
See 4.4. - applies to fullscreen if video settings are not shared.
</scale>
<display>
<width>
640
**here you choose the resolution of the Exult window.
The default will be the lowest resolution that your system supports.
Applies to fullscreen if video settings are not shared.
</width>
<height>
480
</height>
</display>
<game>
<width>
320
**here you choose at what resolution you run the games in the
Exult window. 320x200 is the resolution of the original.
0x0 means that Exult will determine the best way to match
game resolution to Exult resolution - applies to fullscreen if video settings are not shared.
</width>
<height>
200
</height>
<border>
<red>
0
**if game resolution doesn't match Exult resolution
you have borders around the game res. With these you can
change the black default border color - applies to fullscreen if video settings are not shared.
</red>
<green>
0
</green>
<blue>
0
</blue>
</border>
</game>
<fill_mode>
Centre
**Possible options are Fill, Fit, Aspect Correct Fit, Centre and Aspect Correct Centre.
Please see 4.2. for more information about these options.
Applies to fullscreen if video settings are not shared.
</fill_mode>
<fill_scaler>
Bilinear
**Chose between Point and Bilinear.
Please see 4.2. for more information about this - applies to fullscreen if video settings are not shared.
</fill_scaler>
<windows>
<scale_method>
2xSaI
</scale_method>
<scale>
2
</scale>
<display>
<width>
640
</width>
<height>
240
</height>
</display>
<game>
<width>
320
</width>
<height>
200
</height>
</game>
<fill_mode>
Centre
</fill_mode>
<fill_scaler>
Bilinear
Please see 4.2. for more information about this.
</fill_scaler>
</windows>
<force_bpp>
0
**force output bpp. Valid values are 0 (for any), 8, 16 or 32.
If set to 8 most scalers will not work and will display as the
fallback point scaler.
</force_bpp>
<disable_fades>
no
**"no" enables fading between different menu points
</disable_fades>
<fps>
10
**Speed setting. Might help when the game seems too slow or too fast.
The in game menu shows this setting in the Gameplay menu.
</fps>
<gamma>
<red>
1
**set gamma levels to adjust brightness, same as +/- in game
</red>
<green>
1
</green>
<blue>
1
</blue>
</gamma>
</video>
<shortcutbar>
<use_shortcutbar>
no
**options are yes/translucent (will not be translucent if not on
map, default on iOS)
</use_shortcutbar>
<use_outline_color>
black
**outline around shortcutbar buttons only if the bar is on the map.
Options are: no, green, white, yellow, blue, red, purple, black (default).
</use_outline_color>
<hide_missing_items>
yes
**hides ShortcutBar buttons the party doesn't have.
no shows those buttons greyed out.
</hide_missing_items>
</shortcutbar>
<debug>
<trace>
<usecode>
no
**options are yes/no/verbose. This is used to trace the
executed Usecode. (You shouldn't need this unless you are a programmer.)
</usecode>
<intrinsics>
no
**options are yes/no. Used to trace intrinsics.
(You shouldn't need this unless you are a programmer.)
</intrinsics>
<combat>
no
**options are yes/no. If enabled, show combat messages.
</combat>
</trace>
</debug>
</config>
2.4. Path-Settings
The way Exult generates default paths (for gamedat, savegames, mods, patches) has changed since Version 1.2. It will not write these paths to exult.cfg but use them automatically. The location where Exult expects those, and if needed, will create those folders is similarly depending on the Operating System as the location of exult.cfg (see 2.2. Location of exult.cfg). If you were to override these paths you would need to change the following tags (you can substitute gamename with the "known games" - see 1.3.):
<config>
<disk>
<data_path>
data
</data_path>
<game>
<gamename>
<path>
path_to/gamename
</path>
<static_path>
path_to/gamename/static
</static_path>
<savegame_path>
optional_path
</savegame_path>
<gamedat_path>
optional_path/gamedat
</gamedat_path>
<mods>
path_to/gamename/mods
</mods>
<patch>
path_to/gamename/patch
</patch>
</gamename>
But normally you don't need to. On starting up, Exult will first read which games are available as configured in exult.cfg. Then it will use the <path> setting and assume that <static_path> is <path>/static. For <savegame_path>, <gamedat_path>, <mods> and <patch> Exult will assume Operating System specific paths.
These folders are used for:
* <data_path> the most important folder. In this folder are the files Exult absolutely needs to run. We also check the checksums of these files to make sure that Exult uses the correct ones.
* <static_path> the second most important folder. In there you have the data files from the original game. You should never touch these files.
* <savegame_path> this is where Exult stores your savegames.
* <gamedat_path> contains the (dynamic) data for the game you're currently playing. It's where the "journey onward" and "quicksave" 'savegame' is stored.
* <mods> here mods for games are saved to. More information on this at 8.1. Introduction to Mods and Patches
* <patch> Patches for games are saved here. More information on this at 8.1. Introduction to Mods and Patches
Some notes for all Operating Systems:
* On Windows all of these settings, except for the <path> setting, are optional and not required, Exult will sort this out on its own.
* On *nix and OS X you might even not need to touch the <path> setting, if you stick to our standard gamenames.
* You can either use the relative (e.g. ./ultima7) or absolute (e.g. c:\exult\ultima7) path to point to the correct folder. The relative path uses the exult.exe, exult binary or Exult.app as base.
* Better don't use spaces in the path (e.g. c:\exult\the black gate\). Some people seem to have reported problems with that.
* Path settings in exult.cfg are the same on all operating systems. Of course you need to make adjustments on *nix based systems when you enter the absolute path.
* Exult and Exult Studio don't trust the exult.cfg 100% and will recognize which games you entered the path for. This means, that if you entered the path to SI in the <blackgate><path> Exult and Exult Studio will not be fooled.
* Don't ever point <static_path> and <gamedat_path> to the same folder.
2.5. Path-Settings for Windows 95, 98, 98 SE and NT4.0
On Windows 95, 98, 98 SE and NT4.0 Exult will not use any special folders, instead it will use the folder where the games BG and SI are found.
<config>
<disk>
<data_path>
data
</data_path>
<game>
<gamename>
<path>
path_to\gamename
</path>
<static_path>
path_to\gamename\static
</static_path>
<savegame_path>
path_to\gamename
</savegame_path>
<gamedat_path>
path_to\gamename\gamedat
</gamedat_path>
<mods>
path_to\gamename\mods
</mods>
<patch>
path_to\gamename\patch
</patch>
</gamename>
2.6. Path-Settings for Windows ME, 2000, XP, Vista and Windows 7
On Windows ME, 2000, XP, Vista and Windows 7 Exult uses the special system folder LOCAL_APPDATA:
<config>
<disk>
<data_path>
data
</data_path>
<game>
<gamename>
<path>
path_to\gamename
</path>
<static_path>
path_to/gamename/static
</static_path>
<savegame_path>
LOCAL_APPDATA\Exult\gamename
</savegame_path>
<gamedat_path>
LOCAL_APPDATA\Exult\gamename\gamedat
</gamedat_path>
<mods>
path_to\gamename\mods
</mods>
<patch>
path_to\gamename\patch
</patch>
</gamename>
Note that on Windows ME LOCAL_APPDATA\Exult translates to C:\Windows\Application Data\Exult, on Windows 2000 and XP to "C:\Documents and Settings\YourUsername\Local Settings\Application Data\Exult" and on Windows Vista and W7 to "C:\Users\YourUsername\AppData\Local\Exult". Also not that on Windows 2000, XP, Vista and 7 you can quickly access this folder by executing "shell:Local AppData\Exult" in the "Run" entry of the Startmenu (or the "Run or Search" entry of the Windows Vista and 7 Startmenu). For now Exult's data folder is always installed into the same folder where you installed Exult to (default is C:\Program Files\Exult). Also not that in contrast to Mac OS X and *nix systems there is no default path, where Exult looks for the games. You have to choose that folder yourself, but the installer will ask you for the BG and SI folder to set your paths up.
Example: User named Dominus on Windows XP. BG is installed to C:\Ultima7\blackgate and SI is installed to C:\Ultima7\serpentisle. The installer of Exult asks for the location of these two games and automatically saves that to exult.cfg. The installer saves exult.cfg to C:\Documents and Settings\Dominus\Local Settings\Application Data\Exult\exult.cfg. Exult gets installed to C:\Program Files\Exult. When you save a game in BG the savegame will be saved to C:\Documents and Settings\Dominus\Local Settings\Application Data\Exult\blackgate\exult00bg.sav, for SI to C:\Documents and Settings\Dominus\Local Settings\Application Data\Exult\serpentisle\exult00si.sav. If you install for example the keyring mod, you copy the contents of the Keyring.zip to C:\Ultima7\blackgate\mods. When you save a game with the Keyring mod, this savegame will be found in C:\Documents and Settings\Dominus\Local Settings\Application Data\Exult\blackgate\mods\keyring\exult00bg.sav
Example: User named Dominus on Windows 7. BG is installed to C:\Ultima7\blackgate and SI is installed to C:\Ultima7\serpentisle. The installer of Exult asks for the location of these two games and automatically saves that to exult.cfg. The installer saves exult.cfg to C:\Users\Dominus\AppData\Local\Exult\exult.cfg. Exult gets installed to C:\Program Files\Exult. When you save a game in BG the savegame will be saved to C:\Users\Dominus\AppData\Local\Exult\blackgate\exult00bg.sav, for SI to C:\Users\Dominus\AppData\Local\Exult\serpentisle\exult00si.sav. If you install for example the keyring mod, you copy the contents of the Keyring.zip to C:\Ultima7\blackgate\mods. When you save a game with the Keyring mod, this savegame will be found in C:\Users\Dominus\AppData\Local\Exult\blackgate\mods\keyring\exult00bg.sav
2.7. Path-Settings for Mac OS X
On Mac OS X Exult uses a couple of different folders to follow Apple's guidelines:
<config>
<disk>
<data_path>
/Library/Application Support/Exult/data
</data_path>
<game>
<gamename>
<path>
/Library/Application Support/Exult/gamename
</path>
<static_path>
/Library/Application Support/Exult/gamename/static
</static_path>
<savegame_path>
~/Library/Application Support/exult/gamename
</savegame_path>
<gamedat_path>
~/Library/Application Support/exult/gamename/gamedat
</gamedat_path>
<mods>
/Library/Application Support/exult/gamename/mods
</mods>
<patch>
/Library/Application Support/exult/gamename/patch
</patch>
</gamename>
Note that on OS X Exult also has a default folder (/Library/Application Support/Exult/) for Exult's data and the files of the games. On purpose this folder is not in the User-only space, so other users on the same mac can play the games and use the Exult.app. But you will need to follow our gamename standard when you name the game folders, see 1.3. Terms we use in regard to Exult and Ultima 7, otherwise Exult will not find them there. Another specialty on OS X is that the Exult.app comes bundled with the Exult data, so Exult will first use the data in the Exult.app and then use the data in the default location (/Library/Application Support/Exult/data) or the location written down in exult.cfg's <data_path>. This means that you can copy the sfx files and the digital music folder into the app bundle (Exult.app/Contents/Resources/data) and Exult will automatically use these.
Example: User named Dominus on Mac OS X 10.6. BG is installed to /Library/Application Support/Exult/blackgate and SI is installed to /Library/Application Support/Exult/serpentisle. The app Exult.app is saved to /Applications. When you run Exult it will automatically recognize that BG and SI are installed. You do not need to edit exult.cfg, which is saved to /Users/Dominus/Library/Preferences/exult.cfg. When you save a game in BG the savegame will be saved to /Users/Dominus/Library/Application Support/exult/blackgate/exult00bg.sav, for SI to Users/Dominus/Library/Application Support/exult/serpentisle/exult00si.sav. If you install for example the keyring mod, you copy the contents of the Keyring.zip to /Library/Application Support/Exult/blackgate/mods. When you save a game with the Keyring mod, this savegame will be found in /Users/Dominus/Library/Application Support/exult/blackgate/mods/keyring/exult00bg.sav.
Please be aware of the difference between /Library/... and ~/Library/... In the root of your OS X system hard drive is the folder /Library. The folder ~/Library is a sub folder of your homefolder. If your username is foobar then the folder ~/Library is located at /Users/foobar/Library on your hard drive. On OS X 10.7 (Lion) and newer the folder ~/Library is hidden by default. To access it anyway open Finder, click on the menu item "Go" while pressing 'Option/Alt' and "Library" will be an option to click on.
If you followed all the instructions and Exult still won't recognize the games, you can try deleting exult.cfg in ~/Library/Preferences and then start Exult.
2.8. Path-Settings for *nix based systems
On *nix based systems Exult uses:
<config>
<disk>
<data_path>
/usr/local/share/exult
</data_path>
<game>
<gamename>
<path>
/usr/local/share/exult/gamename
</path>
<static_path>
/usr/local/share/exult/gamename/static
</static_path>
<savegame_path>
$HOME/.exult/gamename
</savegame_path>
<gamedat_path>
$HOME/.exult/gamename/gamedat
</gamedat_path>
<mods>
/usr/local/share/exult/gamename/mods
</mods>
<patch>
/usr/local/share/exult/gamename/patch
</patch>
</gamename>
As on OS X, Exult uses on *nix systems a default path for its data folder and the game files. Unless you use a different path in exult.cfg, Exult will look for these in /usr/local/share/exult. But you will need to follow our gamename standard when you name the game folders, see 1.3. Terms we use in regard to Exult and Ultima 7, otherwise Exult will not find them there.
Example: User named Dominus on Ubuntu. BG is installed to /usr/local/share/exult/blackgate and SI is installed to /usr/local/share/exult/serpentisle. When you run Exult it will automatically recognize that BG and SI are installed. You do not need to edit exult.cfg, which is saved to $HOME/.exult.cfg. When you save a game in BG the savegame will be saved to $HOME/.exult/blackgate/exult00bg.sav, for SI to $HOME/.exult/serpentisle/exult00si.sav. If you install for example the keyring mod, you copy the contents of the Keyring.zip to /usr/local/share/Exult/blackgate/mods. When you save a game with the Keyring mod, this savegame will be found in $HOME/.exult/blackgate/mods/keyring/exult00bg.sav.
2.9. Advanced Configuration: Using both the original and the Add-Ons
If you own both BG or SI without the add-ons FoV and SS and also the versions that has the add-ons you can now have them both shown in the Exult menu. Before you had to edit the exult.cfg when you wanted to switch the games. You now just have to add the tags for the two games.
<config>
<disk>
<game>
<blackgate>
<path>
path_to/blackgate
</path>
</blackgate>
<forgeofvirtue>
<path>
path_to/forgeofvirtue
</path>
</forgeofvirtue>
<serpentisle>
<path>
path_to/serpentisle
</path>
</serpentisle>
<silverseed>
<path>
path_to/silverseed
</path>
</silverseed>
</game>
</disk>
If you only own one version of the game, you don't have to worry about this advanced configuration, just follow the instructions at 2.1.. You only have to do this extra work if you want to differentiate between original game with and without the add-on.
Note: You cannot interchange savegames of games started with or without the add-ons.
And again, Exult and Exult Studio will not be fooled by false games under <gamename><path>.
2.10. Command line options
Exult offers some "hidden" command line options:
* -h or --help Shows all the command line parameters in stderr (stderr.txt on Windows systems).
* -v or --version Shows version information in stderr.
* -c configfile Specify alternate config file (relative or absolute paths work).
* -p Portable option for Windows only. Exult will read cfg file from the folder it got installed to (or make one) and will also save to gamename folders in the Exult install folder. For example if Exult got installed to E:\Exult, a BG game will be saved to E:\Exult\blackgate. Be careful that you have actually writing permissions in the Exult folder or this will fail.
* --bg Starts the game with the Black Gate menu (prefers original game).
* --fov Starts the game with the menu of the Black Gate with Forge of Virtue expansion. Only useful if you have FoV added as described at 2.9., otherwise it will just work like the command '--bg'.
* --si Starts the game with the Serpent Isle menu (prefers original game).
* --ss Starts the game with the menu of the Serpent Isle with Silver Seed expansion. Only useful if you have SS added as described at 2.9., otherwise it will just work like the command '--si'.
* --nomenu Skips game menu.
* --game gamename Loads a game specified in exult.cfg when there are other games made with Exult Studio.
* --mod modname Must be used together with '--bg', '--si' or '--game gamename'; runs the specified game using the mod with title equal to 'modname'. 'modname' is the name of the mod cfg file (e.g. keyring.cfg means 'modname' 'keyring'.
* --buildmap x x = 0 shows all roofs, x = 2 pops them all. Builds the map of the game specified. The map is huge and in pcx format, you will need a lot of ram to even look at this map once it is build (and even that requires a lot of patience) Exult is required to be run in windowed mode and you get the best map if you started a new game before you build the map. You need to specify a game, either by '--bg' (or '--si', '--fov', '--ss') or with the '--game'/'--mod' option.
* --mapnum This must be used with '--buildmap'. Selects which map (for multimap games or mods) whose map is desired.
* --nocrc Recently we added a crc check that Exult doesn't start when the exult*.flx files in the data folder aren't the same it got compiled with. This parameter lets the game start nevertheless. Don't try this if you don't know what you are doing.
* --edit Start in map-edit mode. This will also load Exult Studio when the game is started.
* --write-xml Write 'patch/exultgame.xml'. Only useful for game editing.
* --reset-video resets Exult's video settings to the default values. Very helpful when Exult isn't playable anymore because of wrong settings.
2.11. Error Log
* Windows: Exult generates the files 'stdout.txt' and 'stderr.txt'. These may give you some idea of what is going on under the hood. When Exult suddenly quits, sometimes these files can help. You can find these files in the folder where exult.cfg is located (see 2.2.)
* UNIX/UNIX clones: the above mentioned logs are shown in the console from which Exult is started. ./exult >&log will send both stderr and stdout to the file named "log".
* Mac OS X: When you are running the app bundle Exult.app then the error log will be shown in the OS X Application Console (/Applications/Utilities/Console.app).
--------------------------------------------------------------------------------
3. Audio
3.1. Music
There are three general ways that music is played in Exult. One is using MIDI, which plays the music through any MIDI device, or software synthesizers like TiMidity and FluidSynth. Another way is Digital Music encoded into OGG (similar to MP3) which was recorded directly from a Roland MT-32. The third option is FMOpl which emulates Opl2/Adlib. The MIDI files are converted on-the-fly from the original Ultima 7 MT-32 files to General MIDI format so that they will be playable on modern General MIDI and General MIDI/GS supporting sound cards.
The Music driver options can be changed in the in-game menu that you open by hitting 'ESC'. There you can enable Digital Music and change the MIDI driver, through which you can also select the FMOpl emulation. When you enable Digital Music, it takes precedence over the MIDI driver.
3.2. MIDI Music
The MIDI driver can be changed to:
* Default This setting utilizes the default MIDI driver of your system.
* FMOPL This is a Software FM Synthesizer (also known as a emulated Opl2/Adlib).
* TiMidity is a software synthesizer that can play MIDI files without a hardware synthesizer. You can install TiMidity on all major Operating systems. You need to place tmidity.cfg into the same folder where the Exult executable is installed to, otherwise TiMidity will not work. On linux systems it needs to be in ~/.exult.
* FluidSynth is another software synthesizer, which uses SoundFont 2 technology without need for a SoundFont-compatible sound card. It is available for many Operating Systems and opposed to TiMidity still actively developed. Since Fluidsynth pulls in many dependencies it is not compiled into Exult at the moment. If you compiled Exult ourself and you enabled Fluidsynth you just need to edit exult.cfg and point <config><audio><midi><fluidsynth_soundfont> to the SoundFont you want to use. Exult supports FluidSynth's soundfont stack. Soundfonts are specified in the <config><audio><midi><fluidsynth_soundfontN> exult.cfg entries (N = 0 to 9) which are loaded in numerical order (0 first), plus the old <fluidsynth_soundfont> entry, which loads after all others.
* MT32Emu Roland MT32 emulation requires either the ROM set "MT32_CONTROL.ROM" and "MT32_PCM.ROM" or the ROM set "CM32L_CONTROL.ROM" and "CM32L_PCM.ROM" in the Exult data folder. If both sets are present the CM32L ROM set will be used.
* Windows When you are using Windows and for some reason the Default driver doesn't work.
* Amiga Uses the Amiga MIDI driver on the Amiga system.
* CoreAudio uses XMIDI on Mac OS X. You can use a different soundfont than OS X' default by pointing <config><audio><midi><coreaudio_soundfont> to it in exult.cfg.
* CoreMIDI on Mac OS X this MIDI driver allows using a real MIDI device like a Roland MT32 or software MIDI devices like Munt MT-32 Emulator. If you have more than one MIDI device you can choose the the device by setting the device ID in exult.cfg <config><audio><midi><coremidi_device> - see 3.5..
* alsa uses ALSA on Linux systems. If your ALSA port is not on 65:0 you need to change <config><audio><midi><alsa_port> in the exult.cfg.
* Forked On *nix systems uses POSIX fork to create a new thread which will then handle the MIDI playback
* KMIDI On Linux systems uses uses libkmidi, a KDE MIDI library.
* UnixSeqDevice On Linux systems writes to special symbolic file, default "/dev/sequencer". This can be changed at <config><audio><midi><unixseqdevice> in the exult.cfg.
For drivers that use a real MIDI device, the device type for MIDI can be changed to:
* MT32 This option will output the music with nothing changed. Because the mapping will be for MT32s you should only use this option if you have a MT32 compatible device. With this option Exult will also send SysEx messages to the Roland MT32 display, which are nice to watch when you have such a device.
* GM This will convert the MT32 patches to standard General MIDI patches. Conversion is fairly accurate but some instruments may be different.
* GS This will convert the MT32 patches to their equivalent GS patches. This will be a more accurate conversion that straight gm since more of the MT32 patches are in the GS set. However, not all MIDI devices will support this mode.
* GS127 This option is for MIDI devices that have a MT32 patch bank installed in Bank 127. Some GS implementation have this, some don't. Only use this if you know that you have a MT32 implementation on Bank 127.
* Fake MT32 This is for MIDI devices that behave like a MT32 but don't support SysEx messages. Use that option if you have a SoundFont or similar loaded for your sound card (or software synth such as FluidSynth) that contains the MT32 capital tones but the device can't be reprogrammed using MT32 SysEx commands by Exult.
NOTE: Currently the conversion to GS and GS127 is not finished and the notes are only mapped to General MIDI.
3.3. Abilities and limitations of the MIDI music engine
Due to the way the class was constructed input can be in either .mid, .rmi or the Miles Sound System .xmi format. There are no limitations to they types of .mid and .rmi supported. They can be Type 0, 1 and the rarely seen type 2. The loading routine is also fairly lenient of erroneous XMIDI files that do not have correct XMIDI headers.
During the development of the XMIDI class it was found that certain .xmi files in Serpent Isle had the first patch changes after the first note. The converter will attempt to correct these errors. However it may cause problems with some MIDI files. Currently this can not be disabled and may change in the future.
3.4. Windows MIDI Mapper
You can now tell Exult which MIDI device it should use. This is useful if you want Exult to use a different MIDI device than the default Windows device (like an MT-32).
To do this start Exult, on the menu choose "Exit". Now open the file stdout.txt in the folder where exult.cfg is located (see 2.2.). You will see a listing of the MIDI devices. For example with an SB Live! in Win2k it will look like this:
4 Midi Devices Detected Listing midi devices: -1: Microsoft MIDI-Mapper 0: A: SB Live! MIDI Synth 1: B: SB Live! MIDI Synth 2: SB Live! MIDI UART
By default Exult uses the Microsoft MIDI-Mapper (which uses the device you choose in the Windows Multimedia Properties). To change the MIDI Device open exult.cfg and change
<config>
<audio>
<midi>
<win32_device>
-1
</win32_device>
with the device you want to use.