Sunday, 16 June 2024

The Six Lilies/Le Jeu de Six Lys by Infogrames (1984)

I have made another conversion of a game for the Matra Alice to the TRS-80 MC-10. This game is a computer role-playing game (CRPG). It uses some nice graphics that are made possible by the upgraded graphics chip for the later models of the Alice, which had the same chip as the Thompson 8-bit computers.

Dead-end

There were some pretty creative images, generated using line-drawing techniques developed by the Infogrames programmers.

4-Way Intersection

These graphics are drawn using machine code routines that are loaded along with the BASIC program.  The BASIC program, however, covers combat and other main functions of the game like random item distribution and input, so all I had to do was recreate new room, character and item drawing routines in BASIC. Despite the creativity and variety of the hires images, they all boil down to 3 basic forms: Passages (no distinction between east-west, and north south), 4-way intersections and dead ends. I was able to create a simple room rendering engine using the chunky lowres Semigraphics-4 graphics of the standard MC-10/4K Alice. This engine indicates which directions there are exits (north, south, east or west) in the orientation North-back, West-left, East-right, South-foreground. It didn't require too much memory and was as speedy as the machine language line-drawn artworks of the original. Simple, but they do the trick:

North and South exits ("Guard" spelling now fixed)

4-Way intersection with East and West Exits

In my system, dead-end rooms are just rooms with one exit, but unlike the original, they clearly indicate in which direction the exit is located.  I was able to have enough room for just two extra special rooms. One was the "Web Room" where there always seems to be a spider (a very powerful creature) which must be defeated before approaching the dragon.


I've refined this room graphic a little since taking this screen shot by adding a web string in the upper left corner. I also changed the name of the creature from "Migilus" to "Spider".  I generally moved towards trying to use clearer English equivalent names for monsters when they were apparent.  For example, "Nain" which is French for "gnome," was renamed and given a little red "hat" to evoke the garden gnome clichĂ©, just for fun.  I went through two renderings of the Dragon big baddie, which is double width to all the other creatures.

Chunky original dragon idea

A more stylized dragon glyph
I went with the less chunky dragon, but please let me know if you feel I went the wrong way. I had to work the semigraphics-4 hard to get an interesting variety of monsters to cover the 40 used in the game. Each is meant to evoke the size, ferocity and type of creature from the original artwork, but I did take some liberties. These are the glyphs I came up:

Monsters 1-16

Each monster was limited to a 4 by 4 grid of pixels, which due to color clash, must largely be limited to a single color.
Monsters 17-32

Colors can be used to evoke certain kinds of monsters. For example, white is a good colour for undead types. You can see in the above how I was able to sneak in the red cap of the gnome by carefully avoiding color clash between individual 2X2 pixel character blocks.  When the names, which I think were probably loosely based on Latin terms rather than French, were not hard to pronounce and were evocative of something, I left them untranslated. Otherwise, I opted for straightforward English terms for the various types. Their size relative to the player will hopefully indicate that these creatures are of extremely large size and aggressiveness for their species. But not all of them attack when you enter a room. Some are simply cannon fodder, that you must combat to build up your strength and constitution in preparation for fighting the Dragon.  You must figure out which are the most and least dangerous, and start small and work your way up. Otherwise, you are doomed. The food and other items in the dungeon can help you replenish constitution and can raise and lower your intelligence, which also helps with your combat.

Monsters 33-40

If you manage to survive and build your stats to an appropriate level, you can face the dragon (seen above in "split" form).  If you can defeat the dragon, you can make it to the room with the Lily, which you can then take to an appropriate room (which you must find) to win the game.

BUGS

As with many of my conversions, including my last one (WW3) from the Alice, I found some bugs. At least one was potentially game busting depending on your patience. I found that if you picked up and then dropped the sword, you would be granted a larger amount of Constitution points than would be taken away. So if you simply stayed in a room picking up and dropping a sword you could conceivably raise your constitution to whatever level you needed to defeat everything in your path.  It might take some time, but players back in the day would have ruthlessly seized on such bugs to achieve victory, no matter how underhanded such a victory would be. Here is the kind of progression in Constitution you would see from a series of pickups and drops:

234, 244, 239, 249, 242, 252, 247, 257, 266...

It struck me as an inadvertent asymmetry in the GET and DROP routines. Possibly there was some concern that since any action, including dropping an item, also uses a small fraction of Constitution (which is like your "energy level") some restitution was due. But the decimal math was not right for simply offsetting that specific fractional amount. It just seemed to be a mistake. It only effects the sword, since that is the only item that grants an increase in Constitution when you GET and carry it. I fixed it so that the benefits of STR and CON are given and taken to the same level for GETs and DROPs.

A less game-breaking bug is one that affects the reading of scrolls.  It is clearly the case that like most of the items some scrolls are positive and some negative. For example, some vials are poison and some are magically helpful for (STR, INT, or CON).  But the routine to register either positive or negative effects jumped to a line number just after the IF check for deciding whether an item was of the positive or negative type. So all scrolls would simply default to being positive in effect. But given the information messages that are provided when you use the "IN" (Intelligence/Inquiry) command, some of the scrolls are clearly meant to be negative. In general, scrolls and vials that are good provide more benefit compared to the bad effects of negative counterparts, so there is an incentive to be cautiously bold.

In relation to the IN command, it takes a number of intelligence points to use that command, which is obviously meant to be a disincentive from using it too much. But I read in the instructions that this command was only available to those of requisite "high intelligence. " But the game would let you use the IN command without limit and subtract points even into the negative range, which seemed strange. So I added a feature to only allow use of the command if you had Intelligence points above at least zero. Otherwise the message "nothing" is printed.  A player must be careful about using the IN command and should not ignore INT when choosing character stats at the beginning and try to keep them up during the game.
 
Finally, there was a minor quirk in the way the game seeds the random number generator, which resulted in the first game always being the same dungeon arrangement from a cold computer start and game load. This is because the random item/monster distribution routine is called before the "random seed" routine is called in the form of an RND embedded in a "press a key" loop. So I changed this so that you always get a completely unique game for any startup. The program also NEWs itself if you lose, forcing the player to reload-- Part of the incentive to play well, I suppose. I took that feature out, and added a simple re-start prompt at the end. I also added a brief version of the game backstory as part of the intro screens, and a list of the commands. That way, anyone playing the game online can simply figure out what is going on after typing RUN.

If someone from the Alice world would like to fix the bugs that I think found in the original version, I have added REM statements regarding the three main ones discussed above. The source code (highest number is latest version) can be found here: 


My version of the game can be played online at the Internet Archive:


P.S. Thanks to whoever created the walkthrough map that I found online.  It was really helpful.  And to Le FĂ©tiche for his long-play video of the original game:


SPOILER ALERT

The following is a video of the dragon being defeated. It shows where you must go after defeating the dragon to win the game, and the brief animation that occurs with your final victory.  For those who don't wish to spoil the game, I recommend not viewing the video and playing the game yourself!


Video of a win!