-- 1.24.3: --
May 1, 2020:
SS: Implemented more complete emulation of the SCSP short waveform mode, after running further tests; fixes excessive distortion in a
sound effect in "Sega Ages: OutRun", a regression introduced in Mednafen 1.24.2.
-- 1.24.2: --
April 25, 2020:
Fixed broken support for systems without any usable OpenGL implementation available.
April 24, 2020:
Apple2: Adjust disk angle variable upon disk change, partially sanitize the disk angle variable on state load, and print out a debug error
message instead of triggering an assert() in the disk reading code, to prevent Mednafen from aborting out in certain circumstances involving disk
changing and state loading.
April 21, 2020:
Apple2: Added missing keyboard reading variable to save states.
April 7, 2020:
SS: Fixed a few inaccuracies with the SCSP waveform loop handling.
April 6, 2020:
SS: Added emulation of SCSP slot short waveform mode bit.
April 5, 2020:
SS: Implemented the buggy linear interpolation that occurs on the SCSP when FM is used.
April 3, 2020:
SS: Added emulation of SCSP slot EG bypass bit.
SS: Implemented SCSP register mirroring.
0.83.1
- Sound Blaster emulation fixed to better handle Goldplay
mode detection false positive in 1994 demoscene demo
myth_dw.zip when using Sound Blaster Pro setting in
the demo. The initial state before music starts is
like Goldplay mode, but when music actually starts the
DMA programmed to normal state without restarting
DMA playback.
- dosbox-x.conf is now recognized as the default config
file name in addition to dosbox.conf. The sample config
file "dosbox.reference.conf" has been renamed to
"dosbox-x.reference.conf" as well (Wengier)
- Tandy DAC output fixed to slowly ramp last sample to
zero DC sample (128) when switched off. This fixes
loud popping (DC offset) problems with Tandy DAC
sound effects in Prince of Persia. This new behavior
also seems to match real Tandy 1000 hardware according
to video captures of it's audio/video outputs while
playing Prince of Persia on it.
- Tandy/PCjr 3-voice fixed to respond to I/O port 0xC0
regardless of 8-bit or 16-bit I/O (fixes Prince of
Persia).
- Write-protecting a disk image in IMGMOUNT and BOOT
commands now supported by putting a leading colon (:)
before the image file name. Works with disk swapping;
e.g. "BOOT :C:\DISK1.IMG C:\DISK2.IMG" only write-
protects C:\DISK1.IMG but not C:\DISK2.IMG. The new
config option "leading colon write protect image" can
be used to disable or enable this behavior (Wengier)
- Support for changing DOSBox-X internal time (Wengier)
- Support for pipes (|), e.g. "DIR | MORE" should now
work as expected; it is recommended to set the %TEMP%
(or %TMP%) environment variable to a writable directory
inside DOSBox-X before using pipes (Wengier)
- Improved redirections using "<" or ">" (Wengier)
- Improved Ctrl+C handling in some commands (Wengier)
- Improved Tab completion in the command shell (Wengier)
- Improved -get & -set options for the CONFIG command,
e.g. support for config options with spaces (Wengier)
- Improved REN (or RENAME) command to support wildcards
(* and ?) in the source and/or target files (Wengier)
- Some improvements to commands like MORE & VER (Wengier)
- Added BREAK, VERIFY and TRUENAME commands as in a real
DOS system. Type "[command] /?" for help info (Wengier)
- Implemented FOR command to run a specified command for
each file in a set of files. Also added LFNFOR command
to control whether to use long filenames in the FOR
command as in MS-DOS 7+ (Wengier)
- Implemented ATTRIB command to view and set attributes
of files or directories (Wengier)
- Added emulation of R (readonly) attribute bit for
Linux and Unix systems through the user-writable
file mode bits of the filesystem.
- Fixed PC DOS 2000 crash during installation.
- PC speaker: Mode 3 (square wave) and a counter value
of 1 produces a low frequency square wave. Ulrasonic
frequencies do not begin until count == 2. This fixes
helicopter noises in Paratrooper.
- Fixed PC speaker emulation to allow higher PC speaker
frequencies (10x the value of pcrate) to reduce
hiss/noise/aliasing noise that occurs when games
program ultrasonic frequencies into the counter to
"silence" the speaker. "Titus the Fox Marrakech and
Back" should no longer have audible hissing noises
between beeps when the game is using the PC speaker.
- Increased DOS device limit, to avoid E_Exit() crash
if all LPT and COM devices are enabled along with
the new CLIP$ device.
- Minimum MCB free default changed to better reflect
a typical MS-DOS setup with minimal to no drivers.
This should result in a report of 600K-ish memory
free, which is equivalent to Windows 95 without
anything loaded except COMMAND.COM.
- DIR command now supports /S (search all directories)
as well as /A, /AS, /A-S, /AH, /A-H, /AR, /A-R, /AA,
/A-A options for file attribute support; Note that
DIR /A shows all files and directories whereas DIR
alone (without /A) shows all except system/hidden
ones as in a real DOS system (Wengier)
- DIR command now shows the real free disk space on
local drives. It is possible to limit this free space
for certain programs with the -freesize option of
MOUNT command. A new config option "freesizecap" is
added to change the behavior of this option (Wengier)
- DIR command fixed to show the volume label of the
drive you are listing, instead of always the current
drive (rderooy)
- Various improvements to DEL and COPY commands, e.g.
fixed the DEL /P option having no effect, and "DEL ."
deleted all files in the current directory silently;
the COPY command now asks for confirmation before
overwriting files, and it now supports /Y and /-Y
options to change this behavior, which can also be
set from the COPYCMD environment variable. (Wengier)
- Added or fixed help information and/or error messages
for some commands. (Wengier)
- Added support for DOS programs to communicate
with the clipboard in Windows builds. If the
"dos clipboard device enable" setting in
dosbox-x.conf is set to "true" or "full", a DOS
device (default name: CLIP$) will be added to
allow bidirectional communications with the
clipboard (e.g. "DIR >CLIP$" will write the
output to the clipboard, and "TYPE CLIP$" will
show the clipboard contents). Alternatively,
you can set it to "read" or "write" to allow
only read or write access for security reasons.
The DOS device name can also be changed with
the "dos clipboard device name" setting in
dosbox-x.conf. (Wengier)
- Added support for using the right mouse button
to copy and paste from the Windows clipboard; the
config option "clip_key_modifier" can be used to
change the keyboard modifier such as none, alt, ctrl,
shift, or disable this feature (default). (Wengier)
- Updated the PasteClipboard feature in SDL1 build
to support Unicode text translations; also fixed this
feature not working in SDL2 build. The config option
"clip_paste_speed" is added to speed up or slow down
the pasting speed for different DOS programs (Wengier)
- Support for DOSLIB2's w95sysrg/w95sysrs utils to
get/set system registry location in DOS 7+. (Wengier)
- Long filename support added, adapted from
the vDosPlus project. It will be enabled with
an initial DOS version of 7.0 or higher. (Wengier)
- Corrected return value when using option to
fake the installation of SHARE. (Allofich)
- Added code to EMS emulation to print specific
debug information when a PC-98 specific call is
made to remap segment B000h to either system
memory or video memory. I do not have enough
test cases or a setup to test what really happens,
so it will remain a debug message for now.
- Added dosbox-x.conf option to allow emulation of a
DOS environment that lacks ANSI.SYS. NOTE: The
option has no effect in PC-98 mode.
- INT 2Fh now responds to AX=1A00h which is an installation
check to report whether ANSI.SYS is resident.
- Added INT 21h debug logging for file I/O and general
INT 21h usage [patch by ognjenmi]. Added enables for
the logging which are off by default since the INT 21h
and file I/O logging are fairly noisy under normal
usage.
5.0.0:
Incompatible changes
The bluetooth code has been removed without replacement. It was quite neglected over the years and likely not usable anymore. You can passthrough a dedicated USB bluetooth dongle to guests on most machines instead if you still need bluetooth in your guest.
The pc-0.12, pc-0.13, pc-0.14, pc-0.15 machines have been removed. Newer versions of the machine type should be used instead.
The "prep" ppc machine has been removed. The "40p" machine should be used now instead.
The "-virtfs_synth" option has been removed. You can use "-fsdev synth" together with "-device virtio-9p-..." instead.
The "-accel" and "-machine accel=" options are now incompatible with each other.
The deprecated "[hub_id name]" parameter tuple of 'hostfwd_add' / 'hostfwd_remove' has been removed. Use a "netdev_id" instead.
New deprecated options and features
The "-tb-size N" option has been deprecated. It is replaced by "-accel tcg,tb-size=N".
The virtio-blk SCSI passthrough feature (" -device virtio-blk,scsi=on") is deprecated. Use virtio-scsi instead.
The "r4k" mips machine has been deprecated. The "malta" machine should be used nowadays instead.
Support for using an AArch32 host system to run KVM guests has been deprecated (because the Linux kernel has dropped its support for this) and will be removed in a future version of QEMU. AArch32 guests on an AArch64 host are still supported.
Arm
Support for using an AArch32 host system to run KVM guests is now deprecated (because the Linux kernel has dropped its support for this) and will be removed in a future version of QEMU. AArch32 guests on an AArch64 host are still supported.
Emulation of the following architecture features is now implemented:
- ARMv8.1-VHE
- ARMv8.1-VMID16
- ARMv8.1-PAN
- ARMv8.1-PMU
- ARMv8.2-UAO
- ARMv8.2-DCPoP
- ARMv8.2-ATS1E1
- ARMv8.2-TTCNP
- ARMv8.3-RCPC
- ARMv8.3-CCIDX
- ARMv8.4-PMU
- ARMv8.4-RCPC
The Cortex-M7 CPU is now supported
New board: tacoma-bmc
New board: Netduino Plus 2
New board: Orangepi PC (orangepi-pc)
QEMU now correctly implements trapping of more EL1 system register accesses to EL2 (eg HCR_EL2 TID1, TID2 bits, HSTR_EL2)
The no-op system registers required for a "trivial Jazelle" implementation have been added
The DC CVAP and DC CVADP instructions are now supported
Support for blocking semiconsole SYS_READC
the i.MX RNGC device is now supported
the watchdog device is now implemented on the i.MX6 boards
The Cortex-R5 and -R5f CPUs now provide a PMU
The Exynos4210 SoC model now correctly handles DMA to/from the UARTs
The Aspeed AST2600 SoC model now includes the eMMC controller
Under KVM, we now by default stop and restart the guest generic timer counter when the VM is stopped and started so the guest OS doesn't see surprising time jumps. (This can be disabled with the kvm-no-adjvtime property.)
The Aspeed AST2400, AST2500, AST2600 SoCs now support the EHCI controller
The z2 and mainstone boards now permit booting with just a kernel image and no flash image file
The Allwinner SoC model now wires up the USB ports
The integratorcp board now wires up the audio codec controller
The versal board now implements the ADMA DMA controllers
TPM is now supported
The iMX25 now wires up the eSDHC controllers and the USB controllers
The iMX6 machines wire up the USB controllers
the gdbstub now supports SVE registers
virtio-iommu is now supported with machvirt (DT boot only)
HPPA
Artist graphics emulation added.
PS2 keyboard and mouse added to LASI chip.
Accept LDCW to addresses not aligned mod 16.
MIPS
Support for R4000 machine is announced to be deprecated, and will be removed from code base in QEMU 5.2.
Amended support for MemoryMapID CP0 register.
Amended support for WatchHi CP0 register.
Added support for GINVT instruction.
OpenRISC
Fixed a bug that prevented the DZF bit of the FPCSR being set.
PowerPC
pseries machine type
- No longer require a reconfiguration reboot for a guest selecting XIVE interrupt controller when ic-mode=dual
- Now consumes less host resources when running a KVM guest with XIVE (with a recent enough host kernel). This allows running more concurrent guests with KVM accelerated XIVE.
- New 'kernel-addr' property to control the load address for -kernel
- NVDIMMs with file backend now supported
- If a guest panics with the ibm,os-term RTAS call, the error message it supplies is now reported
- Added firmware assisted NMI (FWNMI) support
- SLOF updated to work with iommu_platform=on for virtio devices
- Better handling of devices hotplugged early in boot (before the ibm,client-architecture-support call)
powernv machine type
- Numerous improvements to the model
- Can now run KVM guests under a TCG emulated powernv machine
- Basic POWER10 support
Removed num-chips machine property, use -smp sockets=NN instead
Deprecated the compat= property on CPUs (it's been obsolete for a while with a pseries specific machine property)
Fixed a longstanding bug if using big-endian ABIv2 binaries with linux-user
Implemented new forms of the slbia instruction present in POWER9
RISC-V
The virt and sifive_u boards now have syscon device tree nodes, which allows the generic syscon drivers in Linux to control power/reboot.
The GDB stub now allows for D on rv32 and non-D on rv64.
The virt board now contains a Goldfish RTC.
Experimental support for version 0.5 of the draft hypervisor extension has been added.
s390
Adpater interrupt suppression is now available when running with KVM (previously disabled due to migration issues); support under tcg has already been available since 2.10
- enable by specifying the cpu feature "ais=on"
QEMU now warns when it fixes up odd memory sizes for compatibility on compat machines
- Only done on compat machines to avoid breaking incoming migrations. If you can, fix up the memory size on old machines or switch to a machine type >= 5.0, which supports 1M increments
- The automatic fixup may be removed in a future version.
In a world of uncertainty, perhaps you can derive a little comfort
from MAME 0.220, our delayed release for the March development
cycle. This month has seen fixes for some old bugs in Final Star
Force, Ribbit! and Night Slashers, emulation of Crab Grab (the
other Game & Watch title with a colour overlay), the acquisition
of Solite Spirits (an early version of what became 1945k III), and
preliminary work on the Naruto TV game running on the XaviX 2
platform. There are some big software list updates this month,
including a lot of Apple II software aimed at North Dakota schools,
and the latest VGM music packs. Speaking of which, the VGM player
can now show pretty visualisations while you listen.
Newly supported peripherals include the Baby Blue II CPU Plus card
for PC compatibles, serial and CP/M modules for the HP 85 and HP
86, more sound and disk expansions for the TI-99 family, the CoCo
PSG cartridge, and a variety of 8-bit Acorn expansions. We’ve added
ROM dumps for a lot of synthesisers in this release, and while most
of them are not working yet, they’re there to tinker with if you’re
interested.
These are existing binaries, no way to fix them and not all of them are.
ERROR: emul/netbsd/usr/X11R7/lib/libXfontcache.so.2.0: missing RELRO
ERROR: emul/netbsd/usr/X11R7/lib/libfreetype.so.18.0.13: missing RELRO
ERROR: emul/netbsd/usr/lib/libbfd.so.15.0: missing RELRO
ERROR: emul/netbsd/usr/lib/libdes.so.12.0: missing RELRO
ERROR: emul/netbsd/usr/lib/libssl.so.12.0: missing RELRO
5schatten (2):
CMakeList.txt: added CMAKE_FIND_ROOT_PATH to detect RPi & Mali OpenGLES libs & headers
CMakeList.txt: added option to conditionally enable libCEC
Benjamin D (1):
Add metadata from the detailed view to the grid view
Benjamin Sinkula (1):
Update README to reflect Eigen3 dependency removal
Christopher Martin (1):
fix audio mute during loop
Conn O'Griofa (6):
InputManager: improve trigger axis calibration
Implement filterTrigger for PS3 controllers
filterTrigger: generalize for more controllers
filterTrigger: filter negative trigger axis event after positive axis detection
filterTrigger: filter negative trigger axis event after positive axis detection
Cristi Mitrana (16):
Fix the `opacity` for the hold-to-skip message.
Add ScreenScraper.fr as scraping source
Fix UI Kiosk mode filters applying also to Kid mode. This fixes games marked both as hidden and kid not being shown in Kid mode.
Add checks for the Scraper, when the settings no longer match the list of available scrapers.
Remove the TGDB scraper from the list of enabled scrapers
Fix ScreenScraper search by filename
Fix getThumbnailPath ignoring the 'image' tag when 'LocalArt' is not set
Minor documentation formatting and updates
scraper: change ScreenScraper API URL
Fix 'Last Played' collection crash.
Makes the display of system's name in Collections configurable.
Added an option to force the compilation of Raspberry Pi specific bits. Useful when the VC4 legacy driver is not used for GLES, but usage of 'omxplayer' is still desired.
Eliminate duplicate requests when multiple platforms are present for a system
Add scraping support for ChannelF, OpenBOR, Solarus and ZX81 Sinclair
fix 'DateTimeEditComponent' output formatting.
getGenericPath: don't remove trailing '/' when path is '/'.
Dan Leach (1):
Add Game Info Font Settings to OMX Player
Fabrice CARUSO (2):
Add --home command line to set custom home path + make windows version natively portable by detecting if .emulationstation is a subfolder of the exe.
Hanno Zulla (9):
Fix SVG resize issue for option_arrow.svg.
Updates artwork for input config, adds compass directions.
Update artwork for busy indicator.
Replace folder bitmap with svg artwork.
Replace blank_game bitmap with svg cartridge artwork.
Clean up checkbox svg artwork.
Update svg artwork.
Update star svg artwork.
Add BigBen kid's PS3 gamepad 146b:0902 to filterTrigger()
Jacob Mullins (1):
Fixed a quirk in the Clion PR
John Rassa (95):
updated theme docs to add details about horizontal_wheel
set default value for ImageDebug option
fix platform name for game and watch
fix git submodule command
document color option for RatingComponent
set curl to follow redirects to fix scraper error update to use legacy thegamesdb url
add theme support for text and line spacing for logo text in system carousel
create new DateTimeComponent
allow variables in import elements
add 'visible' theme element
update nanosvg to latest version
support for color gradients in drawRect and ImageComponent
cleanup duplicate theme code in Image/Video components
ensure change flag cleared for new FileData
clean up opacity handling for ImageComponent, RatingComponent
Grid updates. Animate scrolling option, autoLayout option, center selection option, scroll loop option, image source option
initial github actions config. runs basic build under ubuntu
fix assignment of gridtile theme properties
add 'animate' to theme properties for imagegrid; fix blurriness on image upscaling
repopulate list after applying theme to ensure image source is updated
Jools Wills (93):
cosmetic - indent
add setting for searching for local game art - defaults to off
Revert "Revert "Use local game art ( image, marquee and video ) from romfolder/images if the gamelist didn't specify a path""
added ISSUE_TEMPLATE.md from RetroPie-Setup to direct users to the forum first
Justin Kinnaird (1):
Use platform-specific methods for exePath
Keith F. Kelly (2):
Clarify the DELETE button's warning text.
Add support to built-in thegamesdb.net scraper for TurboGrafx CD platform.
Koerty (30):
Rename gridSize to gridDimension in ImageGridComponent.h
Add automatically generated Clion files to gitignore
Enable the grid view for developers
Use shoulder buttons for quick system swap in the grid view - Allow quick system swap using left/right shoulder in the grid view - Update the help prompt of the grid view accordingly
Rewrite the grid display code
Small fix to the populateList function of the GridGameListView
Fix ImageComponent flipY
Fix bad tile position when close to the last row and last row is full
Update the grid's help prompt
Add base theming syntax for the grid
Disable random game selection in retropie settings menu
Add GridTileComponent and base theming syntax
Add cropping and minSize to ImageComponent
Add scroll direction to the grid
Clean ImageGridComponent code
Fix calcGridDimension being called before mScrollDirection
Add "origin" theming element for help prompt
Add the new metadata field md_title to grid, video and detailed views
Add grid default image and folder image
Fix md_name not fading out
Rewrite NinePatchComponent to handle images of all sizes
Change grid creation flow
Enable the grid view for everyone
Partially display the last row if grid number of row isn't an integer
NinePatch now position correctly when origin is different from 0 0
Add 3 new theming properties to the grid tile background
Add extra buffer rows to the grid to load images ahead
Fix horizontal scrolling grid bugs
Fix grid padding being 2 times smaller than it should be
Grid fix freeze with big game collections
Lubosz Sarnecki (1):
Loading screen: Be more verbose about what is happening.
Marian Flor (1):
Fixed rounding.
Markus Pointner (1):
extend list of mame bios files to hide
Mátyás Mustoha (1):
Remove leftover debug code
Rael Gugelmin Cunha (5):
More restriction on kids mode (#431)
Skip mame bios/devices
Removing no more used mameNameToRealName
Work with dpad and analogs
Fixing kids/unattended mode
Shanti Gilbert (1):
Fixes compiling when Renderer_GLES10 is used
Spongman (1):
Update GamesDBJSONScraper.cpp
Tomas Jakobsson (47):
Replaced boost::posix_time with Utils::Time
Implement --screensize and --screenoffset
Eliminated the need for boost::xpressive, boost::algorithm and boost::variant
Remove all namespace fs = boost::filesystem;
Add getDirContent, getHomePath, getCWDPath, canonicalPath, absolutePath, resolvePath, resolveSymlink, getExtension, removeFile, isAbsolute, isRegularFile, isDirectory, isSymlink, isHidden and isEquivalent Rename makeGeneric to genericPath and escapePath to escapedPath
Minor misc fixes and warning silencers
Add support for --screenrotate
Fix --screenrotate to work with --screensize and --screenoffset
Fix omxplayer when using --screensize, --screenoffset and --screenrotate
Update and rename some Utils::FileSystem functions
Move more functionality from Util.cpp to utils/StringUtil.cpp in the quest too remove the need for boost
Switched over the last functions in Utils.cpp to Utils::String, step 3 of 5 in the quest to remove boost::filesystem
Remove the last traces of boost::filesystem::operational, this is PR 4 of 5 in the boost::filesystem removal quest
The final traces of boost has been eliminated
Fix thumbnail and image to be separated as I think it was originally meant to be.
Fix mStaticImage to use setResize
Fix start and offset not being reset for each invalidChar tested in Utils::FileSystem::GetEscapedPath
Remove builtin resources
Show build date and time when starting ES with --debug
Move MameNameMap out of the source and into mamenames.xml
Fix the Fedora instructions
Fix double //
Rename MameNames::names to MameNAmes::mNamePairs
Add Utils::String::toLower and Utils::String::format
Suggest vector access methods to be inlined
Fix getHomePath crash when the environment variable isn't set
Remove trailing '/' in getGenericPath
Fixes for roms larger than 2GB
Reset "StartupSystem" to "" if the requested system doesn't exist
Fix missing / in custom collection path
Silence warnings
Add support for fullscreen borderless window
Fix FilesystemUtil::isEquivalent by eliminating it entirely
Fix Transform4x4f which was broken in many, many ways, but just out of pure luck worked anyway
Add Transform4x4f::orthoProjection
Redid the entire Renderer Made all components render using triangle strips
Eliminate drawRect that takes int's and make sure everything uses the float version properly, this way everything is rounded the same way Only round the transforms when setting them on the GPU, to make sure everything is rounded the same, but only at the final moment
Make sure all vertices are properly rounded
Zachary Burke (1):
Majorly improved performance when fetching Mame names.
acrummyidea (1):
Adding new scraper GamesDBJSONScraper. The scraper uses the new GamesDb JSON API. On the first run it downloads a few resource files needed to intepret the otput of game search api calls these resources go into ~/.emulatiostation/scrapers The resource files include the list of developers and the list of publishers. To update the lists simply delete the files and relaunch emulationstation. Searching a game by id (GamesDB id) is done as before by manually edit the search query and query for "id:<gameId>".
hissingshark (1):
Vero4k autodetection and volume mixer fix
joemommasfat (1):
add sortname to gamelist.xml to sort by a different name
jrassa (4):
fix resolvePlaceholders to handle multiple variables in a single string
implement debug rects for images similar to text components
implement horizontal wheel for system carousel. fix image rotation bug in carousel
implement scripting support
pjft (16):
Fixing first favorites not updating index
Limiting last played count to 50
Fixing common path detection
Fix empty collections not showing up in Carousel for Full mode
Fix crash when scraping folders
Fixing path generation on the Pi for getDirContents
Fix crash when changing theme from within a collection that'll no longer be present at the carousel level
Fix for image resize flicker when using MaxSize
Final Fix for resizing images
Adjust mutex for SVG initialization and resizing
Fix for unset AudioCard setting
Change handling of screensaver to FileData only and respect UI Mode
Fix jagged font in games list
Fix Kiosk Favorites not registering
placroix74 (2):
Code formatting
[ScreenSaver] Consume input on cancel
tminit (1):
Changed Audio settings to be much more flexible
verybadsoldier (2):
save also metadata that have default values. they might not had default values on start so they have to be saved
save also metadata that have default values. they might not had default values on start so they have to be saved
yodatak (1):
Update instructions for Fedora compilation
6.0.2 to 6.1: (March 22, 2020)
* IMPORTANT NOTES:
- Because of major event remapping changes, all remappings will be reset
to defaults; if you had custom mappings, they will need to be
re-entered again.
- Because of major internal changes, all state files are now invalid.
- Support for Windows XP has been discontinued as of this version. WinXP
is now completely out of support from Microsoft, so we are doing the
same.
* Major improvements to display mode handling in NTSC vs. PAL. The window
is now the same size for both modes, and scaling is applied to simulate
the height of scanlines (in PAL mode, there are more scanlines and hence
each is narrower). This more properly emulates how the display would look
on a real TV.
* Removed the 'Display_Height' property, changing it to 'Display_VCenter'.
This new feature, along with the display mode changes above, almost
completely eliminate having to manually tweak each ROM so that it will
not have part of the image cut off.
* Removed the 'Display_YStart' property and all automatic detection of
ystart. It caused problems on some ROMs, and was not the way a real
console would work anyway. Related to this, ROMs now load much faster.
* Major improvements to event remapping:
- Allow mapping of modifier-key and button-direction combinations
- Physical controllers can map the same action to different events on
different virtual controllers
- Many more events can be remapped
- Events can be filtered by type in UI
* Paths have been simplified:
- The following file/directory locations are no longer configurable
(statedir, nvramdir, cheatfile, palettefile, propsfile); they are
now all under the base directory
- Removed cfgdir; Distella config files are now placed with their
associated ROMs
- Added 'basedir' commandline argument, which allows to change the
base directory where almost all config-related items are stored;
related to this, discontinued the 'basedir.txt' functionality
- Added 'baseinappdir' commandline argument, which sets the base
directory to the application folder (Windows only for now); this
replaces the functionality of 'basedir.txt'
* Added automatic controller detection.
* Controllers can be changed during emulation (no ROM reload required
anymore).
* Added support for Light Gun controller.
* Added limited KidVid support (8, 9 and 0 start the games).
* Removed superfluous controller option 'PADDLES_IDIR'.
* Added configurable paddle dejittering.
* Key-repeat mode improved; entering Time Machine by holding down a key
combo continues to send events (previously, you had to release and then
press the combo again).
* Certain buttons in the UI can now be activated repeatedly by holding
down the mouse button (Time Machine, debugger step/trace/frame advance,
etc.)
* Added option to configure mouse double click speed.
* Added option to configure controller input repeat speed.
* Added high quality scaling.
* Made scanlines better aligned to scaling.
* Added 'HiDPI' mode, which scales the UI by 2x when enabled. This is
meant for 4k and above monitors, but can actually be used at any
lower resolution that is large enough to display the scaled UI.
* Fixed TIA 'Center' option, Stella now remembers the last windowed position.
* Added fractional (25% increments) TIA zooms.
* Removed 'tia.fsfill' option, replacing it with 'tia.fs_stretch'. This
new option allows to preserve TIA image aspect ratio in fullscreen
mode, or stretch to fill the entire screen.
* Added configurable 'Overscan' option for fullscreen modes.
* Fullscreen TIA modes no longer assume that desktop taskbars, etc
are present, hence they are scaled to the proper fullscreen size.
* Added option to display dialogs in screen corners.
* Added hotkey for sound on/off.
* Enhanced 'Command' menu to display current state and more commands.
* Added option to save and load all TimeMachine states at once.
* Added option to automatically load/save states when entering/exiting
emulation.
* Added option to change pitch of Pitfall II music.
* ROM Info Viewer size is not limited to fixed zoom steps anymore.
* ROM Info Viewer can now display multiple lines per property and the
bank switching type.
* In file listings, you can now select directories by holding 'Shift' on
the first character entered. Entering characters in lowercase still
selects files, as before.
* Fixed bug when starting ROMs via MacOS finder.
* Added various developer options for oddball TIAs:
- stuffed player, missiles and ball move
- delayed playfield bits and color
- delayed players and ball VDEL swap
* Disabled some developer options for 'Player settings'.
* Writes to RAM read ports are ignored now.
* Added Developer setting, which breaks on writes to read ports.
* Improved breakpoints to now consider the banks.
* Improved debugger's TIA display and zoom windows.
* Improved hotkeys, now many emulation keys work in debugger too.
* Fixed display of negative values in debugger; sometimes they were
shown as positive.
* Reworked ROM properties database, making it load faster in certain cases.
* Updated internal ROM properties database to ROM-Hunter version 16
(thanks go to RomHunter for his tireless research in this area).
Related to this, updated the snapshot collection.
* Fixed 'Dancing Plate (Unknown) (PAL)' to use joystick.
* Fixed cheatcode handling in 2K and 4K ROMs.
* Fixed bug where ROMs smaller than 64 bytes were not recognized.
* Fixed bug where frying one ROM was continued with the next ROM.
* Fixed not working 7800 pause key.
* Enhanced UA bankswitching to support certain Brazilian carts.
* Fixed WD bankswitching.
* Added FC bankswitching for Amiga's Power Play Arcade Video Game Album.
* Added auto-detection of display format based on filename.
* Auto-detection of bankswitch scheme by file extension now includes
more human-readable formats (not restricted to DOS 3-char length).
See the documentation for the new names.
* Fixed bug in DPC+ scheme; 'fast fetch mode' was enabled at startup,
when it should be disabled by default.
* Some more work on DPC+ playfield 'jitter' effect for certain older DPC+
driver versions; more ROMs are now detected properly. Special thanks
to SpiceWare for his research in this area.
* Added proper Retron77 port.
* Added proper libretro port, and fixed display for OpenGLES renderers.
* PNG/ZIP image support is now conditionally compiled into Stella.
All major ports (Linux/macOS/Windows) have it enabled by default.
* SDL/GUI support is now conditionally compiled into Stella. All major
ports (Linux/macOS/Windows) have it enabled by default. This is
currently needed by the libretro port.
* Updated included PNG library to latest stable version.
* Updated UNIX configure script to work with the gcc version 10 and
above.
-
-- 1.24.1: --
February 27, 2020:
NES: Changed some macros in the CPU emulation code to not have leading underscores.
February 25, 2020:
Use sem_clockwait() or sem_clockwait_np() when available, instead of sem_timedwait().
NES: Don't memset() MDFN_PixelFormat object.
February 23, 2020:
Fixed build errors on FreeBSD relating to the multithreading code.
February 22, 2020:
Fixed broken semaphore emulation code used on non-Windows platforms when sem_timedwait() is not available(1.24.0-UNSTABLE regression).
February 15, 2020:
Altered Linux joystick API detection in the configure script, to avoid compiling with Linux joystick support in lieu of SDL joystick support on *BSD systems
with Linux header files installed.
February 11, 2020:
Fixed AltiVec-related build errors on 64-bit POWER/PPC.
SS: Added kludges to fix NBG2/NBG3 background layer offset problems in "Fighters Megamix".
February 2, 2020:
SNES-Faust: Replaced assert() in the DSP-1 emulation code with a SNES_DBG()
January 23, 2020:
PSX: Implemented a partial fix for missing notes/instruments in the music of "Dragon Ball GT: Final Bout".
December 30, 2019:
PSX: Don't ignore the sample loop address set via ADPCM header when the loop address register was written only before the end of voice on startup delay.
Fixes sound effect glitches in "Re-Loaded: The Hardcore Sequel".
-- 1.24.0-UNSTABLE: --
December 19, 2019:
PSX: Handle SPU CD volume as signed 16-bit instead of unsigned; fixes lowest volume setting in "Star Wars Dark Forces".
December 18, 2019:
PSX: Tweaked PAL pixel aspect ratio, tweaked nominal FPS values, added setting "psx.correct_aspect", and fixed light gun Y positioning with PAL games.
December 16, 2019:
SNES-Faust: Added SDD-1 emulation.
November 26, 2019:
SNES-Faust: Allow emulation to switch away from the SPC700 during execution of opcode 0xFA, between the read and write, to fix bonkers
audio that leads to a hang in the "Tenshi no Uta" game.
SNES-Faust: Extended DMA NMI delay kludge to cover 8-bit LDX #imm to fix hang in "Frisky Tom" in "Nichibutsu Arcade Classics".
SNES-Faust: Added DSP-2 emulation.
November 19, 2019:
SNES-Faust: Added MSU1 support.
SNES-Faust: Added a multithreaded PPU renderer, controlled via the new "snes_faust.renderer" setting, disabled by default.
SNES-Faust: Added SuperFX overclocking support, controlled via setting "snes_faust.superfx.clock_rate".
SNES-Faust: Added SuperFX instruction cache emulation support, controlled via setting "snes_faust.superfx.icache", disabled by default.
SNES-Faust: Added support for Game Genie cheats(entered via Mednafen's cheat system).
SNES-Faust: Added setting "snes_faust.region" to allow for overriding the automatic region detection and emulating one region while reporting the different region to the game.
November 17, 2019:
On Windows, call CoInitializeEx() with COINIT_MULTITHREADED before calling SDL_Init(), to prevent potential initialization errors with Mednafen's
WASAPI sound code.
November 16, 2019:
Using drive-relative paths on Windows should no longer make a mess due to Mednafen looking for and putting files in the wrong place.
November 14, 2019:
SS: Removed "ss.midsync" setting; the functionality it controlled is now always enabled.
Added settings "affinity.cd", "affinity.emu", "affinity.video", and "ss.affinity.vdp2" to specify CPU thread affinity masks for the CD read threads,
main emulation thread, video blitting thread, and Saturn VDP2 rendering thread, respectively. Setting thread affinities properly can improve
Saturn emulation performance on a dual-core CPU with hyperthreading.
Cleaned up multithreading code and API.
November 10, 2019:
Removed "using namespace Mednafen;" from types.h, and related changes.
October 25, 2019:
SNES-Faust: Ignore frameskip if interlace mode is enabled, to avoid feeding uninitialized data into the deinterlacer which leads to a crash.
September 18, 2019:
Implemented workaround in OwlResampler_neon.inc for a C++ parsing bug in gcc 9.x.
September 13, 2019:
Apple2: Renamed(with backwards-compatibility aliases) video mode "rgb_alt1" to "rgb_alt" and "rgb_alt2" to "rgb_alt_tfr", and added new video mode "rgb_tfr".
Apple2: Added support for 32-color custom palettes(will automatically enable a text fringe reduction RGB mode if used).
-- 1.23.0-UNSTABLE: --
August 26, 2019:
Apple2: Added support for an RGB-style video mode, selectable with the new setting "apple2.video.mode".
SS: Added "Shunsai" to the internal database of games to use the data cache read bypass kludge with, to fix various graphical glitches.
August 25, 2019:
Expanded and harmonized the accepted value ranges for settings "sfspeed" and "ffspeed" to 0.25 through 15, for greater versatility.
NGP: Added very incomplete emulation of BIOS system call "VECT_FLASHERS", per tip from stellarporter. Fixes eventual hang in "The Last Blade".
NGP: Fixed TLCS-900H new IFF calculation when taking an interrupt, per tip from trinemark. Fixes broken voice playback in
"Densetsu no Ogre Battle Gaiden".
NGP: Fixed potential division by zero in the TLCS-900H MINC* and MDEC* instructions emulation(the emulation of the instructions is still almost certainly wrong,
though), per tip from byuu.
August 24, 2019:
PCE: Changed the Super CD-ROM^2 memory identification signature to match a Duo instead of a PCE with a system card, to fix compatibility
issues with some US Super CD-ROM^2 games when using a US system card image, per tip from elmer.
August 22, 2019:
SS: Added "Ronde" to the internal database of games to use the data cache read bypass kludge with, to fix missing graphics
on the title screen and main menu.
August 20, 2019:
SS: Added "Thunder Force Gold Pack 1" to the internal database of games to use the data cache read bypass kludge with,
to fix explosion graphic glitches in "Thunder Force III".
SS: Fixed a bug that could cause erroneous VDP1 framebuffer erasure when the lower Y coordinate for the erase window was too large.
August 12, 2019:
SS: Added "Thunder Force Gold Pack 2" to the internal database of games to use the data cache read bypass kludge with,
to fix quasi-random hangs when pausing the game in "Thunder Force AC".
SS: Corrected the value the SCU DMA mode registers are initialized to on reset.
June 18, 2019:
SS: Added "Formula Grand Prix - Team Unei Simulation" to the internal database of games to use the data cache read bypass kludge with,
to fix a hang after the title screen.
SS: Added "Virtual Mahjong" to the internal database of games to use the data cache read bypass kludge with, to fix graphical glitches on the character
select screen.
June 16, 2019:
SS: Slowed down SCU DMA from SDRAM/SH-2 bus slightly, though I'm not sure what is the origin of the measured overhead/slowdown on a Saturn.
Fixes FMV flickering in "Lunar".
SS: Added partial emulation(CS0 and CS1, SH-2 non-DMA accesses and SCU DMA accesses) of the timing effects of the SCU A-bus configuration registers.
SS: Added "Tech Saturn 1997.6" to the internal database of games for which 1MiB RAM cart emulation is enabled, for its "Groove on Fight" demo.
SS: Implemented a crude simulation of the VDP1 command execution slowdown that occurs when an SH-2 CPU writes to VDP1 RAM or registers, activated
via the horrible hacks mechanism; fixes text flickering in "Arcade's Greatest Hits", most rescue text flickering in "Burning Rangers"(at least on the first stage),
graphical glitches in "Whizz", and some of the graphical glitches in "All-Star Baseball 97".
SS: Added a horrible hack to fix the hang in "Fighters Megamix" that occurred after the intro FMV played(or was interrupted).
SS: Added a horrible hack to fix the hang at the end of disc 1 of "Grandia".
SS: Added a per-game horrible hacks mechanism.
SS: Added "Albert Odyssey" to the internal database of games to use full cache emulation with, to fix battle text truncation.
SS: Added "Die Hard Trilogy", "GeGeGe no Kitarou", "Nobunaga no Yabou Shouseiroku", "Space Jam" to the internal database of games to use full
cache emulation with, to fix hangs/crashes.
SS: Added "Gex" and "Slam 'n Jam 96" to the internal database of games to use full cache emulation with, to fix minor FMV glitches.
SS: Added "Policenauts" to the internal database of games to use full cache emulation with, to fix screen flickering on disc 2.
SS: Full cache emulation(enabled via database) now also enables emulation of SH-2 WB/EX pipeline stalls.
SS: Tweaked the kludgey CPU instruction read/write penalty during SH-2 DMA to be higher in some circumstances; fixes major graphical glitches in the
later stages of "Shienryu" when on arcade mode.
SS: Added "Dragon Force II" to the internal database of games to use the data cache read bypass kludge with, to fix major game logic errors
during battles.
March 15, 2019:
SNES-Faust: Added CX4, SuperFX, and SA-1 emulation.
SNES-Faust: Made various changes to try to improve game compatibility
boundary or not; casl was mistakenly treated as an illegal instruction
when destination is the highest long word in a page. This results in
kernel panic in supervisor mode.
Bump revision.
Now, NetBSD/sun3 boots multiuser again. Have fun!