Szerintem a Driller, Dark Side Total Eclipse 1-2, Castle Master 1-2 egy kaptafára készült.
OK, megnézem a Castle Master 2-t.
Ezek gondolom 4 Mhz-n értendők. 6 MHz-n arányosan gyorsul? Azt le tudod mérni?
7.119 MHz-en a legújabb verzióval 333 és 567 ms lett a fenti teszt. Ez gyakorlatilag pontosan az órajellel arányos gyorsulást jelent, ami arra utal, hogy a program memóriahozzáféréseinek a nagy részét a normál RAM teszi ki, és csak kevés ideig tart a pixel rajzolás (a video RAM nem gyorsul az órajellel arányosan, mert ott fix 889846 Hz-es frekvenciához kell szinkronizálni a hozzáféréseket). A sebességet egyébként bárki tesztelheti ezekkel a scriptekkel:
[ Guests cannot view attachments ] (CPC-hez)
[ Guests cannot view attachments ] (EP-hez)
[ Guests cannot view attachments ] (mentett játékállás a második teszthez)
A scriptet egyszerűen futtatni kell a játék közben, és aztán minden képkocka időtartamát kiírja a monitor ablakba.
A gyorsulást hogy sikerült elérni?
"Leprogramoztad" az Incentive-s fejlesztőgárdát...
Magán a 3D motoron nem változtattam (bár lehet, hogy ott lehetne a legtöbbet gyorsítani, csak sok munkával), hanem olyan részekkel próbálkoztam, amelyeknek értettem a működését
A castconv.s-ben megtalálható az összes lecserélt rutin új forráskódja is, azaz:
- 542Dh: előjeles szorzás: AHL = A * HL
- 5483h: előjeles szorzás: DEHL = DE * HL
- 54F1h: előjeles osztás: AHL = AHL / DE, DE = maradék (a legtöbb időt talán itt sikerült nyerni, ez egy sokat használt, és lassú rutin)
- 5578h: előjeles szorzás: HL = H * L
- 63F2h: előjeles osztás: DEHL = DEHL / BC a legközelebbi egész (a többivel ellentétben nem 0) felé kerekítve, BC = maradék
- 56F7h: 60 byte feltöltése azonos byte-al (36C6h-nál található az új feltöltést végző 30 PUSH utasítás);
ez csak a külső területeken használt, a szobákban nem
Amint látható, elsősorban egyszerű aritmetikai rutinokat cseréltem le többé-kevésbé gyorsabbakra. Az EP-s átiratoknál az elsőhöz képest gyorsult még egy keveset a paletta átdefiniálása a képernyő villogtatásakor.