terps's People
terps's Issues
Make this thing actually useful
Gargoyle includes a bunch of Glk-enabled interpreters which were extracted to make this repository. It's meant so that other Glk implementations can have a group of interpreters like Gargoyle. However, this has basically stagnated for several years. If it is in fact useful, it should have some sort of coherence and goal instead of being, generally, an old clone of part of Gargoyle's repository.
I'm prompted by the following: https://intfiction.org/t/lectrote-1-3-8/47931/15. The TADS interpreter uses a Gargoyle-specific call, meaning it won't be useful on any other Glk implementations. Since this came from Gargoyle, it "knows" that function call exists, but it's hidden away with #ifdef
meaning there will be silent failure on other Glk platforms. There are probably other similar issues in it and other interpreters.
Something that makes this difficult is the source of the interpreters. They come from various places and in various states of maintenance/Glk-ness:
- Unmaintained with no official Glk support (e.g. advsys)
- Unmaintained but with Glk support (e.g. jacl)
- Maintained but no Glk (e.g. TADS3)
- Maintained with Glk but no Gargoyle (e.g. Glulxe)
- Maintained with Glk and Gargoyle (e.g. Bocfel)
There's also the wrinkle that Gargoyle has some bug fixes added to some of the unmaintained interpreters.
I think in all cases regardless of state of maintenance, there needs to be a Git setup where there's an upstream branch and a “port” branch, so it's trivial to track the changes that have been made for Glk support. Any new releases go into upstream and are merged into the port branch. That'd entail separate repositories for each interpreter however, and I don't know if going with submodules would be an ideal approach. In fact I don't really have a preference on how this is accomplished, but after dealing with upgrades in Gargoyle, I can attest that it's a pain to keep track of all changes without actual history documenting those changes. If anybody happens to have extensive experience with this sort of Git management, by all means, please chime in.
The itemized list above also has to be taken into account. For 1, maintenance kind of has to be taken over by this project. If this is the central location for Glk-enabled ports, then it's necessary to provide complete interpreters with known bugs fixed. That shouldn't be a huge deal.
For 2, adding Gargoyle support in the port branch is necessary, as would be bug fixes that won't be coming from upstream.
For 3, both Glk and Gargoyle support need to be added in the port branch.
For 4, Gargoyle support needs to be added in the port branch.
For 5, ideally nothing needs to happen in the port branch.
Gargoyle support is crucial because I'd really like to be able to move interpreter maintenance from Gargoyle to here; but at the same time it's important to completely support non-Gargoyle Glk implementations. A starting point for managing this is https://curiousdannii.github.io/if/gargoyle.html, which documents Gargoyle extensions and helps to standardize them, such that individual Gargoyle extensions can be added by other Glk implementations and tested for.
Alan 3 errors
- build Alan3
- used remglk
Alan 3 tested with https://ifdb.org/viewgame?id=os0pfvpcgubbxf
After init, I get first «screen» and error of the kind of input it expects (it's fixed if used Alan3 code from garglk)
xglk is not building in Ubuntu 16.04
I got xglk from https://github.com/lacc97/xglk that I'm able to compile.
When I try to compile all the terps with your script, I'm stuck though.
$ cmake .. -DGLK=xglk
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.2.54")
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/[...]/terps/build-xglk
$ make
Scanning dependencies of target glk
[ 0%] Building C object xglk/CMakeFiles/glk.dir/main.c.o
[ 1%] Building C object xglk/CMakeFiles/glk.dir/xglk.c.o
[...]
[ 6%] Linking C static library libglk.a
[ 6%] Built target glk
Scanning dependencies of target scott
[ 6%] Building C object CMakeFiles/scott.dir/scott/scott.c.o
[ 6%] Building C object CMakeFiles/scott.dir/scott/bsd.c.o
[ 6%] Linking C executable scott
xglk/libglk.a(xg_fileref.c.o): En la función `glk_fileref_create_temp':
xg_fileref.c:(.text+0x317): aviso: the use of `tmpnam' is dangerous, better use `mkstemp'
xglk/libglk.a(xg_schan.c.o): En la función `clear_channel':
xg_schan.c:(.text+0x54): reference to`Mix_PlayingMusic' not defined
xg_schan.c:(.text+0x5d): reference to`Mix_HaltMusic' not defined
xg_schan.c:(.text+0x6d): reference to`Mix_FreeMusic' not defined
xg_schan.c:(.text+0xaa): reference to`Mix_Playing' not defined
xg_schan.c:(.text+0xbc): reference to`Mix_HaltChannel' not defined
xg_schan.c:(.text+0xcc): reference to`Mix_FreeChunk' not defined
xglk/libglk.a(xg_schan.c.o): En la función `set_channel_volume':
xg_schan.c:(.text+0x11f): reference to`Mix_VolumeMusic' not defined
xg_schan.c:(.text+0x156): reference to`Mix_Volume' not defined
xglk/libglk.a(xg_schan.c.o): En la función `gli_eventloop_schannels':
xg_schan.c:(.text+0x27a): reference to`Mix_Playing' not defined
xglk/libglk.a(xg_schan.c.o): En la función `init_gli_schannels':
xg_schan.c:(.text+0x356): reference to`SDL_Init' not defined
xg_schan.c:(.text+0x35f): reference to`SDL_GetError' not defined
xg_schan.c:(.text+0x39c): reference to`Mix_OpenAudio' not defined
xg_schan.c:(.text+0x3a5): reference to`SDL_GetError' not defined
xg_schan.c:(.text+0x3df): reference to`Mix_QuerySpec' not defined
xg_schan.c:(.text+0x426): reference to`Mix_HookMusicFinished' not defined
xg_schan.c:(.text+0x438): reference to`Mix_SetMusicCMD' not defined
xglk/libglk.a(xg_schan.c.o): En la función `exit_gli_schannels':
xg_schan.c:(.text+0x48c): reference to`Mix_CloseAudio' not defined
xglk/libglk.a(xg_schan.c.o): En la función `glk_schannel_play_ext':
xg_schan.c:(.text+0xa3b): reference to`Mix_PlayingMusic' not defined
xg_schan.c:(.text+0xa9b): reference to`Mix_LoadMUS' not defined
xg_schan.c:(.text+0xaff): reference to`Mix_PlayMusic' not defined
xg_schan.c:(.text+0xb35): reference to`Mix_FreeMusic' not defined
xg_schan.c:(.text+0xb83): reference to`SDL_RWFromFile' not defined
xg_schan.c:(.text+0xb90): reference to`Mix_LoadWAV_RW' not defined
xg_schan.c:(.text+0xc10): reference to`Mix_PlayChannelTimed' not defined
xg_schan.c:(.text+0xc5c): reference to`Mix_FreeChunk' not defined
collect2: error: ld returned 1 exit status
CMakeFiles/scott.dir/build.make:128: failure in the instructions for target 'scott'
make[2]: *** [scott] Error 1
CMakeFiles/Makefile2:67: failure in the instructions for target 'CMakeFiles/scott.dir/all'
make[1]: *** [CMakeFiles/scott.dir/all] Error 2
Makefile:127: failure in the instructions for target 'all'
make: *** [all] Error 2
I have installed SDL and SDL_mixer libraries.
Any idea?
Scummvm changes to L9 interpreter
Is this something we want?
scummvm/scummvm@54583f9
They are changing the way images scale adding a ¿parameter? ¿building option?
I don't think those changes are upstreamed, would that be the way rather that adding them here (if wanted)?
Alan 2 errors
- build Alan2 on a x86-64 machine (Ubuntu 20.04)
- tested using remglk, glkterm
Alan 2 tested with https://ifdb.org/viewgame?id=f7u68nd9cquz72br
I get:
As you enter the twilight zone of Adventures, you stumble and fall to your knees. In front of you, you can vaguely see the outlines of an Adventure that never was.
SYSTEM ERROR: Could not read all ACD code.
From both versions, this one and garglk
Can you post the CMake file for glktermw?
Are you working with this branch? https://github.com/erkyrath/glkterm/tree/widechar - Thank you.
No save file building TADS terp against remglk
I have build several of the terps from the list with no problems but:
building tads terp against remglk (on armhf and x64) when I try to save a game position I get:
Failed
error message for TADS2 game (both arm and x64)Failed; your computer might be running low on disk space, or you might not have the necessary permissions to write this file.
error message for TADS3 game on arm, or awrong coding
file on x64
On both platforms I use Linux OS.
Am I doing something wrong?
Compiling against remglk stop at glulxe
Hi! Thanks for your work.
I have found this issue: I downloaded remglk and uncompress it in its folder and the followed the rest of th instructions of the read me.
It builds adsys, agility, alan2 and 3, bocfel, frotz, git, jacl, level9, magnetic, nitfol, scare and scott with no errors, then:
[...]
Scanning dependencies of target glulxe
[ 58%] Building C object CMakeFiles/glulxe.dir/glulxe/main.c.o
[ 58%] Building C object CMakeFiles/glulxe.dir/glulxe/files.c.o
[ 58%] Building C object CMakeFiles/glulxe.dir/glulxe/vm.c.o
[ 58%] Building C object CMakeFiles/glulxe.dir/glulxe/exec.c.o
[ 59%] Building C object CMakeFiles/glulxe.dir/glulxe/funcs.c.o
[ 59%] Building C object CMakeFiles/glulxe.dir/glulxe/operand.c.o
[ 59%] Building C object CMakeFiles/glulxe.dir/glulxe/string.c.o
[ 59%] Building C object CMakeFiles/glulxe.dir/glulxe/glkop.c.o
[ 59%] Building C object CMakeFiles/glulxe.dir/glulxe/heap.c.o
[ 60%] Building C object CMakeFiles/glulxe.dir/glulxe/serial.c.o
[ 60%] Building C object CMakeFiles/glulxe.dir/glulxe/search.c.o
[ 60%] Building C object CMakeFiles/glulxe.dir/glulxe/gestalt.c.o
[ 60%] Building C object CMakeFiles/glulxe.dir/glulxe/osdepend.c.o
[ 61%] Building C object CMakeFiles/glulxe.dir/glulxe/unixstrt.c.o
[ 61%] Building C object CMakeFiles/glulxe.dir/glulxe/accel.c.o
[ 61%] Building C object CMakeFiles/glulxe.dir/glulxe/profile.c.o
[ 61%] Building C object CMakeFiles/glulxe.dir/glulxe/float.c.o
[ 61%] Linking C executable glulxe
remglk/libglk.a(rgfref.c.o): At function `glk_fileref_create_temp':
rgfref.c:(.text+0x2bf): warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
CMakeFiles/glulxe.dir/glulxe/glkop.c.o: At function `init_dispatch':
glkop.c:(.text+0x10b): reference to `gidispatch_set_autorestore_registry' not defined
collect2: error: ld returned 1 exit status
CMakeFiles/glulxe.dir/build.make:511: failure in the instructions for target 'glulxe'
make[2]: *** [glulxe] Error 1
CMakeFiles/Makefile2:548: failure in the instructions for target 'CMakeFiles/glulxe.dir/all'
make[1]: *** [CMakeFiles/glulxe.dir/all] Error 2
Makefile:127: failure in the instructions for target 'all'
make: *** [all] Error 2
Alan2 save prompt other than Garglk
I've been poking the code and made save prompt work for remglk adding this
cibersheep@0ce6038
It needs additional macros in the cmake, when building alan2 it need GLKUNIX_FILEREF_GET_FILENAME
This works for remglk, as mention but it fails for glkterm. I'm assuming then, it may be a wrong approach. Should I add a condition on the cmake? or do you reckon the whole approach is wrong?
AdvSys won't build
I forgot about this:
Building with remglk
but I guess with any implementation, AdvSys won't success (it misses size_t
definition in glkstat.h)
[100%] Building C object CMakeFiles/advsys.dir/advsys/glkstart.c.o
In file included from /home/cibersheep/Escriptori/esborra/terps-upstream/terps/advsys/glkstart.c:14:
/home/cibersheep/Escriptori/esborra/terps-upstream/terps/remglk/glkstart.h:75:113: error: unknown type name ‘size_t’
75 | _serialize_context_t, char *, glkunix_serialize_object_f, int, size_t, void *);
| ^~~~~~
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.