Giter Club home page Giter Club logo

fizmo's Introduction

About fizmo

fizmo represents a generic a Z-Machine interpreter — “fizmo interprets z-machine opcodes” — supporting all Z-Machine kinds except version 6, allowing you to run Infocom-made and most other Z-Machine based interactive fiction, also called text adventures. It also provides a generalized, plain-C interpreter library, as well as interfaces / implementations for various display and sound output methods, providing an interpreter-engine for you own project, even for closed-source implementations due to it's BSD-style license.


Frontends

Currently there are five frontends available:

  • fizmo-sdl2
    Using the freetype2 engine, this SDL2-based frontend allows for proportional font display and supports antialiasing, subpixel-rendering and HiDPI support. It uses the “Fira Sans” and “Fira Mono” font faces which were made by Erik Spiekermann and Ralph du Carrois.
  • fizmo-ncursesw
    This frontend uses ncurses “wide” variant for story output. Ncurses is commonly used for output on fixed-width text displays. The wide extensions will ensure correct unicode display.
  • fizmo-console
    This frontend will simple read and write from the console / terminal. No fance functionality whatsoever, but may be useful for automization or voice output.
  • fizmo-glktermw
    An example Glk frontend. Requires glktermw — notice the trailing “w” — which may be downloaded from the GLK-Implementations at the Interactive Fiction archive.
  • fizmo-remglk
    A RemGlk-based fizmo frontend. Requires remglk, which may be downloaded from GitHub.

Interfaces

For developers, interfaces translate the Z-machine specific output — window management, output, scrolling and so on — into more display-specific commands, easing implementation considerably.

  • libpixelif
    This interface will convert output into draw-pixel commands, providing support for implementations on any pixel-based display. This interface is used by fizmo-sdl2.
  • libmonospaceif
    This interface will convert output into simple “goto-xy”- and “print”-commands, providing support for implementations on a fixed-width display. This interface is used by fizmo-ncursesw.
  • libglkif
    The GLK-interface translates Z-Machine output into GLK-specific instructions. This is used by Andrew Plotkin's iOS-fizmo.

Libraries

  • libfizmo
    This provides the interpreter core. It is a plain-C implementation which requires no external libraries (libxml2 is used by default, but in case babel support is not needed even libxml2 is not required).
  • libdrilbo
    Provides support for jpeg, png and infocom's mg1 image reading as well as X11-based output.
  • libsndifsdl2
    Supplies a SDL2-based sound interface.

Installation

Please see INSTALL.txt on how to bulid the packages.


Miscellaneous

Please send bug reports (or other requests) to [email protected].

Fizmo was written by Christoph Ender in 2005 – 2016.

Please note:
Currently fizmo is in beta status, meaning it might do unexpected things such as stop with an error message, crash or cleesh your machine into a frog. There is no warranty of any kind whatsoever and you're entirely on your own when running it.


This package includes software written by other authors:

libfizmo includes the Mersenne Twister random number generator, available at http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. This is available via a BSD license, which is stored in the source file “libfizmo/src/interpreter/mt19937ar.c”.

libfizmo includes hyphenation patterns provided by the hyph-utf8 project at http://www.ctan.org/tex-archive/language/hyph-utf8/:

libdrilbo includes code from the pix2gif utility by Mark Howell in ztools, which are available from http://www.ifarchive.org/indexes/if-archiveXinfocomXtoolsXztools.html. The copyright status of Mark Howell's work is unknown. Since he released the software for free and since it is also used by multiple other projects it can also be distributed or used freely, to the best of my knowledge.

libpixelif contains the “Fira Sans” and “Fira Mono” fonts made by Erik Spiekermann and Ralph du Carrois. For information about copyright and licensing see the file SIL Open Font License.txt in the following directories:

  • libpixelif/fonts/fira-mono
  • libpixelif/fonts/fira-sans

fizmo's People

Contributors

chrender avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.