| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Nes.PPU.State
Synopsis
- data PPUState = MkPPUState {
- _mirroring :: !Mirroring
- _controlRegister :: !ControlRegister
- _addressRegister :: !AddressRegister
- _statusRegister :: !StatusRegister
- _scrollRegister :: !ScrollRegister
- _maskRegister :: !MaskRegister
- _internalBuffer :: !Byte
- _oamOffset :: !Byte
- _cycles :: !Int
- _scanline :: !Word16
- _nmiInterrupt :: !Bool
- _ioBus :: !Byte
- newPPUState :: Mirroring -> PPUState
- data AddressRegister
- newAddressRegister :: AddressRegister
- addressRegisterGet :: AddressRegister -> Addr
- addressRegisterSet :: Addr -> AddressRegister -> AddressRegister
- addressRegisterIncrement :: Byte -> AddressRegister -> AddressRegister
- addressRegisterUpdate :: Byte -> AddressRegister -> AddressRegister
- addressRegisterResetLatch :: AddressRegister -> AddressRegister
- newtype ControlRegister = MkCR {}
- data ControlRegisterFlag
- getBackgroundPatternAddr :: ControlRegister -> Addr
- getSpritePatternAddr :: ControlRegister -> Addr
- getNametableAddr :: ControlRegister -> Addr
- newtype StatusRegister = MkSR {}
- data StatusRegisterFlag
- data ScrollRegister = MkScrollR {}
- newScrollRegister :: ScrollRegister
- scrollRegisterWrite :: Byte -> ScrollRegister -> ScrollRegister
- scrollRegisterResetLatch :: ScrollRegister -> ScrollRegister
- newtype MaskRegister = MkMR {}
- data MaskRegisterFlag
- vramAddrIncrement :: ControlRegister -> Byte
- mirroring :: Lens' PPUState Mirroring
- controlRegister :: Lens' PPUState ControlRegister
- addressRegister :: Lens' PPUState AddressRegister
- statusRegister :: Lens' PPUState StatusRegister
- scrollRegister :: Lens' PPUState ScrollRegister
- maskRegister :: Lens' PPUState MaskRegister
- internalBuffer :: Lens' PPUState Byte
- oamOffset :: Lens' PPUState Byte
- cycles :: Lens' PPUState Int
- scanline :: Lens' PPUState Word16
- nmiInterrupt :: Lens' PPUState Bool
- ioBus :: Lens' PPUState Byte
State
Constructors
| MkPPUState | |
Fields
| |
newPPUState :: Mirroring -> PPUState Source #
Address Register
data AddressRegister Source #
addressRegisterGet :: AddressRegister -> Addr Source #
Get the AddressRegister's value as an Addr
addressRegisterSet :: Addr -> AddressRegister -> AddressRegister Source #
Sets an Addr to the AddressRegister's value
addressRegisterIncrement :: Byte -> AddressRegister -> AddressRegister Source #
Increment the AddressRegister's value by the given Byte
addressRegisterUpdate :: Byte -> AddressRegister -> AddressRegister Source #
Sets the high or lower byte of the AddressRegister's value, depending on the highPtr state
addressRegisterResetLatch :: AddressRegister -> AddressRegister Source #
Set highPtr to True
Control Register
newtype ControlRegister Source #
Instances
| Show ControlRegister Source # | |||||
Defined in Nes.PPU.State Methods showsPrec :: Int -> ControlRegister -> ShowS # show :: ControlRegister -> String # showList :: [ControlRegister] -> ShowS # | |||||
| FlagRegister ControlRegister Source # | |||||
Defined in Nes.PPU.State Associated Types
Methods fromByte :: Byte -> ControlRegister Source # toByte :: ControlRegister -> Byte Source # flagToBitOffset :: Flag ControlRegister -> Int Source # | |||||
| Eq ControlRegister Source # | |||||
Defined in Nes.PPU.State Methods (==) :: ControlRegister -> ControlRegister -> Bool # (/=) :: ControlRegister -> ControlRegister -> Bool # | |||||
| type Flag ControlRegister Source # | |||||
Defined in Nes.PPU.State | |||||
data ControlRegisterFlag Source #
Flags from the control register
7 bit 0 ---- ---- VPHB SINN |||| |||| |||| ||++- Base nametable address |||| || (0 = $2000; 1 = $2400; 2 = $2800; 3 = $2C00) |||| |+--- VRAM address increment per CPU read/write of PPUDATA |||| | (0: add 1, going across; 1: add 32, going down) |||| +---- Sprite pattern table address for 8x8 sprites |||| (0: $0000; 1: $1000; ignored in 8x16 mode) |||+------ Background pattern table address (0: $0000; 1: $1000) ||+------- Sprite size (0: 8x8 pixels; 1: 8x16 pixels) |+-------- PPU master/slave select | (0: read backdrop from EXT pins; 1: output color on EXT pins) +--------- Generate an NMI at the start of the vertical blanking interval (0: off; 1: on)
Constructors
| Nametable1 | |
| Nametable2 | |
| VramAddIncrement | |
| SpritePatternAddr | |
| BackgroundPatternAddr | |
| SpriteSize | |
| MasterSlaveSelect | |
| GenerateNMI |
Instances
| Enum ControlRegisterFlag Source # | |
Defined in Nes.PPU.State Methods succ :: ControlRegisterFlag -> ControlRegisterFlag # pred :: ControlRegisterFlag -> ControlRegisterFlag # toEnum :: Int -> ControlRegisterFlag # fromEnum :: ControlRegisterFlag -> Int # enumFrom :: ControlRegisterFlag -> [ControlRegisterFlag] # enumFromThen :: ControlRegisterFlag -> ControlRegisterFlag -> [ControlRegisterFlag] # enumFromTo :: ControlRegisterFlag -> ControlRegisterFlag -> [ControlRegisterFlag] # enumFromThenTo :: ControlRegisterFlag -> ControlRegisterFlag -> ControlRegisterFlag -> [ControlRegisterFlag] # | |
| Show ControlRegisterFlag Source # | |
Defined in Nes.PPU.State Methods showsPrec :: Int -> ControlRegisterFlag -> ShowS # show :: ControlRegisterFlag -> String # showList :: [ControlRegisterFlag] -> ShowS # | |
| Eq ControlRegisterFlag Source # | |
Defined in Nes.PPU.State Methods (==) :: ControlRegisterFlag -> ControlRegisterFlag -> Bool # (/=) :: ControlRegisterFlag -> ControlRegisterFlag -> Bool # | |
Status Register
newtype StatusRegister Source #
Instances
| Show StatusRegister Source # | |||||
Defined in Nes.PPU.State Methods showsPrec :: Int -> StatusRegister -> ShowS # show :: StatusRegister -> String # showList :: [StatusRegister] -> ShowS # | |||||
| FlagRegister StatusRegister Source # | |||||
Defined in Nes.PPU.State Associated Types
Methods fromByte :: Byte -> StatusRegister Source # toByte :: StatusRegister -> Byte Source # flagToBitOffset :: Flag StatusRegister -> Int Source # | |||||
| Eq StatusRegister Source # | |||||
Defined in Nes.PPU.State Methods (==) :: StatusRegister -> StatusRegister -> Bool # (/=) :: StatusRegister -> StatusRegister -> Bool # | |||||
| type Flag StatusRegister Source # | |||||
Defined in Nes.PPU.State | |||||
data StatusRegisterFlag Source #
Instances
| Enum StatusRegisterFlag Source # | |
Defined in Nes.PPU.State Methods succ :: StatusRegisterFlag -> StatusRegisterFlag # pred :: StatusRegisterFlag -> StatusRegisterFlag # toEnum :: Int -> StatusRegisterFlag # fromEnum :: StatusRegisterFlag -> Int # enumFrom :: StatusRegisterFlag -> [StatusRegisterFlag] # enumFromThen :: StatusRegisterFlag -> StatusRegisterFlag -> [StatusRegisterFlag] # enumFromTo :: StatusRegisterFlag -> StatusRegisterFlag -> [StatusRegisterFlag] # enumFromThenTo :: StatusRegisterFlag -> StatusRegisterFlag -> StatusRegisterFlag -> [StatusRegisterFlag] # | |
| Show StatusRegisterFlag Source # | |
Defined in Nes.PPU.State Methods showsPrec :: Int -> StatusRegisterFlag -> ShowS # show :: StatusRegisterFlag -> String # showList :: [StatusRegisterFlag] -> ShowS # | |
| Eq StatusRegisterFlag Source # | |
Defined in Nes.PPU.State Methods (==) :: StatusRegisterFlag -> StatusRegisterFlag -> Bool # (/=) :: StatusRegisterFlag -> StatusRegisterFlag -> Bool # | |
Scroll Register
Mask Register
newtype MaskRegister Source #
Instances
| Show MaskRegister Source # | |||||
Defined in Nes.PPU.State Methods showsPrec :: Int -> MaskRegister -> ShowS # show :: MaskRegister -> String # showList :: [MaskRegister] -> ShowS # | |||||
| FlagRegister MaskRegister Source # | |||||
Defined in Nes.PPU.State Associated Types
Methods fromByte :: Byte -> MaskRegister Source # toByte :: MaskRegister -> Byte Source # flagToBitOffset :: Flag MaskRegister -> Int Source # | |||||
| Eq MaskRegister Source # | |||||
Defined in Nes.PPU.State | |||||
| type Flag MaskRegister Source # | |||||
Defined in Nes.PPU.State | |||||
data MaskRegisterFlag Source #
Constructors
| GreyScale | |
| LeftmostBackground | |
| LeftmostSprite | |
| ShowBackground | |
| ShowSprites | |
| EmphRed | |
| EmphGree | |
| EmphBlue |
Instances
| Enum MaskRegisterFlag Source # | |
Defined in Nes.PPU.State Methods succ :: MaskRegisterFlag -> MaskRegisterFlag # pred :: MaskRegisterFlag -> MaskRegisterFlag # toEnum :: Int -> MaskRegisterFlag # fromEnum :: MaskRegisterFlag -> Int # enumFrom :: MaskRegisterFlag -> [MaskRegisterFlag] # enumFromThen :: MaskRegisterFlag -> MaskRegisterFlag -> [MaskRegisterFlag] # enumFromTo :: MaskRegisterFlag -> MaskRegisterFlag -> [MaskRegisterFlag] # enumFromThenTo :: MaskRegisterFlag -> MaskRegisterFlag -> MaskRegisterFlag -> [MaskRegisterFlag] # | |
| Show MaskRegisterFlag Source # | |
Defined in Nes.PPU.State Methods showsPrec :: Int -> MaskRegisterFlag -> ShowS # show :: MaskRegisterFlag -> String # showList :: [MaskRegisterFlag] -> ShowS # | |
| Eq MaskRegisterFlag Source # | |
Defined in Nes.PPU.State Methods (==) :: MaskRegisterFlag -> MaskRegisterFlag -> Bool # (/=) :: MaskRegisterFlag -> MaskRegisterFlag -> Bool # | |