Wrathchild Posted May 19, 2008 Author Share Posted May 19, 2008 Sadly work and family time have sadly left me with little->no Atari time over the last few months other than to progress some debugging of the C64's 'The Sentinel' drawing code running on an A8. (Just check the dates, that was one month ago ) Quote Link to comment Share on other sites More sharing options...
miker Posted May 21, 2008 Share Posted May 21, 2008 (edited) That's OK. I asked only by curiosity. I can wait some more ofcoz, just to see the final effect. Edited May 21, 2008 by miker Quote Link to comment Share on other sites More sharing options...
ThomSW Posted September 18, 2008 Share Posted September 18, 2008 Wassup? BUMP! Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted September 18, 2008 Author Share Posted September 18, 2008 'Fraid only able to browse the forums and contribute a reply every now and then but sadly coding little these days. I think all the detail required to continue the investigation is on this thread but if anyone wants it sent to them I could do that. Regards, Mark Quote Link to comment Share on other sites More sharing options...
ThomSW Posted September 19, 2008 Share Posted September 19, 2008 Oh, c'mon. You don't have to document "every breath you take". Only form time to time - tho show the project is not dead. Greetz! Quote Link to comment Share on other sites More sharing options...
miker Posted June 20, 2009 Share Posted June 20, 2009 Any news? Quote Link to comment Share on other sites More sharing options...
carmel_andrews Posted June 21, 2009 Share Posted June 21, 2009 Hows the Little one going Mark...all you do is dream coding this 'colony' fix in your sleep and the code/coding fairy will take care of the rest Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted June 21, 2009 Author Share Posted June 21, 2009 Sorry Miker, but this hasn't been on my radar for a long time Anyone know if the C64 has the same bug? I'm presuming they must share a good deal of the code and so maybe a disassembly of that and a comparison with the XL version will shed some light on the error? Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted June 23, 2009 Author Share Posted June 23, 2009 I'm presuming they must share a good deal of the code Disassembly of the C64 done, but an initial scan doesn't appear to give a lot of overlap with routines etc. Slightly odd that that should be the case but it means a more intense comparison is required, e.g. try and match function names, variables to make the C64 assembly more readable. Sonar goes faint again Quote Link to comment Share on other sites More sharing options...
jindroush Posted December 27, 2022 Share Posted December 27, 2022 (edited) On 6/23/2009 at 10:40 PM, Wrathchild said: Sonar goes faint again Hi Mark, somebody asked me recently about this on czech 8bit group on FB. I remembered there was some work done with this, so I dug up all the versions and I'm pretty sure I know why it crashes. Any NPC has 4x4 sprites (4 directions x 4 animation frames), these are referenced from the table at $3749 (I used polish ATR with correct black&white graphics). The table has order ANT, BUG, DROID. The last droid sprite of going up should be at $9F9E. But the binary is shorter, which leads to crash. It is enough to put $20, $3 at $9F9E in debugger and it does no longer crash (it would blink, but no crashes). Because I did not follow all of your patches, I'm leaving this in your hands to produce bug-free Colony binary. Edited December 27, 2022 by jindroush 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted December 27, 2022 Author Share Posted December 27, 2022 From what I recall its not a crash, the graphical anomalies were resolved as far as I could tell but there is a specific issue that occurs after the order drop is made, after which the landscape is increasingly corrupted. Quote Link to comment Share on other sites More sharing options...
jindroush Posted December 28, 2022 Share Posted December 28, 2022 (edited) In that case I'm lost. I was aware of two bugs: a) in widely circulated image, some bw icons of items were overwritten, then, after taking the items, the status got broken. This worked okay in "polish" image. b) in both 'old' and 'polish' images, after the droid got battery, the screen/memory got randomly overwriten and game crashed after a while Both of these should be solved. Can you simulate the bug you mention? Because I can't - if the ship drops and beacon is on, the tables at $27E3/$27FE say where to drop items in beacon room. If beacon is off, the items are scattered at positions given in tables $27C3, $2783 & $27A3. And when I check memory after the drop, I can't see any problem... (active landscape map is between $1000-$1FFFF). Edited December 28, 2022 by jindroush Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted December 28, 2022 Author Share Posted December 28, 2022 50 minutes ago, jindroush said: Both of these should be solved From the thread link in the 1st post of this topic, all of the candidates had the map corruption. 53 minutes ago, jindroush said: Because I can't Here you only describe the 'drop' and not post adding the battery to the droid. From what I recall at that point a 'wipe seems to occur and it's possible that the corruption occurs during that. So a debug session should be able to help there, but it may help identifying some more labels to make that readable. Quote Link to comment Share on other sites More sharing options...
jindroush Posted December 28, 2022 Share Posted December 28, 2022 Uhmhm. Yes. The only necessary condition for this to happen is to give the droid battery (E 5340 FF FF) and be in the next room to the droid (this is only the assumption, but I've never seen it happen otherwise) There is some pointer confusion in function $4330 which does clear fireball - the function wants the on-screen-pointer and writes 8 zeroes to clear it, but instead it is given the map pointer and creates 8 items of code 0 = rocks. Quote Link to comment Share on other sites More sharing options...
jindroush Posted December 29, 2022 Share Posted December 29, 2022 (edited) Ok, in the main loop, remove third JSR (in my case $20 $3c $44), change it to $EA $EA $EA. That should do it - can you confirm it? This code does play with removing fireballs and it always takes the last processed one - and since droid is always the last, it's only droids fireballs causing this. Since this code is also called from the main npc processing, I'm not sure why it was put here. BTW: there are at least two additional bugs: there is destroyable elements table at $3949, containing $37,$3B,$3E,$53, and I think it should be $37,$3B,$3F,$53. And, also, after the death of the player, the pmg/sound are in wrong state? BTW: Should droid be eating fences? Edited December 29, 2022 by jindroush 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted December 30, 2022 Author Share Posted December 30, 2022 The only reference I see to $443c is here? sub_0_4435: ; CODE XREF: seg000:33D8�p ; sub_0_3476+58�p LDA word_0_FD ORA word_0_FD+1 BNE loc_0_443C RTS ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_0_443C: ; CODE XREF: sub_0_4435+4�j LDA word_0_FD STA VecPtr1 LDA word_0_FD+1 STA VecPtr1+1 and $3949 contains code? loc_0_3946: ; CODE XREF: seg000:3992�j LDY #0 LDA (word_0_FD),Y SEC SBC #1 STA (word_0_FD),Y loc_0_394F: ; DATA XREF: seg000:399F�r JMP loc_0_39B0 So not sure what you're working with. Quote Link to comment Share on other sites More sharing options...
jindroush Posted December 30, 2022 Share Posted December 30, 2022 I started working on the 'polish' version (the one with kosher black&white inventory images) which has some moved offsets. Never mind, I've sent the 'fixed' image to your 'old' email. Quote Link to comment Share on other sites More sharing options...
jindroush Posted January 16 Share Posted January 16 So, after a bit of testing, I present 'maybe probably likely perhaps possibly fixed' Colony version. Attached is ATR and also the (almost) complete disassembly of the game, so anybody can continue the fixing. The fixes: 1 - black & white inventory images overwritten by assembly - this was fixed in the 'polish' version I started with (causing status window destruction when taking certain items), also done by Wrathchild 2 - added 'empty' droid going up4 image, because of shortened dump by one sector (causing memory overwrites and game crash as soon as droid moved), also done by Wrathchild 3 - finally fixed droid image up3 & up4 by switching colors 2 & 3 from player images 4 - fixed b&w droid spare body inventory image, done by Wrathchild 5 - removed second call for fireball cleaning (this was causing random map overwrites, because of double call when droid was activated, writing to map thus dropping rocks, instead of screen, cleaning fireball) 6 - fixed fence list ($3F instead of $3E) - this is more of a guess 7 - removed some disk editor data - this was only in polish version, some data of disk editor/copier in middle of image 8 - fixed bw font - some letters on the left were borken, fixed according to my taste 9 - lengthened PMG background under selected tool in status window by 1 line - 1-off mistake 10 - removed extra lda's in init, extra initialization of unused variables, removed one never-called routine etc. 11 - adding graphic as mentioned here, done by Wrathchild What could be done better and I did not do it in order to preserve binary image for easy comparison A) Death - the death screen does not stop sound and PMG. Does stop interrupts and then waits forever for decrementing in interrupts. Etc. B) Lots of empty memory blocks could be removed, also one of the graphics blocks could be removed (gr_mysterious) shortening the image. C) Most of game variables could be removed from the binary altogether, again shortening the image. colony.atr colony_src.rar 6 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.