https://github.com/anachrocomputer/svgalibscroller
Very old program that uses the SVGAlib to generate a parallax scrolling display resembling a game
https://github.com/anachrocomputer/svgalibscroller
alsa parallax-scrolling svga-library
Last synced: 9 months ago
JSON representation
Very old program that uses the SVGAlib to generate a parallax scrolling display resembling a game
- Host: GitHub
- URL: https://github.com/anachrocomputer/svgalibscroller
- Owner: anachrocomputer
- Created: 2024-04-16T18:04:43.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-28T18:39:55.000Z (about 2 years ago)
- Last Synced: 2025-01-16T10:49:01.139Z (over 1 year ago)
- Topics: alsa, parallax-scrolling, svga-library
- Language: C
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SVGAlibScroller #
This is an experimental program to generate a VGA display
resembling the game "Defender".
Apart from having a parallax-scrolling background of fields and clouds, that is.
Maybe it's more like "Scramble", but I've only played the Vectrex version of that game.
I wrote it in February 2012 as a second step towards a fully interactive program that could
display directly on the PC's screen.
An earlier iteration generated numerous PPM format still images and then assembled them,
along with a soundtrack, into a video file by using 'ffmpeg'.
But this version writes directly to the VGA screen and the ALSA sound subsystem.
> [!NOTE]
> SVGAlib is long obsolete and superceded by SDL2,
> the Simple DirectMedia Layer.
> SVGAlib had several shortcomings,
> and was only really useful on Linux systems that ran in text mode (i.e. without a GUI).
> This repo is here as an example of how we wrote code back in the day,
> and as a bit of a fossil (like myself).
The code never got as far as accepting user input in the function `game_logic()`.
I really wanted to use a joystick,
and that's what led me to move to SDL2 which supports input as well as output.
The program only runs for eight seconds and then terminates.
## Compilation Options ##
There's a #define in the code called MODE13H which will make the program run in
320x200, 256-colour mode.
If that #define is not defined, the program will run in 640x480 resolution.
## Compiling and Building ##
To compile this code, you'll need the usual 'build-essential' package:
`sudo apt install build-essential`
along with the SVGAlib libraries and header files:
`https://www.svgalib.org/`
And the ALSA sound subsystem libraries :
`https://www.alsa-project.org/wiki/Main_Page`
Once those are installed, you can simply run 'make':
`make`