[{"name":"NES","comment":" Headless NES emulator core.\n\n\n# NES\n\n@docs NES, init, fromRom, reset, step, framebuffer, frameCount\n@docs Button, ControllerNumber, Pressed, signalControllerButton\n\n","unions":[{"name":"Button","comment":" A button on a NES controller.\n","args":[],"cases":[["A",[]],["B",[]],["Select",[]],["Start",[]],["Up",[]],["Down",[]],["Left",[]],["Right",[]]]},{"name":"ControllerNumber","comment":" The controller port a button press is sent to.\n","args":[],"cases":[["Controller1",[]],["Controller2",[]]]},{"name":"NES","comment":" The state of the emulated console: CPU, PPU, memory, controllers, and the inserted cartridge.\n","args":[],"cases":[]}],"aliases":[{"name":"Pressed","comment":" Whether a button is held down (`True`) or released (`False`).\n","args":[],"type":"Basics.Bool"}],"values":[{"name":"frameCount","comment":" Gets the current frame count from the PPU.\n\nWhen the frame counter advances, draw a new\nframe on the screen.\n\n","type":"NES.NES -> Basics.Int"},{"name":"framebuffer","comment":" Gets the current framebuffer from the PPU.\n\nUse this to draw pixels on the screen.\n\n","type":"NES.NES -> Array.Array (Array.Array Basics.Int)"},{"name":"fromRom","comment":" Inserts a cartridge into the NES and presses reset.\n","type":"Bytes.Bytes -> Result.Result Cartridge.Error NES.NES"},{"name":"init","comment":" A NES with no cartridge inserted.\n\nUse [`fromRom`](#fromRom) to load a game.\n\n","type":"NES.NES"},{"name":"reset","comment":" Presses the reset button, restarting the currently inserted game.\n","type":"NES.NES -> NES.NES"},{"name":"signalControllerButton","comment":" Register a key press (or release)\n","type":"NES.ControllerNumber -> NES.Button -> NES.Pressed -> NES.NES -> NES.NES"},{"name":"step","comment":" Advances one step (instruction) in the NES.\n","type":"NES.NES -> ( NES.NES, Basics.Int )"}],"binops":[]}]