Cambio xml dal Mame 0.189

Il database che raccoglie tutte le informazioni sui giochi, video, screenshot e tanto altro ancora

Moderatore: Moderatore ADB

Avatar utente
motoschifo
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 2412
Iscritto il: 12/07/2013, 19:29
Medaglie: 2
Reputation: 42
Città: Parma
Località: Parma
:
Gold Medal Donatore
Contatta:

Cambio xml dal Mame 0.189

Messaggio da motoschifo » 16/09/2017, 15:36

Oggi ho avuto tempo di approfondire meglio le modifiche all'xml.
Dalla versione 0.189 sono state introdotte queste novità:
- aggiunti attributi dipswitch->diplocation
- aggiunti attributi configuration->conflocation
- aggiunta attributi feature

Tradotto in xml:

Codice: Seleziona tutto

 <!ELEMENT dipswitch (diplocation*, dipvalue*)>
        <!ELEMENT diplocation EMPTY>
                <!ATTLIST diplocation name CDATA #REQUIRED>
                <!ATTLIST diplocation number CDATA #REQUIRED>
                <!ATTLIST diplocation inverted (yes|no) "no">
<!ELEMENT configuration (conflocation*, confsetting*)>
        <!ELEMENT conflocation EMPTY>
                <!ATTLIST conflocation name CDATA #REQUIRED>
                <!ATTLIST conflocation number CDATA #REQUIRED>
                <!ATTLIST conflocation inverted (yes|no) "no">
<!ELEMENT driver EMPTY>
        <!ATTLIST driver status (good|imperfect|preliminary) #REQUIRED>
        <!ATTLIST driver emulation (good|imperfect|preliminary) #REQUIRED>
        <!ATTLIST driver color (good|imperfect|preliminary) #REQUIRED>
        <!ATTLIST driver sound (good|imperfect|preliminary) #REQUIRED>
        <!ATTLIST driver graphic (good|imperfect|preliminary) #REQUIRED>
        <!ATTLIST driver cocktail (good|imperfect|preliminary) #IMPLIED>
        <!ATTLIST driver protection (good|imperfect|preliminary) #IMPLIED>
        <!ATTLIST driver savestate (supported|unsupported) #REQUIRED>
<!ELEMENT feature EMPTY>
        <!ATTLIST feature type (protection|palette|graphics|sound|controls|keyboard|mouse|microphone|camera|disk|printer|lan|wan|timing) #REQUIRED>
        <!ATTLIST feature status (unemulated|imperfect) #IMPLIED>
        <!ATTLIST feature overall (unemulated|imperfect) #IMPLIED>

Fino a qui tutto bene. Ignoro al momento i primi due e mi concentro sull'ultimo perchè ha ripercussioni su parecchie cose.
Il problema è che i valori feature andranno a sostituire quello che oggi è controllato dai driver (color, sound, graphic, protection).
Quindi tra una o due versioni, se non farò cambiamenti al sito, non si potrà sapere quale gioco funziona e quale no.

Se volete approfondire qui trovate il link da cui sono partito: http://www.mameworld.info/ubbthreads/sh ... 1501125859


Dato che le nuove informazioni estendono quelle vecchie, utilizzerò internamente il nuovo sistema ed andrò ad aggiornare i vecchi dati in tabella.
Ovvero, lo status passerà a:

Codice: Seleziona tutto

protection
palette
graphics
sound
controls
keyboard
mouse
microphone
camera
disk
printer
lan
wan
timing
Oggi è così:

driver_status.png

Questo è lo schema che seguirò:

Codice: Seleziona tutto

driver/color      --> feature/type=palette
driver/sound      --> feature/type=sound
driver/graphic    --> feature/type=graphics
driver/protection --> feature/type=protection
Dato che in giro tutti i valori sono ormai standard su 3 voci (good, imperfect, preliminary), lascierò questi valori dove li uso per export verso altri sistemi, e cambierò solo la ricerca e il dettaglio a video del singolo gioco.
I dati delle ricerche salvate continueranno ad essere gestite e saranno cambiati "al volo" sui nuovi campi e con le nuove logiche. In caso contrario ogni link utilizzato oggi per fare questo tipo di ricerca verrebbe invalidato e sarebbe un peccato... soprattutto perchè non è una modifica (secondo me) utile ma introduce solo incompatibilità con il passato.
Avrebbero tranquillamente potuto mantenere i 4 campi come replica dei nuovi, specialmente visto il costo (irrisorio) di farlo a monte durante la generazione dell'xml.

Questa è la corrispondenza tra i valori:

Codice: Seleziona tutto

driver good = feature status vuoto
driver imperfect = feature status "imperfect"
driver preliminary = feature status "unemulated"
Evito di salvarmi il dato overall perchè nelle ricerche non credo abbia senso avere la lista dei giochi che hanno il mouse non emulato, ha più senso sapere quali hanno input imperfetti (che presuppone quindi status imperfect con overall unemulated/imperfect).

Vedrò anche se portare in ricerca tutti i nuovi valori, ma non so se ha senso farlo visto che comunque prima dovrò cambiare il database aggiungendo ben 11 campi (palette, controls, keyboard, mouse, microphone, camera, disk, printer, lan, wan, timing). Anche qui evito i valori "overall" altrimenti dovrei raddoppiare i campi.

Oggi appare così:

driver_status_search.png
Dai valori selezionabili sparirà Test e controllerò se ha ancora senso mantenere Sconosciuto.
Vista la delicatezza della modifica, probabilmente la pubblicherò dopo l'uscita del primo Mame senza i tag driver.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase


Avatar utente
motoschifo
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 2412
Iscritto il: 12/07/2013, 19:29
Medaglie: 2
Reputation: 42
Città: Parma
Località: Parma
:
Gold Medal Donatore
Contatta:

Re: Cambio xml dal Mame 0.189

Messaggio da motoschifo » 28/10/2017, 13:12

Prime "vittime" di questi cambiamenti.
Ho corretto oggi alcune anomalie sul sito dovute proprio a questa particolare condizione, ovvero viene riportato solo ciò che non funziona e perchè.
In questa visione tutto di default va (stato "good").

Ed ecco un esempio concreto: cdc721

0.184 - 0.190:

Codice: Seleziona tutto

<driver status="preliminary" emulation="preliminary" color="good" sound="good" graphic="good" savestate="unsupported"/>
0.191:

Codice: Seleziona tutto

<driver status="preliminary" emulation="preliminary" savestate="unsupported"/>
Prima la sezione "protection" era considerata "unknown", ora viene invece impostata a "good" perchè non è indicato diversamente (il nodo "feature" manca del tutto, quindi significa che non ci sono problemi).
In realtà tale voce è semplicemente inutile o non necessaria, non "good".

Questo non sposta molto le ricerche ma fa capire come l'xml stia dando informazioni non corrette.

Lo scrivo per tenerne traccia, poi ovviamente dovrò allineare i filtri avanzati che in questo modo cambiano un po' di significato, ed aggiungere lo specchietto di tutte le feature supportate sul sito.
Cercherò di mantenere la compatibilità con le vecchie ricerche, ovvero per me è come se ci fossero ancora questi campi (e di fatto restano sul db), solo che vengono popolati in automatico dai nuovi dati seguendo le considerazioni riportate in alto.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase


Rispondi