mirror of
https://github.com/dborth/snes9xgx.git
synced 2024-11-28 05:24:21 +01:00
use posix functions to read rom
This commit is contained in:
parent
e969ce7fad
commit
05fcd2816c
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <diskio/diskio.h>
|
#include <diskio/diskio.h>
|
||||||
#include <fat/fat.h>
|
|
||||||
#include <xenos/xenos.h>
|
#include <xenos/xenos.h>
|
||||||
#include <xenon_sound/sound.h>
|
#include <xenon_sound/sound.h>
|
||||||
#include <xenon_soc/xenon_power.h>
|
#include <xenon_soc/xenon_power.h>
|
||||||
@ -45,11 +44,12 @@ extern "C" {
|
|||||||
void usb_init(void);
|
void usb_init(void);
|
||||||
|
|
||||||
#include <input/input.h>
|
#include <input/input.h>
|
||||||
|
|
||||||
int fat_file_size;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
static inline uint32_t bswap_32(uint32_t t)
|
static inline uint32_t bswap_32(uint32_t t)
|
||||||
{
|
{
|
||||||
return ((t & 0xFF) << 24) | ((t & 0xFF00) << 8) | ((t & 0xFF0000) >> 8) | ((t & 0xFF000000) >> 24);
|
return ((t & 0xFF) << 24) | ((t & 0xFF00) << 8) | ((t & 0xFF0000) >> 8) | ((t & 0xFF000000) >> 24);
|
||||||
@ -67,8 +67,9 @@ emulate ()
|
|||||||
int offset = 0x10;
|
int offset = 0x10;
|
||||||
// printf("a=%d, b=%d, x=%d, y=%d, lb=%d, rb=%d, start=%d, select=%d, up=%d, down=%d, left=%d, right=%d\n",
|
// printf("a=%d, b=%d, x=%d, y=%d, lb=%d, rb=%d, start=%d, select=%d, up=%d, down=%d, left=%d, right=%d\n",
|
||||||
// c.a, c.b, c.x, c.y, c.lb, c.rb, c.start, c.select, c.up, c.down, c.left, c.right);
|
// c.a, c.b, c.x, c.y, c.lb, c.rb, c.start, c.select, c.up, c.down, c.left, c.right);
|
||||||
S9xReportButton (offset + 0, c.a);
|
|
||||||
S9xReportButton (offset + 1, c.b);
|
S9xReportButton (offset + 0, c.b);
|
||||||
|
S9xReportButton (offset + 1, c.a);
|
||||||
S9xReportButton (offset + 2, c.x);
|
S9xReportButton (offset + 2, c.x);
|
||||||
S9xReportButton (offset + 3, c.y);
|
S9xReportButton (offset + 3, c.y);
|
||||||
|
|
||||||
@ -110,7 +111,6 @@ emulate ()
|
|||||||
so.samples_mixed_so_far = so.play_position = 0;
|
so.samples_mixed_so_far = so.play_position = 0;
|
||||||
|
|
||||||
unsigned char buffer[2048];
|
unsigned char buffer[2048];
|
||||||
unsigned char out[2048];
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
int req_samples = xenon_sound_get_unplayed();
|
int req_samples = xenon_sound_get_unplayed();
|
||||||
@ -303,31 +303,24 @@ int main(void)
|
|||||||
printf("Waiting for USB storage...\n");
|
printf("Waiting for USB storage...\n");
|
||||||
|
|
||||||
extern void xenos_init();
|
extern void xenos_init();
|
||||||
struct bdev *f;
|
int fd;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
usb_do_poll();
|
usb_do_poll();
|
||||||
f = bdev_open("uda");
|
|
||||||
if (f)
|
|
||||||
break;
|
|
||||||
} while (1);
|
|
||||||
|
|
||||||
if (f)
|
fd = open("uda:/SNES9X.SMC", O_RDONLY);
|
||||||
|
} while (fd < 0);
|
||||||
|
|
||||||
|
struct stat stat;
|
||||||
|
fstat(fd, &stat);
|
||||||
|
|
||||||
|
SNESROMSize = stat.st_size;
|
||||||
|
if (read(fd, Memory.ROM, SNESROMSize) != SNESROMSize)
|
||||||
{
|
{
|
||||||
if (fat_init(f))
|
printf("Failed to read rom\n");
|
||||||
printf(" * FAT init failed\n");
|
|
||||||
else if (fat_open("/SNES9X.SMC"))
|
|
||||||
printf("fat open of /SNES9X.SMC failed\n");
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf(" * fat open okay, loading file...\n");
|
|
||||||
int r = fat_read(Memory.ROM, fat_file_size);
|
|
||||||
goto ok;
|
|
||||||
}
|
|
||||||
printf("fat read failed.\n");
|
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
ok:
|
|
||||||
SNESROMSize = fat_file_size;
|
|
||||||
// memcpy(Memory.ROM, smc, SNESROMSize = sizeof(smc));
|
// memcpy(Memory.ROM, smc, SNESROMSize = sizeof(smc));
|
||||||
|
|
||||||
Memory.LoadROM ("BLANK.SMC");
|
Memory.LoadROM ("BLANK.SMC");
|
||||||
@ -343,9 +336,9 @@ ok:
|
|||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
const char *getcwd(void)
|
char* getcwd(char*, size_t)
|
||||||
{
|
{
|
||||||
return "/";
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int chdir(const char *f)
|
int chdir(const char *f)
|
||||||
@ -354,26 +347,26 @@ int chdir(const char *f)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int getuid(void)
|
uid_t getuid(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getgid(void)
|
gid_t getgid(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void chown()
|
int chown(const char*, uid_t, gid_t)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int stat()
|
int stat(const char*, struct stat*)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int unlink()
|
int unlink(const char*)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user