jsgbc
Version:
jsGBC Core Emulator
52 lines (51 loc) • 1.6 kB
TypeScript
import GameBoy from "../GameBoy";
import AudioChannel from "./AudioChannel";
export default class SquareAudioChannel extends AudioChannel {
protected gameboy: GameBoy;
currentSampleLeft: number;
currentSampleRight: number;
currentSampleLeftSecondary: number;
currentSampleRightSecondary: number;
currentSampleLeftTrimary: number;
currentSampleRightTrimary: number;
frequencyCounter: number;
frequencyTracker: number;
dutyTracker: number;
cachedDuty: boolean[];
totalLength: number;
envelopeVolume: number;
envelopeType: boolean;
consecutive: boolean;
frequency: number;
shadowFrequency: number;
envelopeSweeps: number;
envelopeSweepsLast: number;
sweepEnabled: boolean;
sweepFault: boolean;
timeSweep: number;
lastTimeSweep: number;
swept: boolean;
decreaseSweep: boolean;
frequencySweepDivider: number;
constructor(gameboy: GameBoy, options?: {
sweepEnabled?: boolean;
});
init(): void;
setInitialState(): void;
setSkippedBootRomState(): void;
envelope(): void;
setSweep(data: number): void;
setDuty(data: number): void;
setLength(data: number): void;
setEnvelopeVolume(address: number, data: number): void;
setEnvelopeType(data: number): void;
setFrequency(data: number): void;
setHighFrequency(data: number): void;
checkEnabled(): void;
checkVolumeEnabled(): void;
length(value: number): void;
sweep(): void;
setFirstStageSamples(): void;
setSecondStageSamples(): void;
setThirdStageSamples(): void;
}