class Rnes::DmaController
Constants
- TRANSFER_BYTESIZE
Public Class Methods
new(ppu:, working_ram:)
click to toggle source
@param [Rnes::Ppu] ppu @param [Rnes::Ram] working_ram
# File lib/rnes/dma_controller.rb, line 7 def initialize(ppu:, working_ram:) @ppu = ppu @requested = false @working_ram = working_ram end
Public Instance Methods
request_transfer(address_hint:)
click to toggle source
@param [Integer] address_hint
# File lib/rnes/dma_controller.rb, line 20 def request_transfer(address_hint:) @requested = true @working_ram_address = address_hint << 8 end
transfer_if_requested()
click to toggle source
# File lib/rnes/dma_controller.rb, line 13 def transfer_if_requested if @requested transfer end end
Private Instance Methods
transfer()
click to toggle source
# File lib/rnes/dma_controller.rb, line 27 def transfer TRANSFER_BYTESIZE.times do |index| value = @working_ram.read(@working_ram_address + index) @ppu.transfer_sprite_data(index: index, value: value) end @requested = false end