Jump to content
IGNORED

CloneSpy updated!


Thomas Jentzsch

Recommended Posts

Based on the latest Good2600 v1.0 dumps, I have created two new lists, one containing all original games (1703 dumps, including lots of hacks) and the other one containing modern homebrews (376 dumps, mostly WIP dumps).

 

:idea: To view the original games list, just unzip all files into one directory and start Listspy.exe.

 

Some interesting facts you get from the results:

- the total number of original games (excluding pirates, hacks etc.) is about 510

- Elk Attack is based on the single player version of Pengo

- Music Machine "borrowed" code from Kaboom!

- Brick Kick is a just a clever hack of Pac-Man

- all Mythicon games share a lot of code (hm, no surprise :))

- two very different versions of Dodge'em exist

 

:idea: You can create your own lists by using CloneSpy.exe, please have a look at Readme.txt first.

clonespy.zip

Link to comment
Share on other sites

That doesn't surprise me.  Mark Hahn probably just recycled his Pengo code.  I never noticed this before though.

Me neither. But it's very obvious:

The title screens are very similar, the playfield layout is identical, even with those flickering squares inside the larger blocks and both games have a player and three flickering enemy sprites.

 

two very different versions of Dodge'em exist

Can you elaborate on this?

Here is a printout from ListSpy (Enter: "ListSpy +dodge"):

                                      0  1  2  3  4

0 Dodge 'em (Atari) (PAL) [a1][!]··   · 78 78 46 50

1 Dodge 'em (Atari) (PAL) [p1][!]··   =  · 99 52 48

2 Dodge 'em (1980) (Atari)·········   =  =  · 52 48

3 Dodge 'em (1980) (Atari) [a1]····   =  =  =  · 83

4 Dodge 'em (Atari) (PAL) [!]······   =  =  =  =  ·

There are two groups (0..2 and 3+4):

#2 is probably the original NTSC release, #1 a PAL pirate based on #2, #3 the official PAL conversion of #2 (~20% difference are normal for TV format conversions).

The other group shares only ~50% with the first one, #4 seems to be PAL conversion of #3.

 

So we probably have two "original" NTSC versions #2 and #3 which differ quite a lot. Now I am going to disassemble both games, maybe somebody else can check wether the play differently.

Link to comment
Share on other sites

  • 3 weeks later...

They don't seem to play different :?

