Thank you for testing and reporting.
The reason why the US version freezes/crashes is not known yet. Someone at PSX-Place.com told me that the US version also has more issues with stuttering/slowdowns than the PAL version. The PAL version runs "better"...
The other changes in this prototype aren't useful to the end-user :
- Support for PS1 scratch pad memory codes in the cheat engine. It's for cheaters and hackers...
- Support for playing physical PS1 CDROMs. That lets testers/hacker do quick tests without having to dump and convert their games. But it is not suitable for gaming, since the original CDDA audio support from $ONY's IOPCD driver does a lot of shit when playing a real PS1 CD (outputs some awful noises instead of the actual CDDA music/sound).
- Changes to the MODULE_#.IRX loader. Which might help the developers to use their IOP code and deal with cross-module dependencies. For example, to add functionalities relying on new hardware. The devs would want to attach EE routines too (yes, TROJANs), to prepare semaphores, start servers, query devices, eventually import the controller input to the EE, etc... Boring stuff.
- Value 0x04 to offset 42F of the POPSTARTER ELF/KELF. It disables all the POPStarter integrated game fixes, and enables the game specific tweaks. The currently embedded "tweaks" in this prototype are the camera distance mods for the Dave Mirra Freestyle BMX games, and a texture distortion mod for Ridge Racer Revolution and Rage Racer.
Citation:
Envoyé par nonosto
Hello world
Tout d'abord un grand merci à Krhacken et shoallias pour leur dévouement a ce projet.
As ton trouvé un moye de lancer les jeux en 480P. J'ai tous essayé avec GSM et j'ai tjr blackscreen.
Merci
Salut.
D'après ce que j'avais posté sur ASSEMblergames,
Spoiler
Citation:
Envoyé par krHACKen
Only NTSC-I, PAL-I and 480P are "natively" supported by POPS. Trying any other video mode (like VGA, 720p...) makes POPS printf a "Not support displaymode" error, skips a whole bunch of pre-rendering functions and crashes.
As for the interlace parameter, I tried to invoke SetGsCr with the non-interlaced parameter (in normal NTSC 0x02 and PAL 0x03 video modes). That didn't work.
480p :
Like I said in CHANGE.TXT, it's not reliable at all. Actually, $ONY did more or less implement 3 VMODEs :
- 0x02 (NTSC-I) complete
- 0x03 (PAL-I) incomplete, lacked the EmulatedTime() clock rate
- 0x50 (480p) incomplete, lacked the code to cope with the PS1 GPU resolutions
To "complete" the 480p mode, I had to craft something similar to GSM, hook it to the GS refresh function of POPS and make it monitor the registers of the emulated PS1 GPU so it calculates the double-word that's being written to the GS DISPLAY1 and DISPLAY2.
Why did I say not reliable ? Its inability to stretch the frames isn't the only problem. For some reason I fail to understand, there are also cases where the PS2 outputs a signal that is not supported by the HDTVs o_O .
That happend to me with the following games :
PlayStation BIOS
Grind Session (Menus)
Air Race Championship (FMVs)
Dead Or Alive (everything but the intro FMV)
Tekken 3
Ace Combat 3 (Intro FMV, Menus)
Rally De Europe (Menus)
Rally De Africa (Menus)
Final Fantasy VII
Colin McRae Rally 2.0 (Menus)
Driver 2 (Menus)
So $480p is an unreliable option, not to be used by default.
POPS ne supporte pas le 480P. Il lui manque la fonction nécessaire pour adapter la résolution du jeu PS1 à la sortie 480P. Forcer le GS à vomir du 480P avec GSM donnera donc un écran noir comme tu l'as remarqué.
Le seul moyen, pour tenter d'avoir un affichage en 480P, est d'ajouter $480p dans CHEATS.TXT.
Avec $480p dans CHEATS.TXT, ma routine d'adaptation de la résolution sera injectée dans POPS. Le rendu dépendra des résolutions originales du jeu PS1. Ça peut donner du full screen nickel, des bandes noires sur les côtés, ou pas d'image du tout. Autrement dit, nice try, mais c'est merdique.
Et comme indiqué dans mon post chez ASSEMblergames, toute autre résolution que NTSC-I, PAL-I ou mon 480P donnera lieu à une erreur "Not support displaymode" et à un plantage.
Cet utilisateur dit Merci à krHACKen pour ce poste utile:
Thank you for testing and reporting.
The reason why the US version freezes/crashes is not known yet. Someone at PSX-Place.com told me that the US version also has more issues with stuttering/slowdowns than the PAL version. The PAL version runs "better"...
The other changes in this prototype aren't useful to the end-user :
- Support for PS1 scratch pad memory codes in the cheat engine. It's for cheaters and hackers...
- Support for playing physical PS1 CDROMs. That lets testers/hacker do quick tests without having to dump and convert their games. But it is not suitable for gaming, since the original CDDA audio support from $ONY's IOPCD driver does a lot of shit when playing a real PS1 CD (outputs some awful noises instead of the actual CDDA music/sound).
- Changes to the MODULE_#.IRX loader. Which might help the developers to use their IOP code and deal with cross-module dependencies. For example, to add functionalities relying on new hardware. The devs would want to attach EE routines too (yes, TROJANs), to prepare semaphores, start servers, query devices, eventually import the controller input to the EE, etc... Boring stuff.
- Value 0x04 to offset 42F of the POPSTARTER ELF/KELF. It disables all the POPStarter integrated game fixes, and enables the game specific tweaks. The currently embedded "tweaks" in this prototype are the camera distance mods for the Dave Mirra Freestyle BMX games, and a texture distortion mod for Ridge Racer Revolution and Rage Racer.
I see, thank you very much for the explanations, please keep the good work.
Any test needed we are here.
Best regards.
Cet utilisateur dit Merci à El_Patas pour ce poste utile:
Ce fichier cheat c'est là aussi ou on peut coller les code widescreen?
Ouais, tous les trucs qui commencent par $ vont dans CHEATS.TXT (y compris les codes de triche/widescreen).
Citation:
Envoyé par nonosto
A ton deja essayé de lancer gsm + $480P sa change quelque chose?
POPStarter ne changera pas le mode vidéo si il détecte la présence de GSModeSelector v0.23x dans la mémoire. Donc pas possible d'utiliser le PAL et le 480P de POPStarter si GSM v0.23x a été chargé avant. GSM prendra le dessus et POPStarter ne fera rien.
Je partage ce machin, au cas où ça serait utile à quelqu'un : TROJAN_9.BIN
C'est pour changer des timings en direct avec les manettes. Utilisable avec le proto. Si votre debuggeur ralentit l'émulateur et que vous avez besoin d'ajuster la synchro, ça devrait vous aider.
Attention à vos VMCs. Si vous sauvegardez une partie, les timings seront inscrits dans l'en-tête de SLOT0.VMC, et POPS refusera probablement de la monter après...
Offset 4h == Clock == $20502770
Offset 8h == Sync0 == $S00033E0
Offset Ch == Sync1 == $S00033E4
Et si vous voulez tester les boutons, je vous recommande cette merde de Tekken 3. Effets garantis.
EDIT : Petite modif, maintenant ça inscrit les valeurs dans la TOC, après l'index des 15 blocs. Ça règle le problème de la VMC qui devient inutilisable.
Aussi, les dernières valeurs sauvegardées seront chargées au démarrage. TROJAN_9.ZIP
EDIT2 : Vous avez vu ce bout de kernel de 128 octets à 1F80h dans la VMC? Pas normal... Devrait y avoir un magic "MC" ici. Ce n'est pas mon trojan qui cause ça. Mais va falloir que j'enquête là dessus...
Dernière modification par krHACKen ; 14/06/2017 à 14h19.
Cet utilisateur dit Merci à krHACKen pour ce poste utile:
- Correction d'un bug qui touchait les protos des 27, 30 et 31 mai. Les VCDs ne pouvaient plus être lancés depuis les partitions/dossiers POPS#. Il y avait un conflit avec le mode PS1 CD qui faisait planter POPStarter. Ça semble réglé maintenant. Je ne m'en suis rendu compte que ce matin, en voulant lancer un jeu dans la partition __.POPS0 de mon HDD. Preuve que les protos n'ont pas été suffisamment testé par mes soins pour être digne d'une bêta grand public. Il y a peut être d'autres bugs...
- Ajout de $LOAD_TIMINGS et de $SET_TIMINGS
LOAD se contente de charger les timings de la VMC, sans squatter les boutons L1/L2/R1/R2 des deux pads (et donc sans permettre les changements).
SET charge depuis la VMC et permet de les changer les timings, comme indiqué dans le post précédent.
Il me semble que ce SET_TIMINGS intégré est hyper sensible là où je l'ai accroché. Le TROJAN est sans doute mieux pour faire des réglages affinés.
EDIT : Pour en revenir à Tekken 3, j'ai fini de régler la version PAL pour réduire le scintillement au maximum. TEKKEN3_PAL.ZIP
Pertes de trames abominables. Déjà que la version PAL était excessivement lente par rapport à la version NTSC, bidouiller le rafraichissement le rend encore plus déplaisant à jouer.
Quant à la version NTSC, je n'ai même pas voulu conserver la VMC. Parce qu'il n'y a pas de juste milieu entre le scintillement et le rafraichissement optimal. Résultat, une motion blur absolument dégueulasse.
Dernière modification par krHACKen ; 16/06/2017 à 08h23.
Cet utilisateur dit Merci à krHACKen pour ce poste utile:
Quelqu'un m'a dit que le TROJAN empêche les correctifs de compatibilité de fonctionner. Effectivement, le TROJAN se charge à la même adresse que les fixes et les écrase. De même, il s'accroche par dessus le mode de compatibilité 0x05, rendant ce mode inopérant. J'avais réutilisé l'en-tête d'un vieux TROJAN sans me soucier de sa coexistante avec le design actuel de POPStarter...
Voilà donc un TROJAN chargé et accroché ailleurs : TROJAN_9.BIN
Il s'engage à la même intervalle que $SET_TIMINGS. Je ne sais pas encore où l'accrocher pour qu'il soit moins sensible. Donc pour l'heure il ne sert à rien, vu qu'il fait la même chose que $SET_TIMINGS. Mais pour d'autres TROJANs, il serait judicieux de piquer son en-tête. Je tacherais de garder ces load/hook addresses libres à l'avenir. C'est bien rapide. Le cheat engine, le truc pour changer de disque et d'autres machins sont invoqués par cette même routine. Il s'agit d'une hook address sur une plage allouée avec pas mal de points d'encrage disponibles pour le moment.
Au sujet de Crash Bash. Quelqu'un a réalisé cette excellente vidéo montrant les ralentissements et les problèmes d'animation des personnages sur la version NTSC U/C.
J'ai utilisé $SET_TIMINGS dessus pour voir si les ralentissements pouvaient être corrigés en affinant les réglages. Malheureusement non. Même en mettant Sync1 à un niveau négatif (entrainant un glitch des textes dans les menus), il y a exactement les mêmes ralentissements, aux mêmes moments.
Vu la façon dont la musique et les SFX sont joués, avec des saccades, la cause du problème semble être ailleurs, comme un thread inachevé dans les temps ou une énième satanée boucle. Je ne tenterais rien de plus dessus pour l'instant. Tracer toute l'exécution et désassembler au fur et à mesure est quelque chose de très ennuyeux.
Oh, et j'ai essayé la version NTSC J aussi. Et vous savez quoi ? Pas de ralentissement. Comme pour la version PAL. Étonnant. Il n'y aurait donc que la version US qui poserait un problème majeur de ralentissement. Dommage. Les speedrunners imposent souvent des versions NTSC en anglais pour leurs compétitions.
Cet utilisateur dit Merci à krHACKen pour ce poste utile:
Salut! Je m'excuse pour tout français cassé, car je devais utiliser Google Translate. Merci de me lier à ma vidéo. J'avais attendu que mon compte soit activé ici pour le partager avec vous, je suis très content que vous l'ayez trouvé. Si vous souhaitez plus de tests enregistrés, faites-le moi savoir!
Cet utilisateur dit Merci à Bluesfire pour ce poste utile:
Tous les jeux que tu voudras tester et enregistrer dans les listes (HDD, ETH, USB) seront les bienvenus, nous t'en remercions par avance kHn et moi même (je suis Algol dans les listes et leur co-administrateur).
Tu pourras "signer" tes tests par le nom de "Bluesfire", cela nous permettra de t'identifier kHn et moi.
À bientôt.
Algol "le papy".
__________________
1 PS1 SCPH7502 pucée
2 PS2 SCPH70004 en FMCB/PS2NetBox
1 PS2 SCPH39004a sous FMCB/FHDB/PS2USB2
1 PS2 SCPH50004 sous FMCB/FHDB
Concernant le mode PS1 CDROM, il y autre chose (que les pistes CDDA) qu'il ne supporte pas : LibCrypt.
J'ai testé un jeu original protégé, avec les fixes intégrés à POPStarter désactivé. Ça a chargé 0x1F000049 dans le r3 du COP0, alors que 0x1F00B06D était attendu. Évidemment avec un plantage derrière.
Donc pour vos CDs protégés LibCrypt, même originaux, il faut avoir les fixes actifs.
Ce qui est bizarre, c'est que ça a quand même chargé une valeur dans le registre. Comme si la lecture des subchannels était faisable...
Ces 2 utilisateurs disent Merci à krHACKen pour ce poste utile: