Code Monkey home page Code Monkey 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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fizmo's Issues

fizmo-sdl2 vs. fizmo-ncursesw, sdl2 output with story Alpha.z5

Hello. Testing with Alpha.z5 from here: http://ifdb.tads.org/viewgame?id=nidzkipeux0uusqk Also noteworthy that the tads.org website contains the Inform source code for reference. Two identifiable issues:

  1. The opening screen does not show a quote from "-- Queen, '39" on SDL2. It renders a black screen.
  2. After the opening quote screen, the "Control room" prompt of ">" disappears. The cursor is positioned at the 2nd character from the left of the screen, but the prompt is only shown for like 1 second and then disappears.

Related to the number 2 on the list, the story does uses a timer that updates the status-window with a "Counter:" that changes every second. It almost looks like the cursor prompt of ">" disappears after the first redraw of the status line?

Request for CMake for fizmo to multi-head Glk libraries

Hello. It's great to see fizmo have so many front-end options and to continue to be updated.

I'd really like to see exactly what source files are needed and a recommended CMakeList.txt to allow fizmo to be used in Gargoyle and be compiled as part of a set of multiple interpreters. A new project has been posted to split all the 'terps backends and a common set of CMake files to link different Glk systems such as RemGlk, CheapGlk, etc. https://github.com/cspiegel/terps

Any interest is appreciated. Thank you.

fizmo-console has problems with german Umlaute

Hey there, when I'm trying to playback a german text adventure, the Umlauts in some words are displayed as question marks:
Viel Gl?ck!!! instead of Viel Glück!!!

Is it possible to add an option to choose a charset/language or something to get the encoding right?

I'm writing a discord bot that can play zblorb files, your software is the only one I found to make this automation possible, especially with save files. This fix would be great!

Ubuntu 16.04 build, Unicode output on fizmo-ncursesw vs. fizmo-sdl2

Hello. Ubuntu 16.04 x64 build of latest git source code checkout 196afec

I made a very simple Inform 7 sample to compile to .z8 for testing Unicode output. On Ubuntu 16.04, the Inform 7 IDE runs this fine with it's built-in interpreter and correctly displays the Unicode output. https://github.com/BroadcastGames/Inform7_StoryCode0/blob/master/storyFilesPile0/UnicodeZMachineA.ni

fizmo-ncursesw built on the same system correctly shows all the Unicode characters. fizmo-sdl2 shows boxes instead of the characters.

For reference:the same issue appears with Gargoyle Glk https://github.com/garglk/garglk not showing the Unicode built from source code on the same system. garglk provides an interesting example because you can copy/paste the text out of Gargoyle into Gedit and it shows all the Unicode correctly. So it's some kind of font issue? Since the Inform 7 IDE for GNOME can correctly show the output on the same system - perhaps some hint of how they solved the font issue lies in that source code? Thank you.

Throw/catch not working

Throw/catch don't work according to spec.
Test case: The game Tethered refuses to start: https://hd0.linusakesson.net/files/tethered-rel2.zblorb
The following change to libfizmo seems to fix the problem:

diff --git a/src/interpreter/routine.c b/src/interpreter/routine.c
index 8e07ab6..2737ccc 100644
--- a/src/interpreter/routine.c
+++ b/src/interpreter/routine.c
@@ -370,7 +370,7 @@ void opcode_throw(void)
         -1,
         (long)dest_stack_frame);
 
-  while (number_of_stack_frames > dest_stack_frame)
+  while (number_of_stack_frames >= dest_stack_frame)
     unwind_stack_frame(0, true);
 
   set_variable(last_result_var, op[0], false);

Fizmo won't restore save games made by Dialog

See https://intfiction.org/t/fizmo-cannot-restore-tethered/41272

When I try to restore a save made with Fizmo, Tethered gives the error:

Game state restored successfully.

(Technical trouble: Invalid error code! Attempting to recover with UNDO.)

Undoing the last turn.

(Technical trouble: Invalid error code! Attempting to recover with UNDO.)

Undoing the last turn.

(Technical trouble: Invalid error code!)

This seems to be a problem common to all Zcode games written in Dialog. In the thread linked above, Linus Åkesson writes:

Frotz, Gargoyle, and Fizmo all produce slightly different quetzal save files. Frotz and Gargoyle can restore savefiles produced by either interpreter, but Fizmo cannot restore from Frotz, Gargoyle, or itself. My minimal test program (see below) doesn’t crash immediately like Tethered, but if you press return after restoring, the program jumps into the error handler, which is wrong.

There’s something strange going on in Fizmo’s save files. Looking at the Stks chunk of a Tethered savefile, I see a frame with 56 words on the eval stack (all zero), whereas I know that my routines push at most one word, and then immediately pop it. And when saving from the small test program, I get the following as part of Stks:

0012d6 00 01 01 0000

That’s a routine with zero local variables, but argument ‘a’ was passed. This appears to be a violation of the spec. Also, the call instruction just before 0012d6 does not pass an argument.

But for the particular crash we’re looking at, my best guess is that something is still wrong with catch/throw. Both runtime errors and regular failures can be invoked using throw, and their handlers are (naturally) installed at different stack levels. So if Fizmo somehow rewinds the stack one time too much, this would happen. But it’s confusing, because I thought we just fixed that error, and I don’t see why it would work differently across a save/restore. So perhaps the answer is in the weird Stks frames after all.

"make install" installs headers and libraries into the build directory

When running "make install", fizmo 0.8.4 installs files into the build directory. This is normally not an issue when building by hand, but when packaging this for distros, it's a headache.

For Gentoo, the build directory is:

/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build

And "make install" installs these:

/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/fizmo/libsndifsdl2.a
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/fizmo/libmonospaceif.a
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/fizmo/libfizmo.a
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/fizmo/libdrilbo.a
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/fizmo/libpixelif.a
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/pkgconfig/libfizmo.pc
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/pkgconfig/libmonospaceif.pc
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/pkgconfig/libdrilbo.pc
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/pkgconfig/libsndifsdl2.pc
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/lib/pkgconfig/libpixelif.pc
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/babel.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/blockbuf.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/blorb.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/cmd_hst.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/config.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/debugger.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/filelist.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/fizmo.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/history.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/hyphenation.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/iff.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/mathemat.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/misc.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/mt19937ar.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/object.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/output.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/property.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/routine.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/savegame.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/sound.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/stack.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/streams.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/table.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/text.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/undo.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/variable.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/wordwrap.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/zpu.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/interpreter/zscii.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/filesys_c.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/filesys.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/i18n.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/list.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/stringmap.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/tracelog.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/types.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/unused.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/tools/z_ucs.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/screen_interface/screen_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/screen_interface/ScreenInterface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/screen_interface/ScreenInterface.cpp
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/screen_interface/screen_monospace_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/screen_interface/screen_pixel_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/sound_interface/sound_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/filesys_interface/filesys_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/blorb_interface/blorb_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/monospace_interface/monospace_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo-jpeg.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo-mg1.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo-png.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo-ppm.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/drilbo/drilbo-x11.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/sound_sdl2/sound_sdl2.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/pixel_interface/pixel_interface.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/pixel_interface/true_type_factory.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/pixel_interface/true_type_font.h
/var/tmp/portage/games-engines/fizmo-0.8.4/work/fizmo-0.8.4/build/include/fizmo/pixel_interface/true_type_wordwrapper.h

Crash on Ubuntu 16.04 x64 builds - possibly function get_available_locale_names

A couple variations of fizmo such as SDL2 ran into this crash when just doing --help command line output. The very last line of get_available_locale_names is:

 return (char**)delete_list_and_get_null_terminated_ptrs(result_list)

This segfaults as far as I can tell. I don't know C well enough to understand why, but isolating that one line seems to be the issue.

libtools/src/tools/i18n.c:
https://github.com/chrender/libfizmo/blob/390340a22fdefc093cfda9193131291fcfed8411/src/tools/i18n.c#L1358

Digging into list.c function delete_list_and_get_null_terminated_ptrs - it seems like the trouble is that a zero-element list is being passed in and this code is unsafe/crashes in that situation? This function: https://github.com/chrender/libfizmo/blob/390340a22fdefc093cfda9193131291fcfed8411/src/tools/list.c#L128

fizmo-sdl2 vs. fizmo-ncursesw, sdl2 inverse text differences with story AtWork.z5

Hello! Story file here: http://ifdb.tads.org/viewgame?id=p0sm7uf4nvwovubo

The opening screen 'press any key to continue' and the second-screen prompt render in inverse text, white on black. fizmo-sdl2 doesn't seem to 'close' the inverse text on the opening screen and renders a large block of white.

Issues #6 and Issue #7 may be related to some of these rendering issues. So I'll refrain from reporting similar issues on other stories except as comments if I suspect they are associated examples. Thank you!

fizmo-ncursesw crashes on startup

Using master, I built fizmo and tried to execute fizmo-ncursesw/src/fizmo-ncursesw/fizmo-ncursesw. This resulted in this output:

$ ./fizmo-ncursesw 
Unknown i18n error.$

Note that there's no trailing newline with that error message.

./configure remglk passes tests but fails to compile, include "glk.h", on Ubuntu 16.10

FYI, I noticed ./configure remglk missing a file. Here is the steps I'm using:

mkdir fizmo_emptydir
cd fizmo_emptydir
git clone https://github.com/erkyrath/remglk.git
cd remglk
make
cd ..

git clone --recursive https://github.com/chrender/fizmo
cd fizmo
autoreconf -fi
mkdir -p $HOME/opt/fizmo
./configure --prefix=$HOME/opt/fizmo --enable-remglk --with-remglk-includedir=../remglk --with-remglk-libdir=../remglk
make -j4 install

./configure passes it's tests, here is the relevant output:

checking glk.h usability... no
checking glk.h presence... no
checking for glk.h... no
checking for ../remglk/glk.h... yes
checking remglk.h usability... no
checking remglk.h presence... no
checking for remglk.h... no
checking for ../remglk/remglk.h... yes
checking for main in -lremglk... no
checking for libremglk in ../remglk... yes

However, the compile itself fails with this relative path. glk_interface.c:39:17: fatal error: glk.h: No such file or directory #include "glk.h" (in the middle of the output messages, pretty easy to miss).

The workaround is to not use a relative path "../" for the remglk parameters and to use a full path. Such as:

./configure --prefix=$HOME/opt/fizmo --enable-remglk --with-remglk-includedir=/home/scratch/fizmo_emptydir/remglk --with-remglk-libdir=/home/scratch/fizmo_emptydir/remglk

Thank you.

Build error with parallel make

There is an issue with parallel builds. It only happens on a clean source directory, directly after unpacking the tarball:

tar xf fizmo-0.8.0.tar.gz
cd fizmo-0.8.0
./configure
make -j4
...
pixel_interface.c:66:27: fatal error: drilbo/drilbo.h: No such file or directory

Note: This is only reproducible on the first unpack on the tarball. "make clean" or "make distclean" and then calling "./configure" again does not reproduce the issue.

This results in automated builds (Gentoo build system) failing to install the package.

This is on GCC 5.4.0 and GNU Make 4.2.1.

fizmo-ncursesw vs. fizmo-sdl2, ncursesw status line truncated

In this test situation of 3 columns in the status line, fizmo-sdl2 seems to render the output correctly - identical to the Inform 7 IDE. But when run with fizmo-ncursesw or fizmo-console it is heavily truncated no matter how wide the screen is.

Inform 7 source, which can be compiled to .z8 file: https://raw.githubusercontent.com/BroadcastGames/Inform7_StoryCode0/master/storyFilesPile0/StatusLineOutputTest0.ni

Also note that 'wear blindfold' seems to only remove the first status line and not correctly clear the second status line. This bug happens on the sdl2 version and all versions I tested.

fizmo-ncursesw has libpng trouble when binary not in $PWD

This works:

darkstar:/usr/local/bin$ ./fizmo-ncursesw

No story files are currently known. If you would like to start a specific
story file, just append it to the command line (like "fizmo mystory.z5"). I...

But not this:

darkstar:~$ fizmo-ncursesw
fizmo-ncursesw: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

I can't figure out why it's getting hung up over version 1.2 of libpng like this. It's not linked to that version of the library. Neither fizmo-console nor fizmo-sdl2 have this problem.

libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fec1f26e000)

Build questions ./configure missing?

Please excuse this is it's novice-level questions. I am following the INSTALL.md instructions. I'm on Ubuntu 16.10 x64. Questions:

  1. After cloning the initial Github fizmo project, I did 'git submodule update --init --recursive' - is that correct?
  2. I find no ./configure to run. Is a step missing in the INSTALL.md to run 'autoconf'?
  3. after running 'autoconf', I did get a configure. Next I run './configure' but get this error: configure: error: cannot find install-sh, install.sh, or shtool in . "."/. I did apt-get install shtool but the error still persists after rerunning autoconf and ./configure.
  4. autoconf reported two problems, listed below.

