module Nes.PPU.Constants (
    vramSize,
    vramRange,
    paletteTableSize,
    paletteTableRange,
    paletteIndexes,
    oamDataSize,
    unusedAddrRange,
    chrRomSize,
    chrRomRange,
) where

import Nes.Memory

vramSize :: Int
vramSize :: Int
vramSize = Int
2048

vramRange :: (Addr, Addr)
vramRange :: (Addr, Addr)
vramRange = (Addr
0x2000, Addr
0x2fff)

paletteTableSize :: Int
paletteTableSize :: Int
paletteTableSize = Int
32

paletteIndexes :: [Addr]
paletteIndexes :: [Addr]
paletteIndexes = [Addr
0x3f10, Addr
0x3f14, Addr
0x3f18, Addr
0x3f1c]

paletteTableRange :: (Addr, Addr)
paletteTableRange :: (Addr, Addr)
paletteTableRange = (Addr
0x3f00, Addr
0x3fff)

oamDataSize :: Int
oamDataSize :: Int
oamDataSize = Int
64 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
4

unusedAddrRange :: (Addr, Addr)
unusedAddrRange :: (Addr, Addr)
unusedAddrRange = (Addr
0x3000, Addr
0x3eff)

chrRomRange :: (Addr, Addr)
chrRomRange :: (Addr, Addr)
chrRomRange = (Addr
0, Addr
0x1fff)

chrRomSize :: Int
chrRomSize :: Int
chrRomSize = Int
0x1fff