Wednesday 28 September 2016

Atari 8 bit is real too

newly arrived today (I had an 800XL back when they were leading edge)

Atari 130XE


Tuesday 27 September 2016

Atari 2600 denial '77 release notes

The first product of my retro programming project is (almost?) done.

denial '77 (Atari 2600)

denial '77 (NTSC)
denial '77 (PAL)


PAL mode (50Hz) has been tuned separately from NTSC but is still probably a little easier than NTSC or PAL60 (maybe I should create NTSC55 & PAL55 and split the difference?)

If no obvious problems are found, this will be the final (or at least initial final :) version).

The game is loosely modelled on Space Zap, an arcade game from 1980.

setup

Left player difficulty sets game difficulty
Right player difficulty sets starting level (1 or 14)
Reset or joystick button to start.

gameplay

You're protecting the base in the centre, move the joystick in the direction you want to fire.
The base heats up when you fire, changing colour and expanding. The base firing rate slows as the base heats up.
The base also heats up when hit. It's game over if the base hit when it is overheated.
The level number is the only scoring mechanism.

scores

If anyone tries it out I would be interested to know what level you attain - and whether it was using an emulator or real hardware, easy or hard, 60Hz or 50Hz.

waffle

This was always intended to be my warm-up game as I returned to Atari 2600 programming after a 14 year hiatus.
It is lacking some polish generally found in modern 2600 games (separate title screen, option screen, more detailed scoring, game over screen, multiple chances etc.). Maybe it's more like a quick and dirty cash-in game from 1978 :)
Part of me wants to go back and make it "the best it can be" and fix some of the "naive coding choices", but another part of me says I have other games I want to do on the 2600 and the Atari 8 bit (and other platforms) so this is probably it for this game.

Monday 26 September 2016

another reason to delay - eBay AV 2600 arrival

The Atari 2600 Jr. with AV conversion which I bought on eBay arrived today. Of course I set this up for testing instead of finishing denial '77 - any excuse for delay :)

Well, it certainly generates an AV signal rather than the RF signal. Unfortunately it is not the correct signal.
This was tested on 4 TVs using 3 different display technologies (CRT, plasma, LCD) and was consistently wrong on each one.

The new eBay purchased 2600 + AV (photograph of plasma TV with phone camera) - the image produced is more stable than the RF one but most of the colour information is missing.

Most of the colour luminance information seems to be missing. Rather than providing a range of luminance in each colour it produces a single luminance, white and black for each colour.



crappy display, but at least the colours are correct
My other RF connected 2600 (photograph of plasma TV with phone camera) - the image produced is not as good as I would like, but at least all of the colours are produced.
perfect emulator version for comparison - sadly the real version will never look this good :)

future planning - space car '78...

instead of finishing the warm up game denial '77 (hopefully finished this week) I've been thinking about later parts of the project

other games planned to some level

Atari 2600
next game: space car '78 (Atari 2600)
the other next game: unnamed '78 (Atari 2600)
(maybe) endless / auto runner

Atari 8 bit
(theme) responsibilities - balancing the responsibilities of life
(genre) up screen shooter
(genre) horizontal shooter
(genre) dungeon crawler / shooter
(genre) endless / auto runner
(genre) platform
... does the Atari 2600 driving controller work here (quite likely)

Mega Drive
... no real plans yet, just know I want to do this one

Uzebox
interesting new platform under consideration Uzebox...

new hardware MIST which could be used for the project...

new platform candidate... Uzebox

not technically a retro platform but … The Uzebox is a retro-minimalist homebrew game console...

Friday 23 September 2016

denial '77 alpha 4 binaries

denial '77 alpha 4 (NTSC) autoplay
denial '77 alpha 4 (NTSC) manual

Transition between title mode and game mode not yet implemented so here's one in each mode.

Can now destroy attacking enemies.
Fine tuning of attack timing, overheating, base firing etc. underway.

Monday 19 September 2016

denial '77 alpha 3 binaries

Well, I worked out why Stella was having problems - it all came down to the initial state of the emulated machine. Both the z26 emulation and the real Atari initialised the memory / registers into a more benign state. Yes I had introduced a bug into my startup code. Fixed.

denial '77 alpha 3 (PAL)
denial '77 alpha 3 (NTSC)

platform rationalisation

It's not too surprising, but I am now questioning the likelihood of getting to all of the previously mentioned platforms...

They all are interesting to me for various reasons, but now that I have been working on this for a few weeks the relative desire to work on these platforms has been changing.

still highly motivated

  • Atari 2600
  • Atari 8 bit (800XL...)
  • Mega Drive
a little less motivated
  • TRS-80
  • Vectrex
  • Commodore 64
  • Neo Geo
not so much anymore
  • VIC-20
  • Atari ST
  • Amiga
  • Super Nintendo

Sunday 18 September 2016

denial '77 alpha 2 binaries

Lots of experiments, lots of "it's not quite working and I don't want to go to a 2 line kernel here just yet" moments. Still learning :)

Added auto-play for title / attract mode.
Next: enemy attack logic

This version seems to cause problems for Stella (and the previously mentioned javascript emulator)...

denial '77 alpha 2 (PAL)
denial '77 alpha 2 (NTSC)

RAM used: 63 bytes (65 remain)
ROM used: 2035 bytes (2061 remain)

Thursday 15 September 2016

first 5 a.m. finish yesterday

couldn't sleep - tried programming instead - threw most of it away - learned stuff along the way
gratuitous alpha screenshot

javascript Atari 2600 Emulator

Atari 2600 Emulator
load Atari ROMs from disk, or drag & drop files and links

this works well, but maybe not quite as accurate as z26 or Stella

Monday 12 September 2016

vague non-committal update #1

Atari 2600 game 1


  • title: denial '77 (a simple game inspired by 1980 arcade game Space Zap)
  • sound effects tested - sound ugly, but I know how to make sounds now :)
  • all critical graphic objects now working with some screen draw cycles left over so may add some more details
  • enemy 'AI' underway

Future games...

Several partially formed ideas have bubbled up for future games in this project
  • Atari 2600
    • title: responsibility (...)
    • title: crushing despair (I know, fun right...)
    • something using a driving controller as one came with 2600 I bought last week - maybe a driving game, or a super hectic auto-firing shooter
  • Atari 8 bit
    • some sort of endless runner (nice smooth scrolling features in these machines)
    • derivative vertical / horizontal shooter
    • derivative platformer
    • does the Atari 2600 driving controller work here?
  • C64
    • maybe one or more of the same games as the Atari - interested to contrast the approaches to the same problems
  • TRS-80
    • denial '77 remake denial '78
    • arcade variant of daleks?
    • will need to look at some old TRS-80 games for ideas about what works well

Saturday 10 September 2016

Tuesday 6 September 2016

it's all starting to get real :)

After reaching a technical milestone I decided that I really want to be able to run the code on a real 2600.

It took a bit of hunting before I found a working 2600 at a price I was willing to pay. Various were found ranging from $10 (parts only) to $399 (wonderfully presented, but $399 !).

In the end I found a 4 switch woody with 3 joysticks (including one of the awful original ones which still works) and a driving controller (untested but hopefully working), and a new power supply (+ the frayed cord original one) for less than $100.

Well, maybe 3 ½ switch as the game select switch is broken and needs a screwdriver or similar to reach - but it does work.

4 switch woody + Cuttle Cart

Atari 2600 resources

some places I found information

VCS Programming
2600 Cookbook
2600 Programming For Newbies

Monday 5 September 2016

Ooh look another track over there...

Even before finishing the first Atari 2600 game, which is already counter to the original plan, another 2600 game idea has appeared nearly fully formed...

A (fun?) game about balancing the various responsibilities of life :)

When will I manage to get onto the next platform?

why Atari 2600?

from Atari 2600 homebrew (Wikipedia)

"The Atari 2600 is generally considered to be a very demanding programming environment, with a mere 128 bytes of RAM available without additional hardware, and no video frame buffer at all. The programmer must prepare each line of video output one at a time as it is being sent to the television. The only sprite capabilities the 2600 offers are one-dimensional 1-bit and 8-bit patterns; creating a two-dimensional object requires changing the pattern between each line of video."

Atari 2600 progress...

A week has passed, there has been no coffee, and several glasses of wine and beer - yet the coding continues, so I guess coffee is not a definite requirement :)

I wasn't sure about the timing of the middle 16 lines of the screen but all of the core graphical artifacts are working without too much cycle counting (just a little code rearranging and moving bits code out of their logical location to be executed on the previous scanline etc.)


work-in-progress screenshot

Using 45 bytes of RAM (being quite carefree here - 10 extra bytes used in just 1 week!) and 1310 bytes of ROM (so 83 bytes of RAM and 2786 of ROM left to implement AI, gameplay, and a title screen...)