Saturday, 25 January 2014

Flipull: An "Exciting Cube Game by Taito" (フリップル Furippuru)


I put out a post on the Yahoo group for the MC-10 asking for game suggestion ideas. Neil Morrison made the helpful suggestion of adding a level editor to my MC-10 version of Sokoban. I might do that some day. Eric Underhill suggested that I should make a Star Trek-style game. He obviously (and quite understandably) hadn't managed to plow his way through my hundreds of file uploads to discover the three variations I have ported over the years. In fact if my recollection serves me "MCTrek" (as the file is called) is perhaps the first serious program port I ever made to the MC-10 back even before PCs and emulators. It was a time when I was still working on the real thing with tapes and having to retype lines to make any changes (the MC-10 doesn't have the nice edit command of Extended Coco Basic). So although that suggestion prompted some fond memories, it was not as exciting as the next suggestion made by Anders Carlsson:
One game that I played a bit lately that might be suitable to MC-10 graphics would be a version of Flipull / Plotting by Taito (unless someone already made a port of it, which I somehow doubt). http://en.wikipedia.org/wiki/Flipull
A quick look did reveal a game with distinct possibilities for porting to or development on an MC-10.

My first thought, as usual, was whether there might be a Basic version out there already, which I could simply adapt to the MC-10. It's always nicer to let someone else do all the fiddly work of figuring out scoring and instructions, etc, even if the graphic presentation of the game needs to be completely re-done in Micro Color Basic. A quick search of Flipull, Plotting and Taito and Basic revealed an MSX variation. I like MSX computer programs because these machines all use a standard form of Microsoft Basic which is easily amenable to conversion to Micro Color Basic (another Microsoft product). Ander's turned up a TI83 Scientific Calculator version too:

Now I had some code, I just had to convert one of them.

The TI83 version looked promising because it seemed based primarily on the use numbers, along with what I assumed would turn out to be some redefined characters (the blob guy and the ladder sections).  I have converted programs from calculator based versions of Basic quite successfully, such as in a Sudoku Solver and Maker program I made.  The process is much aided by the constricted screen size of such calculators (often very close to the 32 by 16 screen of the MC-10).  The TI's native text mode, for example, is I believe 16 X 8.

The MSX version looked more complicated, and indeed when I examined the code, it contained a bunch of advanced graphics commands to create the shapes.  Also, as usual adjusting the program logic for a machine that assumed a 24 line screen, rather than the more constricted 16 lines, put me off using this code.  With the help of Harry Prevor I was able to make some sense of the quite distinctive form of Basic used on the TI83. However, in the end it also used some very special graphic commands.

I also began to realize, from playing an on-line version of an original Gameboy version, that both of these Basic ports may have made some modifications to the original rules of the game.  I wanted to make as faithful a reproduction as I could on the MC-10.  So I simply I had to work up an entirely new program. Luckily, Flipull is not an overly complicated animated puzzle game, so it didn't take too long to get the basic motions working.  Then it was just a question of streamlining the code to make it truly playable.  Here again, some suggestions from the Yahoo forum really helped, particularly the suggestion by Mark McDougall that instead of searching all the blocks to determine whether a missed shot had occurred, I should search for the spaces around the blocks and then look for the specific block I was seeking.  The new algorithm really sped the game up to a playable level.  In the end, I was able to re-use the instructions from the TI83 source code (always re-cycle!).

As part of my Winter Roundup Retrochallenge Project  I have now ported the code to the Coco and Dragon. One nice feature these other computers provide is the ability to have a real seconds countdown by using the TIMER function built into Extended Color Basic.  For the MC-10, in the absence of an accessible (from Basic) internal clock, I had to use a well-timed main loop, with some tweaks to the counter of the loop for each distinct major subroutine, to get a 3 minute countdown. I would like to thank my son Charlie for holding the stopwatch and doing the math (which he can do so quickly in his head) to figure out the offsets to get things to the properly allotted time and for his victory-music for the advanced mode. And thanks to Anders again, for pointing out how on PAL TVs and other European machines (he uses the French cousin of the MC-10 called the Alice) the colour CYAN, which looks close to sky blue on NTSC TVs, actually looks like a slightly paler version of green. This made it very hard to distinguish between the green and cyan coloured blocks in the pile.  So I tweaked the Dragon and Alice versions of the programs to use purple instead (or is it Magenta?).  Once again, my retrocomputing has taught me interesting things from within and beyond the world of computing!

Sunday, 19 January 2014

Homage to the Commodore Pet: Ouranos aka Weather War


Another source of good Basic programming ideas is the Commodore Pet.  One of the games I came across while researching the programs available for that classic 8-bit computer was "Ouranos" by Kathy Higby.  Here is one of the videos I viewed:


"Ouranos," the Greek weather god, is the official name of the program.  But most people seem to know it as "Weather War", or by its subtitle "Take the enemy by storm!"  It is a charming and unique variation on the "Duelling Cannons" theme.  I thought I might be able to port the program from Pet Basic, but I couldn't find any source code that I could easily lay my hands on.  On one of the videos the videographer tantilizingly breaks and lists the program and I thought perhaps I could obtain some insight into how it worked by capturing stills of the video.  This is the kind of thing I was able to obtain:

Unfortunately, the video only showed a partial listing and all the embedded control codes just intimidated the heck out of me.  Also, someone mentioned in their description of the game that Higby had to use a special machine language routine to get the flashing lightening effect, so I decided just to do a complete remake of the program myself.  I had to watch a bunch of videos to try to get the full gist of it, as well as read every description I could locate.  I think I've been able to recreate all the aspects of the program including the flashing lightening effect by way of the MC-10's POKE49151,64 and the Coco's SCREEN 0,1 command.  Here's a video of my son and his friend playing it:


One thing I changed was the title of the random weather event from "Act of Nature" to "Act of God," which seemed more appropriate to me since the latter is how my insurance policy refers to such events.  If anyone who has played the original could let me know if I've left anything important out I would really appreciate it.  I've now ported it to the Coco (JGGAMES.zip) and Dragon 32/64 (archive.worldofdragon.org).

Saturday, 18 January 2014

"The High Mountains" Port from VZ-200 to MC-10, Coco and Dragon




The images to the right show screen shots from a unique game made for the ZX Spectrum by Paul Braithwaite.  The game is called "The High Mountains."  It was based on John Christopher's Tripods trilogy.  This game allows up to five players to take the roles of the human resistance or the alien masters and their tripods. There are relatively few puzzles in this game, but a fairly large area to move around in and plenty of NPCs. Originally published as a type-in game for the ZX Spectrum in the British magazine Personal Computer News #79 there was also a VZ-200 version.

This game is very interesting because this is the only multi-player text adventure I've ever come across. Each player alternately gets a number of turns to explore the world of the game. You can choose to either be a baddie alien, in which case you go around trying to kill the humans, or a human character, in which case you have to collect various items and interpret various clues in order to figure out how to thwart the alien invaders. The game allows you to play alone, but the story and puzzles are fairly simple. I imagine the time pressure created by trying to complete your appointed tasks before the other players complete theirs must add a nice element to the challenge. The game wouldn't be much fun to play as just an alien alone.  It would simply be an exercise in moving until you run across all the human players and kill them. The combat seems somewhat random, although there are weapons that can be picked up at various locations in the game. I'm unsure how they affect combat. There might be opportunities as an alien character to interfere with the other player's ability to complete the game by seizing or moving objects. However, combat can make players drop things, if you are willing to risk possible death, so there are ways for human characters to win objects back. I am unsure if, when played with others, it is recommended that they not be allowed to view the screen, but I suspect this might be so (or an "option"). In that way, if you're an alien you can hide or move objects, and the other player will have a harder time finding them or knowing when they need to confront you to try to force you to drop them. If you're a human character, it would give you the opportunity to try to hide or use circuitous routes to get to objects unmolested. I suspect knowing the original book series would also add to game play (although I think names have been changed to protect the original author against a copyright challenge--for example the first book of the series is called "The White Mountains," not "The High Mountains").

I created a version of the program for the TRS-80 MC-10, which was ported from code for the VZ-200 version that I managed to get a copy of from Dave Maunder of the VZemu group on Yahoo, who found it on a German fan site (http://www.wolkenkratzerhaus.de/VZ/). The VZ-200 is a good source of porting code because it uses the same display chip as the MC-10 (and Coco and Dragon). In the course of porting the program I slightly condensed some of the descriptions and fixed some grammar and spelling errors.  I also noticed what I think is a catastrophic error in the VZ version, which allowed the non-playing characters to move completely off the "grid" of the map of locations--never to return!  This would effectively make the game unwinable for the alien characters as their job is, as Bender would say, "to kill all the humans."  If some can simply disappear completely, this becomes impossible.

I've also now completed a further port to the Coco 2/3 and Dragon.  I've added it to a compilation I am building of my coding projects for 2013.

You can link to that compilation at:
https://github.com/jggames

I will be adding to this compilation disk JGGAMES6.DSK and perhaps a JGAMES7.DSK if I run out of space over the next month or so as part of the the Retrochallenge 2014

If anyone out there has played this game, especially the VZ200 version, I would really be interested in hearing about your experience.  The Dragon version as a casette file for the XROAR emulator can be found here: archive.worldofdragon.org

Saturday, 11 January 2014

The Pharaoh's Tomb

Last year I worked on a game called "Penguino" for the Retrospectiva 2012 Basic programming competition.  That game used a basic 4 X 4 character matrix for each of the "sprite" characters in the game.  In the case of Penguino this was 5 or 6 "Snow Bee" blobs and the main character.  I was able to get quite a bit of speed for the animation of all those characters and this got me thinking, perhaps, with a slightly smaller number of characters I could also include some animation of the characters themselves.  All I needed was a premise.  The main point of my retrocomuting hobby is to fill out the software complement of my favourite little orphan 8-bit micro, the TRS-80 MC-10, so I'm always thinking about the classic arcade games that I played as a kid.  One game I remembered playing was called Tut's Tomb, or Tutankahmen, or something like that.

It involves an archaeologist character loosely based on "Indiana Jones" venturing into an Egyptian tomb in search of treasure.  He has to avoid all the nasties that he meets there including bats and snakes and mummies.  The distinctive feature that I remember most about the game was that your character could only fire on the horizontal.  This meant the game required some strategy and timing when taking on the baddies.  I thought this might also simplify some of the problems of making a game in Basic, as I would only have to work out firing on the horizontal.  I had also made a Q-Bert game, in which I had included a snake character, so I thought it would be easy to make an animated snake.  I also had used a fly in my Frogger game, which with a little tweaking, would make a nice bat.
So I had my premise.  Now I just needed the code.  It took quite a bit of work to get the animation fast enough on the MC-10, but I think I have the workings of a game with an animated bat, snake and shuffling mummy.  Unlike Penguino, this game has 12 pre-made mazes.  Each maze presents different challenges.  To up the ante, there is a time limit as your "air" runs out. 

The Coco version (JGGAMES.zip) really flies with the double speed poke, although the Dragon version was a little sticky in its key input until Zephyr helped me out with a "speed keys" routine for that computer (archive.worldofdragon.org).  I have to admit that another inspiration for the game was seeing a game called "Pyramid" for the NEC PC-6001 32K.  I was exploring the NEC PC because it also uses the Motorola 6847 VDG graphic chip.  I was hoping to find inspiration for some games, or possibly even some code for porting.  One of the things I found was a YouTube video for Pyramid.

I also have made some other discoveries for programs to port to the MC-10 (and the Coco and Dragon). One of these is NukeWar.  Although I found graphic images for games, I found it impossible to get at the original code for the NEC PC version.  I just can't navigate the language barrier to get a working emulator, and no one is simply posting the code directly on-line.  However, once I saw the images, it did make me aware of games that could possibly be ported to the screen size of the MC-10.  One of these was the Avalon Hill simulation NukeWar, which I stumbled across a NEC PC image for.
Then I simply had to find a TRS-80 Model 1/3 version of the code.  The screen re-sizing work has been simplified because I have the NEC PC image to help me figure out how to do it.  Notice the Japanese characters being generated by the VDG.  The NEC PC takes advantage of the hardware character re-definition abilities of the chip, which, unfortunately, were not enabled in the MC-10, Coco or Dragon.  It's neat to learn about all these interconnections between machines from the early 1980's.  That's part of the charm of the retrocomputing hobby!

Saturday, 4 January 2014

The Treasure of Elgon Adventure By Keith Hawthorn (Walkthrough)



Walkthrough for the TRS-80 MC-10 and COCO and Dragon 32/64 Version
by Jim Gerrie
(Other's might be different)
WARNING: This Adventure may contain a Grue!



N
GET LADDER
S
DROP LADDER
CLIMB LADDER
JUMP
N
GO SHACK
W
GET GLASSES
WEAR GLASSES
E
E
GET HAMMER
W
S
GET PLANK
WITH HAMMER
DROP HAMMER
GET PLANK
GET AXE
S
CHOP TREE
GET APPLE
D
READ SIGN
N
GIVE APPLE
TO GRUE
GO TUNNEL
W
GET COIN
E
E
S
CLIMB LADDER
JUMP
S
PAY MERCHANT
GET SHOVEL
W
PUT PLANK
GO PLANK
S
JUMP
DIG
DROP SHOVEL
GET AMULET
N
SHOW AMULET
DROP AMULET
GET KEY
GO PLANK
E
N
E
GO POST
UNLOCK BOX
OPEN BOX
DROP KEY
PULL LEVER
S
GO DRAWBRIDGE
N
GET SWORD
E
GO STAIRS
W
GET ANKH
E
U
W
S
E
READ BOOK (NOTE WORD 'RACK' AND CLUE FROM SIGN IN FIRST ROOM LEADS TO THE SECRET WORD 'ACKRA')
GO PASSAGE
DROP GLASSES
GET SHIELD
N
W
W
W
S
W
GO PLANK
S
JUMP
W
INSERT ANKH
SAY ACKRA
GO CRAWLWAY
SHARPEN AXE
S
E
JUMP
N
GO PLANK
E
N
E
GO DRAWBRIDGE
S
CHOP CLOSET
GO CLOSET
DROP AXE
W
N
W
W
D
GO TUNNEL
W
W
SAW PADLOCK
OPEN DOOR
GO DOOR
E
MOVE CHEST
GO HOLE
GET TREASURE