Fix first run crashing on Xbox One. Added savestate support. Rewind … (#87)

* Fix first run crashing on Xbox One.
* Added savestate support.
* Rewind works.  Fixes issue #83 and possibly #49.
* Added Disc Control menu.  Supports Disks, Tapes and M3U files (issue #66).
* Added in support for 5200 Super Carts.
* Better support for 5200 controller.
* Added Paddle support.
* Converted Core Options menu to v2.
* Moved some core options into submenus.
* Added controller mappings for Ports 2-4.
* Added options for Dual Stick and Swap Ports.  Fixes issue #76.
* Joystick/Console now controlled more easily with device type Atari Keyboard.
* Added 4 Hi-Res Artifacting modes.  Restart does something now.
* When core option changed only reboot if necessary.  Removed several hardcoded controller binds.  Fixed issue #29.  Joypad input ignored when virtual keyboard active.
* SIO Acceleration now defaults to enabled.  Fix for Bounty Bob (5200 & lift fix A800).
* Added Atari 800 carts to autodetect DB.
* Added more Carts to DB.
* Fixed Drive Index not being reset on 'restart'.
* Changed Atari Joystick default mappings to something more reasonable.
This commit is contained in:
greenchili2
2023-07-31 17:35:21 -04:00
committed by GitHub
parent 86be15db82
commit 20d59afb3f
50 changed files with 8226 additions and 2132 deletions
+25
View File
@@ -32,6 +32,10 @@
#include <stdio.h>
#include <string.h>
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
#include "sysrom.h"
#include "cfg.h"
@@ -266,6 +270,9 @@ int SYSROM_FindInDir(char const *directory, int only_if_not_set)
{
DIR *dir;
struct dirent *entry;
#ifdef HAVE_STAT
struct stat status;
#endif
if (only_if_not_set && num_unset_roms == 0)
/* No unset ROM paths left. */
@@ -281,7 +288,25 @@ int SYSROM_FindInDir(char const *directory, int only_if_not_set)
int id;
ULONG crc;
int matched_crc = FALSE;
if (entry->d_name[0] == '.') {
/* never match "." */
if (entry->d_name[1] == '\0')
continue;
/* never match ".." */
if (entry->d_name[1] == '.' && entry->d_name[2] == '\0')
continue;
}
Util_catpath(full_filename, directory, entry->d_name);
#ifdef HAVE_STAT
if (stat(full_filename, &status) == 0) {
if (S_ISDIR(status.st_mode))
continue ;
}
#endif
if ((file = fopen(full_filename, "rb")) == NULL)
/* Ignore non-readable files (e.g. directories). */
continue;