forked from stella-emu/stella
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges.txt
3443 lines (2407 loc) · 143 KB
/
Changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
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
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
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
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
===========================================================================
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
===========================================================================
5.0.2 to 5.1: (December xx, 2017)
* Huge improvements to the disassembly view in the debugger and
disassembly files created:
- reformatting in debugger for better space utilization
- 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)
* Fixed Genesis controller autodetect (Stay Frosty 2, Scramble, etc).
* 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.
* Fixed bug in TIA collision handling; it is now disabled in VBlank.
* Fixed wrong display of HM values in debugger after 'HMCLR' has been
executed.
* 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.
* 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.
* 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.
* 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.
* Fixed cheat codes, so 7 digits codes are now accepted as described in
the doc.
* Fixed swapped ports being displayed wrong in System Logs and debugger.
* Added options to erase the AtariVox/Savekey for all ROMs or the current
one.
* 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.
* Improved tab auto-complete in debugger
* Added conditional traps and savestate creation to debugger
* 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.
* Added 'Options...' button to debugger which gives access to the options
menu during debugging.
* Added debugger pseudo-register '_fcycles', which gives the number of
CPU cycles that have occurred since the frame started.
* Added debugger pseudo-register '_cyclesLo' and '_cyclesHi', which give
the number of CPU cycles that have occurred since emulation started.
* Extended debugger 'dump' command to take a second argument, indicating
the end of the range to dump data.
* Added widgets for trackball and SaveKey/AtariVox controllers
* 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).
* Added ROM properties for 'Scramble' ROMs, and updated info for all
"Champ Games" ROMs.
* Added ROM properties for 'Zippy the Porcupine' ROMs, and updated
info for all "Chris Spry (Sprybug)" ROMs.
* Fix error when building with uClibc-ng for ARM (thanks to Sergio Prado).
* Updated included PNG library to latest stable version.
-Have fun!
5.0.1 to 5.0.2: (August 20, 2017)
* Improved emulation of Trakball controller, eliminating bias in left/
right directions. Thanks to Thomas Jentzsch for the idea and code.
Related to this, added 'tsense' commandline argument and associated
UI item, to allow changing sensitivity of mouse trackball emulation.
* Added preliminary support for multi-threading in the Blargg TV effects
code. This is still a WIP; more improvements are coming. Related to
this, further optimized the TIA rendering code. Also added 'threads'
commandline argument and associated UI item to enable/disable
multi-threading. Thanks to Thomas Jentzsch for the bulk of the work
in this area.
* Blargg TV effects now no longer cut off the right side of the image
(by several pixels) in certain cases.
* Updated CDF scheme to latest version from Spiceware. In addition,
this scheme now supports versioning, so older and newer ROMs will
continue to work.
* 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.
* 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).
* Fixed lockups when entering the debugger under certain circumstances.
* The debugger 'listtraps' command now shows all traps set, not just
the first one(s).
* Reverted joystick changes for Decathlon ROMs from last release, as
it was added by mistake.
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.
* 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.
* Codebase now uses C++14 features.
4.7.3 to 5.0: (July 16, 2017)
* Note: because of major TIA/6502/RIOT changes, the state file format
has changed, and old state files will not work with this release.
* Stella has moved from Sourceforge to Github.
* Completely new TIA core is now available, ported from 6502ts by
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
- Line artifacts in Title Match Pro Wrestling and Realsports Boxing
are fixed
- 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
emulated correctly
- 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
- 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.
* Implemented new phosphor emulation mode, which is much closer to real
TV output. Related to this, added ability to change the default
phosphor blend level in the UI and through the new 'tv.phosblend'
commandline argument. Special thanks to Thomas Jentzsch for the idea
and implementation.
* 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).
* 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.
* Much improved RIOT timer emulation never before seen in any emulator.
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.
* Added BUS (experimental) and CDF bankswitching schemes, and also
ARM Timer 1 support; special thanks to SpiceWare for the code.
* 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.
* Various improvements to the debugger and command prompt:
- 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)
- Added 'palette' command, which shows a color swatch of the
currently active TIA palette
- Added 'debugcolors' command, which shows a legend for 'fixed debug
colors' mode
- The previous trap'm' commands now work when setting TIA read
addresses; previously they only worked for write addresses
- The previous trap'm' commands are now renamed 'trap', 'trapread'
and 'trapwrite'
- 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
- Various UI items that previously required a double-click to toggle
(pixel and bit widgets) now require only a single-click.
- Command completion now works with internal functions and pseudo-ops
(basically, anything starting with the '_' character)
- System labels (aka, register names, etc) can now be typed in lower-
case. Previously, these labels always had to be uppercase.
- 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.
- Debugger '.lst' and '.sym' files are now searched based on the name
of the ROM file, and not on the internal properties name.
- Snapshots can now be saved by pressing the F12 key (the various
other ways to save snapshots still exist).
* 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
was blanked out (black) instead of being drawn in greyscale. Also, the
image is now synchronized, instead of being two frames behind.
* 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.
* 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.
* When in 'ROM launcher mode', Stella now uses slightly less CPU time.
More work is required in this area, though.
* Added ROM properties for D.K. VCS homebrew ROM, thanks to Andreas
Dietrich.
* 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.
* Fixed long-standing bug in 3-voice music in DPC+ bankswitching scheme;
the music now sounds much more like the real thing.
* 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.
* For the OSX port:
- Always use the built-in png and zlib libraries instead of the system
versions.
- The preferences file has changed from 'net.sourceforge.Stella.plist'
to 'Stella-emu.plist'. To keep your old settings, run the following
commands from the terminal:
cd ~/Library/Preferences
mv net.sourceforge.Stella.plist Stella-emu.plist
* Updated internal ROM properties database to ROM-Hunter version 13
(thanks go to RomHunter for his tireless research in this area).
Related to this, updated the snapshot collection.
* Updated included PNG and ZLIB libraries to latest stable version. Also,
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.
* Updated build scripts for Visual Studio 2017 (Windows) and MacOS
Sierra (latest version of Xcode), and make these the minimum supported
versions for building Stella.
* Updated UNIX configure script to work with the clang 5+ and gcc 7+
compiler versions, and fixed compile issues on AArch64 and ppc64le
architectures.
4.7.2 to 4.7.3: (Nov. 21, 2016)
* Added preliminary support for the 3E+ bankswitching scheme, developed
by Thomas Jentzsch.
* Fixed HMOVE positioning bug that occurred under certain circumstances.
Thanks to Omegamatrix of AtariAge for the bug report and patch to fix
the issue.
* 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.
* 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.
4.7.1 to 4.7.2: (Mar. 25, 2016)
* Fixed bug when entering and exiting the debugger; sometimes the
character corresponding to the '`' key would be output in the
prompt area.
* 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.
* 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.
4.7 to 4.7.1: (Feb. 13, 2016)
* Improved TV 'jitter' emulation; the recovery time can now be spread
over multiple frame, to simulate a real TV taking multiple frames to
recover. Related to this, added new commandline argument
'tv.jitter_recovery' to set the recovery time. Finally, enabling
the jitter effect and the recovery time are now accessible through
the UI. Special thanks to SpiceWare of AtariAge for the initial idea
and implementation.
* 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.
* 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.
* 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,
since SDL2 does not yet expose this information. The program is
called 'evdev-joystick', and will be released separately from Stella.
* 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.
4.6.7 to 4.7: (January 25, 2016)
* 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
useful since on a real console most paddle games use very little of
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.
* Fixed bug in 'Score mode' in TIA emulation; the TIA object colours
were correct, but the associated priority was sometimes incorrect.
* 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.
* 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.
* 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.
* 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!
4.6.6 to 4.6.7: (October 28, 2015)
* Fixed bug when using real paddles plugged into a Stelladaptor
2600-daptor device; the movement was very erratic.
* Fixed small logic error in 'MDM' bankswitching scheme.
4.6.5 to 4.6.6: (October 11, 2015)
* 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.
* Fixed bug in 'MDM' bankswitch scheme; bankswitching wasn't being
done under certain circumstances.
4.6.1 to 4.6.5: (September 26, 2015)
* Added mappable events for toggling TV color/BW, left difficulty A/B
and right difficulty A/B. This means that one key, joystick button,
etc. can be used to toggle each event. Thanks to Buzbard of AtariAge
for the suggestion.
* 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.
* 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.
* 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.
* 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).
* Fixed memory leak; the game console wasn't being closed after exiting
a ROM.
* 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.
* Updated included PNG library to latest stable version.
4.6 to 4.6.1: (April 22, 2015)
* Fixed bug whereby text input could not be entered in certain widgets
in the debugger.
* Updated UNIX configure script to work with GCC 5.x compilers.
4.5 to 4.6: (March 21, 2015)
* 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.
* 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.
* 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.
* Fixed bug when running ROMs using AtariVox controllers; the app would
crash upon exiting the ROM.
* Snapshot functionality now works while the emulation is paused.
* Certain textfields in the UI now have filtering enabled, preventing
insertion of illegal characters. This will be extended throughout
the code in future releases.
* DataGridWidgets in the debugger now respond to keypad '+' and '-'.
* Updated included PNG library to latest stable version.
4.2 to 4.5: (January 1, 2015)
* 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,
Clang 3.3, gcc 4.9, Xcode 6, etc). Eventually, this will bring more
bug-free and (hopefully) faster code.
* Fixed major bug with joysticks, where mapping was being lost on reset,
the app would crash when plugging/unplugging certain sticks, etc.
* Fixed major (but rare) crash that could occur when state files were
zero'ed or corrupted.
* 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.
* Added preliminary support for 'WD' (Wickstead Design) bankswitching
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).
* The debugger 'reset' command now does a complete system reset,
instead of simply setting the PC to the reset vector address.
* The 'listdelay' command now accepts a value of zero, indicating that
list-skipping (jumping to a line in a list by keypress) is disabled.
* The 'ctrlcombo' command now has a GUI item, allowing it to be changed
from within the application.
* 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.
* 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.
* 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.
* Updated included PNG library to latest stable version.
4.1.1 to 4.2: (October 28, 2014)
* 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
have been changed; they now use the same key but with Control instead
of Alt (Control-F for frame advance, etc).
* 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.
* 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.
* Fixed 'MDM' scheme to trigger bankswitching on writes to hotspots
(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.
* 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.
4.1 to 4.1.1: (September 14, 2014)
* Re-added 'uipalette' option due to popular demand (of at least one
person :)).
* 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.
4.0 to 4.1: (September 1, 2014)
* Improved 'DASH' bankswitching scheme support; there is now a debugger
tab for changing banks and viewing internal cart RAM, and
autodetection is now implemented.
* Added 'MDM' (Menu Driven Megacart) bankswitch scheme as described on
AtariAge and originally developed by Edwin Blink.
* 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.
* 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.
* Removed the 'bank' command from the debugger prompt, as it only worked
(inconsistently) with certain bankswitch types. The bankswitch UI
should now be used to query/set bank state.
* Fixed bug in disassembly output; instructions at $F000 were never
being highlighted during execution.
* The UNIX configure script now supports newer versions of Hurd.
Special thanks to Stephen Kitt for the patch.
3.9.3 to 4.0: (July 1, 2014)
* 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
are needed. Software rendering is still present, but is somewhat
unoptimized and unsupported going forward.
* 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.
* Added a much more detailed view of cart extended RAM to a new
debugger tab. Special thanks to SpiceWare for this implementation.
* Added preliminary support for 'DASH' bankswitching scheme by A. Davie.
* The AtariVox and SaveKey controllers now have the ability in the
debugger to completely erase the virtual EEPROM data.
* 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.
* Added 'hidecursor' commandline option, which allows to completely
disable showing the mouse cursor (useful on systems that don't have
a mouse).
* Removed 'uipalette' option, as the original palette is no longer
supported.
* Updated included PNG library to latest stable version.
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.
* 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.
3.9.1 to 3.9.2: (August 31, 2013)
* 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).
* Added ability to use bold fonts within the debugger window, which can
be set with the 'dbg.fontstyle' commandline argument as well as in the
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.'.
* 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).
3.9 to 3.9.1: (August 21, 2013)
* Note: because of TIA/6502 changes, the state file format has changed
again, and old state files will not work with this release.
* Several bugfixes and improvements to the debugger:
- 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
extra space is now used more efficiently.
- 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.
- Fixed bug in display of current TIA frame number in the UI;
depending on how breakpoints were set, it was sometimes off by
one.
- 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.
- 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
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'.
- Removed 'loadsym' command from the debugger prompt, since the
DASM symbol file is always loaded anyway, making the command
redundant. Related to this, fixed loading symbols with
###.name convention; the leading number is now stripped.
- 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.
- 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.
Thanks to Tjoppen of AtariAge for this idea and sample code.
- The 'Source Address' locations for the CPU registers now show
labels where appropriate.
* 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
changing any settings, and also to start in the debugger.
- 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.
* Fixed bug when using event remapping; changes were being saved only
when launching a ROM from the launcher, not in standalone mode.
* Improved bankswitch autodetection for newer EF and EFSC ROMs
generated by batari Basic, thanks to RevEng of AtariAge.
* Added properties database info for "Princess Rescue" ROM.
* 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.
* Updated included PNG library to latest stable version.
3.8.1 to 3.9: (June 27, 2013)
* Greatly extended functionality of the debugger disassembly:
- 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.
- 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
accurate. It also automatically differentiates between
CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella
only differentiates between CODE/GFX/ROW. For now, only
single-bank (4K and smaller) ROMs are supported; support for
multi-bank ROMs will come in a future release.
- The disassembly now recognizes various TIA/RIOT read/write
mirrors, and marks them as such (for example, INPT4|$30 instead
of INPT4 for address $3C). Special thanks to Omegamatrix for
sample code and idea for this feature.
- 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
256 byte ROM will show only 256 bytes in the disassembly, instead
of padding duplicated data to 2K boundary.
- Fixed bug when entering patched bytes; the current number base
wasn't being used.
- Fixed labelling in ROW directives; it wasn't accurately setting
a label in the case where it occurred in the middle of the data.
- 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).
* Fixed regression in handling ZIP files (as compared to version 3.7.5)
created with newer versions of the ZIP program. Related to this, added
better error messages for invalid/missing/unreadable ROM files.
* 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
now back again. Related to this, added a new dialog specifically for
the numerous snapshot-related items.
* Fixed bug in Linux/OSX versions when starting Stella for the first
time; it was previously creating mislabeled directories to store
settings, snapshots, etc.
* Fixed redundant "New console created" message when entering the same
ROM multiple times from the ROM launcher.
* Updated profile database for "BasketBall" ROMs; the joysticks are now
swapped by default, which allows one and two-player games to work
correctly.
* 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.
* Fixed issue when debugging CompuMate ROMs; keystrokes entered while
debugging would be interpreted as typing on the CompuMate keyboard.
* 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.
* 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.
* 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.
* Updated included PNG and ZLIB libraries to latest stable version.
3.8 to 3.8.1: (March 3, 2013)
* 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.
* Fixed typo in TIA HMOVE writes, thanks to Thomas Jentzsch. This fixes
the constant collision issues in "Kool-Aid Man", and several other
homebrew ROMs.
* Fixed sound issues on OSX PPC machines (all sound was in little-endian
format, but PPC is big-endian).
* The OSX DMG archive now contains proper modification dates.
3.7.5 to 3.8: (February 21, 2013)
* Huge changes to the sound system:
- The sound code now uses 16-bit signed samples instead of 8-bit
unsigned samples, making it more compatible with a wider variety of
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.
- The 'Tia freq' option has been removed.
- 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
systems where ROMs with the same name (but in different
directories) weren't being recognized.
- 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
of files for 2in1/4in1/8in1/etc within the UI).
* Improved bankswitch autodetection for FA2 ROMs; 29K and 32K versions
(meant for Harmony cart) are now recognized.
* Improved bankswitch autodetection for X07 ROMs (although there's only
two known ROMs in existence, so the detection probably isn't robust).
* Tweaked bankswitch autodetection for the 0840, F8 and FE schemes;
several homebrews that didn't run before now work correctly.
* Fixed regression in RIOT INTIM reads; at least one known ROM
(Mr. Roboto Berzerk hack) wasn't working properly.
* 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.
* 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.
* 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.
* 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.
* Updated included PNG and ZLIB libraries to latest stable version.