class Rnes::InesHeader
Constants
- BYTESIZE
- PREFIX_BYTES
Public Class Methods
new(bytes)
click to toggle source
@param [Array<Integer>] bytes
# File lib/rnes/ines_header.rb, line 13 def initialize(bytes) @bytes = bytes end
Public Instance Methods
bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 18 def bytesize BYTESIZE end
character_ram_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 23 def character_ram_bytesize @bytes[8] end
character_rom_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 28 def character_rom_bytesize @bytes[5] * 8 * 2**10 end
has_battery_backed_program_rom_bit?()
click to toggle source
@return [Boolean]
# File lib/rnes/ines_header.rb, line 33 def has_battery_backed_program_rom_bit? flags1[1] == 1 end
has_mirror_ignoring_bit?()
click to toggle source
@return [Boolean]
# File lib/rnes/ines_header.rb, line 38 def has_mirror_ignoring_bit? flags1[3] == 1 end
has_trainer_bit?()
click to toggle source
@note Trainers are 512 bytes of code which is loaded into $7000 before the game starts for hacker use. @return [Boolean]
# File lib/rnes/ines_header.rb, line 44 def has_trainer_bit? flags1[2] == 1 end
has_vertical_mirroring_bit?()
click to toggle source
@return [Boolean]
# File lib/rnes/ines_header.rb, line 49 def has_vertical_mirroring_bit? flags1[0] == 1 end
mapper_number()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 54 def mapper_number flags2 & 0b11110000 | flags1 >> 4 end
program_rom_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 59 def program_rom_bytesize @bytes[4] * 16 * 2**10 end
trainer_bytesize()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 64 def trainer_bytesize if has_trainer_bit? 512 else 0 end end
valid?()
click to toggle source
@return [Boolean]
# File lib/rnes/ines_header.rb, line 73 def valid? @bytes[0..3] == PREFIX_BYTES end
Private Instance Methods
flags1()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 80 def flags1 @bytes[6] end
flags2()
click to toggle source
@return [Integer]
# File lib/rnes/ines_header.rb, line 85 def flags2 @bytes[7] end