home *** CD-ROM | disk | FTP | other *** search
-
- WSpecEm v1.11 - 02/06/96 Rui Ribeiro
-
- WSpecEm is a 48k Spectrum emulator that runs under Microsoft Windows.
- It emulates successfully a Model 2 or Model 3 Speccy. I developed it over a
- 5-month period as my final year project, at University of West of England,
- Bristol, England. I'm here as an Erasmus student
- (ECC foreign interchange student).
-
-
-
- Features implemented:
- ---------------------
-
- . F4 as pause (v1.11);
-
- . emulator display frame rate definable (v1.10). Essential to run it on
- slower machines;
-
- . emulator has delay configurable by user (v1.10). Essential with new
- routines;
-
- . ghost keys (aka ghost closures -- v1.03 -- they were documented but not
- introduced with v1.01 due to a lapse);
-
- . save the current Spectrum screen as a PCX file; (v1.01)
-
-
- . handles .BLK tape files (v1.01 - a bug prevented it from working before
- this version);
-
- . all the Z80 undocumented instructions [that I'm aware of, at least];
-
- . exact R register emulation;
-
- . exact T state cycle timing in Z80 engine;
-
- . kempston joystick as cursor keys with Fire as CTRL (if NUM LOCK off, the
- numeric keypad will work as a kempston joystick);
-
- . Sinclair joystick as numeric keypad if NUM LOCK on
- (8 up, 2 down, 4 left, 6 rigth , 0 and 5 are both fire);
-
- . recognises Windows'95 longfilenames;
-
- . deals with ACH, PRG, SCR, SIT, SLT, SP, SNA, SNX, RAW, TAP, Z80,
- ZX and ROM spectrum related emulator files;
-
- . ED FB level loader trap supported (aka .DAT files);
-
- . files may be loaded by drag-and-drop, double-clicking or with the File
- open menu;
-
- . short-cut load and save keys, a' la Z80 (F2 - save and F3 - load,
- F5 - reset);
-
- . maps the Spectrum keyboard in the PC keyboard, with some extra pc-keys:
-
- ESC : Caps-shif+SPACE (CTRL-BREAK in a Speccy)
- BACKSPACE : same as Caps-shift+0 (DELETE in a Speccy)
- LEFT SHIFT : same as Caps-shift
- RIGHT SHIFT : same as Symbol-shift
- TAB : same as Caps-shift + Symbol-shift (Cursor E)
-
- +,-,*,/ extended keys, operate as their Spectrum Plus
- counterparts;
-
- . pause, reset, nmi functions;
-
- . sound generation through PC speaker;
-
- . sound, flash, issue 3 or issue 2 control options;
-
- . capability of saving options;
-
- . WinG high-speed pixmap transfer;
-
- . resize to 1x1, 2x2, 3x3 size for optimum speed under WinG;
-
- . poke menu;
-
- . easy of use;
-
- . enclosed DOS utility to sample Spectrum tapes in a PC as a .TAP file through a SoundBlaster
- or the printer port;
-
- . free, complete and commented sources available under GNU policy.
-
-
-
- Features not implemented:
- -------------------------
-
-
- . Border;
-
- . High Colour Resolution (also known as cropping);
-
- . Sound as WAVEFORM;
-
- . Pasting on clipboard;
-
- . does not save .TAP and .SLT files;
-
- . trapping of the LOAD and SAVE routines to save blocks as files on disk
- 'a la Xtender;
-
- . .BMP files --- the code is at the end of WSpecem.C, but is somehow
- flawed -- if you can put that to work, drop a line :) Of course you'll get
- credits for that.
-
- . TAP editor;
-
- . built-in debugger;
-
- . interface I emulation;
-
- . output to printer;
-
- . using a real joystick;
-
- . 128k compatibility.
-
-
-
- Third Party Copyrighted Material
- --------------------------------
-
-
- ZX Spectrum 1982 ROM from AMSTRAD.
- Thanks to AMSTRAD for granting permission to it's use within software
- emulators.
-
- WinG copyrighted Microsoft.
-
- If you want to know the snapshots that work with WSpecem, look at all the .Z80
- files at snaplist.txt. I checked now the .TAP files, and they're also OK.
-
- Tips
- ----
-
-
- . If the application is not working, first make sure you have properly
- installed the WinG drivers. If you did, make sure you have the multimedia
- drivers installed (a sure fire way of doing that is by installing the Media
- Player Windows utility) -- remember that I am talking about video drivers,
- in windows'95 you can also deinstall install the multimedia video drivers,
- so make sure you get them installed -- if you still want to check it out,
- find a little AVI file and see if you can play it;
-
- . a 8 colour screen depth (256 colours) mode is recommended for optimum
- speed. If you want it faster and bigger, decrease the windows screen
- resolution;
-
- . run it under the menu sizes 1x1, 2x2, 3x3 or you'll surely get very
- slow graphics transfer speed;
-
- . to get a faster emulation and smoother sound quit all applications that
- you can, disable screen savers and remove any windows background bitmaps;
-
- . to get a decent speed in the emulator, I recommend a Pentium or equivalent
- processor (altough I suspect it working reasonably with a 50 Mhz 486) --- err
- currently with version 1.10 I think the 50MHz 486 is really true;
-
- . and of course 8Mb or more for overall windows performance;
-
- . if you still don't have a good speed, try decreasing the frame n/50 option
- at Options->Speed menu, and disable the flash option at Options menu;
-
- . if by the contrary, you have too much speed, put frame n/50 option at
- Options-Speed menu to 1, and if that doesn't still help you, go to
- Options-> Speed menu and start increasing the Delay number;
-
- . double-clicking in a .SCR file will not do any good, since
- WSpecem will reset itself upon boot;
-
- . If you're using 16 colours, sometimes the subset of the palette chosen by
- Windows for WSpecEm is flawed. If this happens, you'll have to shutdown and
- boot Windows again;
-
- . If a key gets stuck, press it again. That should solve the problem. A key
- can became stuck if you press it down, select the a Windows menu and release
- it before leaving the menu;
-
- . Sometimes, when you are using the extended keys, you can get only one key
- instead of the combination of them (e.g. when pressing DELETE you get 0).
- This is a Spectrum ROM related bug and was also present on the real machines;
-
- . If you have problems with SHIFT keys stuck trying to get the E cursor, use
- TAB instead to get the E cursor -- this problem is more likely to occur under
- Windows 95 than Windows 3.x;
-
- . if you load a ROM, it will be used untill you load another ROM on the
- emulator;
-
- . if the emulator presents a message he couldn't load a ROM, thats because
- the spectrum.rom file is not on the directory of WSpecem.exe file. Following
- that message you can load your own ROM file;
-
- . to load a .TAP or .BLK contents (binary image files of Spectrum tapes),
- do File->Open to the corresponding file, and then tape LOAD"" (j SHIFT-P
- SHIFT-P ENTER).
-
-
-
- About the original author
- -------------------------
-
-
- Rui Fernando Ferreira Ribeiro
-
- rff-ribe@csm.uwe.ac.uk (until mid-end of June 1996)
- i890478@groucho.idt-isep.ipp.pt
-
- (both emails address subject to change after 1996)
-
-
- If you would like to embark in technical discussions or exchanging
- ideias, sugestions...you're welcome to send me a message. I can read
- Portuguese, English, Spanish and French (I also understand a bit of
- Italian: you can try to write, but I cannot assure you that I'll fully
- understand the message).
-
- I can reply in English or Portuguese. My Spanish is very fragmented
- and I must undergo great pains to write in French. No snapshots or software
- requests, please. Also if you're reporting problems, be sure to include the
- program version number, please.
-
- I would to find a job after mid-June 1996 (in my own country or
- anywhere in the world, really that doesn't matter as long I'll get fairly
- paid), so I cannot assure replying to messages after that date (well, that
- is IF I'll get any messages at all). And if you are wondering, yes, I
- already worked for 3 years at a Software House and since then in several
- part-times... I even have been building computers from components for a
- short while and selling them to friends.
-
- Would you like to send me a postcard with a theme from your country,
- to improve my collection? Please do not send emails, if you just want to
- congratulate me or tell me the emulator is good (sorry, already receive too
- many of them). Worst, I also received some binary pictures by email. Avoid
- this also, this really is annoying me.
-
- My address in Portugal is:
-
- Av. Carvalha, 280 3o. Dt
- P-4420 Gondomar
- Portugal
-
-
- And in England until 24 of June:
-
- 27B Carrol Court
- University of West of England
- ColdHarbour Lane
- Bristol
- BS16 1QY
- United Kingdom
-
- If you like reading, read also the file tape2tap.txt. It has a few
- more details about myself and will explain you how to read Spectrum tape
- files.
-
- Finally, I sincerelly hope this software will be of any use to you.
-
- Best regards,
- Rui
-
- ------------------------------------------------------------------
- WING NOTES FROM MICROSOFT
- ------------------------------------------------------------------
-
- Known Bugs And Limitations
- --------------------------
- The following are known problems with or useful tidbits of information
- about WinG version 1.0.
-
- - On Windows 3.1, WinGBitmaps must be 8 bits per pixel and must be
- created with full 256 entry color tables.
-
- - WinGDCs are NOT palette devices. You must change their color tables
- using WinGSetDIBColorTable, not SelectPalette.
-
- - WinGBitBlt and WinGStretchBlt only support bltting from WinGDCs to the
- screen.
-
- - Using BitBlt and StretchBlt to blt from one WinGDC to
- another can be very slow when a clipping region has been
- selected into the destination.
-
- - WinGBitBlt and WinGStretchBlt may return different values than
- StretchDIBits for identical blts.
-
- - A few GDI APIs do not work correctly with WinGDCs:
-
- StretchDIBits will not blt 24bpp and 16bpp DIBs into an 8bpp WinGDC.
- FloodFill with a NULL brush draws incorrectly
- FloodFill outside of the bounds of a WinGBitmap can flood the
- entire image
- Brushes created with CreatePatternBrush with a WinGBitmap fault when
- selected into a WinGDC on Win3x - use CreateBitmap(8,8,1,8,0)
- DrawIcon will crash
- WinGBitBlt and WinGStretchBlt will not always blt to the correct
- location when you have changed the Viewport and/or Window origins
- using SetViewportOrg or SetWindowOrg.
-
- - You cannot change the origin of halftone brushes created by WinG.
-
- - Noticeable timing differences have been found while running the
- WinG profiler on a computer connected to a network. For accurate
- results, disconnect your computer from the network the first time you
- run a WinG application. After the profile is complete, you can plug the
- net in again. NOTE: Microsoft is not liable for any damage you may
- incur by incorrect handling of your computer hardware.
-
- - WinGBitBlt and WinGStretchBlt use a slightly different color matching
- algorithm than StretchDIBits when blting an 8-bit image to a 4-bit
- planar display such as a standard VGA. Mixing WinG and
- StretchDIBits on these displays may produce odd results.
-
- - WinG relies on the mmsystem timer drivers to determine display
- performance. If mmsystem.dll and timer.drv are not installed
- correctly, the results of the performance test may be incorrect.
- mmsystem.dll should appear on the drivers= line of the [boot]
- section of system.ini, and timer=timer.drv should appear in the
- [drivers] section of system.ini.
-
- - WinG version 1.0 does not yet use standard DCI because of time
- constraints.
-
- - "Just In Time" debuggers install a fault handler in a chain along
- with the WinG display performance profiler. If your debugger
- reports a fault during the WinG display performance test, pass the
- fault on to Windows instead of invoking your debugger.
-
-
- Driver-Specific Problems
- ------------------------
- WinG depends on Windows display drivers written by independant
- hardware manufacturers for much of its speed. Bugs or performance
- problems in third-party display drivers may cause problems in WinG.
- In many cases, the video card manufacturer has already fixed the bug,
- and upgrading your display driver will often clear away problems.
-
- There are some specific "bugs" in display drivers of which you should
- be aware. The list below is not intended to slight the manufacturer
- of any particular card or driver.
-
- A list of stress-tested configurations is available on the CompuServe
- WINMM forum and ftp.microsoft.com.
-
- Some names in this list are trademarks of the respective
- manufacturer.
-
- - Early drivers for Diamond Viper cards included a "Power Palette"
- option that is no longer supported by Diamond. They recommend that
- you upgrade your drivers if you have this option. WinG may be
- slower when power palette is enabled.
-
- - IBM no longer supports the IBM ThinkPad 720c. There are some
- problems using WinG with the ThinkPad 720c display drivers.
-
- - Cirrus drivers before version 1.43 have many known bugs which
- have been fixed in the more recent drivers. Be sure to upgrade your
- drivers if you are still running with this version.
-
- - Some ATI drivers offer a "Crystal Fonts" option. Turning Crystal
- Fonts on in 8-bit modes sets up a non-palettized driver that can
- slow WinG significantly.
-
- - The ATI mach8 Radical drivers cause a number of problems in both
- WinG and in Windows with some versions of the ATI chipset. Be
- aware.
-
- - The ATI VGA Wonder drivers (W31-*.drv) will crash during a call to
- StretchDIBits in the profiler. Users can run the SVGA256.DRV driver
- that shipped with Windows.
-
- - Many miro Crystal drivers have problems with StretchDIBits, so they
- crash during profiling.
-
- - Early ATI Mach 32 PCI cards have a hardware timing problem and will
- hang while blting. ATI will replace these cards for no cost.
-
- - WinG is incompatible with the #9GXE "TurboCopy" mode. Use the
- #9 control panel to disable TurboCopy (it is off by default).
-
- - WinG uses a GetPixel to synchronize with display hardware when
- writing directly to the screen. The ATI Mach 32 driver's GetPixel
- does not work properly, so it is possible to use GDI to draw to
- the screen, then use WinG to blt to the screen and have them overwrite
- each other. Be careful mixing GDI drawing commands and WinG blts
- to the display.
-
- - The Orchid mmtllo.drv driver for the Prodesigner IIs has duplicate
- system colors which prevents applications from getting an identity
- palette and greatly reduces the WinG blt speed. A workaround is
- to set SYSPAL_NOSTATIC mode or use standard the Tseng ET4000 drivers
- instead of the mmtllo drivers.
-
-
- A Note on Speed
- ---------------
- WinG is designed to be the absolute fastest way to blt DIBs under
- Windows. The goal, achieved in many cases, is to blt at memory
- bandwidth to the display device.
-
- On most 8bpp devices, if you use the recommended DIB format (returned
- by WinGRecommendDIBFormat) and set up correct identity palette, you
- should get 1:1 blt speeds comparable to BitBlt, which blts device
- dependent bitmaps (DDBs) to the display. The timewing sample
- application will show you various blt speeds on your display.
-
- The WinGRecommendDIBFormat API will tell you whether to use top-down
- or bottom-up DIBs for fastest unclipped 1:1 identity palette blts. If
- you plan on using other types of blt (such as stretching or complex
- clipping), your application may want to time top-down versus
- bottom-up blts itself at run time. See the WinG help file for more
- information.
-