Skip to content

Commit e9f5001

Browse files
committed
Update README.md
1 parent 4cf9047 commit e9f5001

File tree

1 file changed

+19
-24
lines changed

1 file changed

+19
-24
lines changed

README.md

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Gopher2600
22

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

55
<img src=".screenshots/crt_official_frogger.png" alt="gopher2600 showing Official Frogger with CRT effects"/>
66

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

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

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:
1212

1313
* CPU and Video stepping
1414
* 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
1919

2020
<img src=".screenshots/dear_debugger.png" height="400" alt="gopher2600's graphical debugger"/>
2121

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

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

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

2830
`Gopher2600` is in active development and feature requests are welcomed.
2931

@@ -33,19 +35,19 @@ A variety of screenshots from various points in the emulator's development.
3335

3436
<img src=".screenshots/barnstormer.png" height="200" alt="barnstormer"/> <img src=".screenshots/pole_position.png" height="200" alt="pole position"/> <img src=".screenshots/ateam.png" height="200" alt="ateam"/> <img src=".screenshots/he_man_title.png" height="200" alt="he man title screen"/>
3537

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
3739

3840
<img src=".screenshots/et_with_patch.png" height="200" alt="et with patch"/>
3941

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

4244
<img src=".screenshots/barnstormer_debug_colors.png" width="400" alt="barnstormer with debug colors"/>
4345

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

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

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

5052
<img src=".screenshots/pitfall_overlay.png" width="400" alt="pitfall with overlay"/> <img src=".screenshots/pitfall2_overlay.png" width="400" alt="pitfall with overlay"/>
5153

@@ -54,7 +56,7 @@ The second screenshot shows 'Pitfall 2' and we can see straight away that fewer
5456
The Stella project (https://stella-emu.github.io/) was used as a reference for
5557
video output. I made the decision not to use or even to look at any of Stella's
5658
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
5860
Fries' original TIASound.c file.
5961

6062
Many notes and clues from the AtariAge message boards. Most significantly the
@@ -94,16 +96,10 @@ The "Mostly Inclusive Atari 2600 Mapper / Selected Hardware Document" (dated 03/
9496

9597
Supercharger information from the Kevin Horton document above and also the `sctech.txt` document
9698

97-
## ROMs used during development
98-
99-
A variety of ROMs were used throughout development and compared with the
100-
Stella emulator for accuracy.
101-
10299
## Compilation
103100

104-
The project has most recently been tested with Go v1.14. It will not work with
105-
versions earlier than v1.13 because of language features added in that version
106-
(binary literals).
101+
The project has most recently been tested with Go v1.15. Earlier versions may work
102+
but v1.15 is recommended due to recent performance improvements.
107103

108104
The project uses the Go module system and dependencies will be resolved
109105
automatically. Do note however, that you will also require the SDL development
@@ -256,7 +252,7 @@ Scripts can be recorded and played back with the `SCRIPT` command. All commands
256252

257253
## Configuration Directory
258254

259-
Gopher2600 will look for certain files in a configuration directory. The location
255+
`Gopher2600` will look for certain files in a configuration directory. The location
260256
of this directory depends on whether the executable is a release executable (built
261257
with "make release") or a development executable (made with "make build"). For
262258
development executables the configuration directory is named `.gopher2600` and is
@@ -273,10 +269,9 @@ For Window, files will be in the user's `Application Data/gopher2600` folder
273269
In all instances, the directory, sub-directory and files will be created automatically
274270
as required.
275271

276-
### Supercharger ROMs
272+
## Supercharger ROMs
277273

278-
Gopher2600 can load from MP3, WAV recordings of supercharger tapes, in addition
279-
to supercharger BIN files.
274+
`Gopher2600` can load supercharger tapes from MP3 and WAV file, in addition to supercharger BIN files.
280275

281276
A copy of the BIOS file must be present. The file should be named:
282277

@@ -286,11 +281,11 @@ A copy of the BIOS file must be present. The file should be named:
286281

287282
The file can be placed in the current working directory or in the same
288283
directory as the supercharger ROM being loaded. Alternatively, it can be placed
289-
in the emulator's configuration directory.
284+
in the emulator's [configuration directory](#configuration-directory).
290285

291286
## Recording Gameplay
292287

293-
Gopher2600 can record all user input and playback for future viewing. This is a very efficient way
288+
`Gopher2600` can record all user input and playback for future viewing. This is a very efficient way
294289
of recording gameplay and results in far smaller files than a video recording. It also has other uses,
295290
not least for the recording of complex tests for the regression database.
296291

@@ -397,7 +392,7 @@ own Github repository: https://github.com/JetSetIlly/Gopher2600-Dev-Docs
397392

398393
## Other Software / Libraries
399394

400-
The following projects are used in the gopher2600 project.
395+
The following projects are used in the `Gopher2600` project.
401396

402397
* https://github.com/ocornut/imgui
403398
* https://github.com/inkyblackness/imgui-go

0 commit comments

Comments
 (0)