Skip to content

shinkarom/luchok_libretro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

luchok_libretro

64x32 is enough for everybody.

Playing invaders.luchok Playing snake.luchok

Luchok is Fantasy Console inspired by Chip-8. It is a libretro core.

Features

  • Screen: 64x32

  • Scripting: Lua

  • Sound: 440Hz square wave

  • Controls: 16 buttons, labeled from 0 to F

Building

To build Luchok, you must have cmake and a build system of your choice.

  • Download the repository
  • Create build folder there.
  • Move into build folder
  • cmake .. -G "Ninja". Cmake supports many different build systems, Ninja is only one of them.
  • When finished, move back to the repository root.
  • cmake --build build
  • When finished, there will be luchok_libretro.dll or luchok_libretro.so in the bin folder.

Running

retroarch executable -L luchok library afer building game file

For example, if on a GNU/Linux system, and you are locared in the repository root, you can run retroarch -L bin/luchok_libretro.so bin/invaders.luchok.

In Retroarch, press ScrollLock to switch between retroarch key bindings and Luchok keypad.

Usage

The games for Luchok are written in Lua, with file extension .luchok .

Every frame (60 per second) the function vblank() is called.

The API for the fantasy console is:

  • cls() - clears the screen.
  • draw(sprite, x, y) - draw the array sprite at x (0-63) and y (0-31).
  • draw(sprite, x, y, start, len) - draw the array sprite (len (0-31) bytes starting from index start) at x (0-63) and y (0-31).
  • rnd(limit) - generate a random integer from 0 to limit (0-255).
  • key_pressed(num) - check if the specified key (0-15) is pressed at this frame.
  • key_released(num) - check if the specified key (0-15) has been released.
  • bcd(num) - splits the specified number (0-255), into array of its digits
  • get_sprite(num) - gets the built-in sprite for the specified number (0-15)
  • delay_timer (0-255) - decrements every frame until it hits 0
  • sound_timer (0-255) - decrements every frame until it hits 0, each frame it's not 0 a buzzer sounds

Keys

Luchok has 16 keys. They are located like this:

1 2 3 C

4 5 6 D

7 8 9 E

A 0 B F

and mapped to:

1 2 3 4

Q W E R

A S D F

Z X C V

License

Licensed under GNU General Public License 3.

Author

Roman "shinkarom" Shynkarenko (https://shinkarom.github.io).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published