На страничку эмуляторов

UnrealSpeccy 0.18b by SMT

Contents

0. intro
1. features
2. system requirements
3. keys in emulator
4. bugs and incompatibilities
5. greets
6. contact me
----------------------------------------------------------------------

UnrealSpeccy designed for fast computers with latest OS: Windows 2000;
system requirements are very high for Spectrum emulator, but
acceptable (or relatively low?) for hardware in 2001 year ;-) this emulator is called 'Unreal' because there is some features,
that never was available on real ZX-Spectrum, such as quick save/load
snapshot, pause, speed-up/speed-down and so on...

----------------------------------------------------------------------

features
cpu
almost all (un)documented commands and flags
memory PENTAGON 128/512/1024
Scorpion 256/1024 RAM and 64K ROM
extensions compatible with profi,atm-turbo1
cache 16K
CMOS 256 bytes + RTC
sound beeper, tape saving and loading tones AY/YM: music - good; effects - not all effects reproduced
[used tables digitized from real chips by Hacker KAY] also there is 'unreal' (not available in real Spectrum) mode:
playing AY music using digital player - emul plays three sound samples
with volumes and frequencies taken from corresponding AY registers two covoxes - pentagon & scorpion soundrive saving sound to WAV or VTX (VTX - good format for ay sound, much
more compact then PSG, but you need lha.exe somewhere in %PATH%) General Sound - FX player + very simple MOD player, but you can save
MOD-file to disk and listen it in your favourite player [winamp] digital sound filter for general sound. uses simple upsampling, so
not much CPU time required (only 3 times slower, then normal mode)
video several video drivers, from simple and fastest to complex bi-linear
filtering, that upsamples Spectrum display to 512x384 * 64 colors;
several 'noflic' filters are specially for demos, that fast switches
two screens to get more colors (noflic2 emulates 'GIGASCREEN' device),
several chunky filters for 21st century demos multicolors are fixed for PENTAGON, 1T screen update for all
border effects able to emulate scorpion timings, including scorpion border update nopaper mode. for debugging border effects flash-color (using 128 ink colors with black paper when FLASH bit on) hardware multicolor (for perfomance reasons, ray is not emulated, so
no border effects in this mode) port #FF present
tune-up video/sound with hotkeys change video settings, such as number of t-states/frame, t-states/line,
fix with grey+, grey-, grey* t-states/frame is a computer speed, so it's easy to adjust speed in
fast (or slow) games in very wide range for comfortable playing alt+grey*, grey-, grey+ selects soundchip (AY/YM) and
stereo mode (ABC/ACB), or palette
beta 128 disk interface implemented all FDC commands, except read/write whole track
(format disk will not work);
traps for read/write sector - more then 256 times speedup
tape full TAP and partial TZX support
(not supported in TZX: tape flow control blocks, such as loops,
jumps, calls; and direct recording blocks -
i did not find tapes with direct recording to test) tape browser auto-start tape when accessing to ROM load routine fast loading with two ways:
1. trap ROM routine (zero loading time)
2. loader detector: UnrealSpeccy able to recognize loader logic
and speed up loader by removing delay loops and edge detection loops.
(of course, UnrealSpeccy leaves original t-states timing
so max speed mode must be enabled for fast loading - press NumLock)
With this technique any 128K game may be loaded in 10-20 secs.
i've developed this feature independent from RAMSOFT, but looks like
they are used same idea in RS 0.90.38...
for really fast loading, also choose fast (e.g. 'scanlines' or
'small') video driver - press F4.
input devices fully customizable keyboard
kempston mouse with speed and swap_buttons options
kempston joystick on keyboard
kempston joystick on mouse (joystick will follow mouse cursor)
kempston joystick on PC gameport (not tested)
sticky keys mode [stolen from ZX_Emul, read description there]
files reading: SNA and Z80 (all versions, 48k and 128k)
FDI, TRD, SCL (if SCL does not contain boot.B, it may be appended)
HOBETA format - appends file to existing disk, if no disk, empty
tr-dos disk will be created. best use with command line:
unreal.exe prog.$B prog.$C <- will be placed on same disk
you can also load it from 'F3' dialog, but only by one file
writing: SNA 48k and 128k
TRD, FDI
SCR, BMP (screenshots)
WAV, VTX leds 1. AY volume/status. just for fun. white color - tone,
grey - noise, blue - digital sound, green - envelope;
also shows GS volumes sometimes 2. perfomance leds. displays how much Z80 t-states between two
interrupts. when watching some demo, you'll see, how much time
takes one or another effect. second number is PC framerate - on
normal speed, it must be 50. if it's less, then your CPU is too
slow, and sound may be jerky - try to select faster video driver,
disable some devices, increase skipframe or decrease t-states
per int. when running on max speed, framerate shows how fast you
computer is. for example, 800 is 16 times faster then 3.5MHz
spectrum, and average game will load (without using traps) in 20 secs
but note, that vsync must be off, (framerate always less then
monitor refresh rate) 3. input led. shows which input devices are active - keyboard, mouse,
kempston joystick. for keyboard, displays queried keyrows.
one example: i've noticed, that in KOL0BOK2 intro active keyrows
are <B>-<SPACE> and A-G. <SPACE> is an exit, but why program
scans <A>-<G> ? i've pressed <A> and, and saw, that now program
queries <Y>-<P>. after pressing A+P, program queries <CAPS>-<V>.
when pressing A+P+X active keyrow is only <B>-<SPACE>. so, i've
found cheat without digging in program code! (another way was to
set breakpoint on reading port #FE and analyze code nearby) 4. ROM/LOAD led. when saving/loading from disk, emulator shows
blue or red diskette. when loading from tape, emulator displays
cassette picture and progress for current block (or 'PS' - tape
silence). if disk and tape are off, and cpu executes code in ROM,
then emulator displays 'DOS', 'B48', '128' or 'CHC' (cache);
this led also displays loading MOD/FX to General Sound 5. clock - for those ZX-Spectrum fans, who spend all their
time with virtual Spectrum 6. using leds on AT keyboard to display AY amplitude peaks
monitor software that in PC world is called 'debugger', in Spectrum world
is often called 'monitor' find text or code.
using mask: code matches when ((code & mask) == (pattern & mask)) unlimited number of code breakpoints conditional breakpoints of any complexity, uses c-like expression
syntax (with this feature can be easily done: breakpoint on range,
breakpoint to port in and out, on instruction, etc..) built-in Z80 assembler/disassembler save-load memory blocks screen preview: when multicolor/border effects disabled,
you'll see screen memory changes immediately, else TV-ray emulated ripper's tool: for ripping routines with their data
looks which bytes were read/written, and saves whole 64kb memory,
replacing unreferenced bytes with user-defined byte (default is #CF) hotkeys to save/restore cursor position in disasm window hotkeys for location instruction operand in Z80 or dump window all debug info on one screen, no need to switch pages
GUI all settings, that present in INI file, may be changed in GUI
(but will not be saved, for permanent effect edit INI file) easy entering POKEs, if you don't want to use monitor or use
HEX addresses. delimiters for numbers are space, comma, colon,
semicolon - so POKEs can be cut'n'pasted from any cheats collection loading from archives. now supported: CAB,ZIP,RAR
you can add own archivers to INI file

----------------------------------------------------------------------

system requirements UnrealSpeccy designed and optimized for windows 2000, it may work
in win95 too, but much slower. windows 98 and ME are not tested
and you may try it on own risk for running UnrealSpeccy you need: 8Mb of free (not pagefile) RAM
Celeron-266 CPU for Windows NT / Windows 2000
Celeron-400 CPU for Windows 95
16-bit sound card [optional, but recommended] if you have such hardware, but emulator runs slow, try the
following: 1. increase sound buffer size (especially for win95) in INI file
2. select 'scanlines' or 'fast' video driver
3. disable vsync
4. set 'skipframe=4' in INI file
5. set 'Frame=30000' in INI file (if nothing else does not work)
6. disable sound (without sound emulator runs much faster) this should help
----------------------------------------------------------------------keys in emulatorthese are default keys, can be changed in INI file
ESC monitor
F1 options/GUI
F2 write snapshot/disk image
Alt-F2 quicksave to qsave1.sna
Ctrl-F2 quicksave to qsave2.sna
Shift-F2 quicksave to qsave3.sna
F3 read snapshot/tape/disk image
Alt-F2 quickload from qsave1.sna
Ctrl-F3 quickload from qsave2.sna
Shift-F3 quickload from qsave3.sna
(SHIFT+)F4 select video driver
Alt-F4 exit emulator
F5 start/stop saving sound (WAV or VTX formats)
may be used from monitor: set breakpoint to
start/stop routines and save;
when saving to vtx, start and end silence wiped
F6 enter POKE(s)
F7 start/stop tape
Shift-F7 tape browser
Alt-F8 screenshot
F9 quicksave all altered disk images and CMOS
F11 NMI
Alt-F11 MNI to cache
Ctrl-F11 NMI to TR-DOS ("magic")
F12 reset 128
Ctrl-F12 reset tr-dos (128)
Shift-F12 reset to 48 basic, but port 7FFD unlocked
Alt-F12 reset to 48 basic, port 7FFD locked
Ctrl-Alt-F12 reset to cache
pause/break pause
grey/ leds on/off
grey* select parameter to change: t-states/int (speed), fix, etc...
Alt+grey* select parameter to change: ay/palette
grey+,grey- change sound/video parameter (press with SHIFT for finetuning)
NumLock max speed on/off (no sound on max speed)
keys in monitor(CTRL,SHIFT+)F1,F2,F3,F5 - see above
ESC exit, run program
F6 set breakpoints range
SHIFT-F6 reset breakpoints range
F7 step
F8 trace, skip calls and loops
F9 show spectrum screen
Shift-F9 show alternative 128k screen
F11 trace to (sp)
TAB next window
SHIFT-TAB prev window
Ctrl-W toggle watches/dump window
Alt-D toggle text/hex dump
Alt-B edit port 7FFD (select bank)
Alt-P enter POKE(s)
Alt-R load memory block from file
Alt-W save memory block to file
Alt-G general sound status (double-click - play sample)
Alt-T ripper's tool
Alt-C enter/edit conditional breakpoints conditional breakpoints uses C expression syntax.
operators (in priority order):
() ! ~ M(x) -> * % / + - >> << > < == = <= >= != & ^ | && ||
operands:
a,b,c,d,e,h,l,bc,de,hl - common registers
a',b',c',d',e',h',l',bc',de',hl' - alternative registers
ix,iy,pc,sp,i,r - control registers
FD - pentagon port #FD (also know as #7FFD)
OUT - port used in 'OUT' command (or 0FFFFFFFF when no outs)
IN - port used in 'IN' command (or 0FFFFFFFF when no ins)
VAL - read/written value to port (only meaningful when OUT != 0FFFFFFFF or IN != 0FFFFFFFF)
numbers - hex, but must start with digit: DFFD - wrong, 0DFFD - right
characters - must be enclosed in single quotes ('A','B',etc..)
all calculations uses 32-bit unsigned interger arithmetic
if you are not familiar with C, use brackets as much as possible, due to
non-intuitive operator's precedence, e.g.
out & 0FF == 0FE treated as 'out & (0FF == 0FE)' <- always 0 M(x) is peek byte at address x (same as x->0)
'=' is an alias for '==' (for pascal programmers) samples: (out+1) | (in+1) - in/out to any port
(in & 8001) == 0 - read keyboard row from <B> to <SPACE>
!(out & 1) - any out to port #FE
(out & 0FF)==0BB && (val==0F3 || val==0F4) - reset General Sound
(out & 0FF)==0FD && (val&7)==3 - set 3rd memory page
(FD & 7) == 3 - the same
M(pc)==0CB && pc->1 >= 10 && pc->1 <= 17
- set break on executing instruction "rl <reg>" i hope, these samples will be enough to get idea note: double-click on breakpoint to edit
monitor: registers windowCursor select register
ENTER,0-F change register
Ctrl+A,F,B,D,H,S,P,X,Y,I,R,M,1,2 edit A,F,BC,DE,HL,SP,PC,IX,IY,I,R,IM,IFF1,IFF2
Alt+S,Z,5,H,3,P,N,C toggle flag
monitor: CPU windowF4 trace to cursor
Alt-F7 find text
Ctrl-F7 find code with mask
HOME goto PC
Ctrl-G goto address
SPACE set/reset breakpoint under cursor
ENTER edit Z80 instruction
A-X assemble new Z80 instruction
Z set PC to cursor
Ctrl-1,.,Ctrl-8 save current position to slot 1-8
1-8 save current position to stack, goto saved position in slot 1-8
Backspace restore position from jumpstack
' push cursor position and goto instruction operand
; jump to instruction operand in data window
monitor: memory windowAlt-F7 find text
Ctrl-F7 find code with mask
Cursor,Home,End,PgUp,PgDn move
Ctrl-G goto address
Ctrl-TAB move to hex/ascii
Ctrl+S,P,B,D,H,X,Y goto sp,pc,bc,de,hl,ix,iy
other keys edit memory----------------------------------------------------------------------bugs and incompatibilities
some programs, such as Manic Miner, requires old (1982) 48K ROM;
you can get it from other emlulators and load it in 'ROM' settings some trdos programs (Unreal Megademo by KSA) works only if
trdos traps disabled AY tone generator does not play when tone period is equal to zero Bumpy does not work in default configuration, it tries to read port
#FFDF for kempston joystick - so disable kempston mouse before
playing [bug found by Paul Pavlov] sound does not work with CTSB128PCI (Creative Sound blaster)
there is a bug in drivers for windows 98. recommended solution: use
UnrealSpeccy 0.01, it uses another (better situated for win95) sound engine
[bug found by Nuts] some ABS adventures (ALIEN.SCL, LENIN.SCL) do not work with TR-DOS 5.04TM,
use version 5.03 - it most compatible [bug found by Paul Pavlov] Vixen 1,2,3 - incompatible with soundrive [bug found by Paul Pavlov]----------------------------------------------------------------------greetings goes to: * dj.Z, IMP and MIC - i enjoyed your music a lot !
* Hacker KAY - thanks for most accurate information about AY/YM
* Paul Pavlov - maintainer of largest TR-DOS archive
* Raul Gomez Sanchez (author of R80)
* Stalker - thanks for STS
* Extreme, Digital Reality, CBS - for quality demos
* V_Soft (Roman Scherbakov) - for Vortex format
* Sergey Bulba - for AY_Emul
* Ramsoft - thanks for ideas, found inside your emulator's code
* all ZX-Spectrum fans - Speccy is da best!
special thanks to people, who interested in
UnrealSpeccy' development and sent me info about hard/soft: * Maxim Vasilyev - sent me many bugreports
* Mac Buster - some info about beta 128 disk interface
* Shiru Otaku - sent me GSPAK.ZIP
* Alexey Kravchenko - scorpion timing info
* Vitaliy Pigo - testing and benchmarking
* Alex Baskakov - helped me with TD0 format
* and many others, who emailed me congratulations/suggestions/etc
----------------------------------------------------------------------contact me WWW: http://tools2k.chat.ru
e-mail: mail4smt@yahoo.com bug reports are welcomed. if you want more features or
emulating some device, give me *complete* docs read faq and incompatibilities list before writing e-mail note: please do not send files greater then 20K in one
email, send URLs


На страничку эмуляторов
Hosted by uCoz