Changes.txt 170 KB
Newer Older
1
===========================================================================
2
3
4
5
6
7
8
9
10
11
12
13
14

     SSSS    tt          lll  lll
    SS  SS   tt           ll   ll
    SS     tttttt  eeee   ll   ll   aaaa
     SSSS    tt   ee  ee  ll   ll      aa
        SS   tt   eeeeee  ll   ll   aaaaa  --  "An Atari 2600 VCS Emulator"
    SS  SS   tt   ee      ll   ll  aa  aa
     SSSS     ttt  eeeee llll llll  aaaaa

===========================================================================
                              Release History
===========================================================================

Stephen Anthony's avatar
Stephen Anthony committed
15
6.7 to 7.0 (XXXXX XX, 202X)
thrust26's avatar
thrust26 committed
16
17
18
19
20
21
22
23
24
25
26
27

  * Enhanced ROM launcher to allow multiple images per ROM
    (TODO: controller support, doc)

  * Added searching by filename for ROM launcher images

  * Enhanced Game Properties dialog for multigame ROMs

  * Added optional type format detection based on colors used

  * Added Joy2B+ controller support

thrust26's avatar
thrust26 committed
28
29
  * Enhanced Kid Vid support to play tape audio

thrust26's avatar
thrust26 committed
30
31
32
33
34
35
36
  * Added BUS bankswitching support for some older demos

  * Fixed broken 7800 pause key support

-Have fun!


37
6.6 to 6.7 (June 13, 2022)
38

39
40
41
42
43
44
  * IMPORTANT NOTES:
    - Because of fixes to JSON handling, all remappings will be reset
      to defaults; if you had custom mappings, they will need to be
      re-entered again.
    - Because of internal changes, all state files are now invalid.

45
  * Completely reworked the file launcher:
46
    - Redesigned user interface
47
    - Added tracking of user favorites, recently played and most popular
48
49
      games
    - Added virtual directories for selecting tracked games
50
51
    - Added quick path navigation
    - Added navigation history
52
53
54
    - Added icons for files and directories
    - Added option to show/hide file extensions
    - Extended context menu and shortcuts
55
    - Fixed sluggish behaviour when reading large and/or invalid files
56

thrust26's avatar
thrust26 committed
57
58
  * Added hotkey display to tooltips.

59
60
  * Added option to automatically pause emulation when focus is lost.

61
  * Added option to toggle autofire mode.
62

63
64
65
66
  * Improved controller mappings for Paddles.

  * Improved controller mappings for Driving controllers.

67
  * Improved Mindlink support.
thrust26's avatar
thrust26 committed
68

69
70
  * Added another oddball TIA glitch option for score mode color.

thrust26's avatar
thrust26 committed
71
72
  * Enhanced TV jitter emulation (TODO: doc).

73
74
  * Enhanced support for CDFJ+ bankswitching type.

75
  * Added 0FA0 bankswitching for Fotomania ROMs.
thrust26's avatar
thrust26 committed
76

77
78
  * Added ARM chip auto detection.

79
80
81
82
  * Extended support for older BUS (experimental) ROMs that worked
    with an older, obsolete version of the BUS scheme; special thanks
    to SpiceWare for the code.

83
84
85
86
87
88
89
90
91
92
  * Fixed Stella crash due to invalid ZIP files.

  * Fixed TV mode auto detection in some ARM ROMs.

  * Fixed color loss when switching TV mode from/to PAL.

  * Fixed score mode glitch emulation corner case.

  * Fixed state messages staying on screen forever.

93
94
  * Added M1 support for the macOS build.

95
96
97
98
  * Debugger improvements:
    - added PlusROM information
    - fixed patching code in ZP-RAM
    - improved bank origin detection
99

100
101
102
103
  * Updated internal ROM properties database to ROM-Hunter version 17
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.

104

105
6.5.3 to 6.6 (November 16, 2021)
106

107
  * Added preliminary PlusROM support for saving high scores.
108

109
110
111
  * Added preliminary support for 'MVC' bankswitching scheme by
    Rob Bairos.

thrust26's avatar
thrust26 committed
112
  * Added web links for many games.
113

thrust26's avatar
thrust26 committed
114
  * Added dead zone and linearity settings for analog controllers.
thrust26's avatar
thrust26 committed
115

thrust26's avatar
thrust26 committed
116
  * Added 'Check for Update' button to Help dialog.
117

118
  * Added different mask patterns for scanline emulation.
119

thrust26's avatar
thrust26 committed
120
  * Fixed MindLink controller.
121

thrust26's avatar
thrust26 committed
122
  * Fixed SaveKey not working with QuadTari.
thrust26's avatar
thrust26 committed
123

thrust26's avatar
thrust26 committed
124
  * Added TIA randomization on startup option.
125

thrust26's avatar
thrust26 committed
126
127
  * Added different debug color luminances for player and missile copies.

128
129
  * Added hotkeys for TV roll speed and toggling 'Developer settings' sets.

thrust26's avatar
thrust26 committed
130
131
132
133
134
  * Debugger: enhanced prompt's auto complete and history.

  * Debugger: added optional logging of breaks and traps.

  * Debugger: added Thumb cycle counting.
135

136

137
6.5.2 to 6.5.3 (April 20, 2021)
138

139
  * Added context-sensitive help.
thrust26's avatar
thrust26 committed
140

141
142
143
144
  * Improved support of multiple monitors with different resolutions.

  * Improved analog input reading (Paddles, Keyboards...).

thrust26's avatar
thrust26 committed
145
  * Fixed QuadTari support for controller types other than Joysticks.
146

thrust26's avatar
thrust26 committed
147
148
  * Fixed palette and TV effects saving for Retron77.