configure.ac:51: error: possibly undefined macro: AM_INIT_AUTOMAKE If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:57: error: possibly undefined macro: AM_CONDITIONAL

Thank you.

fizmo-console statusbar behaviour is surprising.

When I run the fizmo-console command as packaged in Debian/Ubuntu, the status bar messages appear after the > prompts, separated by a row of spaces.

I'm not sure if this is just a naïve stripping of control codes from the curses version, but it does present unusual challenges for automation. For example, we can't just time out on select() of the program's stdout and make sure it ends in \n> to be sure it's ready for input.

This is fine and easy to prepare for in advance, but a little documentation of exactly what we should be watching for would be helpful. I'd also appreciate an option to have status bar text sent somewhere else, such as stderr, where it could be handled separately.

Just as an example, here's the tail end of a hex dump (eliding repeated lines of spaces) of the output of fizmo-console Tell.z5 from the Inform 6 IBG sample games, where I just started it up and then typed quit\nyes\n:

00000500  53 74 61 79 20 63 6c 6f  73 65 20 74 6f 20 6d 65  |Stay close to me|
00000510  2c 20 73 6f 6e 2c 22 20  79 6f 75 20 73 61 79 2c  |, son," you say,|
00000520  20 22 6f 72 20 79 6f 75  27 6c 6c 20 67 65 74 20  | "or you'll get |
00000530  6c 6f 73 74 20 61 6d 6f  6e 67 20 61 6c 6c 20 74  |lost among all t|
00000540  68 65 73 65 20 70 65 6f  70 6c 65 2e 22 0a 0a 3e  |hese people."..>|
00000550  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000005a0  41 20 73 74 72 65 65 74  20 69 6e 20 41 6c 74 64  |A street in Altd|
000005b0  6f 72 66 53 63 6f 72 65  3a 20 30 4d 6f 76 65 73  |orfScore: 0Moves|
000005c0  3a 20 30 41 72 65 20 79  6f 75 20 73 75 72 65 20  |: 0Are you sure |
000005d0  79 6f 75 20 77 61 6e 74  20 74 6f 20 71 75 69 74  |you want to quit|
000005e0  3f 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |?               |
000005f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000630  20 20 41 20 73 74 72 65  65 74 20 69 6e 20 41 6c  |  A street in Al|
00000640  74 64 6f 72 66 53 63 6f  72 65 3a 20 30 4d 6f 76  |tdorfScore: 0Mov|
00000650  65 73 3a 20 30                                    |es: 0|
00000655

crash with "Unknown i18n error." when saving in zork 2 in debian bullseye

lsb_release -c
Codename:       bullseye

sudo apt install -y autoconf libxml2-dev

git clone --recursive  https://github.com/chrender/fizmo

autoreconf -fi
./configure --disable-x11 --disable-sdl --disable-aiff --disable-png --disable-jpeg

fizmo-console/src/fizmo-console/fizmo-console ~/z2/DATA/ZORK2.DAT

ZORK II: The Wizard of Frobozz
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights reserved.
ZORK is a registered trademark of Infocom, Inc.
Version 48 / Serial number 840904

Inside the Barrow
You are inside an ancient barrow hidden deep within a dark forest. The barrow opens into a narrow tunnel at its southern end. You can see a faint glow at the far end.
A strangely familiar brass lantern is lying on the ground.
A sword of Elvish workmanship is on the ground.

>save

Unknown i18n error.


Unable to fully initialize submodules

After cloning the repo and doing git submodule init ; git submodule update, this is printed:

$ git submodule update
fatal: reference is not a tree: 3aff105c8b301f48d5f40c994652da3ab9ff38a4
Unable to checkout '3aff105c8b301f48d5f40c994652da3ab9ff38a4' in submodule path 'libfizmo'

The libfizmo/ directory is left empty.

No RSS feed

It would be great to have RSS feed of project releases. Uploading release tarballs to Sourceforge would suffice.

fizmo-ncursesw reports screen to game as 0x42 when actually 256x42

On Ubuntu 16.10. Tested on a 4K 3840x2160 display resolution. Latest source code off github compiled. If I size the terminal window to 256 or more width, Fizmo seems to overflow. Example can be seen starting ZRacer.z5 game and it reports that the screen is too small. Thank you.

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.