dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Media faili no RAM
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija
View previous topic :: View next topic  
Author Message
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Sep 08, 2008 2:04 pm    Post subject: Media faili no RAM

Sveiki!

Pašlaik pētu iespējas visus attēlus un skaņas glabāt vienā exe failā.
Ja ar skaņu viss ir skaidrs - bin2h un irrklang, kur tiek izmantots veids - lasīt mūzikas formāta failus no atmiņas, tad par grafiku ir savādāk.
Par šo lietu neko daudz nezinu. Protams, var mēģināt sabāzt bildes vienā *.mhtml failā un no tā nolasīt bināro cipariņu virkni attēliem (base64).
Bet ir jau ātrāks veids kā to izdarīt. Tā kā topošais projektiņš ir mazs pēc izmēriem un arī turpmākajos projektos negribās velti noslogot HDD, tad izšķīros par šādu variantu. Protams, tas viss ir tīri intereses pēc, un šeit nevajadzētu izvirzīt offtopiku par to, ka tas NAV vajadzīgs. Izglītojošiem mērķiem tas der. Wink

Te rodās arī jautājums no failu konfidencialitātes puses.
Vai šādā veidā var iegūt tīru *.mp3 skaņu no izveidotā exe faila, kas būtu ekvalenta 1:1 ar oriģinālu? Diezgan bieži esmu manījis programmas datorspēļu uzlauzēju fanātiķiem, kas spēj nolasīt RAM atmiņas apgabalu un šādi niekojoties tad iespējams var iegūt pašu faila oriģinālu.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Mon Sep 08, 2008 3:06 pm    Post subject:

Nedomaaju ka tev buutu jaauztraucaas par konfidencialitaati - visas lielaas speeles tiek atlauztas, ja vajadzees taveejaa tiks arii. Big deal, anyway. Nesaprotu kapeec tu gribi visu exe sapakot... ja gribi kaut ko sleept, uztaisi savu arhiiva formaatu un viss. Palasi internetaa par mpq, paspiko galvenaas idejas un apmeeram dienu triis laikaa nevajadzeetu buut probleemam uzrakstiit taadu basic varinatu. Uztaisi veel kaadu aplikaaciju kas tev ar normaalaam formam visu paliidz tur pievienot/idzeest ect no taa arhiiva, un tad tikai koda gabalins kaa nu tu dabuu rokaa tos vajadziiigos datus. Taadaa basic liimenii tam ariivam vajadzeetu sastaaveet no hastables ar pilniem iekseejiem celjiem/failu nosaukumiem un paareejais fails sadaliits pa blokiem teiksim 4kb kuri satur tos datus.
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Sep 08, 2008 3:29 pm    Post subject:

Labi, pret konfidencialitāti drošības nav.
Atliksim maliņā šo jautājumu.

Bet kā ar otrās rindkopas jautājumu? Kā jau teicu, netaisam offtopiku par to, kāpēc tas ir vajadzīgs. :wink:

Pateikšu kaut vai piemēru - ja ir vairāki desmiti sīku failiņu, tad ir labāk, lai tas viss stāv RAM, nekā tiek ielādēts no HDD.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Sep 08, 2008 3:58 pm    Post subject:

ar otrās rindkopas jautājumu ir tā, ka datus var glabāt dažādi.
Ja ir vajadzība, var glabāt tekstu iekš exe's, kurā kaut vai tikai 0 un 1 :D

tas piemērs ir samērā dīvains - lai dati vispār būtu RAM'ā, tie taču ir jāielādē no kaut kā, vai ne?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Sep 08, 2008 4:15 pm    Post subject:

Palaižot spēli, manā variantā viss aizies uz RAM tikai vienu reizi.

Snake5, vai nepaskaidrosi savus pirmos 2 teikumus?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Mon Sep 08, 2008 4:22 pm    Post subject:

Palaizot speeli, ielaadee visus failus - viss aizies uz ram tiesi vienu reizi, whats the problem.
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Sep 08, 2008 4:26 pm    Post subject:

EDDY wrote:
Snake5, vai nepaskaidrosi savus pirmos 2 teikumus?

nu tajā exe failā var turēt visu to mp3 failu (pat vairākos veidos).
kāpēc, lai viņu 1:1 neizdabūtu ārā?
(atskaitot problēmgadījumus ar cieto disku Very Happy)

Code:

const int song_1[ 1127348 ] =
{
...
}

:D

tikai...
Quote:
Ja ar skaņu viss ir skaidrs...

Quote:
Vai šādā veidā var iegūt tīru *.mp3 skaņu no izveidotā exe faila...

Tava kārta paskaidrot...

btw, ar exe failiem ir viens tāds prikols..
viņiem beigās var appendot jebkādus datus, tas exe darbību neietekmēs, bet tos varēs nolasīt.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Sep 08, 2008 7:48 pm    Post subject:

Ja tu failus exē gribi glabāt drošības apsvērumu dēļ - tad tas nav tā vērts. Tikai liekas problēmas sev sagādāsi. Kā jau Storm's teica, ja kādam vajadzēs tas izdabūs to no jebkura formāt ārā.

Ja tu exe failā gribi visu glabāt, jo tad mazāk failu jāglabā, tad cita runa. Exe failam var piekabinat patvaļīgus resursus ar resursu failu (vismaz ja runa par C/C++). Kā tos nolasīt/dabūt programmā - skaties te:
http://msdn.microsoft.com/en-us/library/ms632583.aspx
http://www.gamedev.net/reference/articles/article1240.asp
Resursu failiem, atšķirībā no snjakes dotā const masīva, labums ir tāds, ka exe failam palaižoties nav atmiņā. Tie tiek ielādēti tikai tad, kad resurss tiek pieprasīts (ar WinAPI fjām). Programma ātrāk iestartēsies.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Sep 08, 2008 8:08 pm    Post subject:

bubu wrote:
Programma ātrāk iestartēsies.

Bet kopumā lādēs tik pat.

bubu wrote:
snjakes

Lūdzu mīļās vārda formas met pie miera. Very Happy
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Sep 08, 2008 8:29 pm    Post subject:

Quote:
Bet kopumā lādēs tik pat.

Protams. Ja vajadzēs, tad lādēs tik pat. Bet vai tev vienmēr uz ikkatru līmeni ir bijis jāielādē visi spēles dati, kas ir pieejami, hm? Tur jau tas ātrums būs - ka ielādēs no diska tikai nepieciešāmās lietas. Nevis kā const masīvs, kurš ielādēsies ar visiem citiem const masīviem programmas startupā.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Sep 08, 2008 8:39 pm    Post subject:

EDDY wrote:
Tā kā topošais projektiņš ir mazs pēc izmēriem

EDDY wrote:
negribās velti noslogot HDD

EDDY wrote:
Izglītojošiem mērķiem


nu viss ielādēsies startupā, bet tikai vienreiz - kā EDDY'am vajag - bez HDD veltīgas noslogošanas :)

bubu wrote:
Bet vai tev vienmēr uz ikkatru līmeni ir bijis jāielādē visi spēles dati, kas ir pieejami, hm?

Man nav bijis.

Bet, piemēram, uz GM veidots EXE fails parasti tur sevī visus resursus, kurus arī visus startupā salādē. Tas nav tik lēni.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Tue Sep 09, 2008 7:55 am    Post subject:

Laikam ne tā pateicu par otro rindkopu.
Mēģināšu to formulēt mazliet savādāk.

Tātad man vajadzētu darboties ar attēliem tāpat, kā es darbojos ar skaņu.
Ar skaņu ir tā, kā teicu - ņemu bin2h programmiņu un caur *.bat failu padodu parametrus. Rezultātā man no kāda mūzikas formāta faila rodas massīvs, kuram ir savs nosaukums. Šie masīvi var būt desmitiem, katrs savā header failā (labākai pārskatei). Un lūk, meklēju tāda paša rakstura programmiņu priekš attēliem un caur OpenGL (var arī SDL) tad to masīvu salādēt kā tekstūru vai bildi. Savulaik universitātes kursadarbā izmantoju ko līdzīgu, bet attiecībā uz 3d objektiem.

Un, piemēra pēc, iedomāsimies, ka vēlos uzģenerēt kādu bildi no nejaušiem masīva elementiem. Šādu iespēju nevar uzlauzt, jo nevar paredzēt kādi būs random mainīgie.

bubu, resursu faili ir pirmie, kurus var apskatīt pat neesot liels speciālists laušanā. Arī es esmu skatījies exe un dll failu saturu un tur ir ko atrast.

Snake5, nesaprotu tavu masīva piemēru. Tādu es jau izmantoju skaņai. Ko tu ar to vēlējies pateikt?

Code:
Es rakstīju - "Ja ar skaņu viss ir skaidrs...".

Tas nozīmē, ka ar attēlu apstrādi nav skaidrs. Tieši tas pats princips - glabāt attēlu kā masīva vērtības.

Code:
Es rakstīju - "Vai šādā veidā var iegūt tīru *.mp3 skaņu no izveidotā exe faila..."

Var ierakstīt ar skaņas rekorederi spēlējot spēli to mūziku un var uzlaužot atrast vajadzīgos apgabalus atmiņā un paņemt to binārajā veidā.

Code:
Storm rakstīja - "Palaizot speeli, ielaadee visus failus - viss aizies uz ram tiesi vienu reizi, whats the problem."


Problēma ir tā, ka tas nav interesanti, ja spēlētājs redz tavus failus jau iepriekš. Cik no spēlētājiem lauž programmas, neskaitot developerus?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Sep 09, 2008 8:18 am    Post subject:

Ko tad tu īsti gribi?
Aizsargāt savus audio/grafikas failus, lai neviens tos neredz un nevar pamainīt?
Jeb vienkārši ērtā un vieglā veidā tos pielikt exe falam?

Ja pirmas - tad aizmirsti. To nevar. Ja tavu audio var dzirdēt vai tavu bildi var redzēt uz ekrāna, tad to var arī pieseivot failā un mainīt pēc patikas. Neatceries savo veco labo spider failu aizsardzības topiku?

Ja otrais - tad ņem tos resursu failus. Tie automātiski integrējas studijas procesā, tāpēc atliks tikai vienā rc teksta failiņā sarakstīt vajadzīgos resursus un uz F7 nospiešanu viss notiksies.
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Tue Sep 09, 2008 8:49 am    Post subject:

Aizsardzība ir tikai sekundārais jautājums. Par to es nešaubos, ka var uzlauzt. Tas nav obligāts nosacījums, tikai painteresējos par šādu iespēju.

Primārais bija šāds - vai ir iespējams attēlu pārvērst skaitļu masīvā un tad tos nolasīt ar OpenGL vai SDL iespējām kā es to darīju ar skaņu?

Tas - kāpēc un vai vajag - tas, lai paliek pie manis.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Tue Sep 09, 2008 9:15 am    Post subject:

Ja vien SDL vai OGL kaa input streamu texstuurai pienjem kaut ko liidziigu D3DXCreateTextureFromFileInMemory Vai kaut vai ja tu maaki nokonverteet parastus RGB/RGBA datus uz savu bildi ar OGL vai SDL paliidziibu - kaadas probleemas. Uzraksti nelielu utiliiti, kas paarkonvertee bildi kaut kaadaa tavaa formatingaa lai vari ievietot kaa masiiva deklaraaciju un tad tikai izsauc savu f-ju kas to tekstuuru ielaadee.
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group