Ced Le 13/08/2002 à 18:04 pour regler le "boucing" du clavier, je pense qu'il faut prendre en compte une touche que si elle a ete appuyee pendant un certain temps. Si le temps est superieur au temps des oscillations, les oscillations ne seront pas detectes.
boogerman Le 20/08/2002 à 18:12Edité par boogerman le 20/08/2002 à 18:13 Toujours en cherchant à optimser...
J'ai trouvé (je pense) pourquoi Lemmings (et certainement pas mal d'autres jeux) rame tellement. D'après ce que j'ai vu, le code est tellement réparti dans toute la ROM qu'il n'arrête pas d'échanger les ROM banks (plusieures fois par frame!!!!). Cela force à récopier 16ko à chaque échange de ROM bank. En plus, les données d'origine ne sont pas forcément alignées à mot (ce qui nous force à copier octet à octet), et en plus il se peut qu'un ROM bank soit distribué dans plusieurs fichiers (cf: sflib) donc il faut faire quelques calculs avant la copie.
Conclusion: sflib ne va plus, 'faut absolument s'en débarasser.
Bon, je connais le format des fichiers dans la calculatrice, mais il me faudrait le format du .9x*, ou un utilitaire qui transforme un binaire en un .9x*. Quelqu'un peut m'aider? Merci!
Boogerman
Bouger, travailler, manger et se reposer, c'est la devise de la tortue!
hwti Le 21/08/2002 à 17:10 tu peux essayer de désarchiver un autre fichier un peu plus petit, archiver ton fichier puis réarchiver l'autre (ça vient de l'algo de garbage qui doit pas être parfait, loin de là)
Si tes fichiers font plus de 32768 octets, c normal puisque le tios ne peut pas caser 2 fichiers dans le même secteur... (pour être exact 64 ko - 2*18 octets de header de fichiers - 4 octets de header de secteur = 65496 donc tu peux pas avoir plus de 32748 octets par fichier, et moins si tu enlèves le header de fichier et le tag OTH...)
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
santi Le 22/08/2002 à 19:09 j'y arrive pas..ça me fait même planté la calculatrice parfois (enfin VTI)
Le port 89 est presque prêt, avec pas mal d'améillorations importantes (dont la disparition de sflib). Il me faut d'une part une solution à cette histoire des fichiers dans l'archive, et d'autre part j'ai constaté que, même si le display de la TI-89 est de 160*100 pixels, on dirait qu'il est de la même taille que celui de la TI-92 (240*128 pixels, 3840 octets) et que seuls les premièrs 160 pixels pixels de chaque ligne sont visibles et que seules les premières 100 lignes sont visibles. Quelqu'un peut me confirmer que cela est vrai pour toutes les TI-89? D'autre part, peut on écrire impunément dans le reste de l'écran (ie: la partie non visible)?
À +
Boogerman
Bouger, travailler, manger et se reposer, c'est la devise de la tortue!
08/23/2002 - v0.4.0
Some very interesting speed improvements and features. The door is left open for
HLE... I've also been reading stuff about Dynamic Recompilation. Whether this is
viable or not in this project is still to be investigated...
- Disabled by default emulation of the S flag but left it as a compile option
(SFLAG). Since there is no instruction using this flag, the only way to read
it would be to push AF, pop it into some other reg and test bit #5. I would be
really surprised to see a game do this, so we'd better save the CPU cycles for
something else.
- Usually GameBoy games refresh the OAM (Object Attribute Memory) using a DMA
operation once every V-Blank, regardless of whether it has changed or not.
This was causing unnecessary buffer updates, so I fixed DMA so that it only
sets the rupdtob flag if the new data differs from the old data.
- Improved calls to lcdupdt (jsr lcdupdt + rts -> bra lcdupdt: -8 cycles per
H-Blank).
- Improved inclycp/setlyc (-8 cycles per H-Blank, -12 cycles per V-Blank).
- Fixed one-register movems in rom.h being automatically converted to moves
by A68k wich caused the Z flag to be cleared (even when an error was to be
reported). Replaced all other one-register movems in the project by moves in
the sake of clarity.
- Improvement to rom.h so that if the game tries to load a ROM bank already
loaded no action is taken.
- Added ability to log Z80 function calls, usefull find the more frequently
called functions and the HLE'em. This can be enabled with the new CSTAT option
in defs.h (more documentation on this feature will be available with the next
version wich *should* support HLE).
- Fixed excedent loops (dbra ending at -1 instead of 0) in lcd.asm (lcd_lcdoff
and bg_draw).
- Now the whole LCD is cleared when the emu starts, and when the LCD is turned
off by the game only the area corresponding to the GameBoy LCD is cleared
(don't bother).
- Changed ramw8 so that it is a macro instead of a function (saves 2 cycles per
RAM write operation).
- Added macro earamw8 wich takes 10 less cycles that ramw8 (every instruction
that writes to the RAM benefits from this) (in 16 bit instructions only the
first write uses earamw8, the 2nd write uses ramw8).
- Added one handler for each non special io write, enlarging the binary by ~1k
but reducing 10 cycles every io write operation.
- Added macro iow8 (similar to ramw8) wich improves 'ldh %v,a' and 'ldh c,a'
(-6 cycles).
- Replaced sflib by rom.asm wich provides word aligned ROM banks, allowing
faster ROM bank switching (~-290000 cycles, 5 times faster), and hence
considerably improving the speed of games doing a lot of switching. The only
drawback is that you will have to reconvert your ROMS to the new format.
- Improved halt instruction so that instead of decrementing cc until it reaches
zero it directly clears it and do ccoflow, saving some cycles.
- Reduced by 16 cycles write operations to the internal RAM and to the echo of
the internal RAM by replacing add.l/sub.l by add.w/sub.w.
- Fixed bug in macro palap in lcd.asm wich was not causing problems because the
macro is allways called with the .l suffix.
- Added ability to scroll the GameBoy LCD up and down, showing the 16 lines (44
in the TI-89) that don't fit in the screen.
- Did I write TI-89 in the last point? Oh well, I almost forgot :^P added TI-89
support (Thanks Redangel17 for sending me the TI-89 ROMs needed to make this
possible) (rom2ti now takes a 2nd argument wich is either 89 or 92).
Boogerman
Bouger, travailler, manger et se reposer, c'est la devise de la tortue!
santi Le 24/08/2002 à 13:44 même soucis avec Mario,mais j'ai pas poussé les tests plus loin.
santi Le 24/08/2002 à 22:42 je sais pas duquel parle orion, mais moi j'ai testé avec le mario que j'ai trouvé sur le site de redangel17 (page 6 de ce topic).