Pokémon Script Project Index du Forum

S’enregistrer | Rechercher | Connexion
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

Modifier la résolution du RGSS Player
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Tutoriels
Sujet précédent :: Sujet suivant   
Auteur Message
Nuri Yuri
Administrateur
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté le: Dim 31 Juil - 12:58 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Bonjour, voici un tuto qui vous apprendra à modifier la résolution du RGSS Player par la modification de la DLL et de Game.exe, ça peux servir aux utilisateur de PSP DS 0.4 qui souhaitent avoir une autre résolution (interface perso) mais qui n'arrivent pas à la modifier par les scripts... Celle ci ne se modifie pas par les scripts car ceux ci detectent que le fichier DLL est celui qui met la bonne résolution, si le fichier DLL est mauvais, la résolution est corrigé. Il faudra télécharger ces fichier qui sont prêts pour être modifiés : http://www.megaupload.com/?d=U323D167.


II - Modification de la résolution par les scripts

Il faut quand même passer cette étape car si l'utilisateur supprime la DLL et/ou le fichier Game.exe et les remplace par autre choses, les scripts devront mettre leur résolution.
Voici le script qui se trouve dans PSP DS :
Code:
#===============================================================     
# Redimensionner la fenêtre de jeu     
#---------------------------------------------------------------     
# Edité par Nuri Yuri (塗 ゆり) le 16/07/2011   
# Crédit non requis     
#---------------------------------------------------------------   
begin   
  #===
  # Vérification de la bonne version du fichier RGSS100J.dll
  # La fenêtre sera redimensionnée par script si c'est la mauvaise version
  #===
 
  fn = API.read_ini("Game","Library") 
  if File.exist?(fn)
    f = open(fn)
    f.pos = 78
    str = f.read(5)     
    f.close
  else
    str = nil
  end
 
  if str!="pspv4"
   
  #===   
  # Verification de l'existance du registre.   
  #===   
  os=API.read_ini(psp="PSP",osv="OS")   
  if os==""   
    s=0     
    img = Sprite.new   
    img.bitmap = RPG::Cache.title("img")     
    while s==0     
      Input.update     
      Graphics.update   
      if Input.trigger?(Input::C)     
        s="1"     
      elsif Input.trigger?(Input::B)     
        s="2"     
      end     
    end     
    API.write_ini(psp,osv,s)   
    os=API.read_ini(psp,osv)   
    img.dispose   
  end   
  if os=="2"   
    Hauteur = 432 + 26       
  else   
    Hauteur = 432 + 32   
  end   
  Largeur = 288     
  #===   
  # Modification de la fenêtre   
  #===   
  #Taille de l'écran de l'ordi   
  com_width=API::GSM.call(0)   
  com_height=API::GSM.call(1)   
     
  #Calcul des positions sur l'ecran   
  x=(com_width-Largeur)/2   
  y=(com_height-Hauteur)/2   
  #Redimension   
  API::SWP.call(API.handle, 0, x,y, Largeur, Hauteur, 0) 
end
rescue   
  p "Erreur lors du redimensionnement.\n#{$!}"   
end 


# Création de la fenêtre du cadre

@interface_alpha = Sprite.new 
@interface_alpha.bitmap = RPG::Cache.picture("cadre") 
@interface_alpha.z = 20000 
@interface_alpha.opacity = 255 

Dans ce script il y a 3 choses importantes :
Ligne 23 : if str!="pspv4", ça permet de vérifier si le string de 5 caractères dans la DLL est bien celui qui correspond à votre version, vous pouvez le remplacer par autre chose, mais, ça devra aussi être remplacé dans la DLL donc si vous mettez if str!="IPKJ0" dans la DLL à la position 78 on devra trouver IPKJ0.
Ligne 47 & 49 : Hauteur = 432 + 26 & Hauteur = 432 + 32, c'est la hauteur du cadre, vous devrez donc remplace 432 par celle que vous voulez.
Ligne 51 : Largeur = 288, largeur du cadre à remplacer par celle que vous souhaitez.
C'est tout pour les scripts.

III - Modification de la résolution dans Game.exe

Maintenant il faut modifier la résolution dans Game.exe car c'est lui qui créé la fenêtre.
Voici le code qui créé la fenêtre :

