Skip to content

Releases: JetSetIlly/Gopher2600


14 Jun 17:30
Choose a tag to compare

Changes from v0.31.0

  • Bug Fix (Windows): ROM selector could not step out of the installation folder

I've also noted that the ROM Selector does not currently support volume (drive letter) selection on Windows. I'll add a solution to that in a future release, after some more research/experimentation.


11 Jun 19:06
Choose a tag to compare

Changes from v0.31.0

I forget to bump the version number in the Makefile before release, so the title bar will say "v0.32.0 pre-release". I'm not changing it. The next version will be released soon enough.

  • Improvements
  • Artefact free rendering
    • The old method of chaining GLSL shaders added visible artefacts on screen in some instances. This has been fixed
  • ROM Select Window
    • Mouse wheel works correctly in ROM Select window when in playmode
    • Improved responsiveness
  • Added mappers for prototype ROMs:
    • WF8 (Smurf and Zaxxon prototypes)
    • JANE (Tarzan prototype)
  • Magnify window/tooltip uses current TV colours
  • Global cycle regulator for ARM
  • Comparison mode includes a comparision of the two audio streams
  • Regression database now keeps a list of failed tests
    • LIST and REDUX both now accept keys to work on (as opposed to working on all keys)
    • RUN, LIST and REDUX can use FAILS as a key to limit action to previously failed tests
      • eg gopher2600 regress list fails
    • REDUX now has a -dryrun option
    • Also triggered on ctrl+alt+m
    • Memory usage in FPS overlay (optional)
  • Compile time option to include Statsviz monitoring
  • Television Improvements
  • Screen size dimensions fixed at a ratio of 4:3
    • Generated image will always be squeezed into the 4:3 aperture
  • Improved VSYNC and synchronisation options
  • Minimum refresh rate for TV reduced to 45Hz
    • The previous higher rate prevented some PAL ROMs from ever achieving synchronisation
    • This will affect any ROMs you may have in the regression database. Use regression REDUX to rebuild database
  • Corrected horizontal scan rate values. Used to caculate refresh rate
    • This affects PAM and SECAM. NTSC and PAL-M were already correct
  • Other Changes
  • "Motion" screenshots now called "Flicker"
    • Better indication of the conditions when the method is appropriate
    • "Composite" and "Single" methods unchanged
  • PAL-M always referred to as PAL-M (and not PALM)
  • added options -playbackIgnoreDigest and -recordFilename to RUN mode
  • Bug Fixes
  • ARM Cycle Counting was incorrect in v0.30.0
    • Memory latency was calculated incorrectly
  • Screen would sometimes not be updated in playmode if refresh rate of emulated TV was higher than the monitor
  • Rewind for binary Supercharger files was incorrect
    • Caused application to deadlock if ROM was rewound towards the very start of execution


05 May 16:36
Choose a tag to compare

Changes from v0.30.1

  • Television
  • Added colour controls
  • Improvements
  • Logging is less noisy
  • Less memory churn from ARM emulation
  • Bug fixes
  • ROM selection works again on Windows
    • bug introduced in v0.30.0
  • Fixed loading of ELF and ACE wrapped ELF files
  • Frame Queue Length initialised correctly on first use

The last bug fix is a very important fix. Previous to this version, the frame queue was initialised to be zero length on first use. Unless the user had changed this in the preferences window (unlikely) then the display would likely be very choppy. This would create a very bad impression of the emulator.

If you've been disappointed in Gopher2600 in the past, then this version may very well improve your experience.


29 Apr 17:49
Choose a tag to compare

Changes from v0.30.0

Improvements / Fixes

  • ROM selection window could stall the GUI if there were a large number of files in the directory. Directory reading is now asynchronous and solves the problem
  • Rewinding could cause the TV screen to resize with some ROMs. The size would always settle correctly but the one or two frames of incorrect size was visually jarring and unnecessary. Fixed


17 Apr 16:44
Choose a tag to compare

