Skip to content

Feat/gameplay update#1

Merged
hali-coding merged 2 commits into
mainfrom
feat/gameplay-update
Jun 25, 2026
Merged

Feat/gameplay update#1
hali-coding merged 2 commits into
mainfrom
feat/gameplay-update

Conversation

@hali-coding

Copy link
Copy Markdown
Owner

Changes

  • New enemy
  • Updated pacing
  • Add start screen

Copilot AI review requested due to automatic review settings June 25, 2026 07:38
@hali-coding
hali-coding merged commit 9a1085f into main Jun 25, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR delivers a gameplay/content update by adding new enemy/power-up assets and expanding src/main.c with a title screen, difficulty ramping, a BG2 scrolling starfield backdrop, and new enemy/bomb mechanics. It also modernizes the project’s asset-tooling by moving helper scripts to Python and updating the build/docs for a Linux/WSL + GNU Make workflow.

Changes:

  • Add a tougher “tank” enemy (TAC-2 joystick) with multi-hit health, different scoring, and distinct graphics/palette.
  • Add a bomb pickup + bomb inventory (HUD), plus gameplay logic to spend bombs to clear the screen.
  • Add a title screen and a BG2 scrolling starfield to improve pacing/presentation.

Reviewed changes

Copilot reviewed 19 out of 21 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/snesbmp.py New shared Python BMP canvas + indexed BMP read/write helpers for art generators.
tools/make_tac2_bmp.py New Python generator for the TAC-2 tough enemy sprite source BMP.
tools/make_powerup_bmp.py New Python generator for the bomb power-up sprite source BMP.
tools/make_player_bmp.py New Python replacement for player sprite downscaling workflow.
tools/make_player_bmp.ps1 Removed PowerShell player BMP helper.
tools/make_gunshot.js Removed Node-based gunshot WAV synthesizer.
tools/make_enemy_bmp.py New Python replacement for enemy BMP generator (includes downscaling).
tools/make_enemy_bmp.ps1 Removed PowerShell enemy BMP helper.
tools/make_bullet_bmp.py New Python replacement for bullet BMP generator.
tools/make_bullet_bmp.ps1 Removed PowerShell bullet BMP helper.
tac2.bmp Adds the TAC-2 enemy source BMP (Git LFS pointer).
powerup.bmp Adds the bomb power-up source BMP (Git LFS pointer).
src/main.c Implements new enemy type, bomb pickup/inventory, title screen, starfield BG2, and difficulty ramp/pacing changes.
res/gunshot.wav Updates the gunshot WAV asset (Git LFS pointer update).
README.md Updates docs for Linux/WSL + GNU Make and Python tooling; documents new TAC-2 asset.
Makefile Adds artifacts target, adds conversion rules for new assets, and aligns build for Linux/WSL usage.
data.asm Links in powerup and tac2 generated graphics/palettes into ROM.
build.sh Removes the Windows-specific build wrapper.
.gitignore Ignores Python bytecode caches generated by helper scripts.
.claude/skills/snes-developer/SKILL.md Updates contributor guidance (notably: prefer Python over Node for tooling).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main.c
Comment on lines +76 to 82
#define MAX_ENEMIES 12 // hard cap: sizes the enemy arrays + reserved OAM slots
#define START_ENEMIES 3 // active enemies on screen at score 0
#define ENEMIES_PER_LEVEL 1000 // +1 active enemy per this many points; slow ramp to MAX_ENEMIES
// (SCORE_PER_KILL is 100, so ~10 kills per extra enemy)
#define NUM_BULLETS 4
#define NUM_STARS 24 // falling background starfield
#define BULLET_SPEED 4
Comment thread src/main.c
Comment on lines +276 to 285
// Drop a bomb power-up at (sx, sy) -- where a console was just destroyed --
// unless one is already falling. Clamp into the playfield so it stays visible.
void spawnPowerup(short sx, short sy)
{
if (powerupActive) return;
if (sy < PLAYFIELD_TOP) sy = PLAYFIELD_TOP;
powerupX = sx;
powerupY = sy;
powerupActive = 1;
}
Comment thread tools/snesbmp.py
Comment on lines +92 to +98
# Palette: stored BGRA, 256 entries.
for i, (r, g, bl) in enumerate(palette):
o = _HEADER_SIZE + i * 4
b[o] = bl
b[o + 1] = g
b[o + 2] = r

Comment thread README.md
Comment on lines 62 to 66
- `pvsneslibfont.png` -> `pvsneslibfont.pic`, `pvsneslibfont.pal`
- `sprites.bmp` -> `sprites.pic`, `sprites.pal`
- `enemy.bmp` -> `enemy.pic`, `enemy.pal`
- `tac2.bmp` -> `tac2.pic`, `tac2.pal`
- `bullet.bmp` -> `bullet.pic`, `bullet.pal`
Comment thread README.md
Comment on lines 102 to 106
- `sprites.bmp`: player sprite sheet
- `enemy.bmp`: enemy sprite sheet
- `enemy.bmp`: enemy sprite sheet (Genesis console; one hit to destroy)
- `tac2.bmp`: tough enemy sprite (TAC-2 joystick; takes three hits to destroy)
- `bullet.bmp`: bullet sprite
- `pvsneslibfont.png`: font image
@hali-coding
hali-coding deleted the feat/gameplay-update branch July 21, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants