Changes from V2+i to VW:

Stuff that no longer works:

- Almost all of the console commands have been disabled.

- The undocumented 'S' renderstring command has been disabled.

- Character files, once opened, are cached for the remaining execution.
  (i.e. character files are never freed, but are only opened once).  The
  same is true of fonts.

- Mouse functions may give out-of-bound values in windowed modes when
  the cursor isn't in the window?  (Haven't tested this yet.)

- System mouse cursor shows during program execution.

- VC memory manager will crash after VC allocates a total of 2 gig (regardless
  of whether or not the memory is freed).

- The timer will overflow after running the game for about 32 continuous days,
  probably crashing the game.

- Packfiles are not implemented.

- The undocumented variable "vsp" has been disabled.

- The undocumented variable "last_pressed" has been disabled.

- The "screen" variable has been disabled.

- The "key" variable is now read-only.

- The undocumented array variable "layer[x].hline" has been disabled.

- The "pal" array variable has been disabled.

- Palette morphing has been disabled.

- The undocumented variable "music_volume" has been disabled.

- FLIs are disabled.

- The undocumented functions "MapLine" and "TMapLine" have been disabled.

- The undocumented function "Tint" has been disabled.

- The function "AllowConsole" has been disabled.

- The function "InitMosaicTable" has been disabled.  It returns zero, so its
  return value should never be used.

- The function "Mosaic" has been disabled.

- Hooked scripts now never interrupt executing VC code: don't rely on 
  HookTimer or HookKey to get you out of a while loop.  HookRetrace
  still works as expected.

- In order for the program to respond to Windows system events (moving the
  window, changing applications, etc.), an update function must be called
  regularly.  This function is called from UpdateControls, UpdateMouse, 
  and ShowPage (and, of course, the main loop), so most programs should 
  remain interactive.

Enhancements:

- Memory management is much better.  Less memory is leaked, VC memory access 
  is more rigorously checked, graphics clipping is always performed.  Unlike
  V2 and V2+i, VW does not require me to reboot my machine between program
  runs.

- Undocumented poly functions now work better than ever:
  FlatPoly(x1, y1, x2, y2, x3, y3, color);
  TMapPoly(x1, y1, x2, y2, x3, y3, tx1, ty1, tx2, ty2, tx3, ty3, texWidth, texHeight, texImage);

- Supported music formats: MOD, S3M, XM, and IT.  (added IT)

- Supported graphics formats: GIF, 8- and 24-bit PCX, 8- and 24-bit BMP.  Odd-width
  images are now supported.  (added 24-bit PCX, fixed PCX and BMP width issues,
  fixed GIF memory leaks).

- Graphics are generally faster, and you can have any graphics dimension
  in a windowed mode.  Fullscreen modes appear to be more stable than before.

- To access fullscreen modes, add "fullscreen" to user.cfg.

- To access other bit depths, add "viddepth #" to user.cfg, where # can
  currently be 16 or 32.  Note that there is no way to communicate the bit depth
  to VC, so code that relies on 16-bit image sizes may crash in 32-bit mode.
  Also, VC's rshift, gshift, and bshift variable values are currently incorrect
  for 32-bit mode.  Thus: stick to 16-bit mode for now.

- 16-bit mode is now in 565 format instead of 555 format.  This gives an extra bit
  to green colors, which makes the graphics look a little nicer.

- Transparency table is now calculated to 128 bits, as opposed to 32 bits, which
  makes transparency a little more accurate.

- Any Windows-installed joystick works.  (As opposed to just GRIP under DOS.)
  The button mappings can be configured using user.cfg, as in V2+i.

- The program uses reasonable defaults when user.cfg is not present.  The only
  files actually needed, in addition to the executable and the DLLs, are
  console.gif, system.fnt, a startup map (defaults to test.map), the map's 
  VSP and compiled VC code, and the compiled system VC code (system.vcs and
  system.idx).

- Screenshots can be made by pressing F11, even during most VC execution.  
  Screenshots are saved in a "capture" subdirectory, which must exist for
  VERGE screen capture to work.  Of course, you can always use Windows 
  to capture a windowed mode to the clipboard by pressing alt-printscreen.


Changes from V2 to V2+i by the Speed Bump (thespeedbump@home.com)

As of April 2nd

 Notes on all the stuff I did with V2:

  Directories: You no longer have to lump all your files in one directory. V2
                will now allow access to subfolders of your verge directory,
                but nothing else.

  HIGH COLOR!!!
    Sorry, but I had to remove 8 bit support in this version. If you'd rather use
    256 colors, use a version I haven't manhandled, or wait for V2.5. :)
    BTW: Check out the transparencies!!! (SWEET! @_@)
 

  GETMODE.EXE: This sounds kind of retarded, but I don't know much about
                protected mode addressing and whatnot. So I wrote GETMODE.EXE
                to do most of the VESA interfacing. Keep it in the same
                directory as VERGE.EXE.

        VSPs:  VERGE now loads any VSP format (8bit compressed/uncompressed
                or 16bit uncompressed). I didn't think there was much of a
                point to compressing the 16 bit VSPs, it'd probably
                increase the filesize as opposed to decreasing it.
                note that 16 bit VSPs have the extension of .V16.
                If the engine cannot find tileset.v16 then it'll load
                tileset.vsp. This works as a great workaround until I (or
                anyone else who wants to) can redo MapEd.
 
        Fonts: Since fonts don't have a palette in them, support for 8 bit
                fonts has been removed. Calm down :). Just get font.pcx,
                convert it into a 24 bit BMP, and use BMP2FONT.EXE. (run it
                without paramaters to get the syntax). Use flat black
                (r0 g0 b0) for the background color.
 
        CHRs:  Like fonts, CHRs have no palette. So, you'll have to convert
                them to 24 bit BMPs. Also, I'm not too good at string parsing
                yet, so the MAK files are a bit different. (An example is
                included).

       Images: As of yet, I can't figure out 24 bit PCXs and there are no 24
                bit GIFS. In short, you can load all your old images, plus 24
                bit BMPs.
    SetLucent: Since there's a lot more you can do with transparencies in
                high color, I added some functions to this.
                SetLucent(2); will enable variable transparencies. First,
                Enter the new function CalcLucent(translevel) where translevel
                is the level of translucency. 0 is invisible, 255 is opaque.
                SetLucent(3); causes all the colors to be added togeather.
                This is great for lighting. Run the demo to see!
                @_@ <-my new favourite emoticon
                SetLucent(4); is the opposite, it's awesome for shadows/etc...
                Again check out the demo, there is only one image loaded in
                memory, one is added to the screen, the other subtracted.
                Guess which :)
                SetLucent(5); allows for VARIABLE color addition. It uses the
                CalcLucent table, but it's backwards (dunno why). Anyhow,
                CalcLucent(0); is just like fixed addition, while 255 is
                invisible.
                SetLucent(6); is, rather predictably, variable color
                subtraction. It works just like SetLucent(5);

 PaletteMorph: There is no longer any palette to morph. :) I guess I should
                stick something in place to simulate it, but it'd be so damn
                slow (every pixel would have to be transformed at every
                retrace). If anyone has any ideas, drop me a line at
                thespeedbump@home.com
    TRANS.TBL: This isn't used by VERGE.EXE anymore.
                Keep it there for MapEd's sake.
                (Until a 16 bit version is available)
 
  GrIP
    I added some commands to USER.CFG to enable it:
 
    grip            - on a line by itself.  enables GrIP
    jb1,jb2,etc...  - followed by a button number.  just like in V1
                      You'll have to mess with it a bit to get the
                      numbers right, or you can use JOYTEST.EXE. Just run it.
 
   Also, make sure GRIP.GLL (note that it's not DLL) is in the same dir
   as the EXE