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 <<a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]"><mailto:[email protected]></a>> 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"><http://if-legends.org></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> > Hi Thomas, <br> > <br> > I'm not sure of the status of the Gargoyle Magnetic Scrolls <br> sub-engine, <br> > and I don't currently have any Magnetic Scrolls games handy to <br> test it <br> > on. But unless it's significantly lacking in support for the <br> later games <br> > that your own work adds support for, it'll likely prove easier to <br> work <br> > on converting it, I'm afraid. Since, after all, someone else has <br> already <br> > done the work of hooking it up to Glk as well. So it'll be easier <br> to do <br> > minimal work (relatively speaking) to hook it up to the ScummVM <br> version <br> > of the Glk layer. And then I can keep testing it as I properly <br> objectify <br> > everything to make sure I don't break anything along the way. <br> > <br> > Though I'll be unlikely to be spending much time beyond basic <br> polishing <br> > up of the sub-engine afterwards. So based on your experience with <br> the <br> > games & engine involved, there might be opportunities afterwards <br> for you <br> > to contribute if you're interested, and to do pull requests to <br> improve <br> > the functionality of the engine based on your work. <br> > <br> > Regards, <br> > <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==--