Jump to content
IGNORED

I disassembled Atari Centipede


Captain Cozmos

Recommended Posts

It is 100% disassembled with 99% of everything identified with a sneaking suspicion what that last 1% is.

When I say 100% I mean it.

I can change anything I want in the game, move data anywhere, subroutines anywhere.  It will compile under TNIASM and run as normal.

 

So what I want to do is add a pause button and maybe a bonus screen to show the built in secret message from Larry Clague.

 

 

What I have learned from this is that now I can make a Centipede style game and a project on the back burner would be Millipede for the Colecovision.

I have also learned that this game carry's a lot of the same routines like there was a shell at Atari that the programmers shared when making these games.

 

I found the same exact routine in Joust and Jungle Hunt.

 

    LD      A, 9FH
    OUT     (0FFH), A
    LD      A, 0BFH
    OUT     (0FFH), A
    LD      A, 0DFH
    OUT     (0FFH), A
    LD      A, 0FFH
    OUT     (0FFH), A
    LD      B, 18H
    LD      HL, $7008     ; this ram address changes with the each game but it is the same exact routine.
    SUB     A

SOME_LOOP:
    LD      (HL), A
    INC     HL
    DJNZ    SOME_LOOP
RET

 

Anyway, I will update with more stuff later.

CC

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

CC -Would you be able to add an option true roller controller usage?

 

The game is playable with the roller controller, but the unit must be in the "joystick cartridge mode"

 

I had read that an AA user had made a hack in the past, but it is not available and he has not answered my messages when I inquired.

 

True trak-ball support would be awesome.  if you have ever tried SLITHER with the roller controller, and then you try Atarisoft's Centipede,

it is a dissapointing experience.

Link to comment
Share on other sites

6 hours ago, timdu said:

CC -Would you be able to add an option true roller controller usage?

 

The game is playable with the roller controller, but the unit must be in the "joystick cartridge mode"

 

I had read that an AA user had made a hack in the past, but it is not available and he has not answered my messages when I inquired.

 

True trak-ball support would be awesome.  if you have ever tried SLITHER with the roller controller, and then you try Atarisoft's Centipede,

it is a dissapointing experience.

If I had the hacked version of Centipede I could extract it and put it in a newer version.
But then again, why not use the hacked version because it was already done.

I'm still going over the code so I will see what I can do.
 

Link to comment
Share on other sites

Here is my work, drag and drop on TNIASM to assemble it.
If anyone makes changes improvements then please document them.

I would also say that if anyone modifies this and then sells the same game with just a few graphics changes then they are a real douche.

Use it to create something new, add true roller controller support.  A pause button with original music?

Make Millipede using the techniques but to just sell a hacked version as if you actually did something should be frowned upon.

 

As my philosophy goes.

Like EOS 7.  Why was it in the ether for 35 years until I extracted it for the community?  Was it because of no interest or no one could do it?

Well I did.  Same with this source code.  If someone could do it to this nth degree it would have been done already.

I spent a tremendous amount of hours on this for the community to archive and learn from.  Not for it to be butchered and sold but no doubt it will be done anyway.

 

In any case.

Here is what I come up with.  I hope this is put to good use and enjoyed by the Colecovision and Atari Age community.

You can change the data around and it will compile.  At least I have not had issues.

 

I changed all RAM references from $6000 to $7000

Colecovision circuitry would remap it to where it needed to go but this keeps it in where I understand it needs to be.

So if you have the SGM module, Phoenix, ADAM or some other that has access to $6000 there should not be any conflicts.
I have read that this is why some games did not work on the ADAM but I may be confusing the my 35 year old stories.
If there is a game that has this issue then let me know and I will give it the same treatment.  I think Defender?  maybe.

If there is still an issue then clue me in so I can update the code.  Or you update the code and let me know the changes.  I am always eager to learn.

 

The game itself comes in just above 14k so there was lots of room for improvement.  The Larry message could be done because the rom had 16k of space to fill.

If the game came in at 12k or under, Larry probably would not have put it in. The padding at the end of the rom is just that, padding.

I left the padding just to reach the 16k but it will compile and run without it.  I have found that using my ADE my programs either worked or they didn't.  Padding the roms always seem to fix the issue.

 

I labeled as much as possible without doing a deeper dive so if you modify the source code, please let me know so I can update mine.

If I change anything significant I will release the updated version.

 

If you run into any issues then let me know and I'll try to resolve them.

 

 

Enjoy,

CC

 

 

 

CENTIPEDE.asm

Edited by Captain Cozmos
  • Like 2
Link to comment
Share on other sites

57 minutes ago, Tempest said:

Anything interesting hidden in the code other than the secret message?

Just that it shares code with other Atari Games.

I looked in Pacman and did not see the similarities.
So, maybe Larry wrote or was involved in Jungle Hunt and Joust.
I'll check the other ones over time and add it to the history.

 

I am really tempted to improve these games, maybe make the code smaller but Atari Games are extremely well honed.
If anything I could improve would be Smurf Rescue but after taking a second look at Smurf I found even more tables then tables on tables.
It was at that point I said...self... I am spending a lot of time on this is it worth it.  Self told me, nope.

 

It would be better to start from the absolute beginning but then it would only be to do it as an exercise.  Bragging rights.

As with what has happened recently in my life, I am seeing everything on borrowed time to no longer waste on bragging rights.

 

So, I am developing better pattern manipulation and I still have several open projects that I want to release ASAP.

 

Here is a final thought on improving these games.

It's 2023, there is a lot of great stuff coming out like Starfield.  Hopefully Fallout 5 and Elderscrolls 6 are in the near future.
By "improving" these games will take away from the original nostalgia.  When I press up twice on a Donkey Kong Ladder and Mario climbs faster, I want that to stay.

Now by "fixing" an old bug.  Like Joust, someone added the sound effects or Scramble someone patched it to work on the ADAM, I can get behind that.
 

 

Edited by Captain Cozmos
  • Like 1
Link to comment
Share on other sites

7 hours ago, Captain Cozmos said:

I found even more tables then tables on tables.

Yea. I was disassembling, but looking at source code to I think Parsec, different platform, different CPU. But I did come to understand, when writing assembler called for limited micro's - how much of the code is actually tables - sounds, graphics, where to place everything to start, sprites. Basically everything you can get away from computing becomes a table - even things that could have been calculated with say sin() - if you can do that in table - table it is.

 

Thanks - and i look forward to learning from the centipede dis-assembly.

Link to comment
Share on other sites

On 8/28/2023 at 6:14 AM, dhe said:

Yea. I was disassembling, but looking at source code to I think Parsec, different platform, different CPU. But I did come to understand, when writing assembler called for limited micro's - how much of the code is actually tables - sounds, graphics, where to place everything to start, sprites. Basically everything you can get away from computing becomes a table - even things that could have been calculated with say sin() - if you can do that in table - table it is.

 

Thanks - and i look forward to learning from the centipede dis-assembly.

If you look for some of my other work in one of these threads, I uploaded a few videos of animated patterns moving around the screen.
They only work because of animation tables.
I will tell you truthfully that I knew very little of tables until I started that project.
That project started because I wanted better enemies for a Shamus clone I am making and I liked what I seen with Frenzy which also table driven enemies.
 

When I set everything up and it actually worked is when it all blew my mind because I have never seen anything like it on a Colecovision and I did it.

The hard part was wrapping around the screen and keeping everything with the memory limitations of the hardware itself.

 

Disassembling these games gives me a better insight as how to access hardware at the fastest possible way.

Until then I would go through the BIOS or use someone else routine.
Now, most of my work is a strait forward OUT OR IN along with tables.  I just started using OUTI which made a few of my screen access times faster.

 

Edited by Captain Cozmos
  • Like 1
Link to comment
Share on other sites

On 8/27/2023 at 7:58 PM, Captain Cozmos said:

As my philosophy goes.

Like EOS 7.  Why was it in the ether for 35 years until I extracted it for the community?  Was it because of no interest or no one could do it?

Well I did.  Same with this source code.  If someone could do it to this nth degree it would have been done already

 

The ADAM Technical Manual (EOS section which IIRC is Section IV) has a commented EOS listing.

 

EOS was disassmbled by Mel Ostler back in the late 80s and the disassembly was made available in a very nice spiral bound book. I think it was uncommented.

 

Others like Bruce and Jim Walters had to have disassembled EOS in order to fix and improve it... called SmartDSK at first and then EOS9. This improved EOS was included with every software program they released like ADAM's Desktop, ADAM's ToolKit, The PrintWorks, etc. However, no source code and that is unerstandable.

 

Rich Drushel (DR. D) dissassembled EOS and numerous other ADAM programs like SmartBasic, ADAMLink, SmartFiler as well as the other Filer programs. Some of his work has been saved, but a lot of it was lost to hard drive crashed or the sands of time. His "This Week with the Coleco ADAM" series of articles is a techincal treasure trove.

 

Link to comment
Share on other sites

3 hours ago, NIAD said:

The ADAM Technical Manual (EOS section which IIRC is Section IV) has a commented EOS listing.

 

EOS was disassmbled by Mel Ostler back in the late 80s and the disassembly was made available in a very nice spiral bound book. I think it was uncommented.

 

Others like Bruce and Jim Walters had to have disassembled EOS in order to fix and improve it... called SmartDSK at first and then EOS9. This improved EOS was included with every software program they released like ADAM's Desktop, ADAM's ToolKit, The PrintWorks, etc. However, no source code and that is unerstandable.

 

Rich Drushel (DR. D) dissassembled EOS and numerous other ADAM programs like SmartBasic, ADAMLink, SmartFiler as well as the other Filer programs. Some of his work has been saved, but a lot of it was lost to hard drive crashed or the sands of time. His "This Week with the Coleco ADAM" series of articles is a techincal treasure trove.

 

Thank you for the clarification NIAD, but it was still I, who brought you EOS 7.  And I have yet to give you the disassembly of it.
This is a portion of what I said. Was it because of no interest or no one could do it?  and I guess I should emphasize the "NO INTEREST" part.

I suspect as some point people were burnt out and I have seen Mr. Drushel (DR. D)'s work and it is superb.  I have credentials as well, I am sure no one cares about.
And yes, the Walter boys sold a lot ADAM stuff during the hay day while I was writing the guidance software for the ******* ******* system for the US Military.

But hey, thank you for setting the record strait.

Link to comment
Share on other sites

8 hours ago, Captain Cozmos said:

Thank you for the clarification NIAD, but it was still I, who brought you EOS 7.  And I have yet to give you the disassembly of it.
This is a portion of what I said. Was it because of no interest or no one could do it?  and I guess I should emphasize the "NO INTEREST" part.

I suspect as some point people were burnt out and I have seen Mr. Drushel (DR. D)'s work and it is superb.  I have credentials as well, I am sure no one cares about.
And yes, the Walter boys sold a lot ADAM stuff during the hay day while I was writing the guidance software for the ******* ******* system for the US Military.

But hey, thank you for setting the record strait.

Oops! You said EOS7, I stand corrected as the ADAM Tech Manual listing is for EOS6 (which is really EOS5). While EOS7 was also disassembled BITD by one person for sure, it was never shared or put in book form for people to purchase. Just another item lost to the sands of time.

 

There was interest in EOS7 as can be seen by numerous articles in newsletters that discussed it's inclusion on both Disk Manager and SmartBasic 2.0 and shared a lot of findings about it. Advanced programmers just never bothered with EOS7 just the same as SmartBasic programmers stayed the coarse with v1.0 and only a very small amount of programs were developed in v2.0.

 

Yeah, burn out is always a big problem especially for a small, orphaned computer like the ADAM.

 

Indeed, you have credentials, not saying otherwise and always look forward to hearing how all of your projects continue to evolve on their way to completion in these threads.

 

Back then, I was working for the local gas company as a Laborer in what was called a Main Gang... not a lot of fun working a 110pd. jackhammer for hours on end in every possible weather condition there is in Chicago. Everyone has their past and what they did for a living compared to what they did as a hobby or to make some extra money.

 

No records being set straight, just sharing what I know and hoping one day that some of the valuable stuff that hasn't been archived for everyone's benefit will surface.

 

Link to comment
Share on other sites

  • 2 weeks later...

Same Routine in Defender

 

    LD      A, 9FH
    OUT     (0FFH), A
    LD      A, 0BFH
    OUT     (0FFH), A
    LD      A, 0DFH
    OUT     (0FFH), A
    LD      A, 0FFH
    OUT     (0FFH), A
    LD      B, 18H
    LD      HL, $7038     ; this ram address changes with the each game but it is the same exact routine.
    SUB     A

SOME_LOOP:
    LD      (HL), A
    INC     HL
    DJNZ    SOME_LOOP
RET

Link to comment
Share on other sites

Same Routine in Joust

 

    LD      A, 9FH
    OUT     (0FFH), A
    LD      A, 0BFH
    OUT     (0FFH), A
    LD      A, 0DFH
    OUT     (0FFH), A
    LD      A, 0FFH
    OUT     (0FFH), A
    LD      B, 18H
    LD      HL, $73DB     ; this ram address changes with the each game but it is the same exact routine.
    SUB     A

SOME_LOOP:
    LD      (HL), A
    INC     HL
    DJNZ    SOME_LOOP
RET

  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...
8 hours ago, Geoff Oltmans said:

Well, the first bit before the loop looks like it's setting the attenuation of all channels of audio to muted.

I will go into a deeper dive fairly soon.
I am working on the completion of Smurf Rescue.
I just did the outline for Subroc Supergame but I also have to finish Jungle Hunt as well.

Truth be told, I have maybe 17 active disassembly's but am focusing on certain ones.

 

Atari so far has the cleanest code.  Activision I would say is next.
Most of Coleco roms have been a nightmare pre 1983 mostly due to the pascal entry points.

 

  • Like 1
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...