It seems that the ram locations change around a bit (like $98 in #2 corresponds to $97 in #3). And number 3 seems to waste some space in some areas. Like this example:

 

#2

STA AUDV0

LDA#$17

STA $98

LDA#$04

STA $84

STA $83

 

#3

STA AUDV0

STA $83 ;these two lines aren't needed since

STA $84 ;...they will be overwritten below

LDA#$17

STA $97

LDA#$04

STA $84

STA $83

 

On the other hand, LFB67 in #3 does an additional BIT test to skip over an area that changes a hibyte. The corresponding routine in #2 at LFB7C does not do this test. Was this more superfluous code? In other cases, a routine is using BPL/BMI in one while the other is using BEQ/BNE...and further down they do the opposite in different routines! Weird.

Link to comment
Share on other sites

They don't seem to play different :?

Yup, I only found some rare colour differences. And maybe the AI is slightly tweaked, but I am not sure about that.

 

It seems that the ram locations change around a bit (like $98 in #2 corresponds to $97 in #3).

Yes, it looks like either one variable was optimized away or they added a feature/corected a bug that required a new variable.

 

Weird.

Definitely! :)

Link to comment
Share on other sites

Is it possible to have clonespy "filter out" ram locations to see how much the routines themselves differ through the whole program?

That would require some understanding of the code. By now the approach is completely general.

 

I slightly tweaked the pseudo compression algorithm, so that constant differences (which occur when you insert/remove a RAM location or some code) are penalized a bit lower. This usually results in slightly higher ratios, but that's all.

 

Filtering RAM locations would require disassembling the game and you better use DiStella for that.

Link to comment
Share on other sites

  • 3 months later...

How do you read these lists?

 

(2/18)                                      ►   0  1  2  3  4  5  6  7  8  9 10

0 Time Race (Goliath) (PAL) [!]·············   · 58 58 74 74 50 50 49 50 50  -

1 Gefecht im All (Starsoft) (PAL) [!]·······  48  · 99 84 84 55 55 55 55 55  -

2 Time Race (Rainbow Vision) (PAL) [!]······  48  =  · 84 84 55 55 55 55 55  -

3 Space Jockey (32-in-1) (Atari) (PAL) [!]··  37 40 40  · 99 60 64 65 69 69  -

4 Space Jockey (1982) (PAL) [p1][!]·········  37 40 40  =  · 61 64 66 69 69  -

5 Console Wars (PD)·························  26 27 27  =  =  · 89 86 89 89 31

6 Space 2002 by Angelino (Space Jockey Hack)  26 27 27  =  =  =  · 88 94 94 32

7 Space Jockey (1982) (Carrere Video) (PAL) ► 26 27 27  =  =  =  =  · 94 94 30

8 Space Jockey (1982) (US Games) [o1]·······  26 27 27  =  =  =  =  =  · 99 32

9 Space Jockey (1982) (US Games) [!]········  26 27 27  =  =  =  =  =  =  · 32

10 Air Raid (Men-A-Vision)···················   -  -  -  -  - 56 56 52 56 56  ·

 

Does it mean, Time Race is 58% equivalent with "Gefecht im All" and "Gefecht im All" is 48% equivalent with "Time Race"? How can it be that these values differ? If game A is xx% equivalent with game B, game B also has to be xx% equivalent with game A, or else it's like 3=5... Or do I read it wrong?

Link to comment
Share on other sites

How do you read these lists?

 

Does it mean, Time Race is 58% equivalent with "Gefecht im All" and "Gefecht im All" is 48% equivalent with "Time Race"? How can it be that these values differ? If game A is xx% equivalent with game B, game B also has to be xx% equivalent with game A, or else it's like 3=5... Or do I read it wrong?

No, you read it right, but it is a bit more complicated than it may seem.

 

Time Race vs. "Gefecht im All" = 58% means, that 58% of the code from "Gefecht im All" can be found in Time Race and the other way round it's only 48%.

 

If those value differ that means, that one game has more (or more complex) code inside. You can see this better when comparing Space Jockey with Time Race. Space Jockey is a 2K game, Time Race is 4K rip-off based on Space Jockey. Therefore Time Race contains way more code additional code which cannot be found in Space Jockey.

 

If there is an "=" that means, both values are (almost) identical, and "-" means that the value is below the minimum similarity value (set with -t, default 33%)

 

So the table gives you quite a lot of information. E.g.

- Space Jockey was (most likely!) the original game

- Time Race (Goliath)is a rip-off, based on the 32 in 1 version of Space Jockey,

- "Gefecht im All" and "Time Race (Rainbow Vision)" are the same, both also based on the 32 in 1 (or [p1]) version of Space Jockey, but probably not related to the Goliath version

- Air Raid is another Space Jockey rip-off, this time based on the original NTSC (!) version.

- all three rip-offs added some code to the original game

Link to comment
Share on other sites

  • 4 years later...

* four year bump * :ponder:

 

Thomas, or anyone how do you redirect Listspy's output (those nice display tables) into a text file like you have shown? My command prompt is horrible. I tried:

 

listspy | listspy.txt

 

and

 

listspy >> listspy.txt

Edited by Omegamatrix
Link to comment
Share on other sites

* four year bump * :ponder:

 

Thomas, or anyone how do you redirect Listspy's output (those nice display tables) into a text file like you have shown? My command prompt is horrible. I tried:

 

listspy | listspy.txt

 

and

 

listspy >> listspy.txt

maybe listspy > listspy.txt

Link to comment
Share on other sites

* four year bump * :ponder:

 

Thomas, or anyone how do you redirect Listspy's output (those nice display tables) into a text file like you have shown? My command prompt is horrible. I tried:

 

listspy | listspy.txt

 

and

 

listspy >> listspy.txt

maybe listspy > listspy.txt

Nope tried that too. It's got to be something real simple.

Link to comment
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...