Short: Experimental VNC server w/ src (RTG/PAL) Author: Stephane Guillard & Daniel Westerberg Uploader: Daniel Westerberg (daniel onyxsoft se) Type: comm/tcp Version: 2.2.1 Architecture: ppc-amigaos >= 4.0.0 About VNC --------- VNC is a truly thin client protocol which enables the use of one computer (the server) from another (the client), by : - Enabling remote view of the server screen in a window on the client screen - Enabling the use of the keyboard of the client in place of the keyboard of the server - Enabling the use of the mouse of the client in place of the mouse of the server More can be found in the provided HTML doc file. About AmiVNC ------------ AmiVNC is an experimental VNC server for the Amiga. Visit Stephane's homepage for more information: http://s.guillard.free.fr Requirements ------------ To run AmiVNC you need : - An AmigaOS4 computer - any native planar Amiga screenmode (PAL, NTSC, AGA etc.) or 15, 16, 24 or 32 bit RTG mode (CGFX or Picasso96) - a TCP-IP stack (AmiTCP or Miami(dx) or RoadShow or any bsdsocket.library compliant stack), - enough free ram to hold a copy of the Workbench screen, - a computer with a VNC Client (Mac, Unix or Linux box, PC, Amiga). Myself, I use an older VNC client for Windows, which can be found at http://s.guillard.free.fr/OS4/vncviewer.zip and a workbench screen set as 1024x768x16 bit. To build AmiVNC you need : - The AmigaOS4 SDK Usage ----- AmiVNC4 should be used from the shell. It can be started without arguments, but first you need to set a password, like this: AmiVNC4 -pMyPassWord To get some usage information, enter the following in a shell: AmiVNC4 -h AmiVNC4 can also be started using the icon from Workbench. For more information, visit http://s.guillard.free.fr/AmiVNC/AmiVNC.htm History / News -------------- 2.2.1 - Changes by Daniel Westerberg 2009-11-19 - 2010-04-23: (released in 2016!) - Fixed Zlib usage after reconnect to the server. (Thought it did that in 2.2.0!) - Fixed an update bug causing it to miss about 8 pixels at the top of everything that was redrawn. - Fixed incremental logfiles. Logfiles will be appended even after restart of the server. Multiple instances will get their own logfiles. - Incremental passw fail timer. 2.2.0 - Changes by Daniel Westerberg 2008-03-14 - 2009-11-19: - Added Zlib support. - Enable the use of Workbench tooltypes so AmiVNC4 can be started from Workbench. - Fixed a bug in the change-scanning code which speed up the scanning and responsivness a lot. - Added a delay when password fails to prevent bots from brute-forcing. - Now defaults to not using CopyRect, only Hextile. - Added a switch to enable CopyRect. 2.1.1 - Changes by Daniel Westerberg 2007-10-16 - 2008-03-13: - Fixed the crash of both AmiVNC and clients when a screen height was not dividable by the tile size. If screens are not a multiple of 32x32 pixels the last right and/or bottom pixels will not be updated. This problem shows on for example a 1680x1050 wide-screen. 2.1.0 - Changes by Daniel Westerberg 2006-08-24 - 2007-10-16: - Clipboard implemented. Only works with RAmiga+c or x, (RCtrl+c or x on the client). - Right Ctrl key is translated as RCommand to allow some hotkeys, like cut'n'paste. - Both left and right Ctrl together translates as LCommand. - Home/End/etc. uses proper OS4 codes instead of becoming shift+numpad. - Numpad events get the NUMERICPAD qualifier instead of LSHIFT. - Added F11 & F12 and Meta-key as LCommand. - Scroll wheel supported. - Mouse buttons side and extra supported. - Support for CopyRect for horizontal repetitiv patterns and scrolling of gfx downwards. - Support for Hextile in the simplest way: one-color tiles or raw tiles. - Automatically switches to 8-bit BGR233 if the client requests that. - Added switch to force RAW encoding. - Added switch to enable RAWMOUSE events alternating with NEWPOINTERPOS to allow some menues to work better. - Added help with -h option. Internal: - Small optimization: tiles can be flatter than XDC_TILE if not all of it has changed. - Error-checking for all recv()s in the child process. - Error tolerance in send() and recv(): 10 consecutive errors allowed before disconnect. - SoftTimer used instead of Delay() in the main loop. Allows for periodic check instead of delayed check. It includes a throttle control if the period is too short for the CPU. - Replaced all malloc/free/fopen/fprintf for AllocVec/FreeVec/FOpen/FPrintf since newlib isn't completely thread-safe. (It crashed) - Extracted everything related to the input thread and put it in thread.c. 2.0.2 - removed the "fastmode hack" used for 16 bit screenmodes, which was not compatible with changed RTG endianness in OS4 2.0.1 - removed unneeded library open code for libauto opened libs. Might help fixing the 'crash on exit' which I unfortunately cant get here... 2.0.0 - Port to AmigaOS4 - Bugfix : mouse events were inserted into input.device with wrong length 1.0.1 - ievents.c code cleanup 1.0.0 - Solved this looongstanding mouse scale bug which showed on wome configs. Thanks Denis Spach ! - Mouse support is now more system friendly thus compatible w/ MagicMenu etc. - Code is 1/2 its previous size, faster and more stable (thanks StormC4) - Added 68020 versions to the distribution 0.1.0 - Ported to and compiled w/ StormC4/GCC (smaller, faster). - Added IntuitionBase locking (more stable). - Reworked mouse event insertion (should remove mouse coord. errors). - First PPC version (not distributed yet) : faster. - Added DELAY parameter, to lower CPU needs. 0.0.15 - Added VVA support : BGR233 pixel encoding (enable this with VVA tooltype or -a on the command line). Reduces all screen modes to 256 colors, speeding things a bit. - Palette refreshing bug fixes for palette screenmodes (planar and chunky). 0.0.14 - Bug fix : password setting with S: in an AFS or PFS filesystem did not work. Reason : AmiTCP net.lib (with which I link) strangely alters creat() behavior. Now using Open(). - Bug fix : when stopping AmiVNC with CTRL-C signal, memory was freed twice. Reason : I had not understood what CXBRK() is. 0.0.13 - Added support for 256 color RTG screen modes (at last !). Indeed, when I saw working 256 color planar modes I thought it would not be that hard to have 256 color chunky modes too ! Now, there should not be that many screen modes not supported. 0.0.12c - Added a planar only version for users who don't have Picasso96 nor Cybergraphics at all. See in the "planar only" directory, and read the html doc ! 0.0.12 - Added support for Amiga planar modes (YES, AT LAST !). - Removed the StopAmiVNC tool. To properly stop AmiVNC, feed it with a BREAK C (only when it is waiting for incoming sessions). If you use Executive, you can use the nice MUI Commander for this purpose. - Added icon Tooltypes to set parameters. - Added user commands to be executed when client logs in or logs out. - Added log to file, thus silent mode. - A few bug fixes. - Documentation update. 0.0.11 - Added the StopAmiVNC tool, to properly stop AmiVNC (only when it is waiting for incoming sessions). - Enhanced keyboard support (supporting arrow keys, CONTROL, SHIFT, Lamiga = Lalt, Ramiga = Ralt etc.). Better, but still not perfect. - Enhanced mouse support (handles ieQualifier). Better, but still not perfect : in YAM, you can drag your messages but when they come onto a drop area, they are unselected. - Allows screen change IF new screen is the same RGB mode. I did not think it would be very useful, but indeed I use it ! Aborts connection when screen changes if new screen mode is different (as said somewhere above, the VNC clients abort when they receive a mServerInitMsg message in the middle of a session, and this message is necessary to change the resolution). - More command line options : -e to force Big Endian flag -(r|g|b) to force red | green | blue bit shift on color encoding, useful if you have color trouble. Legal values are 0, 8, 16, 24. Default is -r8 -g16 -b24. -l to limit network packet size when sending initial screen update. Useful if you have too many network collisions. Default is no limit. - Speed restored under Picasso96 with screen depth = 16 bit pixels. Still slower under CGFX or with screen depth > 2, because still using ReadPixelArray for compatibility, and sending 4 byte pixels. Will try to fix that. - A few bug fixes. 0.0.10ra - Deals with active screen, not necessarily Workbench (this does not mean you can open a screen in a session !). - No longer a one shot daemon. You can re-connect. Stop with CTRL-C when the server is waiting for connections (if you break it at another state, you may loose memory). - Corrected acquisition of raster pointer, which worked under Pic96 but not under CGFx. Thanks to Steffen Haeuser. - Changed all color encoders to ARGB (32 bit on the wire), and ReadPixelArray(). This is slower, but works with all CGFx and Picasso96 screen modes with depth > 8. As a side effect, AmiVNC is even smaller than before ! - This version is successfully running on my setup, with both AmiTCP, Genesis or Miami as a TCP stack, and Picasso96 or CFGx 4 as RTG system. 0.0.9 : - Fixed ObtainSocket() call, works now with Miami - Added 24 bit pixel support - Added Cybergraphics support - Added setting of listening port (5900 may also be used by other softwre) - Fixed documentation - Still much to be done 0.0.8mt : - Initial release on Aminet