60

D'ailleurs SCPCD, tu as mis quoi comme DAC sur ta Jag FPGA ? Le son de Super Burnout passe correctement dessus ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

61

Mais effectivement je serais curieux de voir les signaux entrant du DAC venant de la Jaguar pendant un transfert (BCK, WS, DATA)
avatar

62

Je comprends que WSEN permet d'activer WS sur 16 cycles (donc 1 cycle par bit pour le DAC) mais dans ce cas je ne comprends pas comment il peut être compatible avec le TDA qui requière un format spécifique...
avatar

63

Verdict pour Super Burnout : BCLK = 664 kHz, WS = 20.77 kHz (= 664 Khz / 32), aussi bien dans le menu que pendant la course. Ça correspond à SCLK = 19.
Et les deux signaux ont bien un rapport cyclique de 50%.
ksFZnkP.jpg xBM5n4f.png

Comme quoi, il ne faut jamais trop se fier aux émulateurs smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

64

Pourtant je peux t'assurer que Super Burnout n'utilise pas l'interruption i2s mais JPIT1 pour la fréquence échantillon, j'ai regardé le code.
Et il n'utilise pas du tout l'interruption i2s

Ce serait étonnant que l'émulateur se plante sur l'affichage de la valeur de SLCK dans Super Burnout et Atari Kart qui tout 2 utilisent JPIT pour la freq échantillon, et ne se plante pas dans les autres jeux qui utilisent i2s. Et ce serait aussi étonnant qu'il se plante sur les valeurs différentes de JPIT1 dans super Burnout en course et dans le menu.
avatar

65

Et ça n'explique pas comment le TDA peut interpréter correctement 16bit sur 16 cycles alors qu'il est censé fonctionner sur 24 cycles

C'est dans la documentation, partout sur les forum qui parle du TDA, de convertisseur i2s vers EIJA ou l'inverse, etc.
Le TDA utilise le protocole EIJA (ou compatible) donc chaque mot de 18bit (16 pour le TDA) est reçu sur 24 cycles dont les 7 premiers (9 sur le TDA) représente uniquement le MSB.
avatar

66

Oh je crois que j'ai compris.

Quand j'ai fait l'essai, j'ai démarré avec la ROM Jaguar "normale", qui joue le jingle au démarrage (et donc initialise SCLK).
Mais si je démarre le jeu avec la ROM BJL, qui n'initialise pas la partie audio, j'ai BCLK = 13.29 MHz et WS = 415.4 kHz. Qui sont les valeurs normales pour SCLK = 0.

Donc effectivement, Super Burnout ne doit jamais écrire dans SCLK, qui conserve donc la valeur qu'il avait. Par chance ça "marche" quand même... mais ça veut dire que dans la majorité des cas, on ne profite pas de la qualité améliorée dans le menu, vu que l'I²S rééchantillonne le tout à 20,77 kHz. C'est tordu et vraiment dommage :/ (mais ça doit pouvoir se patcher pour corriger)

En tout cas, s'ils avaient utilisé l'interruption I²S, ça ne serait pas arrivé tongue

DEATH (./65) :
Et ça n'explique pas comment le TDA peut interpréter correctement 16bit sur 16 cycles alors qu'il est censé fonctionner sur 24 cycles

C'est dans la documentation, partout sur les forum qui parle du TDA, de convertisseur i2s vers EIJA ou l'inverse, etc.
Le TDA utilise le protocole EIJA (ou compatible) donc chaque mot de 18bit (16 pour le TDA) est reçu sur 24 cycles dont les 7 premiers (9 sur le TDA) représente uniquement le MSB.
Non, c'est toi qui interprètes mal la doc. Ça supporte des mots de plus de 16 bits, mais rien n'oblige à l'utiliser.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

67

DEATH (./54) :
Mouais, ok... Doit quand même y avoir une subtilité parce que la preuve est là, le son de Super Burnout est impeccable.
Oui ça marche, mais c'est pas recommandé.

êtes vous sur que les registres L_DAC et R_DAC ne sont pas bufferisés par exemple ?
Y a que le latch et rien d'autre.

Le Schéma que tu as mis c'est celui coté Jaguar ou TDA je ne comprends pas trop ?
Coté Jag vu que c'est elle qui sérialise smile

je sais que les chipset Jaguar tel qu'il sont c'est du bricolage, mais il serait étonnant qu'il n'y ai pas un mécanisme de protection pour cette partie
Justement, sur jag c'est brut de fonderie et minimaliste. wink

