libc8
CHIP-8 utility library
Loading...
Searching...
No Matches
chip8.h File Reference
#include "graphics.h"
#include "defs.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  c8_t
 Represents current state of the CHIP-8 interpreter. More...

Macros

#define C8_CLOCK_SPEED   500
#define C8_STACK_SIZE   16
#define C8_FLAG_DEBUG   0x1
#define C8_FLAG_VERBOSE   0x2
#define C8_FLAG_QUIRK_BITWISE   0x4
#define C8_FLAG_QUIRK_DRAW   0x8
#define C8_FLAG_QUIRK_LOADSTORE   0x10
#define C8_FLAG_QUIRK_SHIFT   0x20
#define C8_FLAG_QUIRK_JUMP   0x40

Functions

void c8_deinit (c8_t *)
 Deinitialize graphics and free c8.
c8_tc8_init (const char *, int)
 Initialize and return a c8_t with the given flags.
int c8_load_palette_s (c8_t *, char *)
 Load palette from the given string into colors.
int c8_load_palette_f (c8_t *, const char *)
 Load palette from the given path into colors.
void c8_load_quirks (c8_t *, const char *)
 Load quirk flags from string.
void c8_simulate (c8_t *)
 Main interpreter simulation loop. Exits when c8->running is 0.

Detailed Description

Stuff for simulating and modifying c8_ts.

Macro Definition Documentation

◆ C8_CLOCK_SPEED

#define C8_CLOCK_SPEED   500

◆ C8_FLAG_DEBUG

#define C8_FLAG_DEBUG   0x1

◆ C8_FLAG_QUIRK_BITWISE

#define C8_FLAG_QUIRK_BITWISE   0x4

◆ C8_FLAG_QUIRK_DRAW

#define C8_FLAG_QUIRK_DRAW   0x8

◆ C8_FLAG_QUIRK_JUMP

#define C8_FLAG_QUIRK_JUMP   0x40

◆ C8_FLAG_QUIRK_LOADSTORE

#define C8_FLAG_QUIRK_LOADSTORE   0x10

◆ C8_FLAG_QUIRK_SHIFT

#define C8_FLAG_QUIRK_SHIFT   0x20

◆ C8_FLAG_VERBOSE

#define C8_FLAG_VERBOSE   0x2

◆ C8_STACK_SIZE

#define C8_STACK_SIZE   16

Function Documentation

◆ c8_deinit()

void c8_deinit ( c8_t * c8)

Deinitialize graphics and free c8.

Parameters
c8c8_t to deinitialize

◆ c8_init()

c8_t * c8_init ( const char * path,
int flags )

Initialize and return a c8_t with the given flags.

This function allocates memory for a new c8_t with all values set to 0 or their default values, adds the font to memory, inititializes the graphics system, and returns a pointer to the c8_t.

Parameters
pathpath to ROM file
flagsflags
Returns
pointer to initialized c8_t.

◆ c8_load_palette_f()

int c8_load_palette_f ( c8_t * c8,
const char * path )

Load palette from the given path into colors.

Parameters
c8where to store the color codes
pathpalette file location
Returns
1 if success

◆ c8_load_palette_s()

int c8_load_palette_s ( c8_t * c8,
char * s )

Load palette from the given string into colors.

Parameters
c8where to store the color codes
sstring to load
Returns
1 if success

◆ c8_load_quirks()

void c8_load_quirks ( c8_t * c8,
const char * s )

Load quirk flags from string.

Parameters
c8where to store flags
sstring to get quirks from

◆ c8_simulate()

void c8_simulate ( c8_t * c8)

Main interpreter simulation loop. Exits when c8->running is 0.

Parameters
c8the c8_t to simulate