Jump to content
IGNORED

Mastertronic's Colony


Wrathchild

Recommended Posts

  • 4 years later...

Periodically tempted to do so but don't get around to doing it :(

With the debug features of Altirra it maybe more practical to do so these days.

I'd be happy to setup a github repository for it though.

I think in the past I tried to look at the C64 version to see if the code layout/logic was similar but it didn't appear to be a straight port and so simply debugging the A8 version directly is probably the best way to go.

Link to comment
Share on other sites

  • 5 months later...

Periodically tempted to do so but don't get around to doing it :(

With the debug features of Altirra it maybe more practical to do so these days.

I'd be happy to setup a github repository for it though.

I think in the past I tried to look at the C64 version to see if the code layout/logic was similar but it didn't appear to be a straight port and so simply debugging the A8 version directly is probably the best way to go.

 

Just spent a good while playing the latest version on the game, the bug is still there and is indeed related to the droid being given a battery. Afterwhich a random splatter of rocks appear at the most (in)convenient places!

 

After 2 droids go down and replacements added (with the bug just adding to the issue) it became almost impossible for the the 'real' bugs to penetrate the compound, this made growing my mushrooms an easy task and i ended up moving my solar panels to the outer regions (to be eaten up) just so that the power wouldnt blow the compound up because of too much energy.

 

A joy to play, but a bug free version would make this a more rewarding experience.

 

Love the game, but id like it better with this bit fixed! Any chance this can be done?

post-34640-0-32746600-1356820837_thumb.jpg

post-34640-0-89005100-1356820838_thumb.jpg

post-34640-0-58685800-1356820840_thumb.jpg

post-34640-0-13371300-1356820842_thumb.jpg

Edited by Magic Knight
  • Like 1
Link to comment
Share on other sites

  • 4 years later...

I took a peek at this today.

 

Firstly, my xex doesn't appear to set the run address and so does jump to $2080 but this a header and the code is at $2086, however this seems to 'fall through' and work without any other ill effect. I will patch these to NOPs.

 

Secondly, by using a break on a write of zero to the $1000 -> $1EFF range, which I think can be described as the game's object map, this highlights the setting of a rock.

That can be tested to a degree with this little Altirra debugger statement: fbx $1000 L$F00 "((db write)=$10) ? 0 : (db write)"
This turns any 'space' to a 'rock' but is seen on the next screen draw, so walk off a screen edge.

 

At $4329 is a routine I'd named ClrBlockVec1 but I'm need to confirm if this is a valid culprit as the method does write four $00 bytes, incrementing the point each time by 32 ($20) and so stopping when this hits negative ($80). This means that the map data is grouped in a slightly odd way perhaps but I would have thought that one byte would have sufficed? What I think I need to do is write a quick thing that takes the data in that area and then renders a bitmap from it via expanding the object character data.

 

If it is responsible then the 'bug' maybe that it is setting the map area to '$00' rather than '$10' which seems to represent the 'space'? But I am slightly against that theory as it can be seen that bits of rock appear in existing structures and so that would more indicate that they are randomly written.

 

Looking at this code, it is the value in the pointer at $FD that I have a feeling is to blame:

loc_0_3811:
  LDA     byte_0_F7
  BNE     loc_0_3826
  LDA     word_0_FD
  ORA     word_0_FD+1
  BEQ     loc_0_3826
  LDA     word_0_FD
  STA     VecPtr1
  LDA     word_0_FD+1
  STA     VecPtr1+1
  JSR     ClrBlockVec1
loc_0_3826:

Elsewhere when that pointer is used it then reset to zero, e.g. at $37CC​, so another theory is that this is being left with a value and incorrectly picked up to 'erase' that square.

 

I guess what needs to be established is what is causing this to happen, e.g. Clearing the bullets of the active droid? Removing the creature that the droid has shot?

 

If anyone cares to take a look and can't rebuild the sources then get in touch. (possibly it may help to do a conversion to MADS from ca65/makefile)

Link to comment
Share on other sites

I think that is something along the lines of what the v2 release did, i.e. covering the corrupted graphics area with a legit set.

 

This gave us these:

post-1822-0-27423700-1496179045.gif

 

So I'll need to did out the program that made that image to see what the patch you have represents.

post-1822-0-62031200-1496179176_thumb.png

 

[Edit] found the viewer sources and this gave:

post-1822-0-29463800-1496181130.gif

Edited by Wrathchild
Link to comment
Share on other sites

Visual Studio sources for the graphics viewer for anyone to play with. :)

