Struct rusty_chip8::Chip8

source ·
pub struct Chip8 { /* private fields */ }
Expand description

Chip8 emulator.

Implementations§

source§

impl Chip8

source

pub fn new(clock: u64) -> Self

Returns a Chip8 instance.

Arguments
  • clock - refers to the instructions per second. The common value used is 700.
source

pub fn tick(&mut self, graphics: &mut impl Graphics, audio: &mut impl Audio)

Fetches, decodes and executes Chip8 instructions from RAM.

This function is supposed to be called FPS times per second.

Panics

Panics when an invalid (or unimplemented) instruction encountered.

source

pub fn store_in_ram(&mut self, rom: impl AsRef<[u8]>) -> Result<()>

Stores data in RAM.

Errors

If the data is bigger than the available space it returns Error.

source

pub fn handle_key_released(&mut self)

Handles released key.

The real key press/release logic is supposed to be handled by the client.

source

pub fn handle_key_pressed(&mut self, key: u8)

Handles pressed key.

The real key press/release logic is supposed to be handled by the client.

Arguments
  • key - The key is supposed to be a value in the range 0..16. Chip8’s original keypad has 16 buttons.

Trait Implementations§

source§

impl Debug for Chip8

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Chip8

source§

fn default() -> Chip8

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Chip8

§

impl Send for Chip8

§

impl Sync for Chip8

§

impl Unpin for Chip8

§

impl UnwindSafe for Chip8

Blanket Implementations§

source§

impl<T> Any for Twhere
T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere
U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,

§

fn vzip(self) -> V