On y vois : push 000001e0h et push 00000280h, ça correspond à la largeur et la hauteur, mais nous ne pouvons pas trouver d'assembleur et désassembleur aussi facilement qu'un éditeur hexadécimal, donc on va faire avec ce qu'on a mais avant on va analyser le code :
On nous montre le code machine et le code assembleur et ce fameux code machine c'est ce qu'on verra avec l'éditeur hexadécimal mais il faut le comprendre pour ne pas faire de gaffe, 6880020000 <= push 00000280h, donc le 68 nous aidera à trouver la valeur dans le code machine avec l'éditeur hex et le 80020000 est la valeur envoyé à la fonction... mais il semble qu'il y ai un petit problème, c'est écris 80020000 et pas 00000280... Bah, ..., Le processeur n'interprête pas les nombres comme nous ... nous les lisons de droite à gauche chiffre par chiffre et le proc' les lis de gauche à droit octets par octets donc pour nous AaBbCcDd c'esr DdCcBbAa pour le proc donc faites gaffe quand vous mettrez les valeurs.
Maintenant, on doit ouvrir un éditeur hexadécimal, le fichier Game.exe et modifier les valeurs, il faudra chercher 6880020000 et remplacer 80020000 qui est la largeur par celle que vous souhaitez en hex exemple : 00010000 pour 256px, il faut faire de même avec la hauteur qui se trouve juste avant (68E0010000) que vous remplacerez par la valeur que vous voulez aussi en hex exemple : E0010000 => 90010000 pour 400px. La fenêtre créé par Game.exe est maintenant à la bonne résolution... mais elle sera modifié par le RGSS.



IV - Modification de la résolution dans la DLL

Cette fois ci, trouver les valeurs est plus dur, donc je vais vous donner les offset de celle ci comme ça il n'y aura plus qu'a les modifier, attention c'est des variables donc il n'y aura pas de commande devant (68).
Pour la largeur : 8C7EE, pour la hauteur : 8C7F8, il faut mettre les valeurs qui ont été mise dans Game.exe, après vous allez au début du fichier à l'offset 4E et vous écrivez ce qui permet aux script de savoir que c'est le bon fichier.
Si tout est bien fait, le jeu devrai se lancer avec la bonne résolution et y rester.



VII - Convertir les valeurs

Pour convertir vos valeur il suffit d'utiliser la calculatrice de Windows et la passer en mode programmeur, vous entrez la valeur en Decimal, puis vous demandez l'affichage en Hex. Vous obtenez 280(00000280) pour 640, il faut renverser tous les octets pour les insérer à la place des valeurs par défauts dans les fichier : 00 00 02 80 => 80 02 00 00.


Voilà. (c'est pas vraiment de la qualité mais, je pense qu'il y a ce qu'il faut et ça m'évitera de toujours avoir à répondre aux MPs à propos de ça.)


Dernière édition par Nuri Yuri le Sam 13 Aoû - 20:43 (2011); édité 1 fois
Revenir en haut
Facebook Twitter
Publicité






MessagePosté le: Dim 31 Juil - 12:58 (2011)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Zbooby
Membre


Inscrit le: 26 Mar 2011
Messages: 123

MessagePosté le: Dim 31 Juil - 13:49 (2011)    Sujet du message: Modifier la résolution du RGSS Player

1er essais... Echoué, je relis et je recommence !
Merci pour ton tuto Yuri :D


EDIT: Deuxième essais... Reussi, Merci !
Revenir en haut
Bati
Membre


Inscrit le: 19 Juin 2011
Messages: 378
A LOTTA !
Localisation: Corté

MessagePosté le: Sam 15 Oct - 14:10 (2011)    Sujet du message: Modifier la résolution du RGSS Player

J'ai bien compris jusqu'au III, après j'avoue ne rien avoir compris a ton histoire d'héxadécimal, aurais-tu la gentillesse de m'expliquer?
Revenir en haut
Nuri Yuri
Administrateur
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté le: Sam 15 Oct - 15:49 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Tu dois convertir la résolution voulue en hexadécimal puis retourner les paires de nombres hexadécimaux pour qu'ils soient compris correctement par le programme.
256x192 donnerai : 256 = 00 00 01 00 et 192 = 00 00 00 c0 puis tu les retournes donc 256 = 00 01 00 00 et 192 = c0 00 00 00, après tu prends un éditeur hexadécimal puis tu y entre ces nombres aux adresses voulues.
Revenir en haut
Facebook Twitter
Guigui28240
Membre


Inscrit le: 19 Juil 2011
Messages: 163
Localisation: Chartres

MessagePosté le: Sam 15 Oct - 22:59 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Salut je n'ai pas compris non plus pourrais-tu le refaire avec plus de screens ou une video stp?
Revenir en haut
Skype
Nuri Yuri
Administrateur
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté le: Dim 16 Oct - 12:26 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Je vous ai fait un patcher comme ça ça ne sera pas trop dur pour vous.
Téléchargement : http://www.megaupload.com/?d=8WPC7OGY
Ouvrez le fichier Game.ini et modifiez les valeur de Width et Height.
Normalement le patcher devrai le voir, si vous n'avez pas mis les bonnes changez les et appuyez sur X ou Echap quand il vous demande si c'est la bonne résolution.
Si vous appuyez sur Entrée le patch s'effectue et se ferme.
Revenir en haut
Facebook Twitter
Kosuke Kyuu
Membre


Inscrit le: 09 Juin 2011
Messages: 87

MessagePosté le: Ven 21 Oct - 21:17 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Oh excellent Yuri !
J'ai testé et c'est vraiment sympa ^^


Faut-il préciser que si on utilise ton patch sur un "nouveau projet" avec RPG Maker XP, il ne faut pas oublier de remplacer dans Game.ini :

 
Library=RGSS100J.dll  par Library=RGSS104E.dll ?

Au passage, on ne pourrait automatiser cela, non ? (créer/modifier un Game.ini qui par le fait changerai cela)


ça servira certainement à certains ^^ (à moi, c'est fort possible)
Revenir en haut
Nuri Yuri
Administrateur
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté le: Ven 21 Oct - 23:05 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Renomme simplement RGSS104E.dll en RGSS100j.dll
J'utilise RMXP 1.03 donc c'est RGSS104E.dll mais vous c'est RMXP 1.01 donc RGSS100J.dll, RMXP modifie sans qu'on lui demande le nom de la lib dans le fichier INI alors vaut mieux renommer la lib c'est moins chiant.
Revenir en haut
Facebook Twitter
Kosuke Kyuu
Membre


Inscrit le: 09 Juin 2011
Messages: 87

MessagePosté le: Sam 22 Oct - 19:47 (2011)    Sujet du message: Modifier la résolution du RGSS Player

Ah, en effet xD
Merci une fois encore. ^^
Revenir en haut
og_loc-TATOO
Membre


Inscrit le: 11 Oct 2009
Messages: 3 383
Sailor Maniac
Localisation: noitasilacol

MessagePosté le: Mar 3 Juil - 14:04 (2012)    Sujet du message: Modifier la résolution du RGSS Player

Je remonte le topic pour poser deux question:

1) => Pourquoi avoir fait aussi compliquer pour modifier la taille ?

2) => Ton lien megaupload n'est plus valide, tu pourrais le mettre sur un autre support ?
Revenir en haut
Sphinx
Scribe
Scribe


Inscrit le: 07 Jan 2008
Messages: 9 736
Localisation: Quelque part, dans le monde... Ou peut être sur une autre planète...
ID Steam: FaQuinator

MessagePosté le: Mar 3 Juil - 16:47 (2012)    Sujet du message: Modifier la résolution du RGSS Player

og_loc-TATOO a écrit:
1) => Pourquoi avoir fait aussi compliquer pour modifier la taille ?


Parce qu'il n'y a pas 36 solutions différentes connues pour le faire Clin d'œil foireux
Revenir en haut
Pαlвσlѕку
Administrateur
Administrateur


Inscrit le: 17 Aoû 2008
Messages: 5 982
Masculin

MessagePosté le: Mar 3 Juil - 17:23 (2012)    Sujet du message: Modifier la résolution du RGSS Player

On peut aussi redimensionner par script, mais la redimension est visible alors que avec la méthode de Yuri elle n'est pas visible.
Les membres suivants remercient Pαlвσlѕку pour ce message :
og_loc-TATOO (03/07/12)
Revenir en haut
Skype
og_loc-TATOO
Membre


Inscrit le: 11 Oct 2009
Messages: 3 383
Sailor Maniac
Localisation: noitasilacol

MessagePosté le: Mar 3 Juil - 17:59 (2012)    Sujet du message: Modifier la résolution du RGSS Player

Ha ouais c'est vrai que c'est mieux ainsi ^^

Il n'y avait pas moyen de raccourcir la méthode ?
De faire en sorte de modifier dans une des catégorie pour que ça modifie aussi dans les autres ?
Revenir en haut
Kosuke Kyuu
Membre


Inscrit le: 09 Juin 2011
Messages: 87

MessagePosté le: Mer 12 Sep - 20:50 (2012)    Sujet du message: Modifier la résolution du RGSS Player

Bonjour/bonsoir à tous,

J'espère que quelqu'un ici a encore le contenu du lien de Nyuky car le lien est mort (c'est du MegaUpload).
Si quelqu'un l'a encore, j'aimerai qu'il (ou qu'elle) le réupload je lui en serais vraiment reconnaissant,

Kosuke Kyuu.
Revenir en haut
mario5102
Membre


Inscrit le: 21 Sep 2011
Messages: 59
ID Steam: mario5102

MessagePosté le: Dim 21 Juil - 18:18 (2013)    Sujet du message: Modifier la résolution du RGSS Player

possible de reuploader les fichier ? car ca m'aurais intérréssé et comme cela fait longtemps que je n'ai pas été actif ici :/
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 02:15 (2017)    Sujet du message: Modifier la résolution du RGSS Player

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Thème par Thomas et l'équipe de la refonte PSP 2012 (version 1.0)
Traduction par : phpBB-fr.com