Changes.txt 145 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
===========================================================================

15
5.1.2 to 5.1.3: (June 10, 2018)
16
17
18
19
20
21
22
23
24
25

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

-Have fun!


26
5.1.1 to 5.1.2: (May 20, 2018)
27

28
29
30
31
32
33
34
  * 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.
35
36


37
38
39
40
41
5.1 to 5.1.1: (February 21, 2018)

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


42
5.0.2 to 5.1: (February 4, 2018)
43

44
45
46
  * 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
47

thrust26's avatar
thrust26 committed
48
49
50
  * Huge improvements to the disassembly view in the debugger and
    disassembly files created:
    - reformatting in debugger for better space utilization
51
52
53
54
55
    - 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)
56

57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  * 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.
81

82
  * Fixed Genesis controller autodetect (Stay Frosty 2, Scramble, etc).
83

84
85
86
87
88
  * 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.

89
90
  * Fixed bug in TIA collision handling; it is now disabled in VBlank.

91
92
93
  * Improve TIA PF collision handling during hblank; this fixes a bug in
    Thrust ROM.

94
95
96
  * Fixed wrong display of HM values in debugger after 'HMCLR' has been
    executed.

97
98
99
100
  * 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.

101
102
103
104
105
  * 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.

106
107
108
109
110
111
112
  * 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.
113

114
115
116
117
  * 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.

118
119
  * Fixed cheat codes, so 7 digits codes are now accepted as described in
    the doc.
thrust26's avatar
thrust26 committed
120
121
122

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

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

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

129
  * Added new interface palette 'Light'.
130

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

134
  * Improved tab auto-complete in debugger.
thrust26's avatar
thrust26 committed
135

136
  * Added conditional traps and savestate creation to debugger.
thrust26's avatar
thrust26 committed
137

138
139
  * Added 'Options...' button to debugger which gives access to the options
    menu during debugging.
thrust26's avatar
thrust26 committed
140
141
142
143

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

144
145
146
  * Added debugger pseudo-register '_fcycles', which gives the number of
    CPU cycles that have occurred since the frame started.

147
148
149
  * Added debugger pseudo-register '_icycles', which gives the number of
    CPU cycles of the last instruction.

150
151
152
  * Extended debugger 'dump' command to take a second argument, indicating
    the end of the range to dump data.

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

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

158
159
160
161
162
  * 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).

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

165
166
167
  * Added ROM properties for 'Scramble' ROMs, and updated info for all
    "Champ Games" ROMs.

168
169
170
  * Added ROM properties for 'Zippy the Porcupine' ROMs, and updated
    info for all "Chris Spry (Sprybug)" ROMs.

171
172
173
  * Support UNIX style builds (configure / make) on OSX with both
    XCode / clang and g++.

thrust26's avatar
thrust26 committed
174
175
  * Fixed error when building with uClibc-ng for ARM (thanks to Sergio
    Prado).
176

177
178
  * Updated included PNG library to latest stable version.

179

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

182
183
  * Improved emulation of Trakball controller, eliminating bias in left/
    right directions.  Thanks to Thomas Jentzsch for the idea and code.
184
185
    Related to this, added 'tsense' commandline argument and associated
    UI item, to allow changing sensitivity of mouse trackball emulation.
186

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

194
195
  * Blargg TV effects now no longer cut off the right side of the image
    (by several pixels) in certain cases.
196

Stephen Anthony's avatar
Stephen Anthony committed
197
198
199
200
  * Updated CDF scheme to latest version from Spiceware.  In addition,
    this scheme now supports versioning, so older and newer ROMs will
    continue to work.

201
202
203
204
  * 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.

205
206
207
208
  * 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
209
  * Fixed lockups when entering the debugger under certain circumstances.
210

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

214
215
216
  * Reverted joystick changes for Decathlon ROMs from last release, as
    it was added by mistake.

217

218
219
220
221
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.
222
223
224
225
226
227
228

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

229
230
  * Codebase now uses C++14 features.

231

232
4.7.3 to 5.0: (July 16, 2017)
233

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

237
238
  * Stella has moved from Sourceforge to Github.

239
  * Completely new TIA core is now available, ported from 6502ts by
Christian Speckner's avatar
Christian Speckner committed
240
241
242
243
244
245
    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
246
247
     - Line artifacts in Title Match Pro Wrestling and Realsports Boxing
       are fixed
Christian Speckner's avatar
Christian Speckner committed
248
249
250
251
252
253
254
255
256
257
258
     - 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
259
       emulated correctly
Christian Speckner's avatar
Christian Speckner committed
260
261
262
263
264
265
     - 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
266
267
268
269
     - 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.
270

271
  * Implemented new phosphor emulation mode, which is much closer to real
272
    TV output.  Related to this, added ability to change the default
273
    phosphor blend level in the UI and through the new 'tv.phosblend'
274
275
    commandline argument.  Special thanks to Thomas Jentzsch for the idea
    and implementation.
276

277
278
279
280
281
  * 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).

282
283
284
285
286
  * 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.

287
  * Much improved RIOT timer emulation never before seen in any emulator.
288
289
290
    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 actually works.
291

292
293
  * Added BUS (experimental) and CDF bankswitching schemes, and also
    ARM Timer 1 support; special thanks to SpiceWare for the code.
294

295
296
297
298
  * Fixed bug with SaveKey and AtariVox not properly closing their memory
    files before starting another instance of the same ROM, when the ROM
    was opened in the ROM launcher.

299
  * Various improvements to the debugger and command prompt:
300
301
302
303
    - The 'cls' command now only clears the screen, not the history
    - The 'help' command now accepts other commands, and gives extra
      information about the command (ie, 'help breakif' prints extended
      information about the breakif command)
304
305
    - Added 'palette' command, which shows a color swatch of the
      currently active TIA palette
306
307
    - Added 'debugcolors' command, which shows a legend for 'fixed debug
      colors' mode
308
309
    - The previous trap'm' commands now work when setting TIA read
      addresses; previously they only worked for write addresses
310
311
    - The previous trap'm' commands are now renamed 'trap', 'trapread'
      and 'trapwrite'
312
313
314
    - The TIA tab now shows 'old' contents of player and ball registers
    - Various UI items are crossed out when disabled, to more clearly
      indicate their current state
315
316
    - Various UI items that previously required a double-click to toggle
      (pixel and bit widgets) now require only a single-click.
317
318
    - Command completion now works with internal functions and pseudo-ops
      (basically, anything starting with the '_' character)
319
320
    - System labels (aka, register names, etc) can now be typed in lower-
      case.  Previously, these labels always had to be uppercase.
321
322
323
    - In general, input error checking is much more strictly enforced
    - Read-only UI items now have a different background color, to
      clearly indicate if an item can be modified.
324
325
    - Debugger '.lst' and '.sym' files are now searched based on the name
      of the ROM file, and not on the internal properties name.
326
327
    - Snapshots can now be saved by pressing the F12 key (the various
      other ways to save snapshots still exist).
328
329
330
331
332
333
334
335
336
337
338
339
340
341

  * Mouse grabbing is now enabled in windowed mode only when the ROM is
    using a virtual analog controller (paddles, trakball, etc).

  * Renamed various trakball-like controllers more accurately: AmigaMouse,
    AtariMouse (previously CX80) and Trakball (previously CX22).  Related
    to this, reduced the resolution of the Trakball by half, to properly
    match real hardware.

  * The stack pointer (SP) is now initialized to $FD instead of $FF, to
    match research done in other 6502 projects.

  * Fixed bug in debugger tracing and displaying the partial TIA image;
    the first time entering the debugger and starting to trace, the image
342
343
    was blanked out (black) instead of being drawn in greyscale.  Also, the
    image is now synchronized, instead of being two frames behind.
344

345
346
347
348
  * Fixed crash with zipped ROMs that are less than 4K in size; so far
    this bug has only ever occurred in Windows XP, but it's been there
    since Stella 4.1.

349
350
351
352
353
354
  * Fixed bug in 'Rom Audit' functionality; sometimes ROMs without a
    valid properties entry were being renamed as "Untitled.bin".

  * For the entire UI, removed colons and generally made the UI items
    easier to read.

355
  * When in 'ROM launcher mode', Stella now uses slightly less CPU time.
356
    More work is required in this area, though.
357
358
359
360

  * Added ROM properties for D.K. VCS homebrew ROM, thanks to Andreas
    Dietrich.

361
362
363
364
  * Added slight improvement for auto-detecting Superchip bankswitching;
    the new implementation now works for the NTSC 'Dig Dug' ROM.  Special
    thanks for SpiceWare for the idea and modified implementation.

365
366
367
  * Fixed long-standing bug in 3-voice music in DPC+ bankswitching scheme;
    the music now sounds much more like the real thing.

368
369
370
371
372
373
374
375
376
377
378
  * For the Linux/UNIX port:
    - The settings directory now uses the XDG Base Directory Specification.
      In most cases, this means that your files will now be stored in
      '~/.config/stella' instead of '~/.stella'.  To keep your old settings,
      run the following commands from the terminal:
        cd ~
        mv .stella .config/stella

      You will probably need to edit '~/.config/stella/stellarc' and change
      some paths accordingly.

379
  * For the OSX port:
Stephen Anthony's avatar
Stephen Anthony committed
380
381
    - Always use the built-in png and zlib libraries instead of the system
      versions.
382

Stephen Anthony's avatar
Stephen Anthony committed
383
384
    - The preferences file has changed from 'net.sourceforge.Stella.plist'
      to 'Stella-emu.plist'.  To keep your old settings, run the following
385
      commands from the terminal:
386
387
388
        cd ~/Library/Preferences
        mv net.sourceforge.Stella.plist Stella-emu.plist

389
  * Updated internal ROM properties database to ROM-Hunter version 13
390
391
392
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.

393
  * Updated included PNG and ZLIB libraries to latest stable version.  Also,
Stephen Anthony's avatar
Stephen Anthony committed
394
395
396
    both libraries are now compiled into the app whenever one is selected.
    This fixes issues with a newer ZLIB not working with an older PNG, etc.

397
  * Updated build scripts for Visual Studio 2017 (Windows) and MacOS
398
    Sierra (latest version of Xcode), and make these the minimum supported
399
    versions for building Stella.
400

401
  * Updated UNIX configure script to work with the clang 5+ and gcc 7+
402
403
    compiler versions, and fixed compile issues on AArch64 and ppc64le
    architectures.
404
405


stephena's avatar
stephena committed
406
4.7.2 to 4.7.3: (Nov. 21, 2016)
407

408
409
410
  * Added preliminary support for the 3E+ bankswitching scheme, developed
    by Thomas Jentzsch.

411
412
413
414
  * Fixed HMOVE positioning bug that occurred under certain circumstances.
    Thanks to Omegamatrix of AtariAge for the bug report and patch to fix
    the issue.

415
416
417
418
  * Added 'trapm', 'trapreadm', 'trapwritem' commands to debugger prompt.
    These are similar to the non-'m' versions, except that they also trap
    on all mirrors of the given address.

419
420
421
422
423
424
425
  * Fixed bug in debugger 'reset' command; it wasn't resetting the
    bankswitching, so after a reset the banks were in an undefined state.

  * Updated UNIX configure script to fix a bug where it fails in
    cross-compilation under certain circumstances.  Thanks to Vlad
    Zakharov for providing a patch to fix this issue.

426

427
4.7.1 to 4.7.2: (Mar. 25, 2016)
428
429
430
431
432

  * Fixed bug when entering and exiting the debugger; sometimes the
    character corresponding to the '`' key would be output in the
    prompt area.

433
434
435
436
437
  * Updated DPC+ Thumb ARM emulation code to latest from David Welch.
    In particular, this fixes incorrect handling of the V flag when
    adding and subtracting, but also fixes compile-time warnings that
    I couldn't get rid of before.

438
439
440
441
  * Updated UNIX configure script to work with GCC 6.x compilers, and to
    remove references to obsolete compiler versions that can no longer
    be used to compile Stella.

442

443
4.7 to 4.7.1: (Feb. 13, 2016)
stephena's avatar
stephena committed
444

445
446
  * Improved TV 'jitter' emulation; the recovery time can now be spread
    over multiple frame, to simulate a real TV taking multiple frames to
447
    recover.  Related to this, added new commandline argument
448
    'tv.jitter_recovery' to set the recovery time.  Finally, enabling
449
    the jitter effect and the recovery time are now accessible through
450
451
    the UI.  Special thanks to SpiceWare of AtariAge for the initial idea
    and implementation.
452

453
454
455
  * Fixed bug with 'Medieval Mayhem' ROMs; the paddle range was set too
    low, and as a result the number of players couldn't be selected.

456
457
458
459
460
  * Fixed bug when using more than two input controllers with the same
    name; each controller after the second one was named the same as the
    second one.  This caused the joystick mappings to be lost, since there
    was only information about two controllers being saved.

461
462
463
  * Indirectly fixed issues with Stelladaptor/2600-daptor devices and
    paddles having too large of a deadzone in Linux.  Currently, this
    involves running an external application to set the deadzone,
464
    since SDL2 does not yet expose this information.  The program is
465
466
    called 'evdev-joystick', and will be released separately from Stella.

stephena's avatar
stephena committed
467
468
469
470
471
  * Updated internal ROM properties database to ROM-Hunter version 11
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.


472
4.6.7 to 4.7: (January 25, 2016)
473

474
475
476
477
  * Improved paddle emulation in several ways:

    - Added ability to specify the maximum range of movement for paddles
      when using a mouse or digital device to emulate the paddle.  This is
stephena's avatar
stephena committed
478
      useful since on a real console most paddle games use very little of
479
480
481
482
483
484
485
486
487
488
489
      the paddle range, and could result in moving the mouse onscreen with
      nothing appearing to happen (when in effect it was as if you turned
      a real paddle all the way to the end of the range).  This eliminates
      issues in (for example) Kaboom, where there was a huge 'deadzone'
      when moving to the left.  All applicable ROMS in the internal
      database have been updated.

    - The range for paddle emulation now takes an integer from 1 - 20,
      indicating how much to scale movement (ie, how fast the onscreen
      paddle will move when you move the mouse).  The movement itself
      is now also smoother than before.
490

491
492
493
  * Fixed bug in 'Score mode' in TIA emulation; the TIA object colours
    were correct, but the associated priority was sometimes incorrect.

494
495
496
497
  * Fixed bug in ROM launcher; selecting 'Options -> Game Properties' after
    loading a ROM would always point to the last opened ROM, not to the one
    currently selected.

498
499
500
501
  * Fixed bug in storing ROM properties; in some cases, a copy of the
    ROM properties was being stored in the external file when it was
    exactly the same as the internal entry.

stephena's avatar
stephena committed
502
503
504
505
  * Added 'CV+' bankswitching scheme, developed by myself and LS_Dracon
    (of AtariAge).  This scheme contains RAM like the CV scheme, and
    also switchable 2K ROM segments by writing to $3D.

506
507
508
509
510
  * Added more C++11 updates all over the codebase, and ran Stella
    through Coverity for the first time.  I'm proud to say that Stella
    now has a 0.00 defect rate!


511
4.6.6 to 4.6.7: (October 28, 2015)
512

513
514
  * Fixed bug when using real paddles plugged into a Stelladaptor
    2600-daptor device; the movement was very erratic.
515
516
517
518

  * Fixed small logic error in 'MDM' bankswitching scheme.


stephena's avatar
stephena committed
519
4.6.5 to 4.6.6: (October 11, 2015)
stephena's avatar
stephena committed
520
521
522
523
524

  * Added 'Alt/Cmd + j' shortcut key and 'tv.jitter' commandline argument
    to toggle the TV scanline jittering emulation added in the last
    release.  Also, this jittering now defaults to off.

stephena's avatar
stephena committed
525
526
527
  * Fixed bug in 'MDM' bankswitch scheme; bankswitching wasn't being
    done under certain circumstances.

stephena's avatar
stephena committed
528

529
4.6.1 to 4.6.5: (September 26, 2015)
530

531
532
  * Added mappable events for toggling TV color/BW, left difficulty A/B
    and right difficulty A/B.  This means that one key, joystick button,
533
    etc. can be used to toggle each event.  Thanks to Buzbard of AtariAge
534
535
    for the suggestion.

536
537
538
539
  * Added ability to edit values in more widgets in the debugger.  For
    now, this applies mainly to the various decimal and binary fields.
    More widgets will be made editable in future releases.

540
541
542
543
544
545
546
547
548
  * The TIA now emulates the jitter that occurs when scanline counts
    are not consistent frame-over-frame.  Also, the DPC+ scheme now
    emulates jitter that can occur when using its Fractional Datafetchers
    if the DFxFRACINC registers are not re-initialized every frame.
    Special thanks to SpiceWare for this implementation.

  * Tweaked 'MDM' scheme autodetection to detect that the identification
    string can be in either bank 0 or bank 1.