DEATH (./57) :
De ce que j'ai pu trouver, le TDA1545A emploi le protocole EIAJ (un vieux truc japonais, même pas du vrai i2s...) ou du moins une version compatible plus exactement
C'est bien de l'I2S qui est utilisé par le TDA1545A et en 16-bit par canal. (WS change 1bit avant la data, ce qui n'est pas le cas du EIAJ)
C'est juste que au delà d'une certaine fréquence, les DAC I2S acceptent le signed extended pour compenser le fait qu'ils ne peuvent pas gérer un WS supérieur à certaines fréquences (c'est mieux documenté dans d'autres doc de composant similaire)

Sur la jag il n'y a évidement pas de signed extended ajouté selon la fréquence sélectionné par SCLK : on serait plutôt comme un "overcloking" de l'I2S si on dépasse la spec du DAC.

Zerosquare (./60) :
D'ailleurs SCPCD, tu as mis quoi comme DAC sur ta Jag FPGA ? Le son de Super Burnout passe correctement dessus ?
C'est un WM8727GED, mais le circuit audio de la jagFPGA n'est pas du tout implémenté pareil.

J'avais marqué 100% pour le support de SuperBurnout sur mon site, mais quand j'ai testé auj j'ai pas de son; pourtant de mémoire ça marchait.
Le truc c'est qu'il y a eu beaucoup de modifications entre les 2 versions, et que ça date déjà....



DEATH (./61) :
Mais effectivement je serais curieux de voir les signaux entrant du DAC venant de la Jaguar pendant un transfert (BCK, WS, DATA)
SBO Menu :
tromb Fichier joint : k9qF
SBO In game :
tromb Fichier joint : 76j0
SBO Menu sous BJL :
tromb Fichier joint : f0Ge

Aucune différence de configuration audio et on retrouve bien les mesures de Zero.
avatar

68

D'ailleurs je viens de vérifier : il est bien écrit dans la doc du DAC que "The TDA1545A accepts input serial data formats of 16-bit word length.".
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

69

Zerosquare (./66) :

Non, c'est toi qui interprètes mal la doc. Ça supporte des mots de plus de 16 bits, mais rien n'oblige à l'utiliser.

Où est ce indiqué dans la documentation ? Je n'ai rien vu de tel.

Par contre la figure 6 est très clair sur le format qui doit être envoyé -> 9 cycles pour le MSB, puis 1 cycle par bit ensuite. Cela permet en plus d'expliquer pourquoi WS est au max à 384Khz puisque 18,4Mbit/48 ça fait 384Khz

Et partout il est indiqué que le 1545 utilise le format EIJA
avatar

70

Zerosquare (./68) :
D'ailleurs je viens de vérifier : il est bien écrit dans la doc du DAC que "The TDA1545A accepts input serial data formats of 16-bit word length.".

ça ne veut pas dire qu'ils peuvent être envoyé sur 16 cycles, ça veut juste dire qu'il supporte uniquement des mot de 16bit alors que la norme EIJA est sur 18.
La phrase d'après il indique que le format des données est en figure 6. Oui 16 bit, mais sur 24 cycles. Ou alors la documentation est trompeuse, incorrect, ou incomplète
avatar

71

Ça accepte les formats qui ont des mots de 16 bits. Dont le plus simple est celui qu'utilise la Jaguar, où chaque bit correspond exactement à un cycle d'horloge.

DEATH (./70) :
La phrase d'après il indique que le format des données est en figure 6. Oui 16 bit, mais sur 24 cycles. Ou alors la documentation est trompeuse, incorrect, ou incomplète
Ça fait 15 ans que je fais de la conception électronique professionnellement, et une doc de composant "trompeuse, incorrecte, ou incomplète", je n'ai pas vu ça depuis... oh, au moins la semaine dernière grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

72

J'ai essayé en activant le BIOS sur l'émulateur et effectivement la valeur de SLCK n'est pas modifié après le boot du BIOS. Oh les cons... Et ce que ce soit sur Super Burnout ou Atari Kart.
Par contre j'ai la valeur 13 dans SLCK, pas 19.

Sais tu si la SKunkBoard modifie ou initialise SLCK ?
Etant donné qu'elle bypass le boot on peut supposé que SLCK n'est pas initialisé...
avatar

73

DEATH (./72) :
Par contre j'ai la valeur 13 dans SLCK, pas 19.
0x13 = 19

DEATH (./72) :
Sais tu si la SKunkBoard modifie ou initialise SLCK ?
Etant donné qu'elle bypass le boot on peut supposé que SLCK n'est pas initialisé...
J'ai pas vu de code qui touche à SCLK dans l'initialisation (mais j'ai juste fait une recherche rapide).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

74

Zerosquare (./66) :
Donc effectivement, Super Burnout ne doit jamais écrire dans SCLK, qui conserve donc la valeur qu'il avait. Par chance ça "marche" quand même... mais ça veut dire que dans la majorité des cas, on ne profite pas de la qualité améliorée dans le menu, vu que l'I²S rééchantillonne le tout à 20,77 kHz. C'est tordu et vraiment dommage :/ (mais ça doit pouvoir se patcher pour corriger)
J'ai testé, et effectivement on entend bien que c'est meilleur sous BJL.
C'est dommage :/

Edit :
Par contre effectivement SBO marche sur JagFPGA si j'execute un programme qui init SCLK avant. smile
avatar

75

Je viens de faire un patch rapide sur Super Burnout avec 2 versions qui initialisent SCLK à $13 et l'autre à 0
Effectivement il y a une différence.

Et vu la qualité sonore sur la Skunboard sans le patch, je confirme aussi que SCLK n'est pas initialisé par la SkunkBoard
avatar

76

heu, j'ai voulu faire un test pour rigoler en mettant 103 ($67) dans SCLK (ce qui donne environ 4Khz) et avoir un son caca... mais ça ne me donne pas le résultat escompté.
Le son semble moins bon mais ce n'est pas flagrant.
avatar

77

J'ai carrément mis 206 et toujours pas de différence marquante. Il y a quelque chose de pourri au royaume du son de la Jaguar
avatar

78

C'est pour ça que j'ai un Jaguar CD embarrassed
grin
avatar
MK !
Collectionneur, retrogamer.
Enfin, un peu moins maintenant.

79

Pour le patch j'ai mis un

move.w #valeur,SCLK
Mais à priori en regardant certaines sources, ils utilisent toujours un long mot sur 32bit

c'est pour ça que mon patch ne fonctionne pas ? Il faut mettre un long mot dans SCLK ?
avatar

80

OUAIS, c'était ça !

Ah c'est bien crado à 2Khz

Bon j'ai du refaire mon patch parce que je l'avais mis dans l'entête de la ROM, mais la SkunkBoard ne permet pas d'écrire à cette endroit...

Donc j'ai foutu le code un peu plus loin dans la ROM, y avait des 0 qui trainaient....
avatar

81

un certain SCPCD a écrit ceci sur AtariAge :
No way the jaguar can reach the PSX level in 2D or 2.5D or 3D or Sound or what so ever.

Du coup la Jaguar est vraiment si nulle que ça au niveau sonore vis à vis de la PSX ?
Atari Jaguar :
http://perso.orange.fr/jaguar-64bit/

! Jagware !

82

quand tu vois les specs sonores de la psx , effectivement il y a un gouffre avec la jaguar
sans parler des dmas de la psx, et de la bande passante du bus mémoire



psx : Bus bandwidth 132 MB/s

j'avais regardé les docs de dev de la psx et la prog du spu ne semble pas très habituelle, avec la psx on approche de systèmes fermés qu'on programme avec des librairies propriétaires livrées par le fabricant.
avatar

83

La grosse différence, c'est que le SPU de la PS1 a 512 Ko de mémoire dédiée, contre 8 Ko pour le DSP sur Jaguar. C'est 64 fois plus, et ça change absolument tout.

En puissance de calcul pure, je suis pas persuadé du tout que le SPU soit meilleur que le DSP. Il se peut même que ce dernier puisse faire des choses que le SPU ne permet pas (mais je m'avancerais pas trop, je connais pas assez le hardware de la PS1).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

84

Zerosquare (./83) :
La grosse différence, c'est que le SPU de la PS1 a 512 Ko de mémoire dédiée, contre 8 Ko pour le DSP sur Jaguar. C'est 64 fois plus, et ça change absolument tout.

En puissance de calcul pure, je suis pas persuadé du tout que le SPU soit meilleur que le DSP. Il se peut même que ce dernier puisse faire des choses que le SPU ne permet pas (mais je m'avancerais pas trop, je connais pas assez le hardware de la PS1).

je n'ai pas vu assez de doc sur le sujet, mais j'avais cru comprendre que le SPU était plutôt un coprocesseur, non programmable donc. Une sorte de S-DSP comme sur la SNES. Il contient par contre comme sur la SNES justement, tout un tas de fonctions précablés, 24voix ADPCM avec décompression intégré et tout un tas d'autre joyeuseté j'imagine (simple spéculation)
avatar

85

C'est ce qu'il me semblait aussi, et ça a l'air d'être ça :
https://problemkaputt.de/psx-spx.htm#soundprocessingunitspu

Donc pas possible de faire d'autres types de synthèse sonore, ou même simplement de jouer du son qui n'est pas compressé en ADPCM.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo