Skip to content

Releases: erspicu/TyrianGbaPoc

TyrianGbaPoc v89 - Full 9-Channel Audio Release

Choose a tag to compare

@erspicu erspicu released this 15 Aug 18:12

TyrianGbaPoc v89

This is the first release after the project moved from a technical proof of
concept toward a broadly complete, source-faithful GBA port. The release ROM
uses the production LOW detail profile, Normal game speed, normal campaign
equipment, and no invincibility override.

Highlights

  • Complete nine-channel TYM/OPL2 music conversion for all 41 tracks. Earlier
    builds retained at most eight channels; 26 tracks regain an authored voice.
  • Procedural percussion now runs at the native 15,768 Hz Maxmod output rate.
    Original SFX and voices remain at their source-native rate to avoid fake
    upsampling.
  • Full 18-slot mixer budget: nine music voices, eight logical SFX voices, and
    one spare slot.
  • Source-authored Twiddle commands and hidden weapons, including Hot Dog and
    Banana Blast behaviour, are restored alongside the physical GBA mapping.
  • Cartridge resources were audited and deduplicated without removing the
    stock data needed for later campaign and seasonal parity work.
  • Includes the accumulated boss/OAM scheduling, cache-isolation, fixed-ground
    attachment, menu preview, palette, save/load, and campaign-flow fixes since
    v88.

Validation

  • JukeBox flow: PASS (44 modules, circular switching, fade-out and title-music
    restore).
  • LOW full-loadout stress, 600 VBlanks: music active and 0 audio-frame loss.
  • Audio build audit: 41 tracks, 334 calibrated OPL sources, 0 clipped samples.
  • ROM: 27,090,252 bytes (25.835 MiB), safely below the 32 MiB GBA limit.

SHA-256 checksums are provided as a separate release asset.

Notes

  • A .sav file is not bundled; the game creates normal SRAM state on first
    use.
  • This is an independent fan port and not an official Tyrian release. Tyrian
    and its original assets remain the property of their respective rights
    holders. See THIRD_PARTY_NOTICES.md in the source repository.

TyrianGbaPoc v88 - Boss Collision Hotpath

Choose a tag to compare

@erspicu erspicu released this 07 Aug 18:34

CUSTOM detail/Normal speed 正式 ROM。

本版完成:

  • Boss 玩家子彈碰撞 8-byte EWRAM snapshot 與 source-exact ARM7TDMI 核心。
  • linked status、kill group、damaged transition、player contact 改走升冪 active enemy directory。
  • Boss 固定區間 A/B:collision cycles -18.86%,logic cycles -11.09%。
  • 全路線壓力測試:logic cycles -3.81%,collision cycles -4.16%,missed VBlank -2.05%。
  • 通過 packed-collision C/ARM 差分測試(全 16-bit delta、10 directed cases、128 random cases)與 enemy mask consistency。
  • 也包含 v82-v87 的星空批次 ARM、projectile cache hint、effect/player-shot/enemy pool directory 優化。

ROM:26.73 MiB
Build:AprTyrianGba-4f94593
SHA-256:e53e243d8f25ecc7396b9fa0be63e94499ed19d525364b52b0f40d2e530796ee

TyrianGbaPoc v73 - Custom Detail Release

Choose a tag to compare

@erspicu erspicu released this 06 Aug 15:22

CUSTOM 正式版

本版將 GBA 專屬 CUSTOM 設為正式 Release profile:以 PC Normal Detail 為基礎,加入 Pentium 的平滑 50/50 wild BG2 Alpha 與最終 hue/brightness filtration,同時明確關閉三角 spotlight,以及 lava/water hue 與逐掃描線波動。

本版重點

  • CUSTOM 不再啟用 starShowVGASpecialCode == 2 的全畫面暗化與三角聚光。
  • 保留完整第二背景層、半透明爆炸、iced、brightness、陰影與來源事件時序。
  • 正式開啟全域 adaptive/drop-frame 呈現排程,維持 gameplay、音訊與 RNG 時序。
  • 補齊 GBA GamePad 武器映射、XMAS 存檔名稱季節觸發與 ROMFS 可驗證去重規則。
  • 修復 Asteroid 1 Boss 結束後,摘要字型/Cube 覆寫殘留 8bpp Boss OAM 所造成的破圖。
  • 更新 MD/Rule/Tyrian-GBA-Detail-Level-Visual-Stacking-Rule.md,完整定義 CUSTOM 的包含、排除與硬體仲裁邊界。

建置資訊

  • Detail Level: CUSTOM
  • Game Speed: NORMAL
  • Source commit: 37e84df
  • ROM size: 28,028,808 bytes (26.73 MiB)
  • SHA-256: 30a99f50a61af4bd44379636cc42147df47e1564de2949e029075da050096a86

ROM 僅作為 GitHub Release asset 發布,不納入 Git repository。

TyrianGbaPoc v72 - Lava/Water Wave Pressure Fix

Choose a tag to compare

@erspicu erspicu released this 02 Aug 16:26

PENTIUM Detail research build for the Episode 4 LAVA EXIT wave-pressure fix.

Highlights:

  • Replaces the harsh full-scanline lava/water approximation with a source-derived, spatially smoothed, zero-DC profile.
  • Adds hysteresis-based presentation pressure control. Normal load keeps the wave; sustained extreme load gradually reduces only geometric displacement while preserving the lava/water palette effect.
  • Preserves all gameplay logic, collisions, projectiles, OAM workload, RNG, audio, and fixed-timestep progression.
  • Precomputes both fixed wave profiles before IRQ/audio startup, avoiding the first-effect gameplay and mixer hitch.
  • Full-loadout LAVA EXIT stress: missed VBlank 1,254 -> 1,231; audio frame loss 5 -> 4; visible horizontal bands removed.

Build:

  • Detail: PENTIUM
  • Game speed: Normal
  • Commit: 4f83987
  • ROM SHA-256: fa9b3ba9cc40a32439286759a8b415a35800a5ff230eacd6c91a412b7996d470

This PENTIUM build is intended for hardware-limit study. NORMAL remains the recommended general-use detail profile.

TyrianGbaPoc v71 - UNDERDELI Blur Pixelation Fix

Choose a tag to compare

@erspicu erspicu released this 02 Aug 13:55

Fixes the coarse 2x2 pixelation seen when save slot 2 enters Episode 4 UNDERDELI. Root cause: the PC temporal blur event was incorrectly approximated with GBA hardware Mosaic across all world BGs and OBJs. The source event and telemetry remain intact, while the distortion-causing Mosaic path is removed. Targeted validation: TGRS pass=1, assets valid, zero background stream drops, zero background cache approximations, zero Sprite2 decode/cache drops, and zero projectile cache drops. Build: AprTyrianGba-d523016. SHA256: 84dcb6976296abec0c41cc4129224c68d23b75907f950e62252e6c9594786726

TyrianGbaPoc v70 - Boss Contact Softlock Fix

Choose a tag to compare

@erspicu erspicu released this 02 Aug 12:11

TyrianGbaPoc v70

This bug-fix release resolves a boss-stage softlock seen when loading the second slot from the reported SRAM image while development invincibility is enabled.

  • Development invincibility now applies the PC invulnerable_ticks contact gate: pickups remain collectible, while ship contact no longer destroys linked enemies.
  • Prevents contact from clearing a link-254 boss group without executing the player-shot superEnemy254Jump route.
  • Adds a focused regression for non-vulnerable player contact with linked enemies.
  • Adds a compile-time switch for route tests to use the real weapon-energy budget.
  • Verified with the exact second save slot in Episode 4 ?TUNNEL?: jump target 9000 fired once, exit/statistics completed, and the game returned to Game Menu.

Build: AprTyrianGba-52464a5
Detail: Normal / Game Speed: Normal
SHA-256: 9722a07fa88a44acf6286c02b13cea3e8e1c43ac2b47854295f36343507743cd

本版修正開啟無敵測試模式時,機身接觸可能先清掉 link-254 Boss、卻未觸發 Boss 結束跳轉所造成的卡關。已用回報的第二存檔槽、真實武器能源規則完整驗證通關。

v69 - Pentium Detail source parity and performance study

Choose a tag to compare

@erspicu erspicu released this 02 Aug 06:07

