Crusoe

Please add the following "known errors" description for game Crusoe:
Bugfix provided by Battle Bunny:
  • The game crashes frequently. Most of the errors are due to JPs being one or two bytes off their correct destination. The most significant error was the machine stack overflow, caused by indirect recursive sub-routine calls, which would cause the program to crash if Crusoe did a lot of moving back & forth between map sections and had to use his "Elyxr" frequently. There were some minor errors in the keyboard checking, command handler search and message display. Also the LLL option to load a saved game messed up the stack and the QQQ/TIUQ option to restart didn't work properly (although that was due to the stack being messed up by other things). Fixed using the following patch:
            org  $6A9C               ; patch indicator: stone head as prompt terminator
            DEFB $A2                 ; 6A9C A2                                                 
    
            org  $6BEC               ; jump correction
            JP $6A2D                 ; 6BEC C3 2D 6A
    
            org  $71DE               ; typo correction
            DEFM "A ladder    "      ; 71DE 41 20 6C 61 64 64 65 72 20 20 20 20
    
            org  $7AE8               ; jump correction
            DJNZ $7AE7               ; 7AE8 10 FD
    
            org  $80E5               ; jump correction
            JR   $8149               ; 80E5 18 62
            org  $82BB               ; jump correction
            JP NZ, $82E2             ; 82BB C2 E2 82
            org  $8401               ; jump correction
            JP NZ, $82CD             ; 8401 C2 CD 82
            org  $8736               ; jump correction
            JR $8706                 ; 8736 18 CE
    
            org  $8F86               ; jump correction
            JP $87CC                 ; 8F86 C3 CC 87
            org  $970C               ; jump correction
            JP NZ, $87CC             ; 970C C2 CC 87
    
            org  $B6F8               ; jump correction
            JR Z, $B71D              ; B6F8 28 23
            org  $B705               ; jump correction
            JR Z, $B71D              ; B705 28 16
            org  $B70B               ; jump correction
            JR Z, $B71D              ; B70B 28 10
    
            org  $A84D               ; message address correction
            LD A, $5D                ; A84D 3E 5D
    
            org  $84F2               ; check RET address before JP back
            JP   PATCH               ; 84F2 C3 F6 B8
            org  $B498
            JP   PATCH               ; B498 C3 F6 B8
            org  $CA86
            JP   PATCH               ; CA86 C3 F6 B8
    
            org  $B8F6               ; drop all except RET to BASIC
    PATCH:  POP BC                   ; B8F6 C1
            LD HL, $2D2B             ; B8F7 21 2B 2D
            AND A                    ; B8FA A7
            SBC HL, BC               ; B8FB ED 42
            JR NZ, PATCH             ; B8FD 20 F7
            PUSH BC                  ; B8FF C5
            JP $61AE                 ; B900 C3 AE 61
    

Modified "BUGFIX" file provided by Einar Saukas.

The bugfixed version is now available here. I have also uploaded the same file to WoS site for Martijn's convenience.
Post edited by Einar Saukas on
Creator of ZXDB, BIFROST/NIRVANA, ZX7/RCS, etc. I don't frequent this forum anymore, please look for me elsewhere.

Comments

Sign In or Register to comment.