Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract Rom
- type InesHeader
- PrgRomSize::UInt8
- ChrRomSize::UInt8
- IgnoreMirror::Bool
- Trainer::Bool
- HasBatteryRam::Bool
- Mirror::Bool
- IsNES2Format::Bool
- Arcade2::Bool
- Arcade1::Bool
- PrgRamSize::UInt8
- TVSystem::Bool
- BusConflict::Bool
- PrgRam::Bool
- TVSystem2::UInt8
- Mapper::UInt8
- end
- type Ines <: Rom
- Header::InesHeader
- Rom::Array{UInt8,1}
- Ines(file::String) = begin
- rom = Mmap.mmap(file)
- PrgRomSize = rom[5]*16,
- ChrRomSize = rom[6]*8,
- IgnoreMirror = Bool(rom[7] & 0b00001000),
- Trainer = Bool(rom[7] & 0b00000100),
- HasBatteryRam = Bool(rom[7] & 0b00000010),
- Mirror = Bool(rom[7] & 0b00000001),
- IsNES2Format = if ((rom[8] & 0b00001100) >> 2) == 2
- true
- else
- false
- end,
- Arcade2 = Bool(rom[8] * 0b00000010),
- Arcade1 = Bool(rom[8] * 0b00000001),
- PrgRamSize = rom[9] * 8,
- TVSystem = Bool(rom[10] & 0x1),
- BusConflict = Bool(rom[11] & 0b00100000),
- PrgRam = Bool(rom[11] & 0b00010000),
- TVSystem2 = rom[11] & 0x3,
- Mapper = (rom[7] & 0b11110000) | (rom[8] & 0b00001111)
- new(InesHeader(PrgRomSize, ChrRomSize, IgnoreMirror, Trainer, HasBatteryRam, Mirror, IsNES2Format, Arcade2, Arcade1, PrgRamSize, TVSystem, BusConflict, PrgRam, TVSystem2, Mapper), rom[17:end])
- end
- end
- test_rom = Ines("/home/john/Code/ksy/specimens/ines/2600\ Bros\ (SMB1\ Hack).nes")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement