Tempest Posted November 25, 2021 Author Share Posted November 25, 2021 So is this a bad dump or not then? Quote Link to comment Share on other sites More sharing options...
alex_79 Posted November 25, 2021 Share Posted November 25, 2021 Even without considering the RNG bytes at the end, I'd still think it's a bad dump because of the one byte (actually just one bit) difference in bank 0, which causes the gfx glitch when falling into a pit. I find unlikely that it would have made it into a review copy without being noticed before. Interestingly, there are also 4 bytes that differ at the start of bank 1 (address $1000 in the binary): the beta contains the sequence "78 4c 81 fb" there, while in the release is all 'ff'. That byte sequence is the code SEI JMP $F081 Anyway, the VCS can never access that area of the rom, as the DPC registers are mapped there. And any difference there can be caused by the method used to dump the game. The code is maybe a leftover from the development system? Quote Link to comment Share on other sites More sharing options...
stepho Posted November 26, 2021 Share Posted November 26, 2021 The 256 bytes at the end are not random. They are a simple barrel shifter where each value is the previous entry shifted left by 1 bit and the top bit inverted and feedback to be the new low bit. eg 1 $95 = b10010101 is followed by $2b = b00101010 eg 2 $01 = b00000001 is followed by $03 = b00000011 In pseudocode they are accessed as: new_value = table[old_value] 1 2 Quote Link to comment Share on other sites More sharing options...
Tempest Posted November 26, 2021 Author Share Posted November 26, 2021 15 hours ago, stepho said: The 256 bytes at the end are not random. They are a simple barrel shifter where each value is the previous entry shifted left by 1 bit and the top bit inverted and feedback to be the new low bit. eg 1 $95 = b10010101 is followed by $2b = b00101010 eg 2 $01 = b00000001 is followed by $03 = b00000011 In pseudocode they are accessed as: new_value = table[old_value] So what does this indicate about the prototype vs the released version? Quote Link to comment Share on other sites More sharing options...
stepho Posted December 6, 2021 Share Posted December 6, 2021 I made a slight mistake. The table is mostly a barrel shifter but I was wrong about the new bit (I didn't spot check enough values). The new bit (and the entire table) is just a table to implement CRC8. My guess is that the DPC+ does this job and that the table was just a hangover from the Pitfall-I code. It's quite common for professional programmers to disable something but to forget to remove it altogether, so it doesn't surprise me that its presence or absence makes no difference. Quite possibly it was temporarily removed for the prototype but they accidently forgot to make the change permanent. This is why I push so hard at my current job to make all release procedures totally automated and repeatable - but automated release procedures wasn't a big thing then back then. Quote Link to comment Share on other sites More sharing options...
Tempest Posted April 5, 2022 Author Share Posted April 5, 2022 I'm finally getting around to putting a page up for this proto. Are we in consensus now that this is simply the final version of the game that had a few bytes screwed up due to either bit rot or bad dumping? Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted June 17, 2022 Share Posted June 17, 2022 Any definite answer on this one? Bad dump or Beta? Quote Link to comment Share on other sites More sharing options...
Tempest Posted June 17, 2022 Author Share Posted June 17, 2022 99% sure it's just a bad dump that somehow manages to work 1 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.