Re: Contributing to ScummVM with an interpreter for Magnetic Scrolls?

dettus <[email protected]> Wed, 1 May 2019 17:34:46 +0200
Newsgroups gmane.games.devel.scummvm
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============5030793894491966365==
Content-Type: multipart/alternative;
 boundary="------------EED9DDF4BE19B85C961ACD53"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------EED9DDF4BE19B85C961ACD53
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello.


Since I did not have any access to the original data files, I got some 
binaries from https://msmemorial.if-legends.org/memorial.php

As far as I understood, they repackaged the MS data files into their own 
format. That included the CD Collection versions for "Corruption", "The 
Guild of Thieves" and "Wonderland".

Save for a couple of glitches/bugs, my engine is capable of handling all 
the games in that format. I am also in contact for strandgames (Which is 
Hugh Steers). He likes what I am doing. :D




*As for the windowing system:*

The way I see it is that there are three layers: GAME, ENGINE and GUI.


So, for example: When the GAME gets to a point where it wants to present 
a picture, it triggers a callback to the ENGINE. My engine is 
pre-rendering the picture into a more manageable format, and in turn 
triggers a callback to the GUI. The same goes for textual output and for 
input. (I thought it would be easier to port this way)

Reading your emails, I suppose the GAME actually triggers callbacks for 
the compass rose and the inventory box. However, since I did not need 
those for finishing the game, my engine actively ignores them.


*As for GLK:*

So far I was able its project page https://www.eblong.com/zarf/glk/ , 
and compile the ncurses example. When I tried the example for X, i 
realized that this is probably outdated, since I was not able to compile 
it on the first try.

I will have to familiarize myself with it, if you say that this is the 
way forward. Here, I'd take any help I can get. ;) But other than that, 
I do not see why my callback hooks should not be adaptable to it. 
Currently, they end in a printf() and an fgets().






Thomas


On 5/1/19 5:13 PM, Torbjörn Andersson wrote:
> The Legend games split the screen into fixed areas, though. The 
> Magnetic Windows GUI was basically a window manager (in 640x480 
> pixels), with movable, resizable, potentially overlapping windows. 
> Here is an admittedly horrifying screenshot of what it could look like 
> if you opened all the possible windows:
>
> http://www.update.uu.se/~d91tan/magnetic-windows.png
>
> I defy anyone to find a sensible layout for all of that! You may think 
> you can do it, if you close the "Compass", "Inventory", and "Items in 
> room" windows, and for a while you can... and then you realize that 
> not every image is the same size, and you have to move the "Graphpics" 
> window out of the way...
>
> Torbjörn Andersson
>
> On 01/05/2019 08.53, Paul Gilbert wrote:
>> Thanks for information Torbjörn. It doesn't sound like the missing 
>> screen elements are things I'd miss all that much. Though maybe some 
>> of it could eventually be reintroduced as an option. Whilst Glk 
>> doesn't currently have any "listbox" window types, I do have an 
>> already implemented listbox control for my stalled Legend engine that 
>> could probably be adapted. And a main menu implementation could be 
>> useful for Frotz v6 as well as the Magnetic engine.
>>
>> It will be nice if they do release the original versions alongside 
>> the remastered versions. Being away from home, I'm not sure how many 
>> Magnetic Scrolls games I have, if any.. comes from having too large a 
>> collection.. I'm sure Strangerke among others can empathize :), So if 
>> I don't have all of them; it would be nice to eventually have a 
>> legitimate source to get any missing ones.
>>
>> Paul.
>>
>>
>> On Wed, May 1, 2019 at 4:00 PM Torbjörn Andersson 
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>>       From what I remember, the main feature not supported by the 
>> Magnetic
>>     interpreter is some of the "Magnetic Windows" interface 
>> (on-screen map,
>>     compass rose, separate windows for inventory and room objects, 
>> horribly
>>     cluttered windowing system, ... oh, sorry, that last thing isn't 
>> really
>>     a feature, is it?) used by Wonderland and the Magnetic Scrolls
>>     Collection.
>>
>>     At least as long as the front end implements the necessary hooks for
>>     displaying static and animated pictures, etc. I'm not sure if it 
>> loads
>>     the original data files, or if they have to be specially 
>> prepared. (The
>>     files on my Magnetic Scrolls Collection CD certainly don't look like
>>     anything the emulator would recognize.)
>>
>>     Also, it doesn't try to emulate the original look of the games 
>> with its
>>     animated menus and pull-down graphics. Which is a bit of a shame
>>     or,, in
>>     the case of the Magnetic Windows interface, a huge relief.
>>
>>     When I asked [1] on the Strand Games forum (the company in the 
>> process
>>     of remastering the Magnetic Scrolls games, after the source code was
>>     recovered from a backup tape [2]) if they were planning on 
>> release the
>>     original versions as well, just for nostalgia, I got a reply from 
>> Hugh
>>     Steers referring me to Stefan Meier's "Magnetic Scrolls Memorial" 
>> for
>>     data files for the emulator.
>>
>>     Since "Strand Games was started by Hugh Steers - a founding 
>> member and
>>     core developer of Magnetic Scrolls and Stefan Meier, curator of
>>     if-legends.org <http://if-legends.org>" and they claim to have the
>>     support of "several members
>>     of the original Magnetic Scrolls team" [3], I guess those files are
>>     kiiind-of officially endorsed...? It's probably worth asking them 
>> again
>>     later.
>>
>>     [1]
>> https://strandgames.com/community/discussion/65/the-original-versions
>>     [2]
>> https://strandgames.com/blog/magnetic-scrolls-games-source-code-recovered
>>     [3] https://strandgames.com/about
>>
>>     Torbjörn Andesson
>>
>>     On 01/05/2019 05.10, Paul Gilbert wrote:
>>      > Hi Thomas,
>>      >
>>      > I'm not sure of the status of the Gargoyle Magnetic Scrolls
>>     sub-engine,
>>      > and I don't currently have any Magnetic Scrolls games handy to
>>     test it
>>      > on. But unless it's significantly lacking in support for the
>>     later games
>>      > that your own work adds support for, it'll likely prove easier to
>>     work
>>      > on converting it, I'm afraid. Since, after all, someone else has
>>     already
>>      > done the work of hooking it up to Glk as well. So it'll be easier
>>     to do
>>      > minimal work (relatively speaking) to hook it up to the ScummVM
>>     version
>>      > of the Glk layer. And then I can keep testing it as I properly
>>     objectify
>>      > everything to make sure I don't break anything along the way.
>>      >
>>      > Though I'll be unlikely to be spending much time beyond basic
>>     polishing
>>      > up of the sub-engine afterwards. So based on your experience with
>>     the
>>      > games & engine involved, there might be opportunities afterwards
>>     for you
>>      > to contribute if you're interested, and to do pull requests to
>>     improve
>>      > the functionality of the engine based on your work.
>>      >
>>      > Regards,
>>      >
>
> _______________________________________________
> Scummvm-devel mailing list
> [email protected]
> https://lists.scummvm.org/listinfo/scummvm-devel

--------------EED9DDF4BE19B85C961ACD53
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello.</p>
    <p><br>
    </p>
    <p>Since I did not have any access to the original data files, I got
      some binaries from <a class="moz-txt-link-freetext"
        href="https://msmemorial.if-legends.org/memorial.php">https://msmemorial.if-legends.org/memorial.php</a></p>
    <p>As far as I understood, they repackaged the MS data files into
      their own format. That included the CD Collection versions for
      "Corruption", "The Guild of Thieves" and "Wonderland". <br>
    </p>
    <p>Save for a couple of glitches/bugs, my engine is capable of
      handling all the games in that format. I am also in contact for
      strandgames (Which is Hugh Steers). He likes what I am doing. :D</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><b>As for the windowing system:</b></p>
    <p>The way I see it is that there are three layers: GAME, ENGINE and
      GUI. <br>
    </p>
    <p><br>
    </p>
    <p>So, for example: When the GAME gets to a point where it wants to
      present a picture, it triggers a callback to the ENGINE. My engine
      is pre-rendering the picture into a more manageable format, and in
      turn triggers a callback to the GUI. The same goes for textual
      output and for input. (I thought it would be easier to port this
      way)<br>
    </p>
    <p>Reading your emails, I suppose the GAME actually triggers
      callbacks for the compass rose and the inventory box. However,
      since I did not need those for finishing the game, my engine
      actively ignores them. <br>
    </p>
    <p><br>
    </p>
    <p><b>As for GLK:</b><br>
    </p>
    <p>So far I was able its project page <a
        class="moz-txt-link-freetext"
        href="https://www.eblong.com/zarf/glk/">https://www.eblong.com/zarf/glk/</a>
      , and compile the ncurses example. When I tried the example for X,
      i realized that this is probably outdated, since I was not able to
      compile it on the first try. <br>
    </p>
    <p>I will have to familiarize myself with it, if you say that this
      is the way forward. Here, I'd take any help I can get. ;) But
      other than that, I do not see why my callback hooks should not be
      adaptable to it. Currently, they end in a printf() and an fgets().<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p> <br>
    </p>
    <p><br>
    </p>
    <p>Thomas</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 5/1/19 5:13 PM, Torbjörn Andersson
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">The
      Legend games split the screen into fixed areas, though. The
      Magnetic Windows GUI was basically a window manager (in 640x480
      pixels), with movable, resizable, potentially overlapping windows.
      Here is an admittedly horrifying screenshot of what it could look
      like if you opened all the possible windows:
      <br>
      <br>
      <a class="moz-txt-link-freetext" href="http://www.update.uu.se/~d91tan/magnetic-windows.png">http://www.update.uu.se/~d91tan/magnetic-windows.png</a>
      <br>
      <br>
      I defy anyone to find a sensible layout for all of that! You may
      think you can do it, if you close the "Compass", "Inventory", and
      "Items in room" windows, and for a while you can... and then you
      realize that not every image is the same size, and you have to
      move the "Graphpics" window out of the way...
      <br>
      <br>
      Torbjörn Andersson
      <br>
      <br>
      On 01/05/2019 08.53, Paul Gilbert wrote:
      <br>
      <blockquote type="cite">Thanks for information Torbjörn. It
        doesn't sound like the missing screen elements are things I'd
        miss all that much. Though maybe some of it could eventually be
        reintroduced as an option. Whilst Glk doesn't currently have any
        "listbox" window types, I do have an already implemented listbox
        control for my stalled Legend engine that could probably be
        adapted. And a main menu implementation could be useful for
        Frotz v6 as well as the Magnetic engine.
        <br>
        <br>
        It will be nice if they do release the original versions
        alongside the remastered versions. Being away from home, I'm not
        sure how many Magnetic Scrolls games I have, if any.. comes from
        having too large a collection.. I'm sure Strangerke among others
        can empathize :), So if I don't have all of them; it would be
        nice to eventually have a legitimate source to get any missing
        ones.
        <br>
        <br>
        Paul.
        <br>
        <br>
        <br>
        On Wed, May 1, 2019 at 4:00 PM Torbjörn Andersson
        &lt;<a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a>
        <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;mailto:[email protected]&gt;</a>&gt; wrote:
        <br>
        <br>
              From what I remember, the main feature not supported by
        the Magnetic
        <br>
            interpreter is some of the "Magnetic Windows" interface
        (on-screen map,
        <br>
            compass rose, separate windows for inventory and room
        objects, horribly
        <br>
            cluttered windowing system, ... oh, sorry, that last thing
        isn't really
        <br>
            a feature, is it?) used by Wonderland and the Magnetic
        Scrolls
        <br>
            Collection.
        <br>
        <br>
            At least as long as the front end implements the necessary
        hooks for
        <br>
            displaying static and animated pictures, etc. I'm not sure
        if it loads
        <br>
            the original data files, or if they have to be specially
        prepared. (The
        <br>
            files on my Magnetic Scrolls Collection CD certainly don't
        look like
        <br>
            anything the emulator would recognize.)
        <br>
        <br>
            Also, it doesn't try to emulate the original look of the
        games with its
        <br>
            animated menus and pull-down graphics. Which is a bit of a
        shame
        <br>
            or,, in
        <br>
            the case of the Magnetic Windows interface, a huge relief.
        <br>
        <br>
            When I asked [1] on the Strand Games forum (the company in
        the process
        <br>
            of remastering the Magnetic Scrolls games, after the source
        code was
        <br>
            recovered from a backup tape [2]) if they were planning on
        release the
        <br>
            original versions as well, just for nostalgia, I got a reply
        from Hugh
        <br>
            Steers referring me to Stefan Meier's "Magnetic Scrolls
        Memorial" for
        <br>
            data files for the emulator.
        <br>
        <br>
            Since "Strand Games was started by Hugh Steers - a founding
        member and
        <br>
            core developer of Magnetic Scrolls and Stefan Meier, curator
        of
        <br>
            if-legends.org <a class="moz-txt-link-rfc2396E" href="http://if-legends.org">&lt;http://if-legends.org&gt;</a>" and they claim
        to have the
        <br>
            support of "several members
        <br>
            of the original Magnetic Scrolls team" [3], I guess those
        files are
        <br>
            kiiind-of officially endorsed...? It's probably worth asking
        them again
        <br>
            later.
        <br>
        <br>
            [1]
        <br>
           
        <a class="moz-txt-link-freetext" href="https://strandgames.com/community/discussion/65/the-original-versions">https://strandgames.com/community/discussion/65/the-original-versions</a>
        <br>
            [2]
        <br>
           
