-
Notifications
You must be signed in to change notification settings - Fork 6
/
unreal.ini
1354 lines (1186 loc) · 38.8 KB
/
unreal.ini
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
[*]
; unreal speccy configuration file
UNREAL=0.39.0 ; make sure you don't have old INI version
[MISC]
; give idle timeslices to other applications
ShareCPU=1 ; 1 - only for fast CPUs (incompatible with SoundDrv=none)
;
HighPriority=1 ; boost process priority, disabled on ShareCPU=0
;
SyncMode=SOUND ; video synchronization method: sound, tsc, video
;
HighResolutionTimer=0 ; 1 - set system timer resolution to 1ms, 0 - default timer resolution (~15ms)
;
; high memory: PENTAGON, SCORPION, PROFSCORP, PROFI, ATM450, ATM710, ATM3, KAY, PLUS3, QUORUM
HIMEM=PENTAGON
; memory size, KB. pentagon,atm2: 128/256/512/1024, scorp,kay: 256/1024,
; ATM450: 512/1024, profi: 1024 only, quorum: 128/1024
RAMSize=128
; Lock memory above 128k when loading sna128 (pentagon only)
Sna128Lock=1
; intercept rom tape loader for faster loading
TapeTraps=1
; start tape on ROM load routine
TapeAutoStart=1
; cmos on DFF7/BFF7: none, DALLAS (pc chip), or 512Bu1 (russian chip)
CMOS=none
; cache size: 16,32 or 0 - disabled. no effect for ATM-4.50 model
Cache=0
; bits, that can't be updated by Z80 and cleared by RESET (decimal value)
; ex: mask=3 - disable HWMC and 512x192, mask=255 - disable all additional hardware
EFF7mask=0 ; EFF7mask=0 - all pentagon features on
;
SMUC=0 ; enable/disable NVRAM + CMOS RTC
;
RESET=MENU ; may be: BASIC,DOS,MENU,SYS
;
ZC=0 ; enable/disable Z-Controller
;
HideConsole=0 ; for gui freaks, who annoyed by main console window, set to 1
;
ConfirmExit=0 ; 1 for exit confirmation message
;
; help filename
Help=help_eng.html
; directory with zx-files
DIR=.
; Kondrat'yev ISA modem emulated through windows modem on COM-port
; if you own internal PCI modem, use "settings/input" dialog to find out port
Modem=NONE ; NONE or COM1-COM255
[AUTOLOAD]
; disk images and snapshot, loaded at startup
; file may be compressed, but only one file in archive is allowed
;c:\zx\us032atm\atmmm4.trd
;c:\zx\sys.trd
diskA=
diskB=
diskC=
diskD=
;snapshot=demo1.sna
DefaultDrive=Auto ; Auto, A, B, C, D
[INPUT]
; default/bk08/quorum
ZXKeyMap=default
; you can define own layout, naming section in this INI file [ZX.KEYS.myname]
; create layouts for xas/storm/zxasm/alasm/zxword/sts/etc yourself, i'm bored
KeybLayout=default
KeybPCMode=0 ; when enabled, using pc defaults, ex: SHIFT+7 => &
Mouse=KEMPSTON ; mouse type: NONE/KEMPSTON/AY
Wheel=KEMPSTON ; mouse wheel: NONE/KEMPSTON/KEYBOARD
JoyMouse=0 ; emulate kempston joystick on mouse
MouseScale=0 ; logarithmic scale: ZX_mouse=PC_mouse*2^(Scale), valid: [-3;3]
SwapMouse=0 ; swap left and right mouse buttons
KJoystick=1 ; emulate kempston joystick on keyboard and/or gameport
FJoystick=0 ; emulate fuller joystick on keyboard and/or gameport
Matrix=1 ; emulate keymatrix effect
Fire=KFIRE ; autofire key -> kempston
FireRate=1 ; autofire button up/down delay (INTs)
AltLock=1 ; does not update ZX-SPECTRUM keyboard while ALT pressed
ATMKBD=0 ; ATM PC/XT keyboard controller
Joy=0 ; Joystick id (0, 1, ...)
; clipboad paste delays
HoldDelay=2
ReleaseDelay=5
NewlineDelay=20
[ULA]
Frame=71680 ; t-states in frame
Paper=17989 ; t-states before paper
Line=224 ; t-states in line
int=50 ; int freq
intlen=32 ; int length in t-states
EvenM1=0 ; align M1 cycle to even T-state (for scorpion)
4TBorder=0 ; update border every 4T states (for scorpion)
FloatBus=0 ; unstable data bus
FloatDOS=0 ; unstable data bus in TR-DOS mode
PortFF=0 ; enable/disable port FF
mcx_small=320 ; visible multicolor area width (small border)
mcy_small=240 ; visible multicolor area height (small border)
b_top_small=24 ; top border height (small border)
b_left_small=32 ; left border width (small border)
mcx_full=384 ; visible multicolor area width (full border)
mcy_full=288 ; visible multicolor area height (full border)
b_top_full=48 ; top border height (full border)
b_left_full=64 ; left border width (full border)
Preset=PENTAGON ; don't use above settings and load preset
; PRESET.NAME=FRAME,PAPER,LINE,INT,INTLEN,EvenM1,4TBorder,floatBus,floatDOS,PortFF,
; mcx_small,mcy_small,b_top_small,b_left_small,mcx_full,mcy_full,b_top_full,b_left_full
PRESET.PENTAGON=71680,17989,224,50,32,0,0,0,0,0,320,240,24,32,384,288,48,64
PRESET.SCORPION=69888,14344,224,50,32,1,1,0,0,1,320,240,24,32,384,288,48,64 ; thanks to Faster
PRESET.SCORPION_TURBO+=70784,14344,224,50,32,0,1,0,0,1,320,240,24,32,384,288,48,64 ; thanks to Faster
PRESET.ATM1_2_3.5MHz=69888,14395,224,50,32,0,0,0,0,1,320,240,24,32,384,288,48,64 ; thanks to DDp
PRESET.ATM1_2_7.0MHz=99880,17989,224,50,32,0,0,0,0,1,320,240,24,32,384,288,48,64
PRESET.PROFI=69888,12580,224,50,28,0,0,0,0,0,320,240,24,32,384,288,48,64 ; thanks to DDp
PRESET.KAY1024=69887,16132,224,50,32,0,1,0,0,0,320,240,24,32,384,296,56,64 ; (ïîäãîí ïîä kay_demo)
; ATM 7.10 hi-res video modes swap RAM/CPU address bus A5-A7<=>A8-A10
AtmMemSwap=0
; reprogram color DACs with ATM palette. with this option
; noflic filter works only in fullscreen 16/32-bit,
; colors of system leds are also affected
UsePalette=1
ProfiMonochrome=0
;
ULAPlus=0 ; enable/disable ULA+
[VIDEO]
VSync=0 ; enable for slower, but less jerky screen repaint.
; uses backbuffer - requires twice more video memory
; WARNING: eats a lot of cpu time!
FullScr=0 ; start at full-screen. windowed mode can be used only for
; GDI, Blitter or Overlay video filter / driver
Refresh=0 ; monitor refresh rate in fullscreen mode (0-default).
; for video=resampler, the more - the better
Border=small ; border size: none / small / wide
NoFlic=0 ; apply noflic filter
AltNoFlic=0 ; use interlaced algorithm for video=double
FlashColor=0 ;
MinRes=480 ; minimal screen y-resolution in fullscreen mode
; use 480 or higher to avoid switching mode when entering monitor
; use 1024 to force 1280x1024 on LCD instead of 1280x960
ChunkSize=auto ; 2,4, or auto-detect (only for ch* videofilters)
PixelScroll=0 ; detect per-pixel scrolling for video=text
; frame resampler options:
rsm.frames=4 ; frames to mix (2-8)
; fir interpolation mode:
; 2C - 12hz cut-off (gigascreen), 3C - 8hz cut-off (3-color)
; FULL - full details (scrollers), SIMPLE - average of last 2 frames
rsm.mode=2C
; scale factor for 'video=advmame'. accepted values: 2,3,4
; 4x scale requires 1280x960 pixels. use border=none, if your monitor displays only 1024x768
scale=2
; window scale factor (for hardware stretching)
winscale=1
; video filter/renderer
video=quad
; values for video filter:
; normal - fastest, but supports only standart spectrum screen, noflic, flash-color and HWMC
; double - slower, but offers better quality and works in: pentagon 512x192, profi 512x240, ...
; triple - 3x picture scale
; quad - 4x picture scale, designed to use in LCD with 1280x1024 to avoid hardware stretching
; use with minres=1024 to avoid 1280x960 mode
; text - converts 4x8 fonts to 8x8 or 8x16 (for reading e-zines)
; resampler - converts spectrum 50hz-int into 60/75/80/... hz display refresh
; bilinear - color interpolation (MMX)
; scale - fake 'vector' scaling
; advmame - 2x,3x,4x scaling algorithm from AdvanceMAME project
; tv - color TV emulation, windowed mode
; ch_ov - chunky (fast), windowed mode (overlay, 16bit)
; ch_hw - chunky (fast), windowed mode (hardware accel, 32bit)
; ch_bl - chunky (filtered,320x240x16)
; ch_b - chunky (filtered,640x480x16)
; ch4true - 32bit 4x4 chunky, full color precision (slow, but no special hardware reqd)
; driver for video=normal/double/triple/quad/text
driver=blt
; video driver:
; ddraw - direct access to video memory, fullscreen only, fastest
; ddrawh, ddrawt - fullscreen 16- and 32-bit modes
; gdi - standart windows driver (slowest, but most compatible)
; blt - hardware blitter. recommended for accelerated cards (geforce4/etc)
; ovr - video overlay. recommended in windowed mode for slow video cards
; d3d - hardware scaling via direct 3d surface (dx9 required)
; d3de - hardware scaling via direct 3d surface (dx9 required) fullscreen only
fastlines=0 ; for video=double - draw twice faster in expense of visual quality
; for video=anti64 - 4x8->8x8, else 4x8->8x16
; use overlay is faster, but you'll get wrong colors if videocard can't
; use RGB555/RGB565 pixels formats for overlay (such as all nVidia cards)
; some video cards do interpolation in overlay mode,
; even if we don't requested it
ScanIntens=100;45 ; (%) bright for scan lines when video=double,fastlines=0
; only for true-color and high-color modes
; 8-bit modes use palette values ZN,ZB
; ignore these filters
Hide= ;ch_bl,ch_ov,ch4true
; update border for CPU expensive filters
Update=1
; how much frames to skip before displaying frame (for PCI video set to 2)
SkipFrame=0
; don't wastetime on drawing when running on max speed
SkipFrameMaxSpeed=64
; screenshot format: SCR, BMP, PNG
ScrShot=PNG
; directory for screenshots (without '\' at end)
ScrShotDir=.
; when enabled, displays videocard vendor id, device id, card name
; (warning: sometimes uses driver database at http://crl.microsoft.com !!!)
; when disabled, faster startup but no additional information
DetectModel=0
; apply filter for 1x2 Atari chunks. situable for games, converted from XL,
; like SpyVsSpy, Flying Shark. presets for games defined in [COLORS] section
; (for now, filter works in 8-bit and 16-bit-normal /not-double/ modes)
;AtariPreset=fl_shark_red_palette
AtariPreset=none
; ffmpeg settings
; exec: path and name of ffmpeg executable (without quotes)
; newconsole: 1 - open new console for ffmpeg output,
; 0 - print ffmpeg output into emul's console (useful for debug)
; parm: encoding settings (see ffmpeg doc)
; vout: output video file name (use '#' sign for sequence number substitution)
ffmpeg.exec=ffmpeg.exe
ffmpeg.newconsole=1
; ffmpeg encoding options
; -ss 00:00:00.500 - skip first 500 ms (skip 25 frames with status line)
; -af volume=3.0 - gain sound volume by 3
; -vf "..." - apply video filter
; -r 25 - set 25 fps
; -c:a ... - set audio codec ("copy" for uncompressed wav)
; -c:v ... - set video codec ("copy" for uncompressed rgb24)
; -b:a 320k - set bitrate for audio
; -b:v 2800k - set bitrate for video
;# mp3:320kbps, x264:baseline,10
ffmpeg.parm=-c:a libmp3lame -b:a 320k -af volume=3.000000 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -ss 00:00:00.500
ffmpeg.vout=video#.avi
;# mp3:320kbps, x264:lossless
;ffmpeg.parm=-c:a libmp3lame -b:a 320k -af volume=3.000000 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -crf 0 -ss 00:00:00.500
;ffmpeg.vout=video#.avi
;# wav, x264:lossless
;ffmpeg.parm=-c:a copy -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -crf 0 -ss 00:00:00.500
;ffmpeg.vout=video#.avi
;# uncompressed
;ffmpeg.parm=-c:a copy -c:v copy -ss 00:00:00.500
;ffmpeg.vout=video#.avi
;# Image sequence: PNG
;ffmpeg.parm=
;ffmpeg.vout=video#_%06d.png
;# PAL DVD video
; MUST use picture size greater than 720x576 (for example, DOUBLE SIZE and COMPLETE border)!
;ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "crop=720:576,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
;ffmpeg.vout=video#.mpg
;# PAL DVD video
; MUST use picture size lower than 720x576 (and DOUBLE SIZE for correct interlace)!
;ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "pad=720:576:(ow-iw)/2:(oh-ih)/2,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
;ffmpeg.vout=video#.mpg
;# RTMP streaming: justin.tv
;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -f flv
;ffmpeg.vout=rtmp://live.justin.tv/app/live_74829844_mfrdpoeg034tn03gn03ring3f0rngc
;# RTMP streaming: own3d.tv
;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -f flv
;ffmpeg.vout=rtmp://live.eu.own3d.tv/live/b8493921_949585_kjhb5632l3l1
;# RTMP streaming: twitch.tv
;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -bufsize 1835k -f flv
;ffmpeg.vout=rtmp://live.justin.tv/app/live_sub_5b8ed4fae83fe83e920227337beab7e73b7a3ba3
[BETA128]
Beta128=1
Noise=0 ; seek noise
Traps=1 ; intercept sector save/load routines in TR-DOS ROM for faster loading
Fast=1 ; disable all FDD/FDC delays. some programs will not work
IL=1 ; sector interleave (1=1:1, 2=2:1, 3=3:1) applied when loading TRD/SCL
; if you prefer fast=0, set to 2 for 3d13 loaders, to 1 for turbo-loaders
BOOT=boot6.$b
[SOUND]
SoundFilter=0 ; lowpass filter (good for beeper)
SoundDrv=ds ; wave, ds or none
RejectDC=1 ; reject DC component of output sound
; sound buffer size for SoundDrv=wave
; the more buffer, the more delay before sound playing...
; if sound is jerky, try SoundBuffer=16
; for really fast computers with windows 2000, try SoundBuffer=4
SoundBuffer=auto;10 ; only for SoundDrv=wave
DSPrimary=0;1 ; use primary buffer for DSound. no sound in background.
; useful only for troubleshooting
; when [SOUND] Enabled=0, emulator runs on maximum speed
Enabled=1
Fq=44100 ; check maximum sampling rate in your soundcard manual
; setting freq not supported by hardware
; will cause resampling and degrade quality and performance
GSType=none ; BASS, Z80 or NONE
GSReset=0 ; reinit GS on reset
SD=0 ; enable/disable soundrive
CovoxFB=0 ; enable/disable pentagon covox
CovoxDD=0 ; enable/disable scorpion covox
Saa1099=0 ; enable/disable saa1099
; max sound volume is 8192. set to 0 to completely disable sound device
BeeperVol=8192 ; most popular sound device
MicOutVol=1000 ; tape saving
MicInVol=1000 ; tape loading
AYVol=8192 ; volume of each channel
CovoxFBVol=8192 ; pentagon covox
CovoxDDVol=6000 ; scorpion covox
SDVol=4000 ; soundrive
GSVol=8000 ; general sound (for both high- and low- level emulation modes)
BASSVol=8000 ; MOD-player of BASS.DLL
[NGS] ; neo gs settings
RamSize=2048 ; ngs ram size 2048, 4096
; sdcard image
SDCARD=
[SAA1099]
FQ=8000000
[AY]
Chip=YM ; bus reaction (none/AY/YM/YM2203)
FQ=1774400 ; chip clock fq
Stereo=ABC ; AY stereo mode - any of STEREO.*
VolTab=default.YM ; volume table - any of VOLTAB.*
UseSamples=0 ; 0 - square tones, 1 - digital samples (low quality)
; double-AY scheme:
; none - no soundchip
; default - single AY/YM
; FULLER - fuller box (single AY/YM) (0x3F, 0x5F)
; PSEUDO - pseudo-turbo (one port for two devices + some phase shift)
; QUADRO - pentagon 2nd AY on #AFFD,#EFFD
; POS - power of sound turbo-AY (bit 0 of port #1F)
; CHRV - NedoPC turbo-sound (switch chip on selection reg #FE/FF)
Scheme=default;CHRV;default
; STEREO.PRESET_NAME=A_left,A_right,B_left,B_right,C_left,C_right
; (you can define your custom presets, all numbers are from [0; 100])
STEREO.ABC=100,10,66,66,10,100
STEREO.ACB=100,10,10,100,66,66
STEREO.BAC=66,66,100,10,10,100
STEREO.mono=66,66,66,66,66,66
STEREO.unreal=90,20,66,66,20,90
; volume tables
VOLTAB.default.AY=0000,0340,04C0,06F2,0A44,0F13,1510,227E,289F,414E,5B21,7258,905E,B550,D7A0,FFFF
VOLTAB.default.YM=0000,0000,00EF,01D0,0290,032A,03EE,04D2,0611,0782,0912,0A36,0C31,0EB6,1130,13A0,1751,1BF5,20E2,2594,2CA1,357F,3E45,475E,5502,6620,7730,8844,A1D2,C102,E0A2,FFFF
VOLTAB.BULBA_OPEN.AY=0000,1111,2222,3333,4444,5555,6666,7777,8888,9999,AAAA,BBBB,CCCC,DDDD,EEEE,FFFF
VOLTAB.BULBA_OPEN.YM=0000,0000,041A,08D4,11A8,1A7B,234F,2C23,34F7,3DCB,469F,4F72,5846,611A,69EE,72C2,7B96,8469,8D3D,9611,9EE5,A7B9,B08D,B960,C234,CB08,D3DB,DCB0,E584,EE57,F72B,FFFF
VOLTAB.DELPHISPEC=0136,0170,01B5,0208,026A,02DF,0369,040E,04D2,05BB,06CF,0818,099F,0B6F,0D97,1026,1332,16D0,1B1D,203A,264D,2D85,361A,404D,4C6C,5AD4,6BF3,804D,987C,B53B,D764,FFFF
VOLTAB.X128=0000,0200,0500,0700,0A00,0C00,1200,1600,1D00,2200,2600,2C00,3F00,3F00,3F00,FF00
VOLTAB.YASE=0000,0200,0500,0700,0A00,0C00,1200,1600,1D00,2200,2600,2C00,3F00,3F00,3F00,FF00
VOLTAB.ZXMAK=0000,0000,00F8,01C2,029E,033A,03F2,04D7,0610,077F,090A,0A42,0C3B,0EC2,1137,13A7,1750,1BF9,20DF,2596,2C9D,3579,3E55,4768,54FF,6624,773B,883F,A1DA,C0FC,E094,FFFF
;original Lion17.YM=0000,0156,0228,033A,0502,086F,0CD4,17B9,1AF0,2E8D,4047,4F47,6528,7B19,92E1,AAAA
;original Lion17.AY=0000,0014,007F,00BF,00FA,0139,0175,01BB,0241,02F1,03F2,04B2,05DE,076B,08BA,0A0F
VOLTAB.Lion17.YM=0000,0201,033C,04D7,0783,0CA6,133E,2395,2868,45D3,606A,76EA,97BC,B8A5,DC51,FFFF
VOLTAB.Lion17.AY=0000,01FD,0CA0,12FD,18DA,1F1E,2515,2C0A,395C,4ADC,6468,777F,9552,BCCA,DE18,FFFF
;original Vaggelis Kapartzianis=00,03,04,05,06,07,08,0A,0C,0E,11,15,19,1D,23,2A
VOLTAB.Vaggelis Kapartzianis=0000,1249,1861,1E79,2492,2AAA,30C2,3CF3,4924,5555,679E,7FFF,9860,B0C2,D554,FFFF
VOLTAB.RAMSOFT.AY=0000,0364,0500,0700,0A80,1000,1600,2300,2A00,4300,5C00,7300,9180,B400,D800,FFFF
VOLTAB.RAMSOFT.YM=0000,0000,00F8,01C2,029E,033A,03F2,04D7,0610,077F,090A,0A42,0C3B,0EC2,1137,13A7,1750,1BF9,20DF,2596,2C9D,3579,3E55,4768,54FF,6624,773B,883F,A1DA,C0FC,E094,FFFF
VOLTAB.R80=0000,0201,033C,04D7,0783,0CA6,133E,2396,2868,45D4,606A,76EA,97BC,B8A6,DC52,FFFF
[COLORS]
color=alone ; default
; palette format:
; name=ZZ,ZN,NN,NB,BB,ZB:R11,R12,R13;R21;R22;R23;R31;R32;R33
; where ZZ,NN,BB - bright levels for black,normal,and bright colors
; ZN,NB,ZB - bright levels for zero+normal, normal+bright, zero+bright
; for GIGASCREEN and FLASH-COLORS
; Rnn - matrix for post-processing:
; real_Red = (Red*R11 + Green*R12 + Blue*R13) / 0x100
; real_Green = (Red*R21 + Green*R22 + Blue*R23) / 0x100
; real_Blue = (Red*R31 + Green*R32 + Blue*R33) / 0x100
;
; note: emulator uses 8-bit precision for color components,
; 8-bit filters: use 6 bit precision (VGA palette limitation)
; overlay & hi-color: truncates results to 5 bit
; true color: no quality loss
;
; R, G, B - 0..0xFF
; R11..R33 - 0..0x100
; palette settings does not affect chunky modes
;
; default=00,80,C0,E0,FF,C8:100,00,00;00,100,00;00,00,100
Mars=00,80,C0,E0,FF,C8:100,00,00;40,C0,00;00,40,C0
Ocean=20,80,A0,C0,E0,A8:D0,00,30;00,D0,30;00,00,100
Grey=00,80,C0,E0,FF,C8:49,92,24;49,92,24;49,92,24
alone=00,60,A0,E0,FF,A0:100,00,00;00,100,00;00,00,100
pulsar=00,76,CD,E9,FF,9F:100,00,00;00,100,00;00,00,100
ATM=00,55,AA,E0,FF,80:100,00,00;00,100,00;00,00,100
; presets for atari-like mode
; format: <PAPER><INK>:<COL1><COL2><COL3><COL4> [ , <PAPER><INK>:<COL1><COL2><COL3><COL4> ]*
; color is a mix of 2 pure spectrum colors, e.g. 11=red+red=red, 47=green+white=light-green, etc...
atari.fl_shark_red_palette=06:EE666600
atari.test=70:00132177,0F:001199FF,34:33119944
[HDD]
Scheme=NONE ; interface type: NONE/ATM/NEMO/NEMO-A8/NEMO-DIVIDE/SMUC/PROFI/DIVIDE
SkipReal=1;1 ; disable work with physical drives. faster startup when
; you have no connected spectrum drive(s)
CDROM=SPTI ;ASPI;SPTI ; SPTI (native WinNT) or ASPI (use 3rd-party library wnaspi32.dll)
; for image file, specify filename with full path, else it'll not work
; master device. specify image filename or <MODEL,SERIAL> to use real drive
Image0=
;D:\CPM.HDD
CHS0=20/16/63 ; max size, accessible through CHS. not used for real drive
LBA0=20160;412110 ; max size, accessible through LBA. not used for real drive
HD0RO=1 ; read only flag
CD0=0 ; 1 if image is cdrom
; slave device. empty filename used for disconnected device
Image1=
;<SAMSUNG CD-ROM SC-140F,>
;<_NEC CD-RW NR-7800B>
;<SONY DVD RW DRU-710A,May26,2005>
CHS1=0/0/0
LBA1=0
HD1RO=0
CD1=0 ; 1 if image is cdrom
[ZC] ; Z-Controller settings
; sdcard image
SDCARD=
[ROM]
; general sound firmware
GS=bootgs.rom
; 64/128/512/1024K ROM images (single file)
ATM1=atm103rs.rom
;ATM2=Xbios103.rom
ATM2=bios_1_07_13.rom
;ATM2=glukatm.rom
ATM3=zxevo.rom
; standard PROFI 64K rom
PROFI=profi.rom
; standard scorpion 64K rom
SCORP=scorp295.rom
; for SMUC 512k ROM, use file.rom:0 and file.rom:1 to select active bank
PROFROM=scorp_prof401.rom:0
; standard +3 64K rom
PLUS3=plus341.rom
; standard quorum 64K rom
QUORUM=qu7v42.rom
; you can create own 64K-ROMSET, naming ini section [ROM.my_own_set]
; for empty ROMSET, single-file large ROM used (accordingly to memory model)
ROMSET=PENTAGON
[ROM.default]
title=Separate ROMs set
; service rom [optional]
sys=glukpen.rom
; basic48 - high 16K of sinclair rom [required!]
sos=2006.rom
; tr-dos [optional]
dos=dos6_10e.rom
; basic128 - low 16K of sinclair rom [optional]
128=qc_3_05.rom
[ROM.pentagon]
title=Pentagon-128 (32K) + TR-DOS
128=pentagon.rom:0
sos=pentagon.rom:1
dos=trd504tm.rom
sys=trd504tm.rom
[ROM.GLUK]
title=Mr Gluk Reset Service
128=qc_3_05.rom
sos=2006.rom
dos=dos6_10e.rom
sys=glukpen.rom
[ROM.scorpion]
title=Scorpion (64K,v2.95)
128=scorp295.rom:0
sos=scorp295.rom:1
sys=scorp295.rom:2
dos=scorp295.rom:3
[ROM.profi]
title=PROFI (64k)
sys=profi.rom:0
dos=profi.rom:1
128=profi.rom:2
sos=profi.rom:3
[ROM.KAY1]
title=KAY 2002 (64K,JV Kramis 0.3)
128=kay1024_v2_1_las.rom:0
sos=kay1024_v2_1_las.rom:1
sys=kay1024_v2_1_las.rom:2
dos=kay1024_v2_1_las.rom:3
[ROM.KAY2]
title=KAY 2000 (64K,JV Kramis 0.3)
128=kay1024.rom:0
sos=kay1024.rom:1
dos=kay1024.rom:2
sys=kay1024.rom:3
[ROM.KAY3]
title=KAY 98 (64K,JV Kramis 0.2)
sys=kay1024b.rom:0
dos=kay1024b.rom:1
128=kay1024b.rom:2
sos=kay1024b.rom:3
[ROM.48K]
title=ZX-Spectrum 48K
sos=48.rom
[ROM.48KTRDOS]
title=ZX-Spectrum 48K + TR-DOS
sos=48.rom
dos=trd504tm.rom
[ROM.128K]
title=ZX-Spectrum 128K
128=128.rom:0
sos=128.rom:1
[ROM.ATM2]
Title=BIOS1.07.13 for ATM2
sos=bios_1_07_13.rom:0
dos=bios_1_07_13.rom:1
128=bios_1_07_13.rom:2
sys=bios_1_07_13.rom:3
[ROM.PLUS3]
title=ZX-Spectrum +3
128=plus341.rom:0
sys=plus341.rom:1
dos=plus341.rom:2
sos=plus341.rom:3
[LEDS]
; enable leds
leds=1
; ay amplitude peaks on keyboard leds
KBD_AY=0
; led coordinates in pixels. comment out, if you don't want some led
; negative coordinates are offset from bottom and right
; WARNING! if you choose coordinates outside visible screen area
; emulator will crash
; AY volumes. color indicates noise, envelope or digital sound use
AY=1:1,1
; show Z80 t-states between HALTs and PC framerate
Perf=1:1,-11
PerfShowT=0 ; display used CPU t-states
; GS/TRDOS/TAPE read/write
LOAD=1:-24,1
; active input devices: keyboard, mouse, kempston
Input=1:20,1
; local time
Time=1:-32,-10
; on-screen watches (debugger)
OSW=0:-50,26
; zx-spectrum memory in dynamic: read/write/execute
MemBand=0:60,3
; bytes per pixel in memory band (allowed 64,128,256,512)
BandBpp=256
[ARC]
; these files are ignored
SkipFiles=*.nfo;*.txt;*.diz;*.inf;files.bbs;descript.ion
; you may add your own archivers!
; command line to extract all files without pathnames and without
; queries on overwrite, use %s to indicate archive filename;
; use archivers, that understand long filenames!
CAB=extrac32 /E /Y "%s"
ZIP=7z e -y "%s"
RAR=7z e -y "%s"
7Z=7z e -y "%s"
[SYSTEM.KEYS]
; pc keyboard:
;
; ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRSCR SCLOCK PAUSE
; TIL 1 2 3 4 5 6 7 8 9 0 MINUS PLUS BACK INS HOME PGUP NUMLOCK GRDIV GRMUL GRSUB
; TAB Q W E R T Y U I O P LB RB DEL END PGDN N7 N8 N9 GRADD
; CAPS A S D F G H J K L COL QUOTE ENTER N4 N5 N6
; LSHIFT Z X C V B N M COMMA POINT SLASH RSHIFT BACKSL UP N1 N2 N3 GRENTER
; LCONTROL LALT SPACE RALT RCONTROL LEFT DOWN RIGHT N0 NP
; LMB,RMB,MMB - mouse buttons
; MWU,MWD - mouse wheel up/down
; JLEFT,JRIGHT,JUP,JDOWN,JFIRE - joystick/gamepad
; JB0..JB31 - joystick/gamepad buttons
; mouse & joystick "keys" can't be bound to commands, only to spectrum keys
; p.s.
; CONTROL = LCONTROL or RCONTROL
; ALT = LALT or RALT
; SHIFT = LSHIFT or RSHIFT
; numlock must be on for N0-N9 and NP
; system commands:
; command=key1 [key2 [key3 [key4]]]
; keys active in emulation mode
main.exit=ALT F4 ; why do this?
main.lockmouse=MMB ; read kempston mouse in windowed mode
main.monitor=ESC ; for hackers only
main.selectfilter=F4 ; select video filter
main.selectdriver=SHIFT F4 ; select video driver for some filters
main.fullscreen=ALT ENTER ; toggle full-screen on/off
main.pause=PAUSE ; pause
main.selectfix=GRMUL ; select video parameter
main.selectsnd=ALT GRMUL ; select soundchip parameter or palette
main.incfix=SHIFT GRADD ; fine tuneup
main.decfix=SHIFT GRSUB ; fine tuneup
main.incfix10=GRADD ; tuneup
main.decfix10=GRSUB ; tuneup
main.leds=GRDIV ; leds on/off
main.maxspeed=NUMLOCK ; max speed on/off
main.pokedialog=F6 ; enter poke(s)
main.starttape=F7 ; start/stop tape
main.tapebrowser=SHIFT F7 ; tape browser
main.screenshot=ALT F8 ; screenshot
main.savevideo=CONTROL F8 ; save video
main.reset=F12 ; reset to [MISC]Reset=DOS/BASIC/MENU/SYS
main.reset128=CONTROL SHIFT F12 ; reset to basic 128
main.resetsys=ALT F12 ; reset to service ROM
main.reset48=ALT SHIFT F12 ; reset to basic 48 with locked 128k memory
main.resetbasic=SHIFT F12 ; reset to basic 48 with unlocked 128k memory
main.resetdos=CONTROL F12 ; reset to TR-DOS
main.resetcache=ALT CONTROL F12 ; reset to cache
main.nmi=ALT SHIFT F11 ; NMI without ROM switching
main.nmidos=CONTROL F11 ; TR-DOS magic
main.nmicache=ALT F11 ; NMI in cache
main.help=F1 ; show keys
main.settings=Alt F1 ; emulation settings (GUI)
main.save=F2 ; save disk/snapshot
main.load=F3 ; load disk/tape/snapshot
main.savesound=F5 ; save WAV/VTX
main.qsave1=ALT F2 ; quick save to qsave1.sna
main.qsave2=CONTROL F2 ; quick save to qsave2.sna
main.qsave3=SHIFT F2 ; quick save to qsave3.sna
main.qload1=ALT F3 ; quick load from qsave1.sna
main.qload2=CONTROL F3 ; quick load from qsave2.sna
main.qload3=SHIFT F3 ; quick load from qsave3.sna
main.keystick=SCLOCK ; toggle keystick mode
main.autofire=ALT NUMLOCK ; toggle autofire mode
main.saveall=F9 ; quick save cmos and disks
main.xtkbd=ALT CONTROL Z ; enable/disable ATM XT keyboard (emulation controls blocked!)
main.pastetext=ALT SHIFT INS ; copy text from clipboard to keyboard buffer
main.size1=ALT 1 ; set normal window size (in windowed mode)
main.size2=ALT 2 ; set double window size (in windowed mode)
main.sizem=ALT 3 ; maximize window (in windowed mode)
main.memsearch=ALT F6 ; search in memory for changed values (cheats, etc)
main.border_none=ALT 4 ; set empty border
main.border_small=ALT 5 ; set small border
main.border_full=ALT 6 ; set full border
; keys in all monitor windows
mon.exit=ALT F4 ;
mon.emul=ESC ; back to emulation
mon.bpdialog=ALT C ; conditional breakpoints dialog
mon.gs=ALT G ; gs status dialog
mon.pokedialog=ALT P ; enter poke(s) F6 is already used
mon.tapebrowser=SHIFT F7 ; tape browser
mon.reset=F12 ; reset to [MISC]Reset=DOS/BASIC/MENU/SYS
mon.reset128=CONTROL SHIFT F12 ; reset to basic 128
mon.resetsys=ALT F12 ; reset to service ROM
mon.reset48=ALT SHIFT F12 ; reset to basic 48 with locked 128k memory
mon.resetbasic=SHIFT F12 ; reset to basic 48 with unlocked 128k memory
mon.resetdos=CONTROL F12 ; reset to TR-DOS
mon.resetcache=ALT CONTROL F12 ; reset to cache
mon.nmi=ALT SHIFT F11 ; NMI without ROM switching
mon.nmidos=CONTROL F11 ; TR-DOS magic
mon.nmicache=ALT F11 ; NMI in cache
mon.help=F1 ; show keys
mon.settings=ALT F1 ; emulation settings (GUI)
mon.save=F2 ; save disk/snapshot
mon.load=F3 ; load disk/tape/snapshot
mon.savesound=F5 ; save WAV/VTX
mon.qsave1=ALT F2 ; quick save to qsave1.sna
mon.qsave2=CONTROL F2 ; quick save to qsave2.sna
mon.qsave3=SHIFT F2 ; quick save to qsave3.sna
mon.qload1=ALT F3 ; quick load from qsave1.sna
mon.qload2=CONTROL F3 ; quick load from qsave2.sna
mon.qload3=SHIFT F3 ; quick load from qsave3.sna
mon.setrange=F6 ; set range of breakpoints
mon.resetrange=SHIFT F6 ; reset range of breakpoints
mon.screen=F9 ; show screen, as it present in video memory
mon.altscreen=SHIFT F9 ; show inactive screen
mon.rayscreen=ALT F9 ; show painted screen area until crt-ray (with MC, border & 2-scr effects)
mon.step=F7 ; single step
mon.stepover=F8 ; step over loops and calls
mon.exitsub=F11 ; trace until (sp)
mon.loadblock=ALT R ; load memory block
mon.saveblock=ALT W ; save memory block
mon.fillblock=ALT F ; fill memory block with pattern
mon.setbank=ALT B ; write to #7FFD
mon.sethimem=ALT M ; write to model-specific extended memory port
mon.next=TAB ; next window
mon.prev=SHIFT TAB ; prev window
mon.dump=ALT D ; toggle dump
mon.rip=ALT T ; ripper's tool
mon.osw=ALT O ; setup on-screen watches
mon.scrshot=ALT S ; toggle screenshot/scrdump/watches
mon.setwatch=CONTROL U ; set user-defined watch address
mon.switchay=ALT Y ; switch active AY (turbo-sound)
mon.labels=CONTROL J ; goto label
mon.memsearch=ALT F6 ; search in memory for changed values (cheats, etc)
mon.cpu=CONTROL TIL ; switch to next cpu
mon.switchdump=CONTROL D ; switch dump mode (mem/disk/cmos/nvram/comppal)
; keys in registers window
reg.left=LEFT ; select register
reg.right=RIGHT ; select register
reg.up=UP ; select register
reg.down=DOWN ; select register
reg.edit=ENTER ; edit current register
reg.a=CONTROL A ; edit A
reg.f=CONTROL F ; edit flags
reg.bc=CONTROL B ; edit BC
reg.de=CONTROL D ; edit DE
reg.hl=H ; edit HL
reg.pc=P ; edit PC
reg.sp=S ; edit SP
reg.ix=X ; edit IX
reg.iy=Y ; edit IY
reg.i=I ; edit i
reg.r=R ; edit R
reg.im=M ; edit im
reg.iff1=CONTROL 1 ; edit iff1
reg.iff2=CONTROL 2 ; edit iff2
reg.SF=ALT S ; toggle SF
reg.ZF=ALT Z ; toggle ZF
reg.F5=ALT 5 ; toggle F5
reg.HF=ALT H ; toggle HF
reg.F3=ALT 3 ; toggle F3
reg.PF=ALT P ; toggle PF/PV
reg.NF=ALT N ; toggle NF
reg.CF=ALT C ; toggle CF
reg.codejump=QUOTE ; goto address in code window under cursor
reg.datajump=COL ; goto address in data window under cursor
; keys in cpu window
cpu.findpc=HOME ; set cursor at PC
cpu.here=F4 ; trace to cursor
cpu.findtext=ALT F7 ; find string
cpu.findcode=CONTROL F7 ; find code with mask
cpu.goto=G ; goto address
cpu.bpx=SPACE ; breakpoint under cursor
cpu.asm=ENTER ; edit instruction
cpu.setpc=Z ; set PC to cursor
cpu.up=UP ; move cursor up
;cpu.up=MWU ; move cursor up
cpu.down=DOWN ; move cursor down
;cpu.down=MWD ; move cursor down
cpu.left=LEFT ; move cursor left
cpu.right=RIGHT ; move cursor right
cpu.pgdn=PGDN ; next page
cpu.pgup=PGUP ; prev page
cpu.save1=CONTROL 1 ; save cursor position to slot 1
cpu.save2=CONTROL 2
cpu.save3=CONTROL 3
cpu.save4=CONTROL 4
cpu.save5=CONTROL 5
cpu.save6=CONTROL 6
cpu.save7=CONTROL 7
cpu.save8=CONTROL 8
cpu.rest1=1 ; save cursor position to jumpstack, load from slot 1
cpu.rest2=2
cpu.rest3=3
cpu.rest4=4
cpu.rest5=5
cpu.rest6=6
cpu.rest7=7
cpu.rest8=8
cpu.back=BACK ; pop cursor position from jumpstack
cpu.context=QUOTE ; push cursor position and goto instruction operand
cpu.datajump=COL ; jump to instruction operand in data window
cpu.labels=CONTROL L ; show labels on/off
cpu.importl=CONTROL A ; menu for importing labels from XAS/ALASM
; keys in memory dump window
mem.left=LEFT ; cursor left
mem.right=RIGHT ; cursor right
mem.up=UP ; cursor up
mem.down=DOWN ; cursor down
mem.pgup=PGUP ; page up
mem.pgdn=PGDN ; page down
mem.switch=CONTROL TAB ; move to hex/ascii
mem.stline=HOME ; start of line
mem.endline=END ; end of line
mem.findtext=ALT F7 ; find text in memory / disk track
mem.findcode=CONTROL F7 ; find code with mask in memory / disk track
mem.goto=CONTROL G ; goto address
mem.mem=CONTROL M ; select memory editor
mem.diskphys=CONTROL V ; select disk editor (physical track)
mem.disklog=CONTROL O ; select disk editor (logical sectors)
mem.diskgo=CONTROL T ; select drive/track/sector in diskeditor
mem.pc=CONTROL P ; goto PC
mem.sp=CONTROL S ; goto SP
mem.bc=CONTROL B ; goto BC
mem.de=CONTROL D ; goto DE
mem.hl=CONTROL H ; goto HL
mem.ix=CONTROL X ; goto IX
mem.iy=CONTROL Y ; goto IY
[ZX.KEYS.default]
Name=unreal default
; ZX keyboard layout:
;
; 1 2 3 4 5 6 7 8 9 0
; Q W E R T Y U I O P
; A S D F G H J K L ENT
; CAP Z X C V B N M SYM SPC
; KLEFT,KRIGHT,KUP,KDOWN,KFIRE,KFIRE1,KFIRE2,KFIRE3 - kempston joystick
; FLEFT,FRIGHT,FUP,FDOWN,FFIRE,FFIRE1,FFIRE2,FFIRE3 - fuller joystick
; format:
; PC_KEY=[ZX_KEY_SHIFT] ZX_KEY
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
TIL=CAP 1
CAPS=CAP 2
PGUP=CAP 3
PGDN=CAP 4
LEFT=CAP 5
DOWN=CAP 6
UP=CAP 7
RIGHT=CAP 8
DEL=CAP 9
BACK=CAP 0
MINUS=SYM J
PLUS=SYM K
COMMA=SYM N
POINT=SYM M
ENTER=ENT
SPACE=SPC
LB=SYM 8
RB=SYM 9
COL=SYM Z
TAB=CAP SPC ; break
INS=SYM W
HOME=SYM Q
END=SYM E
QUOTE=SYM P
SLASH=SYM C
BACKSL=SYM CAP
LSHIFT=CAP
RSHIFT=SYM
N4=KLEFT
N6=KRIGHT
N8=KUP
N2=KDOWN
N5=KFIRE
N1=KLEFT KDOWN
N3=KRIGHT KDOWN
N7=KUP KLEFT
N9=KUP KRIGHT
MWU=CAP 7
MWD=CAP 6
JLEFT=KLEFT
JRIGHT=KRIGHT
JUP=KUP
JDOWN=KDOWN
JFIRE=KFIRE
JB1=1
JB2=2
JB3=3
JB4=4
JB5=5
JB6=6
JB7=7