Dźwięk i muzyka
Autentyczne retro brzmienie: od skromnego 1-bitowego PC Speakera, przez odrestaurowaną 3-głosową polifonię Tandy 1000, syntezę FM AdLib OPL2, ulepszone sterowniki MicroProse dla procesorów 486 i układów YM262, aż po bogatą orkiestrację Roland MT-32 oraz natywne pliki General MIDI.
Autentyczny ekran startowy i konfiguracja dźwięku
Podczas uruchamiania Civ 1.5 Remastered wita gracza klasyczny ekran konfiguracyjny MicroProse, wiernie odtworzony w rozdzielczości 640×400 przy użyciu oryginalnych krojów pisma ROM BIOS komputerów IBM PC. Menu audio udostępnia 8 trybów dźwiękowych – od klasycznych opcji DOS po oficjalne łatki MicroProse i bezpośrednie odtwarzanie aranżacji General MIDI.
Oryginalne sterowniki dźwięku gry (ISOUND.CVL, TSOUND.CVL, ASOUND.CVL,
ASOUND2.CVL, ASOUND3.CVL oraz RSOUND.CVL) wykonywane są przez wewnętrzny emulator
maszyny x86, który steruje nowoczesnymi syntezatorami programowymi i potokami audio w C# bez potrzeby korzystania z DOSBoksa.
Dostępne tryby dźwiękowe
1) No sounds please (Brak dźwięku)
Całkowicie wycisza muzykę oraz efekty dźwiękowe. Przydatne, gdy chcesz grać w całkowitej ciszy lub słuchać własnej muzyki w tle.
2) IBM sounds (PC Speaker)
Sterownik: ISOUND.CVL · Silnik: BuiltInSpeaker.cs
Klasyczny 1-bitowy brzęczyk płyty głównej. Oryginalny sterownik DOS operował bezpośrednio na układzie Intel 8253
PIT (Programmable Interval Timer) przez port we/wy 0x61.
Nasz silnik emuluje bramkę timera oraz generator fali prostokątnej (square wave), generując wygładzony sygnał PCM 44.1 kHz. Daje to w 100% autentyczne, nostalgiczne piknięcia i fanfary znane z komputerów PC z lat 80. i 90.
3) Tandy sounds (Tandy 1000 / IBM PCjr)
Sterownik: TSOUND.CVL · Silnik: TandySoundSynthesizer.cs
Zbudowane całkowicie od zera! W wersji DOS komputery Tandy 1000 i PCjr oferowały bogaty, 3-głosowy
dźwięk polifoniczny z dedykowanym kanałem szumu, zasilany przez układ Texas Instruments SN76496 na porcie 0xC0.
W dotychczasowym kodzie tłumaczenia port ten nie był obsługiwany, przez co wybór Tandy skutkował zupełną ciszą.
Zaimplementowaliśmy od podstaw precyzyjny emulator sprzętowy układu TI SN76496:
- 3 kanały tonowe: 10-bitowe dzielniki częstotliwości taktowane zegarem NTSC (3.579545 MHz / 32 ≈ 111.86 kHz).
- 1 kanał szumu: szum okresowy oraz biały generowany przez 15-bitowy rejestr LFSR (wielomian x¹⁵ + x¹⁴ + 1).
- Logarytmiczne tłumiki głośności: 16 poziomów tłumienia (-2 dB na krok, aż do pełnego wyciszenia).
- Filtr wygładzający EMA: eliminuje ostre artefakty aliasingu i zamienia cyfrowe zbocza układu w ciepły, czysty dźwięk 44.1 kHz.
Dzięki temu urokliwe, 3-głosowe melodie Civilization po raz pierwszy brzmią w pełnej krasie!
4) AdLib / Sound Blaster (OPL2 FM)
Sterownik: ASOUND.CVL · Silnik: Syntezator FM Yamaha YM3812 (OPL2)
Złoty standard gier PC wczesnych lat 90. Gra wykonuje sterownik MicroProse ASOUND.CVL w maszynie wirtualnej
8086, programując parametry syntezy FM na 9 kanałach i 4 kształtach fali układu Yamaha YM3812.
Generuje charakterystyczne, ciepłe brzmienie instrumentów dętych, smyczkowych i perkusji, które zdefiniowało dźwięk ery DOS.
5) Roland MT-32 MIDI board (Tłumaczenie do General MIDI)
Sterownik: RSOUND.CVL · Silnik: RolandToGeneralMidi.cs
W 1991 roku moduł Roland MT-32 był szczytem luksusu. Wykorzystywał syntezę LA (Linear Arithmetic), własne banki próbek oraz komunikaty Roland System Exclusive (SysEx). Współczesne systemy nie mają fizycznego sprzętu MT-32, a bezpośrednie wysłanie tych danych do syntezatorów General MIDI (GM) powodowało zgrzyty i chaos perkusyjny z powodu innych map instrumentów.
Aby to naprawić, napisaliśmy dedykowaną warstwę tłumaczącą komunikaty MIDI w czasie rzeczywistym:
- Dynamiczne mapowanie barw: Tłumaczy numery instrumentów i brzmień MT-32 na najbliższe, starannie dobrane barwy standardu General MIDI.
- Przekierowanie i remapowanie perkusji: Rytmy perkusyjne MT-32 są przechwytywane, transponowane i przekierowywane na kanał 10 General MIDI.
- Filtrowanie SysEx i obsługa kontrolerów: Oczyszcza strumień ze sprzętowych komend SysEx, obsługuje Pitch Bend, głośność, panoramę oraz wysyła komunikaty "All Notes Off", eliminując zawieszanie się dźwięków.
Dźwięk odtwarzany jest przez wbudowany syntezator General MIDI systemu (np. Microsoft GS Wavetable Synth w Windows), oferując pełną orkiestrację motywów starożytnych, renesansowych i współczesnych.
6) Custom sound driver (Inteligentna autodetekcja)
Domyślny tryb po uruchomieniu gry. Automatycznie sprawdza możliwości systemu operacyjnego i wybiera najlepsze dostępne urządzenie dźwiękowe według priorytetu:
Roland MT-32 (przez General MIDI) → AdLib FM → PC Speaker
Zapewnia najwyższą jakość dźwięku bez potrzeby ręcznego konfigurowania parametrów.
7) AdLib (Fast 486 / YM262 fix)
Sterowniki: ASOUND2.CVL / ASOUND3.CVL · Autor łatki: Jim McConkey (MicroProse, 1994)
Oficjalna aktualizacja MicroProse łącząca łatki dla szybkich procesorów oraz układów nowszej generacji:
- Poprawka dla procesorów 486 i Pentium: W oryginalnym sterowniku
ASOUND.CVLpętle opóźniające portu I/O0x388były zbyt krótkie na szybszych maszynach, co prowadziło do gubienia nut i desynchronizacji. - Poprawka dla układów Yamaha YM262 (OPL-3): Poprawiona inicjalizacja rejestrów kart Sound Blaster 16 / Pro 2, eliminująca zawieszanie się kanałów syntezy FM.
8) General MIDI (.MID files)
Zasoby: 18 plików Standard MIDI (katalog Assets/Midi/) · Silnik: GeneralMidiPlayer.cs
Bezpośrednie, bezstratne odtwarzanie autentycznych aranżacji Standard MIDI (.MID) przygotowanych dla gry Civilization. Zestaw zawiera pełną kolekcję 18 utworów:
opening_raw.mid– motyw tytułowy w menu głównym.evolution_raw.mid– motyw ewolucji i narodzin ludzkości.victory_raw.mididefeat_raw.mid– fanfary triumfu i lament porażki.- 14 hymnów narodowych: Amerykanie, Aztekowie, Babilończycy, Chińczycy, Egipcjanie, Anglicy, Francuzi, Niemcy, Grecy, Hindusi, Mongołowie, Rzymianie, Rosjanie oraz Zulusi.
Muzyka odtwarzana jest natywnie przez silnik multimedialny systemu Windows (MCI Sequencer / General MIDI), gwarantując idealną dynamikę i czystość brzmienia.
Porównanie architektury dźwięku
| Tryb | Oryginalny sterownik | Docelowy sprzęt | Implementacja w Civ 1.5 | Charakterystyka brzmienia |
|---|---|---|---|---|
| 1) None | — | Cisza | Wyciszony strumień | Całkowity brak dźwięku |
| 2) IBM PC | ISOUND.CVL | Intel 8253 PIT / Port 0x61 | Programowa synteza fali prostokątnej PIT | Klasyczne 1-bitowe piknięcia retro |
| 3) Tandy 1000 | TSOUND.CVL | TI SN76496 / Port 0xC0 | Autorski emulator sprzętowy SN76496 | Ciepła 3-głosowa polifonia + perkusja szumowa |
| 4) AdLib / SB | ASOUND.CVL | Yamaha YM3812 (OPL2) | Programowa emulacja syntezy OPL2 FM | Czysta 9-kanałowa synteza FM w stylu retro |
| 5) Roland MT-32 | RSOUND.CVL | Roland MT-32 LA Synth | Translator RolandToGeneralMidi | Pełna orkiestracja w standardzie General MIDI |
| 6) Custom Driver | Wykrywany automatycznie | Najlepszy dostępny | Inteligentny łańcuch priorytetów | Najwyższa możliwa jakość brzmienia |
| 7) Fast 486 / YM262 | ASOUND2.CVL / ASOUND3.CVL | AdLib na szybkich CPU / OPL-3 | Łatka opóźnień Jim McConkey (1994) | Brak desynchronizacji i stabilne rejestry OPL-3 |
| 8) General MIDI | 18 plików .MID | Standard General MIDI (GM) | Natywny odtwarzacz GeneralMidiPlayer | Bezpośrednie, pełne aranżacje studyjne MIDI |