You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-24Lines changed: 19 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Gopher2600
2
2
3
-
Gopher2600 is an emulator for the Atari 2600. Whilst the performance is not as efficient as some other emulators it is none-the-less suitable for playing games, on a reasonably modern computer, at the required 60fps. (The development machine for Gopher2600 has been an i3-3225, dating from around 2012.)
3
+
`Gopher2600` is an emulator for the Atari 2600. Whilst the performance is not as efficient as some other emulators it is none-the-less suitable for playing games, on a reasonably modern computer, at the required 60fps. (The development machine for `Gopher2600` has been an i3-3225, dating from around 2012.)
4
4
5
5
<imgsrc=".screenshots/crt_official_frogger.png"alt="gopher2600 showing Official Frogger with CRT effects"/>
6
6
7
7
The accuracy of the emulation is very high although this is difficult to prove. Certainly, there are no known outstanding issues in the TIA or RIOT.
8
8
9
9
The 6507 emulation is also very accurate although, at the time of writing, not all undocumentated opcodes are implemented. That said, the emulation method used for the CPU means adding a missing opcode is trivial.
10
10
11
-
The emulator also comes with a powerful graphical debugger. This is still in active development with many planned additional features but currently it features:
11
+
The emulator also comes with a powerful [graphical debugger](#debugger). This is still in active development with many planned additional features but currently it features:
12
12
13
13
* CPU and Video stepping
14
14
* Breakpoints, traps, watches on various CPU, TIA, RIOT targets
@@ -19,11 +19,13 @@ The emulator also comes with a powerful graphical debugger. This is still in act
In addition to the debugger, `Gopher2600` can record and playback gameplay sessions. This powerful feature efficiently records user input to a text file, suitable for passing along to other people for viewing.
22
+
In addition to the debugger, `Gopher2600` can [record and playback gameplay sessions](#recording-gameplay). This powerful feature efficiently records user input to a text file, suitable for passing along to other people for viewing.
23
23
24
-
The gameplay playback feature is also used in the inbuilt "regression database". This database allow for easy testing of the emulator's integrity and was of invaluable use during development of the emulator. This feature will also be of use perhaps when developing new ROMs for the Atari 2600 - a way of recording the ideal output of the ROM for future comparison.
24
+
The gameplay playback feature is also used in the inbuilt [regression database](#regression-database). This database allow for easy testing of the emulator's integrity and was of invaluable use during development of the emulator. This feature will also be of use perhaps when developing new ROMs for the Atari 2600 - a way of recording the ideal output of the ROM for future comparison.
25
25
26
-
The Atari 2600 comes with a variety of hand controllers and `Gopher2600` does it's very best to automatically select the correct input device. This is an feature that will be expanded on greatly in the future but currently joysticks, paddles and keyboard are all supported.
26
+
The Atari 2600 comes with a variety of [hand controllers](#hand-controllers) and `Gopher2600` does it's very best to automatically select the correct input device. This is an feature that will be expanded on greatly in the future but currently joysticks, paddles and keyboard are all supported.
27
+
28
+
`Gopher2600` supports a variety of cartridge formats including [Supercharger](#supercharger-roms) from MP3 or WAV files. It supports `DPC+` format although there is no support for the ARM as yet. Most other formats are also supported.
27
29
28
30
`Gopher2600` is in active development and feature requests are welcomed.
29
31
@@ -33,19 +35,19 @@ A variety of screenshots from various points in the emulator's development.
33
35
34
36
<imgsrc=".screenshots/barnstormer.png"height="200"alt="barnstormer"/> <imgsrc=".screenshots/pole_position.png"height="200"alt="pole position"/> <imgsrc=".screenshots/ateam.png"height="200"alt="ateam"/> <imgsrc=".screenshots/he_man_title.png"height="200"alt="he man title screen"/>
35
37
36
-
The following screenshot shows the fabled `ET` ROM. In this case the ROM has been patched to fix some notorious issues with the original game. Notice, the colour of ET and how he is standing in front of the pit? The patches in question were taken from http://www.neocomputer.org/projects/et/ and automatically applied. Auto-patching of ROMs is a feature of the emulator
38
+
The following screenshot shows the fabled _ET_ ROM. In this case the ROM has been patched to fix some notorious issues with the original game. Notice, the colour of _ET_ and how he is standing in front of the pit? The patches in question were taken from http://www.neocomputer.org/projects/et/ and automatically applied. Auto-patching of ROMs is a feature of the emulator
37
39
38
40
<imgsrc=".screenshots/et_with_patch.png"height="200"alt="et with patch"/>
39
41
40
-
The next three images show the "TV screen" of the graphical debugger in various states. In the first screenshot, we see `Barnstormer` with the "debug colours" turned on. This idea was taken from the Stella emulator and indeed, these are the same colours used in that emulator. Unlike Stella however, we can also see the off-screen areas of the tv image, and in particular, the sprites as they "appear" off-screen.
42
+
The next three images show the "TV screen" of the graphical debugger in various states. In the first screenshot, we see _Barnstormer_ with the "debug colours" turned on. This idea was taken from the Stella emulator and indeed, these are the same colours used in that emulator. Unlike Stella however, we can also see the off-screen areas of the tv image, and in particular, the sprites as they "appear" off-screen.
41
43
42
44
<imgsrc=".screenshots/barnstormer_debug_colors.png"width="400"alt="barnstormer with debug colors"/>
43
45
44
46
The next two screenshots show the `Gopher2600's` overlay feature. An overlay is a way of adding information to the TV screen with the aim of helping the debugging process.
45
47
46
48
The first screenshot shows the `WSYNC` overlay. This overlay shows us graphically the scanlines on which WSYNC has been triggered. In Atari 2600 programming terms, the WSYNC is a way of synchronising the CPU with the TIA. The downside of the WSYNC is that CPU cycles are wasted - something that is not always obvious when looking at the ROM's assembly.
47
49
48
-
The second screenshot shows 'Pitfall 2' and we can see straight away that fewer CPU cycles are wasted, simply by the shorter and less frequent blue bars extending to the right of the screen.
50
+
The second screenshot shows _Pitfall 2_ and we can see straight away that fewer CPU cycles are wasted, simply by the shorter and less frequent blue bars extending to the right of the screen.
49
51
50
52
<imgsrc=".screenshots/pitfall_overlay.png"width="400"alt="pitfall with overlay"/> <imgsrc=".screenshots/pitfall2_overlay.png"width="400"alt="pitfall with overlay"/>
51
53
@@ -54,7 +56,7 @@ The second screenshot shows 'Pitfall 2' and we can see straight away that fewer
54
56
The Stella project (https://stella-emu.github.io/) was used as a reference for
55
57
video output. I made the decision not to use or even to look at any of Stella's
56
58
implementation details. The exception to this was a peek at the audio
57
-
sub-system. Primarily however, Gopher2600's audio implementation references Ron
59
+
sub-system. Primarily however, `Gopher2600's` audio implementation references Ron
58
60
Fries' original TIASound.c file.
59
61
60
62
Many notes and clues from the AtariAge message boards. Most significantly the
0 commit comments