Jump to content
PacManPlus

Re-visiting Defender...

Recommended Posts

6 hours ago, PacManPlus said:

The reality now is (most likely) that more people will have the AtariVox than the XM or HSC at this point. 😢 The AtariVox is still being made, but the HSC, CCII, and possibly the XMs aren't.

FWIW, High Score Cart saving works under MiSTer FPGA as well.

 

Between owning a Concerto and an AtariVox+, I'm happy either way. :D

 

I know you utilize Assembly (Maybe some C(+)), Bob; however, perhaps worth mentioning, 7800basic by default saves to both HSC and AtariVox/Savekey devices once set hssupport $#### is utilized. 

 

Completely speaking from the Peanut Gallery perspective, I don't believe being able to save to both devices, instead of only one type, should take up a noticeable amount of space difference as a result.  But humbly admit my nearly complete ignorance here and leave it to the programming gods. :)

  • Like 2

Share this post


Link to post
Share on other sites

Hey @RevEng Are those 7800basic routines posted somewhere for us hardcore assembly programmers to use in our games? :)

I will have the need to save to both HSC/Atarivox in my next game.  I don't intend to use the HSC routines and will only need to save/load the scores and initials.

  • Like 2

Share this post


Link to post
Share on other sites

For sure. The 7800basic github would be a good place to start...

 

The hiscore.asm file has the upper level hi-score table load/save. The link will bring you directly to the bits you're probably most interested in. The code earlier in the file is involved in the hiscore display and controls.

The 7800vox.asm has some convenience functions. (reading a series of bytes, writing a series of bytes to the vox, and detecting a vox)

i2c7800.inc is the low-level avox serial eeprom driver written by Alex Herbert, and minimally tweaked by me.

 

Instead of using regular atarivox eeproms per-game allocations, the driver uses a chunk of memory that Al put aside for the 7800, so we can use it like an HSC. i.e. the driver will search that chunk of memory for the game's ID+difficulty when loading/saving.

  • Like 5

Share this post


Link to post
Share on other sites

This is probably my #1 most wanted 7800 port. Awesome. Can't wait to see how it turns out.

  • Like 5

Share this post


Link to post
Share on other sites

Hi guys:

 

So I did a stupid thing.

As you all know, Defender has a 'planet' which is far wider than the screen.  Everything happens on the entire planet, whether or not the current 'window' position (i.e. the screen) is showing it or not.  There's no hard scrolling (like SMB or Bentley Bear, or Scramble for that matter - forced in a direction)...  The planet wraps around, in either direction.  The screen is just a 'section' of that planet.

 

Why state the obvious?  Because I worked on the screen (window) first... putting the enemies in the attract mode, etc...  Once I started working on the planet itself, I found that I'm putting 'band-aids' with regard to how the enemies are handled on/off the screen.

 

It's clear to me now I should have started with the planet placing the enemies and not the 'window'. :(  

 

So, I'll need to start a good portion of this over again, for the third time. 😕 

 

 

I know, kind of a rookie mistake; you'd never know that I've been doing this for almost 20 years now. 😡

Edited by PacManPlus
  • Like 11

Share this post


Link to post
Share on other sites

Ah bummer - but hey better to have caught now vs later!  Id take the Thanksgiving weekend off and enjoy time with family - maybe in your Turkey coma you'll have a breakthrough thought :)

  • Like 3

Share this post


Link to post
Share on other sites
35 minutes ago, PacManPlus said:

So I did a stupid thing.

You’ve done so many amazing things that it ultimately doesn’t matter. :)

 

I’m certain the new insight will ultimate help produce an amazing result. In the meantime, load up on tryptophan, enjoy some time with family or friends for awhile. You’ve earned it. 

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, PacManPlus said:

Hi guys:

 

So I did a stupid thing.

As you all know, Defender has a 'planet' which is far wider than the screen.  Everything happens on the entire planet, whether or not the current 'window' position (i.e. the screen) is showing it or not.  There's no hard scrolling (like SMB or Bentley Bear, or Scramble for that matter - forced in a direction)...  The planet wraps around, in either direction.  The screen is just a 'section' of that planet.

 

Why state the obvious?  Because I worked on the screen (window) first... putting the enemies in the attract mode, etc...  Once I started working on the planet itself, I found that I'm putting 'band-aids' with regard to how the enemies are handled on/off the screen.

 

It's clear to me now I should have started with the planet placing the enemies and not the 'window'. :(  

 

So, I'll need to start a good portion of this over again, for the third time. 😕 

 

 

I know, kind of a rookie mistake; you'd never know that I've been doing this for almost 20 years now. 😡

Even as awesome as you are , you still make mistakes. 😉 

  • Thanks 1

Share this post


Link to post
Share on other sites

For all you do for this community, step away, relax, have fun with your family, enjoy the holiday, and don't worry about Defender for a while. It will be what (and when) it will be. Happy holidays!

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, PacManPlus said:

I know, kind of a rookie mistake; you'd never know that I've been doing this for almost 20 years now. 😡

Good thing I don't ever do that at work...

<my staff laughing hysterically in the background>

OK, well sometimes...  Infrequently, it can

<more laughing>

SHUT UP!!!

 

;-)

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites
3 hours ago, PacManPlus said:

I know, kind of a rookie mistake; you'd never know that I've been doing this for almost 20 years now. 😡

Each game is a new problem landscape, and iteration of the approach is going to happen as you learn the terrain. This is doubly true for arcade conversions, where you're striving to match the arcade experience on dissimilar hardware, and usually starting with a naive barebones test to ensure the display will work as intended.

 

If you didn't make bad turns in your designs, it would mean you're doing the same kind of game over and over again.

 

  • Like 6
  • Thanks 2

Share this post


Link to post
Share on other sites

Yeah; I think of code-rewriting as a normal part of the game development process. Although I can get frustrated sometimes when I have to rewrite code, I'm often left with a good feeling after I've done so ("Gosh, this is much less ugly than the way I was doing it before!").

  • Like 5

Share this post


Link to post
Share on other sites
9 hours ago, PacManPlus said:

I know, kind of a rookie mistake; you'd never know that I've been doing this for almost 20 years now. 😡

I get it.  I've been a professional programmer for 25 years and I can still totally botch a first round coding test interview.  Sigh.  Writes complex business algorithm one day, next day can't do a simple join/split example...

  • Thanks 1

Share this post


Link to post
Share on other sites

You have our support Bob!   We will wait and encourage you from the sidelines!   You are an amazing programmer and I know that you take pride in creating your games.   Thank you so much for sharing your progress with us.  

  • Like 6
  • Thanks 1

Share this post


Link to post
Share on other sites
On 11/16/2021 at 2:47 PM, PacManPlus said:

I started from scratch as I wanted to use 320B mode and I had an idea for the terrain (use 320A mode for that).

 

Hey Bob,

 

I was thinking that using 320A mode for the terrain then in that area it will not be possible to use 320B mode for sprites. However, since you are using 320B mode for sprites, it is possible to use 320D mode for the terrain.

 

The 320D mode has the advantage of being 1bpp (as 320A) and, for the terrain, it can be used (without combination restrictions) for momochromatic sprites / tiles, *only* with color C2 (PO C2 and P4 C2).

 

320D 1bpp can also be used for the star field for which you can use the colors C2 and C3, so for the stars you have 4 colors available from two palettes (320D and 320B share the same PO and P4 palettes).

 

 

1642693472_The320Dmode.thumb.PNG.4db0aa7d331fb09d2beee0a0175ffdf2.PNG

 

 

 

427982241_The320Dmodeb.thumb.PNG.dc0583366ad54e84a4080cbcd33fb814.PNG

 

Edited by Defender_2600
  • Like 3

Share this post


Link to post
Share on other sites

Hey Marco!

Thank you!

 

With that one, I'll have to see.  Right now, I'm only scrolling that last 8 zones (the ones that have the terrain in them).  Trying to save cycles ahead of time, as I know with the amount of enemies/shots on the screen and the things going on off-screen,  I'm going to need them.

 

When all of the enemy/shot movement is done, I'll revisit this and see what I can do.  I need to revisit the flashing color as well, so it matches the arcade.

 

Having said that, I was finally able to get the scanner done (also in 320A mode because of memory... but there will be different colors for the different enemies), and the enemies on the planet to reflect in the scanner (so there will be a WIP milestone video soon). :)

 

Bob

Edited by PacManPlus
  • Like 9
  • Thanks 1

Share this post


Link to post
Share on other sites

I never understood why Atari never applied this level of attention to detail in their conversions.  Defender probably wouldve been a nice addition to the 7800 even though it was an older title.  It didnt see alot of console release.

  • Like 4

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