================================================================================
  Title: CVGSUtil
  Version: 0.4.3 hitobashira
  Copyright: (C)Dr.Hell, 2001
  Web: http://members.tripod.co.jp/DrHell
       http://members.tripod.co.jp/DrHell/labo/
================================================================================

My pen name is 'Dr.Hell' in English or 'Ɠcn' in Japanese.  I live in Nippon(true name of Japan).  I cannot write English well.  Please guess.

{͉̕ɂ܂B


Introduction
------------
CVGSUtil is an all-in-one utility for Connectix Virtual Game Station the PlayStation emulator.  And it will be useful for another PlayStation emulators.  It has several functions as follows, and most functions support drag-and-drop.


[Memory Card] section is a graphical memory card image file manager.
--------------------------------------------------------------------

1. Image files supported to read and write

    CVGS files              (*.mem)
    MemCard files           (*.mc)
    ePSXe, PSEmuPro files   (*.mcr)
    bleem! files            (*.mcd)
    MCExplorer files        (*.mci)
    Winpsm files            (*.ps)
    Memory Juggler files    (*.ps1)
    Memoritoru files        (*.psm)
    DataDeck files          (*.ddf)
    Other raw image files

2. Individual-save-data files supported to read and write

    DATEL files             (*.mcx, *.pda, etc..)
    Memoritoru files        (*.mcb)
    Memory Juggler files    (*.pss)

3. Image files supported only to read

    PSM.COM files           (*.psx)
    DataDeck files          (*.gme)
    Gif-headered CVGS files (*.mem) ... modified by ePSXe
    Other header added raw image files

4. Individual-save-data files supported only to read

    Some minor files, hard to explain

CVGSUtil deals with individual-save-data files, so I don't feel to support copying an individual-save-data between image files.  Do you copy files between floppy disks even now?  When you want to delete or save one save-data in an image file, double-click on the icon which you want to.

CVGSUtil can convert not only PSIcons but also PKIcons to bmp files.  Click [Icon] button.


[Setup Controller..] section is a controller manager.
-----------------------------------------------------
There is a local but terrible problem in CVGS.  CVGS's 'Setup Controller..' does not act on Japanese(maybe 2byte character) supported Windows.  CVGSUtil reads and writes the registry directly to setup.

Setup instruction

  1)  Click [Controller1] .. [Demo Ctrl2] button which you want to setup.
  2)  Click [Up] .. [R2] button which you want to change association.
  3)  push a key, push a button of joy device or click Magic button.
  4)  Repeat from 2) to 3).
  5)  Click [Set Registry] button.


[Games.txt] section is an editor of 'games.txt'.
------------------------------------------------
What is 'games.txt'?  It is a list of parameters to optimize the working of CVGS for some games.  It is similar to 'bleem.ini' file of bleem!.  Put it into the folder where "Connectix VGS.exe" exists.


[Action Replay] section is a cheater like PAR for PlayStation emulators.
------------------------------------------------------------------------

1.  Emulators supported

  Connectix Virtual Game Station
  ePSXe
  bleem!
.. and all emulators if you edit the APPLIST.TXT

If you want to search your own codes, try my another program 'cep'.

2.  Cheat codes supported

CVGSUtil(and cep) has two code-engines.
The one supports major codes used in 'caetla', another bios for PAR, as follows.
+------------------------------------------------------------------------------+
|  3aaaaaaa 00dd     : Write simply ( 8 Bit)                                   |
|  8aaaaaaa dddd     : Write simply (16 Bit)                                   |
|  9aaaaaaa dddddddd : Write simply (32 Bit)                                   |
|  Blllaaaa dddddddd : Repeat(with 3, 8 and 9 code)                            |
|  Caaaaaaa 00dd     : Ignore one following code if not equal ( 8 Bit)         |
|  Daaaaaaa dddd     : Ignore one following code if not equal (16 Bit)         |
|  Eaaaaaaa ddddllll : Ignore several following codes if not equal (16 Bit)    |
+------------------------------------------------------------------------------+
The other supports 30,80,10,11,20,21,50,D0,D1,D2,D3,E0,E1,E2,E3,C0,C2 codes.  These are PAR-compatible(?) codes.  When you use the latter, check 'PAR' box.

3.  Cheat instruction

  1) Select an emulator from [Select Application] list.

  1.5) When you select an emulator, 'Process Name' and 'Base Address' are determined.  But in some emulators, you have to search base address before cheating, because it depends on surroundings.  Start an emulator, start a game, select a kind of a game from [B. A. Search] list and click [B. A. Search] buttton.

  2) Input cheat codes where the sentence "Input Codes" is written. (or drag and drop a text file).

  3) Click [On] button to activate codes.

*** When can I start an emulator?

  Connectix VGS, ePSXe     : before 3)
  bleem!, SNEShout, etc... : before 1.5)

4.  Tips

In case of CVGS, push Alt + Tab keys to come back from FULL SCREEN MODE.

The value next to [Save] button means an interval to cheat.  When the value is 50, codes act every 50 milli seconds IN IDEAL.  But it depends on application's priority or so.

The value next to [Off] button means CVGSUtil's priority.
  0:  Normal
  1:  Low
  2:  High
  3:  Very high

CVGSUtil remember only 127 codes.  Even if you input over 128 codes, the overs do not act.


Operating Systems Required
--------------------------
Windows 95/98/NT4/NT5/NT5.1(95/98/NT4/2000/XP)


Update(0.4.2a->0.4.3 hitobashira version)
---------------------
Language file was supported.
Edit "CVGSUTIL.LNG" for your language.
(Of counrse, CVGSUtil works without this file. English user should delete this file.)


Update(0.4.2->0.4.2a)
---------------------
[Action Replay]
The way to find Process Name on NT4 was fixed.


Update(0.4.1a->0.4.2)
---------------------
[Action Replay] section can work on windows NT4 now.
But emulators which work on windows NT4 are only legacy machine emulators and base address will be different, hehehe...


Update(0.4.1->0.4.1a)
--------------------
[Memory Card]
Minor Update.
[Action Replay]
The way to search base address was changed.


Update(0.4.0->0.4.1)
--------------------
[B. A. Search] list was added (to customize the way to search base address).


Update(0.3.9a->0.4.0)
---------------------
[Memory Card]
Icon animation was supported.
[Setup Controller..]
Responce to joy device was supported(so, Joy Pad List was taken away).


Update(0.3.9->0.3.9a)
---------------------
It's a very small change.  Little worth to update.
[Action Replay]
The process list was updated like cep 0.1.6.

[Technical]
*A little bit speed up in [Memory Card]


Update(0.3.8->0.3.9)
---------------------
[Action Replay] 
The way to search base address was changed.(faster than before at least in case of bleem!)
Application List = User Editable Emulator List was supported.(Edit APPLIST.TXT and put it into CVGSUtil's folder)
Code List was supported.(Edit CODELIST.TXT & CODEINDX.TXT and put them into CVGSUtil's folder)

You can input Process Name & Base Address in CODE area.

usage)
"Title of game" | Process Name | Base Address
ex.)
"DEMO GAME" | DEMO.EXE | 05100000


Update(0.3.7c->0.3.8)
---------------------
[Action Replay] 
Another code engine and some small functions were supported.


Thanks
------
501XX san presented a corrected-colored icon, information of base address and some ideas of useful functions.
Thank you very much!






Written in Japanese..

CVGSUtil  PlayStation G~[^ł Connectix Virtual Game Station ̂߂ɊJ[eBeBłA PlayStation G~[^ɂg֗ȋ@\LĂ܂B̋@\hbOhbvT|[gĂ܂B


Memory Card ^u̓[J[hC[W}l[WłB
--------------------------------------------------------
PS[J[hC[ẂAA̎ނ݂悤Ɍ܂APɊgqقȂꍇwǂłBCVGSUtil͊gqɂt@CȂǂƂs͂Ă܂BƂ̂ȂgqPS[J[hC[WłAxhbvČĂB\ǂ߂܂B
C[Wt@Ĉ݂Ȃ炸Aʂ̃Z[uf[^t@C̓ǂݏɑΉĂ邽߁AC[WԂŃZ[uf[^Rs[Ƃ͂Ƃ܂Btbs[fBXNԂŃRs[Ȃ̂ƓlłB
C[W 1 Z[uf[^A܂̓t@Cɕۑꍇɂ́Ãf[^̃ACR_uNbNAbZ[Wɏ]ĉB
܂ACVGSUtil ɂ̓ACR BMP `ŕۑ@\܂BvXeACRłȂ|PXeACRɂΉĂ܂A܂茵Ƀ`FbNĂdȂ̂ŁAÂ\tg̃Z[uf[^ł́A|PXeACRƌFĂ܂ꍇ܂BQȂ̂ŕĂ܂B

gqقȂ邾Ƃ͎̂኱ꕾ邱Ƃ͏mĂ܂B
CRCƂƈႢ܂ˁBƂ͂AōoĂ邩ƂƁA
Iȃf[^ȊO̕łAǂ̂悤ɈقȂ낤Ǝpɂ͂Ȃ܂B
ɂȂƂɐl͐ė~̂łB


Setup Controller.. ^u̓Rg[}l[WłB
-----------------------------------------------------
CVGS ̓{ Windows L(炭 2 oCg Windows łN)ő̖́ACVGS t Setup Controller @\ȂƂł傤BȂL[ݒ񎩑̂̓WXgɕۑĂA𒼐ڏĂ邱ƂŔCӂ̃L[ݒ肪\łB

@

1) ύXRg[̃{^iController1  Demo Ctrl2 {^j܂B
2) ֘AtύX{^܂B
3) {^]AVɊ֘AtL[WCpbh̃{^܂B
4) 2)3)JԂ܂B
5) ύXʂWXgɏނ Set Registry {^܂B


Games.txt ^u games.txt GfB^łB
-----------------------------------------
games.txt Ƃ Q[ CVGS ̓@œK邽߂̐ݒlꂽeLXg`̃t@CłACVGS ƓtH_ɒuƂŋ@\܂Bbleem!  bleem!.ini t@CƓl̂̂ƍlėǂł傤B[XɏoĂQ[AConnectix mFłȂ̂[UőΏ邽߂ɑgݍ܂ꂽ̂Ƒz܂Aɂ݂͌JłBo[W 1.4.1 őgݍ܂ꂽ@\łB


Action Replay ^u PlayStation G~[^p̃vANVvCłB
-----------------------------------------------------------------------------
ΉG~[^͈ꉞACVGS, ePSXe, bleem! ƂĂ܂AProcess Name  Base Address Cӂɐݒł܂̂ŁA㋉҂Ȃ΁ASĂ Windows AvP[Vɑ΂ĉp\łBΉR[h͉pQƂĉB

@

1) [Select Application]XgG~[^I܂B

1.5) ʂƂ"Process Name""Base Address"ݒ肳܂ABase AddressɈˑG~[^̏ꍇ͓ROɌĂKv܂BG~[^NAQ[NAQ[̎ނ[B. A. Search]XgIāA[B. A. Search]{^܂B

0.3.9́A
"Q[̃^Cg" | GAME.EXE | 04000000
ƂɃR[h͕ Process NameABase Adress ͂邱Ƃo܂B

2) "Input Codes"ƏꂽɃR[h͂܂(eLXgt@ChbOAhhbvł\ł)B
3) [On]{^܂B

*** G~[^N^C~O?
  Connexctix VGSePSXeȂǁAx[XAhXɈȃG~[^̏ꍇ 3)ȑOȂΉNĂ\܂B
x[XAhXϓ^Cv́AOɌs˂΂ȂȂ߁AKRI1.5)ȑOɋN邱ƂɂȂ܂B

m

CVGS IɑSʃ[h甲邽߂ɂ Alt L[ Tab L[𓯎ɉ܂B

[Save]{^ׂ̗̐l̓pb`𓖂ĂC^[oŁAPʂ͐番̈błB܂ŗ_̒lłAvZX̗D揇ʂȂǂɈˑāAȂϓ邱Ƃ܂B

[Off]{^ׂ̗̐l CVGSUtil ̗D揇ʂłBD揇ʂ邱ƂŐݒɋ߂^C~OŃpb`𓖂Ă邱Ƃł悤ɂȂ܂A̕G~[^̓삪xȂꍇ܂Bil: D揇 ... 0: ʏA1: ႢA2: A3: ɍj

R[h͍ő127܂łL܂B128ȍ~͖܂B


XVe(0.4.2a->0.4.3[l])
-----------------------
PC-JapanɌfڂ炵̂ŁAvXɍXVĂ݂܂A@\IȌ͂܂B
u{ł͂Ȃ̂łvƂÂ₪邱Ƃ\ẑ
łāAt@C"CVGSUTIL.LNG"T|[głBňtɏĉB
Ƃ͂Aӏ͑ɋyт܂̂ŁA؂͖wǂłĂ܂̂ŁA[l]Ƃ܂B
̂łoł傤BePSXe 1.51ɏo邱ƂłBoĂ肵āB

ˑRÃvO~Oj͊тĂ܂̂ŌSB
܂AR[hXg܂߁AOt@C͕K{ł͂ȂALΎgƂpłB



XVe(0.4.2->0.4.2a)
-----------------------
[Action Replay]
NT4ł̃vZX̎擾@PB
ǂ悤Ȃ̓vZXIDőցB
BASEARCH.TXTYAMENTł̒`ǉBWin2000/XPɑΉł邾낤B


XVe(0.4.1a->0.4.2)
-----------------------
[Action Replay]ZNVNT4ł\ɂB


XVe(0.4.1->0.4.1a)
-----------------------
[Memory Card]
[WO[̃C[W̒ǉłAPɃ_CAOɊgqǉłBOq̂悤ɁAPS̃[J[hC[W99%߂̓wb_{C[WAtb^ȂƂ`łAɑ啔̓wb_̂Ȃ`ŁAIɂ͓̂̂ł邱Ƃ炢͉ĂǂƎv܂B

ƌʃt@CƂMCSakura`(IMemory Juggler`)ł̕ۑǉĂ݂܂B\z郁[WO[[Uւ̑΍łAlIDATEL݊`ȊO͂ƂĂX}[gƂ͌Ȃ`ł̂ŁA߂炢܂BPCŃC[WɕҏWĂ]΍ςނƂł܂B

[Action Replay]
x[XAhX̌ɂă}XNǉ܂B
ɂPlayStationɂē{USQ[̋ʖA̒`Ō\ɂȂʁA]BASEARCH.TXTƂ͌݊ȂȂĂ܂܂B



XVe(0.4.0->0.4.1)
-----------------------
Xł...
OXgɂāA؂'|'...AXL[ԍ=$7C ɂĂ܂AႦ'|'Ƃ$8D,$7CȂ킯łāA܂ł͋؂ƌFĂ܂Bo[W'|'̑Oɉ݂邩̔ǉ܂(̕xȂ͂łÅłȂxł傤)B
łɃR[hXgɈꕔp^Cgǉ܂BPAR1.94q؂̂ŌÂ̂͌䊨فBƂ͎ۂɎgp邱ƂړIɂ̂ł͂܂Bʘ_Ƃĉp̃lCeBuXs[J̑͑ւ̓K\͂ႭA۔Xɂ܂Aւ̊ɘałB

^C}[荞݊֌W̎dlύX܂B
]̓^C}[CxgƁA[^C}[~߁AI_Ń^C}[Ďn邱ƂŃ^C}[Cxg܂Ȃ悤ɂĂłǁAO[oϐ݂āACxgɑ΂鉞IĂ̂`FbNɕύX܂B

x[XAhX̌@JX^}CYł悤ɂ܂BPlayStaionG~[^ւ̑Ή\ɂʁA]̗lɎIɌ@ςăgRgƂƂ͏oȂȂĂ܂B[About]ZNVɈӖsȓ͏ꏊĂ܂Aɂ̓x[XAhX@̃p[^i[܂BOt@CҏW΃JX^}CY\Ȃ̂Ŕ\ɂĂǂłǁAƂȂCȂAƂ[Action Replay]ZNV͔zu]TȂ̂ŁAɊԎ؂肳Ă܂B

[Setup Controller]
̓͂̔AlƂ̔rɂsĂ̂ł(ς炸j[gl͏肭oł܂)AOł͂̏l̎擾ANɂ̂ݍsĂ߁A̎Rg[ɕςȓd|Ă肵āAςȏl擾Ă܂ꍇɂ́ACVGSUtilċNȂƂ܂łBقǕׂ̊|鏈łȂ̂ŁA֘AÂύX{^ɏl擾悤ɕύX܂Bv͍ċNȂĂǂȂ܂B


XVe(0.3.9a->0.4.0)
-----------------------
[Memory Card]
ACRAj[VɑΉ܂B܂AACRo@\Ă悤ɁAf[^ƂĂ͈ȑO玝ĂłǁA^C}[荞݂𑝂₷̂ŝŁA܂Ŏ~߂Ă܂B


CVGSUtil 0.4.0ł3̃^C}[荞݂݂܂B
ڂ́A]炠Action Replay@\̂߂̊荞
ڂ́AACRAj[V̂߂̊荞
Oڂ́AjoyfoCX̏Ԍô߂̊荞
łB
ACRAj[V̂߂̊荞݂́AACR\̉̃{bNX`FbNƃIɂȂA`FbNOƃItɂȂ܂B
joyfoCX̂߂̊荞݂́A֘AtύX{^ƃIɂȂA֘AtIƃItɂȂ܂B
̃^C}[荞݂ȈԂɂ̂́A܂]܂Ԃł͂ȂƂƂĂĉB

[Setup Controller..]
҂v܂BJoyfoCXɔł悤ɂȂ܂BɂƂȂJoy PadXgp~܂B
(API̎dlƂẮÃj[gloł͂ȂłǁA肭Ȃ̂ŁAŇolj[glƌȂĂ܂BNɂ͎j[gԂɂĉB
ς炸DirectX͖gpłB)

[S]
[gfBNgł̓Xgǂݍ߂ȂAnȃoOC܂B


XVe(0.3.9->0.3.9a)
-----------------------
{ɂƂXVł̂ŖɃAbvf[gKv͂܂B
[Action Replay]
cep 0.1.6ƓlɃvZXXg̍XV܂B

[ZpIȘb]
*[Memory Card]ƂȂ͂ł(̊͂łȂł傤)B
()
 v0.3.9             v0.3.9a
 A := A mod 8;   => A := A and 7;
 A := A * $2000; => A := A shl 13;
O҂̗pĂ̂́AO҂͔ėpłAeiXyłB
0.3.8-9Ő[ȃoO̘b͕Ȃ̂ŁA҂ɕύX܂B

*ImۂC̃X^Ĉ܂܎Ă̂ł(XMac[UȂ̂C̕)ÃX^CDelphiƃoO鋰ꂪ邱Ƃŋ߂ɂȂĕ̂ŏC܂BƂ͌v0.3.9ɂămۂĂȂԂł̏ɐiނƂ͂Ȃ̂ŎۂɃoO邱Ƃ͂܂(܂ifɂ邾ʂł)B
()
// In C
if (B != NULL) free(B); // CƃG[ɂȂ܂B
// In Delphi
if B <> nil then Free(B); // ɊJĂAmۏoĂȂꍇ̓G[ɂȂ܂B

*ʂȃ[`̍폜
*cepłĂłAiKł̓CxgɊ֘Atꂽ֐̒ɓWJĂ̂Aėp֐ƂĒoƂĂœIɂ͌\Ă܂Bx͒ቺłǂ(Delphi2̓CCWJ̓T|[gĂȂ...Ǝv)B


XVe(0.3.8 -> 0.3.9)
-------------------------
[Action Replay]
cepŒǉ@\𔽉fȂ̂ŁAŐVcepgĂlACheatȂl̓Abvf[gKv͂ȂƎv܂B


ӎ
----
501XXɏCACRAx[XAhX̏ȂтɗLvȋ@\̃ACfBA𒸂܂B
䋦́AӒv܂B


Ɛӓ
------
{\tgEFA͓{ɂʗpt[EFÅTOɑ̂łB
{\tgEFAgpƂɂ萶@Ȃ镾Qɑ΂Ă⏞v܂̂ŁA̎|ꂽ̂݌gpB
lɂĔzz͎Rƒv܂AEςȂ悤肢v܂B
pړIɓ]ڂꍇ͎(Ɠcn)ɑ΂鋖KvƂ܂B̓Iɂ͓]ڐ̏pړIv邱ƂɂȂƎv܂B


A
------
DrHell@lycos.jp
