class GBA::Channel2

Defined in:

crab/gba/apu/channel2.cr

Constant Summary

RANGE = 104..111
WAVE_DUTY = Slice[[-8, -8, -8, -8, -8, -8, -8, +8], [+8, -8, -8, -8, -8, -8, -8, +8], [+8, -8, -8, -8, -8, +8, +8, +8], [-8, +8, +8, +8, +8, +8, +8, -8]]

Instance Method Summary

Instance methods inherited from class GBA::VolumeEnvelopeChannel

init_volume_envelope : Nil init_volume_envelope, read_NRx2 : UInt8 read_NRx2, volume_step : Nil volume_step, write_NRx2(value : UInt8) : Nil write_NRx2

Instance methods inherited from class GBA::SoundChannel

===(other) ===, [](address : UInt32) : UInt8 [], []=(address : UInt32, value : UInt8) : Nil []=, enabled : Bool enabled, enabled=(enabled : Bool) enabled=, frequency_timer : UInt32 frequency_timer, get_amplitude : Int16 get_amplitude, length_counter : Int32 length_counter, length_counter=(length_counter : Int32) length_counter=, length_step : Nil length_step, schedule_reload(frequency_timer : UInt32) : Nil schedule_reload, step : Nil step, step_wave_generation : Nil step_wave_generation

Constructor methods inherited from class GBA::SoundChannel

new(gba : GBA) new

Instance Method Detail

def ===(other) : Bool #
Description copied from class GBA::SoundChannel

Used so that channels can be matched with case..when statements


[View source]
def [](address : UInt32) : UInt8 #

[View source]
def []=(address : UInt32, value : UInt8) : Nil #

[View source]
def frequency_timer : UInt32 #
Description copied from class GBA::SoundChannel

Calculate the frequency timer


[View source]
def get_amplitude : Int16 #

Outputs a value -0x80..0x80


[View source]
def schedule_reload(frequency_timer : UInt32) : Nil #

[View source]
def step_wave_generation : Nil #
Description copied from class GBA::SoundChannel

Called when @period reaches 0


[View source]