Bell Hopper
A Winterbells demake for the Atari 2600 (aka VCS).
Developed by Tomas "Tjoppen" Härdin.
Released at Assembly Summer 2011.
==================================================

Introduction
------------

This game was inspired by Ferry Halim's flash game Winterbells [1].
Like its predecessor, Bell Hopper is a game of collecting points by jumping off various objects.
Points are awarded for touching bells and the value of each bell increases with each one touched (10, 20, 30 etc.).
Touching a bird doubles your existing score, which becomes more important as the game progresses.
The game keeps track of the highscore, though not between power cycles.
Competing with your friends for the highest score is highly encouraged :)

Instructions (Windows)
----------------------

To start the game, double-click run.bat.
This will run the game using the bundled emulator (Stella 3.4.1).
You can also use an emulator of your choice,
in which case you should make sure it uses paddles for the left controller.

Instructions (Ubuntu/Debian or similar distro)
----------------------------------------------

Make sure Stella is installed. If not, then apt-get it:

$ sudo apt-get install stella

After that, simply execute run.sh.
For some reason the mouse doesn't work when running Stella in fullscreen mode.
Hence run.sh starts the game in windowed mode.
Note that this applies to version 3.1.2, which is that the APT repo had as of July 2011.
The problem may be fixed in 3.4.1.

Instructions (real hardware)
----------------------------

Either build your own cartridge or use a flash cart like Harmony.
Use the color/B-W switch to select controller type.
Color for paddles, B-W for joystick.

Note that there is no NTSC port as of yet.
I may port the game in the future - I've already taken steps in that direction.

Bankswitching type used: None (aka 2K4K).

Features/TIA tricks used
------------------------

The game sports the following notable features/tricks:

 * Support for either paddles or joystick control (toggle via color/B-W switch)
  - Paddle detection could have been used instead, but using a switch is less error prone
 * 12-digit score display via the "flicker blinds" technique
  - Looks great in both Stella and z26 and on real CRT TVs - presumably looks good on LCDs as well
 * Scientific notation for scores exceeding one trillion points, up to 9.99999999 * 10^99
 * Bells/bird drawn by P1 sprite, repositioned in the gaps between them
 * Six tree copies in the background, achieved by strobing RESP1 multiple times mid-scanline
 * Parallax scrolling background starfield made of playfield pixels

Tools used
----------

Here is a short list of the tools used during the making of this game:

 * Visual Studio 2008
 * DASM
 * Stella
 * Z26
 * GIMP
 * Kirk Israel's PlayerPal and PlayfieldPal [2;3]
 * git

Hardware used

 * An Atari 2600 (black "Darth Vader" model)
 * A Harmony cartridge

Deviation from the original
---------------------------

Being a demake, I've wanted Bell Hopper to be as close to the original as possible.
The original game is a pretty good fit for the platform, never having more than two objects in a row.
However, there were quite a few details that didn't make it either due to time or hardware limitations.
One of these things was music.
The reason is mostly the TIA's lack of tuned notes on the chromatic scale.
In other words, an attempt to recreate the music would sound awful.

I also experimented with background snow/stars using the Cosmic Ark starfield trick.
Unfortunately the trick stops working after each HMOVE, which means having to time the kernel extremely carefully.
There's also the issue of vertically scrolling the starfield, which seems unexplored in the community so far.
I chose instead to rely on a playfield based method for the stars.
The twinkling was an unintended consequence of how the kernel works, which I decided to leave in.

Known issues
------------

When falling down a bit and catching back up you may notice that bells that reapper from the top change position.
Birds may disappear or suddendly appear as well. This is a known consequence of how the game works.

The game hasn't been tested with a physical paddle controller.
I ordered one, but it has yet to arrive due to postal problems.
Therefore the calibration of the paddle may be a bit off.

The score will wrap around if the player manages to exceed one googol (10^100) points.

Thanks
------

Hyarion, for letting me borrow his "Darth Vader" 2600.
Everyone who playtested and provided feedback on the game.
All the helpful people on the AtariAge forums.

Greetings
---------

All brave people and groups who do not shy away from developing on the VCS.

About Stella
------------

This game is bundled with the 32-bit version of Stella 3.4.1.
Stella is an excellent Atari VCS emulator released under the GPL.
You can find its project page on SourceForge at [4].

Contact
-------

Mail, slightly obfuscated to avoid spam:
se . gamedev @ tjoppen

Links
-----

[1] http://www.ferryhalim.com/orisinal/g3/bells.htm
[2] http://www.alienbill.com/2600/playerpalnext.html
[3] http://www.alienbill.com/2600/playfieldpal.html
[4] http://stella.sourceforge.net/
