Pokémon Script Project Forum Index

Manuel | Search
 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
Goto page: 1, 2  >
 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Tutoriels
Previous topic :: Next topic   
Author Message
Nuri Yuri
Team SDK


Joined: 15 Oct 2008
Posts: 6,383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

PostPosted: Sun 31 Jul - 12:58 (2011)    Post subject: 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.)


Last edited by Nuri Yuri on Sat 13 Aug - 20:43 (2011); edited 1 time in total
Back to top
Facebook Twitter
Publicité






PostPosted: Sun 31 Jul - 12:58 (2011)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Zbooby
Membre


Joined: 26 Mar 2011
Posts: 123

PostPosted: Sun 31 Jul - 13:49 (2011)    Post subject: 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 !
Back to top
Bati
Membre


Joined: 19 Jun 2011
Posts: 378
A LOTTA !
Localisation: Corté

PostPosted: Sat 15 Oct - 14:10 (2011)    Post subject: 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?
Back to top
Nuri Yuri
Team SDK


Joined: 15 Oct 2008
Posts: 6,383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

PostPosted: Sat 15 Oct - 15:49 (2011)    Post subject: 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.
Back to top
Facebook Twitter
Guigui28240
Membre


Joined: 19 Jul 2011
Posts: 163
Localisation: Chartres

PostPosted: Sat 15 Oct - 22:59 (2011)    Post subject: 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?
Back to top
Skype
Nuri Yuri
Team SDK


Joined: 15 Oct 2008
Posts: 6,383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

PostPosted: Sun 16 Oct - 12:26 (2011)    Post subject: 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.
Back to top
Facebook Twitter
Kosuke Kyuu
Membre


Joined: 09 Jun 2011
Posts: 87

PostPosted: Fri 21 Oct - 21:17 (2011)    Post subject: 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)
Back to top
Nuri Yuri
Team SDK


Joined: 15 Oct 2008
Posts: 6,383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

PostPosted: Fri 21 Oct - 23:05 (2011)    Post subject: 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.
Back to top
Facebook Twitter
Kosuke Kyuu
Membre


Joined: 09 Jun 2011
Posts: 87

PostPosted: Sat 22 Oct - 19:47 (2011)    Post subject: Modifier la résolution du RGSS Player

Ah, en effet xD
Merci une fois encore. ^^
Back to top
og_loc-TATOO
Membre


Joined: 11 Oct 2009
Posts: 3,383
Sailor Maniac
Localisation: noitasilacol

PostPosted: Tue 3 Jul - 14:04 (2012)    Post subject: 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 ?
Back to top
Sphinx
Scribe
Scribe


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

PostPosted: Tue 3 Jul - 16:47 (2012)    Post subject: Modifier la résolution du RGSS Player

og_loc-TATOO wrote:
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
Back to top
Pαlвσlѕку
Team SDK


Joined: 17 Aug 2008
Posts: 5,983
Masculin

PostPosted: Tue 3 Jul - 17:23 (2012)    Post subject: 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.
Following members like this message:
og_loc-TATOO (03/07/12)
Back to top
Skype
og_loc-TATOO
Membre


Joined: 11 Oct 2009
Posts: 3,383
Sailor Maniac
Localisation: noitasilacol

PostPosted: Tue 3 Jul - 17:59 (2012)    Post subject: 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 ?
Back to top
Kosuke Kyuu
Membre


Joined: 09 Jun 2011
Posts: 87

PostPosted: Wed 12 Sep - 20:50 (2012)    Post subject: 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.
Back to top
mario5102
Membre


Joined: 21 Sep 2011
Posts: 59
ID Steam: mario5102

PostPosted: Sun 21 Jul - 18:18 (2013)    Post subject: 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 :/
Back to top
Contenu Sponsorisé






PostPosted: Today at 13:31 (2019)    Post subject: Modifier la résolution du RGSS Player

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Tutoriels All times are GMT + 1 Hour
Goto page: 1, 2  >
Page 1 of 2

 
Jump to:  

Index | Free forum | Free support forum | Free forums directory | Report a 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)