| progfr | 02.01.2003 - 1580 21:27 Posté : 27-11-2009 | |
![]() | voila mon resultat voici le resultat de la compilation d un exemple fournit l image disk soit a gravé soit pour le faire tourne sur un émulateur, perso moi sa marche que sur nebula 2.25B http://turn-on.webs.com/neogeo%20CD/imagecd/test.nrg si vous voulez des infos me faire signe car j avoue au premier abord cela n a pas été simple |
| AdSense | |
| @kuk | 06.09.2002 - 14399 01:05 Posté : 30-11-2009 | |
![]() | salut tu as réutilisé les éléments de la Démo de Fabrice Martinez ? tu as rajouter quoi ? par contre je ne peux rien faire avec ton dossier .nrg, tu aurais pas un Iso sous la main Merci La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info Le forum de la Neo Geo sur Yaronet: http://yaronet.com/forum.php?s=264 Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/ |
| progfr | 02.01.2003 - 1580 19:51 Posté : 30-11-2009 | |
![]() | s est un exemple compiler issue du sdk NEODEV ou j ais trouver le lien sur ton site. Cette demo doit s inspire du travail de fabrice martinez. la version en iso http://turn-on.webs.com/neogeo%20CD/imagecd/test.iso . non pour l instant je n ais pas encore modifier, j ais plus recherche des outils adapte a la neogeo et de la doc pour apprendre |
| @kuk | 06.09.2002 - 14399 01:30 Posté : 01-12-2009 | |
![]() | ok dans ce cas cette demo est une démo de Fabrice martinez et elle se trouve déja en format Iso sur mon site (au meme endroit) Comme ça tu t'es fait la main, maintenant on attend ton travail La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info Le forum de la Neo Geo sur Yaronet: http://yaronet.com/forum.php?s=264 Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/ |
| progfr | 02.01.2003 - 1580 18:12 Posté : 02-12-2009 | |
![]() | quelqu'un aurait t il des infos pour la parti son car la s est le vide complet j ais vue pas mal de chose et il parle de driver pour le z80 qui ce charge dans le 64Ko mais rien de plus hors il y a le yamaha 2610 ainsi la la gestion de la lecture des plage audio cd. Si quelqu'un s est penche sur le sujet je suis preneur |
| progfr | 02.01.2003 - 1580 07:54 Posté : 03-12-2009 | |
![]() | aprés analyse de différente source j ais encore quelques inconnu. Donc la gestion du son est confie au z80 qui accouplé au yamaha 2610 tous sa pilote par la 68K. le z80 dispose de 64Ko de mémoire ou l on doit mettre de quoi - initialise le Z80 et le 2610. Puis faire les fonctions pour exploite les donnée qui sont les son en adpcm, fm, psg, cda (bas oui neogeo cd) et voir du streaming. ainsi que les fonction de base play, stop, répétition d une plage audio ou d un son ou a partir d un offset, etc .... mais voila ou commence les probléme a mon niveau Comment fonctionne le system de commande entre le 68K et z80 ..? (ex: le 68k demande au z80 de jouer adpcm blabla) Comment ce fait la gestion du cdrom de la neogeo ..?? Est ce que l on peu le pilote le cdrom a partir du z80 comme le 68K?? si possible un exemple. Comment recupére les fonctions cdrom si elle existe en native dans le bios ou comment faire pour les utilisés..?? merci d avance |
| @kuk | 06.09.2002 - 14399 09:27 Posté : 03-12-2009 | |
![]() | Tout ce qui ressemble meme de prés a une ligne de calcul me parait indéchiffrable, alors le code n'en parlant pas, donc je programme pas, je code pas, J'avais demander des eclercicement sur un topic sur la music sur Gamekult, mais ça restait assez basic cette gestion ne doit pas etre si evidente que ça puisque les programmes amateurs n'ont pas de son... je pense que les programmeurs ont déja bien du mal a afficer ce qu'il veulent essaye de contacter furrtek qui devais faire un dossier son sur la neogeo en passant par les fichiers MAME http://furrtek.free.fr/index.php?p=crea&a=neogeo La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info Le forum de la Neo Geo sur Yaronet: http://yaronet.com/forum.php?s=264 Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/ |
| progfr | 02.01.2003 - 1580 15:54 Posté : 04-12-2009 | |
![]() | j ais envoyé un mail furrtek mais rien. Du coup je me suis bien retourne le cerveaux avec des sources alternative, ce qui en ressort s est que dans la ram du z80 est stocker de quoi gére le ym2610 ( processeur sonore FM, SSG, et adpcm A et B 4 ou 8 bit sa je n ais pas vraiment trouver) avec fonction diverse est varie streaming, lecture , répetion suivant des offset etc .... , configue de la parti fm avec load des instruments, et les ssg init attente des frequence et envelloppe etc .... Déja cette parti la est quand meme déja un bon morceaux est ce code pour le z80 car s est lui qui chapote tous sa. Après il faut remonte d un niveau quand s est le cpu centrale donc le 68K qui exécute et qui délègue le son au z80 par un systême de commande par le NMI un exemple grossier 68k envoie la commande jouer son 1 ->Z80-> sound 1 type adpcm B, 8bit 44Khz -> YM2610-> traitement par unite adpcm B -> YM3016(DAC) -> HP Pour ce qui est de la gestion du lecteur de cdrom j avoue que je coince encore j ais trouver sa comme commande en assembleur * void PlayAudio(DWORD Track); * Only supports tracks 0-9 -->>> je vois pas pourquoi cette limitation et de plus la plage 0 est celle ou il y a les données..?? PlayAudio: .set _ARGS, 4 * Get track move.l _ARGS(a7), d0 bset #7, 0x10FD80 jsr 0xC0056A rts * void StopAudio(); StopAudio: move.w #0x0400, d0 bset #7, 0x10FD80 jsr 0xC0056A rts si quelque pouvait m explique ou me transpose ce code de façon a mettre lisible cela serait cool de plus voici un bou du code du bios $C00552 - Load File (display 'Now Loading') $C0055E - Exit to CD player $C00564 - Load File (do not display 'Now Loading') A0 - pointer to a block: Filename\0 (Variable sized) Bank number (Byte) Pad byte (Variable) Offset (Dword) File type rules PRG Non banked (loaded in PRG memory) FIX Non banked, divide offset by 2 (loaded in FIX memory) SPR 1 Mb Banks (loaded in SPR memory) Z80 Non banked (loaded in Z80 PRG memory) PAT Non banked (loaded in Z80 Ram) ----------------------------> PATERN ..?? PCM 512K Banks, divide offset by 2 (loaded in PCM memory) $C0B040 - CDROM check (called from BIOS) |
| @kuk | 06.09.2002 - 14399 23:54 Posté : 04-12-2009 | |
![]() | Furtek est un mec sympa, mais des gens qui ont une vie et de multiple intérêt ça existe Edité par kuk le 05-12-2009 à 10:50:27. mais il a promis de répondre La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info Le forum de la Neo Geo sur Yaronet: http://yaronet.com/forum.php?s=264 Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/ |
| progfr | 02.01.2003 - 1580 09:41 Posté : 05-12-2009 | |
![]() | cool sa merci kuk |
| furrtek | 11.10.2004 - 41 15:18 Posté : 05-12-2009 | |
![]() | Bonjour, Je m'excuse encore pour ma lenteur et mon manque d'organisation. Voici mon petit grain de sel quasi inutile concernant le son: Le YM2610 est une belle bête, et j'ai du mal à comprendre le "routage" des opérateurs FM à l'intérieur avec le peu de docs qui traînent encore. Ce qui pourrait aider c'est de décompiler les roms M pour voir ce que le Z80 attend en entrée, et ce qu'il balance en sortie. J'avais cru comprendre avec le player de l'Unibios que le 68K se contentait d'envoyer un (voir deux) octets seulement au Z80 en parallèle, en balançant une NMI. J'imagine alors que les roms V contiennent aussi les paramètres des instruments, les longueurs et des pointeurs un peu partout vers les samples. J'avais lu aussi qu'il n'y avait pas beaucoup de roms M différents ("drivers") et qu'on en retrouvait des parfaitement identiques entre les jeux de mêmes développeurs. Si je retrouve où j'ai lu ça, je penserais à vous. Pour le bout de source pour la lecture CD, je comprend pas ce qu'ils font avec _ARGS(*). Je sais pas si c'est un tableau ou quoi... mais vu le nom, c'est peut être un pointeur vers le début des arguments nécessaires à l'appel d'une procédure du BIOS. PlayAudio: move.l _ARGS(a7), d0 // Met _ARGS(a7) dans d0, mais on sait pas ce qu'il doit y avoir dans _ARGS(a7) bset #7, 0x10FD80 // Met le bit 7 de (0x10FD80) à 1. jsr 0xC0056A // Continue à 0xC0056A (pas loin du Load File du BIOS) rts // Fin de sous-routine StopAudio: move.w #0x0400, d0 // 0x0400 dans d0 bset #7, 0x10FD80 // Comme au dessus jsr 0xC0056A // Pareil rts On dirait qu'il faut juste appeller 0xC0056A avec la piste audio dans d0 pour lire la piste audio qu'on veut. Et donner 0x0400 pour tout arrêter. Le BSET sur 0x10FD80 est surement juste un flag pour dire au moteur du jeu que la routine a bien été executée, puisque c'est une adresse en RAM. <dedi5613> ECOUTE VOUS VOUS FOUTEZ MA GEUL |
| progfr | 02.01.2003 - 1580 16:13 Posté : 05-12-2009 | |
![]() | pour le programme du z80 regarde dans le cdrom neogeocd le fichier .z80 inclue le pseudo driver du z80, car tu as le code pour pilote le le ym2610 le code propre au z80 "fonction additionnel" et les instrument pour le SSG et la parti FM |
| progfr | 02.01.2003 - 1580 22:41 Posté : 10-12-2009 | |
![]() | bon j ais commence a écrire une driver pour le son a me basant des sources une peu du sdk de la md et les sources de mame mais j avoue que s est un peu compliquer et surtout que le fait de ne pas avoir de référence sur le hardware n aide pas beaucoup exemple pour la MD #define YM2612_BASEPORT 0xA04000 |
| Brunni | 03.11.2002 - 5132 00:42 Posté : 11-12-2009 | |
![]() | Sur MD tu passes par un port, c'est la façon de faire qu'a choisi Sega (on retrouve la même chose au niveau du VDP par exemple) mais c'est pas dit que ce soit pareil sur la Neo Geo. Peut être qu'il y a plusieurs registres mappés en mémoire par exemple. Je pense que sans doc tu vas être embêté à ce niveau... (enfin tu peux t'en sortir avec les sources de mame) Avatar fait avec GIMP. Parce que les outils libres ça peut servir à autre chose que casser les pieds aux autres. "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
| progfr | 02.01.2003 - 1580 13:41 Posté : 11-12-2009 | |
![]() | oui j ais regardé par rapport au source de mame mais s est pas évident déjà faut séparer la parti émulation de la parti utilisation après faut capte ce qui ce passe car en plus après dans le source de mame tu n as pas que le ym2610 d émulé |
| elbarto | 25.12.2002 - 1362 15:39 Posté : 11-12-2009 | |
![]() |
Donc tu doit lui parler via le z80 sur le port d'io de l'address 0x04 a 0x07 Peace Unity Love et Having Fun!!! |
| progfr | 02.01.2003 - 1580 20:27 Posté : 12-12-2009 | |
![]() | j ais trouvé un source hélas en assembler qui est modplay.asm issue d un source de mvsplayer. Il donne un apercut de command fonctionne la parti song neogeo. ; ------------------------------------------------- ; ; NMI - used for inter-processor comms ; ; ------------------------------------------------- NMI: org 66h push af ; read in command from 68000 in a, 0 ; if the value is zero then end or a jr z, NMI_End ; if the msb is set then the value represents and FM command or a jp m, NMI_ProcessFM ; else it is an ADPCM command jr NMI_ProcessADPCM NMI_End: out (0ch), a ; acknowledge? pop af retn voici les commandes nmi qui lie le 68000 au z80. Mais quelques inconnus reste comme ce headers Z80moddriver.h const unsigned char Z80ModDriver[] = { 0xf3,0xc3,0x25,0x01,0x00,0xff,0xff,0xff,0x7a,0xd3,0x04,0x7b, 0xd3,0x05,0xc9,0xff,0x7a,0xd3,0x06,0x7b,0xd3,0x07,0xc9,0xff, 0xe5,0x21,0x00,0x00,0xcb,0x27,0xcb,0x27,0xcb,0x27,0x6f,0x29, 0x29,0xeb,0xe1,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xf5,0xd5,0xaf, 0xd3,0x0c,0x3a,0x0f,0xf8,0x3c,0x32,0x0f,0xf8,0x57,0x3a,0x10, 0xf8,0xba,0x20,0x07,0xaf,0x32,0x0f,0xf8,0xcd,0x06,0x03,0x11, ..................etc qui contient je ne sais quoi le source est ici http://www.neobitz.com/Pages/DevTools/MVSTracker.aspx modplay-z80src.zip avis au amateur car moi et l asm sa fait 2 |
| Brunni | 03.11.2002 - 5132 21:31 Posté : 12-12-2009 | |
![]() | Bah si c'est juste l'ASM je peux te la traduire en C, mais je doute que ça t'aide bcp... Edité par Brunni le 12-12-2009 à 21:50:57.
Avatar fait avec GIMP. Parce que les outils libres ça peut servir à autre chose que casser les pieds aux autres. "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
| Zerosquare | 27.04.2006 - 10751 21:48 Posté : 12-12-2009 | |
Attention, le 0x00 et le 0x0C mentionnés sont des adresses de ports I/O, pas des adresses mémoire (c'est pour ça que les instructions utilisées sont IN et OUT), on ne peut donc pas utiliser des pointeurs. L'accès au ports I/O et les gestionnaires d'interruption (NMI, ici) ne font pas partie du standard C , il faut donc que tu regardes dans la doc de ton compilateur quelles sont les instructions à utiliser. — Zeroblog — « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
| Brunni | 03.11.2002 - 5132 21:50 Posté : 12-12-2009 | |
![]() | Ha oui voilà pourquoi je comprenais pas d'où sortait ce 0ch, j'ai lu ld au lieu de out, je sais pas pourquoi Avatar fait avec GIMP. Parce que les outils libres ça peut servir à autre chose que casser les pieds aux autres. "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
| progfr | 02.01.2003 - 1580 22:20 Posté : 12-12-2009 | |
![]() | alors en compilateur bas dans neodev s est GCC et pour le Z80 j ais prid ZCC 0.96 "small C" helas je n ais pas encore trouver la réponse Edité par progfr le 12-12-2009 à 22:54:04. |
| progfr | 02.01.2003 - 1580 22:30 Posté : 12-12-2009 | |
![]() | L’interruption NMI provoque un empilage automatique du compteur ordinal PC et un bran- chement `a l’adresse (fixe) 0066h, autrement dit les deux octets représentant cette adresse sont déposés dans le compteur ordinal représentant le début de la routine de traitement des interruptions non masquables. Le retour de la routine de gestion de l’interruption NMI est assuré par une instruction spéciale appelée RETN (pour l’anglais RETurn from Non maskable interrupt). Celle-ci restaure le contenu du compteur ordinal `a partir de la pile j ais trouver cela aussi 4.4 16 Bit I/O ports O±cially the Z80 has an 8 bit I/O port address space. When using the I/O ports, the 16 address lines are used. And in fact, the high 8 bit do actually have some value, so you can use 65536 ports after all. IN r,(C), OUT (C),r, and the Block I/O instructions actually place the entire BC register on the address bus. Similarly IN A,(n) and OUT (n),A put A £ 256 + n on the address bus. The INI/INIR/IND/INDR instructions use BC after decrementing B, and the OUTI/OTIR/OUTD/OTDR instructions before. |
| Zerosquare | 27.04.2006 - 10751 22:45 Posté : 12-12-2009 | |
Dans zcc096/test/hello.c, il y a des macros pour accéder aux ports d'entrée/sortie :
Donc, en réécrivant le code traduit par Brunni :
Reste à savoir comment on définit une NMI. — Zeroblog — « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
| progfr | 02.01.2003 - 1580 22:55 Posté : 12-12-2009 | |
![]() | pas mal zerosquare moi qui me gratte la tête dans les .doc, oui s est une bonne question |
| progfr | 02.01.2003 - 1580 23:05 Posté : 12-12-2009 | |
![]() | USHORT nmiData; inline void in(int r,int add) { if (add==0) regs[r] = nmiData; } inline void out(int add,int v) { if (add!=0 && add!=0x0c) YM2610Write(0,add,v); } void doNMI(USHORT i) { nmiData = i; do_nmi = true; } mainAPI void sendCommand(unsigned short Cmd) { doNMI(Cmd); } extrait du driver dans mame mais vue que le z80 est emule je pense pas que cela ne soit d un grand secours |
| Zerosquare | 27.04.2006 - 10751 23:16 Posté : 12-12-2009 | |
Oui, ça c'est (un bout du) code qui émule le son, pas ce qui est exécuté par le Z80. Il n'y a pas de programme amateur qui utilise du son pour avoir un exemple ? — Zeroblog — « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
| progfr | 02.01.2003 - 1580 23:40 Posté : 12-12-2009 | |
![]() | bas s est la que le bas blesse s est qu il n y a rien a pas le le mvstracker (code asm) apres dans les demo je n ais rien vue car la plus part n on pas de son apres il y a bien les .z80 dans le neogeoCD qui est un binarie Z80 mais la faut le desassemble ce qui est hors de porte pour moi. source fournit dans Frog Feast sound.c void InitSound() { send_sound_command(3); } void PlaySound(DWORD SoundID) { send_sound_command(SoundID + SOUND_ADPCM_FROG); send_sound_command(SOUND_ADPCM_OFF); } sound.h inline void send_sound_command(BYTE CommandNo) { (*((PBYTE)0x320000)) = CommandNo; } // FM Music commands #define SOUND_FM_OFF (0xff) // ADPCM Sample commands #define SOUND_ADPCM_FROG (0x04) #define SOUND_ADPCM_TONGUE (0x05) #define SOUND_ADPCM_FLYGRAB (0x06) #define SOUND_ADPCM_WATER (0x07) #define SOUND_ADPCM_OFF (0x7f) apres tu as comme j ais marque plus haut le listing modplayz80 en assembler et apres je n ais rien trouver d autre |
| Brunni | 03.11.2002 - 5132 23:58 Posté : 12-12-2009 | |
![]() | Zerosquare (./22) : Heu une NMI n'est pas lancée à la main non? Si? Avatar fait avec GIMP. Parce que les outils libres ça peut servir à autre chose que casser les pieds aux autres. "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
| Zerosquare | 27.04.2006 - 10751 00:16 Posté : 13-12-2009 | |
Non en effet. Mais ce n'est pas une fonction ordinaire : il faut sauvegarder tous les registres, flags y compris, et terminer par une instruction RETN au lieu du RET (je crois) normal. Y'a pas de mot-clé standard en C pour ça ; en général, les compilos ont leur propre mot-clé spécifique pour déclarer ce genre de fonction. — Zeroblog — « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
| Brunni | 03.11.2002 - 5132 00:27 Posté : 13-12-2009 | |
![]() | Ouep je vois. En l'occurrence ça ne change pas grand chose des interruptions classiques, juste le RETI -> RETN. Sinon les interruptions doivent aussi avoir une bidouille du compilo déjà pour être à une adresse fixe. => Ca sera peut être plus facile si tu trouves déjà du code pour une interruption simple progfr Avatar fait avec GIMP. Parce que les outils libres ça peut servir à autre chose que casser les pieds aux autres. "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
| AdSense | |