549
550
551
552
  * Changed 'hidecursor' commandline argument (and associated UI item) to
    'cursor'.  The new argument allows to set mouse cursor visibility
    separately for both UI and emulation modes.

553
554
555
556
  * Fixed snapshot bug most noticeable in MacOSX, where taking a snapshot
    of a TIA image sometimes left parts of the UI onscreen (and in the
    resulting picture).

557
558
559
  * Fixed memory leak; the game console wasn't being closed after exiting
    a ROM.

560
561
562
563
564
  * For the Windows port: added an application icon for Stella in the
    Control Panel "Add/Remove Programs" list.

  * For the OSX port: Updated build scripts to be compatible with Xcode 7.

565
566
567
  * Updated included PNG library to latest stable version.


stephena's avatar
stephena committed
568
4.6 to 4.6.1: (April 22, 2015)
569
570
571
572

  * Fixed bug whereby text input could not be entered in certain widgets
    in the debugger.

573
574
  * Updated UNIX configure script to work with GCC 5.x compilers.

575

stephena's avatar
stephena committed
576
4.5 to 4.6: (March 21, 2015)
577

578
579
580
581
582
583
  * Finally fixed fullscreen rendering issues on some OpenGL
    implementations in Linux (mostly Intel-specific).  Basically, the
    concept of 'dirty updates' has been removed; the window is now
    updated continuously.  This may also fix issues some people were
    having with triple-buffering in Windows Direct3D, etc.

584
585
586
587
  * Fixed sound corruption that happened when running a ROM for the
    first time.  This was most obvious under OSX, but occasionally
    happened on other systems too.

588
589
590
591
592
593
594
595
  * Reverted some minor C++11 features (std::regex and cbegin/cend
    iterators) in a few places, since otherwise GCC 4.9 is required to
    compile Stella, and it isn't available on many systems yet.  These
    changes allow Stella to be built with GCC 4.8, which is present in
    the latest 'long term release' of Ubuntu.

  * Fixed error messages on state loading; sometimes multiple messages
    were being added together and displayed.
596
597
598
599

  * Fixed bug when running ROMs using AtariVox controllers; the app would
    crash upon exiting the ROM.

stephena's avatar
stephena committed
600
601
  * Snapshot functionality now works while the emulation is paused.

602
603
604
605
  * Certain textfields in the UI now have filtering enabled, preventing
    insertion of illegal characters.  This will be extended throughout
    the code in future releases.

606
607
  * DataGridWidgets in the debugger now respond to keypad '+' and '-'.

608
609
  * Updated included PNG library to latest stable version.

610

611
4.2 to 4.5: (January 1, 2015)
612
613
614

  * The conversion to C++11 has begun :)  From this point on, to build
    Stella you will need a C++11 compatible compiler (Visual Studio 2013,
615
    Clang 3.3, gcc 4.9, Xcode 6, etc).  Eventually, this will bring more
616
617
    bug-free and (hopefully) faster code.

618
619
620
  * Fixed major bug with joysticks, where mapping was being lost on reset,
    the app would crash when plugging/unplugging certain sticks, etc.

621
622
623
  * Fixed major (but rare) crash that could occur when state files were
    zero'ed or corrupted.

624
625
626
  * Added dialog which shows the internal joystick database (all the
    joysticks that Stella knows about) and the ability to remove
    (currently unplugged) joysticks from this database.
627
628

  * Added preliminary support for 'WD' (Wickstead Design) bankswitching
629
630
631
632
    scheme, used for a previously unreleased prototype ROM.

  * Improved ZIP file handling, so that it now works as a normal
    filesystem does (it properly shows nested files and directories).
633

634
635
636
  * The debugger 'reset' command now does a complete system reset,
    instead of simply setting the PC to the reset vector address.

637
638
639
  * The 'listdelay' command now accepts a value of zero, indicating that
    list-skipping (jumping to a line in a list by keypress) is disabled.

stephena's avatar
stephena committed
640
641
642
  * The 'ctrlcombo' command now has a GUI item, allowing it to be changed
    from within the application.

643
644
645
646
647
  * Added 'Shift-Alt/Shift-Cmd s' keyboard shortcut, to enable continuous
    snapshot mode for each frame.  This is really only useful if you
    save snapshots in 1x mode; using it in high-resolution mode is
    not recommended.  Special thanks to SvOlli for the idea and code.

648
649
650
651
  * The minimum supported version for the OSX port is now OSX 10.7.
    Because of this, the 32-bit version is also discontinued, as 10.7
    supports 64-bit Intel only apps.

652
653
654
655
  * Updated internal ROM properties database to ROM-Hunter version 10
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.

656
  * Updated included PNG library to latest stable version.
657
658


stephena's avatar
stephena committed
659
4.1.1 to 4.2: (October 28, 2014)
660

661
662
663
664
665
  * Text input from non-US keyboard layouts is now supported.  Note that
    all text in Stella is still ASCII-only, but at least it can now be
    entered using a native layout.

  * Related to the text input changes, the debugger Alt-combo shortcuts
666
667
    have been changed; they now use the same key but with Control instead
    of Alt (Control-F for frame advance, etc).
668

669
670
671
672
673
  * Controllers are now detected dynamically by Stella.  This means that
    you can plug/unplug joysticks/paddles/etc while Stella is running,
    and they will be added and removed automatically.  Also fixed is
    a bug whereby sometimes custom joystick mappings weren't being saved.

674
675
676
  * The 'cpurandom' option is now broken down by register type, so you
    can selectively enable/disable randomization for each one.  The
    default is to disable randomization for all registers.
677

678
  * Fixed 'MDM' scheme to trigger bankswitching on writes to hotspots
679
680
681
    (previously it only triggered on reads).  Also, the scheme has been
    modified as originally designed by E. Blink; hotspots are now in the
    range $800-$BFF instead of $800-$FFF.
682

683
684
685
686
687
  * The OSX app-icon now includes 32x32 and 16x16 versions, so 'small'
    icons will be viewable in 'Finder', 'Get Info', etc.

  * The Linux port now uses an app-icon; this seems to be needed for
    some window managers.
688

689

stephena's avatar
stephena committed
690
4.1 to 4.1.1: (September 14, 2014)
stephena's avatar
stephena committed
691
692
693
694

  * Re-added 'uipalette' option due to popular demand (of at least one
    person :)).

695
696
697
698
  * Fixed bug in Windows port where pressing 'Alt' key combos resulted in
    an annoying system beep.  Currently this is fixed by patching the SDL2
    library and including a modified version with Stella.

stephena's avatar
stephena committed
699

700
4.0 to 4.1: (September 1, 2014)
701

702
703
704
705
  * Improved 'DASH' bankswitching scheme support; there is now a debugger
    tab for changing banks and viewing internal cart RAM, and
    autodetection is now implemented.

706
707
708
  * Added 'MDM' (Menu Driven Megacart) bankswitch scheme as described on
    AtariAge and originally developed by Edwin Blink.

709
710
711
712
  * Improved snapshot viewing in the ROM launcher; snapshots are now
    scaled to the available space, and can better accommodate sizes
    other than those generated by Stella itself.

713
714
715
716
  * Improved support on multi-monitor systems.  Stella will now use the
    same monitor for fullscreen-windowed mode switches.  Special thanks
    to Magnus Lind for patches that added this functionality.

717
  * Removed the 'bank' command from the debugger prompt, as it only worked
718
719
    (inconsistently) with certain bankswitch types.  The bankswitch UI
    should now be used to query/set bank state.
720

721
722
723
  * Fixed bug in disassembly output; instructions at $F000 were never
    being highlighted during execution.

724
725
726
727
  * The UNIX configure script now supports newer versions of Hurd.
    Special thanks to Stephen Kitt for the patch.


728
3.9.3 to 4.0: (July 1, 2014)
729
730
731
732
733
734

  * Ported Stella to SDL2, which brings many new features.  Among the
    largest improvements is native hardware acceleration support for
    Windows (Direct3D) and Linux/OSX (OpenGL).  It is also now possible
    to port Stella to iOS and Android devices using OpenGLES.
    Hardware acceleration is now required, which means up-to-date drivers
stephena's avatar
stephena committed
735
736
    are needed.  Software rendering is still present, but is somewhat
    unoptimized and unsupported going forward.
737
738
739
740
741
742
743

  * Fullscreen video modes now use the desktop resolution.  Switching
    to fullscreen and back to windowed mode no longer rearranges icons
    on your desktop.

  * TIA TV effects are now available in all video modes, since hardware
    acceleration is a requirement.
744

stephena's avatar
stephena committed
745
746
  * Added a much more detailed view of cart extended RAM to a new
    debugger tab.  Special thanks to SpiceWare for this implementation.
747

748
749
  * Added preliminary support for 'DASH' bankswitching scheme by A. Davie.

stephena's avatar
stephena committed
750
751
752
  * The AtariVox and SaveKey controllers now have the ability in the
    debugger to completely erase the virtual EEPROM data.

753
754
755
756
  * Added 'savesnap' debugger prompt command, and also associated
    context menu item to the debugger TIA output area.  This saves the
    current TIA image to a PNG file.

757
758
759
760
  * Added 'hidecursor' commandline option, which allows to completely
    disable showing the mouse cursor (useful on systems that don't have
    a mouse).

761
762
763
  * Removed 'uipalette' option, as the original palette is no longer
    supported.

stephena's avatar
stephena committed
764
765
  * Updated included PNG library to latest stable version.

766

stephena's avatar
stephena committed
767
768
769
770
3.9.2 to 3.9.3: (January 20, 2014)

  * Added bankswitch schemes BF, BFSC, DF, DFSC and 4KSC, thanks to
    RevEng and CPUWIZ of AtariAge.
771

stephena's avatar
stephena committed
772
773
774
775
776
777
778
  * Updated ROM properties for several ROMs, thanks to Omegamatrix of
    AtariAge.

  * Fixed program crash when specifying a bankswitch type that Stella
    didn't recognize; an error message is now displayed.


stephena's avatar
stephena committed
779
3.9.1 to 3.9.2: (August 31, 2013)
780

781
782
783
784
785
786
787
788
789
  * Improved parsing of the DASM lst file for the debugger disassembly;
    it sometimes missed constant declarations.

  * Changed 'usemouse' argument from a true/false option to accept
    'always', 'analog' and 'never'.  This allows to use the mouse as a
    controller under more specific circumstances.  The default is
    'analog', which means the mouse is only used to emulate analog-like
    devices (paddles, trackball, etc).

790
  * Added ability to use bold fonts within the debugger window, which can
791
    be set with the 'dbg.fontstyle' commandline argument as well as in the
792
793
794
795
796
797
    debugger UI Settings dialog.  This is useful for those that find the
    current font too narrow.

  * Renamed 'debuggerres' argument to 'dbg.res'.  All future debugger-
    specific options will start with 'dbg.'.

stephena's avatar
stephena committed
798
799
800
801
  * The TIA 'zoom' area in the debugger now supports scrolling the
    mouse wheel (currently up/down only, as I don't have a sideways
    scrolling mouse to test with).

802

803
3.9 to 3.9.1: (August 21, 2013)
804

805
806
  * Note: because of TIA/6502 changes, the state file format has changed
          again, and old state files will not work with this release.
807

808
  * Several bugfixes and improvements to the debugger:
809
810
811
      - Improved display of debugger when using larger video modes.  There
        are now three font sizes, which are automatically selected when
        the debugger is sized accordingly.  When using larger fonts, the
812
        extra space is now used more efficiently.
813

814
815
816
817
818
      - Fixed bug in disassembly when the mirror used for the current
        PC didn't match the mirror for the current bank.  In this case,
        the disassembler became confused and didn't properly track the
        PC address.

819
820
821
      - Fixed bug in display of current TIA frame number in the UI;
        depending on how breakpoints were set, it was sometimes off by
        one.
822

823
824
825
826
      - Fixed RAM widget Search/Compare textboxes; entering any data and
        then pressing 'Enter' / clicking 'OK' locked the UI until exiting
        and re-entering the debugger.

827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
      - Changed display for various TIA position counters to decimal
        (from hex) in the TIA tab.  Related to this, all data input
        widgets in the UI now have the ability to enter binary,
        decimal or hex values by using the proper leading character
        (\, #, $, respectively).

      - Added 'INTIM Clks' to the 'I/O' tab. which shows the number of
        clocks between each 'step' of the INTIM timer.

      - Added ability to modify 'tiadriven' commandline argument to the
        'TIA' tab, and 'ramrandom' to the 'I/O' tab.  These options were
        available for quite some time, but they weren't exposed in the UI.

      - Added 'cpurandom' commandline argument, and associated UI item
        to the 'I/O' tab.  This works similar to 'ramrandom', and
842
843
844
845
846
        randomizes the contents of the CPU registers on ROM startup.

      - Added 'uhex' debugger prompt command, which toggles all
        hexadecimal display between upper/lower case.  This setting is
        also saved in the settings file as argument 'dbg.uhex'.
847

848
849
      - Removed 'loadsym' command from the debugger prompt, since the
        DASM symbol file is always loaded anyway, making the command
850
851
        redundant.  Related to this, fixed loading symbols with
        ###.name convention; the leading number is now stripped.
852
853
854
855
856
857

      - Added support for DASM lst files (created with the -l option).
        For now, the contents are only partially used, to detect
        constants vs. symbolic addresses in the symbol file.  Eventually,
        further information from the lst file may be used.

858
859
860
861
      - The GRPx and PFx registers in the TIA output now show inactive
        background pixels as either blanked or with the underlying object
        colour, instead of always being black.   This gives a more accurate
        representation of how the registers are actually drawn onscreen.
862
863
864
        Thanks to Tjoppen of AtariAge for this idea and sample code.

      - The 'Source Address' locations for the CPU registers now show
865
        labels where appropriate.
866

867
868
869
870
871
872
873
874
  * Renamed 'Override properties' dialog (accessible from the ROM
    launcher by a right-mouse-button click) to 'Power-on options', with
    the following new options:
      - Set start-up state for both joysticks as well as console select/
        reset buttons.  Related to this, added 'holdjoy01' and 'holdjoy1'
        commandline arguments, and removed 'holdbutton0' argument.

      - The ability to load the ROM directly from this dialog, after
875
        changing any settings, and also to start in the debugger.
876
877
878
879
880
881
882
883

      - Added more detailed information as to how to use this
        functionality to the UI.

      - Buttons held down are reset approx. 0.5 seconds after starting
        the ROM, to simulate pressing and releasing the buttons on a
        real console.

884
  * Fixed bug when using event remapping; changes were being saved only
885
886
    when launching a ROM from the launcher, not in standalone mode.

887
888
  * Improved bankswitch autodetection for newer EF and EFSC ROMs
    generated by batari Basic, thanks to RevEng of AtariAge.
889

890
891
  * Added properties database info for "Princess Rescue" ROM.

892
893
894
895
896
897
898
  * For the Linux/UNIX port:
      - Fixed bug whereby a maximize button was always present in the
        window title bar.  Stella could not be expanded in this way,
        so the button was removed.

      - Added Startup notification protocol patch to the .desktop
        file from Dan Fandrich.
899

900
901
  * Updated included PNG library to latest stable version.

902

903
3.8.1 to 3.9: (June 27, 2013)
904

905
  * Greatly extended functionality of the debugger disassembly:
906
907
908
909
910
      - There is now a new tab which lists information specific to the
        cartridge bankswitching scheme in use.  This includes the ability
        to modify internal state even for esoteric ROMs which don't
        follow the standard layout of 4K per bank.

911
912
913
      - The debugger now generates DASM-compatible disassembled code,
        which can be saved to an external file.  This disassembly is
        based on both a static and runtime analysis, and is extremely
914
915
916
        accurate.  It also automatically differentiates between
        CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella
        only differentiates between CODE/GFX/ROW.  For now, only
917
918
        single-bank (4K and smaller) ROMs are supported; support for
        multi-bank ROMs will come in a future release.
919

920
921
      - The disassembly now recognizes various TIA/RIOT read/write
        mirrors, and marks them as such (for example, INPT4|$30 instead
922
923
        of INPT4 for address $3C).  Special thanks to Omegamatrix for
        sample code and idea for this feature.
924

925
926
      - ROMS less than 2K in size (so called 'Sub2K' ROMs) now show only
        the actual data in the binary.  This means, for example, that a
927
        256 byte ROM will show only 256 bytes in the disassembly, instead
928
        of padding duplicated data to 2K boundary.
929

930
931
932
      - Fixed bug when entering patched bytes; the current number base
        wasn't being used.

933
934
      - Fixed labelling in ROW directives; it wasn't accurately setting
        a label in the case where it occurred in the middle of the data.
935

936
937
938
939
940
941
      - Added a new dialog for changing Distella settings, located by
        right-clicking the disassembly code.

      - The commandline option 'dis.resolvedata' has been renamed to
        'dis.resolve', with new usage (see manual for further details).

stephena's avatar
stephena committed
942
  * Fixed regression in handling ZIP files (as compared to version 3.7.5)
943
944
    created with newer versions of the ZIP program.  Related to this, added
    better error messages for invalid/missing/unreadable ROM files.
stephena's avatar
stephena committed
945

946
947
948
949
  * Added 'snapname' commandline argument and associated UI item, for
    specifying whether snapshots should be saved using either the internal
    ROM database name or the actual ROM filename.  This feature was
    present in older releases of Stella, and due to popular demand it's
950
951
    now back again.  Related to this, added a new dialog specifically for
    the numerous snapshot-related items.
952

953
954
955
956
  * Fixed bug in Linux/OSX versions when starting Stella for the first
    time; it was previously creating mislabeled directories to store
    settings, snapshots, etc.

957
958
959
  * Fixed redundant "New console created" message when entering the same
    ROM multiple times from the ROM launcher.

960
  * Updated profile database for "BasketBall" ROMs; the joysticks are now
961
    swapped by default, which allows one and two-player games to work
962
963
    correctly.

964
965
966
967
  * SuperCharger/AR ROMs now ignore the 'ramrandom' setting, and start with
    RAM containing all zeroes.  This seems to fix issues with Dragonstomper
    always starting in exactly the same state.

stephena's avatar
stephena committed
968
  * Fixed issue when debugging CompuMate ROMs; keystrokes entered while
969
970
    debugging would be interpreted as typing on the CompuMate keyboard.

971
972
973
974
  * Changed colour of the 'current PC indicator' in the debugger to
    match the one used for line selection.  This makes it easier to
    see for those with problems seeing lighter colours.

975
976
977
978
  * Improved functionality of the various pop-up dialogs and context
    menus in the UI; they can now be navigated more fully by the keyboard
    and mouse.

979
980
981
982
  * Updated internal ROM properties database to ROM-Hunter version 9
    (thanks go to RomHunter for his tireless research in this area).
    Related to this, updated the snapshot collection.

983
  * Updated included PNG and ZLIB libraries to latest stable version.
984

985

986
3.8 to 3.8.1: (March 3, 2013)
987
988
989
990
991

  * Added support for TIA RSYNC writes, thanks to Omegamatrix of AtariAge.
    This allows the recently released "Extra Terrestrials" ROM to run, as
    well as improving emulation of "Fatal Run" and several other test ROMs.

stephena's avatar
stephena committed
992
  * Fixed typo in TIA HMOVE writes, thanks to Thomas Jentzsch.  This fixes
993
994
    the constant collision issues in "Kool-Aid Man", and several other
    homebrew ROMs.
stephena's avatar
stephena committed
995

stephena's avatar
stephena committed
996
997
998
  * Fixed sound issues on OSX PPC machines (all sound was in little-endian
    format, but PPC is big-endian).

999
1000
  * The OSX DMG archive now contains proper modification dates.

1001

stephena's avatar
stephena committed
1002
3.7.5 to 3.8: (February 21, 2013)
1003
1004

  * Huge changes to the sound system:
1005
1006
      - The sound code now uses 16-bit signed samples instead of 8-bit
        unsigned samples, making it more compatible with a wider variety of
1007
1008
1009
1010
1011
        systems.
      - Improved sound output for several ROMs, including "Space Rocks"
        (the 'heartbeat' sound can now be clearly heard).
      - The 'volume clipping' option has been removed, since in 16-bit
        mode it's no longer needed.
1012
      - The 'Tia freq' option has been removed.
1013
1014
1015
1016
1017
1018
1019
      - Selecting more common sample rates (other than 31400) now works
        much better, but there are still a few ROMS (like Quadrun) where
        31400Hz still works best.

  * Many changes to handling ZIP archives:
      - Files in multiple levels are now recognized.  This fixes issues
        in Windows where such files couldn't be loaded at all, and in all
1020
1021
        systems where ROMs with the same name (but in different
        directories) weren't being recognized.
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
      - ZIP contents are now handled more intelligently.  Archives
        containing only one ROM are automatically loaded, whereas those
        with multiple files are treated as directories.
      - Opening an archive from the commandline now works as in the UI,
        where opening a multi-ROM archive will pop up the UI and show the
        archive contents (as a directory).
      - The ZIP code behind the scenes is now much faster by making use
        of caching (the old code was actually from 1998!).
      - This new 'archive' infrastructure may eventually lead to 7-Zip
        support, as well as 'virtual' formats (such as showing the list
1032
        of files for 2in1/4in1/8in1/etc within the UI).
1033

1034
1035
1036
  * Improved bankswitch autodetection for FA2 ROMs; 29K and 32K versions
    (meant for Harmony cart) are now recognized.

stephena's avatar
stephena committed
1037
1038
1039
  * Improved bankswitch autodetection for X07 ROMs (although there's only
    two known ROMs in existence, so the detection probably isn't robust).

1040
1041
1042
  * Tweaked bankswitch autodetection for the 0840, F8 and FE schemes;
    several homebrews that didn't run before now work correctly.

stephena's avatar
stephena committed
1043
  * Fixed regression in RIOT INTIM reads; at least one known ROM
1044
1045
    (Mr. Roboto Berzerk hack) wasn't working properly.

1046
1047
1048
1049
  * Fixed bug in the debugger with RIOT INTIM/TIMINT display; reads
    were being done multiple times, changing the state of the
    registers and resulting in incorrect emulation.

1050
1051
1052
1053
  * Worked around bug in debugger disassembly of zero-page RAM; for now,
    the resolving of address vs. data sections is turned off in such a
    case.  This fixes lockups in 'Meltdown' ROM.

1054
1055
1056
1057
1058
  * Added support for different directories for saving/loading PNG
    files.  These are set with the 'snapsavedir' and 'snaploaddir'
    commandline arguments (which replace the old 'snapdir'), and are
    also available within the UI.

1059
1060
1061
1062
1063
1064
1065
  * Changed 'eepromdir' commandline argument to 'nvramdir', and changed
    the default location to BASEDIR/nvram (where BASEDIR depends on your
    OS).  This means all your EEPROM and Flash files will have to be
    manually moved to this new directory.  This affects developers, and
    those people playing ROMs with AtariVox/SaveKey support as well as
    the newer 'Star Castle' FA2 ROMs.

1066
  * Updated included PNG and ZLIB libraries to latest stable version.
1067

1068

1069
3.7.4 to 3.7.5: (December 22, 2012)
1070

stephena's avatar
stephena committed
1071
1072
1073
  * Improved regressions in PAL format autodetection, introduced in the
    past several releases.

1074
1075
1076
1077
1078
1079
  * Fixed crash when loading invalid PNG files in ROM browser.

  * Snapshots generated by Stella now include more informative info, such
    as the build number, platform architecture, TV effects in use, etc.


1080
1081
1082
1083
1084
1085
3.7.3 to 3.7.4: (October 31, 2012)

  * Fixed screen blanking regression in 'Video Chess', and improved
    behaviour of ROMs that don't use VSYNC.


1086
3.7.2 to 3.7.3: (October 26, 2012)
1087

1088
1089
1090
  * Note: because of TIA/RIOT changes, the state file format has changed
          again, and old state files will not work with this release.

1091
  * Improved handling of 'illegal' VSYNC signals, which sometimes created
1092
1093
    'short' frames that caused massive flickering.  Also improved
    related behaviour when VSYNC isn't used at all.
1094

1095
1096
1097
1098
  * Improved sound generation with ROMs that have irregular scanline
    counts.  This fixes many demo ROMs as well as Quadrun, where
    previously there would be 'gaps' in the sound output.

1099
1100
1101
1102
  * Improved emulation of RIOT chip, in particular the behaviour of
    reading from TIMINT.  Also, D6 of the Interrupt Flag register is now
    properly set on active transition of the PA7 pin.

stephena's avatar
stephena committed
1103
1104
  * Fixed bug in DPC+ bankswitch scheme; the music in several ROMS wasn't
    playing correctly.
stephena's avatar
stephena committed
1105

1106
1107
1108
1109
  * The ROM properties database now uses 'Auto' instead of 'Auto-select'
    everywhere.  This makes for less typing when running from the
    commandline.

1110
1111
  * Updated included PNG library to latest stable version.

1112

1113
1114
1115
1116
1117
1118
3.7.1 to 3.7.2: (June 10, 2012)

  * Fixed bug in handling filenames with the '~' character, as is used
    extensively by RomHunter rom-sets.


stephena's avatar
stephena committed
1119
3.7 to 3.7.1: (June 8, 2012)
1120

1121
1122
1123
  * Note: because of TIA changes, the state file format has changed again,
          and old state files will not work with this release.

1124
  * Improved TIA emulation with ROMs that have too few or too many
1125
1126
    scanlines; the output is now more accurate compared to a real TV.
    Special thanks to Omegamatrix of AtariAge for test ROMs in this area.
1127

1128
1129
  * Modified hotkey for "Change console palette" (Control-f) to also
    change the display properties of the TIA.  This allows you to switch
1130
    between NTSC/PAL/SECAM (and variant) modes dynamically.  Related to
1131
1132
1133
    this, added Shift-Control-f key to step backwards through the
    available modes.

1134
1135
1136
1137
  * Added '64in1' and '128in1' multicart bankswitching schemes, which work
    the same as the 2in1/4in1/etc ones (Control-r switches to each
    consecutive game in the ROM).

1138
1139
  * Fixed several bugs in DPC+ bankswitching scheme, including ability
    to load and save state files.  As well, ROMs now work correctly after
1140
    console format autodetection.
1141

1142
1143
1144
1145
  * Fixed bugs in handling relative filenames on the commandline,
    introduced in the last release.  The new functionality should be much
    more robust.

1146

1147
3.6.1 to 3.7: (June 1, 2012)
1148
1149
1150
1151
1152
1153
1154
1155

  * Added Blargg TV effects, with presets for Composite, S-video, RGB,
    and badly adjusted TV, and well as a custom mode with full
    configurability of contrast, brightness, gamma, etc.  Many
    keyboard shortcuts and commandline arguments were added to support
    this; see the documentation for a detailed explanation.  These
    effects are OpenGL-only.  Special thanks to Ian Bogost and the
    Georgia Tech Atari Team for the preliminary implementation.
1156
1157
1158

  * Updated the CompuMate keyboard handler to recognize more keys on an
    actual keyboard, instead of having to remember the weird combinations
1159
    used on the original CompuMate keyboard (although those original keys
1160
1161
1162
    will continue to work).  Related to this, fixed bug whereby
    'ghost keys' would be detected by the CompuMate, particularly after
    pressing 'Enter' to start a game from the ROM launcher.
1163

1164
1165
  * Added emulation for MindLink controller using the mouse; the 'Bionic
    Breakthrough' and 'Telepathy' ROMs now work.
1166

1167
1168
1169
  * Updated FA2 bankswitch scheme (Star Castle) to emulate load/save
    high score functionality to the Harmony cart flash RAM.

1170
  * Added ability for ROM launcher to 'descend' into ZIP files when it
1171
1172
    contains more than one ROM file.  This means you no longer have to
    unzip a multi-file archive before using each ROM.  Thanks go to Roland
1173
1174
    Schabenberger (webOS maintainer) for this idea and sample code.