30

./28 > oué c'est avec cet esprit de concurrence positive que les choses avancent plus vite wink
./27 > ok il me semblait bien avoir vu NEStress.nes quelquepart mais je l'ai jamais d/l. Ce soir en rentrant du taf je l'essaye.
Pour le scrolling qui déconne je vois pas a quel niveau? A un moment effectivement, l'affichage scrollait a gauche tout seul une fois toutes les 10 secondes, sans qu'aucune touche n'aie été appuyée, et en désactivant l'émulation du NMI (qui ne servait que pour les palettes pour blocks.nes) le probleme a disparu. Donc apres tout ca a peut etre rapport avec ce que tu me dis sur l'opcode RTI, mais je n'ai connaissance d'aucun bug a propos de cet opcode sur un vrai 6502? (pour JSR ou l'adresse de retour etait en fait addr - 1 ok, pour le bug connu du JMP absolu indirect ok, mais pour RTI?)
et enfin pour le scrolling et tout ce qui est affichage finalement, je verrai bien le moment venu... pour l'instant c'est des séances intenses (=> comprendre nuits blanches) de débuggage du CPU sick mais avec la version débug de l'ému fceu sur PC les choses sont + faciles wink je te le recommande d'ailleurs pour le débuggage de ton CPU asm.
./29 > cheeky

31

j'utilise nintendulator actuellement cheeky

(pour le bug je parle de la 0.1 j'ai pas testé la 0.2 encore) je te fait un screen tu verra bien
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

32

le bug de nesquick 0.1 :

nesquick_bug1.gif
nesquick_bug2.gif

Le scrolling se comporte mal en 2 sens

tu navigue que sur une seul nametable et le décalage en bas ne devrait pas avoir lieu ^^

si tu veux voir ce que ça donen normalement :

http://www.godzil.net/projets/tines/win32/TiNes-Blocks.nes%20Edtion.rar

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

33

Oui l'affichage du background n'affiche qu'une seule name-table pour l'instant, mais c'est une limitation plutot qu'un bug (pas encore implémenté).
le décalage -> c'est le scrolling qui veut ca, si on sort de la name-table d'un coté ou de l'autre effectivement ca pose pb mais ce sera implicitement réglé par l'affichage des 2 name-tables en meme temps.

34

j'attend de voir comment tu va gerer le scroll des jeux comme smb1 cheeky
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

35

Ouai ya un probleme de taille d'ecran mais ca deja pas mal!!

36

grrrrr, j'trouve toujours pas la touche pour arrêter sad , y'en a une ?
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

37

A priori non grin
avatar

38

Non il n'y en a pas lol!!

39

en tout cas chapo ton cpu est plutot rapide smile
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

40

ce qui me fait peur c'est que la majorité des jeux utilisent le NMI comme boucle infinie, par exemple dans SMB1 le main sert juste pour initialiser pile/registres PPU etc., puis on trouve un
label: jmp label
et tout le moteur se trouve dans le NMI, en comptant uniquement sur le fait que l'interruption est appelée 60 fois par sec.
on est obligé d'executer un NMI en entier avant d'en lancer un autre, donc de l'émuler comme sur NES, tous les n cycles.
J'ai peur que ca influe beaucoup sur la vitesse des jeux sad (pour l'instant j'utilise un timer pour déclencher le NMI, je ne me base pas sur un compteur de cycles...)

41

Tu ne peux pas brancher le NMI sur l'AI5 que tu règleras à la vitesse prévue (60 fois par seconde)? Ou sur l'AI1?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

42

non car il ne doit pas survenir en pleine interprétation d'un opcode.

43

Nerick: c'est le PPU qui déclanche le NMI !


et smb1 fait un peu plus cheeky


le code est :

800A: lda $2002 <-- On lit le PPU (registre de status)
800D: bpl $800A <-- On test si un VBlank a eu lieu, si oui on continue sinon goto $800A
800F: lda $2002 <-- On lit le PPU (registre de status)
8012: bpl $800F <-- On test si un VBLank a eu lien, si oui on continue sinon goto $800F

ce code permet au jeu d'attendre 2 VBlank avant de continuer et permet donc au code de ce "synchroniser" avec le PPU, tu retrouvera souvent ce bout de code dans 99.9999999999% des jeux NES

Apres tu doit savoir que le registre de controle n°1 bit 7 permet de dire au PPU de faire un NMI des qu'on atteind le VBlank ou non
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

44

Euh, t'es sûr de ton code confus
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

45

absolument certain oué
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

46

pourquoi ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

47

bah il était peut-être étonné que la lecture de $2002 le réinitialise ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

48

Ha oui bien sur j'ai oublié de préciser que la lecture de $2002 reinitialise le bit 7 (VBlank occurance) reset le port $2005 et $2006 (vu qu'il utilisent la meme bascule)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

49

Godzil > Entièrement d'accord avec toi mais ca ne change pas le pb smile
Le morceau de code que tu cites intervient dans l'init justement et sert a attendre qu'un VBlank se produise pour pouvoir écrire des données en VRAM (c'est indispensable sur une NES réelle mais facultatif dans le cas d'un ému) -> l'init des 2 name-tables. Un peu apres, il y a:
[$8057] : jmp $8057
et le reste du jeu est géré dans le code executé au moment du NMI.
Le NMI existe sur d'autres archis a 6502 que la NES, mais dans le cas de la NES il est cadencé a 60Hz, ce qui correspond (comme de par hazard) a la fréquence du VBlank-ing, donc on peut dire qu'il est syncro avec le PPU oui.

50

non neutral

le NMI est émis PAR le PPU au moment ou il vblank c'est sur et certain neutral

le fait de tester la valeur du VBlank avec le code a une importance, si tu gere pas ça correctement bcp de jeu ne ont pas fonctionner

le NMI signifie Non Maskable Interrupt

Il s'avere que sur la NES la broche NMI tu 6502 est relié a une des broche du composant servait de PPU

Il s'avere aussi que c'est le PPU qui gere ou non l'activation de cette interuption, donc si elle apparait c'est par comme par hazard a la meme fréquence que le PPU, mais bien pasque C'EST le PPU qui l'active quand il passe en vblank

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

51

smile (je le place ici pour godzil, parce qu'on peut penser que son post est froid, alors que c'est juste qu'il n'a pas le smiley juste ^^)
avatar

52

ok mais je n'ai jamais dit le contraire confus
seulement:
>le fait de tester la valeur du VBlank avec le code a une importance, si tu gere pas ça correctement bcp de jeu ne ont pas fonctionner

Pourquoi? Personnellement j'active le bit #7 de $2000 avant de lancer l'émulation du jeu, c'est un hack pas très beau, mais ca fonctionne pas mal...
maintenant que tu me le dis, ca pourrait poser probleme si la ROM boucle jusqu'a ce qu'on aie dépassé le VBlank
x: lda #$2000
bmi x
mais je n'ai pas encore rencontré cette situation smile

53

(lol merci nil j'ai écrit le post en etant assé fatigué cheeky)

smb1 et tout les jeux n'ayant pas de hard pour compter les les scanline ne font pas fonctionner correctement pour le scrolling

SMB1 (pour parler de lui) attent le vblank pour se syncro avec le vblank pour débuter l'attente du S0_Collision_Test. Si on lui fait croire que le PPU est tjrs en vblank il va y avoir un moment ou il va attendre, attendre attendre attendre indéfiniment

par ex quand on lance une partie il commence par (re)afficher le bg, place le 400 du compteur et se met en attente de non vblank et de colision du Sprite 0, une fois et seulement une fois que cela c'est produit, il place les sprites de mario et permet au jeu de commencer

voila

je t'en fait par pasque je suis passé par la aussi cheeky
Ca m'a pris a peu pret 3/4 jours reel & complet de prog pour avoir mon PPU tel qu'il est maintenant mais bon c'est instants de prog ce sont pas mal espacé (notement apres un "tite" pause d'une chtite année cheeky) et pi le code de mon PPU est assé crade :/ mais bon c'est accesoire ça
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

54

effectivement certains trucs ont dû m'échapper, j'obtiens bien l'écran de lancement de SMB1, mais jamais le sprite de mario n'apparait. C'est sans doute parce que le moteur attend un non-vblank, faudra que je l'émule correctement en fin de compte... merci smile
par contre certains éléments du background pour le titre sont erronés, il reste surement des bugs a corriger dans le CPU.
Je vais me concentrer la dessus pour l'instant.
t'as essayé de compiler une version de tines qui combine mon CPU avec ton PPU sinon? smile

55

oula meme pas la peine d'y penser mourn

mon code est pour l'instant trop lié au cpu que j'utilise sick

c'est d'ailleur pour ça que je vais recoder mon cpu asm 68k et recoder le PPU et modifier le code x86/PPC en conséquence :/

bref la joie

Sinon de tte maniere plus ça va evoluer, plus ça va etre "importable" (pour la version TI en tout cas)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

56

Nerick: tout ce que je te demande c'est de pas trop avancer rapidement de maniere publique hein ^^
pasque sinon ya bcp trop de vapeur qui va s'envoler d'un coup et c'est pas forcement uen bonne chose cheeky
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

57

Si, si, c'est très bien qu'il y ait des infos qui nous arrivent ^^
avatar

58

et rapidement... grin
So much code to write, so little time.

59

Godzil > maintenant j'utilise un workaround, en modifiant les bits vblank/collision sprite 0 dans une interruption (un eor sur l'octet en question en fait)
ca marche plutot pas mal, bomberman/arkanoid/dkong1 tournent, mais pas smb1 (il se reset en permanence au moment d'afficher les sprites a l'ecran de titre). Je me demande si il va pas falloir que j'emule completement le systeme de scanline en fait... c'est ce que tu fais toi?

60

scanline :/
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.