Author Topic: Amstrad CPC (demande aide...)  (Read 3937 times)

Aeliss

  • Hero Member
  • *****
  • Posts: 915
Re: Amstrad CPC (demande aide...)
« Reply #8 on: March 28, 2020, 03:24:37 AM »
C'etait un script pour mGalaxy ^^, mais une vielle version, pas besoin du support zip mais je pense que le truc important est la

Code: [Select]
IniWrite ( "WinApe.ini", "Drives", "Drive(1)", $file2 & '\:' & $liste2 )
Je modifiais le fichier ini avant de lancer winape.

Superfrog57

  • Full Member
  • ***
  • Posts: 108
    • Email
Re: Amstrad CPC (demande aide...)
« Reply #7 on: March 27, 2020, 12:58:24 PM »
Et tu vas pouvoir en faire quelque chose avec mGalaxy ?
« Last Edit: March 27, 2020, 01:12:32 PM by Superfrog57 »

Aeliss

  • Hero Member
  • *****
  • Posts: 915
Re: Amstrad CPC (demande aide...)
« Reply #6 on: March 27, 2020, 10:22:06 AM »
De mon coté j'avais un script a l'epoque quand je me servais de winape, qui permet aussi d'utiliser des zip du coup

Code: (autoit) [Select]
#include <array.au3>
#include <File.au3>


;Parsing
Local $count = StringInStr($CmdLineRaw, ".exe", 0 , 1, 1)
local $app = StringLeft ( $CmdLineRaw, $count + 4 )
local $command = StringTrimLeft( $CmdLineRaw, $count + 4 )
if not $command then exit 0
     
;HotKeySet("{ESC}", "Terminate")

;Correction to use zipfile
local $file = StringTrimRight( $command, 4 )
$file = StringTrimLeft ($file,1)
local $liste = _Zip_List($file)
IniWrite ( "WinApe.ini", "Drives", "Drive(0)", $file & '\:' & $liste[1] )

;If there is 2 D7
if StringInStr($file,"(Disk 1 of") Then
   local $file2 = StringReplace($file,"(Disk 1 of","(Disk 2 of",0,2)
   local $liste2 = StringReplace($liste[1],"(Disk 1 of","(Disk 2 of",0,2)
   IniWrite ( "WinApe.ini", "Drives", "Drive(1)", $file2 & '\:' & $liste2 )
endif
     
;$PID = Run ( '"' & $app & '" ' & $file & '\:' & $liste[1] & ' /A' )
$PID = Run ( '"' & $app & '" ' & $command )

While ProcessExists ( $PID )
   sleep(500)
WEnd
     
Exit 0
     
     
;Functions
;Func Terminate()
;   While ProcessExists ( $PID )
;   ProcessClose ( $PID )
;   WEnd
;   Exit 0
;EndFunc



;==========================================================================
;
; Function Name:    _Zip_DllChk()
; Description:      Internal error handler.
; Parameter(s):     none.
; Requirement(s):   none.
; Return Value(s):  Failure - @extended = 1
; Author(s):        smashley
;
;===============================================================================
Func _Zip_DllChk()
If Not FileExists(@SystemDir & "\zipfldr.dll") Then Return 2
If Not RegRead("HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}", "") Then Return 3
Return 0
 EndFunc   ;==>_Zip_DllChk
 
;===============================================================================
;
; Function Name:    _Hide()
; Description:      Internal Function.
; Parameter(s):     none
; Requirement(s):   none.
; Return Value(s):  none.
; Author(s):        torels_
;
;===============================================================================
Func _Hide()
If ControlGetHandle("[CLASS:#32770]", "", "[CLASS:SysAnimate32; INSTANCE:1]") <> "" And WinGetState("[CLASS:#32770]") <> @SW_HIDE Then ;The Window Exists
$hWnd = WinGetHandle("[CLASS:#32770]")
WinSetState($hWnd, "", @SW_HIDE)
EndIf
 EndFunc
 
 ;===============================================================================
