openMSX
Classes | Namespaces | Functions | Variables
Y8950.cc File Reference
#include "Y8950.hh"
#include "Y8950Periphery.hh"
#include "MSXAudio.hh"
#include "DeviceConfig.hh"
#include "MSXMotherBoard.hh"
#include "Math.hh"
#include "cstd.hh"
#include "outer.hh"
#include "ranges.hh"
#include "serialize.hh"
#include <algorithm>
#include <cmath>
#include <iostream>
Include dependency graph for Y8950.cc:

Go to the source code of this file.

Classes

struct  openmsx::AdjustTables
 
struct  openmsx::Db2LinTab
 
struct  openmsx::SinTable
 
struct  openmsx::PmTable
 
struct  openmsx::TllTable
 
struct  openmsx::DPhaseTable
 

Namespaces

 openmsx
 Thanks to enen for testing this on a real cartridge:
 

Functions

constexpr SinTable openmsx::makeSinTable ()
 
 openmsx::SERIALIZE_ENUM (Y8950::EnvelopeState, envelopeStateInfo)
 
 openmsx::SERIALIZE_CLASS_VERSION (Y8950::Slot, 3)
 

Variables

constexpr unsigned openmsx::EG_MUTE = 1 << Y8950::EG_BITS
 
constexpr Y8950::EnvPhaseIndex openmsx::EG_DP_MAX = Y8950::EnvPhaseIndex(EG_MUTE)
 
constexpr unsigned openmsx::MOD = 0
 
constexpr unsigned openmsx::CAR = 1
 
constexpr double openmsx::EG_STEP = 0.1875
 
constexpr double openmsx::SL_STEP = 3.0
 
constexpr double openmsx::TL_STEP = 0.75
 
constexpr double openmsx::DB_STEP = 0.1875
 
constexpr unsigned openmsx::SL_PER_EG = 16
 
constexpr unsigned openmsx::TL_PER_EG = 4
 
constexpr unsigned openmsx::EG_PER_DB = 1
 
constexpr double openmsx::PM_SPEED = 6.4
 
constexpr double openmsx::PM_DEPTH = 13.75 / 2
 
constexpr double openmsx::PM_DEPTH2 = 13.75
 
constexpr int openmsx::SL_BITS = 4
 
constexpr int openmsx::SL_MUTE = 1 << SL_BITS
 
constexpr int openmsx::PG_BITS = 10
 
constexpr int openmsx::PG_WIDTH = 1 << PG_BITS
 
constexpr int openmsx::PG_MASK = PG_WIDTH - 1
 
constexpr int openmsx::DP_BITS = 19
 
constexpr int openmsx::DP_BASE_BITS = DP_BITS - PG_BITS
 
constexpr int openmsx::DB_BITS = 9
 
constexpr int openmsx::DB_MUTE = 1 << DB_BITS
 
constexpr int openmsx::PM_AMP_BITS = 8
 
constexpr int openmsx::PM_AMP = 1 << PM_AMP_BITS
 
constexpr int openmsx::DB2LIN_AMP_BITS = 11
 
constexpr int openmsx::SLOT_AMP_BITS = DB2LIN_AMP_BITS
 
constexpr int openmsx::PM_PG_BITS = 8
 
constexpr int openmsx::PM_PG_WIDTH = 1 << PM_PG_BITS
 
constexpr int openmsx::PM_DP_BITS = 16
 
constexpr int openmsx::PM_DP_WIDTH = 1 << PM_DP_BITS
 
constexpr int openmsx::AM_PG_BITS = 8
 
constexpr int openmsx::AM_PG_WIDTH = 1 << AM_PG_BITS
 
constexpr int openmsx::AM_DP_BITS = 16
 
constexpr int openmsx::AM_DP_WIDTH = 1 << AM_DP_BITS
 
constexpr unsigned openmsx::PM_DPHASE = unsigned(PM_SPEED * PM_DP_WIDTH / (Y8950::CLOCK_FREQ / double(Y8950::CLOCK_FREQ_DIV)))
 
constexpr unsigned openmsx::LFO_AM_TAB_ELEMENTS = 210
 
constexpr byte openmsx::lfo_am_table [LFO_AM_TAB_ELEMENTS]
 
constexpr AdjustTables openmsx::adjust = makeAdjustTables()
 
constexpr Db2LinTab openmsx::dB2Lin = makeDB2LinTable()
 
constexpr SinTable openmsx::sin = makeSinTable()
 
constexpr PmTable openmsx::pm = makePmTable()
 
constexpr TllTable openmsx::tllTable = makeTllTable()
 
constexpr DPhaseTable openmsx::dphaseAR = makeDphaseARTable()
 
constexpr DPhaseTable openmsx::dphaseDR = makeDphaseDRTable()
 
constexpr Y8950::EnvPhaseIndex openmsx::SL [16]
 
 openmsx::Y8950