Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attribute Wars

ci

Attribute Wars loading screen

Attribute Wars is available from: https://github.com/dtz-labs/attribute-wars/releases

Attribute Wars is a twin-joystick shooter for Timex and ZX Spectrum computers. Twin-joystick shooters became popular in the Xbox 360 / PlayStation 3 era: one stick moves the player, while the other stick chooses the direction of fire. It asks your brain to coordinate two independent streams of movement at once, which is exactly where the magic happens.

Download And Use

Binary releases are published on the GitHub Releases page. Download the latest TAP bundle from that page. Each release ZIP contains these TAP files:

  • aw-*-zx48k.tap - ZX Spectrum 48K build
  • aw-*-zx128k.tap - ZX Spectrum 128K / +2 build
  • aw-*-timex.tap - Timex TC2048 / TC2068 / TS2068 build

Load the TAP file that matches your machine or emulator.

Play In Browser

▶ Play the latest build in your browser — every push to main deploys the current ZX Spectrum 128K TAP to GitHub Pages, where it runs in the embedded JSSpeccy 3 emulator with the PT3 soundtrack and AY effects. Click the emulator display once to give it the keyboard and let the browser start the sound.

Use aw-*-timex.tap in a Timex-capable emulator such as ZEsarUX.

Running the Timex build in ZEsarUX: pick a Timex machine (TC2048 or TC2068) and enable Timex video, otherwise ZEsarUX pops a repeated "setting video mode" on-screen message every time the game flips its SCLD display. On the command line that switch is --enabletimexvideo, e.g. zesarux --machine TC2048 --enabletimexvideo aw-1.2.0-timex.tap; in the GUI it lives under Settings → Video. The make run-tc2048 / make run-tc2068 targets already pass it, which is why you don't see the message there.

Build And Test

make all
make test

Full build and emulator notes are in docs/build.md.

Supported Targets

Computer Video Sound Joysticks
Timex TC2048 Timex SCLD double buffering beeper; AY if an expansion is selected by the player keyboard / Kempston-style schemes
Timex TC2068 / TS2068 Timex SCLD double buffering AY-3-8910 music + FX two native Timex joystick ports
ZX Spectrum 128K / +2 128K shadow-screen double buffering AY-3-8910 music + FX (PT3 tune banked into a spare RAM page) Sinclair 1/2 joystick ports on +2
ZX Spectrum 48K single-buffered display beeper keyboard / Sinclair-style schemes

The ZX Spectrum 128K / +2 build now runs at full parity with the Timex build: the same PT3 music and AY sound effects (the ~10 KB tune is parked in a spare RAM bank and paged in for each 50 Hz player tick, so it coexists with the shadow-screen page flip), plus the same enemy variety and difficulty. Choose MUSIC+FX, FX, or BEEPER from the title screen.

The ZX Spectrum 48K version flickers like crazy. That is expected: the machine does not have a second hardware display page for true double buffering.

Credits

The game was fully created by AI tools, Claude Code and OpenAI Codex, from the original idea and direction of Michał Pasternak, @mpasternak79.

Music: Pator, @paatorr.

Music License

The bundled PT3 tune is Spectrumizer by Pator. Pator granted a personal, exclusive license to use this tune in this single game. The tune is not licensed under MIT and is not reusable outside Attribute Wars without separate permission from the composer.

Developer Notes

License

The source code is MIT licensed © 2026 Michał Pasternak.

About

Attribute Wars — a Geometry-Wars-style twin-stick shooter for the Timex TC2048 / ZX Spectrum (Z80, z88dk)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages