mirror of
https://github.com/Pecusx/libretro-atari800.git
synced 2026-05-20 22:33:22 +02:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user