LMMS
Loading...
Searching...
No Matches
Nsf_Emu Class Reference

#include <Nsf_Emu.h>

Inheritance diagram for Nsf_Emu:
Nes_Cpu Classic_Emu Music_Emu Gme_File Nsfe_Emu

Classes

struct  header_t

Public Types

enum  { header_size = 0x80 }
Public Types inherited from Music_Emu
typedef short sample_t
typedef gme_equalizer_t equalizer_t
Public Types inherited from Gme_File
enum  { max_field_ = 255 }

Public Member Functions

header_t constheader () const
blargg_err_t load (header_t const &h, Data_Reader &in)
 Nsf_Emu ()
 ~Nsf_Emu ()
Nes_Apuapu_ ()
Public Member Functions inherited from Classic_Emu
 Classic_Emu ()
 ~Classic_Emu ()
void set_buffer (Multi_Buffer *)
blargg_err_t set_multi_channel (bool is_enabled) override
Public Member Functions inherited from Music_Emu
blargg_err_t set_sample_rate (long sample_rate)
blargg_err_t start_track (int)
blargg_err_t play (long count, sample_t *buf)
long sample_rate () const
int current_track () const
int voice_count () const
const char ** voice_names () const
bool multi_channel () const
long tell () const
long tell_samples () const
blargg_err_t seek (long msec)
blargg_err_t seek_samples (long n)
blargg_err_t skip (long n)
bool track_ended () const
void set_fade (long start_msec, long length_msec=8000)
void ignore_silence (bool disable=true)
blargg_err_t track_info (track_info_t *out) const
void set_tempo (double)
void mute_voice (int index, bool mute=true)
void mute_voices (int mask)
void set_gain (double)
void enable_accuracy (bool enable=true)
equalizer_t constequalizer () const
void set_equalizer (equalizer_t const &)
 Music_Emu ()
 ~Music_Emu ()
blargg_err_t track_info (track_info_t *out, int track) const
Public Member Functions inherited from Gme_File
blargg_err_t load_file (const char *path)
blargg_err_t load (Data_Reader &)
blargg_err_t load_mem (void const *data, long size)
blargg_err_t load_m3u (const char *path)
blargg_err_t load_m3u (Data_Reader &in)
void clear_playlist ()
gme_type_t type () const
const char * warning ()
int track_count () const
blargg_err_t track_info (track_info_t *out, int track) const
void set_user_data (void *p)
voiduser_data () const
void set_user_cleanup (gme_user_cleanup_t func)
int error_count () const
 Gme_File ()
virtual ~Gme_File ()
blargg_err_t remap_track_ (int *track_io) const

Static Public Member Functions

static gme_type_t static_type ()
Static Public Member Functions inherited from Music_Emu
static const equalizer_t make_equalizer (double treble, double bass)
Static Public Member Functions inherited from Gme_File
static void copy_field_ (char *out, const char *in)
static void copy_field_ (char *out, const char *in, int len)

Static Public Attributes

static equalizer_t const nes_eq
static equalizer_t const famicom_eq
Static Public Attributes inherited from Music_Emu
static equalizer_t const tv_eq

Protected Types

enum  { bank_count = 8 }
enum  { rom_begin = 0x8000 }
enum  { bank_select_addr = 0x5FF8 }
enum  { bank_size = 0x1000 }
Protected Types inherited from Classic_Emu
enum  { wave_type = 0x100 , noise_type = 0x200 , mixed_type = wave_type | noise_type }

Protected Member Functions

blargg_err_t track_info_ (track_info_t *, int track) const
blargg_err_t load_ (Data_Reader &)
blargg_err_t start_track_ (int)
blargg_err_t run_clocks (blip_time_t &, int)
void set_tempo_ (double)
void set_voice (int, Blip_Buffer *, Blip_Buffer *, Blip_Buffer *)
void update_eq (blip_eq_t const &)
void unload ()
Protected Member Functions inherited from Classic_Emu
void set_voice_types (int const *t)
blargg_err_t setup_buffer (long clock_rate)
long clock_rate () const
void change_clock_rate (long)
blargg_err_t set_sample_rate_ (long sample_rate)
void mute_voices_ (int)
void set_equalizer_ (equalizer_t const &)
blargg_err_t play_ (long, sample_t *)
Protected Member Functions inherited from Music_Emu
void set_max_initial_silence (int n)
void set_silence_lookahead (int n)
void set_voice_count (int n)
void set_voice_names (const char *const *names)
void set_track_ended ()
double gain () const
double tempo () const
void remute_voices ()
blargg_err_t set_multi_channel_ (bool is_enabled)
virtual void enable_accuracy_ (bool)
virtual blargg_err_t skip_ (long count)
virtual void pre_load ()
virtual void post_load_ ()
Protected Member Functions inherited from Gme_File
void set_track_count (int n)
void set_warning (const char *s)
void set_type (gme_type_t t)
blargg_err_t load_remaining_ (void const *header, long header_size, Data_Reader &remaining)
virtual blargg_err_t load_mem_ (byte const *data, long size)
virtual void clear_playlist_ ()

Protected Attributes

byte initial_banks [bank_count]
nes_addr_t init_addr
nes_addr_t play_addr
double clock_rate_
bool pal_only
Nes_Cpu::registers_t saved_state
nes_time_t next_play
nes_time_t play_period
int play_extra
int play_ready
Rom_Data< bank_sizerom

Private Types

enum  { badop_addr = bank_select_addr }
enum  { sram_addr = 0x6000 }
typedef Nes_Cpu cpu
Private Types inherited from Nes_Cpu
enum  { page_size = 0x800 }
enum  { bad_opcode = 0xF2 }
enum  { page_bits = 11 }
enum  { page_count = 0x10000 >> page_bits }
enum  { irq_inhibit = 0x04 }

Private Member Functions

void cpu_jsr (nes_addr_t)
int cpu_read (nes_addr_t)
void cpu_write (nes_addr_t, int)
void cpu_write_misc (nes_addr_t, int)
blargg_err_t init_sound ()
Private Member Functions inherited from Nes_Cpu
void reset (void const *unmapped_page=0)
void map_code (nes_addr_t start, unsigned size, void const *code, bool mirror=false)
uint8_t constget_code (nes_addr_t)
bool run (nes_time_t end_time)
nes_time_t time () const
void set_time (nes_time_t t)
void adjust_time (int delta)
nes_time_t irq_time () const
void set_irq_time (nes_time_t)
nes_time_t end_time () const
void set_end_time (nes_time_t)
void clear_error_count ()
unsigned long error_count () const
 Nes_Cpu ()

Static Private Member Functions

static int pcm_read (void *, nes_addr_t)

Private Attributes

class Nes_Namco_Apunamco
class Nes_Vrc6_Apuvrc6
class Nes_Fme7_Apufme7
Nes_Apu apu
header_t header_
byte sram [0x2000]
byte unmapped_code [Nes_Cpu::page_size+8]
Private Attributes inherited from Nes_Cpu
uint8_t low_mem [0x800]
registers_t r

Friends

class Nes_Cpu

Additional Inherited Members

Public Attributes inherited from Gme_File
BLARGG_DISABLE_NOTHROW typedef uint8_t byte

Member Typedef Documentation

◆ cpu

typedef Nes_Cpu Nsf_Emu::cpu
private

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
header_size 

◆ anonymous enum

anonymous enum
protected
Enumerator
bank_select_addr 

◆ anonymous enum

anonymous enum
private
Enumerator
badop_addr 

◆ anonymous enum

anonymous enum
protected
Enumerator
rom_begin 

◆ anonymous enum

anonymous enum
private
Enumerator
sram_addr 

◆ anonymous enum

anonymous enum
protected
Enumerator
bank_size 

◆ anonymous enum

anonymous enum
protected
Enumerator
bank_count 

Constructor & Destructor Documentation

◆ Nsf_Emu()

Nsf_Emu::Nsf_Emu ( )

◆ ~Nsf_Emu()

Nsf_Emu::~Nsf_Emu ( )

Member Function Documentation

◆ apu_()

Nes_Apu * Nsf_Emu::apu_ ( )
inline

◆ cpu_jsr()

void Nsf_Emu::cpu_jsr ( nes_addr_t )
private

◆ cpu_read()

int Nsf_Emu::cpu_read ( nes_addr_t addr)
private

◆ cpu_write()

void Nsf_Emu::cpu_write ( nes_addr_t addr,
int data )
private

◆ cpu_write_misc()

void Nsf_Emu::cpu_write_misc ( nes_addr_t addr,
int data )
private

◆ header()

header_t const & Nsf_Emu::header ( ) const
inline

◆ init_sound()

blargg_err_t Nsf_Emu::init_sound ( )
private

◆ load()

blargg_err_t Nsf_Emu::load ( header_t const & h,
Data_Reader & in )
inline

◆ load_()

blargg_err_t Nsf_Emu::load_ ( Data_Reader & in)
protectedvirtual

Reimplemented from Gme_File.

Reimplemented in Nsfe_Emu.

◆ pcm_read()

int Nsf_Emu::pcm_read ( void * emu,
nes_addr_t addr )
staticprivate

◆ run_clocks()

blargg_err_t Nsf_Emu::run_clocks ( blip_time_t & duration,
int  )
protectedvirtual

Implements Classic_Emu.

◆ set_tempo_()

void Nsf_Emu::set_tempo_ ( double t)
protectedvirtual

Implements Music_Emu.

◆ set_voice()

void Nsf_Emu::set_voice ( int i,
Blip_Buffer * buf,
Blip_Buffer * ,
Blip_Buffer *  )
protectedvirtual

Implements Classic_Emu.

◆ start_track_()

blargg_err_t Nsf_Emu::start_track_ ( int track)
protectedvirtual

Implements Classic_Emu.

Reimplemented in Nsfe_Emu.

◆ static_type()

gme_type_t Nsf_Emu::static_type ( )
inlinestatic

◆ track_info_()

blargg_err_t Nsf_Emu::track_info_ ( track_info_t * out,
int track ) const
protectedvirtual

Implements Gme_File.

Reimplemented in Nsfe_Emu.

◆ unload()

void Nsf_Emu::unload ( )
protectedvirtual

Reimplemented from Music_Emu.

Reimplemented in Nsfe_Emu.

◆ update_eq()

void Nsf_Emu::update_eq ( blip_eq_t const & eq)
protectedvirtual

Implements Classic_Emu.

◆ Nes_Cpu

friend class Nes_Cpu
friend

Member Data Documentation

◆ apu

Nes_Apu Nsf_Emu::apu
private

◆ clock_rate_

double Nsf_Emu::clock_rate_
protected

◆ famicom_eq

Nsf_Emu::equalizer_t const Nsf_Emu::famicom_eq
static
Initial value:
=
static const equalizer_t make_equalizer(double treble, double bass)
Definition Music_Emu.h:115

◆ fme7

class Nes_Fme7_Apu* Nsf_Emu::fme7
private

◆ header_

header_t Nsf_Emu::header_
private

◆ init_addr

nes_addr_t Nsf_Emu::init_addr
protected

◆ initial_banks

byte Nsf_Emu::initial_banks[bank_count]
protected

◆ namco

class Nes_Namco_Apu* Nsf_Emu::namco
private

◆ nes_eq

Nsf_Emu::equalizer_t const Nsf_Emu::nes_eq
static
Initial value:

◆ next_play

nes_time_t Nsf_Emu::next_play
protected

◆ pal_only

bool Nsf_Emu::pal_only
protected

◆ play_addr

nes_addr_t Nsf_Emu::play_addr
protected

◆ play_extra

int Nsf_Emu::play_extra
protected

◆ play_period

nes_time_t Nsf_Emu::play_period
protected

◆ play_ready

int Nsf_Emu::play_ready
protected

◆ rom

Rom_Data<bank_size> Nsf_Emu::rom
protected

◆ saved_state

Nes_Cpu::registers_t Nsf_Emu::saved_state
protected

◆ sram

byte Nsf_Emu::sram[0x2000]
private

◆ unmapped_code

byte Nsf_Emu::unmapped_code[Nes_Cpu::page_size+8]
private

◆ vrc6

class Nes_Vrc6_Apu* Nsf_Emu::vrc6
private

The documentation for this class was generated from the following files: