We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

GeoSafari Geography

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

GeoSafari Geography

Publisher: Educational Insights
Platforms: Windows, Mac OS Classic


SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

GeoSafari Geography is an educational geography game released under the GeoSafari line of products. It was released sometime in the second half of the 1990s, with varying accounts reporting 1995, 1997, or 1999. It was released for both Macintosh and Windows.

Cached source code

There are two cache.cst files in the ISO, apparently used as a binary cache. The one in the root directory contains snippets of source code written in AppleScript, including comments and debug messages, interspersed with binary data. As there are almost 3000 such lines of source code, only one snippet is reproduced below as an example.

on SetpFlashing me, val
  -- DEBUG 1 line
  -- put "button in sprite "&string(GetSpriteNum(me))&" just got set pFlashing message val = "&string(val)
  
  set pFlashing to val
  if pFlashing then
    set pLastFlash to the ticks
    set pFlashingSuspended to FALSE
  else
    Unhilite(me, FALSE)
  end if
end

on SuspendFlashing me
  set pFlashingSuspended to TRUE
end

on ResumeFlashing me
  set pFlashingSuspended to FALSE
end

on SetpFlashStopTime me, val
  set pFlashStopTime to integer(val)
end

on stepFrame me
  if pFlashing then
    if not pFlashingSuspended then
      if pFlashStopTime > 0 and the ticks > pFlashStopTime then
        -- stop flashing
        set pFlashing to FALSE
        Unhilite(me, FALSE)
        set pFlashStopTime to 0
      else
        if pLastFlash + pFlashTime < the ticks then
          set pLastFlash to the ticks
          ToggleHilite(me, pUpdateWhenFlashing)
        end if
      end if
    end if
  end if
end

on TrackMouse me
  put TrackMouse(ancestor) into clicked
  if clicked then
    set pFlashing to FALSE
    UnHilite(me, FALSE)
  end if
  
  return clicked
end