<a class="moz-txt-link-freetext" href="https://strandgames.com/blog/magnetic-scrolls-games-source-code-recovered">https://strandgames.com/blog/magnetic-scrolls-games-source-code-recovered</a><br>
            [3] <a class="moz-txt-link-freetext" href="https://strandgames.com/about">https://strandgames.com/about</a>
        <br>
        <br>
            Torbjörn Andesson
        <br>
        <br>
            On 01/05/2019 05.10, Paul Gilbert wrote:
        <br>
             &gt; Hi Thomas,
        <br>
             &gt;
        <br>
             &gt; I'm not sure of the status of the Gargoyle Magnetic
        Scrolls
        <br>
            sub-engine,
        <br>
             &gt; and I don't currently have any Magnetic Scrolls games
        handy to
        <br>
            test it
        <br>
             &gt; on. But unless it's significantly lacking in support
        for the
        <br>
            later games
        <br>
             &gt; that your own work adds support for, it'll likely
        prove easier to
        <br>
            work
        <br>
             &gt; on converting it, I'm afraid. Since, after all,
        someone else has
        <br>
            already
        <br>
             &gt; done the work of hooking it up to Glk as well. So
        it'll be easier
        <br>
            to do
        <br>
             &gt; minimal work (relatively speaking) to hook it up to
        the ScummVM
        <br>
            version
        <br>
             &gt; of the Glk layer. And then I can keep testing it as I
        properly
        <br>
            objectify
        <br>
             &gt; everything to make sure I don't break anything along
        the way.
        <br>
             &gt;
        <br>
             &gt; Though I'll be unlikely to be spending much time
        beyond basic
        <br>
            polishing
        <br>
             &gt; up of the sub-engine afterwards. So based on your
        experience with
        <br>
            the
        <br>
             &gt; games &amp; engine involved, there might be
        opportunities afterwards
        <br>
            for you
        <br>
             &gt; to contribute if you're interested, and to do pull
        requests to
        <br>
            improve
        <br>
             &gt; the functionality of the engine based on your work.
        <br>
             &gt;
        <br>
             &gt; Regards,
        <br>
             &gt;
        <br>
      </blockquote>
      <br>
      _______________________________________________
      <br>
      Scummvm-devel mailing list
      <br>
      <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://lists.scummvm.org/listinfo/scummvm-devel">https://lists.scummvm.org/listinfo/scummvm-devel</a>
      <br>
    </blockquote>
  </body>
</html>

--------------EED9DDF4BE19B85C961ACD53--


--===============5030793894491966365==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2N1bW12bS1k
ZXZlbCBtYWlsaW5nIGxpc3QKU2N1bW12bS1kZXZlbEBsaXN0cy5zY3VtbXZtLm9yZwpodHRwczov
L2xpc3RzLnNjdW1tdm0ub3JnL2xpc3RpbmZvL3NjdW1tdm0tZGV2ZWwK

--===============5030793894491966365==--