完成 PC Pentium Detail 規則核對與 GBA 硬體適配:wild BG2、filtration、High lava/water,以及 Low/Normal/High/Pentium 四檔 Episode 2 極限武器效能矩陣。預設設定仍為 Normal;本 Release ROM 是 Pentium、Normal game speed,stress loadout 未鎖入一般 ROM。詳細限制、容量、IWRAM canary 與測試數據請見附件報告。

TyrianGbaPoc v68 - Source-Parity Low/Normal Detail Profiles

Choose a tag to compare

@erspicu erspicu released this 02 Aug 04:21

TyrianGbaPoc v68 — Source-Parity Low / Normal Detail Profiles

This milestone implements compile-time Low (PC 386) and Normal (PC 486)
detail profiles by tracing the OpenTyrian source rules and adapting their
presentation to GBA hardware.

  • Low: source-correct default BG2 suppression, opaque explosions, reduced
    filter path, and authored background2over == 3 restoration.
  • Normal: BG2, translucent explosions, player/projectile shadows,
    brightness, iced/blur effects, vertical flip, and special spotlight.
  • The spotlight uses a double-buffered scanline table streamed by DMA0 at
    HBlank, avoiding 160 CPU IRQ entries per frame.
  • Configure.h now selects the default profile; one-off builds can use
    -DetailLevel low|normal|high|pentium.

Verification:

  • Low first-level full golden: PASS — 74 / 12,246 missed VBlanks (0.60%).
  • Normal first-level full golden: PASS — 98 / 12,246 missed VBlanks (0.80%).
  • Source gameplay/event/Boss/statistics counters match exactly between both
    profiles.
  • Final Normal ROM passed the 600-frame mGBA software-renderer boot test.

Build: 687a09c

SHA-256: 167e32bd85077b8886310231cb4d74c2679c098b9644b443c95495b958141173

Test configuration note: player invincibility is currently enabled in
Configure.h; stress-loadout mode is disabled.


本版依 OpenTyrian 原始規則完成 Low/Normal 細節等級的編譯期切換與 GBA
硬體適配。兩種 profile 均通過第一關完整 golden,遊戲邏輯、事件、Boss、
離場與統計結果完全一致;目前 ROM 仍保留主角無敵測試設定。

TyrianGbaPoc v65

Choose a tag to compare

@erspicu erspicu released this 01 Aug 15:11

本版修正 Episode 4 測試流程:

  • 開發版維持全程無敵。
  • Next Level 選擇原始資料中的 Skip It 後,不再錯誤返回 Tyrian 首頁。
  • 依 OpenTyrian JE_nextEpisode()/JE_findNextEpisode() 規則,Episode 4 循環至 Episode 1 section 1,並進入 Game Menu。
  • 新增 TGSI 自動回歸,實機模擬結果 pass=1。
  • Time War 關閉無敵後的三命死亡與 checkpoint 回復另以 TGSX 回歸確認 pass=1。

建置:High Detail / Normal Game Speed / 開發無敵模式
Commit: 76c0c80
SHA-256: 3ff1be253160ebfb7c3aae5e0d062ba825ece4d01dfc9aa82d471fa16643ad08

TyrianGbaPoc v64

Choose a tag to compare

@erspicu erspicu released this 31 Jul 18:45

TyrianGbaPoc v64

  • 完成 GBA-only 資源與 Maxmod 音樂建置鏈,移除舊 NES/SNES builder 與混音校準相依。
  • 正式啟用 wall-clock drop-frame presentation,修正 Maxmod VBlank 競態與延後 VRAM upload 一致性。
  • 爆炸特效快取擴充至 27 個可見幀;Episode 3 高密度場景 effect drop 為 0。
  • High Detail / Normal Speed 路線實測:Episode 2 0.31%、Episode 3 0.30%、Episode 4 0.74% missed VBlank,皆只發生於 gameplay 且低於 1% 發行門檻。
  • 17 條前端路徑各 120 次轉場:0 missed VBlank、0 failure、音樂持續有效。
  • ROM SHA-256: 79D3B85BAF5C9F151886091C6BE96EDA43388A9C06FC23CF89AE4C08AFDBA306

完整技術紀錄請見 MD/Tyrian-GBA-Standalone-Audio-Presentation-v64.md