60

Tout mes vœux.
As tu essayé JiFFI ou JiFFI2 pour transformer ton .abs en d'autres formats?

61

j'ai essayé jiffi 1.4, pour fabriquer un .rom et un .j64
y a t il des options à prendre en compte ?

mais peut etre que mon code ne fonctionne pas sur la console réelle, c'est 80% de DSP

y a t il de grandes différences entre virtual jaguar et la réalité ?
avatar

62

ericde45 (./61) :
j'ai essayé jiffi 1.4, pour fabriquer un .rom et un .j64
y a t il des options à prendre en compte ?
Il faut faire attention au "Load Address" and "Run Address" éventuellement.
ericde45 (./61) :
mais peut être que mon code ne fonctionne pas sur la console réelle, c'est 80% de DSP
y a t il de grandes différences entre virtual jaguar et la réalité ?
Oui, énormément, VJ est déjà plus rapide que la console.
Le seul émulateur proche de la console est l'émulateur des Russes. http://www.arts-union.ru/node/23. Émulateur 3DO mais supportant la Jaguar, son taux de compatibilité est de 95% d'après eux.

63

J'ai pas d'expérience avec la cartouche SD, mais normalement utiliser Jiffi pour convertir ton fichier en ROM avec en-tête devrait fonctionner.

Sinon tu peux aussi poster ton fichier ici pour qu'on teste chez nous et qu'on te dise si ça fonctionnne 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

avec plaisir

donc testé sous virtual jaguar
calé en $4000

tromb Fichier joint : ym1.zip

C:\jaguar>rmac -fb -s -u ym1.s
--- Sound driver code size (DSP): 3552 bytes / 8192 ---
ym1.s 451: Warning: unoptimized short branch

C:\jaguar>rln -o ym1.abs -w -rq -a 4000 x x ym1.o -m
_
_ __| |_ ___
| '__| | '_ | | | | | | |
|_| |_|_| |_|

Renamed Linker for Atari Jaguar
Copyright (c) 199x Allan K. Pratt, 2014-2021 Reboot & Friends
V1.7.0 Oct 30 2021 (Win32)

LOAD MAP

NON-RELOCATABLE SYMBOLS



TEXT-SEGMENT RELOCATABLE SYMBOLS

_TEXT_E G 00008A80

DATA-SEGMENT RELOCATABLE SYMBOLS

_DATA_E G 00008A80

BSS-SEGMENT RELOCATABLE SYMBOLS

_BSS_E G 00009280
avatar

65

J'ai regardé vite fait, je pense que le soucis viens dans le fait que tu copies le code du DSP avec des move.b
La ram du DSP/GPU n'est accessible qu'en écriture LW
avatar

66

SCPCD (./65) :
La ram du DSP/GPU n'est accessible qu'en écriture LW
Pour infos, VJ "accepte" l'écriture en byte. Ca pourrait expliquer la différence VJ / console.
L'émulateur des Russes ne lance pas le code (simple écran noir).

67

un grand merci, après un passage en .l de la copie, ça fonctionne directement sur Gamedrive en .abs
le son est excellent, c'est super agréable d'avoir du son 16 bits ( par rapport au ST ou à l'Archimedes )

pour l'émulateur russe, je l'ai croisé mais il me semble que l'installation n'est pas aussi facile que VJ.
( c'est comme compiler VJ moi même pour creuser si je peux faire quelques améliorations, il faut que je m'y penche sérieusement)

là je suis sur mes bugs sur le replay des YM7 ayant du SID

avatar

68

et d'ailleurs j'avais capté les contraintes d'accès uniquement en 32 bits à la RAM DSP mais je pensais que ça ne s'appliquait qu'au DSP lui même, pas au 68000.
avatar

69

top
Cool que ce n'était que ça smile

En fait, les blocs de ram internes du DSP/GPU n'ont qu'un signal Write par 32-bit, donc du coup ce n'est pas possible de faire de l’écriture partiel. (hormis si il y avait un ReadModifyWrite en hardware, mais ça complexifie beaucoup : donc il n'y a pas smile)
avatar

70

Ton soucis aura permis de rentrer une issue de plus dans VJ. Je l'ai rentré dans mon git de VJ-Rx, au moins ca ne sera pas perdu.

71

@Dilinger

- comptes tu vraiment améliorer VJ ? je veux dire, c'est beaucoup de boulot, tu vas te lancer la dedans ?

- j'ai installé et passé en anglais, l'emulateur russe, et j'ai trouvé une version debug. Sais tu quelles sont les possibilités de debug de phoenix ? pour l'instant je n'ai pas trouvé comme afficher le code, même si je peux a priori voir la ram du DSP
avatar

72

ericde45 (./71) :
@Dilinger

- comptes tu vraiment améliorer VJ ? je veux dire, c'est beaucoup de boulot, tu vas te lancer la dedans ?
VJ-Rx est tourné vers l'intégration d'un debugger principalement, cela peut aider d'ailleurs aussi a mieux comprendre VJ.
En terme d'amélioration, j'ai créé une branche git dédié au Bitter; j'ai commencé a travailler dessus tranquillement pas vite car i y a 2 versions interne du Blitter et je compte clarifier cela.
ericde45 (./71) :
- j'ai installé et passé en anglais, l'emulateur russe, et j'ai trouvé une version debug. Sais tu quelles sont les possibilités de debug de phoenix ? pour l'instant je n'ai pas trouvé comme afficher le code, même si je peux a priori voir la ram du DSP
Ils n'ont pas de debugger de ce que je saches, a part d'avoir des statistiques sur l'utilisation des processeurs. Je penses que tu en sais autant que moi.

73

j'ai pas forcément était très clair mais y a une version debug de phoenix
sur le lien que tu as posté : ph-win32-2.8.23.deb.zip

FXWa
avatar

74

ok, je comprends mieux et Je suis content que cette version tourne chez toi.
De mon bord, je n'ai jamais pu le faire tourner sur mon PC. Désolé de ne pouvoir aider d'avantages.

En aparté, tu as aussi libreto qui supporte la console, ils se sont (grandement) inspirer de VJ, la qualité de l'émulation est comparable a VJ d'ailleurs; j'ai été en contact avec eux fut un temps. Ils sont résolument tourner "gamer" mais au moins ils sont open source.
les russes n'ont pas ouvert leur source, c'est dommage; l'approche de leur debugger est intéressante, et l'écran que tu as partagé m'incite a revenir dessus pour le faire fonctionner.

75

Bonjour,

j'ai trouvé un nouveau bug dans virtual jaguar, plutôt tordu celui là

j'ai fini par debugger mon code pour le SID
et en testant différentes musiques j'avais un 'trou' sonore sur un morceau de mad max
j'ai passé 3H ce matin à chercher sans trouver
et testé sur phoenix et sur la Jaguar réelle, je n'ai pas le souci

j'ai ensuite changé la fréquence de mon timer I2S et le trou a disparu

je met un .equ pour ma frequence de replay I2S
puis ensuite je calcule la fréquence réelle possible, et j'utilise cette fréquence là pour tous mes calculs ensuite, et mon timer

à 24000 comme fréquence demandée pour I2S j'ai mon trou sonore sur VJ ( debug ou 2.1.2 )
et je ne l'ai plus à 25000

et à 24000, c'est ok sur phoenix et sur la JAG

ci joint 2 fichiers, un en 24000 et un en 25000

tromb Fichier joint : VJ_SID_KO.zip


et sinon ça donne ça :

avatar

76

Merci pour le retour. J'ai rajoute une issue dans le git, histoire de garder trace.
Au moins l'emulateur des russes peut aider dans tes developements.

77

franchement je préfère utiliser virtual jaguar, et par la suite le customiser suivant mes besoins ( si j'en suis capable )
j'apprécie que ce soit en open source, et d'ailleurs ce que je fais sur Jaguar sera dispo sur mon github une fois présentable
garder ses infos et ses sources sur une machine éteinte, c'est contribuer à son enterrement.
avatar

78

ericde45 (./77) :
franchement je préfère utiliser virtual jaguar, et par la suite le customiser suivant mes besoins ( si j'en suis capable )
Je penses que tu es en capable, après tout dépend de ce que tu as en tète (accuracy, debug, optimisations, UI/UX, ajouts de features, etc.).
L'exemple de ton problème audio pourrait être un bon début, l'audio est piloté par la library SDL de ce que j'ai compris. Mais bon, fais ce que tu veux, y'a de la job en masse sur VJ.
Le peu de gens qui ont aider VJ-Rx, l'ont fait pour le support Linux. Cela fut utile d'ailleurs, ca a permis de lever quelques lièvres.

79

hello

de retour ici

j'ai 2 questions à propos de l'object processor :

- l'object list a t elle une taille maximale ?

- j'ai essayé de comprendre les exemples que j'ai pu trouvé en ligne, et je m'interroge sur l'alignement à l'intérieur de la liste : j'ai compris qu'il faut faire 2 BRA au debut pour éviter de parcourir la liste pour des lignes hors zone visible donc ça donne un bra vers la suite si Y>0, un stop , un bra vers la suite si Y<Y max, un stop. les stops font 8 octets d'après la doc V8, mais dans les routines d'init que j'ai pu trouvées tout le monde saute 16 octets après un stop. y a t il une explication ? Ou est ce comme un standard comme on ne sait pas ce qu'on va avoir ensuite, vu que d'après la doc Jagdox, un objet bitmap s'aligne sur 2. ( si je ne mélange pas alignement des instructions de la object list et alignement des pointeurs de données pour les datas des objets ... )
avatar

80

- pas de taille maximale à proprement parlé.
La seule limite c'est qu'il faut que l'OP ai fini la liste (atteint un STOP) avant la fin du temps qu'il faut pour tracer une ligne (soit ~64us)
Sinon il y aura des corruptions graphiques.

- les branchs, stop & gpu object peuvent être aligné sur 8octets
Par contre, les alignements des bitmaps sont sur 16octets et les scaled bitmaps sur 32octets

En général, la liste est constituée de :
$100000: branch (goto $100010 si VC < y_start) $100008: branch (goto $100020 si VC < y_end) $100010: stop $100018: stop (ou rien) $100020: bitmap $100030: bitmap ... $xxxxxx: stop
avatar

81

L'assembleur rmac a la possibilité de créer de manière "lisible" des Object List. Je ne m'en suis jamais servi, mais ca a l'air pas mal.
http://rmac.is-slick.com/manual/manual/#jaguar-object-processor-mode

82

bonsoir

merci de vos messages
je progresse, j'ai un affichage smile
avatar

83

bonjour

merci pour vos réponses !
bon j'ai bien avancé, j'affiche des choses lisibles :
rtBt
avatar

84

a propos de la résolution graphiques
c'est l'element dans l'object processor qui définit la résolution au final ?
on peut mixer les résolutions , y compris en superposant les objets ?
avatar

85

j'ai fait quelques tests et c'est l'interruption VI qui ne se déclenche pas à 50Hz en PAL
quelqu'un a des infos à ce sujet ?
ou personne ne l'utilise ?
vous faites tout au GPU et le GPU est capable de se synchroniser avec la VBL ?
avatar

86

ericde45 (./85) :
j'ai fait quelques tests et c'est l'interruption VI qui ne se déclenche pas à 50Hz en PAL
Tu parles de la console ou de l'émulateur?

87

de VJ
mais dans un source, on voit que je ne suis pas le seul à douter, puisque il est écrit :

;; Vertical Blank Interupt (At least it happens every frame somewhere......)

c'est une demo de lsl/Checkpoint
avatar

88

ericde45 (./87) :
de VJ
mais dans un source, on voit que je ne suis pas le seul à douter, puisque il est écrit :

;; Vertical Blank Interupt (At least it happens every frame somewhere......)

c'est une demo de lsl/Checkpoint
As tu essaye avec l'émulateur des Russes? C'est le seul émulateur que l'on peut qualifier de fiable a l'heure actuelle.

89

j'ai fait l'essai
dans Virtual Jaguar mon compteur de temps sur VI est en retard, et sur l'emulateur russe il compte le temps à la même vitesse que mon telephone smile

ça te fait un bug de plus pour virtual Jaguar

j'avais vu dans le source de VJ, que SDL pour le DSP était utilisé pour SDLticks :

src/dsp.cpp
#include <SDL.h> // Used only for SDL_GetTicks...

les timers DSP sont précis je pense sinon le son serait déformé
peut etre une piste d'utiliser SDL_GetTicks pour gérer l'interruption VI ?
avatar

90

Merci pour ce feedback.
Pour le CPU et le GPU, j'avais récupérer des informations et globalement: "VJ's CPU counter is 1.7 times faster, GPU's 2,4 times faster that the console".
Au moins, l'émulateur des russes fonctionne bien pour toi.