149
150
151
  * Fixed immediate disassembling when switching options in debugger.


152
6.5.1 to 6.5.2 (February 25, 2021)
153

154
  * Fixed broken Driving Controller support for Stelladaptor/2600-daptor
thrust26's avatar
thrust26 committed
155
156
    devices.

157
  * Fixed missing QuadTari option in UI.
158

159
  * Improved QuadTari timing.
160

161
  * Added CPU usage stats to ARM cart classes debug widgets.
162
163


thrust26's avatar
thrust26 committed
164
165
166
167
168
169
170
171
172
6.5 to 6.5.1 (January 24, 2021)

  * Fixed paddle button bug for jittering controllers.

  * Improved switching between joysticks and paddles on Retron77 port.

  * Improved memory usage on Retron77 port.


173
6.4 to 6.5 (January 9, 2021)
174

175
176
  * Added high scores saving.

Stephen Anthony's avatar
Stephen Anthony committed
177
178
179
180
181
  * Improved text editing functionality (except PromptWidget):
    - Enhanced selection and cut/copy/paste from keyboard.
    - Added undo and redo support.
    - Added mouse support (selection, cut/copy/paste).
    - All actions have keyboard shortcuts.
thrust26's avatar
thrust26 committed
182

Stephen Anthony's avatar
Stephen Anthony committed
183
184
185
  * Various improvements to the ROM launcher:
    - Added wildcard support to the dialog filter
    - Added option to search subdirectories
thrust26's avatar
thrust26 committed
186

187
  * Added static tooltips to some UI items.
thrust26's avatar
thrust26 committed
188

189
190
  * Added dynamic tooltips to most debugger items.

191
192
  * Added sound to Time Machine playback.

193
194
  * Added browser dialogs for user saved files.

195
196
  * Extended global hotkeys for input devices & ports settings.

197
198
199
  * Moved to using an SQLite database for storing user settings, properties
    and highscores.  More work will follow in future releases.

200
  * Increased sample size for CDFJ+.
201

thrust26's avatar
thrust26 committed
202
203
  * Fixed autofire bug for trackball controllers.

204
  * Fixed bug in TV autodetection in filenames; a filename containing
205
    'PAL' inside a word would sometimes misdetect as a PAL ROM.
206

207
208
209
  * Fixed Stelladaptor/2600'daptor devices sometimes not being assigned
    correct default mappings.

Stephen Anthony's avatar
Stephen Anthony committed
210
211
  * Codebase now uses C++17 features, which means a minimum of gcc7
    or clang5 for Linux/Mac, and Visual Studio 2019 for Windows.
212

213

214
6.3 to 6.4 (November 2, 2020)
215

216
217
  * Added basic (entire and single line only) text cut/copy and paste.

218
  * Added color parameters to 'Custom' palette.
219

thrust26's avatar
thrust26 committed
220
  * Some improvements to AtariVox-USB adaptor functionality:
221
222
223
224
    - Made serial port used for an AtariVox-USB adaptor editable.
    - Autodetection of serial ports no longer messes up devices plugged
      into other serial ports.

225
226
227
228
  * Added CPU load stats to debugger.  Related to this, added debugger
    pseudo-registers '_ftimreadcycles' and '_fwsynccycles' to show the
    number of cycles since the start of frame under certain circumstances
    (see manual for more details).
thrust26's avatar
thrust26 committed
229

230
231
232
  * Fixed bug with aspect correction and fullscreen mode; snapshots from
    such a mode are now pixel-exact.

233
234
  * Fixed a bug that caused CDF ROMs to crash on the Retron77 and reduced
    ARM emulation performance for CDF ROMs on other platforms.
Christian Speckner's avatar
Christian Speckner committed
235

236
237
238
  * Fixed crash with missing or incorrectly sized SaveKey data file, and
    with certain functions not working (erase pages, erase entire EEPROM).

239
240
  * Fixed Atari mouse autodetection.

241
242
  * Fixed bug in ROM launcher, with last ROM selected not being remembered
    when exiting and re-entering a directory.
thrust26's avatar
thrust26 committed
243

244

245
6.2.1 to 6.3 (October 7, 2020)
thrust26's avatar
thrust26 committed
246

thrust26's avatar
thrust26 committed
247
  * Added adjustable autofire.
thrust26's avatar
thrust26 committed
248

thrust26's avatar
thrust26 committed
249
  * Added 'Dark' UI theme.
thrust26's avatar
thrust26 committed
250

251
  * Extended global hotkeys for debug options.
thrust26's avatar
thrust26 committed
252

253
  * Added option to playback a game using the Time Machine.
thrust26's avatar
thrust26 committed
254

255
  * Allow taking snapshots from within the Time Machine dialog.
thrust26's avatar
thrust26 committed
256

257
258
  * Added the ability to access most files that Stella uses from within a
    ZIP file. This includes the following:
259
260
261
262
263
264
      - Per-ROM properties file (so one can distribute a ROM and its
        associated properties).
      - Debugger symbol (.sym) and list (.lst) files, etc.
      - Several others, as we extend the support.
    Basically, you are now able to put many files that Stella uses inside
    one ZIP file, and distribute just that file.
265

266
  * Extended AtariVox support to handle flow control, so that long phrases
267
268
    are no longer corrupted/cut off.  This includes properly supporting the
    2600-daptor II, which is flashable to an AVox-USB converter.
269

thrust26's avatar
thrust26 committed
270
  * Added auto-detection of the serial port used for an AtariVox-USB adaptor.
271

thrust26's avatar
thrust26 committed
272
  * Added QuadTari controller support.
273

274
275
  * Added option to select the audio device.

thrust26's avatar
thrust26 committed
276
277
  * Added support for CDFJ+ bankswitching type.

278
279
  * Further enhanced UA bankswitching to support more Brazilian carts.

280
281
  * Added option to display detected settings info when a ROM is loaded.

282
  * Added another oddball TIA glitch option for delayed background color.
283

284
  * Added option to disable aspect ratio correct scaling.
thrust26's avatar
thrust26 committed
285

286
287
288
289
  * Added debugger pseudo-registers '_timwrapread' and '_timwrapwrite',
    which are set when the RIOT timer is read/written on timer wraparound,
    respectively.

290
291
292
  * Bankswitching schemes BUS, DPC+ and CDFx now work when startup bank
    randomization is enabled (these schemes now ignore that setting).

293
  * Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
294

295
296
  * Fixed bug when taking fullscreen snapshots; the dimensions were
    sometimes cut off.
thrust26's avatar
thrust26 committed
297

298

299
300
6.2.1 to 6.2.2 (August 25, 2020)

301
  * Fixed a bug in initial controller mapping.
302
303


304
6.2 to 6.2.1: (June 20, 2020)
305

306
307
  * Fixed Pitfall II ROM not working correctly.

308
309
  * Fixed crashes when using some combinations of bankswitching schemes on
    incorrect ROMs, or when using invalid ROM file sizes, etc.
310

311
  * Fixed RIOT timer behaviour on reading/writing at the wraparound cycle.
312
313
314

  * Fixed incorrectly setting D6 bit on TIA reads in some cases.  Related
    to this, improve 'tiadriven' option to randomize only D5..D0 bits.
thrust26's avatar
thrust26 committed
315
316

  * Fixed custom palette and TV effects adjustable slider rounding issue.
317
318
319

  * Fixed some bugs in 3E+ scheme when using non-standard ROM sizes.

320
321
322
323
324
  * Fixed crash in Audio & Video dialog when opened from debugger, and the
    debugger window sometimes being resized when using the Options dialog.

  * Make NTSC custom phase shift not affect Yellow anymore.

325
326
327
  * Fixed '1x' snapshot mode; TV effects are now disabled.  This mode
    now generates a clean, pixel-exact image.

328
329
  * Fixed mappings sometimes not being saved in the Retron77 port.

330
331
332
333
334
  * A ROM properties file may now be placed next to the ROM (with the same
    name as the ROM, except ending in .pro), and Stella will automatically
    apply the properties to the ROM. [NOTE: this was present in 6.2, but
    was mistakenly left out of the changelog]

335
336
337
338
  * Added button to Game Info dialog to save properties of the currently
    loaded ROM to a separate properties file (in the default save directory).
    This is useful in conjunction with the previous item.

339
340
  * Allow changing custom palette and TV effects adjustables in 1% steps
    again.
341

342
343
344
345
346
  * Updated documentation for changes in ROM properties key names.

  * The codebase now compiles under gcc6 again.  Future versions will
    require gcc7, though.

347

348
6.1.2 to 6.2: (June 7, 2020)
349

thrust26's avatar
thrust26 committed
350
  * Added interactive palette to Video & Audio settings.
351

thrust26's avatar
thrust26 committed
352
353
  * Added 'Custom' palette, generated from user controlled phase shifts.

354
  * Added that adjustable audio & video settings are displayed as gauge bars.
355
356

  * Added four global hotkeys which allow selecting and changing numerous
357
    audio & video settings without having to remember the dedicated hotkeys.
358

thrust26's avatar
thrust26 committed
359
360
  * Added 'Turbo' mode, runs the game as fast as the computer allows.

361
  * Added that paddle centering (per ROM) and sensitivity can be adjusted.
thrust26's avatar
thrust26 committed
362

363
  * Added that mouse sensitivity for Driving controller can be adjusted.
thrust26's avatar
thrust26 committed
364

365
  * Added paddle filtering in UI to avoid unwanted navigation events.
366

367
  * Added selectable dialog fonts.
368

369
  * Added separate positioning of launcher, emulator and debugger.
370

371
  * Added optional display to game refresh rate adaption in fullscreen mode.
372

373
  * Added option which lets default ROM path follow launcher navigation.
374

thrust26's avatar
thrust26 committed
375
376
377
  * Added debugger 'saveaccess' function, which saves memory access counts to
    a CSV file.

378
  * Added displaying last write address in the debugger.
379

380
381
382
  * Added debugger pseudo-register '_scanend', which gives the number of
    scanlines at the end of the last frame.

thrust26's avatar
thrust26 committed
383
  * Added detection of color and audio data in DiStella.
384

385
386
  * Restored 'cfg' directory for Distella config files.

387
  * Added TV Boy and 3EX bank switching types.
388

389
  * Removed unused CV+ and DASH bank switching types.
thrust26's avatar
thrust26 committed
390

391
392
  * Added support for loading grayscale PNG images in the ROM launcher.

393

394
395
396
397
398
399
400
401
402
403
6.1.1 to 6.1.2: (April 25, 2020)

  * Fixed bug with remapped events not being reloaded in certain cases.

  * Fixed bug in debugger for 3E scheme when displaying active RAM bank.

  * Fixed bug in "Dragon Defender" ROM being misconfigured for Mindlink
    controller.


404
405
6.1 to 6.1.1: (April 4, 2020)

406
407
  * Fixed crash in 3E bankswitching scheme when writing to ROM addresses.

408
409
  * Fix snapshots on Retina HiDPI displays capturing only the top-left
    corner.
410
411
412

  * Fixed wrong color for BK (background) swatch in the debugger.

413
414
415
  * Fixed 'Right Diff' button in Command menu changing left difficulty
    instead.

416
417
  * Fixed compilation of libretro port on Debian Buster.

418

419
6.0.2 to 6.1: (March 22, 2020)
420

Stephen Anthony's avatar
Stephen Anthony committed
421
422
423
424
  * IMPORTANT NOTES:
    - Because of major event remapping changes, all remappings will be reset
      to defaults; if you had custom mappings, they will need to be
      re-entered again.
425

Stephen Anthony's avatar
Stephen Anthony committed
426
    - Because of major internal changes, all state files are now invalid.
427

Stephen Anthony's avatar
Stephen Anthony committed
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
    - Support for Windows XP has been discontinued as of this version.  WinXP
      is now completely out of support from Microsoft, so we are doing the
      same.

  * Major improvements to display mode handling in NTSC vs. PAL.  The window
    is now the same size for both modes, and scaling is applied to simulate
    the height of scanlines (in PAL mode, there are more scanlines and hence
    each is narrower).  This more properly emulates how the display would look
    on a real TV.

  * Removed the 'Display_Height' property, changing it to 'Display_VCenter'.
    This new feature, along with the display mode changes above, almost
    completely eliminate having to manually tweak each ROM so that it will
    not have part of the image cut off.

  * Removed the 'Display_YStart' property and all automatic detection of
    ystart.  It caused problems on some ROMs, and was not the way a real
    console would work anyway.  Related to this, ROMs now load much faster.

  * Major improvements to event remapping:
    - Allow mapping of modifier-key and button-direction combinations
    - Physical controllers can map the same action to different events on
      different virtual controllers
    - Many more events can be remapped
    - Events can be filtered by type in UI

  * Paths have been simplified:
    - The following file/directory locations are no longer configurable
      (statedir, nvramdir, cheatfile, palettefile, propsfile); they are
      now all under the base directory
    - Removed cfgdir; Distella config files are now placed with their
      associated ROMs
    - Added 'basedir' commandline argument, which allows to change the
      base directory where almost all config-related items are stored;
      related to this, discontinued the 'basedir.txt' functionality
    - Added 'baseinappdir' commandline argument, which sets the base
      directory to the application folder (Windows only for now); this
      replaces the functionality of 'basedir.txt'
466

467
  * Added automatic controller detection.
468

469
470
  * Controllers can be changed during emulation (no ROM reload required
    anymore).
thrust26's avatar
thrust26 committed
471

472
  * Added support for Light Gun controller.
thrust26's avatar
thrust26 committed
473

474
  * Added limited KidVid support (8, 9 and 0 start the games).
thrust26's avatar
thrust26 committed
475

thrust26's avatar
thrust26 committed
476
  * Removed superfluous controller option 'PADDLES_IDIR'.
477

thrust26's avatar
thrust26 committed
478
  * Added configurable paddle dejittering.
479

thrust26's avatar
thrust26 committed
480
481
482
  * Key-repeat mode improved; entering Time Machine by holding down a key
    combo continues to send events (previously, you had to release and then
    press the combo again).
483

thrust26's avatar
thrust26 committed
484
485
486
  * Certain buttons in the UI can now be activated repeatedly by holding
    down the mouse button (Time Machine, debugger step/trace/frame advance,
    etc.)
487

488
  * Added option to configure mouse double click speed.
thrust26's avatar
thrust26 committed
489

490
  * Added option to configure controller input repeat speed.
thrust26's avatar
thrust26 committed
491

492
  * Added high quality scaling.
thrust26's avatar
thrust26 committed
493

494
  * Made scanlines better aligned to scaling.
thrust26's avatar
thrust26 committed
495

496
497
  * Added 'HiDPI' mode, which scales the UI by 2x when enabled.  This is
    meant for 4k and above monitors, but can actually be used at any
498
    lower resolution that is large enough to display the scaled UI.
thrust26's avatar
thrust26 committed
499

500
  * Fixed TIA 'Center' option, Stella now remembers the last windowed position.
thrust26's avatar
thrust26 committed
501

thrust26's avatar
thrust26 committed
502
  * Added fractional (25% increments) TIA zooms.
503

504
505
  * Removed 'tia.fsfill' option, replacing it with 'tia.fs_stretch'.  This
    new option allows to preserve TIA image aspect ratio in fullscreen
506
    mode, or stretch to fill the entire screen.
507

thrust26's avatar
thrust26 committed
508
  * Added configurable 'Overscan' option for fullscreen modes.
Stephen Anthony's avatar
Stephen Anthony committed
509

thrust26's avatar
thrust26 committed
510
511
  * Fullscreen TIA modes no longer assume that desktop taskbars, etc
    are present, hence they are scaled to the proper fullscreen size.
thrust26's avatar
thrust26 committed
512

thrust26's avatar
thrust26 committed
513
514
515
516
  * Added option to display dialogs in screen corners.

  * Added hotkey for sound on/off.

thrust26's avatar
thrust26 committed
517
  * Enhanced 'Command' menu to display current state and more commands.
thrust26's avatar
thrust26 committed
518

519
  * Added option to save and load all TimeMachine states at once.
thrust26's avatar
thrust26 committed
520

521
522
  * Added option to automatically load/save states when entering/exiting
    emulation.
thrust26's avatar
thrust26 committed
523

524
  * Added option to change pitch of Pitfall II music.
thrust26's avatar
thrust26 committed
525

526
527
528
529
  * ROM Info Viewer size is not limited to fixed zoom steps anymore.

  * ROM Info Viewer can now display multiple lines per property and the
    bank switching type.
530

531
532
533
534
535
  * In file listings, you can now select directories by holding 'Shift' on
    the first character entered.  Entering characters in lowercase still
    selects files, as before.

  * Fixed bug when starting ROMs via MacOS finder.
thrust26's avatar
thrust26 committed
536

537
  * Added various developer options for oddball TIAs:
thrust26's avatar
thrust26 committed
538
539
540
541
542
543
    - stuffed player, missiles and ball move
    - delayed playfield bits and color
    - delayed players and ball VDEL swap

  * Disabled some developer options for 'Player settings'.

544
545
546
547
  * Writes to RAM read ports are ignored now.

  * Added Developer setting, which breaks on writes to read ports.

548
  * Improved breakpoints to now consider the banks.
thrust26's avatar
thrust26 committed
549

550
  * Improved debugger's TIA display and zoom windows.
thrust26's avatar
thrust26 committed
551

thrust26's avatar
thrust26 committed
552
553
  * Improved hotkeys, now many emulation keys work in debugger too.

554
555
556
  * Fixed display of negative values in debugger; sometimes they were
    shown as positive.

Stephen Anthony's avatar
Stephen Anthony committed
557
  * Reworked ROM properties database, making it load faster in certain cases.
thrust26's avatar
thrust26 committed
558

559
  * Updated internal ROM properties database to ROM-Hunter version 16
thrust26's avatar
thrust26 committed
560
561
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.
thrust26's avatar
thrust26 committed
562

563
  * Fixed 'Dancing Plate (Unknown) (PAL)' to use joystick.
564

thrust26's avatar
thrust26 committed
565
566
  * Fixed cheatcode handling in 2K and 4K ROMs.

567
568
  * Fixed bug where ROMs smaller than 64 bytes were not recognized.

569
570
  * Fixed bug where frying one ROM was continued with the next ROM.

thrust26's avatar
thrust26 committed
571
572
573
  * Fixed not working 7800 pause key.

  * Enhanced UA bankswitching to support certain Brazilian carts.
Stephen Anthony's avatar
Stephen Anthony committed
574

575
  * Fixed WD bankswitching.
576

577
  * Added FC bankswitching for Amiga's Power Play Arcade Video Game Album.
578

579
580
  * Added auto-detection of display format based on filename.

581
582
583
584
  * Auto-detection of bankswitch scheme by file extension now includes
    more human-readable formats (not restricted to DOS 3-char length).
    See the documentation for the new names.

thrust26's avatar
thrust26 committed
585
586
587
  * Fixed bug in DPC+ scheme; 'fast fetch mode' was enabled at startup,
    when it should be disabled by default.

588
589
590
591
  * Some more work on DPC+ playfield 'jitter' effect for certain older DPC+
    driver versions; more ROMs are now detected properly.  Special thanks
    to SpiceWare for his research in this area.

Stephen Anthony's avatar
Stephen Anthony committed
592
  * Added proper Retron77 port.
Stephen Anthony's avatar
Stephen Anthony committed
593
594

  * Added proper libretro port, and fixed display for OpenGLES renderers.
thrust26's avatar
thrust26 committed
595

596
597
  * PNG/ZIP image support is now conditionally compiled into Stella.
    All major ports (Linux/macOS/Windows) have it enabled by default.
598

599
600
  * SDL/GUI support is now conditionally compiled into Stella.  All major
    ports (Linux/macOS/Windows) have it enabled by default.  This is
Stephen Anthony's avatar
Stephen Anthony committed
601
    currently needed by the libretro port.
602

603
604
  * Updated included PNG library to latest stable version.

605
606
607
  * Updated UNIX configure script to work with the gcc version 10 and
    above.

608

609
610
611
612
613
6.0.1 to 6.0.2: (October 11, 2019)

  * Updated properties database for Pink Panther ROM.


614
615
616
617
618
619
620
621
622
6.0 to 6.0.1: (June 5, 2019)

  * Added support for CDFJ bankswitching type (Galaga, Wizard of War, etc).

  * Allow the DPC+ scheme to not enable playfield 'jitter' effect for
    certain older DPC+ driver versions; this allows 'Epic Adventure' ROM
    to finally work in Stella.


623
5.1.3 to 6.0: (December 23, 2018)
624

Stephen Anthony's avatar
Stephen Anthony committed
625
626
627
  * Note: because of major TIA sound changes, the state file format has
          changed, and old state files will not work with this release.

628
629
  * New cycle exact audio core based on work by Chris Brenner (crispy);
    greatly improved audio emulation accuracy (i.e. E.T., Ms. Pacman).
Christian Speckner's avatar
Christian Speckner committed
630

631
632
  * Full rewrite of the audio subsystem; resample TIA output to target
    sample rate directly in Stella.
Christian Speckner's avatar
Christian Speckner committed
633

634
635
  * Added option to force stereo sound for all ROMs, or to use the
    setting on a per-ROM basis.
Stephen Anthony's avatar
Stephen Anthony committed
636

637
  * Threading: decouple emulation from frame rendering.
Christian Speckner's avatar
Christian Speckner committed
638

639
640
  * Main loop rewritten; emulating speed and timing is now much more
    faithful (i.e. speed in Pick'n'Pile).
Christian Speckner's avatar
Christian Speckner committed
641

642
643
644
645
646
647
648
649
650
651
652
653
  * Added preliminary support for 'CTY' bankswitching scheme and recently
    released 'Chetiry' ROMs.  Special thanks to SpiceWare for adding music
    support to this scheme.

  * UI modernization (new widget look, dialog titles added, dialogs
    refactored).

  * The bankswitch scheme can now be forced by naming the ROM with a
    specific extension (ie: .f8s for F8SC, .fe for FE, etc).  The
    supported extensions are the same as the ones from HarmonyCart and
    UnoCart.

654
  * Audio settings replaced with new 'audio.xxx' settings.
655

656
  * FPS setting replaced with speed setting for adjusting emulation speed.
657

658
  * Extra functionality for Time Machine dialog (start/stop recording;
659
    minor fixes).
660

661
662
  * When logging messages to the System Logger, condense similar messages
    that arrive in batches into fewer messages (including timestamps).
thrust26's avatar
thrust26 committed
663

664
  * Fixes for collision corner cases (during HBlank).
Stephen Anthony's avatar
Stephen Anthony committed
665

666
667
668
669
670
671
  * Fixed excessive CPU usage while in UI modes (ROM launcher, debugger,
    etc).

  * The 'launcherexts' option has been replaced by a true/false option
    named 'launcherroms', which specifies to show only ROMs or all files
    in the ROM launcher.
672

thrust26's avatar
thrust26 committed
673
  * Changes in 'Game Properties' dialog
674
675
    - 'Default' button now affects only current tab like in all other
      dialogs.
thrust26's avatar
thrust26 committed
676
    - 'Display' and 'Console' tab changes are now immediate.
thrust26's avatar
thrust26 committed
677
678
    - Fixed bug when selecting 'Auto-detect' format for 50Hz ROMs

679
680
  * Fixed bug in autodetecting Genesis controllers.

681
682
683
684
  * Fixed bug with 'thumb.trapfatal' commandline argument; sometimes Stella
    would lock up when encountering a fatal error instead of entering the
    debugger and displaying a message.

685
686
687
688
689
  * Fixed bug in reading from settings file with entries that were empty;
    the parsing was failing.  This affected the 'cpurandom' argument; when
    all options in it were turned off, they were all turned on again during
    the next program run.

690
691
692
  * Fixed bug with 'hold' events; they are now released a short time after
    starting a ROM.

693
694
695
  * When starting Stella for the first time, the first ROM selected will
    determine which path to use by default for subsequent runs.

thrust26's avatar
thrust26 committed
696
  * Fixed emulator crash when starting SaveKey ROMs from commandline with
697
    SaveKey messages enabled.
thrust26's avatar
thrust26 committed
698

699
700
701
  * Fixed missing TV format update in frame stats dialog when switching
    display type.

thrust26's avatar
thrust26 committed
702
703
  * Fixed missing debug color update when switching display type.

704
  * 'Fill to scanline' now works for scanlines above current scanline too.
thrust26's avatar
thrust26 committed
705

706
  * The debugger 'uhex' command is now honoured in CDF and BUS schemes.
thrust26's avatar
thrust26 committed
707

708
709
710
711
  * When switching screenmodes, the sound is now paused and later resumed.
    This fixes popping and cracking sounds apparent on some systems, notably
    OSX when toggling windowed/fullscreen mode.

712
713
714
715
  * State file format has been optimized to be smaller, and faster loading
    and saving.  This affects both the files saved to your computer as well
    as Time Machine functionality.

716
717
718
  * The ROM name saved in a PNG tEXt chunk now honours the 'snapname'
    setting.

719
720
  * Improved snapshots when phosphor is enabled.

721
722
  * Updated PAL palette.

723
724
725
  * Added 'Cartridge.StartBank' ROM property, to force a ROM to use a
    specific bank for its reset vector.

726
727
728
729
  * Added Developer setting, which breaks on reads from write ports.  It
    now detects such conditions in many more cases.  This new way of
    detecting RWP errors obsoletes the old '_rwport' debugger command,
    which has now been removed.
thrust26's avatar
thrust26 committed
730

731
732
  * Added recently released 'Arkyology' prototype ROM to the database.

733
734
735
  * Added 'Amoeba Jump' and 'Flappy' ROMs (from the Retron77) to the
    database.

736
737
738
  * Fixed 'Street Racer' and 'Video Olympics' ROMs to use paddles in both
    ports.

739
740
741
742
  * If using SDL 2.0.5 or above, the calculated desktop size now takes
    the taskbar/dock into account (so windows should no longer overlap
    those areas).

743
744
745
  * For UNIX systems: in the ROM launcher, when using symlinks use the
    symlink pathname instead of the underlying filesystem pathname.

Stephen Anthony's avatar
Stephen Anthony committed
746
  * The UNIX builds now use the system-installed PNG and ZLIB libraries
747
748
    by default.

749
750
751
  * The Macintosh builds are now named 'macOS' throughout the codebase to
    reflect the new naming from Apple.

752
753
  * For better compatibility, the Windows 32-bit version does not require
    SSE2 anymore.
754

Stephen Anthony's avatar
Stephen Anthony committed
755
756
  * Updated included PNG library to latest stable version.

757

758
759
760
761
762
763
764
765
766
5.1.2 to 5.1.3: (June 10, 2018)

  * Fixed crash in OpenBSD when quitting the app, which can also be
    happening on other systems (no reports yet, but the problem is now
    fixed for good).

  * Fixed configure/build scripts to work natively under OpenBSD.


767
768
769
770
771
772
773
774
775
776
777
5.1.1 to 5.1.2: (May 20, 2018)

  * Fixed bug with SaveKey autodetection; some ROMs were not correctly
    detecting that a virtual SaveKey device was plugged in.  This notably
    fixes issues in "Super Cobra" and "Scramble" ROMs.

  * Make previously mentioned ROMs use the SaveKey device by default.

  * Fixed bug in UI navigation with joystick hat movement.


778
779
780
781
782
5.1 to 5.1.1: (February 21, 2018)

  * Fixed bug in Stargunner ROM starting with a blank screen.


783
5.0.2 to 5.1: (February 4, 2018)
784

785
786
787
  * Added "Time Machine" mode, which automatically creates save states
    in user-defined intervals.  The user can navigate back and forth within
    these states inside the emulator and the debugger.
Christian Speckner's avatar
Christian Speckner committed
788

thrust26's avatar
thrust26 committed
789
790
791
  * Huge improvements to the disassembly view in the debugger and
    disassembly files created:
    - reformatting in debugger for better space utilization
792
793
794
795
796
    - much improved code and data detection
    - access tracking and indicators for TIA/IO/RAM adresses in disassembly
    - break vector is tracked (if used)
    - improved cycle count (page penalties, sums created in disassembly)
    - improved handling of instruction masking opcodes (e.g. BIT)
797

798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
  * Fixed change tracking bug during rewind; changes were accumulated
    instead of being displayed only for the last rewind step.

  * Extended 'rewind' to take a second parameter which allows rewinding
    multiple states.

  * Added 'unwind' command, which undoes the latest rewind(s)

  * Added '<' (unwind) button to debugger.

  * Thumbulator support is not conditional any more.

  * Moved various developer related settings in new Developer Settings
    dialog. These settings now come in two groups (player/developer) and
    allow switching all settings at once.

  * Don't trap write accesses to the datastream pointers in CDF and BUS.
    This fixes -dev.thumb.trapfatal 1.

  * Complete rework of TV mode and ystart autodetection. The new
    implementation is more robust and reduces startup time.

  * Add two "grace lines" of black to the top of the frame when
    autodetecting ystart.
822

823
  * Fixed Genesis controller autodetect (Stay Frosty 2, Scramble, etc).
824

825
826
827
828
829
  * Fixed a bug in ystart autodetection that could cause screen jumps.

  * Fixed several bugs in holdselect, holdreset and holdjoyX commandline
    arguments; these now work as expected.

830
831
  * Fixed bug in TIA collision handling; it is now disabled in VBlank.

832
833
834
  * Improve TIA PF collision handling during hblank; this fixes a bug in
    Thrust ROM.

835
836
837
  * Fixed wrong display of HM values in debugger after 'HMCLR' has been
    executed.

838
839
840
841
  * Fixed bug with the debugger 'savedis' command in Windows; it wasn't
    actually saving the files at all.  This has never been reported
    before, so I guess it shows how many people use that functionality.

842
843
844
845
846
  * The debugger 'savedis', 'saverom' and 'saveses' now save files in
    a default, user-visible directory (see the documentation for more
    information).  In the case of 'saveses', the filename is now named
    based on the date and time of when the command was entered.

847
848
849
850
851
852
853
  * Fixed bug with saving snapshots in 1x mode; there was graphical
    corruption in some cases.  Such snapshots also now include any TV
    effects / phosphor blending currently in use.

  * Fixed regular-sized snapshots when phosphor effect was enabled;
    sometimes the image was 'double-blended', resulting in a snapshot that
    was too dark.
854

855
856
857
858
  * Fixed crash when selecting 'CompuMate' as a controller type for a non-
    CompuMate ROM; this controller type can no longer be manually
    selected, and will be used automatically used for CompuMate ROMs.

859
860
  * Fixed cheat codes, so 7 digits codes are now accepted as described in
    the doc.
thrust26's avatar
thrust26 committed
861
862
863

  * Fixed swapped ports being displayed wrong in System Logs and debugger.

thrust26's avatar
thrust26 committed
864
  * Added options to erase the AtariVox/Savekey flash memory, either for
865
866
    all ROMs or only the current one.  Also added a message (configurable)
    when the flash memory is accessed.
thrust26's avatar
thrust26 committed
867

thrust26's avatar
thrust26 committed
868
869
  * Access to the AtariVox/SaveKey can be signaled with a message.

870
  * Added new interface palette 'Light'.
871

thrust26's avatar
thrust26 committed
872
873
874
  * Frame stats display made transparent. Also it now displays the real
    frame rate and if the developer settings group is enabled.

875
  * Improved tab auto-complete in debugger.
thrust26's avatar
thrust26 committed
876

877
  * Added conditional traps and savestate creation to debugger.
thrust26's avatar
thrust26 committed
878

879
880
  * Added 'Options...' button to debugger which gives access to the options
    menu during debugging.
thrust26's avatar
thrust26 committed
881
882
883
884

  * Added debugger pseudo-register '_cyclesLo' and '_cyclesHi', which give
    the number of CPU cycles that have occurred since emulation started.

885
886
887
  * Added debugger pseudo-register '_fcycles', which gives the number of
    CPU cycles that have occurred since the frame started.

888
889
890
  * Added debugger pseudo-register '_icycles', which gives the number of
    CPU cycles of the last instruction.

891
892
893
  * Extended debugger 'dump' command to take a second argument, indicating
    the end of the range to dump data.

894
895
  * Improved change tracking; more values are tracked and change tracking
    now works in case of a break too.
thrust26's avatar
thrust26 committed
896

897
  * Added widgets for trackball and SaveKey/AtariVox controllers.
thrust26's avatar
thrust26 committed
898

899
900
901
902
903
  * Improved emulation of 'FE' bankswitch scheme (no user-visible changes,
    but internally the emulation is much more accurate compared to the
    real thing).  Related to this, improved the debugger support for this
    scheme (you can now switch banks in the debugger view).

904
  * Added emulation of 7800 initial RAM values and Pause key.
thrust26's avatar
thrust26 committed
905

906
907
908
  * Added ROM properties for 'Scramble' ROMs, and updated info for all
    "Champ Games" ROMs.

909
910
911
  * Added ROM properties for 'Zippy the Porcupine' ROMs, and updated
    info for all "Chris Spry (Sprybug)" ROMs.

912
913
914
  * Support UNIX style builds (configure / make) on OSX with both
    XCode / clang and g++.

thrust26's avatar
thrust26 committed
915
916
  * Fixed error when building with uClibc-ng for ARM (thanks to Sergio
    Prado).
917

918
919
  * Updated included PNG library to latest stable version.

920

Stephen Anthony's avatar
Stephen Anthony committed
921
5.0.1 to 5.0.2: (August 20, 2017)
922

