Falcon's Eye

Falcon's Eye is a BBS door game from the 1990's. I used to play Solar Realms Elite by my friend Amit Patel. Falcon's Eye is a continuation of the game theme by Amit's brother, Mehul Patel.

Lately I've been interested in turn-based strategy games, so I've been researching old BBS door games that were popular back before first-person shooters.

GAME.DAT Format

In-memory start 3E4A
Disassembly start 4841
0x000 County Name
1-byte len
39-byte string
0x20 BBS Name
1-byte len
36-byte
0x03D Last played time (6 bytes?)
0x04A Silver (int32)
0x044 Turn number?? (int32)
0x04E Unemployed (int32)
0x052 Farmers (int32)
0x056 Armourers (int32)
0x05A Builders (int32)
0x05F Alchemists (int32)
0x062 Scientists (int32)
0x066 Druids (int32)
0x06A Merchants (int32)
0x06E Mages (int32)
0x0CA Employment periods (int32) has to do efficiency calc
0x0CE Farmers last turn (int32)
0x0D2 Armourers last turn (int32)
0x0D6 Builders last turn (int32)
0x0DA Alchemists last turn (int32)
0x0DE Scientists last turn (int32)
0x0E2 Druids last turn (int32)
0x0E6 Merchants last turn (int32)
0x0EA Mages last turn (int32)
0x146 Improvements
01 - ? (none)
02 - Library
04 - School
08 - Artists' Hall
10 - Museum
20 - University
40 - Town Square
80 - Trade Fair
0x147 Improvements
01 - Farmers' Market
02 - Town Hall
04 - Marketplace
08 - Merchants' Guild
10 - Bank
20 - Barracks
40 - Fighters' Guild
80 - Dungeon
0x148 Improvements
01 - Training Grounds
02 - Labyrinth
04 - Colliseum
08 - Town Walls
10 - Towers
20 - Stronghold
40 - Palace
80 - Fortress
0x149 Improvements
01 - Castle
02 - Water Palace
04 - Castle in the Clouds
08 - War College
10 - Smithy
20 - Armoury
40 - Armourers' Guild
80 - Waterwheel
0x14A Improvements
01 - Cotton Mill
02 - Sawmill
04 - Mine
08 - Architects' Hall
10 - Mercenaries' Guild
20 - Clerics' Guild
40 - Temple
80 - Pyramid
0x14B Improvements
01 - Oracle
02 - Wizards' Tower
04 - Church
08 - Cathedral
10 - Jesters' House
20 - Farm
40 - Irrigation Ditches
80 - Water Tower
0x14C Improvements
01 - Grove of Trees
02 - Tree of Life
04 - Granary
08 - Caravan
10 - Pub
20 - Theatre
40 - Circus
80 - House of Spirits
0x14D Improvements
01 - House of Wands
02 - Fairy Garden
04 - Fairy Fountain
08 -
10 -
20 -
40 -
80 -
0x152 Construction building type (int8 bitmask offset)
0x153 Construction months left (int32)
0x211 Approval rating (int16)
0x219 Runes (int32)
0x21D Weapons (int32)
0x225 Bushels of Food (int32)
0x231 Acres of land (int32)
0x24F Race (int8 ??)
0x250 Unit A (int32)
0x254 Unit B (int32)
0x258 Unit C (int32)
0x25C Protection duration (int16)
0x25E Invisible Casting duration (int16)
0x260 Concentrate Magic duration(int16)
0x262 Aura of Majesty duration (int16)
0x264 Call Storm duration (int16)
0x266 Black Wind duration (int16)
0x268 Curse duration (int16)
0x26A Cloud of Paralysis duration (int16)
Races:
01 Humans
02 Barbarians
03 Birdmen
04 Centaurs
05 Dwarves
06 Elves
07 Faeries
08 Ghosts
09 Ghouls
0A Goblins
0B Halflings
0C Mermaids
0D Minotaurs
0E Ogres
0F Orcs
10 Puppets
11 Sprites
12 Trolls
13 Wolves
14 Zombies

Spell Casting

  1. Base productivity is calculated

    1. Number of current workers (push)
    2. Base efficiency is 0.5
    3. Increased by 0.2 for University (push)
    4. Current number of workers subtracted by previous mult by effic (push)
    5. Multiply number of workers by some real (0.0 in my case) == 0.0 (push)
    6. Current workers multiplied by previous result (0.0) (pop)
    7. Add previous worker efficiency (pop)
    8. Previous workers by scaled new workers
    9. If it's turn number one, make sure efficiency is 0.7
    10. Truncate to [0.0, 1.0]
  2. Mage-specific productivity is calculated

    1. Racial modifiers added
    2. School adds 0.03
    3. Waterwheel adds 0.03
    4. Cotton Mill adds 0.03
    5. Circus subtracts 0.03
    6. Falcon's Eye multiplies 1.1
    7. Calc Approval Rating (20% sway to efficiency)

      1. Museum adds 2.0
      2. Town Hall adds 3.0
      3. Colliseum adds 2.0
      4. Total approval multiplied by 0.2
      5. Total approval divided by 100
      6. Add 0.9 to approval
    8. Chance multiplied by adjusted approval rating
    9. Check for something that mults by 1.25 if you don't have any (offset 0x262)
    10. Truncate to [0.0,5.0]
  3. Magic chances based on improvements

    1. Mage population from last turn is multiplied by efficiency
    2. Result is divided by number of free acres of land
    3. Multiply by 1.2 for Oracle
    4. Multiply by 1.5 for Tree of Life if Life Spell!
    5. Multiply by 1.2 for Grove of Trees (if no target?)
    6. Multiply by 1.5 for House of Spirits (if has target?)
    7. Multiply by 1.25 for Concentrate Magic (if has target?)
  4. Spell-specific chances

    1. Spell difficulting is multiplied by normal magic chances (from last step)
    2. Result is divided by 50
    3. If protection is in effect multiply by 1.2
    4. The result so far is A
    5. Result is added to arg_4,6,8 (dunno yet)
    6. Random:Real is called and multiplied by previous result called B
    7. If A is greater or equal to B, succeeds.

Copyright © Kenny Root. All rights reserved.