[*] unreal speccy configuration file UNREAL=0.37.9 ; 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 ; ; high memory: PENTAGON, SCORPION, PROFSCORP, GMX, PROFI, ATM450, ATM710, KAY, ATM3, TSL, LSY HIMEM=TSL ; memory size, KB RAMSize=4096 ; ULA+: NONE, TYPE1 (Blue is 000 011 101 111), TYPE2 (Blue is 000 011 100 111) ULAPLUS=TYPE1 ; ZX-Evo Video DAC resolution: NONE, 3BIT, 4BIT, 5BIT TS_VDAC=5BIT ; ZX-Evo Video DAC2 using FT812 (0 - disabled, 1 - enabled, 2 - VDAC2 + ESP32) TS_VDAC2=0 ; OUT (C), 0 value OUT_C_0=0 ; KR1858VM1 halt handling Z80_VM1=0 TapeTraps=1 ; start tape on ROM load routine TapeAutoStart=1 ; cmos on DFF7/BFF7: none, DALLAS (pc chip), or 512Bu1 (russian chip) CMOS=DALLAS ; 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=SYS ; may be: BASIC,DOS,MENU,SYS ZC=1 ; 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=. ; SPG Memory init: 0 - none, 1 - random data fill, 2 - zero data fill SPGMemInit=0 ; 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 ; ZiFi API layer1 emulated as bridge to COM-port ZiFi=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 diskA=boot.$b 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 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 ; Frame=250000 ; t-states in frame - 14MHz Line=224 ; t-states in line ; Line=784 ; t-states in line - 14MHz int=50 ; int freq intstart=13 ; t-states before int 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 Preset= ; don't use above settings and load preset ; PRESET.NAME=FRAME,PAPER,LINE,INT,INTLEN,EvenM1,4TBorder,floatBus,floatDOS,PortFF PRESET.PENTAGON=71680,13,224,50,32,0,0,0,0,0 ;PRESET.PENTAGON=143360,17989,224,50,32,0,0,0,0,0 PRESET.SCORPION=69888,14344,224,50,32,1,1,0,0,1 PRESET.ATM1_2_3.5MHz=69888,17989,224,50,32,0,0,0,0,1 PRESET.ATM1_2_7.0MHz=99880,17989,224,50,32,0,0,0,0,1 PRESET.PROFI=69888,12580,224,50,28,0,0,0,0,0 ; thanks to DDp ; 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 [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=4 ; border size - 0: 256x192, 1: 320x200, 2: 320x240, 3: 360x288, 4: 384x304, 5: 448x320 NoFlic=0 ; apply noflic filter AltNoFlic=0 ; use interlaced algorithm for video=double FlashColor=0 ; MonScale=1 ; scale debugger window (2 for 2X, 3 for 3X and so on...) 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 ; 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) video=double ; debugger ray painting mode ; 0 - overdraw previous frame, 1 - clear to black, 2 - dim previous frame and overdraw it raypaint_mode=2 ; driver for video=normal/double/triple/quad/text driver=blt ; video driver: ; ddraw - direct access to video memory, fullscreen only, fastest ; 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 ; ddrawh, ddrawt - fullscreen 16- and 32-bit modes 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 ; screenshot directory. 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, fast 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 ;# aac:256kbps, x264:baseline,10, fast ;ffmpeg.parm=-c:a libvo_aacenc -b:a 256k -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 ;# aac:256kbps, x264:baseline,10, slow ;ffmpeg.parm=-c:a libvo_aacenc -b:a 256k -af volume=3.000000 -c:v libx264 -pix_fmt yuvj420p -preset:v veryslow -profile:v baseline -crf 10 -ss 00:00:00.500 ;ffmpeg.vout=video#.avi ;# aac:256kbps, x264:lossless, fast ;ffmpeg.parm=-c:a libvo_aacenc -b:a 256k -af volume=3.000000 -c:v libx264 -pix_fmt rgb24 -preset:v ultrafast -qp 0 -ss 00:00:00.500 ;ffmpeg.vout=video#.avi ;# aac:256kbps, x264:lossless, slow ;ffmpeg.parm=-c:a libvo_aacenc -b:a 256k -af volume=3.000000 -c:v libx264 -pix_fmt rgb24 -preset:v veryslow -qp 0 -ss 00:00:00.500 ;ffmpeg.vout=video#.avi ;# wav, x264:lossless, fast ;ffmpeg.parm=-c:a copy -c:v libx264 -pix_fmt yuvj420p -preset:v ultrafast -qp 0 -ss 00:00:00.500 ;ffmpeg.vout=video#.avi ;# wav, x264:lossless, slow ;ffmpeg.parm=-c:a copy -c:v libx264 -pix_fmt yuvj420p -preset:v veryslow -qp 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=1 ; 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=boot.$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=BASS ; BASS, Z80 or NONE GSReset=1 ; reinit GS on reset SD=1 ; enable/disable soundrive CovoxFB=1 ; enable/disable pentagon covox CovoxDD=1 ; enable/disable scorpion covox Saa1099=0 ; enable/disable saa1099 MoonSound=1 ; enable/disable moonsound ; 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=6144 ; volume of each channel CovoxFBVol=8192 ; pentagon covox CovoxDDVol=6000 ; scorpion covox CovoxProfiVol=6000 ; profi covox SDVol=4000 ; soundrive GSVol=8000 ; general sound (for both high- and low- level emulation modes) BASSVol=8000 ; MOD-player of BASS.DLL MoonSoundVol=8000 ; ZXM-MoonSound [NGS] ; neo gs settings RamSize=2048 ; ngs ram size 2048, 4096 [ZC] ; Z-Controller settings ; sdcard image SDCARD=../../tsconf.img SDDelay=1500 ; delay before data token, T-states 3.5MHz [SAA1099] FQ=8000000 [AY] Chip=YM2203 ; 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 ; 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) ; AYX32 - AYX32 chip Scheme=CHRV ; 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=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: : [ , : ]* ; 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=NEMO-DIVIDE ; interface type: NONE/ATM/NEMO/NEMO-A8/NEMO-DIVIDE/SMUC/PROFI/DIVIDE SkipReal=1 ; disable work with physical drives. faster startup when ; you have no connected spectrum drive(s) CDROM=;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 to use real drive Image0=wc.img CHS0=1572/16/63 ; max size, accessible through CHS. not used for real drive LBA0=0 ; max size, accessible through LBA. not used for real drive HD0RO=0 ; read only flag CD0=0 ; 1 if image is cdrom ; slave device. empty filename used for disconnected device Image1= ;<_NEC CD-RW NR-7800B> ; CHS1=1937/16/63 LBA1=1950720 HD1RO=0 CD1=1 ; 1 if image is cdrom [ROM] ; general sound firmware GS=rom\bootgs.rom ; moonsound wavetable MOONSOUND=rom\YRW801-M - Yamaha - 1993.rom ; 64/128/512/1024K ROM images (single file) PENTAGON=rom\pentagon.rom ATM1=rom\atm1.rom ;ATM2=Xbios103.rom ATM2=rom\atm2.rom ATM3=rom\zxevo.rom ; standard PROFI 64K rom PROFI=rom\profi.rom ; standard scorpion 64K rom SCORP=rom\scorpion.rom ; for SMUC 512k ROM, use file.rom:0 and file.rom:1 to select active bank PROFROM=rom\scorp_prof401.ROM:0 ; standard GMX 512K rom GMX=rom\gmx.rom ; standard KAY 64K rom KAY=rom\kay1024.rom ; TS-config TSL=rom\zxevo.rom ; LSY256 LSY=rom\lsy256.rom ; ZXM-Phoenix PHOENIX=rom\ZXM-Phoenix_bios.bin ; 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= [ROM.default] title=Separate ROMs set ; service rom [optional] sys=rom\glukpen.rom ; basic48 - high 16K of sinclair rom [required!] sos=rom\2006.rom ; tr-dos [optional] dos=rom\dos6_10e.rom ; basic128 - low 16K of sinclair rom [optional] 128=rom\qc_3_05.rom [ROM.pentagon] title=Pentagon-128 + TR-DOS 128=rom\128_low.rom sos=rom\48for128.rom dos=rom\trdos504t.ROM sys=rom\service.rom [ROM.GLUK] title=Mr Gluk Reset Service 128=rom\128.rom sos=rom\48.rom dos=rom\dos6_10e.rom sys=rom\glukpen.rom [ROM.scorpion] title=Scorpion (64K,v2.92) 128=rom\scorpion.rom:0 sos=rom\scorpion.rom:1 sys=rom\scorpion.rom:2 dos=rom\scorpion.rom:3 [ROM.profi] title=PROFI (64k) sys=rom\profi.rom:0 dos=rom\profi.rom:1 128=rom\profi.rom:2 sos=rom\profi.rom:3 [ROM.KAY] title=KAY (64k) 128=rom\kay1024s.rom:0 sos=rom\kay1024s.rom:1 sys=rom\kay1024s.rom:2 dos=rom\kay1024s.rom:3 [ROM.48K] title=ZX-Spectrum 48K sos=rom\48.rom [ROM.128K] title=ZX-Spectrum 128K 128=rom\128.rom:0 sos=rom\128.rom:1 [ROM.ATM1] title=ATM1 sos=rom\atm1.rom:0 dos=rom\atm1.rom:1 128=rom\atm1.rom:2 sys=rom\atm1.rom:3 [ROM.ATM2] title=ATM2 sos=rom\atm2.rom:0 dos=rom\atm2.rom:1 128=rom\atm2.rom:2 sys=rom\atm2.rom:3 [ROM.ATM3] title=ATM3 sos=rom\zxevo.rom:0 dos=rom\zxevo.rom:13 128=rom\zxevo.rom:2 sys=rom\zxevo.rom:3 [LEDS] ; enable leds leds=1 ; enable statis line status=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=pkzip25 -extract=all -overwrite=all "%s" ZIP=pkunzip -o -Jahrs %s ZIP=pkunzip -o %s ZIP=pkunzip %s RAR=rar32 e -y "%s" RAR=rar 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 MENU 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=SHIFT ESC ; read kempston mouse in windowed mode main.monitor=TIL ; for hackers only main.selectfilter=CONTROL F4 ; select video filter main.visuals=F4 ; visuals window main.selectdriver=SHIFT F4 ; select video driver for some filters main.flictoggle=CONTROL SHIFT F4 ; toggle flic/noflic 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.status=ALT GRDIV ; status line 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.shotclipbrd=SHIFT ALT F8 ; screenshot to clipboard 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=SHIFT F12 ; reset to service ROM main.reset48=ALT SHIFT F12 ; reset to basic 48 with locked 128k memory main.resetbasic=ALT 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=F11 ;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.saveram=ALT F9 ; quick save RAM dump 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.tsutoggle=ALT CONTROL TIL ; toggle TSU layers ; keys in all monitor windows mon.cpu=CONTROL TIL ; switch to next cpu mon.exit=ALT F4 ; mon.emul=TIL ; 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 scrdump/watches mon.scrshot_alt=ALT SHIFT S ; toggle main/alt screen in screendump 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.switchdump=CONTROL D ; CMOS/NVRAM editor ; 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 - kempston 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 [ZX.KEYS.XAS] Name=XAS 7.xx (incomplete) 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 SHIFT=CAP CONTROL=SYM [ZX.KEYS.ACEDIT] ; layout created by Alone Coder Name=ACEdit 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 L COMMA=SYM N POINT=SYM M ENTER=ENT SPACE=SPC LB=SYM 8 RB=SYM 9 COL=SYM O TAB=SYM CAP ESC=CAP SPC INS=SYM W HOME=SYM Q END=SYM E QUOTE=SYM P SLASH=SYM C BACKSL=SYM Z SHIFT=CAP CONTROL=SYM N4=KLEFT N6=KRIGHT N8=KUP N2=KDOWN N5=KFIRE N1=KLEFT KDOWN N3=KRIGHT KDOWN N7=KUP KLEFT N9=KUP KRIGHT GRSUB=SYM J GRADD=SYM K GRMUL=SYM B GRDIV=SYM V [ZX.KEYS.Z80Stealth] Name=Z80Stealth 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 - kempston 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 RALT=SYM LSHIFT=CAP RSHIFT=CAP RCONTROL=CAP 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 [ZX.KEYS.quorum] Name=Quorum ; Quorum keyboard layout: ; ; F1 F2 F3 F4 F5 [G] NMI INV [< RES ; [E] 1 2 3 4 5 6 7 8 9 0 - + BS DEL NSLASH NSTAR NMINUS ; TAB Q W E R T Y U I O P [ ] \ N7 N8 N9 ; CAPS A S D F G H J K L ; ' ~ ENT N4 N5 N6 ; RUS LAT Z X C V B N M , . / UP N1 N2 N3 ; CAP FIRE SPC SYM LT DN RT N0 NPOINT NPLUS ; ; FIRE,LT,DN,RT,UP=0,5,6,8,7 ; NMI,RES=F11,F12(see main.*) ; INV,[< - NOT emulated ; KLEFT,KRIGHT,KUP,KDOWN,KFIRE - kempston joystick ; (JLEFT,JRIGHT,JUP,JDOWN,JFIRE reserved for 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 ESC=EBOX DEL=BS TIL=TILDA CAPS=CAPS LEFT=5 DOWN=6 UP=7 RIGHT=8 BACK=DEL MINUS=- PLUS=+ COMMA=, POINT=. ENTER=ENT SPACE=SPC LB=[ RB=] COL=COLON TAB=TAB ;HOME=N7 ;END=N1 ;PGUP=N8 ;PGDN=N2 N1=N1 N2=N2 N3=N3 N4=N4 N5=N5 N6=N6 N7=N7 N8=N8 N9=N9 N0=N0 NP=NPOINT QUOTE=QUOTE SLASH=/ BACKSL=\ F1=F1 F2=F2 F3=F3 F4=F4 F5=F5 F6=GBOX GRDIV=NSLASH GRMUL=NSTAR GRSUB=NMINUS GRADD=NPLUS PGUP=RUS PGDN=LAT 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