Releases: JetSetIlly/Gopher2600
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
v0.12.1
= Changes from v0.12 =
ARM improvements
- MAM now differentiates between mode 1 and 2
- Set according to cartridge mapper (ie. DPC+ or CDF*)
- ARM related preferences changed to reflect new MAM emulation
- Counting of conditional branches corrected
- Disassembly shows unstretched cycle counts (rather than stretched)
TV will now longer resize if the frame is unsynced
v0.12
= Changes from v0.11 =
Performance improvements
- With the Linux binary on my development machine
- Typical 2600 ROM: about 9% improvement
- ROM using the ARM coprocessor: about 20% improvement
CRT improvements
- CRT sharpness control
- Scanline and ShadowMask coarseness controls
- Bilinear filter. Improves emulation of brick effect in Zookeeper
- Sizing of playmode screen is now limited to whole integers
- This prevents color banding in some ROMs
Television
- Screen roll
- PAL signal detection improved. Eliminated a false positive
MovieCart updated to match reference implementation
Input buffer lowered to five frames. User input should feel better
Rewinding of PlusROM carts should now work in all instances
v0.11
= Changes from v0.10.3 =
Better CRT shaders
PAL60 TV specification
CDFJ+ cartridge format
Screenshots on F12
- Screenshot "mode" selectable with shift and ctrl keys
- See README for explanation and for other hotkeys
Better controller detection
- Mouse, gamepad, etc. require "waking up" before activating
Improved ARM timing
- Cycle counting is more accurate
- Additional ARM timing preferences
- MAM activation options
- Missing disassembly mnemonics added
Windows
- Path handling on Windows should be more robust