KNOWN ISSUES 
- if you drive too fast through the city walls and framerates are below 10~20, you can no-clip and crash the game
- AI can spontaneously gridlock an intersection
- framerate spikes when updating the goals across the map: these updates still need to be threaded
- DOS can still give page faults and stuff.

TO-DO
- set up form for backers (0.5)

- crashing sounds
- course mode preview
- a high scores table
- game state should save world seed
- control scheme settings or rebinding
- DOS CD audio

==================================================================================================
version 0.5:

GAMEPLAY
- you can now save and resume your career
- added screen for viewing game stats inside the garage
- time extensions on arcade mode are a bit more generous
- driving through the garage on arcade mode will now refuel and fix all damage
- added separate key (H) to find home on the gps
- added handbrake control (spacebar) for U-turns and tighter drifts
- added courier missions. they have no haste requirement and are worth 5 stars,
  but crashing is an instant fail.
- stars on career mode are now used for unlocking upgrade stages
- adjusted initial bankroll to $200 since you cannot buy upgrades straight away anymore
- goal hitboxes are a little bit easier to hit
- you will hear beeps when time is running out

CONTENT AND FEATURES
- added command line arguments for different game settings. type "taxi --help" or "taxi ?"
- completely redone the game palette and remastered all graphics
- new, faster menu rendering
- added pause menu
- added menu sounds
- remixed and remastered the game's soundtrack, one all-new music track
- on career mode, each round will transition between night and day
- there is now a small chance rainy weather will turn into snowfall
- snow drops on the floor gradually
- more variety for particle graphics
- new structures added to city generation
- garage entrances now have transparency
- new textures added for buildings, foliage and street structures
- replaced police car with red BMW
- adjusted size of 7-segment characters in VGA low-res mode
- controls help page has been formatted into two columns
- added tips and tricks help page
- added top speed statistic
- added glowing outlines to minimap, better "night" color scheme
- new tip windows on the minimap screen, will also show on VGA
- added dashboard lights for brake temperature
- passenger faces now show up inside your rearview mirror
- VGA passenger graphics now show in half size
- separated player and camera entities
- added slight look-around effect when turning
- added view bouncing up/down with g-force
- added viewport skewing effect for extra dizzyness (disabled on low detail mode)
- added scanline filter to opengl renderer
- brought back the loading bars
- added random number lookup table
- upgraded to FreeBASIC 1.06

FIXES
- fixed traffic getting stuck inside walls and despawning
- fixed traffic turning into walls/buildings
- tow fee is now actually enforced -- and bumped to $100
- fixed robot girl's message for going too fast
- changed all game state strings from dynamic to fixed-size
  (might improve stability, speed when updating goals)
- improvements to how the isometric renderer draws masked walls and foliage
- fixed isometric map renderer in opengl creating weird artifacts
- opengl video modes now do fast linear buffer writes as software
- traffic now renders correctly inside masked walls
- fixed bugs within the compression algorithm that could cause crashes
- rewritten the graphics loading routines (saves about 1MB of overhead)
- sped up graphical filter overlays (fixes noticeable slowdown on help screens)
- removed speech bubbles and overlays showing up on the game over screen
- added proper sound envelopes (fixes crackling, loudness during transitions)
- fixed FM synthesis wave distortion to be more in line with adlib behavior
- changed the calculation of specular highlights to use division instead of exp
  (fixes floating point crashes that could occur in win32)
- fixed sound not initializing under real adlib/sound blaster hardware
- made weather events independent of framerate

==================================================================================================
version 0.4:

GAMEPLAY
- you can now drive in and out of the garage
- the garage is a new physical building and your fixed spawn point
- added fuel simulation
- fuel level now dictates the maximum length of your game on career/sandbox mode
  (instead of 10 minutes timer -- the timer will now count upwards)
- garage refueling option is now functional
- adjusted prices of repairs to balance the cost of fuel
- entering the konami code on the garage gives unlimited money
- you now have to drive back to the garage on career/sandbox mode
  pressing esc will set your gps to point the way back home
  double-pressing esc will fast travel (for a $50 fee)
- added haste bar: passengers like for you to keep a certain average speed
  if you go too fast or too slow, they will complain
- added passenger ratings and stats
  every time you upset your passenger, you lose a star
- changed timer in arcade mode: picking goals will extend your time
  you will also get 5 seconds extra per star upon delivery

CONTENT AND FEATURES
- added new menu song
- major graphics and textures polish pass
- added new traffic model (delorean)
- added street lamps and traffic lights
- more citygen variety
- different palettes for asphalt and sidewalks
- added more texture to floor designs
- removed static floor texture shading
- player car now leaves skidmarks on the ground
- slightly lowered traffic model heights except van
- added lighting flashes when raining
- displays rain particles on low detail mode
- redesigned dashboard gauges with working fuel and engine temp meters
- VGA dashboard is now more in line with the full resolution version
- minimap will now show the actual floor textures
- displays player arrow larger when minimap is zoomed in
- minimap won't be drawn in low detail mode
- displays timer on isometric map view
- removed goal counter from screen (can be shown with F3)
- updated the "how to play" help section
- added support for displaying and centering the HUD on high resolution modes
- added SVGA support for DOS - very experimental, expect to crash often

FIXES
- fixed floor palette glitches on some city sections
- adjusted wiper sensitivity to framerate
- AI traffic won't switch lanes when too close to the player to avoid collisions
  (hopefully fixes the one-hit kill issue)
- fixed graphic glitches in high resolution modes
- fixed standard 640x480 resolution rendering more lines than needed behind the dashboard
- adjusted background scrolling rate
- sky backdrop is no longer drawn inside garages
- rain no longer falls inside garages
- fixed a long-standing issue with only one masked wall being rendered per plane
- fixed building textures being rendered mirrored/backwards
- further raycasting performance optimizations
- addressed adlib timing specs
- reduced color banding in opengl renderer
- upgraded framerate factor back to double precision

==================================================================================================
version 0.3:
- new purchaseable upgrades: tires, brakes, cooling and turbo
- added turbo simulation and boost gauge
- added speed limiter
- reduced engine torque to compensate for turbo
- added turbo whistle noise
- things in the garage now cost money
- goal arrow now points down instead of up
- goal arrow changes color depending on direction
- reworked map format to reduce RAM requirement down to 8~16MB
- removed the feature of floor markings having custom colors
  (this didn't impact gameplay much and helps save RAM)
- much optimized loading times and buffer clearing
- merged the raycasting and collision routines for a bit more speed
- added dithering filter to shading
- low detail mode is now a toggleable option across all platforms (F4 hotkey)
- rain particles, wiper and windscreen cracks are now visible on all resolutions and bound to the low detail option
- screenshots are now saved on the current folder (doesn't require ../data/grab to exist anymore)
- DOS now shows terminal messages on the VGA screen
- VGA dashboard is now larger and more functional
- fixed adlib note-off commands
- fixed adlib frequency value calculations
- added PC speaker support
- added options menu and gamma adjustment setting
  (good for old laptop screens where the game is too dark)

==================================================================================================
version 0.2:
- sound generation and music streaming (windows/linux)
- adlib sound effects (dos)
- new menu screens for career mode
- you can now repair your car in the garage
- new bird's eye map view
- new characters and font sets
- new building textures
- new "van" traffic model
- one new passenger (hail to the king!)
- smoother and fancier screen transitions
- resized cockpit dashboard
- opengl renderer now does shading in full color
- new exit to console screen
- added support for the close window button on all screens
- floor markings now blink (experimental)
- optimized boundary check on floor drawing routine for extra speed
- improved framerate handling by averaging out several frames
- added fast linear buffer writing (software modes only)
- optimized color lookup tables
- disabled "security" boundary checks on raycasting loop
  (improves speed a bit, but might cause lockups or crashes if the map gets corrupted)
- created lookup table for plane distance calculations
- general tweaks for performance
- added debug screen to measure time spent on processing
- fps counter is now hidden by default (open the debug screen with F3)
- added icon and window title to executable
- all targets are now cross-compiled with a single script (should be tested more often, more stable)
- graphics bitmaps are now compressed with custom RLE format - aiming for <1MB game without music data
- fixed input polling hangup under windows
- completely reworked the help/readme screen

==================================================================================================
FAQ

Q: what's the difference between platforms? is the DOS port a different game?
   are the windows/linux binaries emulators?
A: all versions share the same core code and assets.
   the game is written in FreeBASIC and compiles native code for DOS and windows/linux.

   ports are only slightly different in the way they handle graphics and sound.
   the DOS port has a half-size game map due to memory constraints.

Q: what are the different executables and which should I run?
A: TAXIDEMO is the shareware version of the game which features the arcade mode.
   TAXI is the full version with the career mode unlocked. it uses the standard software renderer.
   TAXIGL is the full version which uses the special OpenGL renderer.

Q: what's the difference between software and OpenGL?
A: software graphics use the standard 640x480 resolution with 256 colors.
   full screen support depends extensively on your video hardware and monitors.
   most still support it as a "legacy" video mode, but there might be stretching
   and pixel scaling issues, and in extreme cases, color corruptions.

   OpenGL outputs on your desktop's full resolution and displays the game's 640x480 buffer
   with the correct 4:3 aspect ratio and bilinear filtering. since it also uses a full-color
   video mode, there is enhanced visual fidelity in color shading -- the fog effect where
   the graphics fade to black in the distance -- as opposed to the oldschool 256-color palette
   look-up table method.

   overall, I chose to feature both graphics modes as different compile-time choices because
   they provide different experiences; software might be more true to the desired SVGA look
   of the game, but OpenGL provides better fullscreen support and is totally future-proof.

Q: how is audio handled in DOS? why is there no music?
A: I chose not to work with digital samples in the game's sound effects, as an aesthetic
   choice but also to:
   * reduce the game's footprint
   * increase performance (I don't want audio synthesis and mixing to always be bound to CPU)
   * maximise development versatility.

   the game currently handles sound effects through different oscillator channels:
     1. engine rumble
     2. turbo whistle
     3. tire skid
     4. crash noises and menu effects
   as you may know, this basic 4-channel setup is similar to a lot of hardware like the
   CMS/Game Blaster which I may come to support in the future.

   right now, there are 3 ways of outputting sound:
     1. through the game's own FM synthesis audio engine (not available on DOS);
     2. programming the OPL2 FM chip, compatible with Adlib and Sound Blaster cards;
     3. patching the engine frequency straight to the mono PC speaker.

   as for music, I am not using MIDI, choosing instead to produce fully digital audio.
   there are two ways I plan to enable music playback:
     1. through encoded OGG files (not available on DOS);
     2. through redbook CD audio, played through MSCDEX.

   the advantage of using CD audio in vintage hardware is that playback is totally
   independent of the CPU. this is also fully supported by DOSBox using ISO
   or BIN+CUE files.
