Sky Screen Saver for Windows Version 2.1 Release Notes by John Walker http://www.fourmilab.ch/ INTRODUCTION ============ The Sky Screen Saver shows the sky above any location on Earth, including stars (from the Yale Bright Star Catalogue of more than 9000 stars to the 7th magnitude), the Moon in its correct phase and position in the sky, and the position of the Sun and all the planets in the sky. Outlines, boundaries, and names of constellations can be displayed, as well as names and Bayer/Flamsteed designations of stars brighter than a given threshold. A database of more than 500 deep-sky objects, including all the Messier objects and bright NGC objects can be plotted to a given magnitude. The ecliptic and celestial equator can be plotted, complete with co-ordinates. To fulfill its mission as a screen saver, the sky map shifts position on the display every 10 minutes to avoid burning in those few components of the display which do not move as the Earth revolves. The Sky Screen Saver is in the public domain. You can do anything you like with it. INSTALLATION ============ To install the Sky Screen Saver, obtain the archive SKYSCR32.ZIP and extract the files from it with PKUNZIP. You will obtain: SKY.SCR - Screen saver module README.TXT - This document Copy SKY.SCR to your Windows directory (usually C:\WINDOWS for Windows 95 or 98, or c:\WINNT\SYSTEM32 for Windows NT), then from the Display option of the Control Panel, choose "Sky" as your screen saver and use the "Settings" button to configure it for your location and preferences. CONFIGURATION ============= In order to correctly display the sky above your location on Earth, the Sky Screen Saver needs to know the latitude and longitude of your location. Specify this information as follows: Latitude and Longitude ---------------------- The latitude and longitude are specified in the dialogue which appears when you click the "Settings" button in the Screen Saver section of the Desktop control panel option. Enter your latitude and longitude, in degrees, minutes, and seconds in the boxes, and don't forget to click the buttons to specify whether your latitude is North or South and your longitude East or West. Don't worry about getting the longitude and latitude absolutely precise for your location--a couple of minutes of error don't make much difference in the appearance of the sky rendered at this scale. You don't have to enter your own latitude and longitude; you can enter the co-ordinates of any point on Earth and see the sky as it appears from that location. Detailed Configuration ---------------------- The "Detailed Configuration" button displays a dialogue which allows you to enable or disable the display of various components of the sky map. Constellations: Outlines -- The lines connecting the principal stars of the constellations. Boundaries -- The boundaries astronomers have defined between the constellations. Names -- Constellation names. Align -- Rotate constellation names to align with horizon on the map. This requires generation of a separate TrueType font for each constellation name. On a fast '486 with plenty of memory, it adds only a few seconds to the generation time, but on a 20 Mhz '386 with limited memory, it can take minutes. This mode is off by default; try it to see how long it takes and whether you prefer the names aligned. Stars: Magnitude limit -- Stars dimmer than this magnitude will not be displayed. Set to 6 to show all naked-eye stars. Names -- Check box to display names (e.g. "Vega", "Sirius", "Canopus") of stars brighter than the given magnitude limit. Bayer/Flamsteed codes -- Check box to display Bayer greek letters and Flamsteed numbers for stars brighter than the given magnitude. These are the designations of stars within a constellation such as "Delta Pavonis" or "61 Cygni". Deep sky objects -- Check box to plot deep sky objects (galaxies, gaseous nebulae, star clusters, etc.) brighter than the specified magnitude. Show ecliptic, equator, poles -- If checked, the celestial north and south poles will be marked with a cross whose arms point in the direction of the equinoctial and solstitial colures, and the ecliptic (labeled every 15 degrees) and the celestial equator (labeled in hours of right ascension) will be plotted. Show solar system objects -- If checked, the Sun, Moon, and planets will appear in the sky map. Show calculation time -- Check box to display the time required to calculate each update to the sky map. This is primarily intended for benchmarking various machines. DID YOU NOTICE? =============== The colour of the legends around the map changes based on the Sun's altitude. When it's nighttime (Sun more than 18 degrees below the horizon), they're grey. During the day (sunrise to sunset), they're bright blue. During dawn and sunset (when the Sun is between 1 and 6 degrees below the horizon) the legends are dark red, and during the balance of twilight (Sun between 6 and 18 degrees below the horizon), they're dark blue. For locations in the northern hemisphere the map is plotted with North at the top, while observers in the southern hemisphere see South at the top. East and West flop also, following the convention for printed star maps. Note than since a star map represents the dome of the heavens and is used, at least mentally, by holding it up over your head, East and West are reversed with respect to a map of the Earth. HOME PLANET =========== The Sky Screen Saver was developed based on Home Planet, a comprehensive Earth and sky simulator for Windows which displays the Earth, tracks satellites, asteroids, and comets, includes an extensible multimedia object catalogue, a simulated telescope for viewing the sky at any magnification or location, a database of more than a quarter million stars, and a complete hypertext help file and introduction to astronomy linked to the components of the program. Displays include the illuminated portion of the Earth, the Sky, the Telescope, the Earth as viewed from a satellite, the Moon, or the Sun, an orrery, panels displaying current information about the Moon and planets, and more. Real-time astronomical information can be exported to other applications via DDE. There's even a cuckoo clock (you can turn it off). Home Planet is in the public domain; you can do anything you like with it. For more information about Home Planet, visit the World-Wide Web page: http://www.fourmilab.ch/homeplanet/homeplanet.html UPDATE LOG ========== Version 1.0 (19 Sep 1994): Initial release. Version 1.1 (27 Sep 1994): If the allocation of the device dependent bitmap in which the sky map is drawn failed, several GDI calls were made with a zero handle. This caused warning messages and resulted in a blank screen with only the time at the top. I added code to detect the failed allocation and display an out of memory message which moves around the screen every 10 seconds. The size of the bitmap depends upon the size and colour depth of the configured display, so it's hard to give general guidelines about how much free memory is required. With a 1024x768x16 display, 2 megabytes free RAM is plenty. A 1024x768 full colour (24 bit per pixel) display requires about 5 megabytes of free RAM to allocate the bitmap and other storage. (17 Sep 1994): Built a version of 1.1 with the "alternate math package" to work around coprocessor emulation bugs. Tested both on a 486DX50 and a 386/20 with no coprocessor. It worked fine on both. (11 April 1996): Ported to Windows 95 and updated version to 2.0. Since Windows 95 handles screen saver passwords itself, I ripped out all the password machinery needed on Windows 3.x. Since the AccessResource API call which I used to conserve memory on 16 bit Windows has been conveniently ripped out in Win32, I added openRES(), fgetsRES(), and closeRES() functions to provide access to text files emebedded in resources. Deep sky objects weren't working because the format used to scan the items in the database was accidentally deleted. Fixed. (12 April 1996): Added the new identity string as the first item in the string table. It doesn't seem to be used for anything, but it's there anyway. The application name wasn't getting loaded by GetIniEntries(), resulting in a blank section name in CONTROL.INI--this seems to have been done in the screen saver library on Windows 3.x, but you have to do it yourself on Win 32. In the spirit of such great Microsoft contributions to the art of computer science such as IsTextUnicode() (look it up), I added a "longitude and latitude guesser" to SCRNSAVE.C's GetIniSettings() which is invoked when the user has not entered a latitude and longitude in the configuration box. The latitude is guessed based on the time zone bias--15 degrees for each hour. The latitude is set to either 45 North or 45 South based on the following algorithm. If the time zone uses Daylight time, the latitude is North if the switch to daylight time occurs in the first 6 months of the year and South if in the second 6 months. If Daylight time is not used in the zone, North is used unless the time zone name begins with "SA " or contains the string "South ". This is incredibly hokey, but works rather well and should reduce the number of bozo E-mails from people who want me to look up their latitude and longitude or wondering why the sky is wrong when they never bothered to set their site location in the first place. Added code to check the fChildPreview flag, set if we're being run by the Control Panel on-the-fly preview. If so, the sky image parameters are tweaked to produce something vaguely reasonable in the preview window. Bounds Checker pointed out we weren't destroying the Moon icon allocated in SUNMOON.C at program exit time. Fixed. Removed some unused code and variables in PROJECT.C, not needed since the screen saver only makes stereographic projections. Release 2.0. (October 28, 1996): I discovered I was a little overzealous in ripping out the old tzset()/time() code when installing the Windows 95 time zone facility, and accidentally disabled the timer which makes the sky map shift position on the screen every 10 minutes. Fixed. Release 2.1.