forked from mgba-emu/mgba
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
1450 lines (1425 loc) · 69 KB
/
CHANGES
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
0.9.0: (Future)
Features:
- e-Reader card scanning
- Add APNG recording
Emulation fixes:
- ARM: Fix ALU reading PC after shifting
- ARM: Fix STR storing PC after address calculation
- ARM: Fix timing on Thumb shift instructions
- GB: Fix GBC game registers after skipping BIOS
- GB MBC: Support 4MB MBC30 ROMs (fixes mgba.io/i/1713)
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
- GB Video: Fix BGPS value after skipping BIOS (fixes mgba.io/i/1717)
- GBA: Add missing RTC overrides for Legendz games
- GBA: Fix timing advancing too quickly in rare cases
- GBA BIOS: Implement dummy sound driver calls
- GBA BIOS: Improve HLE BIOS timing
- GBA BIOS: Reset renderer when RegisterRamReset called (fixes mgba.io/i/1756)
- GBA DMA: Linger last DMA on bus (fixes mgba.io/i/301 and mgba.io/i/1320)
- GBA Memory: Improve gamepak prefetch timing
- GBA SIO: Fix Multiplayer busy bit
- GBA SIO: Fix double-unloading active driver
- GBA SIO: Fix copying Normal mode transfer values
- GBA Timers: Fix deserializing count-up timers
- GBA Video: Latch scanline at end of Hblank (fixes mgba.io/i/1319)
- GBA Video: Fix Hblank timing
- GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702)
- GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759)
- GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/1701)
- GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/1712)
Other fixes:
- 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771)
- All: Improve export headers (fixes mgba.io/i/1738)
- ARM Debugger: Clear low bit on breakpoint addresses (fixes mgba.io/i/1764)
- CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755)
- Core: Ensure ELF regions can be written before trying
- Core: Fix ELF loading regression (fixes mgba.io/i/1669)
- Core: Fix crash modifying hash table entry (fixes mgba.io/i/1673)
- GB Video: Fix some cases where SGB border doesn't draw to mutli-buffers
- GBA: Reject incorrectly sized BIOSes
- Debugger: Don't skip undefined instructions when debugger attached
- Qt: Force OpenGL paint engine creation thread (fixes mgba.io/i/1642)
- Qt: Fix OpenGL 2.1 support (fixes mgba.io/i/1678)
- Qt: Fix static compilation in MinGW (fixes mgba.io/i/1769)
Misc:
- 3DS: Clean up legacy initialization (fixes mgba.io/i/1768)
- Debugger: Keep track of global cycle count
- FFmpeg: Add looping option for GIF/APNG
- GBA Serialize: Only flunk BIOS check if official BIOS was expected
- Qt: Renderer can be changed while a game is running
- Qt: Add hex index to palette view
- Qt: Add transformation matrix info to sprite view
- Qt: Disable Replace ROM option when no game loaded
- Qt: Defer texture updates until frame is drawn (fixes mgba.io/i/1590)
- Qt: Set icon for Discord Rich Presence
0.8.1: (2020-02-16)
Emulation fixes:
- GB Serialize: Fix timing bug loading channel 4 timing
- GBA: Fix multiboot entry point while skipping BIOS
- GBA BIOS: Fix undefined instruction HLE behavior
- GBA DMA: Fix invalid audio DMA parameters
- GBA Memory: Misaligned SRAM writes are ignored
- GBA Serialize: Fix serializing DMA transfer register
- GBA Serialize: Fix audio DMA timing deserialization
- GBA Video: Fix OAM not invalidating after reset (fixes mgba.io/i/1630)
- GBA Video: Fix backdrop blending on lines without sprites (fixes mgba.io/i/1647)
- GBA Video: Fix OpenGL sprite flag priority
Other fixes:
- Core: Fix race condition initializing thread proxy
- Core: Fix integer overflow in ELF loading
- FFmpeg: Fix crash when -strict -2 is needed for vcodec or container
- FFmpeg: Disallow recording video with no audio nor video
- GBA: Automatically skip BIOS for multiboot ROMs
- Qt: Only dynamically reset video scale if a game is running
- Qt: Fix race condition with proxied video events
- Qt: Fix color selection in asset view (fixes mgba.io/i/1648)
- Qt: Fix missing OSD messages
- Qt: Fix crash unloading shaders
- Qt: Fix toggled actions on gamepads (fixes mgba.io/i/1650)
- Qt: Fix extraneous dialog (fixes mgba.io/i/1654)
- Qt: Fix window title not updating after shutting down game
- Qt: Fix GIF view not allowing manual filename entry
- Qt: Fix non-GB build (fixes mgba.io/i/1664)
- Qt: Fix pausing Qt Multimedia audio (fixes mgba.io/i/1643)
- Qt: Fix invalid names for modifier keys (fixes mgba.io/i/525)
- SDL: Refresh stale pointers after adding a joystick (fixes mgba.io/i/1622)
- Util: Fix crash reading invalid ELFs
- VFS: Fix handle leak when double-mapping (fixes mgba.io/i/1659)
Misc:
- FFmpeg: Add more presets
- Qt: Fix non-SDL build (fixes mgba.io/i/1656)
- SDL: Use DirectSound audio driver by default on Windows
- Switch: Make OpenGL scale adjustable while running
0.8.0: (2020-01-21)
Features:
- Improved logging configuration
- One-Player BattleChip/Progress/Beast Link Gate support
- Add Game Boy Color palettes for original Game Boy games
- Debugger: Add unary operators and memory dereferencing
- GB: Expose platform information to CLI debugger
- Support Discord Rich Presence
- Debugger: Add tracing to file
- Enhanced map viewer, supporting bitmapped GBA modes and more displayed info
- OpenGL renderer with high-resolution upscaling support
- Experimental high level "XQ" audio for most GBA games
- Interframe blending for games that use flicker effects
- Frame inspector for dissecting and debugging rendering
- Switch: Option to use built-in brightness sensor for Boktai
- Ports: Ability to enable or disable all SGB features (closes mgba.io/i/1205)
- Ports: Ability to crop SGB borders off screen (closes mgba.io/i/1204)
- Cheats: Add support for loading Libretro-style cht files
- GBA Cheats: Add support for loading EZ Flash-style cht files
- Support for unlicensed Wisdom Tree Game Boy mapper
- Qt: Add export button for tile view (closes mgba.io/i/1507)
- Qt: Add recent game list clearing (closes mgba.io/i/1380)
- GB: Yanking gamepak now supported
- Qt: Memory range dumping (closes mgba.io/i/1298)
Emulation fixes:
- GB: Fix using boot ROM with MMM01 games
- GB Audio: Only reset channel 3 sample in DMG mode
- GB Audio: Sample inactive channels (fixes mgba.io/i/1455, mgba.io/i/1456)
- GB Audio: Fix channel 4 volume (fixes mgba.io/i/1529)
- GB I/O: Filter IE top bits properly (fixes mgba.io/i/1329)
- GB Memory: Better emulate 0xFEA0 region on DMG, MGB and AGB
- GB Video: Delay LYC STAT check (fixes mgba.io/i/1331)
- GB Video: Fix window being enabled mid-scanline (fixes mgba.io/i/1328)
- GB Video: Fix mode 0 window edge case (fixes mgba.io/i/1519)
- GB Video: Fix color scaling in AGB mode
- GBA: All IRQs have 7 cycle delay (fixes mgba.io/i/539, mgba.io/i/1208)
- GBA: Reset now reloads multiboot ROMs
- GBA BIOS: Fix multiboot entry point (fixes Magic Floor)
Other fixes:
- Core: Improved lockstep driver reliability (Le Hoang Quyen)
- FFmpeg: Drain recording buffers
- GB: Fix reading ROM immediately after unmapping BIOS
- GB SIO: Fix lockstep failing games aren't reloaded
- GBA Cheats: Fix value incrementing in CB slide codes (fixes mgba.io/i/1501)
- Libretro: Fix crash changing allowing opposing directions (hhromic)
- Qt: Fix some Qt display driver race conditions
- Qt: Fix menu bar staying hidden in full screen (fixes mgba.io/i/317)
- Qt: Only show emulator restart warning once per settings saving
- Qt: Fix LibraryController initialization (fixes mgba.io/i/1324)
- Shaders: Fix gba-color shader resolution (fixes mgba.io/i/1435)
- Switch: Fix audio when video rate desyncs (fixes mgba.io/i/1532)
Misc:
- CMake: Don't use libzip on embedded platforms (fixes mgba.io/i/1527)
- Core: Add keysRead callback
- Core: Create game-related paths if they don't exist (fixes mgba.io/i/1446)
- Core: Add more memory search ops (closes mgba.io/i/1510)
- Debugger: Make tracing compatible with breakpoints/watchpoints
- Debugger: Print breakpoint/watchpoint number when inserting
- Feature: Switch from ImageMagick to FFmpeg for GIF generation
- FFmpeg: Support audio-only recording
- GB Memory: Support running from blocked memory
- GBA BIOS: Add timings for HLE BIOS math functions (fixes mgba.io/i/1396)
- GBA BIOS: Fix clobbered registers in CpuSet (fixes mgba.io/i/1531)
- GBA Savedata: EEPROM performance fixes
- GBA Savedata: Automatically map 1Mbit Flash files as 1Mbit Flash
- Debugger: Add breakpoint and watchpoint listing
- mGUI: Remember name and position of last loaded game
- OpenGL: Only resize textures when needed
- Qt: Don't unload ROM immediately if it crashes
- Qt: Support switching webcams
- Qt: Cap window size on start to monitor size
- Qt: Open a message box for Qt frontend errors
- Qt: Increase maximum magnifications and scaling
- Qt: Add native FPS button to settings view
- Qt: Improve sync code
- Qt: Add option to pause on minimizing window (closes mgba.io/i/1379)
- Qt: Scale pixel color values to full range (fixes mgba.io/i/1511)
- Qt: Remove What's This icon from dialogs
- Qt: Printer quality of life improvements (fixes mgba.io/i/1540)
- Qt: Add copy and QoL improvements to graphic views (closes mgba.io/i/1541)
- Qt: Show list of all sprites in sprite view
- Qt: Add option for disabling OSD messages
- Qt, OpenGL: Disable integer scaling for dimensions that don't fit
- SM83: Support PC-relative opcode decoding
- Switch: Dynamic display resizing
- Switch: Support file associations
- Vita: L2/R2 and L3/R3 can now be mapped on PSTV (fixes mgba.io/i/1292)
Changes from beta 1:
Emulation fixes:
- ARM: Fix STR writeback pipeline stage
- ARM: Partially fix LDM/STM writeback with empty register list
- ARM: Fix stepping when events are pending
- GBA DMA: Fix case where DMAs could get misaligned (fixes mgba.io/i/1092)
- GBA Memory: Fix open bus from IWRAM (fixes mgba.io/i/1575)
- GBA Timers: Improve timer startup emulation
- GBA Video: Fix OpenGL renderer 512x512 backgrounds (fixes mgba.io/i/1572)
- GBA Video: Fix BLDY for semitransparent sprite on non-target-2 backgrounds
- GBA Video: Fix effects blending improperly in some non-last windows
- GBA Video: Copy higher priority target 1 flag
Other fixes:
- 3DS: Fix screen darkening (fixes mgba.io/i/1562)
- Core: Fix uninitialized memory issues with graphics caches
- Core: Return null for out of bounds cached tile VRAM querying
- GBA Video: Fix OpenGL fragment data binding
- GBA Video: Fix mosaic in modes 1-5 in OpenGL (fixes mgba.io/i/1620)
- Debugger: Fix tracing skipping instructions (fixes mgba.io/i/1614)
- OpenGL: Only invalidate texture if dimensions change (fixes mgba.io/i/1612)
- Qt: Fix fast forward mute being reset (fixes mgba.io/i/1574)
- Qt: Fix scrollbar arrows in memory view (fixes mgba.io/i/1558)
- Qt: Fix several cases where shader selections don't get saved
- Qt: Fix division by zero error in invalid TilePainter state
- Qt: Fix "restart needed" dialog after first config (fixes mgba.io/i/1601)
- Qt: Fix undesired screen filtering when paused (fixes mgba.io/i/1602)
- Qt: Fix sprite view using wrong base address (fixes mgba.io/i/1603)
- Qt: Fix inability to clear default keybindings
- Qt: Release held actions if they get rebound
- Qt: Fix crash double-clicking menus in shortcut settings (fixes mgba.io/i/1627)
- Qt: Fix record A/V window not updating resolution (fixes mgba.io/i/1626)
- Vita: Fix analog controls (fixes mgba.io/i/1554)
- Wii: Fix game fast-forwarding after slowing down
- Wii: Improve audio buffering (fixes mgba.io/i/1617)
Misc:
- GB Memory: Support manual SRAM editing (fixes mgba.io/i/1580)
- GBA: Trim non-movie ROMs to 32 MiB if applicable
- GBA Audio: Redo channel 4 batching for GBA only
- GBA I/O: Stop logging several harmless invalid register reads
- GBA Video: Changing OpenGL scaling no longer requires restart
- Debugger: Separate aliases from main commands
- Debugger: Print break-/watchpoint ID when breaking in CLI
- Debugger: Minor interface cleanup
- SDL: Use controller GUID instead of name
- SM83: Rename LR35902 to SM83
- Tools: Allow using threaded renderer in perf.py
- Tools: Clean up unused argument in mgba-perf
0.8 beta 1: (2019-10-20)
- Initial beta for 0.8
0.7.3: (2019-09-15)
Emulation fixes:
- GB: Fix savedata initialization (fixes mgba.io/i/1473, mgba.io/i/1478)
- GB: Fix SGB controller incrementing (fixes mgba.io/i/1104)
- GB Audio: Improve channel 4 supersampling
- GB Printer: Reset printer buffer index after printing
- GB Audio: Deschedule channel 3 when disabled (fixes mgba.io/i/1463)
- GB Audio: Deschedule channel 1 when disabled by sweep (fixes mgba.io/i/1467)
- GB Video: Increment BCPS/OCPS even in mode 3 (fixes mgba.io/i/1462)
- GBA Memory: Fix STM to VRAM (fixes mgba.io/i/1430)
- GBA Memory: Fix STM/LDM to invalid VRAM
- GBA Video: Fix wrapped sprite mosaic clamping (fixes mgba.io/i/1432)
- GBA Audio: Fix channel 4 aliasing (fixes mgba.io/i/1265)
Other fixes:
- Core: Fix crashes if core directories aren't set
- Core: Fix crash when exiting game with cheats loaded
- GBA: Set up GPIO mapping on null and ELF ROM regions (fixes mgba.io/i/1481)
- GBA Cheats: Fix PARv3 Thumb hooks
- GBA Cheats: Fix value incrementing in CB slide codes (fixes mgba.io/i/1501)
- Qt: Fix FPS target maxing out at 59.727 (fixes mgba.io/i/1421)
- Qt: Cap audio buffer size to 8192 (fixes mgba.io/i/1433)
- Qt: Fix race conditions initializing GDB stub
- Qt: Improve cheat view UX
- Libretro: Fix crash changing allowing opposing directions (hhromic)
- mGUI: Fix crash if last loaded ROM directory disappears (fixes mgba.io/i/1466)
- Switch: Fix threading-related crash on second launch
Misc:
- Qt: Make mute menu option also toggle fast-forward mute (fixes mgba.io/i/1424)
- Qt: Show error message if file failed to load
0.7.2: (2019-05-25)
Emulation fixes:
- GB: Fix HALT when IE and IF unused bits are set (fixes mgba.io/i/1349)
- GB Timer: Fix timing adjustments when writing to TAC (fixes mgba.io/i/1340)
- GB Video: Fix window y changing mid-window (fixes mgba.io/i/1345)
- GB Video: Fix more window edge cases (fixes mgba.io/i/1346)
- GBA: Fix RTC on non-standard sized ROMs (fixes mgba.io/i/1400)
- GBA DMA: Fix DMA0-2 lengths (fixes mgba.io/i/1344)
- GBA Memory: Fix writing to OBJ memory in modes 3 and 5
- GBA Memory: Prevent writing to mirrored BG VRAM (fixes mgba.io/i/743)
- GBA Video: Fix scanline cache with scale factor change edge cases
- GBA Video: Fix sprite mosaic clamping (fixes mgba.io/i/1008)
- GBA Video: Implement mosaic on transformed sprites (fixes mgba.io/b/5)
Other fixes:
- 3DS: Ensure core 2 can be used for threaded renderer (fixes mgba.io/i/1371)
- All: Fix several memory leaks
- GB Core: Fix toggling WIN and OBJ being swapped
- GBA: Fix skipping BIOS on irregularly sized ROMs
- CMake: Fix .deb imagemagick dependencies
- FFmpeg: Improve initialization reliability and cleanup
- FFmpeg: Fix audio conversion producing gaps
- LR35902: Fix disassembly of several CB-prefix instructions
- LR35902: Fix trailing whitespace in disassembly
- Qt: More app metadata fixes
- Qt: Fix load recent from archive (fixes mgba.io/i/1325)
- Qt: Fix overrides getting discarded (fixes mgba.io/i/1354)
- Qt: Fix saved scale not getting set on resize (fixes mgba.io/i/1074)
- Qt: Fix crash in sprite viewer magnification (fixes mgba.io/i/1362)
- Qt: Fix adjusting magnification in tile viewer when not fitting to window
- Qt: Fix bounded fast forward with Qt Multimedia
- Qt: Fix saving settings with native FPS target
- Wii: Fix aspect ratio (fixes mgba.io/i/500)
Misc:
- Qt: Add missing HEVC NVENC option (fixes mgba.io/i/1323)
- Qt: Improve camera initialization
- Vita: Improved frame drawing speed
0.7.1: (2019-02-24)
Bugfixes:
- 3DS: Work around menu freezing (fixes mgba.io/i/1294)
- GB: Fix crash when accessing SRAM if no save loaded and cartridge has no SRAM
- GB Serialize: Fix loading states with negative pixel x (fixes mgba.io/i/1293)
- GB, GBA Serialize: Fix loading two states in a row
- GBA: Fix video timing when skipping BIOS (fixes mgba.io/i/1318)
- GBA DMA: Fix Display Start DMAs
- GBA DMA: Fix DMA start/end timing
- GBA DMA: Fix invalid DMA handling (fixes mgba.io/i/1301)
- GBA Memory: Fix a few AGBPrint crashes
- GBA Memory: Fix OOB ROM reads showing up as AGBPrint memory
- GBA SIO: Prevent writing read-only multiplayer bits
- GBA Video: Fix enabling layers in non-tile modes (fixes mgba.io/i/1317)
- Python: Fix crash when deleting files owned by library
- Python: Make sure GB link object isn't GC'd before GB object
- PSP2: Fix file descriptors dying on suspend (fixes mgba.io/i/1123)
- Qt: Fix tile and sprite views not always displaying at first
- Qt: Fix audio context holding onto closed game controller
- Qt: Fix color picking in sprite view (fixes mgba.io/i/1307)
- Qt: Fix window icon on X11
- Qt: Fix quick load recent accidentally saving (fixes mgba.io/i/1309)
- Switch: Fix final cleanup (fixes mgba.io/i/1283)
- Switch: Fix gyroscope orientation (fixes mgba.io/i/1300)
Misc:
- GBA Video: Improve sprite cycle counting (fixes mgba.io/i/1274)
- Qt: Updated Italian translation (by Vecna)
0.7.0: (2019-01-26)
Features:
- ELF support
- Game Boy Camera support
- Qt: Set default Game Boy colors
- Game Boy Printer support
- Super Game Boy support
- Customizable autofire speed
- Ability to set default Game Boy model
- Map viewer
- Automatic cheat loading and saving
- GameShark and Action Replay button support
- AGBPrint support
- Debugger: Conditional breakpoints and watchpoints
- Ability to select GB/GBC/SGB BIOS on console ports
- Optional automatic state saving/loading
- Access to ur0 and uma0 partitions on the Vita
- Partial support for MBC6, MMM01, TAMA and HuC-1 GB mappers
- GBA: ARMIPS/A22i-style and ELF symbol table support
- Initial Switch port
Bugfixes:
- ARM: Fix MSR when T bit is set
- Core: Fix audio sync breaking when interrupted
- Core: Fix ordering events when scheduling during events
- FFmpeg: Fix encoding audio/video queue issues
- GB: Revamp IRQ handling based on new information
- GB: Fix IRQ disabling on the same T-cycle as an assert
- GB Audio: Make audio unsigned with bias (fixes mgba.io/i/749)
- GB Audio: Clock frame events on DIV
- GB Audio: Fix channel 3 reset value
- GB Audio: Fix channel 4 initial LFSR
- GB Audio: Fix channel 1, 2 and 4 reset timing
- GB I/O: DMA register is R/W
- GB MBC: Improve multicart detection heuristic (fixes mgba.io/i/1177)
- GB, GBA Savedata: Fix savestate loading overwriting saves on reset
- GB, GBA Savedata: Fix unmasking savedata crash
- GB Serialize: Fix audio state loading
- GB Serialize: Fix game title check
- GB Serialize: Fix IRQ pending/EI pending confusion
- GB Timer: Minor accuracy improvements
- GB Video: Fix dot clock timing being slightly wrong
- GB Video: Fix loading states while in mode 3
- GB Video: Fix enabling window when LY > WY (fixes mgba.io/i/409)
- GB Video: Fix SCX timing
- GB, GBA Video: Don't call finishFrame twice in thread proxy
- GBA: Reset WAITCNT properly
- GBA BIOS: Fix BitUnPack final byte
- GBA BIOS: Fix BitUnPack narrowing
- GBA DMA: Fix invalid DMA reads (fixes mgba.io/i/142)
- GBA DMA: Fix temporal sorting of DMAs of different priorities
- GBA Hardware: Fix RTC overriding light sensor (fixes mgba.io/i/1069)
- GBA Hardware: Fix RTC handshake transition (fixes mgba.io/i/1134)
- GBA Memory: Fix Vast Fame support (taizou) (fixes mgba.io/i/1170)
- GBA Savedata: Fix savedata modified time updating when read-only
- GBA Serialize: Fix loading channel 3 volume (fixes mgba.io/i/1107)
- GBA Serialize: Fix loading states in Hblank
- GBA SIO: Fix unconnected SIOCNT for multi mode (fixes mgba.io/i/1105)
- GBA Timer: Fix timers sometimes being late (fixes mgba.io/i/1012)
- GBA Video: Don't mask out high bits of BLDY (fixes mgba.io/i/899)
- GBA Video: Add delay when enabling BGs (fixes mgba.io/i/744, mgba.io/i/752)
- GBA Video: Start timing mid-scanline when skipping BIOS
- GBA Video: Improve sprite cycle counting (fixes mgba.io/i/1126)
- GBA Video: Make layer disabling work consistently
- PSP2: Fix more issues causing poor audio
- Qt: Fix GL display when loading a game from CLI (fixes mgba.io/i/843)
- Qt: Improve FPS timer stability
- Util: Fix wrapping edge cases in RingFIFO
Misc:
- 3DS: Remove deprecated CSND interface
- All: Make FIXED_ROM_BUFFER an option instead of 3DS-only
- Core: Remove broken option for whether rewinding restores save games
- Feature: Added loading savestates from command line
- FFmpeg: Support libswresample (fixes mgba.io/i/1120, mgba.io/b/123)
- FFmpeg: Support lossless h.264 encoding
- FFmpeg: Support lossless VP9 encoding
- GBA Cheats: Allow multiple ROM patches in the same slot
- GB: Skip BIOS option now works
- GB: Fix VRAM/palette locking (fixes mgba.io/i/1109)
- GB Audio: Improved audio quality
- GB, GBA Audio: Increase max audio volume
- GB MBC: Remove erroneous bank 0 wrapping
- GB Video: Darken colors in GBA mode
- GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)
- GBA: Implement display start DMAs
- GBA: Improve multiboot image detection
- GBA Memory: 64 MiB GBA Video cartridge support
- GBA Savedata: Remove ability to disable realistic timing
- GBA Timer: Use global cycles for timers
- Libretro: Add frameskip option
- mGUI: Add fast forward toggle
- PSP2: Use system enter key by default
- Python: Integrate tests from cinema test suite
- Qt: Redo GameController into multiple classes
- Qt: Prevent window from being created off-screen
- Qt: Add option to disable FPS display
- Qt: Options to mess around with layer placement
- Qt: Add load alternate save option
- Qt: Allow pausing game at load (fixes mgba.io/i/1129)
- Qt: Clean up FPS target UI (fixes mgba.io/i/436)
- Test: Restructure test suite into multiple executables
- Util: Don't build crc32 if the function already exists
- Wii: Move audio handling to callbacks (fixes mgba.io/i/803)
Changes from beta 1:
Features:
- Libretro: Add Game Boy cheat support
- Qt: Separate fast forward volume control (fixes mgba.io/i/846, mgba.io/i/1143)
- Switch: Rumble support
- Switch: Rotation support
- Switch: Screen stretching options
- Qt: State file load/save menu options
- Windows installer
- Tile viewer now has adjustable width
- Python: Experimental audio API
Bugfixes:
- 3DS: Fix unused screens not clearing (fixes mgba.io/i/1184)
- Core: Remember to deinit proxy ring FIFO
- Core: Reroot timing list when (de)scheduling
- GB, GBA: Fix broken opposing button filter (fixes mgba.io/i/1191)
- GB MBC: Fix MBC30 SRAM
- GB, GBA Savedata: Fix leaks when loading masked save (fixes mgba.io/i/1197)
- GB Video: Fix SGB border hole size
- GB Video: Changing LYC while LCDC off doesn't affect STAT (fixes mgba.io/i/1224)
- GBA: Fix GB Player features
- GBA I/O: SOUNDCNT_HI is readable when sound is off
- GBA Savedata: Fix EEPROM writing codepath when savetype is not EEPROM
- GBA Video: Fix caching with background toggling (fixes mgba.io/i/1118)
- Libretro: Fix adding codes with hooks
- PSP2: Fix audio crackling after fast forward
- PSP2: Fix audio crackling when buffer is full
- Qt: Fix jumbled background when paused
- Qt: Fix FPS counter on Windows
- Qt: Fix focus issues with load/save state overlay
- Switch: Fix incorrect mapping for fast forward cap
- Wii: Fix drawing caching regression (fixes mgba.io/i/1185)
- PSP2: Fix tearing issues (fixes mgba.io/i/1211)
- Qt: Fix mapping analog triggers (fixes mgba.io/i/495)
- Qt: Grab focus when game starts (fixes mgba.io/i/804)
- Qt: Ensure FATAL logs reach log view
- SDL: Fix handling of invalid gamepads (fixes mgba.io/i/1239)
Misc:
- CMake: Fix libswresample version dependencies (fixes mgba.io/i/1229)
- Debugger: Minor text fixes
- Debugger: Readability improvements (fixes mgba.io/i/1238)
- GB: Improved SGB2 support
- GB Audio: Skip frame if enabled when clock is high
- Libretro: Reduce rumble callbacks
- mGUI: Add SGB border configuration option
- mGUI: Add support for different settings types
- Python: Minor API improvements
- Qt: Ensure camera image is valid
- Qt: Debugger console history
- Qt: Detect presence of GL_ARB_framebuffer_object
- Qt: Minor memory view tweaks
- Res: Improve modeling of AGB/AGS screen in shaders
- Wii: Define _GNU_SOURCE (fixes mgba.io/i/1106)
- Wii: Expose stretch configuration in settings
- Wii: Stretch now sets pixel-accurate mode size cap
0.7 beta 1: (2018-09-24)
- Initial beta for 0.7
0.6.3: (2018-04-14)
Bugfixes:
- GB Audio: Revert unsigned audio changes
- GB Video: Fix bad merge (fixes mgba.io/i/1040)
- GBA Video: Fix OBJ blending regression (fixes mgba.io/i/1037)
0.6.2: (2018-04-03)
Bugfixes:
- Core: Fix ROM patches not being unloaded when disabled (fixes mgba.io/i/962)
- 3DS: Fix opening files in directory names with trailing slashes
- LR35902: Fix watchpoints not reporting new value
- GB MBC: Fix MBC2 saves (fixes mgba.io/i/954)
- GB Memory: HDMAs should not start when LCD is off (fixes mgba.io/i/310)
- GB Memory: Fix OAM DMA blocking regions (fixes mgba.io/i/1013)
- GB Video: Only trigger STAT write IRQs when screen is on (fixes mgba.io/i/912)
- GBA: Fix some GBA ROM misdetection (fixes mgba.io/i/978)
- GBA: Fix SharkPort saves for EEPROM games
- GBA Audio: Increase PSG volume (fixes mgba.io/i/932)
- GBA BIOS: Fix incorrect exit condition in LZ77
- GBA Cheats: Fix PARv3 slide codes (fixes mgba.io/i/919)
- GBA Cheats: Fix slide codes not initializing properly
- GBA DMA: ROM reads are forced to increment
- GBA Hardware: RTC accuracy improvements
- GBA I/O: Fix writing to DISPCNT CGB flag (fixes mgba.io/i/902)
- GBA Memory: Fix copy-on-write memory leak
- GBA Memory: Partially revert prefetch changes (fixes mgba.io/i/840)
- GBA Savedata: Fix crash when resizing flash
- GBA Video: Force align 256-color tiles
- GBA Video: OBJWIN can change blend params after OBJ is drawn (fixes mgba.io/i/921)
- PSP2: Fix issues causing poor audio
- Python: Fix package directory
- Qt: Fix locale being set to English on settings save (fixes mgba.io/i/906)
- Qt: Fix opening in fullscreen (fixes mgba.io/i/993)
- Wii: Fix screen tear when unpausing
- Wii: Fix various setup and teardown drawing issues (fixes mgba.io/i/988)
Misc:
- 3DS: Scale font based on glyph heights (fixes mgba.io/i/961)
- GB MBC: Remove erroneous bank 0 wrapping
- GBA: Improve multiboot image detection
- PSP2: Use system enter key by default
0.6.1: (2017-10-01)
Bugfixes:
- GB, GBA: Fix crashes when attempting to identify null VFiles
- GB, GBA: Fix sync to video with frameskip
- GB, GBA Savedata: Fix savestate-related save overwriting (fixes mgba.io/i/834)
- GB Audio: Fix NRx2 writes while active (fixes mgba.io/i/866)
- GB Core: Fix palette loading when loading a foreign config
- GB MBC: Pocket Cam memory should be accessible without enabling
- GB MBC: Fix SRAM sizes 4 and 5
- GB MBC: Fix RTC initialization (fixes mgba.io/i/825)
- GB MBC: Fix RTC loading when file size is off
- GB Memory: Initialize peripheral pointers
- GB Memory: Prevent accessing empty SRAM (fixes mgba.io/i/831)
- GB Memory: Fix HDMA count starting in mode 0 (fixes mgba.io/i/855)
- GB Memory: Actually load latch time from savestate
- GB Serialize: Fix deserializing video STAT
- GB Video: Fix 16-bit screenshots (fixes mgba.io/i/826)
- GB Video: Fix potential hang when ending mode 0
- GB Video: Fix read mode when enabling LCD
- GBA: Reset active region as needed when loading a ROM
- GBA: Fix keypad IRQs not firing when extra buttons are pressed
- GBA BIOS: Use core's VRAM variable instead of renderer's
- GBA Cheats: Fix PARv3 multiline blocks (fixes mgba.io/i/889)
- GBA I/O: Fix reading from a few invalid I/O registers (fixes mgba.io/i/876)
- GBA Savedata: Fix 512 byte EEPROM saving as 8kB (fixes mgba.io/i/877)
- GBA Savedata: Fix size of SRAM saves (fixes mgba.io/i/883)
- GBA Video: Fix broken sprite blending hack (fixes mgba.io/i/532)
- Python: Fix importing .gb or .gba before .core
- Qt: Fix command line debugger closing second game
- Qt: Fix LOG argument order
- Qt: Fix timezone issues with time overrides
- Qt: Fix sprite export pausing game indefinitely (fixes mgba.io/i/841)
- SDL: Fix potential race condition when pressing keys (fixes mgba.io/i/872)
Misc:
- CMake: Fix CPack dependencies for libpng 1.6
- GBA: Detect hardware for Pokémon FireRed ROM hacks
- GBA Cheats: Improve detection of raw cheats
- Qt: Don't rebuild library view if style hasn't changed
- Qt: Allow overrides to be saved before a game is loaded
- Qt: Hide mouse immediately when loading
- SDL: Fix 2.0.5 build on macOS under some circumstances
- VFS: Make VFile.truncate work growing files on PSV (fixes mgba.io/i/885)
0.6.0: (2017-07-16)
Features:
- Library view
- Sprite viewer
- Debugging console
- Improved memory viewer
- Memory search
- Command line ability to override configuration values
- Add option to allow preloading the entire ROM before running
- Add option for whether rewinding restores save games
- Savestates now contain any RTC override data
- Add option to lock video to integer scaling
- LR35902: Watchpoints
- LR35902/GB-Z80 disassembler
- GB: Tile viewer
- GB: Video/audio channel enabling/disabling
- GB: Symbol table support
- GB MBC: Add MBC1 multicart support
- GBA: Support printing debug strings from inside a game
- GBA: Better cheat type autodetection
- Implement keypad interrupts
- Configuration of gamepad hats
- Video log recording for testing and bug reporting
- Debugger: Segment/bank support
- Debugger: Execution tracing
- Qt: German translation (by Lothar Serra Mari)
- Qt: Spanish translation (by Kevin López)
- Qt: Italian translation (by theheroGAC)
Bugfixes:
- ARM7: Fix MLA/*MULL/*MLAL timing
- Core: Fix crash with rewind if savestates shrink
- Core: Fix interrupting a thread while on the thread (fixes mgba.io/i/692)
- Core: Fix directory sets crashing on close if base isn't properly detached
- FFmpeg: Fix overflow and general issues with audio encoding
- GB: Fix flickering when screen is strobed quickly
- GB: Fix STAT blocking
- GB MBC: Fix ROM bank overflows getting set to bank 0
- GB MBC: Fix swapping carts not detect new MBC
- GB Timer: Improve DIV reset behavior
- GB Timer: Fix DIV batching if TAC changes
- GB Video: Reset renderer when loading state
- GBA: Fix multiboot ROM loading
- GBA: Fix multiboot loading resulting in too small WRAM
- GBA BIOS: Implement BitUnPack
- GBA BIOS: Fix ArcTan sign in HLE BIOS
- GBA BIOS: Fix ArcTan2 sign in HLE BIOS (fixes mgba.io/i/689)
- GBA BIOS: Fix INT_MIN/-1 crash
- GBA Hardware: Fix crash if a savestate lies about game hardware
- GBA I/O: Handle audio registers specially when deserializing
- GBA Memory: Improve initial skipped BIOS state
- GBA Savedata: Fix savedata unmasking (fixes mgba.io/i/441)
- GBA Savedata: Update and fix Sharkport importing (fixes mgba.io/i/658)
- GBA Video: Fix wrong palette on 256-color sprites in OBJWIN
- GBA Video: Don't update background scanline params in mode 0 (fixes mgba.io/i/377)
- Libretro: Fix saving in GB games (fixes mgba.io/i/486)
- LR35902: Fix core never exiting with certain event patterns
- LR35902: Fix pc overflowing current region off-by-one
- LR35902: Fix decoding LD r, $imm and 0-valued immediates (fixes mgba.io/i/735)
- OpenGL: Fix some shaders causing offset graphics
- GB Timer: Fix sub-M-cycle DIV reset timing and edge triggering
- Qt: Fix window icon being stretched
- Qt: Fix data directory path
- Qt: Fix timing issues on high refresh rate monitors
- Qt: Fix linking after some windows have been closed
- Qt: Fix crash when changing audio settings after a game is closed
- Qt: Ensure CLI backend is attached when submitting commands (fixes mgba.io/i/662)
- Qt: Disable "New multiplayer window" when MAX_GBAS is reached (fixes mgba.io/i/107)
- Qt: Fix game unpausing after frame advancing and refocusing
- SDL: Fix game crash check
- SDL: Fix race condition with audio thread when starting
- SDL: Fix showing version number
- Test: Fix crash when loading invalid file
- Test: Fix crash when fuzzing fails to load a file
- Test: Don't rely on core for frames elapsed
- Test: Fix crash when loading invalid file
- Test: Fix crash when fuzzing fails to load a file
- Tools: Fix recurring multiple times over the same library
- Util: Fix overflow when loading invalid UPS patches
- Util: Fix highest-fd socket not being returned by SocketAccept
- Windows: Fix VDir.rewind
Misc:
- All: Add C++ header guards
- All: Move time.h include to common.h
- 3DS, PSP2, Wii: Last directory loaded is saved
- CMake: Add ability to just print version string
- Core: New, faster event timing subsystem
- Core: Clean up some thread state checks
- Core: Add generic checksum function
- Core: Cores can now have multiple sets of callbacks
- Core: Restore sleep callback
- Core: Move rewind diffing to its own thread
- Core: Ability to enumerate and modify video and audio channels
- Core: List memory segments in the core
- Core: Move savestate creation time to extdata
- Core: Config values can now be hexadecimal
- Core: Improved threading interrupted detection
- Debugger: Modularize CLI debugger
- Debugger: Make building with debugging aspects optional
- Debugger: Add functions for read- or write-only watchpoints
- Debugger: Make attaching a backend idempotent
- Debugger: Add mDebuggerRunFrame convenience function
- Feature: Move game database from flatfile to SQLite3
- Feature: Support ImageMagick 7
- Feature: Make -l option explicit
- FFmpeg: Return false if a file fails to open
- FFmpeg: Force MP4 files to YUV420P
- GB: Trust ROM header for number of SRAM banks (fixes mgba.io/i/726)
- GB: Reset with initial state of DIV register
- GB MBC: New MBC7 implementation
- GB Audio: Simplify envelope code
- GB Audio: Improve initial envelope samples
- GB Audio: Start implementing "zombie" audio (fixes mgba.io/i/389)
- GB Video: Improved video timings
- GBA: Ignore invalid opcodes used by the Wii U VC emulator
- GBA, GB: ROM is now unloaded if a patch is applied
- GBA DMA: Refactor DMA out of memory.c
- GBA DMA: Move DMAs to using absolute timing
- GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers
- GBA I/O: Set JOYSTAT TRANS flag when writing JOY_TRANS registers
- GBA Memory: Support for Mo Jie Qi Bing by Vast Fame (taizou)
- GBA Memory: Support reading/writing POSTFLG
- GBA Memory: Remove unused prefetch cruft
- GBA Timer: Improve accuracy of timers
- GBA Video: Clean up unused timers
- GBA Video: Allow multiple handles into the same tile cache
- GBA Video, GB Video: Colors are now fully scaled
- GBA Video: Optimize when BLD* registers are written frequently
- OpenGL: Add xBR-lv2 shader
- Qt: Move last directory setting from qt.ini to config.ini
- Qt: Improved HiDPI support
- Qt: Expose configuration directory
- Qt: Merge "Save" and "OK" buttons in shader options
- Qt: Automatically load controller profile when plugged in
- Qt: Rename "Resample video" option to "Bilinear filtering"
- Qt: Remove audio thread
- Qt: Remove audio buffer sizing in AudioProcessorQt
- Qt: Re-enable QtMultimedia on Windows
- Qt: Make "Mute" able to be bound to a key
- Qt: Add .gb/.gbc files to the extension list in Info.plist
- Qt: Relax hard dependency on OpenGL
- Qt: Better highlight active key in control binding
- SDL: Remove scancode key input
- SDL: Automatically map controllers when plugged in
- Test: Add a basic test suite
- Util: Add size counting to Table
- Util: Add 8-bit PNG write support
- Util: Tune patch-fast extent sizes
- VFS: Call msync when syncing mapped data
- VFS: Allow truncating memory chunk VFiles
- VFS: Fix some minor VFile issues with FILEs
- VFS: Optimize expanding in-memory files
- VFS: Add VFileFIFO for operating on circle buffers
Changes from beta 1:
Features:
- Qt: Italian translation (by theheroGAC)
- Qt: Updated German translation
Bugfixes:
- GB Audio: Fix incorrect channel 4 iteration
- GB Audio: Fix zombie mode bit masking
- GB Serialize: Fix timer serialization
- GB Video: Fix LYC regression
- GBA SIO: Improve SIO Normal dummy driver (fixes mgba.io/i/520)
- GBA Timer: Fix count-up timing overflowing timer 3
- PSP2: Use custom localtime_r since newlib version is broken (fixes mgba.io/i/560)
- Qt: Fix memory search close button (fixes mgba.io/i/769)
- Qt: Fix window icon being stretched
- Qt: Fix initial window size (fixes mgba.io/i/766)
- Qt: Fix data directory path
- Qt: Fix controls not saving on non-SDL builds
- Qt: Fix translation initialization (fixes mgba.io/i/776)
- Qt: Fix patch loading while a game is running
- Qt: Fix shader selector on Ubuntu (fixes mgba.io/i/767)
- Core: Fix rewinding getting out of sync (fixes mgba.io/i/791)
- Qt: Fix GL-less build
- Qt: Fix Software renderer not handling alpha bits properly
- Qt: Fix screen background improperly stretching
- SDL: Fix cheats not loading
Misc:
- GB Serialize: Add MBC state serialization
- GBA Memory: Call crash callbacks regardless of if hard crash is enabled
- GBA Timer: Improve accuracy of timers
- PSP2: Update toolchain to use vita.cmake
- Qt: Add language selector
- Qt: Minor test fixes
- Qt: Move shader settings into main settings window
- Qt: Dismiss game crashing/failing dialogs when a new game loads
- Qt: Properly ship Qt translations
- SDL: Remove writing back obtained samples (fixes mgba.io/i/768)
0.6 beta 1: (2017-06-29)
- Initial beta for 0.6
0.5.2: (2016-12-31)
Bugfixes:
- All: Fix fullscreen config option being ignored
- ARM7: PSR mode bits should not get sign extended
- GB: Fix audio not being deinitialized
- GB: Fix crash when masking savedata
- GB: Properly initialize sramRealVf variable
- GB Audio: Fix serialization of channel 3 and NR52 properties
- GB Audio: Reset envelope timer when reseting sound channel
- GB MBC: Fix SRAM dangling pointer with RTC games
- GB MBC: Fix initializing MBC when no ROM is loaded
- GB Memory: Fix patching ROM bank 0
- GB Memory: Fix starting HDMAs during mode 0
- GB Memory: Fix HDMA5 value after DMA completes
- GB Video: Initialize LCDC in renderer
- GB Video: Hblank IRQs should mask LYC=LY IRQs
- GBA: Fix IRQs firing after already being cleared
- GBA: Only unhalt CPU if appropriate bit is set in IE
- GBA: Add savegame override for Crash Bandicoot 2
- GBA BIOS: Fix MidiKey2Freq BIOS reads
- GBA BIOS: Fix invalid CpuSet not setting BIOS prefetch
- GBA Cheats: Fix GameShark ROM patches
- GBA I/O: Mask off WAITCNT bits that cannot be written
- GBA Memory: Fix misaligned BIOS reads
- GBA Memory: Fix VCOUNT being writable
- GBA Video: Fix out of bounds sprite transforms
- Libretro: Fix unterminated SET_INPUT_DESCRIPTORS
- Libretro: Fix disabling BIOS
- Libretro: Fix Game Boy savestates and audio
- Qt: Fix changing resolution of software renderer
- Qt: Fix setting overrides
- Qt: Fix cut off tiles and alignment issues in tile viewer
- Qt: Only reset window dimensions when first shown
- Qt: Fix Qt Multimedia audio driver on big endian
- Qt: Fix Apply button for key and controller configurations
- VFS: Fix resizing memory chunks when not needed
- Windows: Fix Unicode directory handling
Misc:
- GB, GBA: Prevent loading null ROMs
- GB Audio: Initialize wave RAM to GBC values
- GB Memory: Reset ROM bank when loading a ROM
- PSP2: Improved controller rumble
0.5.1: (2016-10-05)
Bugfixes:
- Core: Fix importing save games as read-only
- FFmpeg: Fix encoding AAC
- GB: Fix invalid STOP behavior on Game Boy Color
- GB: Initialize audio properly
- GB: Properly clear KEY1 bit 0 when switching speeds
- GB: Properly unload save files when unloading a ROM
- GB, GBA: Fix emulator hardlocking when halting with IRQs off
- GB MBC: Fix MBC7 when size is incorrectly specified
- GB MBC: Fix RTC access when no save file is loaded
- GB SIO: Don't auto-clock external shift clock
- GB Video: Setting LYC=LY during mode 2 should trigger an IRQ
- GB Video: Fix video frames getting missed when LCDC is off
- GB Video: Clear screen when LCDC is off
- GBA Cheats: Fix holding onto pointers that may get invalidated
- GBA Cheats: Fix key-activated CodeBreaker cheats
- GBA Cheats: Fix uninitialized memory getting freed when saving
- GBA Hardware: Improve Game Boy Player rumble behavior
- GBA Memory: Fix several unused I/O register read values
- GBA Savedata: Fix loading savestates with 512Mb Flash saves
- LR35902: Fix events running with the wrong cycle active
- Qt: Fix "close" button on Overrides view
- Qt: Fix saving overrides
- Qt: Fix directory set unloading when replacing the ROM
- Qt: Fix patch loading
- Qt: Fix crash when saving an override if a game isn't loaded
- Qt: Fix showing default display driver as OpenGL (force 1.x)
- SDL: Attach rumble in SDL frontend
- Util: Fix PNG identification on files too small to be a PNG
Misc:
- All: Only update version info if needed
- All: Split out install locations for Libretro and OpenEmu
- FFmpeg: Encoding cleanup
- GB: Reset active region when reloading ROM
- GB Memory: Initialize RAM pattern for GBC
- GB Video: Improved video timings
- Qt: Manage window sizes slightly better
- Qt: Remember scale option independent of core dimensions
0.5.0: (2016-09-19)
Features:
- Game Boy support
- Support for encrypted CodeBreaker GBA cheats
- Emulation of Vast Fame protected GBA carts (taizou)
- Tile viewer
- Threaded rendering mode
- Libretro: Memory map and achievement support (leiradel)
- GUI: Add UI control remapping
- GUI: Add fast-forward
- Wii: 240p support
- 3DS: Adjustable screen darkening
- Ability to temporarily load a savegame
- Load specific files out of archives
- Automatic BIOS detection
Bugfixes:
- ARM7: Fix decoding of Thumb ADD (variants 5 and 6)
- Debugger: Fix GDB breakpoints
- GBA: Fix losing IRQs when CPSR I bit isn't cleared
- GBA: Fix filehandle leak with savegames
- GBA: Timer 0 cannot be count up
- GBA: Count up timers should not count themselves
- GBA Memory: Fix mirror on non-overdumped Classic NES games
- GBA Memory: Fix ldm {pc}
- GBA Savedata: Fix savedata sync timer
- GBA Savedata: Only unmap savedata if present
- GBA Serialize: Savestates now properly store prefetch
- GBA Video: WIN0/1 take priority over OBJWIN
- GBA Video: Fix out-of-order OBJWIN
- PSP2: Fix GPU crash while exiting
- PSP2: Fix VSync
- PSP2: Fix accelerometer range
- PSP2: Actually load screen mode setting
- PSP2: Fix gyroscope direction
- PSP2: Delete threads after they return
- PSP2: Fix mapping/unmapping from not at 0
- Qt: Fix bug in software renderer scaling
- Qt: Fix hanging key press after disabling autofire
- Qt: Fix being unable to pause manually when using auto-pausing
- SDL: Fix axes being mapped wrong
- Util: Fix realloc semantics in utf16to8
- Util: Fix inserting too many items into a hash table
- VFS: Fix uninitialized varaible reading from 7z
- VFS: Fix reading multiple files from a 7z archive
- Wii: Fix framelimiting after a slowdown
- Wii: Fix garbage flash at startup
Misc:
- 3DS: Use blip_add_delta_fast for a small speed improvement
- 3DS: Allow UTF-16 filenames
- 3DS: Port to using citro3D
- 3DS: Use system font for menus
- 3DS: Attempt to use Core 2 for threads
- 3DS: Adjustable filering
- 3DS: 3D banner
- All: Add QUIET parameter to silence CMake
- All: Faster memory read/write
- ARM7: Support forcing Thumb mode via MSR
- ARM7: Flush prefetch cache when loading CPSR via MSR
- ARM7: Clean up instruction decoding for future expandability
- Debugger: Support register and memory writes via GDB stub
- Debugger: Add software breakpoint support to gdb
- FFmpeg: Full support for libavcodec 56+
- GBA: Better debug logging if event processing breaks
- GBA Audio: Force audio DMAs to not increment destination
- GBA BIOS: Use custom ArcTan, not relying on OS
- GBA Hardware: Clean up dead code in GBP
- GBA Memory: Optimize stalling behavior
- GBA Memory: Optimize Load-/StoreMultiple
- GBA Savedata: Add realistic timing for EEPROM
- GBA Serialize: Savestates now store if CPU was halted
- GBA Video: Remove old slow path fallback
- GBA Video: Optimize sprite drawing
- GBA Video: Optimize mode 0 rendering
- GBA Video: Optimize compositing cases slightly
- GUI: Screenshot dimensions are now passed through
- GUI: Add back logging
- GUI: Only reload config if manually saved
- GUI: Increase scrolling speed
- OpenGL: Log shader compilation failure
- OpenGL: Add texSize uniform
- Qt: Make -g flag work in Qt build
- Qt: Simplify OpenGL context creation
- Qt: Thread startup improvements
- Qt: Make audio channel/video layer options shortcut mappable
- Qt: Remove some C99isms from C++ code
- Qt: Remove default autofire mappings
- Qt: Make reseting when pasued frame-accurate
- Qt: Rearchitect game closing codepath
- PSP2: Use system font for menus
- PSP2: Add rumble for PS TV
- PSP2: Add fit-to-height screen mode
- PSP2: Sync files per descriptor
- PSP2: Allow UTF-8 filenames
- PSP2: Screenshots are now saved into the Photo Gallery
- PSP2: Stop underclocking when menuing
- SDL: Increase default audio buffer size to 1024 samples
- SDL: More responsive rumble
- Util: Add Vector GetConstPointer
- Util: Add rtrim
- Util: Add endswith
- VFS: Improve zip file detection
- Wii: Add pixelated resample filter
- Windows: Add native VDir support
- Util: Add PRIz macro for libc versions that don't support %z
0.4.1: (2016-07-11)
Bugfixes:
- All: Fix several file handle leaks
- All: Fix instruction tables getting zeroed when linking sometimes
- ARM7: Fix flags on SBC/RSC
- ARM7: Fix setting spsr privilege bits when spsr is empty
- GBA Audio: Reset audio FIFO DMA if an invalid destination is set
- GBA BIOS: Fix RegisterRamReset setting DISPCNT to the wrong value
- GBA BIOS: Fix ArcTan2 accuracy and boundary conditions
- GBA Memory: Fix executing code from OBJ region of VRAM
- GBA Serialize: Fix memory corruption bug in GBAExtdataSerialize
- GBA Serialize: Fix loading savegames from savestates
- OpenGL: Correct boolean vector strcmp strings for uniforms
- Qt: Fix sending gameStopped twice
- Qt: Fix hang if audio sync is enabled and audio fails to initialize
- Qt: Fix initial state of key mapping
- Qt: Initialize m_useBios
- SDL: Fix joystick initialization on BSD
- SDL: Fix potential joystick crash in games with rumble
- SDL: Fix SDL 1.2 build
- SDL: Fix sporadic crash when deinitializing audio
- Shaders: Fix AGS-001 shader with some bad drivers
- Util: Use closesocket on Windows
- Util: Fix socket bind addresses
- VFS: Fix reading 7z archives without rewinding first
- VFS: VFileFromFD should not open directories
- Wii: Fix tilting direction
- Util: Fix realloc semantics in utf16to8
Misc:
- All: Allow use of external minizip library
- Debugger: CLI debugger now exits when end-of-stream is reached
- FFmpeg: Update dependencies on Ubuntu
- GBA: Slightly optimize GBAProcessEvents
- GBA: Add overrides for DBZ: Legacy of Goku II and Ueki no Housoku
- GBA Video: Null renderer should return proper register values
- Libretro: Disable logging game errors, BIOS calls and stubs in release builds
- Qt: Add preset for DualShock 4
- Qt: Update 360 input profile on OS X to reflect newer drivers
- Qt: Remove use of NaN
- Qt: Canonicalize file paths when loading games
- Qt: Add refresh button to controller editing
- SDL: Remove default gamepad mappings
- Util: Fix intermittent build failure on OS X
- VFS: VFile.sync now updates modified time
0.4.0: (2016-02-02)
Features:
- Officially supported ports for the Nintendo 3DS, Wii, and PlayStation Vita