Jump to content
Tempest

Pitfall II Beta?

Recommended Posts

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?

 

Share this post


Link to post
Share on other sites

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]

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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...