class GBA::Bus

Defined in:

crab/gba/bus.cr

Constant Summary

ACCESS_TIMING_TABLE = Slice[[1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2], [1, 1, 6, 1, 1, 2, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4]]

Timings for rom are estimated for game compatibility.

Constructors

Instance Method Summary

Constructor Detail

def self.new(gba : GBA, bios_path : String) #

[View source]

Instance Method Detail

def [](address : UInt32) : UInt8 #

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

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

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

[View source]
def bios : Slice(UInt8) #

[View source]
def cycles : Int32 #

[View source]
def cycles=(cycles : Int32) #

[View source]
def read_half(address : UInt32) : UInt16 #

[View source]
def read_half_internal(address : UInt32) : UInt16 #

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

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

On ARM7 aka ARMv4 aka NDS7/GBA: LDRH Rd,[odd] --> LDRH Rd,[odd-1] ROR 8 ;read to bit0-7 and bit24-31 LDRSH Rd,[odd] --> LDRSB Rd,[odd] ;sign-expand BYTE value


[View source]
def read_open_bus_value(address : UInt32, _file = __FILE__) : UInt8 #

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

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

[View source]
def wram_board : Slice(UInt8) #

[View source]
def wram_chip : Slice(UInt8) #

[View source]