class Rnes::RomLoader
Public Class Methods
new(bytes)
click to toggle source
@param [Array<Integer>] bytes
# File lib/rnes/rom_loader.rb, line 8 def initialize(bytes) @bytes = bytes end
Public Instance Methods
character_rom()
click to toggle source
@return [Rnes::Rom] @raise [Rnes::Errors::InvalidInesFormatError]
# File lib/rnes/rom_loader.rb, line 14 def character_rom validate! ::Rnes::Rom.new(bytes: character_rom_bytes) end
program_rom()
click to toggle source
@return [Rnes::Rom] @raise [Rnes::Errors::InvalidInesFormatError]
# File lib/rnes/rom_loader.rb, line 21 def program_rom validate! ::Rnes::Rom.new(bytes: program_rom_bytes) end
trainer_rom()
click to toggle source
@return [Rnes::Rom] @raise [Rnes::Errors::InvalidInesFormatError]
# File lib/rnes/rom_loader.rb, line 28 def trainer_rom validate! ::Rnes::Rom.new(bytes: trainer_bytes) end
Private Instance Methods
character_rom_bytes()
click to toggle source
@return [Array<Integer>]
# File lib/rnes/rom_loader.rb, line 36 def character_rom_bytes @bytes.slice(character_rom_index, character_rom_bytesize) end
character_rom_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 41 def character_rom_bytesize ines_header.character_rom_bytesize end
character_rom_index()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 46 def character_rom_index program_rom_index + program_rom_bytesize end
ines_header()
click to toggle source
@return [Rnes::InesHeader]
# File lib/rnes/rom_loader.rb, line 51 def ines_header @ines_header ||= ::Rnes::InesHeader.new(@bytes) end
program_rom_bytes()
click to toggle source
@return [Array<Integer>]
# File lib/rnes/rom_loader.rb, line 56 def program_rom_bytes @bytes.slice(program_rom_index, program_rom_bytesize) end
program_rom_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 61 def program_rom_bytesize @program_rom_bytesize ||= ines_header.program_rom_bytesize end
program_rom_index()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 66 def program_rom_index @program_rom_index ||= trainer_index + trainer_bytesize end
trainer_bytes()
click to toggle source
@return [Array<Integer>]
# File lib/rnes/rom_loader.rb, line 71 def trainer_bytes @bytes.slice(trainer_index, trainer_bytesize) end
trainer_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 76 def trainer_bytesize ines_header.trainer_bytesize end
trainer_index()
click to toggle source
@return [Integer]
# File lib/rnes/rom_loader.rb, line 81 def trainer_index ines_header.bytesize end
valid?()
click to toggle source
@return [Boolean]
# File lib/rnes/rom_loader.rb, line 86 def valid? ines_header.valid? end
validate!()
click to toggle source
@raise [Rnes::Errors::InvalidInesFormatError]
# File lib/rnes/rom_loader.rb, line 91 def validate! unless valid? raise ::Rnes::Errors::InvalidInesFormatError end end