forked from erkyrath/quixe
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.txt
160 lines (123 loc) · 6.46 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Quixe -- a Glulx VM interpreter written in Javascript
Quixe Library: version 1.3.1.
Designed by Andrew Plotkin <[email protected]>.
(Storage and heap-management code contributed by Iain Merrick.)
<http://eblong.com/zarf/glulx/quixe/>
Quixe is a pure-Javascript interpreter for the Glulx IF virtual
machine. It can play any Glulx game file (.ulx or .gblorb) in a web
browser. It does not require a server component; it runs entirely in
the browser.
Quixe currently supports text buffer and grid windows, character and line
input, timers, and hyperlinks. It does not (yet) support graphics, sound,
or style hints.
You can save and restore games. If your browser supports the HTML5
local-storage feature, the save files will be available from one browser
session to the next.
* Using Quixe
The easiest way to use Quixe is to have Inform 7 build you a game-playing
page. Download the "Quixe.zip" template package (at the URL above), unpack
it, and install it into Inform's template directory. (On a Mac this is
~/Library/Inform/Templates; place the unzipped Quixe folder there.) You
can then add this line to your Inform source code:
Release along with the "Quixe" interpreter.
You can also copy the files right out of this project. The play.html file
is set up to run Glulxercise, which is not actually an IF game, but uses
the same format. (Glulxercise is a set of unit tests for Quixe.)
You can copy play.html and all the files it uses. However, play.html
as provided cannot load Glulx files directly. You must convert your
game file using the game2js.py script in the tools directory:
python tools/game2js.py --giload mystory.ulx > mystory.ulx.js
Then, in play.html, replace the reference to "glulxercise.ulx.js" with
your "mystory.ulx.js" file.
To set up a page that can play any game file on the Internet (as
on the web site), copy play-remote.html.
* Contents
- README.txt -- this file
- play.html -- HTML template for a Quixe page
- play-full.html -- same thing, but using non-compressed Javascript source
- play-remote.html -- Quixe page that plays any story via "?story=..."
- play-remote-full.html -- same thing, but using non-compressed Javascript
- play-remote-onecol.html -- same thing, but the HTML template gives a fixed
column width with a header and footer
- build.py -- generates the files in lib
- src -- Javascript source code
- quixe/quixe.js -- the VM engine core
- quixe/gi_dispa.js -- Glk layer dispatcher
- quixe/gi_load.js -- game file loader (and blorb code)
- glkote/... -- copied from the GlkOte project
- lib -- compressed Javascript source code
(each file contains several files from the src directory, run through
rjsmin.py)
- glkote.min.js -- prototype and glkote files
- quixe.min.js -- quixe files
- media -- images, CSS, and layout for play.html et al
- glkote.css -- default stylesheet (copied from GlkOte project)
- dialog.css -- dialog-box stylesheet (copied from GlkOte project)
- waiting.gif -- timer animation (copied from GlkOte project)
- i7-manifest.txt -- I7 template file; becomes (manifest).txt
- i7-glkote.css -- another stylesheet (adjusted to suit i7-manifest)
- stories -- game files
- glulxercise.ulx.js -- Glulxercise VM unit test
- tools -- random associated scripts and tools
- rjsmin.py -- Javascript compressor
- game2js.py -- convert game files to base64 for easier loading
* Version History
- 1.3.1 (March 27, 2014)
Added acceleration functions 8 through 13, which work correctly when
NUM_ATTR_BYTES is changed.
- 1.3.0 (January 3, 2013)
- Corrected the format of saved-game files. (In previous versions, the
CMem chunk had the wrong format, and a non-standard QFun chunk was
stored.) This means that saved games from old versions will not load.
- Fixed bugs restoring a saved-game file with an active heap.
- Fixed a bug preventing the game from running if you have Firefox's
cookies disabled. (Now it will run, but external files will be transient.)
- Updated the Blorb-resource functions to understand FORM chunks
(Glk 0.7.4 amendment).
- 1.2.0 (May 7, 2012)
- Ensure that gi_load.js works no matter what order the javascript
libraries load.
- Included GlkOte 1.3.0 (non-support for Glk 0.7.3: expanded sound functions;
support for Glk 0.7.4: resource streams)
- Fixed a bug in glk_cancel_hyperlink_event().
- Fixed a bug where strings in RAM were being incorrectly cached.
- Experimental debug info support. If a blorb file contains debug data
(as generated by I6), Quixe can be made to parse it and symbolicate
stack dumps.
- 1.1.1 (February 17, 2011):
- Included GlkOte 1.2.3 (support for Glk 0.7.2: date and time functions)
- 1.1.0 (January 22, 2011):
- The Glulx accelerated-function feature.
- Better optimization of local variables.
- Included GlkOte 1.2.2 (support for all the Glk 0.7.1 features:
window borders, line input terminator keys, line input echo control,
Unicode normalization).
- 1.0.3 (October 14, 2010):
- Better display and input on iPhone/Android.
- 1.0.2 (August 17, 2010):
- Floating-point opcodes.
- 1.0.1 (July 28, 2010):
- Included GlkOte 1.2.0 ("more" paging).
- Added a "rethrow_exceptions" option, which should make browser
debugging easier.
- Fixed the inconsistent font size for the input line.
- 1.0.0 (July 4, 2010):
- Initial release.
* Permissions
The Quixe, GiDispa, and GiLoad Javascript libraries are copyright 2010-3
by Andrew Plotkin. You may copy and distribute them freely, by any means
and under any conditions, as long as the code and documentation is not
changed. You may also incorporate this code into your own program and
distribute that, or modify this code and use and distribute the
modified version, as long as you retain a notice in your program or
documentation which mentions my name and the URL shown above.
This package includes the GlkOte, GlkAPI, and Dialog libraries, also
copyright by Andrew Plotkin under the same terms.
This package includes the Prototype JavaScript framework, version 1.6.1
(c) 2005-2009 Sam Stephenson
Prototype is freely distributable under the terms of an MIT-style license.
For details, see the Prototype web site: <http://www.prototypejs.org/>
The build script uses rJSmin, version 1.0.6 (which is included
as a build tool). rJSmin was written and is maintained by Andre Malo,
and is freely distributable under the Apache License, Version 2.0.
For details, see the rJSmin web site: <http://opensource.perlig.de/rjsmin/>