It loads a 64K memory dump file I typically produce from Altirra, e.g. .writemem T:\FUN\cc65\Colony\colony.mem 0 $10000

Therefore you'll need to fix-up the path to your own file in Form1.LoadDataFile

 

Shouldn't be hard to adapt to display graphics from other titles.

ColonyViewer.zip

  • Like 1
Link to comment
Share on other sites

I did not post the "donor" of my patch yesterday because the file crashed. Meanwhile I found out that it is a Polish version and jumped directly into the XL-OS for no obvious reason.

 

Compared side-by-side to your version it shows some more slight differences.

 

Colony (1987)(Bulldog Software)(GB)(a).xex is the unmodified file I found on atarionline.pl

Colony (1987)(Bulldog Software)(GB)(p).xex is patched so it a) loads on 400/800 and b) can be compared side-by-side with your version.

 

Colony (1987)(Bulldog Software)(GB)(a).xex

Colony (1987)(Bulldog Software)(GB)(p).xex

Link to comment
Share on other sites

Playing through to "giving the driod a battery" highlights the same issue occurs in the Polish version, the changes in which appear to be translation related.

 

post-1822-0-58135700-1496222560.png

 

I followed the droid as best as one can, it occasionally leaves behind the small dot trail when moving left which is then erased once it goes back over it but still unclear why the rocks appear.

Link to comment
Share on other sites

  • 9 months later...

I've quickly ported my ca65/ld65 sources to MADS and this creates an identical binary.

 

Hopefully someone can pick this up and debug to find out the cause of the map corruption post a droid being let loose.

 

Built using "mads Colony.asm -l"

Colony_MADS_20180318.zip

Edited by Wrathchild
  • Like 1
Link to comment
Share on other sites

Novagen:

- Second City (sequel to Mercenary): There is a room which contains a triangle key, it is the only room which does. Alas, the only door leading to this room is locked and to unlock it, one requires the triangle key, which is simply impossible...

(or maybe a Lucasfilm gag)... anyways, the game has to be patched, so the door can be opened with any other key and the triangle key can be taken...

 

- Andreas.

Extension to Mercenary is NOT a sequel. Even Novagen says so! So get over calling it a sequel. It is as much a "sequel" as calling the Pole Position X hack a sequel because more tracks were added or calling down loadable new content to Fallout 3 a sequel; Fallout 4 is the sequel. (yes I know this was 13 years ago, but you called it a sequel just recently in another thread). Damocles with a "C" is the sequel to Mercenary.

Edited by Gunstar
Link to comment
Share on other sites

Extension to Mercenary is NOT a sequel. Even Novagen says so! So get over calling it a sequel. It is as much a "sequel" as calling the Pole Position X hack a sequel because more tracks were added or calling down loadable new content to Fallout 3 a sequel; Fallout 4 is the sequel. (yes I know this was 13 years ago, but you called it a sequel just recently in another thread). Damocles with a "C" is the sequel to Mercenary.

If you feel that someone made a mistake in a more recent thread, perhaps it would be a better idea to correct them in that thread, instead of a 13-year-old thread that they're unlikely to read. It might also be helpful to be more polite about it.

  • Like 1
Link to comment
Share on other sites

If you feel that someone made a mistake in a more recent thread, perhaps it would be a better idea to correct them in that thread, instead of a 13-year-old thread that they're unlikely to read. It might also be helpful to be more polite about it.

You are correct sir, but I did this because I am used to other forums that notify you when a post you made has been quoted. I merely forgot AA does not do this (on site). Though I recieve email notifications from AA when ever any thread I post, new or old, is quoted.

Edited by Gunstar
Link to comment
Share on other sites

  • 3 years later...
  • 1 year later...
On 6/16/2005 at 3:46 AM, ijor said:

 

I doubt they really had one. Mastertronics specialized in low cost (not necessarily bad or poor), low retail price, software.

 

I've seen ST Mastertronics originals with the source code in the back side of the disk (not complete, because the front side was overwritten with the game). This likely means:

 

1) The developer had no hard disk, he used floppies. Obvious signs of a young (low cost) programmer.

 

2) Nobody at Mastertronics checked the disk content before sending it to duplication.

Okay, since this thread was super necrobumped anyway... @ijor can you remember which games from Mastertronic had this? Would be fun to check them out!

Link to comment
Share on other sites

3 hours ago, ggn said:

Okay, since this thread was super necrobumped anyway... @ijor can you remember which games from Mastertronic had this? Would be fun to check them out!

Hi ggn. Sorry, I don't remember at all. I only vaguely remember the issue of finding source code traces in some original disks, that's all. Sorry for not being more helpful :(

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...