• Home
  • Most Popular
  • Submit
  • About Us
  • Contact Us

Softpile

Free Downloads

Categories
  • Home
  • Most Popular
  • Communications
  • Desktop
  • Games & Entertainment
  • Graphic Apps
  • Network & Internet
  • Security & Privacy
  • System Utilities
Alternative to itextsharp 2022.11.10347
IronPDF offers an itextsharp alternative for HTML to PDF conversion with C# code examples, documentation, and ...
VShell Server for Linux and Mac 4.8
VShell is a versatile and secure file transfer server that supports multiple protocols and is compatible ...
PDF Studio PDF Editor for Linux 2022
PDF Studio is a cost-effective PDF editor that delivers full compatibility with the PDF Standard. It's ...
VQ Probe for Linux 1.5
VQ Probe is a comprehensive software tool that enables objective and subjective video quality analysis. The ...
Resilient Server 2.3
This Debian GNU/Linux (Buster) based software has a customized partitioning scheme that enhances robustness against filesystem ...
Valentina Studio for Linux 9.6
Valentina Studio is a cross-platform GUI manager for Mac, Windows, and Linux. It allows users to ...
VPN Lifeguard for Linux 1.0.58
The software monitors VPN connection and automatically terminates apps during connection loss, re-establishes the connection and ...
G_Viewer 0.84
G_Viewer is a Linux software that serves as both a file system and photo/image viewer. It ...
Checksome File Hash Tool for Linux 1.1
This software allows for the generation and verification of file hashes. It is a quick and ...
KeyWrangler Password Manager for Linux 1.2
A password management software that is secure, offline and extensible. It offers military-grade encryption to protect ...
Home Linux aPong Download

aPong

March 5, 2007
aPong is a classic Pong game coded in x86 Assembly language, offering traditional gameplay and challenging levels.
License GPL
Platform Linux
Supported Languages English
Homepage www.csc.liv.ac.uk
Developed by Richard Whitty
aPong is a Pong game that was developed using x86 Assembly language. As someone who primarily uses Linux, I wasn't very familiar with the intel syntax. However, in order to complete a lab, I decided to venture into it. I spent a few hours scouring the internet, and that's how I came across NASM. My initial thought was that I would be able to write the code in NASM, transfer it to Windows computers, and it would work seamlessly. Unfortunately, that wasn't the case, but it did help me familiarize myself with the syntax.

Here are some key features of aPong:

- 2-player: The left player uses Q/A to move up/down, and the second player uses P/L. Press escape to quit.
- Uses SDL from assembly language: I love SDL, but I don't like x86. Since I already knew SDL, I chose to stick with it instead of learning something new. It was an excellent learning experience, and it allowed me to write the code quickly.
- Avoids the use of frame pointers: I find it unnecessary to use frame pointers if I'm not debugging the code. It's not complicated to keep track of the stack frame, and moving the stack pointer once at the start and end of a function is sufficient. All you need to do is take offsets from esp, as long as you remember the frame's size.
- Global variables are not bad: I feel that people tend to overlook the overhead involved in function calls. Saying that global variables are bad is incorrect. While it can be abused, it's like saying you shouldn't use C or UNIX because they don't hold your hand.
- The input system isn't great: I kept the code size small by using SDL_GetKeyState and SDL_PumpEvents. However, it causes the code to drop the keypress if the key is not down at the time of the PumpEvents call. If you want to see the proper way to do it, you can check the events system in STP.

Requirements:
- NASM
- GCC (for linking)
- libSDL (for graphics and input)

Compilation:
- nasm -f elf pong.o
- gcc -o pong pong.o -lSDL

Controls:
- Player one: Q (up), A (down)
- Player two: P (up), L (down)
- Press escape to quit.
What's New
Free Download 8K
368
  • Share on:

Most Popular

  1. Quicksilver Forums 1.4.2
    157
  2. Dvgrab 3.4
    94
  3. DynVPN 1.0
    83
  4. CherryTV 0.1
    81
  5. SlideMap 1.2.2
    76
  6. porm r2
    72
  7. Clewarecontrol 0.8
    71
  8. Hills 2.0
    71
  9. fuseftp 0.8
    70
  10. Java Games 1.0
    70

Related Downloads

irs words
Innovative sentence structure software that provides users with the ability to organize, ...
sikakuQt
SikakuQt is software that provides an implementation of the popular Japanese puzzle ...
Quiet Console Town
The Quiet Console Town is a city simulator RPG software designed for ...
PHP Directory Listing
PHP Directory Listing is an easy-to-use PHP script that generates directory lists. ...
Simple UDP proxy/pipe
A feature-rich software, Simple UDP Proxy/Pipe enables advanced forwarding and modification of ...
Pod::Inherit
Automatically generate pod sections that detail inherited methods with this software tool. ...
NanoNAS
NanoNAS is an OS that converts a server into a Network Attached ...
UPC LiveCD
UPC LiveCD is a Linux-based operating system that is UPC-enabled and can ...
rpass
rpass is a tool that generates a random word with a given ...
Nvi
Nvi is a text editor software based on ex/vi originally distributed in ...
Copyright © 1999-2025 Softpile Free Downloads
  • Most Popular
  • Submit
  • About Us
  • Contact Us
  • Privacy Policy
  • Disclaimer
  • Terms of Use

Can we use your data to tailor ads for you?

Our partners will collect data and use cookies for ad personalization and measurement.

By choosing "I agree", closing this pop-up or clicking on any element on the page, you agree to the use of cookies to help us provide you with a better user experience.

Learn how Softpile and our partners collect and use data.

You can change your choice at any time in our privacy center.

Cookie Settings

Our website stores four types of cookies. At any time you can choose which cookies you accept and which you refuse. You can read more about what cookies are and what types of cookies we store in our Cookie Policy.

are necessary for technical reasons. Without them, this website may not function properly.

are necessary for specific functionality on the website. Without them, some features may be disabled.

allow us to analyse website use and to improve the visitor's experience.

allow us to personalise your experience and to send you relevant content and offers, on this website and other websites.