Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsoding/pinpog
Ping-Pong-like game in Assembly that works without OS
https://github.com/tsoding/pinpog
assembly-language bios game-development hacktoberfest hacktoberfest2020 operating-system os ping-pong-game real-mode twitch twitch-streamers
Last synced: 3 days ago
JSON representation
Ping-Pong-like game in Assembly that works without OS
- Host: GitHub
- URL: https://github.com/tsoding/pinpog
- Owner: tsoding
- License: mit
- Created: 2019-06-12T16:29:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-27T17:59:43.000Z (over 3 years ago)
- Last Synced: 2025-01-11T19:10:19.472Z (10 days ago)
- Topics: assembly-language, bios, game-development, hacktoberfest, hacktoberfest2020, operating-system, os, ping-pong-game, real-mode, twitch, twitch-streamers
- Language: Assembly
- Homepage:
- Size: 77.1 KB
- Stars: 600
- Watchers: 11
- Forks: 37
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Tsoding](https://img.shields.io/badge/twitch.tv-tsoding-purple?logo=twitch&style=for-the-badge)](https://www.twitch.tv/tsoding)
[![Build Status](https://travis-ci.org/tsoding/pinpog.svg?branch=master)](https://travis-ci.org/tsoding/pinpog)# PinPog
Our goal is to write a game that fits into 512 bytes bootloader and
works in 16 bit real mode on any IBM PC compatible machine without any
Operating System.- Development is done on https://twitch.tv/tsoding
- Archive of the streams: https://www.twitch.tv/collections/VAcjkyTlqRVXuA![](https://i.imgur.com/AKEjIKw.gif)
## Dependencies
First install these programs:
- [nasm]
- [qemu]## Quick Start
### Build the game
```console
$ nasm pinpog.asm -o pinpog
```### Run the game in QEMU
```console
$ qemu-system-i386 pinpog
```## Making Bootable USB stick
**WARNING! THE AUTHORS OF THE GAME ARE NOT RESPONSIBLE FOR ANY DAMAGED HARDWARE. SEE LICENSE FOR MORE INFORMATION.**
### Linux
1. Build the image of the game: `$ make pinpog`
1. Get a USB stick (at least 512 bytes Kappa)
1. Plug it in
1. Find the block device of the USB drive using something like [lsblk](https://linux.die.net/man/8/lsblk)
1. Use [dd](https://linux.die.net/man/1/dd) to write the image to the USB drive: `sudo dd if=./pinpog of=/dev/`### Windows
[TBD](https://github.com/tsoding/pinpog/issues/65)
## Controls
- `a`, `d` - move racket sideways,
- `f` - restart the game,
- `space` - toggle pause.## References
- https://en.wikipedia.org/wiki/Mode_13h
- http://www.ctyme.com/intr/int.htm
- https://board.flatassembler.net/topic.php?t=14914## Support
You can support my work via
- Twitch channel: https://www.twitch.tv/subs/tsoding
- Patreon: https://www.patreon.com/tsoding[nasm]: https://www.nasm.us/
[qemu]: https://www.qemu.org/