Quoted from idealjoker:I found three bugs in the Pinbot L5 code. I have fixes for all of them and would *like* to release those but am not sure how. In the mean time, here's documentation:
Bug#1 Energy Value Limit. The Energy Value is supposed to be limited to 500K. Instead, it starts looping like this : 498-500-502-504-506-508-500-502-... The culprit is a subroutine starting at address $627A. This bug is largely cosmetic.
Bug#2 Solar Value Limit. There is a similar bug in the Solar Value limit, which is supposed to be limited to 5M. The buggy routine starts at $77CB.
Bug#3 Visor Open code. This is an interesting bug; I do not think that it affects game play on machines with fully functional visor mechs. It might well affect games with visor problems, though. The problem occurs when the visor is already open and the software, for one reason or another, decides that it wants to open the visor. In that case, what the code should do (as it does in the visor-closing routines) is simply ignore the visor open command. What it does, instead, is cycle the visor (close, then open). The underlying problem is that a BGT instruction (at $B769) is used to test a variable that takes on only the values 0 and -1 ($FF). Neither of those two values causes the BGT to branch. The bug can be fixed by replacing the BGT either with a BPL or a BEQ and updating the checksum byte at address $BFFF.
Cool, good work
Why don't you start by releasing a patch file ?
That seems the easiest and doesn't have any legal ramifications AFAIK.