Changes from v0.29.1

  • ZIP file support
  • ROM Selection window can navigate into zip files
  • ARM Additions
  • Profiling can now be viewed as 'cycles / call'
    • this shows the relative performance of a single call to the program's function
  • Distinguishes between memory alignment requirements for different ARM architectures
    • ARMv4 doesn't allow misalignment at all and will access an aligned address instead
    • ARMv7 does allow misalignment depending on the instruction
    • recent versions of Gopher2600 incorrectly assumed a ARMv7 architecture, which leads to incorrect Harmony emulation
  • Misaligned memory accesses optionally treated as memory faults
    • when enabled misalignment is reported in the memory faults window
    • and will cause execution to abort if Abort of Memory Fault option is enabled
  • Strobing of local variables in local variables window
    • also accessible through context menu in static memory window
  • ARM Corrections / Bug Fixes
  • Static memory window performance improvement
  • ASR disassembly corrected
  • COPROC ID corrected
  • 32bit EOR (register) instruction
  • Allocation of instruction to source lines uses EndSequence flag in DWARF line entry
    • this improves startup time and removes trailing instructions from functions
  • Disassembly of 32bit instructions
    • instructions following a 32bit instruction had the wrong address
  • More accurate identification of VCS "kernel" in which ARM code is being executed
  • Other Bug fixes
  • Fixed supercharger mutliloading for 'fastload' binaries
  • PlusROM network transmission
  • Corrected reflection of HMOVE information
    • a new HMOVE would be noted in the reflection overlay but it would never be cleared
  • Other Changes
  • Notification icons and FPS window
    • ARM developer icon moved to the FPS overlay
    • FPS window now shows multiple icons if required
  • Mouse wheel works for rewinding in the debugger
    • moves in 10 frame increments. hold shift-key for single frame increments

NOTE: Compilation of Gopher2600 from source now requires Go v1.22.0 or above


13 Mar 15:19
Choose a tag to compare

Cycle alignment for JSR instruction was broken as of v0.27.0. This release fixes that.

The only known side-effect of the bug was a ball positioning bug in the Worm Whomper demo (by Manuel Rotschkar)


25 Feb 19:44
Choose a tag to compare

Changes from v0.28.0

  • GUI
  • Television
  • PAL-M now generates NTSC colours rather than PAL
  • Better framing of image
  • Other
  • Emulator responds to HUP signal by reloading the current cartridge
  • CoProcessor (ARM) Registers window now works with CDFJ and DPC+
  • Global and Local variables can now be filtered
  • Freetype rendering is no longer used in the default builds
  • Bug fixes
  • Misbehaving ARM programs could cause a crash by accessing memory addresses that aren't represented in the emulation
  • Requesting multiple composite screenshotting could cause deadlocks
    • If screen size changed between requests then the compositing process deadlocked
  • Paddle movement with the stelladaptor was inverted
    • Bug introduced in v0.28.0
  • CPU in KIL state did not tick the TIA and RIOT
  • Moviecart
    • ROM would crash if moviecart volume control was increased to the maximum
    • Brightness control moved in incorrect increments
    • OSD display was affected by brightness level


10 Jan 18:48
Choose a tag to compare

Changes from v0.27.0

  • Paddles
  • User input handled more frequently meaning finer paddle control
  • Moviecart
  • Improved behaviour of video/audio when the movie is rewound to the start/end of the video
    • this reflects recent changes in the real Moviecart kernel
  • Automatic setting of TV specification now works
    • Format of movie cannot be detected until after movie starts
  • Television
  • Setting the TV mode also changes the underlying clock speed of the console
    • PAL and SECAM run at different speeds to NTSC machines
  • Added PAM-M
    • this sets the clock of the machine to PAL-M but attached to a PAL TV
  • Bug fixes
  • Stepping back in the debugger
    • bugs introduced in v0.26.0
    • stepping back by one instruction was out by one colour clock
  • Improved detection of correct starting bank for Atari cartridges
    • also affects EF cartridge
    • the technique can be expanded to other mappers if required
  • Rewind/Fast-Forward icon never appeared on screen
    • bug introduced in v0.25.0
  • ARM TIM1 enabling was not working
    • the enable bit was not being masked correctly
  • Capturing of emulation state (for the rewind system) was sometimes missed in playmode


27 Nov 09:01
Choose a tag to compare

Changes from v0.26.2b

  • Versioning
  • Window title shows the current version number
  • executing from the command line with "version" will display the version number
    • the -v flag outputs the git revision
    • eg gopher2600 version -v
  • VERSION command available in the debugger terminal
  • Bankswitching
  • Implemented UA mapping scheme
  • CRT Effects
  • Improved bevel effect
  • Improved noise implementation, which is now part of the interference effect
  • Added flicker effect
  • Debugger
  • LAST command correctly shows partial disassembly when running in CLOCK quantum
  • Added CYCLE quantum
  • 6507 Disassembly
  • Improved disassembly when decoding previously unseen instructions
  • Renderer
  • Added simplified renderer targeting OpenGL2.1
  • Executable must be compiled to use this alternative renderer
  • New renderer does not support CRT effects or screenshots
  • Principle reason for addition is to support the Raspberry Pi
  • Bug fixes
  • Fixed crashes caused when the program window was resized so that it was too small
    • this only affected some debugging windows (eg. the disassembly window)


04 Nov 09:47
Choose a tag to compare

Changes from v0.26.1

  • MovieCart
  • Timecode rendered correctly when movie is rewound to beginning
    • This also removes visual artefacts visible at the bottom of the movie image
  • Controls now match the reference implementation