;
; Function Name:    _IsFullPath()
; Description:      Internal Function.
; Parameter(s):     $path - a zip path
; Requirement(s):   none.
; Return Value(s):  success - True.
;                                       failure - False.
; Author(s):        torels_
;
;===============================================================================
Func _IsFullPath($path)
    if StringInStr($path,":\") then
        Return True
    Else
        Return False
    EndIf
Endfunc



;===============================================================================
;
; Function Name:    _Zip_List()
; Description:      Returns an Array containing of all the files contained in a ZIP Archieve.
; Parameter(s):     $hZipFile - Complete path to zip file that will be created (or handle if existant)
; Requirement(s):   none.
; Return Value(s):  On Success - 0
;                   On Failure - sets @error 1~3
; @error = 1 no Zip file
; @error = 2 no dll
; @error = 3 dll isn't registered
; Author(s):        torels_
;
;===============================================================================
Func _Zip_List($hZipFile)
local $aArray[1]
Local $DLLChk = _Zip_DllChk()
If $DLLChk <> 0 Then Return SetError($DLLChk, 0, 0) ;no dll
If not _IsFullPath($hZipFile) then Return SetError(4,0) ;zip file isn't a full path
If Not FileExists($hZipFile) Then Return SetError(1, 0, 0) ;no zip file
$oApp = ObjCreate("Shell.Application")
$hList = $oApp.Namespace($hZipFile).Items
For $item in $hList
_ArrayAdd($aArray,$item.name)
Next
$aArray[0] = UBound($aArray) - 1
Return $aArray
EndFunc   ;==>_Zip_List

Superfrog57

  • Full Member
  • ***
  • Posts: 108
    • Email
Re: Amstrad CPC (demande aide...)
« Reply #5 on: March 26, 2020, 11:03:41 AM »
Je viens à ton aide en te mettant ma version (déjà prête en azerty mais pas en fullscreen pour l'instant, tu pourras voir que ça fonctionne déjà, lol) ainsi qu'une disquette DSK...

https://1fichier.com/?8i59zgddu0042vs811o2

Tu feras File / Drive A / Insert disc et tu pointeras le jeu DSK

Rien ne se passe et c'est normal, tu tapes:

run"1942

mgalaxy

  • Administrator
  • Hero Member
  • *****
  • Posts: 1168
    • Email
Re: Amstrad CPC (demande aide...)
« Reply #4 on: March 26, 2020, 09:04:14 AM »
Je t'avoue que c'est pas gagné ;)...déjà lancer un disque depuis WinApe, j'y arrive pas! J'ai bien coché la case de lancement automatique...mais j'ai sans cesse le message selon lequel WinApe n'a pas pu créer le disque!?

Superfrog57

  • Full Member
  • ***
  • Posts: 108
    • Email
Re: Amstrad CPC (demande aide...)
« Reply #3 on: March 25, 2020, 11:24:30 PM »
Voilà ce dont j'ai trouvé :

http://www.winape.net/help/parameters.html

La commande de mGalaxy déjà intégrée automatiquement (<Cmd extensions=".dsk,.zip" value=""%path\%file%ext" /A" name="WinAPE [Script]" hidden="false"/>)
La commande /A spécifie apparemment le choix du lecteur A et ça fonctionne mais le lecteur de disquette est  désespérément vide ! WinApe a besoin de savoir quelle disquette mettre dans le lecteur A
J'ai essayé quelques commandes mais rien n'y fait...
« Last Edit: March 25, 2020, 11:41:05 PM by Superfrog57 »

mgalaxy

  • Administrator
  • Hero Member
  • *****
  • Posts: 1168
    • Email
Re: Amstrad CPC (demande aide...)
« Reply #2 on: March 25, 2020, 02:47:16 PM »
Peux tu nous dire ce dont WinApe a besoin pour être lancé en ligne de commande...et pour que ce ne soit pas tjrs. le même jeux qui se lance? C'est quoi le principe..qu'est ce qu'il attend comme info?

Superfrog57

  • Full Member
  • ***
  • Posts: 108
    • Email
Amstrad CPC (demande aide...)
« Reply #1 on: March 25, 2020, 11:18:08 AM »
Sur la ligne de commande de l'émulateur, à savoir :

<Cmd extensions=".dsk,.zip" value=""%path\%file%ext" /A" name="WinAPE [Script]" hidden="false"/>

il doit manquer quelque chose car si Winape se comporte bien en fullscreen et ESC avec le script, il n'en est rien au niveau du lancement d'un jeu : si sous Windows pendant les essais tout se déroule bien, sous mGalaxy, l'émulateur lance toujours la même rom (la dernière qu'on a essayé !). On a beau essayer de sélectionner une autre rom, rien n'y fait...

Merci d'y jeter un oeil...