David Griffith [Thu, 14 Apr 2022 02:43:50 +0000 (19:43 -0700)]
Updated INSTALL files for DOS and TOPS20.
David Griffith [Wed, 13 Apr 2022 20:27:22 +0000 (13:27 -0700)]
Updated Makefile to report that Snavig works for TOPS20.
Adam Thornton [Wed, 13 Apr 2022 00:47:43 +0000 (17:47 -0700)]
Added config to snavig.pl to specify GNU sed.
David Griffith [Wed, 30 Mar 2022 00:41:00 +0000 (17:41 -0700)]
Genericized the dist target a bit more.
David Griffith [Wed, 30 Mar 2022 00:04:05 +0000 (17:04 -0700)]
Added Libera link for donations.
David Griffith [Mon, 28 Mar 2022 07:48:25 +0000 (00:48 -0700)]
Updated snavig/ generation. Added missing frotz.prj file.
David Griffith [Mon, 28 Mar 2022 07:13:20 +0000 (00:13 -0700)]
Fixed some problems that kept Open Watcom compiles from working post snavig.
David Griffith [Mon, 28 Mar 2022 07:10:07 +0000 (00:10 -0700)]
Updated Makefile.tc for official release.
David Griffith [Sun, 27 Mar 2022 07:48:35 +0000 (00:48 -0700)]
Set Makefile to make an official release.
David Griffith [Fri, 25 Mar 2022 21:57:51 +0000 (14:57 -0700)]
Slightly updated ChangeLog. One more due for release.
David Griffith [Fri, 25 Mar 2022 21:24:37 +0000 (14:24 -0700)]
Updated INSTALL for macOS. Its ncurses is old, but it doesn't lie.
David Griffith [Fri, 25 Mar 2022 20:39:02 +0000 (13:39 -0700)]
Updated Changelog with more macOS stuff.
David Griffith [Wed, 23 Mar 2022 19:09:39 +0000 (12:09 -0700)]
Only allow for A_ITALIC to be set if we have ncurses 6.0 or later.
Dan Fabulich [Wed, 23 Mar 2022 06:02:19 +0000 (23:02 -0700)]
Fix macOS ARM builds by using correct include path for freetype
On macOS ARM, the build was failing because the file we wanted was in `/opt/homebrew/opt/freetype/include/freetype2/freetype/freetype.h` but the `#include` was looking for it in `/opt/homebrew/opt/freetype/include/freetype2/freetype2/freetype/freetype.h`
Nonetheless, it managed to work on x86_64 macOS, because on x86_64 macOS, Homebrew installs itself in `/usr/local`. There, the build was really using `/usr/local/include/freetype2/freetype/freetype.h`, with `/usr/local/include` implicitly on the include path.
On ARM macOS, Homebrew installs itself in `/opt/homebrew`, and makes `/opt/homebrew/include/freetype2/freetype/freetype.h` available via a symlink, but `/opt/homebrew/include` *isn't* implicitly on the include path.
I think (hope?) that the change I'm making here will work on Linux and other machines because `pkg-config` will point to the right place, but I've only tested this change on macOS 12 on x86_64 and ARM.
Dan Fabulich [Wed, 23 Mar 2022 05:12:27 +0000 (22:12 -0700)]
Fix curses build on macOS 12
Since 2.53, frotz doesn't support the macOS built-in version of ncurses (5.4) unless you pass ITALIC= to disable italics. (ncurses 5.4 doesn't support italics.)
On macOS, we'll configure the build to rely on Homebrew's ncurses6-config.
David Griffith [Tue, 22 Mar 2022 22:49:26 +0000 (15:49 -0700)]
Rewrote Apple-specific compilation stuff.
David Griffith [Tue, 22 Mar 2022 22:19:03 +0000 (15:19 -0700)]
Removed ncurses from list of sound support libs (duh).
David Griffith [Sun, 30 Jan 2022 23:30:58 +0000 (15:30 -0800)]
Fixed minor warning of circular dependency in Makefile.
David Griffith [Sun, 30 Jan 2022 23:18:20 +0000 (15:18 -0800)]
Fixed trouble with z_header.user_name clobbering Inform version when V6.
Infocom stored a username in the same place that Inform stores its
version number. Somehow it was discovered that the Z-machine would set
the username from the TOPS20 or Unix development environment, but it was
unknown at that time that any game made any use of it. With the public
release of the Infocom source code, it was discovered that "Hollywood
Hijinx" used this functionality to enable a debug mode. Because of this
clobbering when running V6 Z-code and that no other game seems to use
this, it's safe to completely ignore the username stuff.
Maybe it can be brought back in a roundabout way to put "Hollywood
Hijinx" into debug mode using the hotkeys.
David Griffith [Fri, 7 Jan 2022 09:07:55 +0000 (01:07 -0800)]
Reenabling old-style graphics for X11 interface.
This is for two reasons. One is just for grins. The other is for
investigating how to properly process EGA and CGA old-style graphics
files.
To get EGA properly framed, it seems that the thing to do is find
variables like gtable[i].width, gtable[i].height, data->width,
data->height, and divide by two. Fiddling around with the eight places
I found in x_oldpic.c to do this, I managed to get width okay, but not
height. I'm having a hard time identifying what to alter and what to
leave alone or if I need to look at other variables too.
David Griffith [Fri, 7 Jan 2022 01:47:49 +0000 (17:47 -0800)]
This is a better method of detecting Infocom V6 EGA games.
David Griffith [Fri, 7 Jan 2022 01:00:51 +0000 (17:00 -0800)]
Revert "Implemented prompt parameter for @save and @restore opcodes."
I'm unsure if this should be in Frotz, so I'm removing it until I can
fully investigate why this is desirable and how abuses can be prevented.
This reverts commit
2f621630aaeb5755abf6ef797bb32835f5b083d5.
David Griffith [Thu, 6 Jan 2022 03:42:09 +0000 (19:42 -0800)]
Implemented prompt parameter for @save and @restore opcodes.
This is part of the Z Machine Specificiations version 1.1.
See https://inform-fiction.org/zmachine/standards/z1point1/sect15.html#save
David Griffith [Thu, 6 Jan 2022 00:59:05 +0000 (16:59 -0800)]
Now detecting Shogun EGA.
David Griffith [Thu, 6 Jan 2022 00:06:49 +0000 (16:06 -0800)]
Cleanup of testing printfs and such.
David Griffith [Wed, 5 Jan 2022 23:58:20 +0000 (15:58 -0800)]
Added --xscale and --yscale for EGA V6 graphics. Split m_v6scale to x and y.
This entailed switching from the Frotz-contained zgetopt() to the
OS-provided getopt_long(). There were no sensible single-letter flags
available for this. Given that I don't anticipate SDL Frotz being built
on any machine that doesn't have getopt_long() and/or getopt.h
available, this is a reasonable choice. If someone wants to submit a
patch to implement long options, I'm open to adding it
David Griffith [Mon, 3 Jan 2022 07:08:10 +0000 (23:08 -0800)]
Updated changelog with mention of resolution fix.
David Griffith [Mon, 3 Jan 2022 06:20:30 +0000 (22:20 -0800)]
Now dumb and curses interfaces process a Blorb's resolution chunk.
David Griffith [Thu, 18 Nov 2021 23:59:03 +0000 (15:59 -0800)]
Updated ChangeLog with fix for Lurking Horror audio trouble in SDL interface.
David Griffith [Thu, 18 Nov 2021 23:45:54 +0000 (15:45 -0800)]
Ensure that a sample plays to its end before halting playback.
Lurking Horror with sound was released only for the Amiga. That version
assumes that the interpreter is very slow, so it fires off several sound
effects in one round assuming there will be time to play most of each
one. What happens on a fast modern machine is the sound starts and is
immediately stopped, so they don't appear to play at all.
See the "Remarks" section in
http://inform-fiction.org/zmachine/standards/z1point1/sect09.html
When the SDL Frotz code was originally written or converted to SDL 2,
this caveat was forgotten.
David Griffith [Thu, 18 Nov 2021 00:03:54 +0000 (16:03 -0800)]
Fixed indent error in sfrotz manpage.
David Griffith [Sat, 13 Nov 2021 21:50:03 +0000 (13:50 -0800)]
Added build target aliases using dashes instead of underscores.
I was getting tired of reflexively doing stuff like "make install-sdl"
instead of "make install_sdl". In this future, the underscore targets
may go away.
Cameron Cawley [Fri, 12 Nov 2021 21:25:39 +0000 (21:25 +0000)]
Fix loading Blorb files in the DOS port
David Griffith [Thu, 11 Nov 2021 08:01:11 +0000 (00:01 -0800)]
Updated list of files and directories in README.1st.
David Griffith [Thu, 11 Nov 2021 07:56:14 +0000 (23:56 -0800)]
Added some more documentation files to DOS snavig directory.
David Griffith [Thu, 11 Nov 2021 03:55:12 +0000 (19:55 -0800)]
Made sure Snavig copies over *.asm files so that Open Watcom can be used in DOS.
Tee-Kiah Chia [Wed, 10 Nov 2021 18:23:08 +0000 (18:23 +0000)]
Eliminated some easier cases of unneeded `#ifdef __WATCOMC__'.
David Griffith [Wed, 10 Nov 2021 07:06:33 +0000 (23:06 -0800)]
Moved DOS-related things around for better integration.
David Griffith [Wed, 10 Nov 2021 07:05:57 +0000 (23:05 -0800)]
Updated ChangeLog and INSTALL_DOS with DOS-related stuff.
David Griffith [Tue, 9 Nov 2021 06:49:01 +0000 (22:49 -0800)]
Finalized quiet option for DOS.
David Griffith [Tue, 9 Nov 2021 06:44:38 +0000 (22:44 -0800)]
Fixed failure of -q flag to silence sound-effects. First done for curses.
Somehow I broke this around as far back as 2.51 and I didn't notice. I
found it because I was having trouble getting the new quiet option for
the DOS interface working properly.
David Griffith [Tue, 9 Nov 2021 05:38:46 +0000 (21:38 -0800)]
Reworked startup INFORMATION and prepare for quiet option.
David Griffith [Tue, 9 Nov 2021 04:49:30 +0000 (20:49 -0800)]
Removed f_setup initilization from dos interface. Already done in fastmem.c.
David Griffith [Tue, 9 Nov 2021 01:46:54 +0000 (17:46 -0800)]
Added dparams.txt from the old bcparams.txt.
In case anyone hasn't guessed, these params files are for relieving
people of the need to move stuff round and round and round whenever a
new option is added. Just add the new option in the order it needs to
go (alphabetical) and run src/misc/twocol.pl on dparams.txt and you get
something nicely formatted to paste into the Frotz source code.
David Griffith [Tue, 9 Nov 2021 01:34:56 +0000 (17:34 -0800)]
Altered things so that os_beep() works when NO_SOUND is defined.
Sound effects numbers 1 and 2 are for high and low "bleeps"
respectively. For Infocom's own PC interpreters, this meant playing the
bleeps through the original PC's built-in speaker.
Tee-Kiah Chia [Mon, 8 Nov 2021 15:35:03 +0000 (15:35 +0000)]
Got DOS_NO_SOUND = yes and DOS_NO_SOUND = no working with Turbo C.
Tee-Kiah Chia [Mon, 8 Nov 2021 12:43:29 +0000 (12:43 +0000)]
Properly clean src/common/defs.h on case-sensitive filesystems.
Tee-Kiah Chia [Mon, 8 Nov 2021 12:27:21 +0000 (12:27 +0000)]
Fixed testing of DOS_NO_GRAPHICS etc. when making src/common/defs.h
As the makefile variables `$(DOS_NO_GRAPHICS)` etc. will
always be defined, it is necessary to check their values, not
just their existence, to determine if support for sound,
graphics, blorbs, etc. should be enabled.
David Griffith [Sat, 6 Nov 2021 22:53:40 +0000 (15:53 -0700)]
Implemented NO_TRUECOLOUR support for DOS interface.
With this commit, the resulting file sizes of frotz.exe look like this:
Turbo C: 96462 bytes
Watcom C: 98002 bytes
I'd like to understand why there's a difference.
David Griffith [Sat, 6 Nov 2021 22:44:42 +0000 (15:44 -0700)]
Implemented NO_GRAPHICS option for DOS interface.
David Griffith [Sat, 6 Nov 2021 22:14:49 +0000 (15:14 -0700)]
Removed src/olddos/.
David Griffith [Sat, 6 Nov 2021 22:14:09 +0000 (15:14 -0700)]
Reworked sound enable/disable config for consistency.
David Griffith [Sat, 6 Nov 2021 21:35:17 +0000 (14:35 -0700)]
Reworked sound.c and dossampl.c to remove dead code when sound disabled.
David Griffith [Sat, 6 Nov 2021 06:19:34 +0000 (23:19 -0700)]
Clean up junk left over from Watcom C compilation under DOS.
David Griffith [Sat, 6 Nov 2021 06:18:29 +0000 (23:18 -0700)]
Check to see if running under DOS, if so use backslash for directory separator.
David Griffith [Mon, 1 Nov 2021 05:16:14 +0000 (22:16 -0700)]
Fixed some Watcom C compile problems when done in DOS.
David Griffith [Thu, 28 Oct 2021 06:50:50 +0000 (23:50 -0700)]
Added "dos" to the list of possible snavig-processed targets.
David Griffith [Tue, 26 Oct 2021 04:33:50 +0000 (21:33 -0700)]
Replaced ifdefs for getting/setting vectors with macros.
David Griffith [Mon, 25 Oct 2021 23:55:57 +0000 (16:55 -0700)]
Replaced ifdefs with macros in dostext.c.
David Griffith [Sat, 23 Oct 2021 05:16:38 +0000 (22:16 -0700)]
Replaced ifdefs with macros in dosscrn.c.
David Griffith [Sat, 23 Oct 2021 05:06:35 +0000 (22:06 -0700)]
Replaced ifdefs with macros in dossampl.c.
David Griffith [Sat, 23 Oct 2021 03:55:56 +0000 (20:55 -0700)]
Replaced ifdefs with macros in dospic.c.
David Griffith [Sat, 23 Oct 2021 03:52:54 +0000 (20:52 -0700)]
Replaced ifdefs with macros in dosinit.c.
David Griffith [Fri, 22 Oct 2021 21:43:21 +0000 (14:43 -0700)]
Consolidated into src/dos/.
David Griffith [Fri, 22 Oct 2021 06:57:54 +0000 (23:57 -0700)]
Consolidated to dosblorb.c
Actually the files owblorb.c and bcblorb.c are identical.
David Griffith [Fri, 22 Oct 2021 06:54:47 +0000 (23:54 -0700)]
Consolidated to dostext.c.
David Griffith [Fri, 22 Oct 2021 06:27:09 +0000 (23:27 -0700)]
Consolidated to dosscrn.c.
David Griffith [Fri, 22 Oct 2021 04:56:37 +0000 (21:56 -0700)]
Consolidated to dossampl.c.
David Griffith [Fri, 22 Oct 2021 04:30:49 +0000 (21:30 -0700)]
Consolidated to dospic.c.
David Griffith [Fri, 22 Oct 2021 03:56:22 +0000 (20:56 -0700)]
Consolidated to dosmouse.c.
David Griffith [Fri, 22 Oct 2021 03:50:27 +0000 (20:50 -0700)]
Consolidated to dosinput.c.
David Griffith [Fri, 22 Oct 2021 03:30:42 +0000 (20:30 -0700)]
Consolidated to dosfrotz.h and dosinit.c.
David Griffith [Thu, 21 Oct 2021 06:42:52 +0000 (23:42 -0700)]
Removed DOS-specific defs.h as they were the same as the common defs.h file.
David Griffith [Thu, 21 Oct 2021 05:55:32 +0000 (22:55 -0700)]
Adapted Snavig to process files for DOS compilation with Turbo C.
David Griffith [Sat, 6 Nov 2021 05:13:16 +0000 (22:13 -0700)]
Fixed problems with loading old-style graphics info and drawing pixels.
Thanks goes to @tkchia, who converted Turbo C idioms to ones that Watcom
C likes. When I noticed that V6 graphics were not loading, @tkchia
noticed "a silly error on line 110". Fixing that allowed graphics data
to be loaded.
The second error fixed was more subtle as it was buried in a chunk of
assembly that was mostly rewritten from the Turbo C equivalent. There,
moving the "display" int into the SI register resulted in junk because
that int was in some other segment.
One way to fix this was to change this line:
mov si, display
to this:
mov si, ss:display
What was needed is the correct segment override to get the current
display mode enum into the SI register. The second approach, which is
used in this commit, is to declare a new local variable and put the
current display mode enum there. The compiler will then handle the
referencing automagically.
Cameron Cawley [Mon, 18 Oct 2021 04:29:21 +0000 (21:29 -0700)]
Simplified cross-compiling to DOS with Open Watcom.
David Griffith [Fri, 15 Oct 2021 02:57:39 +0000 (19:57 -0700)]
Updated macOS install instructions to use Brew's ncurses.
The version of ncurses installed on a stock macOS machine is
5.7.
20081102. Version 5.10, which added support for italics, was
released in 2013. The current version is 6.2.
David Griffith [Thu, 7 Oct 2021 04:32:39 +0000 (21:32 -0700)]
Updated ChangeLog and dumb frotz manpage.
David Griffith [Thu, 7 Oct 2021 04:13:38 +0000 (21:13 -0700)]
Made quiet_mode an extern to cover more places.
David Griffith [Thu, 7 Oct 2021 04:12:41 +0000 (21:12 -0700)]
Updated dparams.txt.
Zan Tysor [Wed, 6 Oct 2021 17:41:00 +0000 (13:41 -0400)]
add quiet flag as requested in #254
auraes [Fri, 23 Jul 2021 09:00:24 +0000 (11:00 +0200)]
Deletion of the defs.h file
auraes [Fri, 23 Jul 2021 08:49:15 +0000 (10:49 +0200)]
Watcom compiler version
auraes [Sun, 18 Jul 2021 06:28:57 +0000 (08:28 +0200)]
Wrong comment for the read_font() function
auraes [Sat, 17 Jul 2021 14:02:26 +0000 (16:02 +0200)]
Fixed display of the Higher ZSCII character table with DOS Frotz for mono (d0), text (d1), EGA (d4) and Amiga (d5) display modes for EGA and VGA video cards.
auraes [Sat, 17 Jul 2021 13:24:54 +0000 (15:24 +0200)]
Merge branch 'master' of https://gitlab.com/DavidGriffith/frotz
David Griffith [Mon, 12 Jul 2021 17:25:55 +0000 (10:25 -0700)]
Fixed part of the problem with sfrotz's audio with Lurking Horror.
What remains is why the final sound is cut off. I suspect something
being turned off too soon.
David Griffith [Sun, 11 Jul 2021 17:46:40 +0000 (10:46 -0700)]
Broke out command line parsing for curses interface into a separate function.
Given that it seems useful to specify an alternate configuration file at
the command line for the SDL interface, I figured it would be nice to
allow that for the curses interface too.
David Griffith [Sun, 11 Jul 2021 05:22:23 +0000 (22:22 -0700)]
Added option for sfrotz to load a different config file. -C filename
David Griffith [Wed, 7 Jul 2021 01:15:56 +0000 (18:15 -0700)]
Updated ChangeLog with DOS Frotz's Amiga font modes
Where Frotz was supposed to print the oe or OE ligatures, it was instead
printing 1/2 and 1/4 as single characters. Several other glyphs from
Latin-1 don't appear in the DOS system fonts. It is, however, possible
to display these glyphs if the Amiga display mode is specified with the
-d5 flag. Unfortunately, the fonts supplied with Frotz still showed the
oe and OE ligatures as 1/2 and 1/4. It may be possible to correct this
error with MCGA and EGA display modes.
auraes [Sat, 3 Jul 2021 17:22:26 +0000 (19:22 +0200)]
Fixed character glyphs for Amiga fonts 1 to 4
auraes [Sun, 4 Jul 2021 02:55:49 +0000 (04:55 +0200)]
Wrong width of 'œ' for the Amiga comic font
auraes [Sat, 3 Jul 2021 17:22:26 +0000 (19:22 +0200)]
Fixed character glyphs for Amiga fonts 1 to 4
David Griffith [Wed, 23 Jun 2021 03:39:14 +0000 (20:39 -0700)]
Changed RELEASE_NOTES to "Development release.".
David Griffith [Tue, 22 Jun 2021 06:39:02 +0000 (23:39 -0700)]
Updated Turbo C project file, frotz.prj.
David Griffith [Tue, 22 Jun 2021 06:38:10 +0000 (23:38 -0700)]
Revised TODO to reflect that the dumb interface works on the PDP-10.
David Griffith [Tue, 22 Jun 2021 06:09:28 +0000 (23:09 -0700)]
More date and version bumps.
David Griffith [Tue, 22 Jun 2021 05:48:44 +0000 (22:48 -0700)]
Added minor feedback to Makefile and used $(error ...) for target troubles.
David Griffith [Tue, 22 Jun 2021 05:36:31 +0000 (22:36 -0700)]
Bumped dates, versions, and expanded headers/footers in manpages.
David Griffith [Tue, 27 Apr 2021 01:00:28 +0000 (18:00 -0700)]
Make sure MACOS define gets passed to the compiler in src/common/defs.h.