Releases: JetSetIlly/Gopher2600
v0.19.2
Changes from v0.19.1
- CRT effects
- added bevel and shine option
- both disabled by default
The rounded corners option was added in v0.19.1 but on its own it's not very effective. Applying the bevel and the shine option completes the effect. More control to both these options will be added in the future.
v0.19.1
Changes from v0.19.0
- Makefile
- Apple Macs with an ARM chip will no longer use freetype font rendering
when built with the build or release targets- see issue #19
- Display
- changed relationship between the frame rate limiter and monitor
synchronisation. this may result in a performance improvement on some systems- uncapped FPS no longer uses input buffer. this resulted in choppy visuals
- fixed visual bug seen when switching from playmode to the debugger when
one or the other mode had a "maximised" window
- TIA
- missile sprites were not plumbed to player correctly after gameplay
rewinding. this affected missiles that rely on RESMPx for positioning
- Rewind
- joystick and gamepad controllers resume from a neutral position after
gameplay rewind
- ARM Developer
- statistics more carefully collated during rewinding to avoid spikes in
the data
- CRT effect
- added rounded corners option
As of this version I will no longer be compressing the linux/amd64 version with UPX
v0.19.0
Changes from v0.18.0
- small performance improvements
- uncapped frame rate increase
- 16% to 18% (6507 only ROMs)
- 13% to 16% (a typical ARM ROM)
- change of WAV implementation
- this affects the loading of Supercharger tapes
- and the recording of audio to disk
- neither should be noticeable changes
v0.18.0
Changes from v0.17.0
- ARM Developer
- debugging window added for global variable inspection
- collision detection of ARM stack with program variables
- static areas window improved
- clearer indication of memory addresses
- labeling of named variables in memory
- performance window improved
- raw ARM cycle values in addition to percentile values
- kernel focus (VBLANK, Visible Screen, Overscan)
- performance relative to frame
- access of address 0x00 is treated as illegal (probably null dereference)
- visualisation of CDF streams
- VCS RAM and Cartridge RAM Window
- indicates labeling of addresses (using ASM symbol file)
- illustration of 6507 stack usage
- Peripherals
- choice of attached peripheral can be overriden on startup
- TIA bug fixes
- corrected missile reset to player position for double-width player
- Savekey/Atarivox
- EEPROM window (savekey data) works correctly for AtariVox
- Debugger
- BREAK NONEXE to halt execution on 6507 execution if PC address is not in the Cartridge or RAM areas
- Debugger GUI
- better window management in the debugger
- window state (open/close) saved between sessions
- Playmode GUI
- non-integer scaling reintroduced - improved scaling method to avoid uneven scanlines
- bugfix (Windows and MacOS)
- window repainted during window resizing meaning better visual feedback for the user
- audio can be muted (could already be muted in the debugger)
- state of FPS overlay will carried over between sessions
- "active" pause screen readded as an option (in the prefs window)
v0.17.0
Changes from v0.16.0
- ARM Developer
- requirement for .obj and .map files replaced with DWARF data
- performance and source windows improved
- ARM
- improved accuracy of T1TC timer
- cycle counting corrected (by one color clock) on CALLFN exit
- clock speed definable
- AtariVox
- added support for AtariVox
- currently only supports Festival for voice synthesis
- missing some AtariVox sounds and effects
- 6507
- all 256 opcodes implemented
- SaveKey
- removed (small) performance bottleneck
- PlusROM
- update network headers to emulate firmware >= v2.1.1
- GUI
- default Dear Imgui font replaced with JetBrainsMono
- font size definable
- Documentation
- Usage documentation now in wiki
https://github.com/JetSetIlly/Gopher2600-Docs/wiki
v0.16.0
Changes from v0.15.0
ARM
- added support for obj and map files for ARM based ROM projects
- requires that obj and map file to be created as part of
the ROM file's compilation process- see https://github.com/JetSetIlly/Adventureland-2600 for example
of a project setup for this- added source code, performance and illegal access window. for ROMs
where obj and map files are available- fixed: crash was possible if cart was changed from ARM to non-ARM when
coprocessor disasm window was open - a race condition with the "lazy
data" system
6507
- zero-page indexed addressing causes phantom read correctly
- this corrects the read values of the TIA registers (collision
registers etc) when read with a zero-paged indexed instruction- other addressing modes already caused correct phantom reads
RIOT
- port B is now writable from the CPU
Debugger GUI
- ports window replaces chip registers window
- timer window improved. fixed bug in ticks remaining display and added
TIMINT field- disassembly window improvements
- peripherals window replaces controllers window
- 6507 Pinout window showing the state of the address and data bus on
any given color clock
Television
- audio will always play regardless of frame stability
- an extra condition testing for stability on startup meant that
some ROMs never outputted sound if they never reached stability.
this rarely matters but it affected the tunabit demo ROM in
particular- added 'Sync On Power' CRT option
- this will cause the screen to roll on startup
RIOT/Peripherals
- VBLANK latch bit applies only to INPT4 and INPT5
- added support for Genesis controllers
- automatic detection of controllers (using Stella fingerprints)
Cartridge Formats
- added support for EF (with or without superchip)
- cartridges with superchip now respond correctly to phantom memory
accesses (causing phantom writes in some cases)- tigervision (3F) now uses the correct method of switching banks
- missing Supercharger BIOS handled gracefully
Bots (WIP)
- added rudimentrary support for bots capable of playing ROMs
independently. still a WIP but example bots for spacejockey and video
chess have been implemented
ROM Comparisons (WIP)
- two ROMs can now be run in parallel and the output compared and
differences highlighted. very specialist use and probably not of much
interest
Removals
- linter. existing version was unused and underdeveloped. will
reimplement in the future
v0.15.0
= Changes from v0.14.1 =
switch between playmode and debugger
- using the ` key (immediately below the escape key)
ROM selector
- shows emulated/animated thumbnail for all ROMs
television
- better screen roll
- black level adjustment
- RF interference effect
audio
- new sound engine based on the work of Chris Bremmer
- more reliable buffering of audio. better tolerance of small frame drops
- audio tracker and piano keys window (Tools menu in the debugger and F9
hotkey in playmode)
debugger
- timeline window
- much faster rewind system. in particular, moving the emulation by
clicking on debugging screen is a lot more fluid
playmode
- rewind in playmode
- using mouse wheel or shift-arrow-keys
- playmode will drop to debugger on breakpoint, trap or watch (condition previously set in debugger)
temporarily removed
- gameplay recording and playback
- active pause screen
v0.14.1
= Changes from v0.14.0 =
Support for right-side player joystick
v0.14
= Changes from v0.13 =
Performance
- General performance improvements
- Using the development platform as a reference, uncapped
performance is approximately 10% higher
Television
- Fixed playfield smoothscrolling. VSYNC count not being reset
correctly. (Bug introduced during a refactor between v0.12 and v0.13)
Supercharger
- Better WAV/MP3 decoding.
Moviecart
- Updated to new core.bin of parent project
Playmode
- Notification icons for cartridge event
- Cassette icon for Supercharge audio files
- Network icon for PlusROM network activity
- Savekey inserted notification icon
Audio
- Stereo mixing with stereo separation option
- More accurate volume mixing for mono signal
Preferences
- All preference options are in a single window
- Categorised by tabs
- Hotkey for the preferences window in playmode is F10
v0.13
= Changes from v0.12.1 =
ARM7
- Counting of PC access no longer assumed to be in Flash or MAM. Can be in SRAM too
- Counting of data access no longer assumed to be in SRAM
- MAM estimation improved
- ARM7 disassembly window shows cycle profile
- "Immediate Mode" option added (mimicking Stella's mode of operation)
- "Abort on Illegal Memory Access" option. Ends ARM program prematurely. Will log illegal access in all instances.
ARM7 corrections
- bug in LDMIA if base register was part of the load
- format 15 CMP instruction did not set status flags correctly
ARM7 model selectable
- Models supported: LCP2000, STM32F407VGT6
- Memory map only. Other performance characteristics might be different
- Work in progress: change through config file
Debugger/Disassembler
- Disassembly path detection improved
- Corrected use of read symbols used in disassembly. Write symbols were
used in error in some situations.
MNetwork (E7) fingerprinting accuracy
TV
- CRT ghosting now only applied horizontally
- settings for ghosting in CRT preferences
- Frame size detection less aggressive
- Screen roll sensitivity preference
Multiple gamepads/sticks supported
- All control player zero currently
- Other players will be supported once a suitable mechanism for
allocating controllers has been settled on
TIA/RIOT corrections
- playfield region now longer relatches if PF0/PF1/PF2 is updated
- refined RESPx under HMOVE (TIA revision dependent)
- RIOT timer boundaries
Playmode is pausable
Debugging screen break menu fixed