PDA

View Full Version : Come funziona la retrocompatibilità Xbox 360 su Xbox One


Redazione di Hardware Upg
22-06-2015, 14:41
Link alla notizia: http://www.gamemag.it/news/come-funziona-la-retrocompatibilita-xbox-360-su-xbox-one_57767.html

Microsoft rivela qualche dettaglio in più sulla funzionalità annunciata durante la conferenza pre-E3 dedicata al mondo Xbox.

Click sul link per visualizzare la notizia.

Marok
22-06-2015, 14:48
Non ho capito, ma è retrocompatibile o no? Perchè se si deve aspettare che il publisher converta il gioco, alla fine il disco serve solo da check e poi parte il download del contenuto convertito...

Timewolf
22-06-2015, 14:50
ma Microsoft dovrà raggiungere prima degli accordi con i singoli publisher perché dei giochi originariamente per un formato differente diventano in questo modo automaticamente e gratuitamente disponibili su un altro sistema.

non avevo dubbi che il "grosso" del problema di avere console retrocompatibili sia questo.

Ormai con le varie Virtual Console/Live arcade/Psn le varie case hanno a costo praticamente 0 guadagni enormi ripubblicando vecchi titoli per le nuove console.

~efrem~
22-06-2015, 15:03
Emulazione...

Riccardo82
22-06-2015, 15:16
muhauhauhuhauhauhauhauahuahauhauhauhauhauhauhauhauha
la bufala del secolo... emulazione?????

ma dai ma su e dire che io sono pro microsoft..

Riccardo82
22-06-2015, 15:18
ma fammi capire hanno fatto il portind dalla sdk vecchia alla nuova del kernel e qui ok. poi adesso devi deferenziare le dll della vecchia skd metteere quelle nuovecambiare i 36 mila metodi che cambiano nella loro firma o addirittura nel nome incrociare le dita e boom hai fatto il porting..

vai con l'emulazioone..

devil_mcry
22-06-2015, 17:30
Non ho capito, ma è retrocompatibile o no? Perchè se si deve aspettare che il publisher converta il gioco, alla fine il disco serve solo da check e poi parte il download del contenuto convertito...

Non è retrocompatibile di per se, ma ricompilando tutto per l'hw nuovo i giochi semplicemente gireranno su una versione più aggiornata della vecchia dal punto di vista hw, però sempre vedendo la console come una xbox 360, hanno trovato un sistema che prevede però un trade off da tutte le parti, probabilmente ms ha preparato un sdk apposito per ricompilare facilmente i vecchi giochi per la nuova.

Credo sia come compilare il kernel di linux per arm o x86, le app scritte in ANSI C basta ricompilarle con il compilatore giusto per farle andare su entrambe le piattaforme

Emulazione...


Ma dove hai letto emulazione?

Quello che dall'articolo si può capire è che hanno ricompilato il sistema della vecchia console per l'hw della nuova e anche i giochi sono ricompilati.

Se fosse stata emulata la vecchia console non si sarebbe dovuto ricompilare i giochi.

Allo stesso modo con un sistema operativo tanto diverso ricompilare solo i giochi non era sufficiente per mantenere la compatibilità con le vecchie console.

hitman1972
22-06-2015, 18:30
per me non basta dare in pasto i sorgenti di un gioxo 360 a qualche sdk per avere in pochi minuti un gioco bello e prono su xbox one, se non dovranno essere riscritti da capo, poco ci manca (su pc anche convertire un semplice sorgente basic fra 2 compilatori basic differenti porta rogne enormi che ti fa scegliere di riscrivere il tutto da capo). cmq sempre per me è una mezza zozzeria avere 2 os etc...

devil_mcry
22-06-2015, 18:36
per me non basta dare in pasto i sorgenti di un gioxo 360 a qualche sdk per avere in pochi minuti un gioco bello e prono su xbox one, se non dovranno essere riscritti da capo, poco ci manca (su pc anche convertire un semplice sorgente basic fra 2 compilatori basic differenti porta rogne enormi che ti fa scegliere di riscrivere il tutto da capo). cmq sempre per me è una mezza zozzeria avere 2 os etc...

Dipende da come è fatto l'sdk ma se MS ha sviluppato un update all'sdk della xbox 360 per rendere il codice compatibile con il nuovo hardware è solo questione di target in fase di compilazione. I giochi xbox 360 sono sviluppati in c# e c quindi la cosa è fattibilissima

da wiki

"In prima istanza il codice sorgente viene convertito dal framework in un codice intermedio detto CIL e solo all'esecuzione del programma il CLR specifico per il sistema operativo utilizzato converte il CIL in codice macchina, man mano che viene eseguito. Una seconda possibilità è la cosiddetta compilazione Ngen, che permette di convertire tutto il codice CIL in codice macchina in una volta sola. Ciò ha il vantaggio di consentire l'implementazione di ambienti di sviluppo che utilizzino C# in qualunque sistema operativo, una volta implementato il CLR specifico."

questo per il c#

per l'ansi C è standard, basta ricompilare se non si usano librerie particolari va ovunque

hitman1972
22-06-2015, 19:36
si ma qui non stiamo parlando di un programma che calcola i numeri primi o di un gestionale, vanne riscritte tutte le librerie grafice, audio, di input/output, ripeto, per me non è così semplice, altrimenti in un solo giorno avrebbero riconvertito l'intero parco giochi xbox 360 :-)

inited
22-06-2015, 19:47
Direi che il ritardo è stato dovuto perché hanno usato qualcosa che appartiene al codebase di Windows 10. Mica è un caso se ci sarà un refresh della Xbox Experience a breve, e se questa modalità viene proposta a breve distanza dall'uscita del nuovo OS per PC. Non è stato certo fatto mistero di come Win10 debba diventare il trait d'union fra tutti i dispositivi dell'ecosistema MS. Dunque penso a un mix tra virtualizzazione e riscrittura nativa fra i vari elementi dell'impianto di gioco 360.

devil_mcry
22-06-2015, 19:51
si ma qui non stiamo parlando di un programma che calcola i numeri primi o di un gestionale, vanne riscritte tutte le librerie grafice, audio, di input/output, ripeto, per me non è così semplice, altrimenti in un solo giorno avrebbero riconvertito l'intero parco giochi xbox 360 :-)

Quelle sono tutte nell'SDK che ti da Microsoft. Te al massimo ci scrivi le tue librerie ma le scrivi basandoti sulle API offerte dall'SDK. Se l'SDK è convertito e aggiornato tutte le librerie saranno compatibili con entrambe le architetture.

E come quando compili del codice C++ con l'NDK di Android, lo puoi far andare su mips, arm, x86 etc ma mica cambi il tuo codice tutte le volte (tranne qualche blocco di aggiustamento eventuale).

E' così anche per altre soluzioni, vedi QT che è sempre C++ ed è cross platform e funziona anche abbastanza bene

Sheltered
22-06-2015, 20:05
Dipende da come è fatto l'sdk ma se MS ha sviluppato un update all'sdk della xbox 360 per rendere il codice compatibile con il nuovo hardware è solo questione di target in fase di compilazione. I giochi xbox 360 sono sviluppati in c# e c quindi la cosa è fattibilissima

Per favore, se non conoscete le cose di cui parlate, evitate di dare informazioni sbagliate. I giochi 360 non sono scritti in C#. L'SDK è in C/C++, e i giochi sono ovviamente scritti in C/C++. C# è un linguaggio fantastico, ma non è abbastanza performante per giochi AAA.

Quello con cui tu fai confusione è XNA, che è un layer C# creato apposta per dare agli sviluppatori indipendenti la possibilità di creare giochi multipiattaforma (lo stesso codice XNA può girare su PC, X360 e WP se creato in modalità Reach) senza avere accesso diretto all'hardware/SDK (che, ti ricordo, necessita tra l'altro di una console apposta per il debug), che costa centinaia di migliaia di dollari per ogni singolo gioco, viene dato solo a chi può dimostrare di aver già sviluppato giochi tripla A, e che implica firmare un NDA oltre a molte altre cose.

devil_mcry
22-06-2015, 20:10
Per favore, se non conoscete le cose di cui parlate, evitate di dare informazioni sbagliate. I giochi 360 non sono scritti in C#. L'SDK è in C/C++, e i giochi sono ovviamente scritti in C/C++. C# è un linguaggio fantastico, ma non è abbastanza performante per giochi AAA.

Quello con cui tu fai confusione è XNA, che è un layer C# creato apposta per dare agli sviluppatori indipendenti la possibilità di creare giochi multipiattaforma (lo stesso codice XNA può girare su PC, X360 e WP se creato in modalità Reach) senza avere accesso diretto all'hardware/SDK (che, ti ricordo, necessita tra l'altro di una console apposta per il debug), che costa centinaia di migliaia di dollari per ogni singolo gioco, viene dato solo a chi può dimostrare di aver già sviluppato giochi tripla A, e che implica firmare un NDA oltre a molte altre cose.

Nella documentazione che ho guardato prima ho trovato che si possono scrivere sia in C# o C++, comunque io non ho guardato, ma questo comunque non cambia che con l'SDK aggiornato possono essere poi buildati anche per hw differenti come già accade per altre piattaforme

Sheltered
22-06-2015, 20:10
Quelle sono tutte nell'SDK che ti da Microsoft. Te al massimo ci scrivi le tue librerie ma le scrivi basandoti sulle API offerte dall'SDK. Se l'SDK è convertito e aggiornato tutte le librerie saranno compatibili con entrambe le architetture.

E come quando compili del codice C++ con l'NDK di Android, lo puoi far andare su mips, arm, x86 etc ma mica cambi il tuo codice tutte le volte (tranne qualche blocco di aggiustamento eventuale).

E' così anche per altre soluzioni, vedi QT che è sempre C++ ed è cross platform e funziona anche abbastanza bene

Guarda che parti significative dei motori grafici sono scritte in assembly.

Therinai
22-06-2015, 20:16
Emulazione...

Seeeeeee! Ci vuole un i5 sticazzi per emulare una ps2, figurati se xbox one può emulare x360. Sarebbe bello, anche perché in tempo zero ci trovevamo anche l'emulatore per pc abusivo :asd:

Sheltered
22-06-2015, 20:21
Seeeeeee! Ci vuole un i5 sticazzi per emulare una ps2, figurati se xbox one può emulare x360. Sarebbe bello, anche perché in tempo zero ci trovevamo anche l'emulatore per pc abusivo :asd:

Non intendo dire che in questo caso la x360 sarà emulata, ma tieni a mente che c'è una bella differenza tra un emulatore ufficiale, creato conoscendo esattamente tutte le specifiche dell'hardware originale, e un emulatore frutto di un lavoro di reverse engineering, frutto di un progetto non a scopo di lucro.

Therinai
22-06-2015, 20:24
Non intendo dire che in questo caso la x360 sarà emulata, ma tieni a mente che c'è una bella differenza tra un emulatore ufficiale, creato conoscendo esattamente tutte le specifiche dell'hardware originale, e un emulatore frutto di un lavoro di reverse engineering, frutto di un progetto non a scopo di lucro.
Ma emulatori ufficiali tipo quali? Se anche potessero esistere tecnicamente i produttori di consoles arriverebbero a uccidere pur di non farli saltare fuori :sofico:

Sheltered
22-06-2015, 20:30
Ma emulatori ufficiali tipo quali? Se anche potessero esistere tecnicamente i produttori di consoles arriverebbero a uccidere pur di non farli saltare fuori :sofico:

Il mio non voleva essere un discorso specifico, ma un ragionamento per far capire la differenza di risultati. Se la Sony decidesse di creare un emulatore per PS2 puoi stare tranquillo che sarebbe enormemente più efficiente di qualsiasi altro emulatore non ufficiale esistente.

E comunque, in generale, gli emulatori non esistono solo nel mondo console/gaming.

Therinai
22-06-2015, 20:41
Il mio non voleva essere un discorso specifico, ma un ragionamento per far capire la differenza di risultati. Se la Sony decidesse di creare un emulatore per PS2 puoi stare tranquillo che sarebbe enormemente più efficiente di qualsiasi altro emulatore non ufficiale esistente.

E comunque, in generale, gli emulatori non esistono solo nel mondo console/gaming.

Guarda non ne sono certo al 100%, ma l'unico emulatore ufficiale di cui ho memoria sony lo aveva tirato fuori per fare andare i giochi psx su psp, e ricordo che in tempo zero era saltata fuori l'emulatore abusivo per convertirsi in totale autonomia i giochi, e altrettanto velocemente la rete si era rimpita di torrent per scaricare i giochi già convertiti. Dubito che sony o microsoft vogliano trovarsi in una situazione del genere con una consoles che ha ancora una grossa fetta di mercato e che genera ancora fantastiliardi di utile.

Sheltered
22-06-2015, 21:16
Guarda non ne sono certo al 100%, ma l'unico emulatore ufficiale di cui ho memoria sony lo aveva tirato fuori per fare andare i giochi psx su psp, e ricordo che in tempo zero era saltata fuori l'emulatore abusivo per convertirsi in totale autonomia i giochi, e altrettanto velocemente la rete si era rimpita di torrent per scaricare i giochi già convertiti. Dubito che sony o microsoft vogliano trovarsi in una situazione del genere con una consoles che ha ancora una grossa fetta di mercato e che genera ancora fantastiliardi di utile.

Non intendo dire che in questo caso la x360 sarà emulata, ma tieni a mente che c'è una bella differenza tra un emulatore ufficiale, creato conoscendo esattamente tutte le specifiche dell'hardware originale, e un emulatore frutto di un lavoro di reverse engineering, frutto di un progetto non a scopo di lucro.


Il mio non voleva essere un discorso specifico, ma un ragionamento per far capire la differenza di risultati. Se la Sony decidesse di creare un emulatore per PS2 puoi stare tranquillo che sarebbe enormemente più efficiente di qualsiasi altro emulatore non ufficiale esistente.


Rileggi le frasi che ho evidenziato. Non ho mai detto che la x360 sarà emulata (anzi, ho precisato che non lo stavo dicendo), ho solo detto che non puoi paragonare un emulatore amatoriale non ufficiale con un emulatore scritto con scopi commerciali da chi ha a disposizione le specifiche tecniche complete dell'hardware da emulare.

TL;DR: Può l'xbox one emulare la 360? Boh. Forse no. Ma le performance degli emulatori amatoriali PS2 reverse engineered non sono in alcun modo un benchmark affidabile.

Riccardo82
23-06-2015, 08:32
siete fuori di testa io uso l'sdk della xbox 360 e scrivo in c++!!

Ho scritto dei giochi del cavolo come tetris pong un semplice gico di biliardo in c# ma solo per provare XNA!!

Figurarsi se la xbox deve tradure il codice in un linguaggio intermedio che va anchesso ritradotto.

Se si vuole scrivere routine veloci bisogna scendere..
Una volta queste routine le scrivevi in asm direttamete dal c..

fano
23-06-2015, 09:15
Quindi alla fine si tratta di pubblicità ingannevole? Non è affatto retrocompatibile visto che il DVD del gioco serve solo per controllare se il gioco lo possiedi, ma poi viene riscaricata una versione ricompilata per XBox One! E chi la fa sta nuova versione del gioco? La ricompila la Microsoft anche per altri? Non credo potrebbe farlo... e perché i produttori dovrebbero farlo? Piuttosto preferiscono rivenderti una versione "remastered", no?

Riguardo agli emulatori "ufficiali" nella PS3 c'erano sia l'emulatore di PS1 che PS2 inizialmente con assistenza hardware (c'era l'intera PS dentro le prime PS3) poi via software non so se nelle ultime versioni di firmware prevedesse anche l'emulazione da DVD o solo con i giochi scaricati da rete... so che gli emulatori software facevano abbastanza schifo ed erano comunque compatibili solo con una ventina di giochi, insomma roba inutile!

mau.c
23-06-2015, 15:20
brutto segno questo, annunciare la retrocompatibilità dopo un anno dall'uscita. mossa inutile e ormai deleteria, segno evidente di debolezza commerciale. non sanno più a che aggrapparsi per questo lancio sbagliato.

la retrocompatibilità va messa al day one oppure niente. così non ha molto senso, dopo un anno ci si aspetta di giocare a titoli nuovi non a quelli vecchi

Sheltered
25-06-2015, 20:45
Seeeeeee! Ci vuole un i5 sticazzi per emulare una ps2, figurati se xbox one può emulare x360. Sarebbe bello, anche perché in tempo zero ci trovevamo anche l'emulatore per pc abusivo :asd:

Oh, e a quanto pare, Xbox One può emulare X360 (https://www.youtube.com/watch?v=lPQuDyWULNU)

Ora resta da vedere se hai ragione almeno sulla seconda parte.

Therinai
25-06-2015, 20:56
Oh, e a quanto pare, Xbox One può emulare X360 (https://www.youtube.com/watch?v=lPQuDyWULNU)

Ora resta da vedere se hai ragione almeno sulla seconda parte.

Non ti seguo. Non fa altro che dire che i giochi x360 andranno su x1 come facevano sulla console originale.

Sheltered
25-06-2015, 21:01
Non ti seguo. Non fa altro che dire che i giochi x360 andranno su x1 come facevano sulla console originale.

0:27-0:36: "We went ahead and actually built a virtual 360 on the top, entirely in software, and then we took the 360 games, ALL 360 games and put them in the emulator and then we ran them through emulation"

A me pare abbastanza chiaro, eh.

Sheltered
25-06-2015, 21:04
Oltretutto, questo è compatibile con quello che avevo compreso da quel che aveva detto Phil Spencer alla conferenza ufficiale E3, che per rendere un gioco 360 disponibile sulla One, a loro bastava cambiare un flag sul database, ma che i producer dovevano autorizzare la cosa.

Therinai
25-06-2015, 22:31
0:27-0:36: "We went ahead and actually built a virtual 360 on the top, entirely in software, and then we took the 360 games, ALL 360 games and put them in the emulator and then we ran them through emulation"

A me pare abbastanza chiaro, eh.
Sto morendo di sonno e non ho neanche voglia di riguardare il video, ma se le cose stanno così siamo a cavallo, emulatore x360 per PC incoming :asd:

Sheltered
25-06-2015, 22:38
Sto morendo di sonno e non ho neanche voglia di riguardare il video, ma se le cose stanno così siamo a cavallo, emulatore x360 per PC incoming :asd:

Se lo dici tu :asd: