跳到正文
itch.io Devlogs·· 3 小时前AI 评分31

Game Gear 移植版 v0.0.2:实现背景音乐支持

v0.0.2: Implement support for music.

AI 导读

Game Gear 移植版 v0.0.2 新增完整背景音乐,直接将 MS-DOS 音轨转为适配 Game Gear 4 通道 PSG 芯片。音乐引擎每帧仅耗约 4% CPU 时间,可保持 60 FPS 无掉帧。编译时需将 DOS 共享版歌曲文件放入 ~/jj1data 或设 JJ1_DATA 变量后运行 make。

正文

🎵 What’s New in Version 0.0.2

This major update brings full background music to the Game Gear port! Instead of down-sampling the 16-bit Sega Genesis FM audio, the soundtrack was converted directly from the original MS-DOS track files and adapted specifically for the Game Gear’s 4-channel PSG sound chip.

🎧 Track List & In-Game Placement

Game Area / StageTrack Played
Title ScreenTitle Theme
Stages 1 & 2Diamondus Theme
Stages 3 & 4Tubelectric Theme
Stages 5 & 6Medivo Theme
Stage 7Boss Theme
Episode CompleteVictory Jingle (plays once)
Game Over & PauseMusic pauses cleanly during pause; silent on Game Over

🛠️ How the DOS Music Was Converted to PSG

Because MS-DOS tracker songs used sampled instruments while the Game Gear hardware relies on programmable square waves and noise, the music conversion engine (tools/psgmusic.py) uses specialized sound design techniques:

  • Channel Allocation: Uses 3 pulse channels (lead, chord arpeggios, and bass) plus 1 noise channel (drums).
  • Fast Arpeggios: Polyphonic chord samples from the DOS source are rendered as high-speed arpeggios across pulse channels.
  • Smart Bass Transposition: Basslines are transposed up one octave to fit within the Game Gear PSG chip's frequency floor (A2 / 110 Hz).
  • Custom Dynamic Drums: The noise channel switches between a deeper buzz for kick drums and white noise hits for snares, hi-hats, and cymbals.
  • Dynamic SFX Ducking: Sound effects (jumping, firing, taking damage) borrow the least critical music channel. While a sound effect plays, the background music keeps silent time in the background and resumes seamlessly when the effect completes.

🧪 Performance & Build Requirements

  • Zero Frame Drops: The music engine consumes only ~4% CPU time per frame, allowing the gameplay loop to maintain a full 60 FPS speed.
  • Building with Music: To compile jazz.gg with full music support, place the original DOS shareware song files into ~/jj1data (or point the JJ1_DATA environment variable to their location) before running make.

Files

Get Jazz Jackrabbit for Game Gear

来源:itch.io Devlogs · haroldo-ok.itch.io