Welcome, Guest. Please login or register.


Author Topic: Tegyük rendbe az EP programokat! (Read 372403 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #390 on: 2010.April.26. 20:48:11 »
Csak kíváncsiságból kérdezem, hátha tudja egy szakember:
Pl. az Exolon semmiféle időzítést nem tartalmaz? Fut, ahogy fút Spectrumon? Nincsenek várakozási ciklusok, amit rövidíteni lehetne?

Egyelőre nem találtam egyértelmű várakozási ciklust:

[ Guests cannot view attachments ]

[ Guests cannot view attachments ]

Az első kép a PC/16 eloszlását mutatja az összes memóriahozzáférésnél a menüben, a második ugyanez játék közben. Amint látható, az utóbbinál elég sok a lassú rész, és ezek többsége ránézésre különböző grafikai rutinoknak tűnik. A video RAM-ban talán a 7A37h-7A78h rutin ami különösen lassú (a fenti képeken ez 1955 körül van, a video memória pedig 1024-2047), ezt 128K-s gépen meg is próbálhatom átmásolni a 0. lapra, így észrevehetően gyorsul valamennyit a program.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #391 on: 2010.April.26. 20:50:26 »
Az elsõ kép a PC/16 eloszlását mutatja az összes memóriahozzáférésnél a menüben, a második ugyanez játék közben.
Izgalmasak ezek az "EKG"-k :-) hogy csináltad?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #392 on: 2010.April.26. 20:54:19 »
Izgalmasak ezek az "EKG"-k :-) hogy csináltad?

Lua script és hangszerkesztő program használatával :) :oops: Azaz a script által írt file-t nyitottam meg  fejléc nélküli 32 bites audio file-ként.

Code: Lua
  1. clearBreakPoints()
  2. for i = 0, 0xFFFF do
  3.   setBreakPoint(0, i, 2)
  4. end
  5. cnts = {}
  6. for i = 0, 0x0FFF do
  7.   cnts[i] = 0
  8. end
  9. function breakPointCallback(t, a, v)
  10.   if getPC() == 0x0000 then
  11.     clearBreakPoints()
  12.     f = io.open("/tmp/profile.dat", "wb")
  13.     for i = 0, 0x0FFF do
  14.       f:write(string.char(AND(cnts[i], 0xFF)))
  15.       f:write(string.char(AND(SHR(cnts[i], 8), 0xFF)))
  16.       f:write(string.char(AND(SHR(cnts[i], 16), 0xFF)))
  17.       f:write(string.char(AND(SHR(cnts[i], 24), 0xFF)))
  18.     end
  19.     f:flush()
  20.     f:close()
  21.     return true
  22.   end
  23.   i = SHR(AND(getPC(), 0xFFF0), 4)
  24.   cnts[i] = cnts[i] + 1
  25.   return false
  26. end

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #393 on: 2010.April.26. 21:03:01 »
Lua script és hangszerkesztõ program használatával :) :oops: Azaz a script által írt file-t nyitottam meg  fejléc nélküli 32 bites audio file-ként.
:smt038

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #394 on: 2010.April.26. 22:54:07 »
Egyelőre nem találtam egyértelmű várakozási ciklust:

Pontosabban van egy, a B0C0h-nál található LDIR utasítást időzítésre használja a program, de nem túl sokat vár (a 7665h címen az 'LD BC, n' utasítás állítja be a várakozás időtartamát); ha több sprite is van a képernyőn, akkor azoknak a rajzolása több időt vesz igénybe.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #395 on: 2010.April.26. 23:52:37 »
EP64 kompatibilis 720, csalás a szokott módon. Bár 64K-n futtatni önmagában felér egy kis training móddal :-)

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Tegyük rendbe az EP programokat!
« Reply #396 on: 2010.April.27. 07:57:52 »
EP64 kompatibilis 720, csalás a szokott módon. Bár 64K-n futtatni önmagában felér egy kis training móddal :-)

Nézd meg a Nonamed-et, hátha azt is át lehet alakítani.
Nagyon szép program, de Spectrumon teljesen használhatatlan.
« Last Edit: 2010.April.27. 08:06:28 by Lacika »

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Tegyük rendbe az EP programokat!
« Reply #397 on: 2010.April.27. 09:09:16 »
Egy tipp: Catacomb-hoz olyan betöltő, amivel 128-as gépen is videoRAM-ból fusson?  :oops:

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #398 on: 2010.April.27. 09:47:54 »
Nézd meg a Nonamed-et, hátha azt is át lehet alakítani.
Ha jól nézem abban Attus az illetékes :-)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #399 on: 2010.April.27. 11:40:36 »
EP64 kompatibilis 720, csalás a szokott módon. Bár 64K-n futtatni önmagában felér egy kis training móddal :-)

Melegindításnál lefagy, mert a játék felülírja a 0. lapot :(

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #400 on: 2010.April.27. 11:43:18 »
Melegindításnál lefagy, mert a játék felülírja a 0. lapot :(
Igen ezt tapasztaltam én is, valami elcseszett rutin ami idõnként a ROM területre ír, de nagyon ismerõs, hogy más játékban is találkoztam ezzel.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #401 on: 2010.April.27. 11:53:06 »
Igen ezt tapasztaltam én is, valami elcseszett rutin ami idõnként a ROM területre ír, de nagyon ismerõs, hogy más játékban is találkoztam ezzel.

Ez talán valamilyen másolásvédelem része lehetett (úgy látom, valamit XOR-ol a memóriában, aminek ránézésre nem sok értelme van) ?

De ha a játék nem használ semmilyen rutint a 0. lapon (és rövid kipróbálás után úgy látszik, valóban nem használ), akkor esetleg be lehetne lapozni oda pl. a 00h szegmenst (a Hit Squad ezt a megoldást használja, és amikor 0. lap rutint hív, átmenetileg visszalapozza az eredeti szegmenst) ?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #402 on: 2010.April.27. 11:56:32 »
Egy tipp: Catacomb-hoz olyan betöltő, amivel 128-as gépen is videoRAM-ból fusson?  :oops:

Megnézhetem :) Az én betöltőmben egyébként elég a "call  getSegment" sort átírni "call  getVideoSegment"-re ehhez a változtatáshoz; igaz, a 0. lap így normál memória marad, de ott remélhetőleg csak kevés időt tölt a program.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Tegyük rendbe az EP programokat!
« Reply #403 on: 2010.April.27. 12:03:04 »
De ha a játék nem használ semmilyen rutint a 0. lapon (és rövid kipróbálás után úgy látszik, valóban nem használ), akkor esetleg be lehetne lapozni oda pl. a 00h szegmenst (a Hit Squad ezt a megoldást használja, és amikor 0. lap rutint hív, átmenetileg visszalapozza az eredeti szegmenst) ?
Nem rossz ötlet!
Csak a megszakításkezelés van a 0-ás lapon, azt tán el lehetne dugni máshova is.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Tegyük rendbe az EP programokat!
« Reply #404 on: 2010.April.27. 12:05:18 »
Csak a megszakításkezelés van a 0-ás lapon, azt tán el lehetne dugni máshova is.

Azt használja is a játék ? Nekem úgy tűnt, mintha mindig le lenne tiltva, bár lehet, hogy többet kellett volna tesztelni.