revision

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2023 License: GPL-3.0, GPL-3.0 Imports: 2 Imported by: 0

Documentation

Overview

Package revision handles/documents the differences in the TIA across different models of the Atari 2600.

There is a tremendous number of number of variations in the TIA chip and all are listed at the URL below.

http://www.ataricompendium.com/faq/vcs_tia/vcs_tia.html

Preferences defining the details of the TIA revision can be found in the hardware.preferences package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HeatThreshold

func HeatThreshold(scanline int) bool

HeatThreshold returns true if heat threshold is met. This is in no way an accurate simulation of heat. It simply emulates an increasing probability that the function will return true every time it is called.

Types

type Bug

type Bug int
const (
	// Late VDEL gfx: The setting of player graphics VDEL data and in the case
	// of GRP1, the ball enable delayed bit. It does not affect the writing of
	// the primary graphics data.
	//
	// For clarity the naming of these preferences refers to the register that
	// is being written. In other words, when GRP0 has been written to the
	// effect of the LateGRP0 option is seen in player 1 delayed gfx data.
	//
	// Example ROM: HeMan.
	LateVDELGRP0 Bug = iota
	LateVDELGRP1

	// Late RESPx: triggering of a REPSx happens a little later under certain
	// HMOVE condition.
	//
	// https://atariage.com/forums/topic/311795-576-and-1008-characters/?tab=comments#comment-4748106
	//
	// Example ROM: 36 char demos (36_Char_Interlaced_RESP0_cycle0).
	LateRESPx

	// EarlyScancounter: a pending scancounter will start a little earlier
	// under certain HMOVE conditions
	//
	// https://atariage.com/forums/topic/311795-576-and-1008-characters/?tab=comments#comment-4748106
	//
	// Example ROM: 36 char demos (36_Char_Interlaced_RESP0_cycle3).
	EarlyScancounter

	// Late PFx: The setting of the playfield bits happens a video cycle later
	// that it should.
	//
	// Example ROM: Pesco.
	LatePFx

	// Late COLUPF: Updating of playfield color register happens a video cycle
	// later than it should.
	//
	// Example ROM: QuickStep
	//
	// I am unsure if this applies to all color registers or just the
	// Playfield. For now, I'm assuming it is only the playfield color
	// register.
	//
	// This is implemented by delaying the servicing of the color register
	// until after the pixel color is selected.
	//
	// Some TIAs that are on the edge of tolerance can also exhibit this
	// behaviour when the TIA is embedded in another device, such as an RGB
	// mod. Explanation of how this can happen:
	//
	// https://atariage.com/forums/topic/307533-atari-rgb-light-sixer-repair/?do=findComment&comment=4559618
	LateCOLUPF

	// In some TIA variations, a HMOVE clock during the non-HBLANK period will
	// cause the regular tick signal to phase out when the sprites HMOVE
	// required flag is set.
	//
	// Example ROMs: Cosmic Ark (starfield) and the barber pole test ROM (barber.a26)
	//
	// An image of the effect on Cosmic Ark can be seen here:
	// http://www.ataricompendium.com/faq/vcs_tia/vcs_tia_cosmic_ark_2.jpg
	LostMOTCK

	// RESPx on HBLANK threshold: the delay when resetting player position is
	// affected by the state of HBLANK. some TIA revisions seem to react even
	// later to HBLANK being reset.
	//
	// This phenomenon seems to be affected by operating temperature. the
	// HeatThreshold() function provides a rudimentary emulation of this.
	//
	// Example ROM: 2/3 sprite demo (labelled bin00004.bin)
	//
	// https://www.biglist.com/lists/stella/archives/199901/msg00089.html
	RESPxHBLANK
)

func (Bug) Description

func (bug Bug) Description() string

func (Bug) NotableROM

func (bug Bug) NotableROM() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL