Mercurial > audlegacy-plugins
diff src/console/Nsf_Emu.cxx @ 341:986f098da058 trunk
[svn] - merge in blargg's changes
author | nenolod |
---|---|
date | Thu, 07 Dec 2006 15:20:41 -0800 |
parents | 230decbfe9be |
children | 5abb9030e8a7 |
line wrap: on
line diff
--- a/src/console/Nsf_Emu.cxx Wed Dec 06 07:57:05 2006 -0800 +++ b/src/console/Nsf_Emu.cxx Thu Dec 07 15:20:41 2006 -0800 @@ -1,4 +1,4 @@ -// Game_Music_Emu 0.5.1. http://www.slack.net/~ant/ +// Game_Music_Emu 0.5.2. http://www.slack.net/~ant/ #include "Nsf_Emu.h" @@ -106,7 +106,7 @@ blargg_err_t load_( Data_Reader& in ) { - blargg_err_t err = in.read( &h, sizeof h ); + blargg_err_t err = in.read( &h, Nsf_Emu::header_size ); if ( err ) return (err == in.eof_error ? gme_wrong_file_type : err); @@ -213,13 +213,15 @@ CHECK_ALLOC( vrc6 ); adjusted_gain *= 0.75; - int const count = Nes_Apu::osc_count + Nes_Vrc6_Apu::osc_count; - static const char* const names [count] = { - APU_NAMES, - "Saw Wave", "Square 3", "Square 4" - }; - set_voice_count( count ); - set_voice_names( names ); + { + int const count = Nes_Apu::osc_count + Nes_Vrc6_Apu::osc_count; + static const char* const names [count] = { + APU_NAMES, + "Saw Wave", "Square 3", "Square 4" + }; + set_voice_count( count ); + set_voice_names( names ); + } if ( header_.chip_flags & namco_flag ) { @@ -264,8 +266,8 @@ blargg_err_t Nsf_Emu::load_( Data_Reader& in ) { - unload(); - RETURN_ERR( rom.load( in, sizeof header_, &header_, 0 ) ); + assert( offsetof (header_t,unused [4]) == header_size ); + RETURN_ERR( rom.load( in, header_size, &header_, 0 ) ); set_track_count( header_.track_count ); RETURN_ERR( check_nsf_header( &header_ ) ); @@ -388,13 +390,13 @@ { switch ( addr ) { - case Nes_Namco_Apu::data_reg_addr: - namco->write_data( time(), data ); - return; - - case Nes_Namco_Apu::addr_reg_addr: - namco->write_addr( data ); - return; + case Nes_Namco_Apu::data_reg_addr: + namco->write_data( time(), data ); + return; + + case Nes_Namco_Apu::addr_reg_addr: + namco->write_addr( data ); + return; } } @@ -402,13 +404,13 @@ { switch ( addr & Nes_Fme7_Apu::addr_mask ) { - case Nes_Fme7_Apu::latch_addr: - fme7->write_latch( data ); - return; - - case Nes_Fme7_Apu::data_addr: - fme7->write_data( time(), data ); - return; + case Nes_Fme7_Apu::latch_addr: + fme7->write_latch( data ); + return; + + case Nes_Fme7_Apu::data_addr: + fme7->write_data( time(), data ); + return; } } @@ -524,6 +526,7 @@ r.pc = play_addr; low_mem [0x100 + r.sp--] = (badop_addr - 1) >> 8; low_mem [0x100 + r.sp--] = (badop_addr - 1) & 0xFF; + GME_FRAME_HOOK( this ); } } }