923
924
  * Improved emulation of Trakball controller, eliminating bias in left/
    right directions.  Thanks to Thomas Jentzsch for the idea and code.
925
926
    Related to this, added 'tsense' commandline argument and associated
    UI item, to allow changing sensitivity of mouse trackball emulation.
927

Stephen Anthony's avatar
Stephen Anthony committed
928
929
  * Added preliminary support for multi-threading in the Blargg TV effects
    code.  This is still a WIP; more improvements are coming.  Related to
930
    this, further optimized the TIA rendering code.  Also added 'threads'
Stephen Anthony's avatar
Stephen Anthony committed
931
    commandline argument and associated UI item to enable/disable
932
933
    multi-threading.  Thanks to Thomas Jentzsch for the bulk of the work
    in this area.
Stephen Anthony's avatar
Stephen Anthony committed
934

935
936
  * Blargg TV effects now no longer cut off the right side of the image
    (by several pixels) in certain cases.
937

Stephen Anthony's avatar
Stephen Anthony committed
938
939
940
941
  * Updated CDF scheme to latest version from Spiceware.  In addition,
    this scheme now supports versioning, so older and newer ROMs will
    continue to work.

942
943
944
945
  * Fixed an annoying bug in Linux, where Alt-Tab'ing out of a window and
    then back again would pass a 'Tab' key event to the app, which in
    most cases would navigate to the next UI element.

946
947
948
949
  * Fixed potential issue with state file saving and the debugger; under
    certain circumstances a rewind would give a different state than
    before (note that the state file format has changed because of this).

Stephen Anthony's avatar
Stephen Anthony committed
950
  * Fixed lockups when entering the debugger under certain circumstances.
951

Stephen Anthony's avatar
Stephen Anthony committed
952
953
954
  * The debugger 'listtraps' command now shows all traps set, not just
    the first one(s).

955
956
957
  * Reverted joystick changes for Decathlon ROMs from last release, as
    it was added by mistake.

958

959
960
961
962
5.0 to 5.0.1: (July 23, 2017)

  * Fixed issues in keypad, Genesis and various other controllers that use
    INPTx registers; the emulation is now much more accurate in this area.
963
964
965
966
967
968
969

  * Various 'Bumper Bash' and 'Decathlon' ROMs are marked as always having
    all 4 directions on a joystick enabled, since they can't be played
    properly otherwise.

  * Added 'Hunchy II' from Chris Walton (cd-w) to ROM properties database.

970
971
  * Codebase now uses C++14 features.

972

973
4.7.3 to 5.0: (July 16, 2017)
974

975
976
977
  * Note: because of major TIA/6502/RIOT changes, the state file format
          has changed, and old state files will not work with this release.

978
979
  * Stella has moved from Sourceforge to Github.

980
  * Completely new TIA core is now available, ported from 6502ts by
Christian Speckner's avatar
Christian Speckner committed
981
982
983
984
985
986
    Christian Speckner (DirtyHairy). This new core is extremely accurate,
    and matches real hardware in almost every test we've performed.
    New features include:
     - Meltdown emulates correct
     - The lap number in Pole Positions displays correctly
     - Artifacts in the mountains on Snoopy and the Red baron are gone
987
988
     - Line artifacts in Title Match Pro Wrestling and Realsports Boxing
       are fixed
Christian Speckner's avatar
Christian Speckner committed
989
990
991
992
993
994
995
996
997
998
999
     - The spurious line at the left border of Video Chess now displays
       correctly
     - All 32 char text demos from AtariAge now work perfectly (Stella 4
       shows artifacts on several of these)
     - Stella is now the only emulator to display the "Mega Bitmap Demo"
       (atext.bin) from AtariAge correctly
     - Improved starfield effect for missiles (still TODO for ball and
       players)
     - RSYNC emulation has improved, all testcases now match real
       hardware
     - Several other ROMs that have never worked in any emulator are now
1000
       emulated correctly
Christian Speckner's avatar
Christian Speckner committed
1001
1002
1003
1004
1005
1006
     - RDY behavior with respect to write cycles is accurate
     - Optional YStart autodetect and more robust frame handling
     - NUSIZ during player draw matches hardware
     - RESMx during missile draw matches hardware
     - Paddle emulation is slightly more accurate. As a consequence, the
       "paddle feel" may be slightly different from Stella 4
1007
1008
1009
1010
     - Fixed debug colors can now be set for each graphical object, from
       a choice of 'red', 'orange', 'yellow', 'green', 'blue' and
       'purple'.  This is accessible through the new 'tia.dbgcolors'
       commandline argument and within the UI.
1011

1012
  * Implemented new phosphor emulation mode, which is much closer to real
1013
    TV output.  Related to this, added ability to change the default
1014
    phosphor blend level in the UI and through the new 'tv.phosblend'
1015
1016
    commandline argument.  Special thanks to Thomas Jentzsch for the idea
    and implementation.
1017

1018
1019
1020
1021
1022
  * TV phosphor effect can now be force-enabled for all ROMs, instead
    of manually setting ROM properties for each ROM.  This is accessible
    in the UI and through the 'tv.phosphor' commandline argument, and
    defaults to being off (or enabled per-ROM).

1023
1024
1025
1026
1027
  * PAL color-loss and Blargg TV effects can now be enabled at the same
    time.  Previously, when Blargg effects were enabled, PAL color-loss
    couldn't be shown.  Related to this, the Blargg effects now use much
    less memory and in some cases run faster than before.

1028
  * Much improved RIOT timer emulation never before seen in any emulator.
1029
1030
1031
    Special thanks to Christian Speckner (DirtyHairy) for the
    implementation, and alex_79 for finding documentation that finally
    describes in more detail how the M6532 chip