VNCview GS: The VNC client for the Apple IIgs
Go to file
2024-07-02 12:31:06 -05:00
.github Create FUNDING.yml file. 2024-07-02 12:31:06 -05:00
_config.yml Update title/description for github.io site. 2017-04-20 21:46:03 -05:00
._README Update README 2016-09-30 15:54:51 -05:00
clipboard.cc Don't block waiting for large clipboard transfers. 2016-09-21 17:52:47 -05:00
clipboard.h Don't block waiting for large clipboard transfers. 2016-09-21 17:52:47 -05:00
colortables.cc Don't duplicatively regenerate color table entries. 2016-05-21 00:23:48 -05:00
colortables.h Statically allocate space for color tables in an assembly file. 2016-05-13 18:34:23 -05:00
copyrect.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
copyrect.h
desktopsize.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
desktopsize.h
hextile.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
hextile.h
keyboard.cc Support sending non-ASCII characters in key events. 2016-09-28 19:21:16 -05:00
keyboard.h Clean up headers and make things static where appropriate. 2016-05-13 20:19:27 -05:00
make Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
menus.h Consistently use spaces for indentation 2015-09-23 20:26:03 -05:00
mouse.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
mouse.h Consistently use spaces for indentation 2015-09-23 20:26:03 -05:00
raw.cc Check for events during raw drawing based on time, rather than every 16 lines. 2016-09-29 20:16:18 -05:00
raw.h
rawdec.asm Use faster assembly routine for 320-mode raw pixel decoding too. 2016-05-20 22:08:05 -05:00
rawdec.macros Use faster assembly routine for 320-mode raw pixel decoding too. 2016-05-20 22:08:05 -05:00
README Update README 2016-09-30 15:54:51 -05:00
README.md Explicitly recommend Marinetti 3.0b9 or later for best performance. 2018-07-04 20:45:07 -05:00
readtcp.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
readtcp.h Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
tables.asm Use a static (instead of dynamically allocated) buffer for SHR pixels generated from raw decoding. 2016-05-13 21:44:12 -05:00
vncdisplay.cc Adjust the mode-switching code to provide smoother transitions. 2016-09-28 23:22:16 -05:00
vncdisplay.h Don't block waiting for large clipboard transfers. 2016-09-21 17:52:47 -05:00
vncsession.cc Adjust the mode-switching code to provide smoother transitions. 2016-09-28 23:22:16 -05:00
vncsession.h Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
vncview.cc Move TCP read routines to a separate file. 2016-09-17 17:06:53 -05:00
vncview.h Implement option to tune Marinetti for high throughput. 2016-09-02 19:08:45 -05:00
vncview.rez Update version number 2016-09-30 17:43:29 -05:00

VNCview GS

VNCview GS is a Virtual Network Computing client (viewer) for the Apple IIgs. You can use it to display and interact with the graphical desktop of another computer through your Apple IIgs.

Binary downloads are on the releases page.

System Requirements

  • An Apple IIgs running System Software 6.0.1 or later
  • Marinetti (version 3.0b9 or later recommended for best performance)
  • Andrew Roughan's Crypto Tool Set (needed for password functionality)
  • A computer running a VNC server to which you have access

Strongly recommended:

  • An accelerator
  • A high-bandwidth, low-latency network connection from the IIgs to the server

A IIgs connected to the network via an Ethernet connection and a server connected to your LAN will probably provide the best performance.

Under Sweet16, there is a known issue where the networking code within Sweet16 may drop the connection to the VNC server. This generally occurs at relatively low emulated speeds; you can usually avoid it by using high or unlimited speed.

Usage

To start VNCview GS, simply run the VNCview.GS program. The New VNC Connection dialog box will be displayed, allowing you to configure and start a VNC connection.

Usually, you need to enter the VNC server (using a hostname or IP address and a VNC display number, as in other VNC programs) and a password. Some servers may not require a password, but most do and it is probably advisable to set up your own servers with a password to provide some security. Also note that the VNC display number can be omitted if it is 0, and that it can be negative.

You can select a 320x200 color or 640x200 grayscale display mode. The 320x200 mode better corresponds to the server's normal display, since it displays colors and uses near-square pixels. 640x200 mode will cause greater distortion and does not display colors, but it does allow a larger portion of the server's desktop to be displayed on the IIgs.

Other options are also available.

  • Request shared session indicates the server should allow multiple clients to connect to it simultaneously. The server is not required to honor this request.
  • Emulate 3-Button Mouse causes option-clicks and OA-clicks to be treated as clicks of the second and third mouse buttons.
  • View Only Mode allows you to see the server's display but not to send any keyboard, mouse, or clipboard input to the server.
  • Allow Clipboard Transfers from Server indicates that the server is allowed to send its clipboard contents, which will be transferred to the IIgs clipboard.

The Preferred Encoding is the method that will be used to represent pixels on the server's display when sending them to the IIgs; the available options are Raw and Hextile. The Raw encoding sends lines of pixel values to the IIgs, while Hextile represents the display as a collection of small rectangular areas. Raw is generally faster than Hextile in the current version of VNCview GS, but Hextile may be faster on very slow network links. Some servers may not support Hextile encoding, in which case Raw will be used regardless of this setting.

The Tune Marinetti for high throughput option configures Marinetti to process a larger amount of incoming data at once than it does by default. This generally improves performance.

When you have configured your new VNC connection, simply click Connect, and if all goes well you will be connected to the VNC server. You can interact with it with the mouse and keyboard and scroll your view of its display. The option and Open-Apple keys are sent as "meta" and "alt," respectively; their exact interpretation depends on the server. Keyboard shortcuts for menu items are disabled when connected so that these key combinations can be sent to the server. Select Close or Quit in the File menu when you are done with the connection.

Menu Items

Apple->About VNCview GS...: Displays information about the program
File->New Connection: Allows you to configure and establish a new connection
File->Close: Closes current window or connection. You can connect again afterward.
File->Quit: Quits VNCview GS, closing any open connection
Edit->Undo: Only used by NDAs
Edit->Cut/Copy/Paste/Clear: Used in New VNC Connection window input boxes and NDAs
Edit->Show Clipboard: Displays the current contents of the IIgs clipboard
Edit->Send Clipboard: Transfers the contents of the IIgs clipboard to the server

VNC Server Interoperability

VNCview GS should be able to connect with any VNC server that fully implements the RFB protocol as defined in RFC 6143 or earlier compatible specifications. Here is a list of some VNC servers; many others are also available.

x11vnc is a good option, because it supports server-side display scaling, which is useful to fit more information on the IIgs screen.

VNCview GS does not work with the Screen Sharing functionality in macOS, because the Screen Sharing server does not support the pixel format that VNCview GS requires. The above servers can be used instead.

Version History

1.0.2
  • Support for typing non-ASCII characters
  • Smoother transitions between 640 mode and 320 mode
  • Improved UI responsiveness during raw pixel decoding
1.0.1
  • Improved clipboard transfer routines, with support for non-ASCII characters
  • Improvements to help the display "catch up" when content is changing rapidly
  • Fix to avoid long pauses or hangs when closing the connection in some cases
  • Fix to ensure Marinetti resources are properly cleaned up in error cases
1.0
  • Optimized raw pixel decoding routines
  • Raw pixels can be decoded and displayed incrementally while receiving data
  • Added option to tune Marinetti for high throughput
1.0b2
  • First open source release
  • Can display the mouse cursor from the server locally on the IIgs
  • Detects some errors more quickly, avoiding long periods of unresponsiveness
  • Mapping of OA and Option keys reversed to match Mac VNC implementations
  • Raw pixel decoding performance improved slightly
1.0b1
  • Faster display updates when using Raw encoding
  • Servers with screen dimensions smaller that the IIgs screen are now supported.
  • The server's display can be resized while connected to it (certain servers only)
1.0a2
  • Hextile encoding support added
  • Faster display update when scrolling while using Raw encoding
  • Bug causing problems with 2nd and subsequent connections fixed
1.0a1
  • First public release

License

Copyright (c) 2002-2016 Stephen Heumann
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This program contains material from the ORCA/C Run-Time Libraries, copyright 1987-1996 by Byte Works, Inc. Used with permission.