diff options
-rw-r--r-- | contrib/nosefart/fmopl.h | 4 | ||||
-rw-r--r-- | contrib/nosefart/nes_apu.c | 11 | ||||
-rw-r--r-- | contrib/nosefart/nsf.c | 29 |
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; } |