# Ignition dla Amigi

Port **Ignition** (UDS / Virgin, 1997) na AmigaOS 3.x, zrobiony z
odtworzonego kodu gry: https://github.com/xesf/ignition (GPL-3.0).
Gra działa na oryginalnych danych z płyty PC, które dostarczasz sam —
**w paczce nie ma żadnych danych gry**.

## Wymagania

- AmigaOS 3.0 lub nowszy (3.1, 3.2, 3.9), albo AROS m68k
- 68040 lub 68060 z FPU (`ignition` = 040, `ignition060` = 060),
  PiStorm z Emu68 albo WinUAE z JIT
- karta graficzna RTG (Picasso96 lub CyberGraphX, `cybergraphics.library` 41);
  bez RTG gra otwiera ekran AGA 320 x 200 (wolniej)
- ok. 24 MB Fast RAM
- AHI (`ahi.device` 4) do dźwięku — bez niego gra działa po cichu
- opcjonalnie: `lowlevel.library` (joystick / pad CD32), stos TCP/IP
  z `bsdsocket.library` (gra sieciowa)
- ok. 50 MB na dane gry (pliki z płyty) + ok. 400 MB na obraz płyty z muzyką

## Instalacja

1. Rozpakuj archiwum, np. do `Work:Games/Ignition`.
2. Skopiuj zawartość płyty Ignition (PC) do katalogu `disc` obok programu,
   np. `Work:Games/Ignition/disc/` (musi tam być m.in. `BALTAZAR`, `CARS`,
   `LEVELS`, `SYS.COL`). Można to zrobić prosto z płyty CD w napędzie Amigi.
3. Muzyka gra z obrazu płyty: wrzuć plik `.cue` z jego plikami `.bin`
   obok katalogu `disc` (np. `Work:Games/Ignition/Ignition.cue`).
   Bez obrazu gra działa bez muzyki.
   Zamiast kroku 2 wystarczy sam obraz płyty: przy pierwszym starcie gra
   sama wypakuje z niego pliki (ok. 50 MB) do `disc`.
4. Uruchom `ignition` (68040) albo `ignition060` (68060) ikoną lub z Shella.

Inny katalog z danymi: `ignition --data Work:Ignition/disc` albo
`SetEnv IGNITION_DATA Work:Ignition/disc`, muzyka: `--cue PLIK.cue`.

## Sterowanie

Klawiatura jak w oryginale (strzałki, Return, Esc; klawisze do zmiany w
opcjach gry). Joystick w porcie 2: w menu kierunki i fire = Return, drugi
przycisk = Esc; w wyścigu fire lub góra = gaz, dół = hamulec, drugi
przycisk = akcja (nitro). Pad CD32: Play = Return w menu, Esc (pauza) w wyścigu, przednie przyciski =
biegi, zielony = patrz do tyłu.

- `Alt+F` — licznik klatek i linie debug wyścigu
- `Alt+Q` lub `Ctrl+C` w Shellu — wyjście

## Ustawienia (SetEnv)

| Zmienna | Znaczenie |
|---|---|
| `IGNITION_DATA` | katalog z danymi gry |
| `IGNITION_MODE` | ID trybu ekranu (hex) dla wszystkich ekranów |
| `IGNITION_SCALE` | `1` = bez podwajania obrazu 320 x 200 |
| `IGNITION_AGA` | `1` = ekran AGA zamiast RTG |
| `IGNITION_JOYSTICK` | `0` = bez joysticka |

Rozdzielczość wybiera się w grze (GFX OPTIONS > RESOLUTION): 320 x 200
(najszybciej, na ekranie 640 x 400/480 podwojona), 640 x 480, 800 x 600.
Grafika 3D jest liczona przez CPU tak jak w oryginale (SOFT 3D).

## Uwagi

- Ustawienia (`ign_win.btz`) i rekordy zapisują się w katalogu `disc`;
  plik z wersji PC nie pasuje (inna kolejność bajtów) — gra wtedy startuje
  z ustawieniami domyślnymi.
- Gra sieciowa: Amiga z Amigą (UDP); z wersją PC się nie połączy.

## Budowanie

Toolchain bebbo (amiga-gcc 13.4, libnix, NDK 3.2, nagłówki AHI/P96) w
`/opt/amiga`, potem:

    make -f Makefile.amiga amiga amiga060
    tools/package.sh

Testy bez Amigi (Linux): `make -f Makefile.amiga headless` oraz
`make -f Makefile.amiga m68k` (big endian, uruchamiane przez
`qemu-m68k -L /usr/m68k-linux-gnu`) — oba buildy liczą sumę kontrolną
każdej klatki, więc można je porównać ze sobą.
