summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/nosefart/fmopl.h4
-rw-r--r--contrib/nosefart/nes_apu.c11
-rw-r--r--contrib/nosefart/nsf.c29
3 files changed, 24 insertions, 20 deletions
diff --git a/contrib/nosefart/fmopl.h b/contrib/nosefart/fmopl.h
index 92a2859d7..a7081d024 100644
--- a/contrib/nosefart/fmopl.h
+++ b/contrib/nosefart/fmopl.h
@@ -116,8 +116,8 @@ typedef struct fm_opl_f {
OPL_PORTHANDLER_W keyboardhandler_w;
int keyboard_param;
/* time tables */
- INT32 AR_TABLE[75]; /* atttack rate tables */
- INT32 DR_TABLE[75]; /* decay rate tables */
+ INT32 AR_TABLE[76]; /* atttack rate tables */
+ INT32 DR_TABLE[76]; /* decay rate tables */
UINT32 FN_TABLE[1024]; /* fnumber -> increment counter */
/* LFO */
INT32 *ams_table;
diff --git a/contrib/nosefart/nes_apu.c b/contrib/nosefart/nes_apu.c
index 9774e3a30..a2153cc17 100644
--- a/contrib/nosefart/nes_apu.c
+++ b/contrib/nosefart/nes_apu.c
@@ -1036,12 +1036,14 @@ void apu_process(void *buffer, int num_samples)
/* signed 16-bit output, unsigned 8-bit */
if (16 == apu->sample_bits) {
- *(int16 *)(buffer) = (int16) accum;
- buffer += sizeof(int16);
+ int16 *q = buffer;
+ *q++ = accum;
+ buffer = q;
}
else {
- *(uint8 *)(buffer) = (accum >> 8) ^ 0x80;
- buffer += sizeof(uint8);
+ uint8 *q = buffer;
+ *q++ = (accum >> 8) ^ 0x80;
+ buffer = q;
}
}
@@ -1090,6 +1092,7 @@ void apu_reset(void)
apu->ext->reset();
}
+void apu_build_luts(int num_samples);
void apu_build_luts(int num_samples)
{
int i;
diff --git a/contrib/nosefart/nsf.c b/contrib/nosefart/nsf.c
index 700aeb3a7..3170cc8be 100644
--- a/contrib/nosefart/nsf.c
+++ b/contrib/nosefart/nsf.c
@@ -348,6 +348,7 @@ void nsf_frame(nsf_t *nsf)
}
/* Deallocate memory */
+void nes_shutdown(nsf_t *nsf);
void nes_shutdown(nsf_t *nsf)
{
int i;
@@ -652,13 +653,13 @@ static int nfs_skip_mem(struct nsf_loader_t *loader, int n)
mloader->cur = (goal > mloader->len) ? mloader->len : goal;
return goal - mloader->cur;
}
-
+/*
static const char * nfs_fname_mem(struct nsf_loader_t *loader)
{
struct nsf_mem_loader_t * mloader = (struct nsf_mem_loader_t *)loader;
return mloader->fname;
}
-
+*/
static struct nsf_mem_loader_t nsf_mem_loader = {
{ nfs_open_mem, nfs_close_mem, nfs_read_mem, nfs_length_mem, nfs_skip_mem },
0,0,0
@@ -694,7 +695,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
#if 0
if (length <= NSF_HEADER_SIZE) {
log_printf("nsf : [%s] not an NSF format file\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
#endif
@@ -702,14 +703,14 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
/* Read magic */
if (loader->read(loader, id, 5)) {
log_printf("nsf : [%s] error reading magic number\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
/* Check magic */
if (memcmp(id, NSF_MAGIC, 5)) {
log_printf("nsf : [%s] is not an NSF format file\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
@@ -720,7 +721,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
if (NULL == temp_nsf) {
log_printf("nsf : [%s] error allocating nsf header\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
/* $$$ ben : safety net */
@@ -731,7 +732,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
/* Read header (without MAGIC) */
if (loader->read(loader, (int8 *)temp_nsf+5, NSF_HEADER_SIZE - 5)) {
log_printf("nsf : [%s] error reading nsf header\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
@@ -764,7 +765,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
if (temp_nsf->length <= 0) {
log_printf("nsf : [%s] not an NSF format file (missing data)\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
@@ -779,14 +780,14 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
}
if (NULL == temp_nsf->data) {
log_printf("nsf : [%s] error allocating nsf data\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
/* Read data */
if (loader->read(loader, temp_nsf->data, temp_nsf->length)) {
log_printf("nsf : [%s] error reading NSF data\n",
- loader->fname);
+ loader->fname(loader));
goto error;
}
@@ -806,7 +807,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
if (size < sizeof(nsf_file_ext)) {
log_printf("nsf : [%s] corrupt extension size (%d)\n",
- loader->fname, size);
+ loader->fname(loader), size);
/* Not a fatal error here. Just skip extension loading. */
break;
}
@@ -828,7 +829,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
if (loader->read(loader, tmp_time, size)) {
log_printf("nsf : [%s] missing extension data\n",
- loader->fname);
+ loader->fname(loader));
/* Not a fatal error here. Just skip extension loading. */
break;
}
@@ -836,7 +837,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
temp_nsf->song_frames = malloc(sizeof(*temp_nsf->song_frames) * songs);
if (!temp_nsf->song_frames) {
log_printf("nsf : [%s] extension alloc failed\n",
- loader->fname);
+ loader->fname(loader));
/* Not a fatal error here. Just skip extension loading. */
break;
}
@@ -859,7 +860,7 @@ nsf_t * nsf_load_extended(struct nsf_loader_t * loader)
}
} else if (loader->skip(loader, size)) {
log_printf("nsf : [%s] extension skip failed\n",
- loader->fname);
+ loader->fname(loader));
/* Not a fatal error here. Just skip extension loading. */
break;
}