|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
www.hwupgrade.it
Iscritto dal: Jul 2001
Messaggi: 75173
|
Link alla notizia: https://gaming.hwupgrade.it/news/vid...ato_90168.html
Esistono dei veri e propri "archeologi" digitali che studiano le tecniche di sviluppo dei vecchi giochi per le console Atari mirate a eludere gli stringenti limiti degli hardware di allora. Uno in particolare ha richiesto degli studi molto approfonditi... Click sul link per visualizzare la notizia. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2009
Città: Trani (BA)
Messaggi: 523
|
4kbytes si e no di codice da esaminare. Ammazza! Avrebbero messo in ginocchio anche denuvo questi qui.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1639
|
"Lo ha creato mentre era ubriaco e il suo cervello in panne. Quando è tornato sobrio non si ricordava più come aveva fatto" ha detto Sidley alla BBC."
Vi sta pigliando per i fondelli, #sapevatelo (e fa bene!) |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Feb 2010
Messaggi: 2304
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2006
Città: Modena
Messaggi: 1189
|
Della serie, ottimizzazione questa sconosciuta
Sono così tanti anni che nessuno fa ottimizzazione nello sviluppo che si è perfino persa conoscenza del concetto (per non parlare delle tecniche) e occorre studiarsi il software di 30 anni fa.
Il triste è che lo vedo anche con il software applicativo, non c'è la minima attenzione alle prestazioni. Esempio lampante: due select consecutive su due tabelle diverse invece di utilizzare una join per avere i due valori con una sola select. Imbarazzante. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2006
Città: Valdagno
Messaggi: 5104
|
È quello che sostengo da anni,i vecchi programmatori erano più bravi e creativi di quelli moderni,dovevano scervellarsi per far funzionare bene un programma con pochi kb.
Con i tempi moderni e le potenze messe a disposizione,il programma risulta veloce anche se programmato con i piedi. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Dec 2001
Città: Planet Saturn (♄)
Messaggi: 17466
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2007
Città: Sicilia
Messaggi: 6190
|
Quote:
__________________
Non abbiamo ereditato il mondo dai nostri padri L'abbiamo preso in prestito dai nostri figli |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 2007
Città: Sicilia
Messaggi: 6190
|
Quote:
__________________
Non abbiamo ereditato il mondo dai nostri padri L'abbiamo preso in prestito dai nostri figli |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 2007
Città: Sicilia
Messaggi: 6190
|
Per prima cosa, i sorgenti non sono disponibili, hanno analizzato direttamente il binario. In seconda battuta, i giochi si programmavano in assembler, quindi non e' che era molto diverso dal codice binario, a parte i commenti che potevano chiarire un po' di cose, ovviamente solamente se c'erano.
__________________
Non abbiamo ereditato il mondo dai nostri padri L'abbiamo preso in prestito dai nostri figli |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Aug 2003
Città: Casa mia
Messaggi: 4983
|
Se stai lavorando a un programma in C e vai a fare il debug di una parte direttamente in assembler ci sta, può capitare.
Interpretare da zero un programma non scritto da te e dissassemblato dal linguaggio macchina secondo me può essere ben più problematico. |
![]() |
![]() |
![]() |
#12 |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21662
|
non è binario ma spesso cè una correlazione 1-1 tra codice assembler e codice binario tanto che si può passare da uno all'altro con un semplice libro dei vari opcode, ovviamente su cpu relativamente semplici, l'ho fatto mille volte su z80 e 8086 e se l'algoritmo non è più che semplice ti assicuro che non è facile capire cosa fa partedo solo dall'assembler, soprattutto se il codice viene ottimizzato da un buon compilatore tipo iar
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1639
|
Quote:
Come al solito, torniamo sempre al solito nodo: quando si era OBBLIGATI perchè o si faceva così o non si riusciva, era normale avere una certa logica di lavoro, oggi, avendo maggior libertà, non si attribuisce la giusta importanza a certe cose, vuoi per pigrizia, vuoi per comodità, vuoi perchè è tutto più veloce (nel senso che ciò che esce oggi, domani è già vecchio), vuoi perchè è tutto focalizzato al guadagno, ai soldi e c'è sempre qualcuno alla dirigenza che non ne capisce una mazza di ciò che sta dirigendo ed attribuisce ordini "ad minchiam". Se io sono nostalgico? Assolutamente sì! E ritengo si lavorasse meglio un tempo (in tutti i settori), fermo restando che la tecnologia raggiunta oggi è un qualcosa di meraviglioso. |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Sep 2009
Città: Roma
Messaggi: 385
|
Quote:
L'assembler non e' un linguaggio e' un compilatore. |
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 3479
|
Quote:
__________________
www.biffuz.it | Thou shall not follow the NULL pointer, for chaos and madness await thee at its end. Powered by: M1 @ Sonoma | 7600X @ W11 | C2Q @ XP | P!!! @ W98+BeOS | 286 @ W3.1 | C64 | iP16 | iPad8 | rPi4 | and more... |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Dec 2010
Messaggi: 608
|
Quote:
Mi stupisce di più che "ricercatori" blasonati si siano trovati in difficoltà, e questo la dice lunga. Nel trentennio dal '70 al '90 i pionieri della programmazione moderna hanno dovuto fare i conti con risorse macchina risicatissime rispetto le attuali (gettando le basi dei principali linguaggi di programmazione attuali). Oggi hanno vita comoda. Peraltro parlando di giochi, ma non solo, gli engine grafici tutt'ora in voga si basano e sviluppano su algoritmi che hanno avuto origine 20 o 30 anni fa... il chè è tutto un dire. |
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Dec 2010
Messaggi: 608
|
Quote:
Non hai colto il ragionamento. Utilizzare i tools più avanzati è il mezzo, non il fine. Per progettare un palazzo utilizzi il CAD che è solo lo strumento, l'idea e l'ingegno sono esercizio dell'intelletto umano e sono loro a fare la differenza e portare il risultato all'eccellenza. Quello che succede aggigiorno è che spesso si trascura la "raffinazione" che solo l'ingegno umano, almeno per ora, può elaborare. la macchina è solo il mezzo... potentissimo, talmente potente che spinge l'uomo alla "pigrizia" se così vogliamo dire, accettando un risultato che troppo spesso non viene portato all'eccellenza. Poi si possono addurre un sacco di giustificazioni (rispetto di tempi, costi, specifiche, ecc, ecc...). In tal senso ci sono un sacco di esempi sotto gli occhi di tutti... |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Aug 2005
Città: Firenze
Messaggi: 1404
|
La questione non è che non si è capito come funziona il programma.
La questione è che il programma usa un metodo basato su una tabella che non è chiaro come sia stata pensata. Quando ero giovane ho fatto dei programmi assembler su Sinclair ZX80 che ero riuscito a riparare ed espandere da solo vedendo gli schemi elettrici. Poi è arrivato lo Spectrum con i suoi colori ed un basic semplice. Per capire le potenzialità creai una copia del poker che andava di moda nei bar a quei tempi. Il problema era che le immagini delle carte occupavano troppo, così creai un metodo per disegnarle con i mattoncini della grafica del testo e allo stesso tempo creai un sistema di verifica del punteggio delle carte che avevi sullo schermo. Il sistema capiva qual'era la tua mano con solo 6 righe di codice. A distanza di quasi 40 anni ho ritrovato il codice (lo avevo scritto a mano su un blocco) e pur leggendolo, non riesco a capire completamente l'intuizione di allora che mi permise di creare quelle righe che con soli 4 confronti erano in grado di dirti cosa avevi in mano (dalla semplice coppia alla scala reale).
__________________
Utilizzo: Samsung: Galaxy Book Pro 360 i7-1165G7-16GB-SSD 512GB -|- Monitor 49" 32:9 C49J890 Galaxy Note 10+ SM-N975F H3G -|- Galaxy Note 10.1 2014 Ed SM-P605 -|- Galaxy S20 FE SM-G780F H3G |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 5996
|
Quote:
In questo caso è sufficiente analizzare come viene composto l'indice per selezionare di volta in volta un elemento della tabella. In pratica, invece di fare una serie di confronti con successivi salti condizionali per decidere lo stato della prossima cella si compone un indice e si referenzia un valore precalcolato che corrisponde alla scelta finale che si raggiungerebbe facendo i confronti tra i valori che compongono l'indice. Quello che probabilmente confonde i tipi che hanno analizzato il codice è che chi ha codificato la lookup table, aveva individuato i casi in cui certamente doveva esserci vuoto oppure muro, ma aveva poi lasciato "a scelta pseudo casuale" i casi in cui poteva andar bene sia vuoto che muro. |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Dec 2007
Città: Palestro
Messaggi: 1957
|
Quote:
"Quando ho scritto quel codice, solo io e Dio sapevamo come funzionasse. Oggi lo sa solo Dio" ![]()
__________________
My PC: Case: BeQuiet! Pure Base 500 + BeQuiet! Pure Wings 2 140mm & Noctua NF-A14 PWM front intake + BeQuiet! Pure Wings 2 140mm rear exhaust - CPU: AMD Ryzen7 5800X3D (DVID: -0.1V) - CPU Cooler: Noctua NH-D15 - MB: MSI X570 Gaming Edge WiFi - PSU: Corsair RM850 full modular - GPU: Gigabyte 2070 Super Gaming OC 3X (fallata....! ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:59.