Add OPL4 playback and analyzer support
This commit is contained in:
@@ -0,0 +1,676 @@
|
||||
----------------------------------------------------------------------
|
||||
UnrealSpeccy 0.37.7 by SMT and Others
|
||||
----------------------------------------------------------------------
|
||||
|
||||
contents
|
||||
|
||||
1. features
|
||||
2. system requirements
|
||||
3. command line
|
||||
4. keys in emulator
|
||||
5. bugs and incompatibilities
|
||||
6. greets
|
||||
7. license
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
features
|
||||
|
||||
|
||||
cpu
|
||||
Z80: all (un)documented commands and flags
|
||||
|
||||
|
||||
memory
|
||||
|
||||
Pentagon 128/512/1024 and 48K ROM
|
||||
TS-Configuration
|
||||
Scorpion 256/1024 RAM and 64K ROM
|
||||
Scorpion PROF-ROM with SMUC support (128/256/512K)
|
||||
KAY-256/1024 and 64K ROM
|
||||
ZX Evolution
|
||||
Profi 1024 RAM/ROM and memory mapper
|
||||
ATM TURBO 1 v4.50 512/1024 RAM, 64-1024K ROM
|
||||
ATM TURBO 2+ v7.10 128/512/1024 RAM, 64-1024K ROM
|
||||
cache 16/32K
|
||||
CMOS/RTC: russian chip (512Bu1, 64 bytes, 1st day is monday) or
|
||||
pc-compatible (DALLAS, 256 bytes, 1st day of week is sunday)
|
||||
SMUC RTC and NVRAM (24LC16)
|
||||
|
||||
sound
|
||||
|
||||
beeper, tape saving and loading tones
|
||||
|
||||
AY-3-8910/YM2149: excellent sound emulation, including digital
|
||||
and unusual effects, parallel ports on R14/R15 are not emulated
|
||||
|
||||
Turbo-AY (Turbo-Sound): two AY(or YM) chips by PoS and NedoPC schemes
|
||||
|
||||
TurboSound FM: two YM2203 chips (6 AY channels + 6 FM channels)
|
||||
|
||||
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
|
||||
and 'pseudo-turbo' - two parallel YM chips with some phase shift
|
||||
|
||||
two covoxes - Pentagon (port #FB) & Scorpion (port #DD)
|
||||
|
||||
SounDrive
|
||||
|
||||
saving sound to WAV or VTX (VTX - good format for AY sound, much
|
||||
more compact than PSG, but you need lha.exe somewhere in %PATH%)
|
||||
|
||||
General Sound - FX & MOD player through BASS sound system.
|
||||
You can save music and listen it in your favourite mod-player
|
||||
|
||||
General Sound low level emulation (including internal Z80 on 12MHz,
|
||||
512Kb onboard memory, internal ports and DACs)
|
||||
|
||||
BASS offers higher quality and more sound channels than low-level
|
||||
emulation. Low-level emulation is useful for programs altering the
|
||||
firmware player and using second Z80 for their own needs. In general,
|
||||
use BASS for games, and low-level emulation for advanced sound/music
|
||||
editors (RIFF tracker)
|
||||
|
||||
video
|
||||
|
||||
several video drivers, from simple and fastest to complex bi-linear
|
||||
filtering, that upsamples Spectrum display to 512x384 * 64 colors;
|
||||
'noflic' filter is specially for programs fast switching two screens
|
||||
to get more colors;
|
||||
several chunky filters for 21st century demos
|
||||
|
||||
amazing video filter: Anti-Text64. Designed for reading e-zines.
|
||||
It converts 4x8 fonts to 8x8 or 8x16 on the fly and saves your eyes
|
||||
|
||||
multicolors are fixed for Pentagon & Scorpion, 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)
|
||||
|
||||
hi-res modes: Pentagon 512x192, Profi 512x240, ATM
|
||||
(works with 'double' video filter)
|
||||
|
||||
ATM-TURBO color video modes (works with 'double' video filter):
|
||||
text mode 80x25, EGA mode 320x200, 640x200.
|
||||
To use custom text-mode font, place your "SGEN.ROM" to unreal directory.
|
||||
Don't use border=none with ATM video modes
|
||||
|
||||
Pentagon 384x304 mode [see ZX-Guide#2, AlCoNews#32]
|
||||
|
||||
Pentagon color-per-pixel mode [see Info Guide#8, #9]
|
||||
|
||||
hardware multicolor
|
||||
|
||||
attribute port #FF
|
||||
|
||||
|
||||
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 WD1793 commands, including read/format track
|
||||
|
||||
traps for read/write sector - more then 256 times speedup
|
||||
|
||||
|
||||
tape
|
||||
|
||||
full TAP and TZX support
|
||||
|
||||
CSW support
|
||||
|
||||
tape browser
|
||||
|
||||
auto-start tape when accessing to ROM load routine
|
||||
|
||||
fast loading: UnrealSpeccy is 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 used the same idea in RS 0.90.38...
|
||||
For really fast loading, also choose 'normal' video driver
|
||||
|
||||
|
||||
IDE
|
||||
|
||||
UnrealSpeccy is able to use KAY, SCORPION and ATM-2 IDE interfaces with
|
||||
two devices on it (hard disks or CD-ROMs)
|
||||
|
||||
for hard disks you may use image file or Spectrum drive, connected to
|
||||
computer. CD-ROM requires physical or windows-level emulated device
|
||||
|
||||
schemes supported:
|
||||
Nemo - controller for ZX-BUS manufactured by Nemo and NedoPC
|
||||
ATM - ATM TURBO 2+ v7.10
|
||||
Nemo(A8) - Nemo scheme modification: uses A8 instead of A0 to
|
||||
select high/low byte of 16bit data (easy to
|
||||
transfer sector with just two commands INIR:INIR)
|
||||
SMUC - IDE controller for ZS Scorpion
|
||||
|
||||
modem
|
||||
|
||||
ISA modem, configured to use COM1 ports 03F8-03FF
|
||||
translated to Spectrum's ports #F8EF-#FFEF.
|
||||
Modem interrupt (translated to Spectrum NMI) is not emulated
|
||||
Host computer should have installed windows driver for real modem.
|
||||
At least ping/dns by Kamil Karimov tested and works fine
|
||||
with empty 'modem initialization string'
|
||||
|
||||
|
||||
input devices
|
||||
|
||||
fully customizable keyboard
|
||||
copy text from clipboard via emulation of Spectrum keyboard
|
||||
AY-mouse (KORVET mouse, connected to AY-3-8910/12 port A)
|
||||
kempston mouse with adjustable speed and swap-buttons option,
|
||||
mouse wheel included (D7..D4 in buttons' port or UP/DOWN keys)
|
||||
kempston joystick on keyboard
|
||||
kempston joystick on mouse (joystick will follow mouse cursor)
|
||||
mouse wheel and buttons can be bound to any zx keys or kempston
|
||||
PC joystick/gamepad can be bound to any zx keys or kempston
|
||||
sticky keys mode [stolen from ZX_Emul, read description there]
|
||||
autofire (with adjustable key and period)
|
||||
|
||||
files
|
||||
|
||||
reading:
|
||||
|
||||
SP, SNA and Z80 (all versions, 48k and 128k)
|
||||
TAP, TZX, CSW
|
||||
FDI, TRD, SCL, TD0, UDI
|
||||
if disk image does not contain boot.B, it may be appended.
|
||||
Disk images for every drive may be loaded automatically
|
||||
at start of UnrealSpeccy
|
||||
HOBETA format - appends file to existing disk; if no disk, then 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, UDI
|
||||
TD0 (saved unpacked, so expect saved file larger than loaded)
|
||||
SCR, BMP (screenshots)
|
||||
WAV, VTX
|
||||
|
||||
|
||||
disk images converter:
|
||||
|
||||
emulator can open disk image in any format (TRD/TD0/FDI/SCL/UDI)
|
||||
and save it to any other format
|
||||
|
||||
|
||||
leds
|
||||
|
||||
1. AY volume/status. Just for fun. White color - tone, yellow - noise,
|
||||
green - envelope; also shows YM2203 and GS volumes
|
||||
|
||||
2. perfomance leds. One displays how much Z80 t-states is between two
|
||||
interrupts. While watching some demo you can see how much time
|
||||
takes one or another effect. Second led shows PC framerate - at
|
||||
normal speed it must be 50. If it is 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 fps is 16 times faster than
|
||||
Spectrum, so average game will load in 20 secs.
|
||||
|
||||
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 I saw that now program
|
||||
queries <Y>-<P>. After pressing A+P, program queries <CAPS>-<V>.
|
||||
When pressing A+P+X active keyrow areonly <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. loading led. When saving/loading from disk, emulator shows
|
||||
blue or red diskette. When formatting track, yellow disk is
|
||||
displayed. When loading from tape, emulator displays
|
||||
cassette picture and progress for current block (or 'PS' - tape
|
||||
silence)
|
||||
|
||||
5. local time - for those ZX Spectrum fans, who spend all their
|
||||
time with virtual Spectrum
|
||||
|
||||
6. on-screen watches - display used RAM and ROM banks in last frame,
|
||||
count user-defined expressions
|
||||
|
||||
7. using leds on AT keyboard to display AY amplitude peaks
|
||||
|
||||
|
||||
leds look strange when flash-color is enabled. It's not a bug
|
||||
|
||||
|
||||
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..)
|
||||
|
||||
memory access breakpoints (on reading/writing/executing of given memory
|
||||
areas)
|
||||
|
||||
built-in Z80 assembler/disassembler
|
||||
|
||||
save-load memory blocks
|
||||
|
||||
disk editor
|
||||
|
||||
ripper's tool: for ripping routines with their data.
|
||||
Marks 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
|
||||
|
||||
on-screen watches: show memory areas addressed by register pairs
|
||||
|
||||
|
||||
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 your own archivers to INI file
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
system requirements
|
||||
|
||||
Windows 95 or higher, or NT (not tested).
|
||||
Windows 2000/XP/2003 are required for real HDD support.
|
||||
|
||||
for running UnrealSpeccy you need:
|
||||
|
||||
Pentium-166 CPU MMX for basic functionality
|
||||
Celeron-266 CPU for Profi/Pentagon/ATM/Anti-Text64 hi-res modes
|
||||
Celeron-400 CPU for GS low-level emulation
|
||||
UnrealSpeccy eats only 12Mb of RAM, so
|
||||
if you've started Windows, then memory is enough
|
||||
2D accelerared video card with hardware support of
|
||||
video overlays and color keying for overlay modes
|
||||
3D accelerared video card for hardware chunky bilinear filter
|
||||
2 Mb of video memory in fullscreen
|
||||
4 Mb of video memory for windowed mode
|
||||
16-bit sound card [optional, but recommended]
|
||||
|
||||
|
||||
if you have such hardware, but emulator runs slow, try the
|
||||
following:
|
||||
|
||||
0. install latest directX and videocard drivers
|
||||
1. increase sound buffer size (especially for Win95) in INI file
|
||||
2. select video filter='small', video driver='ddraw'
|
||||
3. disable vsync
|
||||
4. set 'ShareCPU=0' in INI file
|
||||
5. do not use General Sound low-level emulation
|
||||
6. do not use YM2203
|
||||
7. set 'skipframe=4' in INI file
|
||||
8. set 'Frame=30000' in INI file (if nothing else does not work)
|
||||
9. disable sound (without sound emulator runs much faster)
|
||||
|
||||
this should help
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
command line parameters
|
||||
|
||||
/i <file> specify custom INI file, default:
|
||||
emulator_executable_filename_without_extension.ini
|
||||
/l <file> specify labels file, default: user.l
|
||||
/b <file> specify breakpoints file, default: bpx.ini
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
keys in emulator
|
||||
|
||||
these are default keys, can be changed in INI file
|
||||
|
||||
|
||||
Ctrl-F1 monitor
|
||||
Shift-ESC only for windowed mode: give mouse to emulator or to MS Windows
|
||||
Alt-F1 help on keys
|
||||
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-F3 quickload from qsave1.sna
|
||||
Ctrl-F3 quickload from qsave2.sna
|
||||
Shift-F3 quickload from qsave3.sna
|
||||
(SHIFT+)F4 select video driver (filter)
|
||||
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 are wiped
|
||||
F6 enter POKE(s)
|
||||
Alt-F6 search in memory for changed values (cheats, etc)
|
||||
F7 start/stop tape
|
||||
Shift-F7 tape browser
|
||||
Alt-F8 screenshot
|
||||
F9 quicksave all altered disk images and CMOS
|
||||
Alt-Shift-F11 NMI
|
||||
Alt-F11 NMI to cache
|
||||
Ctrl-F11 NMI to TR-DOS ("magic")
|
||||
F12 reset to default mode, as specified in INI file
|
||||
Ctrl-Shift-F12 reset to basic-128
|
||||
Ctrl-F12 reset TR-DOS (128)
|
||||
Shift-F12 reset to 48 basic, but port 7FFD unlocked
|
||||
Alt-Shift-F12 reset to 48 basic, port 7FFD locked
|
||||
Alt-F12 reset to system ROM
|
||||
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)
|
||||
Alt-NumLock toggle autofire on/off
|
||||
Alt-Ctrl-Z toggle ATM XT(AT)-keyboard controller on/off
|
||||
Alt-Enter toggle full-screen mode
|
||||
Alt-Shift-Ins copy text from clipboard to keyboard buffer
|
||||
Alt-1 set window size to 1x scale in windowed mode
|
||||
Alt-2 set window size to 2x scale, useful for hardware-stretched
|
||||
modes like overlay and blitter
|
||||
Alt-3 maximize window
|
||||
|
||||
|
||||
keys in monitor
|
||||
|
||||
(CTRL,SHIFT,ALT+)F1,F2,F3,F5,F11,F12 - see above
|
||||
Ctrl-F1 exit, run program
|
||||
F7 step
|
||||
F8 trace, skip calls and loops
|
||||
F9 show Spectrum screen
|
||||
Shift-F9 show alternative 128k screen
|
||||
Alt-F9 show screen until painted point with border, mc and 2-scr
|
||||
effects
|
||||
F11 run program until address (SP)
|
||||
TAB next window
|
||||
SHIFT-TAB previous window
|
||||
Alt-D toggle text/hex dump
|
||||
Alt-B write to port 7FFD (select bank / screen)
|
||||
Alt-M write to model-specific extended memory port (like
|
||||
#1FFD,#FDFD,#DFFD,...)
|
||||
Alt-P enter POKE(s)
|
||||
Alt-F6 search in memory for changed values (cheats, etc)
|
||||
Alt-R load memory block from file
|
||||
Alt-W save memory block to file
|
||||
Alt-F fill memory block with hex pattern
|
||||
(note: to copy block, please use save+load)
|
||||
Alt-G General Sound status (double-click - play sample)
|
||||
Alt-T ripper's tool
|
||||
Alt-O configure on-screen watches
|
||||
Alt-U disasm to file
|
||||
Alt-S cycle screenshot (ray-painted) / screendump (screen memory) /
|
||||
watches
|
||||
Alt-F render current frame to video buffer without border and MC
|
||||
effects
|
||||
Ctrl-U set user-defined watch address
|
||||
Ctrl-L view labels, visible for Z80 in current memory state
|
||||
Ctrl-J select and go to label
|
||||
Alt-C breakpoints manager
|
||||
Alt-Y switch active sound chip in Turbo-Sound mode
|
||||
|
||||
|
||||
manager can handle 3 types of breakpoints:
|
||||
|
||||
1. conditional breakpoints and on-screen watches
|
||||
are using 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 - memory port #FD (also known as #7FFD)
|
||||
PG0, PG1, PG2, PG3 - TS-conf page registers for memory windows at #0000, #4000, #8000, #C000
|
||||
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)
|
||||
RD - address used in memory read operation
|
||||
WR - address used in memory write operation
|
||||
MDT - data read/written to memory
|
||||
numbers - hex, must start with digit: DFFD - wrong, 0DFFD - right
|
||||
characters - must be enclosed in single quotes ('A','B',etc..)
|
||||
All calculations use 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 is treated as 'out & (0FF == 0FE)' <- always 0
|
||||
|
||||
M(x) is byte from memory address x (same as x->0)
|
||||
'=' is an alias for '==' (for Pascal programmers)
|
||||
|
||||
examples:
|
||||
|
||||
(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 examples will be enough to get idea
|
||||
|
||||
note: double-click on breakpoint to edit it
|
||||
|
||||
2. execution breakpoints (also set in CPU window by pressing SPACE).
|
||||
In manager window it is easy to setup breakpoint on execution
|
||||
range like 6000-FFFF
|
||||
|
||||
3. breakpoints on reading/writing memory. Similar to execution
|
||||
breakpoints, but have flags "R" and "W" to issue interrupt on
|
||||
reading/writing memory address (flags may be set together)
|
||||
|
||||
|
||||
monitor: registers window
|
||||
|
||||
Cursor 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
|
||||
' go to value under cursor in CPU window
|
||||
; go to value under cursor in memory window
|
||||
|
||||
|
||||
monitor: CPU window
|
||||
|
||||
F4 trace to cursor
|
||||
Alt-F7 find text
|
||||
Ctrl-F7 find code with mask
|
||||
HOME go to PC
|
||||
Ctrl-G go to address
|
||||
SPACE set/reset breakpoint under cursor
|
||||
ENTER edit Z80 instruction, opcode bytes or cursor address
|
||||
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, go to saved position in slot 1-8
|
||||
Backspace restore position from jumpstack
|
||||
' push cursor position and go to instruction operand
|
||||
; jump to instruction operand in data window
|
||||
Ctrl-A reading labels from XAS or ALASM, using 3 methods:
|
||||
1. XAS7: assembler should be in bank 6 (or bank #46 for Pentagon-512)
|
||||
2. ALASM: version 4.42-5.0x should be in 128k-memory (pages 1-7)
|
||||
3. ALASM+STS: STS should be in bank#7 (or bank #47 for Pentagon-512)
|
||||
|
||||
|
||||
monitor: memory window
|
||||
|
||||
Alt-F7 find text in memory / disk track
|
||||
Ctrl-F7 find code with mask in memory / disk track
|
||||
Cursor,Home,End,PgUp,PgDn move
|
||||
Ctrl-G go to address
|
||||
Ctrl-M select memory editor
|
||||
Ctrl-V select disk editor (physical track)
|
||||
Ctrl-O select disk editor (logical sectors)
|
||||
Ctrl-T select disk/track/sector in diskeditor
|
||||
Ctrl-TAB move to hex/ascii
|
||||
Ctrl+S,P,B,D,H,X,Y go to SP,PC,BC,DE,HL,IX,IY
|
||||
other keys edit
|
||||
|
||||
monitor: Beta 128 window
|
||||
|
||||
here is a typical FDC indicator content
|
||||
CD:1820
|
||||
STAT:21
|
||||
SECT:09
|
||||
T:01/01
|
||||
S:3C/00
|
||||
|
||||
first line is command and data register (cmd18,data20 - seek track 20)
|
||||
2nd line - status register
|
||||
3rd line - sector register
|
||||
4th line - actual FDD head position and track register
|
||||
5th line - Beta disk system register and DRQ/INTRQ port
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
bugs and incompatibilities
|
||||
|
||||
|
||||
some programs, such as Manic Miner and Lode Runner, require
|
||||
old 48K ROM (1982.rom), while some other programs require
|
||||
ZX Spectrum 128 ROM (48for128.rom + 128tr!.rom)
|
||||
|
||||
some TR-DOS programs (Unreal Megademo by KSA, Street Fighter)
|
||||
work only if TR-DOS traps are disabled and all delays enabled
|
||||
|
||||
Profi service ROM can work only when all TR-DOS delays are enabled
|
||||
|
||||
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]
|
||||
|
||||
sounddrv=wave does not work with CTSB128PCI (Creative Sound Blaster),
|
||||
there is a bug in drivers for this card. [bug found by Nuts]
|
||||
|
||||
some ABS adventures (ALIEN.SCL, LENIN.SCL) do not work with TR-DOS 5.04TM,
|
||||
use version 5.03 - it is most compatible [bug found by Paul Pavlov]
|
||||
|
||||
Vixen 1,2,3 - incompatible with SounDrive [bug found by Paul Pavlov]
|
||||
Fernandez - incompatible with SounDrive [bug found by Shadow Maker]
|
||||
|
||||
port #FF sometimes is not responding when SkipFrame!=0
|
||||
(the same to SkipFrameMaxSpeed!=0 and max speed mode)
|
||||
|
||||
Scorpion 'MAGIC' generates NMI even if PC < #4000, but shadow
|
||||
monitor is not designed for this situation and may crash
|
||||
|
||||
CacheVox by AlCo requires TR-DOS delays enabled and [BETA128] IL=1
|
||||
|
||||
If the emulator after returning of focus seems to have a sticky key,
|
||||
press Scroll Lock, deactivate blinking key, then press Scroll Lock again.
|
||||
|
||||
If emulator control keys work wrong after returning of focus, press Enter,
|
||||
and keys must go normal.
|
||||
|
||||
If emulator hangs with General Sound, try DSPrimary=0.
|
||||
|
||||
If emulator crashes with General Sound, try GSType=Z80.
|
||||
|
||||
If Kempston Joystick doesn't work, go to menu, press NumLock there,
|
||||
then return.
|
||||
|
||||
In case of bad sound, try DSPrimary=1 (may crash emulator eventually!)
|
||||
or SoundDrv=wave in .ini.
|
||||
|
||||
Screenshots are saved to the emulator directory.
|
||||
Files to read and write via debugger are situated in a current directory
|
||||
(which is seen by F3).
|
||||
|
||||
Download sys.trd (for drive B:) from http://alonecoder.narod.ru/zx/SYS.rar
|
||||
Download xBIOS for ATM Turbo2+ from http://atmturbo.nedopc.com/
|
||||
Get WNASPI32.DLL from Ahead Nero or from Ahead website
|
||||
|
||||
BASS.DLL v2.3 was taken from http://www.un4seen.com/
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
greetings from SMT:
|
||||
|
||||
* dj.Z, IMP and MIC - I enjoyed your music a lot !
|
||||
* Nik-O and Fatal Snipe - for adherence to ay scene
|
||||
* 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
|
||||
* Placebo, Extreme, Digital Reality, CBS - for quality demos
|
||||
* V_Soft (Roman Scherbakov) - for Vortex format
|
||||
* Sergey Bulba - for AY_Emul
|
||||
* Alone Coder - you keep Spectrum alive
|
||||
* Ian Luck - thanks for BASS
|
||||
* SirX - just a hello
|
||||
* all ZX Spectrum fans - Speccy is da best!
|
||||
|
||||
|
||||
special thanks to people, who were interested in
|
||||
UnrealSpeccy's 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
|
||||
* Alone Coder - thnx for many info about Pentagon hardware
|
||||
* Dexus - for integrating YM2203 support
|
||||
* Maksagor - ATM information
|
||||
* and many others, who emailed me congratulations/suggestions/etc
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
license
|
||||
|
||||
UnrealSpeccy is completely freeware. You may use this emulator
|
||||
and its sources without any restrictions. You may use the
|
||||
sources in your own emul or to release bugfixed/new versions.
|
||||
in this case you do not have to release updated source code,
|
||||
(unlike GNU Public License requires, for example). You may port
|
||||
emulator to any other platform (but there are many
|
||||
MSVC-specific language constructions, so it's doubtful that
|
||||
you can compile it with another compiler)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user