faq.html 97 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889
  1. <html><head>
  2. <link rel="icon" href="images/icon.png" type="image/png">
  3. <title>uCON64 - FAQ</title></head><body bgcolor="#ffffff"><!-- text="#000000" link="#0000ee" vlink="#0000ee" alink="#ffffff"-->
  4. <!--style type="text/css">
  5. <!--
  6. a:hover{color:#ffffff;background-color:#0000ee;}
  7. img:hover{color:#0000ee;}
  8. a{text-decoration:none}
  9. -->
  10. </style--><tt>
  11. Q1: <a href="#1">Why uCON64?</a><br>
  12. <br>
  13. Q2: <a href="#2">How do I get started using uCON64?</a><br>
  14. <br>
  15. Q3: <a href="#3">How do I compile/build uCON64?</a><br>
  16. <br>
  17. Q4: <a href="#4">How do I install uCON64?</a><br>
  18. <br>
  19. Q5: <a href="#5">Sometimes my terminal seems to be locked after "ucon64 -xswc
  20. &#60;file&#62; | more"</a><br>
  21. <br>
  22. Q6: <a href="#6">How do I make uCON64 only display information about a ROM?</a><br>
  23. <br>
  24. Q7: <a href="#7">I have two parallel ports in my PC and my Flash Advance Linker
  25. is connected to the second. However, when I try to use uCON64 to send a demo
  26. to the FAL something goes wrong. What happened?</a><br>
  27. <br>
  28. Q8: <a href="#8">I tried to dump a SNES cartridge using a Super Wild Card
  29. connected to my PC with an interlink cable, but it did not work. What is
  30. wrong?</a><br>
  31. <br>
  32. Q9: <a href="#9">I have a SNES ROM of which GoodSNES says it is good, but
  33. uCON64 says it is bad. Who is right?</a><br>
  34. <br>
  35. Q10: <a href="#10">I have a SNES ROM of which Snes9x and ZSNES say it is bad,
  36. but uCON64 says it is good. Who is right?</a><br>
  37. <br>
  38. Q11: <a href="#11">I have a SNES ROM of which uCON64 said it was bad, so I used
  39. the -chk option. Now uCON64, Snes9x and ZSNES all say the ROM is good, but
  40. GoodSNES still says it is bad. How can that be, I did fix the ROM, right?</a><br>
  41. <br>
  42. Q12: <a href="#12">Some SNES games do not work on my Super Wild Card. What can
  43. I do about that?</a><br>
  44. <br>
  45. Q13: <a href="#13">Which backup devices are supported by uCON64?</a><br>
  46. <br>
  47. Q14: <a href="#14">I use Windows&nbsp;XP (NT/2000). When I try to run
  48. ucon64.exe under command.com (start -&#62; Run... -&#62; command) uCON64
  49. crashes. What do I do wrong?</a><br>
  50. <br>
  51. Q15: <a href="#15">I do not like the command line. Are there graphical
  52. frontends available?</a><br>
  53. <br>
  54. Q16: <a href="#16">Where do I get PPF, APS or IPS patches?</a><br>
  55. <br>
  56. Q17: <a href="#17">Where do I get ROMs/Games?</a><br>
  57. <br>
  58. Q18: <a href="#18">What does "[ROM|IMAGE|SRAM|FILE|DIR|ARCHIVE]..." mean in the
  59. help?</a><br>
  60. <br>
  61. Q19: <a href="#19">Why is my backup unit (still) not supported?</a><br>
  62. <br>
  63. Q20: <a href="#20">How do I specify a bank number for the GB Xchanger?</a><br>
  64. <br>
  65. Q21: <a href="#21">What is the difference between the Flash Advance Linker
  66. options -xfals and -xfalb &#60;n&#62;?</a><br>
  67. <br>
  68. Q22: <a href="#22">uCON64 exits with the message "ERROR: Flash card erase
  69. failed" when I try to write a multi-game file to my flash card. What is
  70. wrong?</a><br>
  71. <br>
  72. Q23: <a href="#23">Where can I get that loader or "game pack" file?</a><br>
  73. <br>
  74. Q24: <a href="#24">What is the meaning of the -col option (SNES)?</a><br>
  75. <br>
  76. Q25: <a href="#25">Why does uCON64 create ucon64.cfg (DOS executable) or
  77. .ucon64rc (Win32 executable) files all over the place under DOS and
  78. Windows&nbsp;9x (command.com)?</a><br>
  79. <br>
  80. Q26: <a href="#26">When I try to create a multi-game file under Windows I get
  81. the message "The system cannot execute the specified program." (or something
  82. similar). What does that mean?</a><br>
  83. <br>
  84. Q27: <a href="#27">I tried to run a Win32 executable of uCON64 but Windows gave
  85. an error message that cygwin1.dll, cygz.dll or zlib.dll could not be
  86. found.</a><br>
  87. <br>
  88. Q28: <a href="#28">How do I make uCON64 display one help screen at a time?</a><br>
  89. <br>
  90. Q29: <a href="#29">I tried to send a ROM dump to my copier under
  91. Windows&nbsp;XP (NT/2000), but uCON64 crashed. What is wrong?</a><br>
  92. <br>
  93. Q30: <a href="#30">I want to convert a NES ROM in iNES format to UNIF. How do I
  94. know what board name to use?</a><br>
  95. <br>
  96. Q31: <a href="#31">How do I convert a NES ROM from Pasofami to FFE? Or from
  97. UNIF to Pasofami?</a><br>
  98. <br>
  99. Q32: <a href="#32">How do I specify dumper information when converting to UNIF?</a><br>
  100. <br>
  101. Q33: <a href="#33">How do I specify that a NES game in UNIF format supports
  102. multiple controller types?</a><br>
  103. <br>
  104. Q34: <a href="#34">How do I enable or disable colors in the display output of
  105. uCON64?</a><br>
  106. <br>
  107. Q35: <a href="#35">When I try to convert a large number of files using
  108. wildcards, uCON64 will only convert the first file. Is this a bug?</a><br>
  109. <br>
  110. Q36: <a href="#36">Does uCON64 support DAT (RomCenter/GoodXXXX) files?</a><br>
  111. <br>
  112. Q37: <a href="#37">Some SNES games do not work on my Super Pro Fighter Q(+).
  113. What can I do about that?</a><br>
  114. <br>
  115. Q38: <a href="#38">uCON64 displays too many lines for my DOS-box. What can I do
  116. about that?</a><br>
  117. <br>
  118. Q39: <a href="#39">When will the next version of uCON64 be released? I have
  119. heard the next version is able to crack my favourite SNES game, but I do not
  120. know how to use CVS or a compiler.</a><br>
  121. <br>
  122. Q40: <a href="#40">What is the format of the snes*.txt files?</a><br>
  123. <br>
  124. Q41: <a href="#41">Is it possible to force uCON64 to send or dump (an) SRAM
  125. (file) instead of that it depends on whether the file exists?</a><br>
  126. <br>
  127. Q42: <a href="#42">Why does uCON64 support DAT files?</a><br>
  128. <br>
  129. Q43: <a href="#43">How should the option --mkdat be used?</a><br>
  130. <br>
  131. Q44: <a href="#44">What tools do you recommend besides uCON64?</a><br>
  132. <br>
  133. Q45: <a href="#45">What is an interleaved ROM?</a><br>
  134. <br>
  135. Q46: <a href="#46">The pre-compiled GNU/Linux binary does not work on my
  136. system, while a binary compiled by me works fine. How can that be?</a><br>
  137. <br>
  138. Q47: <a href="#47">I use Windows XP (NT/2000) and every time I run uCON64 I get
  139. this error message about ntuser.dat. What does it mean?</a><br>
  140. <br>
  141. Q48: <a href="#48">Is there any way to make uCON64 convert a ROM dump to Game
  142. Doctor SF3/SF6/SF7 format and split it, in one command?</a><br>
  143. <br>
  144. Q49: <a href="#49">How do I use the command line?</a><br>
  145. <br>
  146. Q50: <a href="#50">I configured uCON64 to use ppdev and tried to send a file to
  147. my backup unit as a regular user. I got an error message that the parallel
  148. port device could not be opened. What did I do wrong?</a><br>
  149. <br>
  150. Q51: <a href="#51">What do I need to do before I can upload files to my Flash 2
  151. Advance?</a><br>
  152. <br>
  153. <br>
  154. <p><!-- <p> instead of <br> to make lynx display a blank line between questions -->
  155. <a name="1"><b>Q1</b>: Why uCON64?</a><br>
  156. <b>A</b>: uCON64 is designed for people who want to play all the games on the
  157. original hardware. Here you got a powerful tool to backup, restore games and
  158. for many other operations. It is just a keep-old-hardware-alive tool :-)<br>
  159. uCON64 is also useful for people without backup units as it can be used to
  160. manage ROM collections (it can be used to identify, rename, patch or convert
  161. files) and it <i>can</i> operate as an intelligent frontend for every
  162. available emulator.<br>
  163. <br>
  164. <p>
  165. <a name="2"><b>Q2</b>: How do I get started using uCON64?</a><br>
  166. <b>A</b>: On the uCON64 homepage you can find a link to a
  167. <a href="http://sourceforge.net/project/showfiles.php?group_id=12381" target="_blank">
  168. download section</a>. There are two types of packages, binary and source.
  169. You can tell a package is a binary package if it has "bin" (without the
  170. quotes) in its name. The source code packages have "src" in their name.
  171. Unless you are a software developer you probably do not need to download any
  172. of the source packages.<br>
  173. Choose a binary package for your system. GNU/Linux users should choose a
  174. package with "linux" in its name, BeOS users a package with "beos" in its
  175. name and DOS users a package with "dos" in its name. Windows users can
  176. choose any or all of the packages with "win32" or "dos" in their name.
  177. Normally, they should choose a package with "win32" in its name. The DOS
  178. version also runs under Windows, but has some limitations. For example, the
  179. DOS version cannot handle long command lines. The Cygwin version does not
  180. have any serious limitations compared to the "normal" Win32 versions, but
  181. behaves a bit more Unix-like than Windows users might want. Users accustomed
  182. to Unix might prefer the Cygwin version. The Cygwin version needs some
  183. additional files, though. See <a href="#27">question 27</a>.<br>
  184. For installation instructions (for all versions) see
  185. <a href="#4">question 4</a>.<br>
  186. <br>
  187. <p>
  188. <a name="3"><b>Q3</b>: How do I compile/build uCON64?</a><br>
  189. <b>A</b>: Unless you are a software developer you probably do not need to
  190. compile it. Just download one of the pre-built binary distributions and
  191. proceed to <a href="#4">question 4</a>.<br>
  192. To compile uCON64 you need a compiler :-) You can use either GCC (GNU
  193. Compiler Collection) or the Visual C++ compiler. GCC can be freely
  194. downloaded from <a href="http://www.gnu.org/order/ftp.html" target="_blank">
  195. http://www.gnu.org/order/ftp.html</a>. Visual C++ can be bought for about 60
  196. euro (at 15 May 2003) in most computer shops.<br>
  197. uCON64 can be compiled for Unix (GNU/Linux, Solaris, FreeBSD, OpenBSD), DOS,
  198. BeOS, Windows (95/98/ME/NT/2000/XP), AmigaOS (PPC/68K) and Mac OS X.<br>
  199. A DOS port of GCC (and other GNU development tools) named DJGPP is
  200. available from <a href="http://www.delorie.com/djgpp/" target="_blank">
  201. http://www.delorie.com/djgpp/</a>. A Win32 port of GCC (and many other GNU
  202. tools and libraries) named Cygwin is available from
  203. <a href="http://www.cygwin.com" target="_blank">http://www.cygwin.com</a>.
  204. Another Win32 port of GCC (and other tools) named MinGW is available from
  205. <a href="http://www.mingw.org" target="_blank">http://www.mingw.org</a>.<br>
  206. <br>
  207. <b>Configuring uCON64</b><br>
  208. Some features of uCON64 are configurable (only) at compile time. They are:<br>
  209. - whether uCON64 will produce debug output (default: no)<br>
  210. - whether uCON64 will have support for parallel port backup units (default:
  211. yes)<br>
  212. - whether uCON64 will use the ppdev interface for parallel port I/O (default:
  213. no)<br>
  214. - whether uCON64 will be able to use color in its display output (default:
  215. yes)<br>
  216. - whether add-on libraries will be dynamically loaded or linked (default:
  217. loaded)<br>
  218. - whether uCON64 will be able to use the discmage library (default: yes)<br>
  219. - whether uCON64 will have support for the CD64 (default: no)<br>
  220. - whether uCON64 will be able to read .gz and .zip files (default: not if a
  221. Makefile "template" is used, see below)<br>
  222. - whether uCON64 will use libusb/have support for USB backup units (default:
  223. no)<br>
  224. <br>
  225. The presence or settings of these features is controlled by the header file
  226. config.h in combination with the makefiles. There are two ways to create a
  227. config.h and makefiles for uCON64:<br>
  228. (Before executing one of these steps read the section below concerning gzip
  229. &amp; zip support)<br>
  230. 1.) Run the configure script "configure".<br>
  231. If you want default settings type:<br>
  232. &nbsp;&nbsp; ./configure<br>
  233. Otherwise you have to pass options to the configure script. To see which
  234. features can be controlled with the configure script, type:<br>
  235. &nbsp;&nbsp; ./configure --help<br>
  236. 2.) Copy a tried-and-tested config.h "template" to a file config.h and copy
  237. a Makefile "template" to a file Makefile.<br>
  238. <br>
  239. The first way does not work under command.com or cmd.exe as these shells
  240. cannot (directly) execute Bash shell scripts. command.com is the default
  241. shell on Windows&nbsp;9x, cmd.exe is the default shell on Windows&nbsp;XP
  242. (NT/2000).<br>
  243. So, for DOS (DJGPP) copy config.h.orig to config.h and to
  244. libdiscmage/config.h, Makefile.orig to Makefile and
  245. libdiscmage/Makefile.orig to libdiscmage/Makefile. You can do the same for
  246. Cygwin, but in Cygwin you can get the same effect much easier by just
  247. running the configure script.<br>
  248. For Windows (Visual C++) copy config.h.vc6 to config.h and to
  249. libdiscmage/config.h. Do not copy any of the Makefile.vc6 files. You may do
  250. so, but do not complain if these instructions do not seem to be right after
  251. having done that.<br>
  252. To save us some work, for MinGW we only support configuring and building
  253. uCON64 from within MSYS (MinGW's POSIX build environment, a port of Bash).<br>
  254. <br>
  255. <b>Support for files in gzip (.gz) or zip format (.zip)</b><br>
  256. For gzip &amp; zip support you need zlib. If you do not have zlib you can
  257. get it from <a href="http://www.gzip.org/zlib/" target="_blank">
  258. http://www.gzip.org/zlib/</a>. There are two ways to get gzip &amp; zip
  259. support for uCON64:<br>
  260. 1.) When using the configure script.<br>
  261. By default gzip &amp; zip support will be enabled if configure can find zlib
  262. on your system. If you want to disable the feature, pass the option
  263. --without-zlib to the configure script.<br>
  264. 2.) When using config.h and Makefile "templates".<br>
  265. By default gzip &amp; zip support is disabled. If you want to enable it you
  266. have to define the constant HAVE_ZLIB_H in config.h and libdiscmage/config.h
  267. (remove the "//" in front of the line that defines it) <i>and</i> ZLIB in
  268. Makefile and libdiscmage/Makefile (remove the "#" in front of the line that
  269. defines it).<br>
  270. <br>
  271. If you want to change other things in config.h or the makefiles do so before
  272. proceeding to the next step.<br>
  273. You have finished the configuration steps now. The next instructions will
  274. tell you how to compile uCON64 with the settings you just made.<br>
  275. <br>
  276. <b>Compiling uCON64</b><br>
  277. By default the library discmage will also be compiled. Discmage is used for
  278. several CD-related functions in uCON64, but is not required for non
  279. CD-related functions. For example, you will not need discmage for any of the
  280. SNES functions. Skip the next step if you do not want uCON64 to use
  281. discmage.<br>
  282. <br>
  283. If you do not have a reason not to compile discmage and you are using DJGPP,
  284. Cygwin or MinGW you need the library libgcc.a. This library comes with those
  285. compilers but is usually not located in the standard library directory.
  286. However, the compiler needs to know where to find it. There are two possible
  287. ways to solve this problem:<br>
  288. 1.) Copy the file libgcc.a to the standard library directory.<br>
  289. 2.) Edit the file libdiscmage/Makefile so that the variable GCCA_DIR points
  290. to the directory containing libgcc.a.<br>
  291. The first option (copying the file) is preferred.<br>
  292. <br>
  293. Now read the relevant section for the compiler you are using.<br>
  294. <br>
  295. <b>GCC</b> (including DJGPP and Cygwin)<br>
  296. If you use Bash you may have to take one extra step before running make.
  297. Because of a strange design decision made by the authors of Bash, the
  298. environment variable OSTYPE is not exported on all platforms. Because of
  299. that, on several platforms (like FreeBSD and Mac OS X), you have to export it
  300. manually before running make. You can do that with the following command:<br>
  301. &nbsp;&nbsp; export OSTYPE<br>
  302. <br>
  303. If you have compiled uCON64 in the same directory before, first type:<br>
  304. &nbsp;&nbsp; make clean<br>
  305. <br>
  306. If you want to compile the source code including discmage, type:<br>
  307. &nbsp;&nbsp; make<br>
  308. If you do not want to compile discmage the last command should look like
  309. this for DJGPP, Cygwin and MinGW:<br>
  310. &nbsp;&nbsp; make ucon64.exe<br>
  311. Otherwise it should look like this:<br>
  312. &nbsp;&nbsp; make ucon64<br>
  313. <br>
  314. If you use Mac OS X and get an error message that dlfcn.h cannot be found,
  315. please install the library
  316. <a href="http://www.opendarwin.org/projects/dlcompat/" target="_blank">dlcompat</a>
  317. and try again.<br>
  318. On Unix systems other than GNU/Linux you might need to use "gmake" (GNU
  319. make) instead of "make". If the last make command has been successfully
  320. executed you can find the executable in the directory where you ran make.
  321. For DOS, Cygwin and MinGW you are now ready to proceed to
  322. <a href="#4">question 4</a>. For the other platforms one extra command is
  323. needed (or simply handy):<br>
  324. &nbsp;&nbsp; make install<br>
  325. <br>
  326. Under Unix this command will ask for root's password, because uCON64 needs
  327. to be setuid root for parallel port access and because regular users usually
  328. do not have write access in the default installation directory,
  329. /usr/local/bin. If you configured uCON64 without support for parallel port
  330. backup units or if you configured it to use ppdev, uCON64 need not be setuid
  331. root. Just copy ucon64 to any directory you like.<br>
  332. Under Mac OS X it is usual to install programs in /usr/bin. You can override
  333. the default destination directory /usr/local/bin by setting the environment
  334. variable DESTDIR. So, in order to install uCON64 in the directory /usr/bin
  335. use a command like:<br>
  336. &nbsp;&nbsp; DESTDIR=/usr/bin make install<br>
  337. This works also on Unix.<br>
  338. "make install" also creates a configuration directory for uCON64 and copies
  339. discmage.so (Unix and BeOS) or discmage.dylib (Mac OS X) to it, so you may
  340. find it easier to use it.<br>
  341. Under BeOS this command will open a dialog window. Just follow the
  342. instructions.<br>
  343. <br>
  344. <b>Visual C++</b><br>
  345. Start a command shell or "prompt" and go to the correct directory. If you
  346. have compiled uCON64 in the same directory before, first type:<br>
  347. &nbsp;&nbsp; nmake /f Makefile.vc6 clean<br>
  348. <br>
  349. If you want to compile the source code including discmage, type:<br>
  350. &nbsp;&nbsp; nmake /f Makefile.vc6<br>
  351. If you do not want to compile discmage the last command should look like
  352. this:<br>
  353. &nbsp;&nbsp; nmake /f Makefile.vc6 ucon64.exe<br>
  354. <br>
  355. Under GNU/Linux, DOS and Windows you could use UPX to compress the
  356. executable. UPX is available from
  357. <a href="http://upx.sourceforge.net" target="_blank">
  358. http://upx.sourceforge.net</a>.<br>
  359. <br>
  360. <p>
  361. <a name="4"><b>Q4</b>: How do I install uCON64?</a><br>
  362. <b>A</b>: It depends on what operating system you use. First read the
  363. information specific for your operating system. Then continue to the section
  364. <a href="#configbin">"How to configure the uCON64 executable"</a>.<br>
  365. <br>
  366. <b>Unix (GNU/Linux, FreeBSD, Solaris), BeOS &amp; Mac OS X</b><br>
  367. Start a command line shell like Bash. Then extract the binary package.
  368. To extract or unpack a package in .tar.gz format use a command line like
  369. this:<br>
  370. &nbsp;&nbsp; tar xvzf ucon64-1.9.8-1-linux-bin.tar.gz<br>
  371. Old versions of tar might not support the option z. In that case use a
  372. command line like:<br>
  373. &nbsp;&nbsp; gunzip -c ucon64-1.9.8-1-linux-bin.tar.gz | tar xvf -<br>
  374. To unzip a .zip file use a command line like this:<br>
  375. &nbsp;&nbsp; unzip ucon64-1.9.8-1-beos-bin.zip<br>
  376. You should replace the file name with the name of the file you downloaded
  377. for your operating system. Unpacking or extracting a package does not have
  378. to be done on the command line. You could also use a program with a GUI
  379. (Graphical User Interface) like KDE's ark or a similar program.<br>
  380. After you have extracted the package install uCON64 by running the install
  381. script. On Unix, if you do not have root access, copy the uCON64 executable
  382. to a directory in your PATH. If you do have root access (i.e., know the root
  383. password), run the shell script install.sh. On BeOS just run the script
  384. install_beos.sh. For Unix do something like this:<br>
  385. &nbsp;&nbsp; cd ucon64-1.9.8-1-linux-bin<br>
  386. &nbsp;&nbsp; ./install.sh<br>
  387. By default install.sh will try to copy ucon64 to /usr/local/bin. You can
  388. specify another directory by setting the environment variable DESTDIR.
  389. On Mac OS X programs are usually installed in the directory /usr/bin. Users
  390. of that OS might want to install uCON64 with a command like:<br>
  391. &nbsp;&nbsp; DESTDIR=/usr/bin ./install.sh<br>
  392. <br>
  393. For copier I/O BeOS users will need Caz's driver inside ioport.zip or
  394. available at <a href="http://www.infernal.currantbun.com" target="_blank">
  395. http://www.infernal.currantbun.com</a>. You only need this driver if you
  396. will use uCON64 for communication with a backup unit. After you have decided
  397. whether to download ioport.zip continue on BeOS with:<br>
  398. &nbsp;&nbsp; cd ucon64-1.9.8-1-beos-bin<br>
  399. &nbsp;&nbsp; ./install_beos.sh<br>
  400. After the last command a dialog window will come up. Simply follow the
  401. instructions.<br>
  402. <br>
  403. Now continue to the section
  404. <a href="#configbin">"How to configure the uCON64 executable"</a>.<br>
  405. <br>
  406. <b>Windows (95/98/ME/NT/2000/XP) &amp; DOS</b><br>
  407. On Windows, unpack the package with a program like
  408. <a href="http://www.winzip.com/" target="_blank">WinZip</a>,
  409. <a href="http://www.rarlab.com/" target="_blank">WinRAR</a> or
  410. <a href="http://www.powerarchiver.com/" target="_blank">Power Archiver</a>.
  411. On plain DOS (DOS without Windows) use a program like
  412. <a href="http://www.pkware.com/" target="_blank">PKUNZIP</a>.<br>
  413. We recommend to extract the package to a directory (or folder) of its own.
  414. The zip file contains a directory, but you need not use that directory.<br>
  415. Windows&nbsp;NT/2000/XP users are likely to need a driver for copier I/O. You
  416. do not need a driver if you use Windows&nbsp;95, 98 or ME. A driver is also
  417. not needed when you will not use uCON64 to communicate with a backup unit.<br>
  418. You could use a driver like UserPort, DlPortIO, io.dll or inpout32.dll.
  419. <!-- UserPort doesn't seem to have an official homepage. -->
  420. You can download DlPortIO at
  421. <a href="http://www.driverlinx.com/DownLoad/dnload.htm#Windows%2095/NT%20Port%20I/O%20Driver" target="_blank">
  422. http://www.driverlinx.com/DownLoad/dnload.htm#Windows%2095/NT%20Port%20I/O%20Driver</a>, directly at
  423. <a href="http://www.driverlinx.com/DownLoad/DlPortIO.htm" target="_blank">
  424. http://www.driverlinx.com/DownLoad/DlPortIO.htm</a> or from
  425. <a href="http://ucon64.sourceforge.net/" target="_blank">the uCON64 homepage</a>.
  426. You can find io.dll in a file named io.zip at
  427. <a href="http://www.geekhideout.com/iodll.shtml" target="_blank">
  428. http://www.geekhideout.com/iodll.shtml</a> and you can find inpout32.dll in
  429. a file named inpout32_source_and_bins.zip at
  430. <a href="http://www.logix4u.net" target="_blank">http://www.logix4u.net</a>.
  431. UserPort and io.dll are included with the binary release. We recommend
  432. DlPortIO and io.dll. To install DlPortIO simply start port95nt.exe. After the
  433. installation is completed, copy DLPORTIO.dll from the Windows system(32)
  434. directory to uCON64's configuration directory. To install io.dll or
  435. inpout32.dll, put them in uCON64's configuration directory. See the section
  436. <a href="#configbin">"How to configure the uCON64 executable"</a> for more
  437. information about the configuration directory.<br>
  438. uCON64 displays a message if it finds DLPORTIO.dll, io.dll or inpout32.dll
  439. before communicating with a copier. It displays this message before it
  440. displays file information, so you might want to use the command line switch
  441. -q. Only the Windows versions of uCON64 are able to use DLPORTIO.dll, io.dll
  442. or inpout32.dll. If more than one I/O driver is present in the configuration
  443. directory, uCON64 will first try to load DLPORTIO.dll. If that fails it will
  444. try to load io.dll. If that also fails it will try to load inpout32.dll.<br>
  445. It <i>is</i> possible to use the DOS version of uCON64 as a transfer tool
  446. under Windows&nbsp;XP without UserPort. We have received reports from people
  447. who were able to send and receive ROMs under Windows&nbsp;XP as a regular
  448. user (no Administrator rights and not "Power Users").<br>
  449. <br>
  450. <a name="cmdline">The command line environment<br></a>
  451. uCON64 is a command line program and is usually started from a program like
  452. command.com (Windows&nbsp;9x/ME) or cmd.exe (Windows&nbsp;NT/2000/XP). You
  453. can start command.com or cmd.exe by choosing the option "Run..." from the
  454. start menu. You have to type the word command.com or cmd.exe yourself.
  455. Command.com and cmd.exe are command line interpreters. That means that they
  456. will try to interpret any command you type followed by a press on the enter
  457. or return key. When you type a command, the command line interpreter will
  458. first look in the current directory and if it cannot find a program file
  459. with the correct name it will search the so-called "path". This means that
  460. the program file of uCON64 (ucon64.exe) must either be present in the
  461. current directory or in one of the directories of your path. It is really
  462. comfortable to have ucon64.exe present in your path, because you can simply
  463. use the name ucon64 from any directory without first having to copy
  464. ucon64.exe to that directory.<br>
  465. The path is defined by the environment variable PATH. You can check the
  466. current value of that variable with the command:<br>
  467. &nbsp;&nbsp; echo %PATH%<br>
  468. You could copy uCON64 to one of those directories. However, we recommend
  469. putting ucon64.exe in a directory of its own (on Windows). So, you should
  470. modify the value of PATH. On Windows&nbsp;9x/ME you should do that in the
  471. following way. Edit the file c:\autoexec.bat and add a line like:<br>
  472. &nbsp;&nbsp; set PATH=%PATH%;c:\ucon64<br>
  473. Replace c:\ucon64 with the drive and directory where you extracted the
  474. uCON64 files to. Save the modified c:\autoexec.bat and reboot.
  475. On Windows&nbsp;XP (NT/2000?) you should press the buttons or icons start
  476. -&#62; Control Panel -&#62; System -&#62; Advanced -&#62; Environment
  477. Variables and edit the value of path in the section System variables or
  478. else in the section User variables. You have to start a new instance of
  479. cmd.exe before the changes take effect.
  480. After you have made your changes (and have rebooted your PC if you are using
  481. Windows&nbsp;9x/ME or DOS) check the value of PATH again. It should now list
  482. the directory you just added.<br>
  483. For information on how to use the command line see
  484. <a href="#49">question 49</a>.<br>
  485. <br>
  486. <a name="configbin"><b>How to configure the uCON64 executable</b></a><br>
  487. First run uCON64 once. Use a command like:<br>
  488. &nbsp;&nbsp; ucon64 -version<br>
  489. If you have not run uCON64 before you should see a message that it created
  490. a file with a name like ucon64.cfg (DOS version) or .ucon64rc (all other
  491. versions). If you are using GNU/Linux and uCON64 crashes see
  492. <a href="#46">question 46</a>.<br>
  493. Then search for the line that starts with "configuration file". It should
  494. say "present" between the parentheses. The file name after the colon is the
  495. name of the configuration file. The configuration file may contain names of
  496. variables that influence the behaviour of uCON64. Here follows a table of
  497. the variable names uCON64 recognises:<br>
  498. <br>
  499. <table border="1">
  500. <tr>
  501. <th><tt>variable name</tt></th>
  502. <th><tt>meaning</tt></th>
  503. </tr>
  504. <tr>
  505. <td><tt>version</tt></td>
  506. <td><tt>version of configuration file</tt></td>
  507. </tr>
  508. <tr>
  509. <td><tt>backups</tt></td>
  510. <td><tt>uCON64 will create backups of the files it modifies if it is 1</tt></td>
  511. </tr>
  512. <tr>
  513. <td><tt>ansi_color</tt></td>
  514. <td><tt>uCON64 will use color in its display output if it is 1</tt></td>
  515. </tr>
  516. <tr>
  517. <td><tt>parport_dev</tt></td>
  518. <td><tt>name of parallel port device (AmigaOS or Linux with ppdev)</tt></td>
  519. </tr>
  520. <tr>
  521. <td><tt>parport</tt></td>
  522. <td><tt>hardware address of parallel port (AmigaOS: port number)</tt></td>
  523. </tr>
  524. <tr>
  525. <td><tt>discmage_path</tt></td>
  526. <td><tt>path to discmage DLL</tt></td>
  527. </tr>
  528. <tr>
  529. <td><tt>ucon64_configdir</tt></td>
  530. <td><tt>name of configuration directory of uCON64</tt></td>
  531. </tr>
  532. <tr>
  533. <td><tt>ucon64_datdir</tt></td>
  534. <td><tt>name of DAT file directory of uCON64</tt></td>
  535. </tr>
  536. <tr>
  537. <td><tt>emulate_&#60;console&#62;</tt></td>
  538. <td><tt>command line to use to start emulator for &#60;console&#62;</tt></td>
  539. </tr>
  540. <tr>
  541. <td><tt>emulate_&#60;CRC32&#62;</tt></td>
  542. <td><tt>command line to use to start emulator for file with that CRC32</tt></td>
  543. </tr>
  544. <tr>
  545. <td><tt>emulate_0x&#60;CRC32&#62;</tt></td>
  546. <td><tt>command line to use to start emulator for file with that CRC32</tt></td>
  547. </tr>
  548. <tr>
  549. <td><tt>f2afirmware</tt></td>
  550. <td><tt>path to F2A USB firmware</tt></td>
  551. </tr>
  552. <tr>
  553. <td><tt>iclientu</tt></td>
  554. <td><tt>path to GBA client binary (for USB code)</tt></td>
  555. </tr>
  556. <tr>
  557. <td><tt>iclientp</tt></td>
  558. <td><tt>path to GBA client binary (for parallel port code)</tt></td>
  559. </tr>
  560. <tr>
  561. <td><tt>ilogo</tt></td>
  562. <td><tt>path to iLinker logo file</tt></td>
  563. </tr>
  564. <tr>
  565. <td><tt>gbaloader</tt></td>
  566. <td><tt>path to GBA multi-game loader</tt></td>
  567. </tr>
  568. </table><br>
  569. Each of these variables can also be set in the command line environment. If
  570. they are they take precedence over the values set in the configuration file.
  571. For example, if you set the environment variable ansi_color to 0 while the
  572. configuration file sets it to 1 uCON64 will not use color. In command.com or
  573. cmd.exe you can set an environment variable with the command "set", in Bash
  574. you should do it with the command "export". For example:<br>
  575. &nbsp;&nbsp; export ansi_color=0<br>
  576. Some variables can be overruled with command line switches. For example, to
  577. disable the use of color even if both the configuration file and the
  578. environment have the variable ansi_color set to 1, use the switch -ncol:<br>
  579. &nbsp;&nbsp; ucon64 "Rock Fall (PD).zip" -ncol<br>
  580. The variable ucon64_configdir is only really important for the Windows
  581. versions of uCON64. To install the I/O port driver io.dll or inpout32.dll
  582. place it (or both) in the directory that uCON64 lists as its configuration
  583. directory.<br>
  584. If you use DOS or Windows&nbsp;9x and do not want uCON64 to create
  585. ucon64.cfg or .ucon64rc files all over the place (current directories) see
  586. <a href="#25">question 25</a>.<br>
  587. You might also want to make use of DAT files. See
  588. <a href="#36">question 36</a> for more information.<br>
  589. <br>
  590. <p>
  591. <a name="5"><b>Q5</b>: Sometimes my terminal seems to be locked after "ucon64
  592. -xswc &#60;file&#62; | more"</a><br>
  593. <b>A</b>: You are right, it <u>seems</u> to be locked, but the only thing that
  594. happened is that the character echoing of the terminal is disabled by more.
  595. Just do not do that ;-)<br>
  596. <br>
  597. <p>
  598. <a name="6"><b>Q6</b>: How do I make uCON64 only display information about a
  599. ROM?</a><br>
  600. <b>A</b>: If you want to display information about a ROM just run uCON64 with
  601. the name of the ROM as the only argument. Sometimes you will have to specify
  602. the console type for uCON64, because the ROM dump is damaged or simply not
  603. detected correctly by uCON64. For example:<br>
  604. &nbsp;&nbsp; ucon64 -snes "Super Aleste (J) [t1].swc"<br>
  605. <br>
  606. <p>
  607. <a name="7"><b>Q7</b>: I have two parallel ports in my PC and my Flash Advance
  608. Linker is connected to the second. However, when I try to use uCON64 to send
  609. a demo to the FAL something goes wrong. What happened?</a><br>
  610. <b>A</b>: Well, many things could have gone wrong, but uCON64 only detects your
  611. first parallel port (it stops probing for a parallel port if it finds one).
  612. So, you should specify the address of the second parallel port on the
  613. command line. For example:<br>
  614. &nbsp;&nbsp; ucon64 -xfal demo.gba -port 0x278<br>
  615. <br>
  616. The I/O address of the parallel port could be 0x3bc, 0x378 or 0x278. If you
  617. do not want to type the address of the parallel port every time you want to
  618. transfer something to your FAL (or another copier) edit .ucon64rc or
  619. ucon64.cfg (for the DOS version) and remove the hash symbol in front of the
  620. line that starts with "parport=" (without the quotes). If that line is not
  621. present add one. You do not have to use the prefix 0x. For example:<br>
  622. &nbsp;&nbsp; parport=278<br>
  623. You can also set an environment variable with the name parport to the right
  624. value. The value of the environment variable takes precedence over the value
  625. in the configuration file.<br>
  626. <br>
  627. <p>
  628. <a name="8"><b>Q8</b>: I tried to dump a SNES cartridge using a Super Wild Card
  629. connected to my PC with an interlink cable, but it did not work. What is
  630. wrong?</a><br>
  631. <b>A</b>: You should not use an interlink cable, but a standard bidirectional
  632. parallel cable, i.e., a cable with male DB-25 connectors at both ends where
  633. the pins are connected in the following way:<br>
  634. pin 1&nbsp; &#60;-&#62; pin 1<br>
  635. pin 2&nbsp; &#60;-&#62; pin 2<br>
  636. pin 3&nbsp; &#60;-&#62; pin 3<br>
  637. pin 4&nbsp; &#60;-&#62; pin 4<br>
  638. pin 5&nbsp; &#60;-&#62; pin 5<br>
  639. pin 6&nbsp; &#60;-&#62; pin 6<br>
  640. pin 7&nbsp; &#60;-&#62; pin 7<br>
  641. pin 8&nbsp; &#60;-&#62; pin 8<br>
  642. pin 9&nbsp; &#60;-&#62; pin 9<br>
  643. pin 10 &#60;-&#62; pin 10<br>
  644. pin 11 &#60;-&#62; pin 11<br>
  645. pin 12 &#60;-&#62; pin 12<br>
  646. pin 13 &#60;-&#62; pin 13<br>
  647. pin 15 &#60;-&#62; pin 15<br>
  648. pin 25 &#60;-&#62; pin 25<br>
  649. The other pins may be left unconnected. Pins 2-9 are used for output, pins
  650. 10-13 &amp; 15 for input and pin 25 is ground.<br>
  651. <br>
  652. <p>
  653. <a name="9"><b>Q9</b>: I have a SNES ROM of which GoodSNES says it is good, but
  654. uCON64 says it is bad. Who is right?</a><br>
  655. <b>A</b>: It depends.<br>
  656. If uCON64 displays the text "Checksum: Bad" GoodSNES might be right.<br>
  657. There may be several reasons why uCON64 reports that the check sum is bad.
  658. It could have made a mistake while determining if the ROM is a HiROM or a
  659. LoROM dump. Try the switches -hi and -nhi and see if uCON64 reports the
  660. check sum differently. Sometimes ROM dumps are detected as not being
  661. interleaved while they actually are. Try the switches -int and -int2 and see
  662. if you get better results. It could also be that uCON64 detects the ROM as
  663. interleaved while it is not. The switch -nint might help in that case. If
  664. the check sum is reported as good it is likely that the ROM is really good.
  665. Alternatively, you may want to convert the ROM to a non-interleaved format
  666. with -dint and run uCON64 on the converted ROM. Luckily you will not find
  667. many interleaved ROM dumps that uCON64 cannot handle, probably because
  668. Snes9x and ZSNES often cannot handle them either.<br>
  669. Perhaps "Ok" looks nicer than "Bad", but it is far more important that
  670. uCON64 displays DAT file information. If you installed a SNES DAT file (see
  671. <a href="#36">question 36</a>) and uCON64 does not display a line with the
  672. text "DAT info:" then the ROM dump could not be identified. It could be that
  673. you have an unknown ROM dump, but it is more likely that you have a modified
  674. (i.e. bad) dump or an overdump. GoodSNES 0.999.5 does not use the CRC32 to
  675. identify files, so if uCON64 does not display DAT info, but GoodSNES
  676. identified it as good then uCON64 is right. For reasons see
  677. <a href="#42">question 42</a>.<br>
  678. <br>
  679. <p>
  680. <a name="10"><b>Q10</b>: I have a SNES ROM of which Snes9x and ZSNES say it is
  681. bad, but uCON64 says it is good ("Checksum: Ok"). Who is right?</a><br>
  682. <b>A</b>: uCON64, probably :-)<br>
  683. Neither Snes9x 1.39 nor ZSNES 1.36 calculate the check sum correctly for BS
  684. ROMs, so you can be pretty sure the ROM is good if it is a BS ROM. See
  685. previous answer.<br>
  686. <br>
  687. <p>
  688. <a name="11"><b>Q11</b>: I have a SNES ROM of which uCON64 said it was bad, so
  689. I used the -chk option. Now uCON64, Snes9x and ZSNES all say the ROM is
  690. good, but GoodSNES still says it is bad. How can that be, I did fix the ROM,
  691. right?</a><br>
  692. <b>A</b>: No, you did not. When you use -chk uCON64 changes four bytes in the
  693. ROM dump, so that they match with the calculated check sum. However, the ROM
  694. stays just as bad as it was.<br>
  695. Use -chk with care. -chk might be useful if you want to store a ROM
  696. somewhere without using a database with its check sum. You can then later
  697. check if the ROM is still the same as it was when you stored it by using the
  698. check sum that is stored in the ROM.<br>
  699. That said, it is a <i>much</i> better idea to create a DAT file from your
  700. ROM collection if you plan to store it somewhere. See
  701. <a href="#42">question 42</a> for reasons and <a href="#43">question 43</a>
  702. for information on how to create a DAT file.<br>
  703. <br>
  704. <p>
  705. <a name="12"><b>Q12</b>: Some SNES games do not work on my Super Wild Card.
  706. What can I do about that?</a><br>
  707. <b>A</b>: You can do several things. First make sure the original game
  708. cartridge does not contain any special chips that your Super Wild Card
  709. does not support (look at the ROM type information). For example, if you are
  710. trying to run a game like Super Mario Kart (which uses a DSP chip) your
  711. Super Wild Card should have an extension with the correct DSP chip (or have
  712. the right cartridge with that chip plugged in your SWC). Then make sure you
  713. are using a good dump (look at the check sum information). After you have
  714. done that, check if the file is interleaved (look at the line that starts
  715. with "Interleaved/Swapped:"). If the file is interleaved convert it to Super
  716. Wild Card format (deinterleaved) by using the option -swc. Also verify that
  717. the backup unit header is correct. The option -dbuh can be helpful with
  718. that. You can make uCON64 rewrite the header also with -swc. uCON64 uses the
  719. information in the ROM dump's header when sending the file to the Super Wild
  720. Card, so this is important! You can also try to rewrite the header while
  721. using one of the switches -hi or -nhi to force uCON64 to handle it as a
  722. HiROM or a LoROM dump. Additionally you could use one of the switches -hd,
  723. -nhd or -hdn to specify the backup unit header size. For example:<br>
  724. &nbsp;&nbsp; ucon64 -swc -nhi -hd "Batman Revenge of the Joker (U).swc"<br>
  725. There are many (good) ROMs on the internet with incorrect headers, so this
  726. might well solve the problem.<br>
  727. Several games contain a copy protection that prevents them from running on
  728. a backup unit, so this can also be a reason why the game does not work. You
  729. can try -k to remove that protection. Several games also check if they are
  730. running on a PAL or an NTSC SNES. Use -f to remove that form of copy
  731. protection. Some other games check the ROM speed. You can use -l for those.
  732. Some games have more than one type of copy protection, so it could be
  733. necessary to use uCON64 several times with a different option.<br>
  734. See <a href="#39">question 39</a> and <a href="#40">question 40</a> for more
  735. information about a new feature in uCON64 1.9.8beta8 that can be used to
  736. update or improve the options -k, -f and -l without having to (re)compile
  737. the source code.<br>
  738. <br>
  739. Some games seem to work, but after a while it becomes clear that they do not
  740. run as was intended. Two examples of such games are Demon's Crest and Mega
  741. Man X. Here follows an explanation on how to get them to work. All credits
  742. go to Gideon Zhi for sharing this info on cherryroms. Start with ROM images
  743. in SWC format.<br>
  744. <br>
  745. Demon's Crest:<br>
  746. &nbsp;&nbsp; ucon64 -stp "Demon's Crest.swc"<br>
  747. &nbsp;&nbsp; cat "Demon's Crest.swc" "Demon's Crest.swc" &#62; "Demon's Crest (SWC-fix).swc"<br>
  748. &nbsp;&nbsp; ucon64 -swc "Demon's Crest (SWC-fix).swc"<br>
  749. <br>
  750. Mega Man X:<br>
  751. &nbsp;&nbsp; ucon64 -stp "Mega Man X.swc"<br>
  752. &nbsp;&nbsp; ucon64 -padn=2097152 "Mega Man X.swc"<br>
  753. &nbsp;&nbsp; cat "Mega Man X.swc" "Mega Man X.swc" &#62; "Mega Man X (SWC-fix).swc"<br>
  754. &nbsp;&nbsp; ucon64 -swc "Mega Man X (SWC-fix).swc"<br>
  755. <br>
  756. WinDOS users without the program cat should use the command copy. For
  757. example:<br>
  758. &nbsp;&nbsp; copy /b "Mega Man X.swc" + "Mega Man X.swc" "Mega Man X (SWC-fix).swc"<br>
  759. <br>
  760. However, starting from version 1.9.8beta6 the method described above is not
  761. necessary anymore for Demon's Crest. Use the option -k instead. For
  762. Mega Man X you will need version 1.9.8beta7 or later.<br>
  763. <br>
  764. Finally, you could have a look at an incomplete
  765. <!-- Keep next URL absolute. -->
  766. <a href="http://ucon64.sourceforge.net/ucon64/SWC-compatibility.txt" target="_blank">
  767. Super Wild Card compatibility list</a> on the uCON64 homepage (it can also be
  768. found in the source package) to see if it is possible to run a certain game
  769. on a Super Wild Card <u>2.8cc 32 Mbit PAL</u>.<br>
  770. <br>
  771. <p>
  772. <a name="13"><b>Q13</b>: Which backup devices are supported by uCON64?</a><br>
  773. <b>A</b>: See <a href="hardware.html" target="_blank">hardware.html</a>.<br>
  774. <br>
  775. <p>
  776. <a name="14"><b>Q14</b>: I use Windows&nbsp;XP (NT/2000). When I try to run
  777. ucon64.exe under command.com (start -&#62; Run... -&#62; command) uCON64
  778. crashes. What do I do wrong?</a><br>
  779. <b>A</b>: You should not use command, use cmd instead. However, starting from
  780. version 1.9.8 uCON64 should run fine under command.com.<br>
  781. <br>
  782. <p>
  783. <a name="15"><a name="frontend"><b>Q15</b>: I do not like the command line. Are
  784. there graphical frontends available?</a><br>
  785. <b>A</b>: Yes, have a look at
  786. <a href="http://ucon64.sourceforge.net/index2.html#ucon64gui" target="_blank">
  787. http://ucon64.sourceforge.net/index2.html#ucon64gui</a><br>
  788. <br>
  789. <p>
  790. <a name="16"><b>Q16</b>: Where do I get PPF, APS or IPS patches?</a><br>
  791. <b>A</b>:<br>
  792. <form method=GET action="http://www.google.com/search" target="_blank">
  793. <table bgcolor="#FFFFFF" border="0">
  794. <tr><td><br>
  795. <a href="http://www.google.com/" target="_blank">
  796. <img src="http://www.google.com/logos/Logo_25wht.gif" alt="Google" align="absmiddle">
  797. </a><br><br>
  798. <input type=text name=q maxlength=255 value="ppf aps ips patch"><br><br>
  799. <input type=submit name=btnG value="Google Search"><br>
  800. </td></tr>
  801. </table>
  802. </form>
  803. <br>
  804. <br>
  805. <p>
  806. <a name="17"><b>Q17</b>: Where do I get ROMs/Games?</a><br>
  807. <b>A</b>: <a href="http://www.ebay.com">www.ebay.com</a><br>
  808. <br>
  809. <p>
  810. <a name="18"><b>Q18</b>: What does "[ROM|IMAGE|SRAM|FILE|DIR|ARCHIVE]..." mean
  811. in the help?</a><br>
  812. <b>A</b>: The pipe symbol ('|') should be read as "or".<br>
  813. The square brackets indicate that "ROM|IMAGE|SRAM|FILE|DIR|ARCHIVE" is
  814. optional. For many options you have to specify either a ROM or a CD image or
  815. an SRAM file or some other file or a directory or an archive. However, there
  816. are a few options that do not need any of those arguments.<br>
  817. The ellipses indicate that you may specify one or more ROMs, CD images etc.
  818. Several options even support combinations of ROMs, directories and
  819. archives.<br>
  820. For the current version of uCON64, archive should be read as "ZIP file".<br>
  821. <br>
  822. <p>
  823. <a name="19"><b>Q19</b>: Why is my backup unit (still) not supported?</a><br>
  824. <b>A</b>: Get us the protocol or the sources of existing transfer tools and you
  825. will see what happens. uCON64 already supports all important backup units
  826. which were and are available. Manufacturers of devices which are still not
  827. supported are welcome to contact us.<br>
  828. <br>
  829. <p>
  830. <a name="20"><b>Q20</b>: How do I specify a bank number for the GB Xchanger?</a><br>
  831. <b>A</b>: Separate the bank number from the option -xgbxb with either a space or
  832. an equal sign. For example:<br>
  833. &nbsp;&nbsp; ucon64 -xgbxb 0 "Pokemon (Green).sav"<br>
  834. or:<br>
  835. &nbsp;&nbsp; ucon64 -xgbxb=0 "Pokemon (Green).sav"<br>
  836. <br>
  837. <p>
  838. <a name="21"><b>Q21</b>: What is the difference between the Flash Advance
  839. Linker options -xfals and -xfalb &#60;n&#62;?</a><br>
  840. <b>A</b>: When saving -xfals saves all 256 kB while -xfalb &#60;n&#62; saves
  841. only the 64 kB of bank n. When restoring -xfals starts restoring the SRAM in
  842. bank 1 while -xfalb &#60;n&#62; starts in bank n. For example, if you have
  843. Super Mario Advance 2 (J) on your flash card in "ROM bank" 4 and would like
  844. to save/restore SRAM bank 4 you should do something like:<br>
  845. &nbsp;&nbsp; ucon64 -xfalb 4 "Super Mario Advance 2 (J).sav"<br>
  846. The file size determines how many bytes are restored, even when you use
  847. -xfalb &#60;n&#62;. So, if the file is greater than 64 kB more than one bank
  848. will be written to.<br>
  849. <br>
  850. <p>
  851. <a name="22"><b>Q22</b>: uCON64 exits with the message "ERROR: Flash card erase
  852. failed" when I try to write a multi-game file to my flash card. What is
  853. wrong?</a><br>
  854. <b>A</b>: The multi-game file you created is too large for your flash card. When
  855. you make a multi-game file do not forget that the loader or "game pack" file
  856. also needs some space (32 kB) on the flash card. Do not pass a size to -multi
  857. that is larger than your flash card. Passing a smaller size is correct
  858. though. For example, to create a multi-game file that fits on a 128 Mb (16
  859. MB) card use a command line like this:<br>
  860. &nbsp;&nbsp; ucon64 -gba -multi=128 loader.bin rom1.gba rom2.gba rom3.gba rom4.gba multi.bin<br>
  861. You can also send it directly by using -xfalmulti:<br>
  862. &nbsp;&nbsp; ucon64 -xfalmulti=128 rom1.gba rom2.gba rom3.gba rom4.gba<br>
  863. Please note that when using -multi you have to specify a loader and the name
  864. of the multi-game file to create, while when using -xfalmulti you must omit
  865. them. -xfalmulti uses the variable gbaloader to find the loader. See
  866. <a href="#configbin">"How to configure the uCON64 executable"</a>.<br>
  867. Just like sometimes happens with Visoly's tool it is possible to get the
  868. same message when the multi-game file is small enough. It will probably work when
  869. you try again (with the same multi-game file).<br>
  870. <br>
  871. <p>
  872. <a name="23"><b>Q23</b>: Where can I get that loader or "game pack" file?</a><br>
  873. <b>A</b>: You can get it from <a href="http://www.visoly.com" target="_blank">
  874. Visoly's site</a>. It is in a file with a name like
  875. <a href="http://www.visoly.com/download/preboot32.zip">preboot32.zip</a>.
  876. You can find it also on the uCON64 homepage.<br>
  877. <br>
  878. <p>
  879. <a name="24"><b>Q24</b>: What is the meaning of the -col option (SNES)?</a><br>
  880. <b>A</b>: Back in the days stupid people released games with green blood.
  881. You can use a GFX or HTML editor to find an identical green color and
  882. write down the color values in HTML style (#RRGGBB). Now you run
  883. "ucon64 -col #RRGGBB" and it will calculate the hex value for the
  884. corresponding SNES color. Ok? No? Then you do not need this option :-)<br>
  885. <br>
  886. <p>
  887. <a name="25"><b>Q25</b>: Why does uCON64 create ucon64.cfg (DOS executable) or
  888. .ucon64rc (Win32 executable) files all over the place under DOS and
  889. Windows&nbsp;9x (command.com)?</a><br>
  890. <b>A</b>: uCON64 needs to know where it can find the configuration file or a
  891. directory where it can create one. It checks the environment for a variable
  892. with the name UCON64_HOME, HOME, USERPROFILE or HOMEDRIVE and HOMEPATH (in
  893. that order). Under Unix HOME is normally set. Under Windows&nbsp;XP and 2000
  894. (NT?) USERPROFILE, HOMEDRIVE and HOMEPATH are usually set. If uCON64 cannot
  895. find one of those environment variables it will look for the configuration
  896. file in the current directory. If it cannot find a configuration file it
  897. will create one. Under DOS and Windows&nbsp;9x none of those environment
  898. variables are usually set. So, if you run uCON64 under DOS or
  899. Windows&nbsp;9x in a directory where no configuration file exists it will
  900. create one there. If you do not like this behaviour you should set one of
  901. the mentioned environment variables yourself. You can do that by adding the
  902. following line to the end of the file c:\autoexec.bat:<br>
  903. &nbsp;&nbsp; set UCON64_HOME=c:\ucon64<br>
  904. and reboot. You can also type that line on the command line. The directory
  905. c:\ucon64 must exist, of course. If you want uCON64 to use another directory
  906. you should change c:\ucon64 to a directory of your choice. You should not
  907. let the last character of the environment variable be a forward or backward
  908. slash.<br>
  909. If you have Cygwin installed, the Cygwin runtime system will create an
  910. internal environment for the uCON64 executable with HOME set to Cygwin's
  911. home directory if it has not already been set. You can override this value
  912. with the method mentioned earlier. However, if you set UCON64_HOME this does
  913. not matter as the value of HOME will not be checked if UCON64_HOME is set.<br>
  914. You can check which configuration file uCON64 uses by specifying the option
  915. -version on the command line.<br>
  916. <br>
  917. <p>
  918. <a name="26"><b>Q26</b>: When I try to create a multi-game file under Windows I
  919. get the message "The system cannot execute the specified program." (or
  920. something similar). What does that mean?</a><br>
  921. <b>A</b>: You can get that message with the DOS executable if you pass more
  922. than 127 characters as argument to uCON64. There are two solutions:<br>
  923. 1.) Use a Win32 executable (download one from
  924. <a href="http://ucon64.sourceforge.net/" target="_blank">the uCON64
  925. homepage</a>).<br>
  926. 2.) Rename the ROMs so that their combined names are short enough to fit
  927. into 127 characters.<br>
  928. <br>
  929. <p>
  930. <a name="27"><b>Q27</b>: I tried to run a Win32 executable of uCON64 but Windows
  931. gave an error message that cygwin1.dll, cygz.dll or zlib.dll could
  932. not be found.</a><br>
  933. <b>A</b>: The Cygwin-compiled Win32 executable of uCON64 needs cygwin1.dll and
  934. cygz.dll in order to run. The Visual C++-compiled Win32 executable needs
  935. zlib.dll. You can download these files from
  936. <a href="http://ucon64.sourceforge.net/" target="_blank">the uCON64 homepage</a>.
  937. Copy the file(s) to the same directory as the uCON64 executable or to a
  938. directory in your PATH.<br>
  939. <br>
  940. <p>
  941. <a name="28"><b>Q28</b>: How do I make uCON64 display one help screen at a
  942. time?</a><br>
  943. <b>A</b>: Just as is stated in the last few lines of the help, pass the output
  944. of uCON64 to a program that waits for a key after one screen of text. You
  945. could use the program "more". In order to pass the output of uCON64 to more
  946. you have to use the pipe symbol, '|'. On an international keyboard you can
  947. type this symbol with the same key you use for the backslash ('\'). For
  948. example:<br>
  949. &nbsp;&nbsp; ucon64 -help|more<br>
  950. To get only help on the options for a specific console, specify the console
  951. on the command line. For example, to see only the help on Game Boy Advance
  952. options:<br>
  953. &nbsp;&nbsp; ucon64 -help -gba|more<br>
  954. Press the space bar to see the next help screen, the enter key to see the
  955. next line or q to quit.<br>
  956. <br>
  957. <p>
  958. <a name="29"><b>Q29</b>: I tried to send a ROM dump to my copier under
  959. Windows&nbsp;XP (NT/2000), but uCON64 crashed. What is wrong?</a><br>
  960. <b>A</b>: If the message looks like this (for the Win32 (Cygwin) executable):<br>
  961. &nbsp;&nbsp; 0 [main] ucon64 356 handle_exceptions: Exception: STATUS_PRIVILEGED_INSTRUCTION<br>
  962. 5570 [main] ucon64 356 open_stackdumpfile: Dumping stack trace to ucon64.exe.stackdump<br>
  963. or like this:<br>
  964. &nbsp;&nbsp; Illegal instruction (core dumped)<br>
  965. then you did not install an I/O driver (correctly). In this case "install"
  966. means that the I/O driver is running at the time uCON64 tries to access the
  967. parallel port. See <a href="#4">question 4</a>.<br>
  968. You will also see this message (with a Windows version of uCON64) if you
  969. tried to enable EPP mode for the FAL under Windows XP (NT/2000) , i.e., you
  970. specified the switch -xfalm, without an appropriate I/O port driver.
  971. UserPort is <i>inappropriate</i> for this, because it enables access to I/O
  972. ports up to 0x3ff. However, in order to enable EPP mode the FAL code tries
  973. to access an I/O port with an address higher than 0x3ff. If you want to be
  974. able to use EPP mode try io.dll or inpout32.dll.<br>
  975. Starting with version 2.0.0 uCON64 will not crash anymore if it cannot
  976. access the parallel port at start up (unless you use UserPort in combination
  977. with a Windows version of uCON64).<br>
  978. <br>
  979. <p>
  980. <a name="30"><b>Q30</b>: I want to convert a NES ROM in iNES format to UNIF.
  981. How do I know what board name to use?</a><br>
  982. <b>A</b>: The file
  983. <a href="http://cvs.sourceforge.net/viewcvs.py/ucon64/ucon64/src/console/boardtable.txt?view=markup" target="_blank">
  984. boardtable.txt</a> contains a table where you can find what game uses what
  985. board. The file
  986. <a href="http://cvs.sourceforge.net/viewcvs.py/ucon64/ucon64/src/console/boardnames?view=markup" target="_blank">
  987. boardnames</a> contains a list of all known board names.<br>
  988. <br>
  989. <p>
  990. <a name="31"><b>Q31</b>: How do I convert a NES ROM from Pasofami to FFE? Or
  991. from UNIF to Pasofami?</a><br>
  992. <b>A</b>: Use iNES as intermediate format. So, to do the conversion Pasofami
  993. -&#62; FFE, do this conversion instead: first Pasofami -&#62; iNES and then
  994. iNES -&#62; FFE.<br>
  995. To answer the second question, to do the conversion UNIF -&#62; Pasofami do
  996. this: UNIF -&#62; iNES and then iNES -&#62; Pasofami.<br>
  997. <br>
  998. <p>
  999. <a name="32"><b>Q32</b>: How do I specify dumper information when converting to
  1000. UNIF?</a><br>
  1001. <b>A</b>: Create a text file with three lines. The first line should contain
  1002. the name (or "handle") of the person who dumped the cartridge. This line may
  1003. be 99 characters long at maximum. The next line should contain the date when
  1004. the cartridge was dumped. The format is dd-mm-yyyy. Instead of the hyphen
  1005. ('-') you may also use the slash ('/'). If day or month is smaller than 10
  1006. you may use 1 or 2 digits, for example:<br>
  1007. &nbsp;&nbsp; 02/02/2002<br>
  1008. or<br>
  1009. &nbsp;&nbsp; 2-2-2002<br>
  1010. The third and last line should contain information about the dumping means
  1011. that was used. This line may also contain 99 characters at maximum. Here is
  1012. an example info file:<br>
  1013. &nbsp;&nbsp; Dirk &#60;noisyb@gmx.net&#62;<br>
  1014. &nbsp;&nbsp; 26-7-2002<br>
  1015. &nbsp;&nbsp; Custom built hardware<br>
  1016. To get this information in a UNIF file, you should use the -dumpinfo switch
  1017. in combination with the -unif option. Say you store the dumper information
  1018. in the file info.txt. This would get the info in a UNIF file:<br>
  1019. &nbsp;&nbsp; ucon64 -unif smb.nes -mapr NROM -dumpinfo info.txt<br>
  1020. If you already have a UNIF file the command line looks almost the same:<br>
  1021. &nbsp;&nbsp; ucon64 -unif smb.unf -dumpinfo info.txt<br>
  1022. For an existing UNIF file you need not specify the board name, but you might
  1023. want to specify it if you want to change the board name in the file.
  1024. Afterwards run uCON64 on the newly written ROM to see if you were
  1025. successful. uCON64's display output should contain a dump info section then.<br>
  1026. <br>
  1027. <p>
  1028. <a name="33"><b>Q33</b>: How do I specify that a NES game in UNIF format
  1029. supports multiple controller types?</a><br>
  1030. <b>A</b>: Use the -ctrl switch multiple times on the <i>same</i> command line.
  1031. For example, to specify that a game supports the controller types "regular
  1032. joypad" and "power pad" you should use a command line like this:<br>
  1033. &nbsp;&nbsp; ucon64 -unif smb.nes -mapr NROM -ctrl 0 -ctrl 4<br>
  1034. <br>
  1035. <p>
  1036. <a name="34"><b>Q34</b>: How do I enable or disable colors in the display
  1037. output of uCON64?</a><br>
  1038. <b>A</b>: For the Windows and Unix executables colors are enabled by default.
  1039. For the DOS executable ANSI.SYS must be loaded. Under DOS and
  1040. Windows&nbsp;9x ANSI.SYS can be loaded by adding a line to the end of
  1041. c:\config.sys of the format "device=&#60;full path to ANSI.SYS&#62;".
  1042. Say ANSI.SYS is located in the directory c:\windows\command, then the line
  1043. would have to look like this:<br>
  1044. &nbsp;&nbsp; device=c:\windows\command\ansi.sys<br>
  1045. Changes made to config.sys under DOS and Windows&nbsp;9x will become active
  1046. only after a reboot.<br>
  1047. Under Windows&nbsp;XP/NT you should add a similar line to your
  1048. %SystemRoot%\system32\CONFIG.NT:<br>
  1049. &nbsp;&nbsp; device=%SystemRoot%\system32\ansi.sys<br>
  1050. The use of color can be disabled by specifying the switch -ncol on the
  1051. command line. You can also add the following line to the configuration file:<br>
  1052. &nbsp;&nbsp; ansi_color=0<br>
  1053. <br>
  1054. <p>
  1055. <a name="35"><b>Q35</b>: When I try to convert a large number of files using
  1056. wildcards, uCON64 will only convert the first file. Is this a bug?</a><br>
  1057. <b>A</b>: No, it is not. uCON64 versions before 1.9.8beta7 just do not support
  1058. wildcards. For example, to convert all files with the suffix (M$ speak:
  1059. extension) .mgd to Super Wild Card format, try this in Bash:<br>
  1060. &nbsp;&nbsp; find -name \*.mgd -exec ucon64 --snes --swc {} \;<br>
  1061. or this in command.com or cmd.exe:<br>
  1062. &nbsp;&nbsp; for %f in (*.mgd) do ucon64 --snes --swc "%f"<br>
  1063. However, this functionality has been added to uCON64 1.9.8beta7. With that
  1064. version you can do the same thing with:<br>
  1065. &nbsp;&nbsp; ucon64 --snes --swc *.mgd<br>
  1066. In case something goes terribly wrong and uCON64 crashes it might still be
  1067. necessary to use one of the previous methods, because every file will be
  1068. processed and not only the files before the crash.<br>
  1069. <br>
  1070. <p>
  1071. <a name="36"><b>Q36</b>: Does uCON64 support DAT (RomCenter/GoodXXXX) files?</a><br>
  1072. <b>A</b>: Yes, starting with version 1.9.8beta8 it does. First use the option
  1073. -version to see which configuration file uCON64 uses
  1074. (see <a href="#25">question 25</a>). Then open that file in an editor and
  1075. look for a line that starts with "ucon64_datdir=" (without the quotes). If
  1076. that line is not present add one. For example on Unix:<br>
  1077. &nbsp;&nbsp; ucon64_datdir=~/.ucon64/dat<br>
  1078. or on Windows:<br>
  1079. &nbsp;&nbsp; ucon64_datdir=c:\ucon64\dat<br>
  1080. You can use the tilde ('~') also on DOS and Windows. It will be interpreted
  1081. by uCON64 as the "home directory". The home directory is the directory
  1082. specified by the environment variable HOME or USERPROFILE or HOMEDRIVE and
  1083. HOMEPATH. If none of those environment variables are set, the current
  1084. directory will be handled as the home directory. Again, see
  1085. <a href="#25">question 25</a>.<br>
  1086. You can also set an environment variable with the name ucon64_datdir. The
  1087. value of the environment variable takes precedence over the value in the
  1088. configuration file.<br>
  1089. Then copy all DAT files you have into that directory. You can download DAT
  1090. files from sites like
  1091. <a href="http://emulationrealm.com/rcdat.php#Cowering_GoodTools" target="_blank">
  1092. http://emulationrealm.com/</a>,
  1093. <a href="http://www.romcenter.com/" target="_blank">
  1094. http://www.romcenter.com/</a> or
  1095. <a href="http://www.rommanager.com/" target="_blank">
  1096. http://www.rommanager.com/</a>. You can also find some DAT files on
  1097. <a href="http://ucon64.sourceforge.net/index.html#ucon64dat" target="_blank">
  1098. the uCON64 homepage</a>.<br>
  1099. uCON64 will automatically create index files which speed up the access to
  1100. the DAT files dramatically. Now uCON64 uses the information inside the DAT
  1101. files to identify or rename ROMs without an internal header.<br>
  1102. Starting with version 1.9.8beta8 uCON64 does not have an internal database
  1103. anymore, so you will <b>need</b> DAT files for files like NES ROM dumps.<br>
  1104. You can check which DAT files are used by uCON64 with the option -db. You
  1105. can view or list all DAT entries with the option -dbv. You can search for a
  1106. specific CRC32 value with the option -dbs. The force-console-type options
  1107. can be used in combination with -db, -dbv and -dbs. For example, to see
  1108. which DAT files are used to identify SNES ROM dumps, type:<br>
  1109. &nbsp;&nbsp; ucon64 -db -snes<br>
  1110. If uCON64 reports that it found 0 DAT files you did not install the DAT
  1111. file(s) correctly.<br>
  1112. <br>
  1113. <p>
  1114. <a name="37"><b>Q37</b>: Some SNES games do not work on my Super Pro Fighter
  1115. Q(+). What can I do about that?</a><br>
  1116. <b>A</b>: First read the answer to <a href="#12">question 12</a>.
  1117. Starting with versions after 1.9.8beta8 you can send (and dump) games with
  1118. the option -xfig. It could be that some games need to be in Super Wild Card
  1119. format in order for them to work correctly what SRAM concerns if you load
  1120. them from diskette. So, instead of converting them with -fig you have to use
  1121. the option -swc. For example Earthbound and "Lufia &amp; The Fortress of
  1122. Doom" have all sorts of problems when they are in FIG format, but not when
  1123. they are in SWC format. Other games work best when you convert them with
  1124. -fig. For example Seiken Densetsu 3 will run best when converted with -fig.<br>
  1125. There seems to be a bit of an overheating problem with some Super Pro
  1126. Fighter Q(+) models. After playing half an hour or so, this may result in
  1127. reboots or other strange behaviour. We have received a report of one user
  1128. who solved this by removing the case of the Super Pro Fighter Q(+) and
  1129. placing a CPU fan on top of the SPFQ's RAM chips.<br>
  1130. <br>
  1131. <p>
  1132. <a name="38"><b>Q38</b>: uCON64 displays too many lines for my DOS-box. What
  1133. can I do about that?</a><br>
  1134. <b>A</b>: You can do several things:<br>
  1135. 1.) Change the number of lines that can be displayed at once with this
  1136. command:<br>
  1137. &nbsp;&nbsp; mode con lines=50<br>
  1138. 2.) Use the program "more". See <a href="#28">question 28</a>.<br>
  1139. 3.) Redirect the output of uCON64 to a file. For example:<br>
  1140. &nbsp;&nbsp; ucon64 rom.swc &#62; output.txt<br>
  1141. You can then open the file output.txt in an editor.<br>
  1142. <br>
  1143. <p>
  1144. <a name="39"><b>Q39</b>: When will the next version of uCON64 be released? I
  1145. have heard the next version is able to crack my favourite SNES game, but I
  1146. do not know how to use CVS or a compiler.</a><br>
  1147. <b>A</b>: We know when we will release a new version only just before we do so.
  1148. But starting with uCON64 1.9.8beta8 this is not a problem for you at all.
  1149. The only requirement is that you are able to read and use a text editor ;-)<br>
  1150. First visit the uCON64 homepage and from there follow a link to the
  1151. <a href="http://sourceforge.net/projects/ucon64" target="_blank">
  1152. uCON64 SourceForge page</a>. You should be able to find a page where you can
  1153. browse the CVS repository. Download the latest version of the file snes.c.
  1154. Open the file in an editor and search for the text snes_k. If you are
  1155. looking for NTSC or PAL fixes search either for snes_fix_pal_protection or
  1156. snes_fix_ntsc_protection, depending on what you need. For example, you will
  1157. have to search for snes_fix_pal_protection, if you want to fix a game so
  1158. that it will run on an NTSC SNES.<br>
  1159. Then read the comment to see what "code" your game requires. However, surely
  1160. not every game will be mentioned in the comments. In that case search for
  1161. the corresponding "line" a bit below. For example, for Mega Man X you will
  1162. find this text in the comments:<br>
  1163. &nbsp;&nbsp; af/bf XX 80 00 cf/df XX 80 40 f0<br>
  1164. =&#62; af/bf XX 80 00 cf/df XX 80 40 80<br>
  1165. Then you could search for the sequence \x80\x40\xf0. It is just a subset of
  1166. the search pattern with each element prefixed with "\x". Searching for
  1167. \xaf/\xbf will not bring you far. Searching for \xXX\x80 neither. It takes a
  1168. bit too much text to explain all the details, so just follow the directions.
  1169. Note that I did not advise to search for \x80\x40\x80, because that is what
  1170. the sequence should be after uCON64 has cracked or fixed the game.<br>
  1171. For Mega Man X you will find the lines:<br>
  1172. &nbsp;&nbsp; n += change_mem (buffer, bytesread, "!*\x80\x00!*\x80\x40\xf0", 9, '*', '!', "\x80", 1, 0,<br>
  1173. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  1174. "\xaf\xbf", 2, "\xcf\xdf", 2);<br>
  1175. Now open the file snescopy.txt. If you are trying to get uCON64 support new
  1176. NTSC or PAL cracks open snesntsc.txt or snespal.txt respectively. Then copy
  1177. the parts "!*\x80\x00!*\x80\x40\xf0", '*', '!', "\x80", 0, "\xaf\xbf" and
  1178. "\xcf\xdf" to a new line in that file. Note that 0 is the 9th parameter.
  1179. Also note that "\xaf\xbf" and "\xcf\xdf" are all parameters between double
  1180. quotes after the 9th parameter.<br>
  1181. Remove the double and single quotes and separate the parts by a colon. Then
  1182. replace the prefix \x with a space. If you followed the directions the line
  1183. will look like this:<br>
  1184. &nbsp;&nbsp; !* 80 00!* 80 40 f0: *: !: 80: 0: af bf: cf df<br>
  1185. You are almost done now. Only one thing has to be done. Look at what the
  1186. "wildcard" and "escape" symbols are. They are defined by the 5th and 6th
  1187. parameter of change_mem(), respectively. In our example the 5th parameter is
  1188. '*', so the wildcard character is: *. The 6th parameter is '!', so the
  1189. escape character is: !. And now the last step: replace the wildcard and
  1190. escape characters with a (hexadecimal) number that does not occur in the
  1191. rest of the character sequence (except other wildcards and escape symbols or
  1192. values). Be sure to have at least one space between the numbers. In our
  1193. example we could choose the values 1 and 2. In that case the finished line
  1194. would look like this:<br>
  1195. &nbsp;&nbsp; 2 1 80 00 2 1 80 40 f0: 1: 2: 80: 0: af bf: cf df<br>
  1196. If for example the 5th parameter would have been \x01, the wildcard would be
  1197. 01. In that case you would not have to change it, because it is already a
  1198. number.<br>
  1199. Now save the changed file and place it either in the directory from where
  1200. you will run uCON64 (this is not necessarily the same directory as the one
  1201. where the uCON64 executable might be located!) or in uCON64's configuration
  1202. directory. Use the option -version to find out which directory that is. Then
  1203. try if uCON64 is able to crack your game. uCON64 will display a warning
  1204. message if it detects an error in your new line. If you made a mistake with
  1205. escape symbols uCON64 might very well crash. You can use the switch -v (in
  1206. combination with -k, -f or -l) to make uCON64 display what information it
  1207. reads from the file.<br>
  1208. If you cannot find which line you need you will either have to add a line to
  1209. snescopy.txt, snespal.txt or snesntsc.txt for every code that is not already
  1210. mentioned in those files or ask someone else to do it for you. For example
  1211. on an emulation web forum like
  1212. the <a href="http://www.cherryroms.com/" target="_blank">cherryroms</a>
  1213. <a href="http://forums.cherryroms.com/viewforum.php?f=2" target="_blank">
  1214. copier and hardware forum</a>.<br>
  1215. <br>
  1216. <p>
  1217. <a name="40"><b>Q40</b>: What is the format of the snes*.txt files?</a><br>
  1218. <b>A</b>: Zero or more <u>lines</u> of the following format:<br>
  1219. &#60;search&#62; : &#60;wc&#62; : &#60;esc&#62; : &#60;new&#62; : &#60;off&#62;
  1220. [: &#60;set&#62;]*<br>
  1221. Where <i>search</i> is the search pattern, <i>wc</i> the wildcard value,
  1222. <i>esc</i> the escape value, <i>new</i> the replacement byte sequence,
  1223. <i>off</i> the offset and <i>set</i> a set of bytes for each escape value in
  1224. the search pattern. uCON64 does not accept this information to be specified
  1225. across several lines. All values should be specified in hexadecimal, except
  1226. the offset.<br>
  1227. If the search pattern does not contain any escape bytes, you need not specify
  1228. a set as it will not be used. If it does contain escape bytes you will have
  1229. to specify a set for each one of them. Take for example the pattern:<br>
  1230. &nbsp;&nbsp; 01 00 01 00 42 84 ff 75 : ff : 00 : 02 03 : -6 : 22 11 : 19 75<br>
  1231. This will match amongst 1020 others with the following byte sequences:<br>
  1232. &nbsp;&nbsp; 01 22 01 19 42 84 19 75<br>
  1233. &nbsp;&nbsp; 01 11 01 19 42 84 91 75<br>
  1234. &nbsp;&nbsp; 01 22 01 75 42 84 00 75<br>
  1235. &nbsp;&nbsp; 01 11 01 75 42 84 ff 75<br>
  1236. A wildcard value in the search pattern matches with any value.<br>
  1237. Using the above search pattern, uCON64 will search and replace two bytes six
  1238. bytes "back" from the end of any matched byte sequence.
  1239. For example, any occurence of the byte sequence 01 22 01 19 42 84 19 75 will
  1240. be changed into 01 02 03 19 42 84 19 75.<br>
  1241. <br>
  1242. <p>
  1243. <a name="41"><b>Q41</b>: Is it possible to force uCON64 to send or dump (an)
  1244. SRAM (file) instead of that it depends on whether the file exists?</a><br>
  1245. <b>A</b>: No, but you could use a simple script or batch file to force sending
  1246. or dumping. Here is an example batch file to force dumping SRAM with a Pro
  1247. Fighter:<br>
  1248. &nbsp;&nbsp;@echo off<br>
  1249. &nbsp;&nbsp;if exist %1 goto error<br>
  1250. &nbsp;&nbsp;ucon64 -xfigs %1<br>
  1251. &nbsp;&nbsp;goto exit<br>
  1252. &nbsp;&nbsp;:error<br>
  1253. &nbsp;&nbsp;echo %1 already exists, use a different name<br>
  1254. &nbsp;&nbsp;:exit<br>
  1255. Save that text to a file that ends with ".bat" (without the quotes). Say you
  1256. save it to a file named dumpsram.bat. Then you can dump the SRAM of the Pro
  1257. Fighter with a command line like:<br>
  1258. &nbsp;&nbsp;dumpsram save1.sav<br>
  1259. You do not have to check if save1.sav exists anymore as the batch file will
  1260. do it for you.<br>
  1261. Here is the Bash script equivalent of the above batch file:<br>
  1262. &nbsp;&nbsp;#! /bin/bash<br>
  1263. &nbsp;&nbsp;if [ -e "$1" ]; then<br>
  1264. &nbsp;&nbsp;echo $1 already exists, use a different name<br>
  1265. &nbsp;&nbsp;exit<br>
  1266. &nbsp;&nbsp;fi<br>
  1267. &nbsp;&nbsp;ucon64 -xfigs "$1"<br>
  1268. You do not have to give the file a specific name. Just do not forget to make
  1269. the file executable. Say you name it dumpsram, then you could make it
  1270. executable with:<br>
  1271. &nbsp;&nbsp;chmod +x dumpsram<br>
  1272. Now you can dump the SRAM with:<br>
  1273. &nbsp;&nbsp;./dumpsram save1.sav<br>
  1274. <br>
  1275. <p>
  1276. <a name="42"><b>Q42</b>: Why does uCON64 support DAT files?</a><br>
  1277. <b>A</b>: uCON64 supports DAT files for two reasons:<br>
  1278. 1.) In order to reliably identify ROM dumps.<br>
  1279. 2.) In order to rename ROM dumps to their "official" name.<br>
  1280. Some ROM dump formats contain enough information to identify them, but none
  1281. of the formats supported by uCON64 can be <i>reliably</i> identified.<br>
  1282. The check sum algorithms that are used to calculate the internal check sum
  1283. of the files that have one is a simple addition of a range of bytes. So,
  1284. several bytes can be swapped and still yield the same check sum. Even the
  1285. range can be different and produce the same check sum. The latter case often
  1286. occurs with overdumps. Some ROM dump formats do not even use the entire file
  1287. for the check sum calculation...<br>
  1288. uCON64 solves these problems as it uses the CRC32 algorithm for file
  1289. identification. The CRC32 algorithm will produce a different check sum if
  1290. bytes are swapped or if the range is different. When uCON64 is run on a ROM
  1291. dump it first calculates the CRC32 of that file and then searches in its DAT
  1292. files for that CRC32. If the CRC32 is present uCON64 will display the
  1293. information it found in the DAT file. If uCON64 could not find the CRC32 it
  1294. will not display DAT information.<br>
  1295. At the risk of labouring the obvious I might add that even if all formats
  1296. used a check sum algorithm like CRC32, DAT files would still be necessary as
  1297. it is not possible to reliably identify a file without an external
  1298. reference.<br>
  1299. <br>
  1300. <p>
  1301. <a name="43"><b>Q43</b>: How should the option --mkdat be used?</a><br>
  1302. <b>A</b>: With care ;-)<br>
  1303. Seriously, let me first state that it would not be helpful if people would
  1304. start creating DAT files from their ROM collections and publish them without
  1305. some form of coordination. At the time of this writing (2 June 2003)
  1306. Cowering's GoodXXXX utilities are the standard for most consoles.<br>
  1307. In order to create a DAT file first make sure that all the ROMs you want to
  1308. create a DAT file from, have the name you want them to have. This is
  1309. important as DAT files are used not only for identification, but also for
  1310. renaming files (when using the option --rename). Also make sure all the
  1311. files have a suffix (or "extension"). Then start uCON64 with the --mkdat
  1312. option. For example, to create a DAT file from all the SNES ROM dumps in the
  1313. directory c:\snesrom use a command line like:<br>
  1314. &nbsp;&nbsp;ucon64 --mkdat=snes-02062003.dat c:\snesrom<br>
  1315. In this case a DAT file named snes-02062003.dat will be created. When you
  1316. copy this file to uCON64's DAT directory uCON64 will use it to identify SNES
  1317. ROMs. Note that the name ends with ".dat". uCON64 will only see DAT files if
  1318. they have a name that ends with ".dat". Note also that the name starts with
  1319. "snes". uCON64 will use all DAT files (in its DAT directory) that start with
  1320. "snes" to identify SNES ROM dumps. The letter case is not important, so you
  1321. could also use a name that starts with "SNES" or "Snes". If you use an
  1322. incorrect name uCON64 will not use the DAT file, but will print a warning
  1323. message each time you run uCON64 on a ROM dump. Here follows a table to see
  1324. which name uCON64 uses for what console:<br>
  1325. <br>
  1326. <table border="1">
  1327. <tr>
  1328. <th><tt>console</tt></th>
  1329. <th><tt>DAT file name prefix</tt></th>
  1330. </tr>
  1331. <tr>
  1332. <td><tt>"Atari hardware"</tt></td>
  1333. <td><tt>Good2600, Good5200, Good7800, 2600, 5200 or 7800</tt></td>
  1334. </tr>
  1335. <tr>
  1336. <td><tt>Coleco</tt></td>
  1337. <td><tt>GoodCOL or Coleco</tt></td>
  1338. </tr>
  1339. <tr>
  1340. <td><tt>Game Boy Advance</tt></td>
  1341. <td><tt>GoodGBA or GBA</tt></td>
  1342. </tr>
  1343. <tr>
  1344. <td><tt>Game Boy (Color)</tt></td>
  1345. <td><tt>GoodGBX or GBX</tt></td>
  1346. </tr>
  1347. <tr>
  1348. <td><tt>Genesis or Mega Drive</tt></td>
  1349. <td><tt>GoodGEN or GEN</tt></td>
  1350. </tr>
  1351. <tr>
  1352. <td><tt>Intellivision</tt></td>
  1353. <td><tt>GoodINTV or Intelli</tt></td>
  1354. </tr>
  1355. <tr>
  1356. <td><tt>Jaguar</tt></td>
  1357. <td><tt>GoodJAG or JAG</tt></td>
  1358. </tr>
  1359. <tr>
  1360. <td><tt>Lynx</tt></td>
  1361. <td><tt>GoodLynx or Lynx</tt></td>
  1362. </tr>
  1363. <tr>
  1364. <td><tt>"M.A.M.E. hardware"</tt></td>
  1365. <td><tt>MAME</tt></td>
  1366. </tr>
  1367. <tr>
  1368. <td><tt>Neo Geo</tt></td>
  1369. <td><tt>Neo-Geo</tt></td>
  1370. </tr>
  1371. <tr>
  1372. <td><tt>Neo Geo Pocket</tt></td>
  1373. <td><tt>GoodNGPX or NGP</tt></td>
  1374. </tr>
  1375. <tr>
  1376. <td><tt>NES</tt></td>
  1377. <td><tt>GoodNES, NES or FDS</tt></td>
  1378. </tr>
  1379. <tr>
  1380. <td><tt>Nintendo 64</tt></td>
  1381. <td><tt>GoodN64 or N64</tt></td>
  1382. </tr>
  1383. <tr>
  1384. <td><tt>PC-Engine</tt></td>
  1385. <td><tt>GoodPCE or PCE</tt></td>
  1386. </tr>
  1387. <tr>
  1388. <td><tt>Sega Master System and Game Gear</tt></td>
  1389. <td><tt>GoodSMS, GoodGG, SMS or GG</tt></td>
  1390. </tr>
  1391. <tr>
  1392. <td><tt>SNES</tt></td>
  1393. <td><tt>GoodSNES or SNES</tt></td>
  1394. </tr>
  1395. <tr>
  1396. <td><tt>Vectrex</tt></td>
  1397. <td><tt>GoodVECT or Vectrex</tt></td>
  1398. </tr>
  1399. <tr>
  1400. <td><tt>Virtual Boy</tt></td>
  1401. <td><tt>GoodVBOY or VBOY</tt></td>
  1402. </tr>
  1403. <tr>
  1404. <td><tt>WonderSwan</tt></td>
  1405. <td><tt>GoodWSX or swan</tt></td>
  1406. </tr>
  1407. <!--
  1408. <tr>
  1409. <td><tt>3DO</tt></td>
  1410. <td><tt>3do</tt></td>
  1411. </tr>
  1412. <tr>
  1413. <td><tt>CD32</tt></td>
  1414. <td><tt>CD32</tt></td>
  1415. </tr>
  1416. <tr>
  1417. <td><tt>CDi</tt></td>
  1418. <td><tt>CDi</tt></td>
  1419. </tr>
  1420. <tr>
  1421. <td><tt>Dreamcast</tt></td>
  1422. <td><tt>Dreamcast</tt></td>
  1423. </tr>
  1424. <tr>
  1425. <td><tt>Saturn</tt></td>
  1426. <td><tt>Saturn</tt></td>
  1427. </tr>
  1428. <tr>
  1429. <td><tt>XBox</tt></td>
  1430. <td><tt>XBox</tt></td>
  1431. </tr>
  1432. -->
  1433. </table>
  1434. <br>
  1435. You can create a DAT file from a subset of the files in a directory by
  1436. explicitly specifying the files on the command line:<br>
  1437. &nbsp;&nbsp;ucon64 --mkdat=snes-02062003.dat c:\snesrom\*.swc<br>
  1438. uCON64 uses the first file to determine for which console a DAT file is
  1439. meant. So, if you want to create a DAT file from a set of ROMs of several
  1440. consoles, the first file uCON64 encounters will determine the DAT file type.
  1441. You can do two things in such a case to be sure for which console the
  1442. resulting DAT file will be meant:<br>
  1443. 1.) Specify one extra ROM dump as first file on the command line. For
  1444. example:<br>
  1445. &nbsp;&nbsp;ucon64 --mkdat=n64-02062003.dat c:\rom\mario64.v64 c:\rom<br>
  1446. 2.) Use a force recognition switch. For example:<br>
  1447. &nbsp;&nbsp;ucon64 --mkdat=sms-02062003.dat c:\rom --sms<br>
  1448. <br>
  1449. The second option should only be used when you are sure all the files are
  1450. for a certain console and uCON64 fails to recognise some.<br>
  1451. You can control what information uCON64 displays when creating a DAT file
  1452. with the switches -v and -q. --mkdat uses three levels of verbosity:<br>
  1453. 1.) When the switch -v is specified uCON64 will display a warning if it
  1454. could not determine the console type for a file. uCON64 will also display a
  1455. warning if it encounters a file that has the same CRC32 as a file uCON64
  1456. already processed (a "duplicate").<br>
  1457. 2.) When neither -v nor -q is specified uCON64 will display a warning only
  1458. if it finds a duplicate or if the console type of the first file could not
  1459. be determined.<br>
  1460. 3.) When -q is specified uCON64 will display a warning only if the console
  1461. type of the first file could not be determined.<br>
  1462. <br>
  1463. If you had to specify a first file you could suppress the warning about a
  1464. duplicate by using the switch -q. For example:<br>
  1465. &nbsp;&nbsp;ucon64 --mkdat=n64-02062003.dat c:\rom\mario64.v64 c:\rom -q<br>
  1466. <br>
  1467. <p>
  1468. <a name="44"><b>Q44</b>: What tools do you recommend besides uCON64?</a><br>
  1469. <b>A</b>: For SNES, only
  1470. <a href="http://nsrt.edgeemu.com" target="_blank">NSRT</a> (Nach's SNES ROM
  1471. Tools). That is, starting from version 3.0 Release Candidate 1. NSRT has some
  1472. features that uCON64 does not have. The two most interesting features are
  1473. arguably that it is able to fix some hacked ROM dumps and that it has an
  1474. internal database which is spend a lot of effort on to have it contain only
  1475. correct entries (as opposed to GoodSNES and the GoodSNES DAT files). What the
  1476. second feature is concerned let us remind you that the quality of uCON64's
  1477. ROM database support stands or falls with the quality of the DAT files. So,
  1478. if you would create a DAT file of a ROM dump collection processed with NSRT
  1479. uCON64 would get a SNES database that is similar to the one in NSRT. See
  1480. <a href="#43">question 43</a>. Another advantage NSRT has over uCON64 (as
  1481. seen from a SNES user's viewpoint) is that it is written only for SNES. NSRT
  1482. also handles some strange formats that uCON64 does not handle.<br>
  1483. <br>
  1484. <p>
  1485. <a name="45"><b>Q45</b>: What is an interleaved ROM?</a><br>
  1486. <b>A</b>: Strictly speaking, interleaved ROMs do not exist. Interleaved ROM
  1487. dumps do. Or perhaps it is better to say ROM dumps in interleaved format.
  1488. The meaning of "interleaved" depends on the console type. Interleaved
  1489. formats exist for NES, Sega Master System, Game Gear, PC-Engine, Genesis,
  1490. SNES and Nintendo 64.<br>
  1491. Deinterleaving is the opposite of interleaving a ROM dump. It is the process
  1492. of converting the data to "binary" format. Binary in the sense as how the
  1493. data (in a cartridge) is presented to the CPU.<br>
  1494. ROM dumps can be interleaved (not for NES) and deinterleaved with uCON64.<br>
  1495. <br>
  1496. NES<br>
  1497. NES dumps can contain two types of data, "PRG data" and "CHR data".
  1498. Interleaved NES dumps have the PRG data stored at the even offsets in the
  1499. file and the CHR data at the odd offsets. Non-interleaved dumps first
  1500. contain all the PRG data followed by the CHR data (if present).<br>
  1501. Cannot be interleaved with uCON64.<br>
  1502. Can be deinterleaved with uCON64 using the option -dint.<br>
  1503. <br>
  1504. Sega Master System, Game Gear and Genesis<br>
  1505. Interleaved Sega Master System, Game Gear and Genesis dumps are produced by
  1506. the Super Magic Drive and the Multi Game Doctor 2.<br>
  1507. For the SMD: for each block of 16384 bytes of the ROM all bytes at even
  1508. offsets are stored in the upper half of the dumped block. The bytes at odd
  1509. offsets are stored in the lower half. So, each dumped block first contains
  1510. 8192 "odd bytes" then 8192 "even bytes".<br>
  1511. For the MGD2: all odd bytes of the file are stored in the first half of the
  1512. file, all even bytes in the second half.<br>
  1513. Can be interleaved with uCON64 using the option -smd or -mgd.<br>
  1514. Can be deinterleaved with uCON64 using the option -bin.<br>
  1515. <br>
  1516. PC-Engine<br>
  1517. Interleaved PC-Engine or TurboGrafx-16 dumps are not produced by a specific
  1518. copier. It depends on the HuCARD (PC-Engine/TurboGrafx-16 game cartridge).
  1519. American HuCARDs produce an interleaved dump, because the 8 data pins are
  1520. reversed compared to Japanese HuCARDs. Perhaps "bit-swapped" is a better
  1521. word to describe the format, but using the word interleaved prevents
  1522. confusion (as bit-swapped implies a non bit-swapped reference).<br>
  1523. Can be interleaved with uCON64 using the option -mgd, making the game
  1524. suitable for a TurboGrafx-16. You can use the option -swap afterwards if you
  1525. want to play the game on a PC-Engine.<br>
  1526. Can be deinterleaved with uCON64 using the option -msg.<br>
  1527. <br>
  1528. SNES<br>
  1529. Interleaved SNES dumps are produced by the Game Doctor and the Super UFO
  1530. when dumping a HiROM cartridge. The simplest interleaved format first
  1531. contains all upper halfs of each 64 kB block of the ROM (HiROM "banks"),
  1532. then all lower halfs. There are several interleaved formats, but except for
  1533. one they all share the principle of dividing each 64 kB block in two.<br>
  1534. SNES ROMs contain a block of 48 bytes, some call it the internal SNES
  1535. header, that contains information about the ROM. Information like game name,
  1536. check sum, size and the bank type. There are two bank types, HiROM and LoROM
  1537. (as far as we know these are terms not used by Nintendo). HiROM ROMs have
  1538. banks of 64 kB, LoROM ROMs have banks of 32 kB. The first bank contains the
  1539. internal SNES header at a fixed offset relative to the end of the bank.
  1540. However, because the bank sizes differ for HiROM and LoROM the absolute
  1541. locations differ for the two in non-interleaved dumps. If dumps are
  1542. interleaved the absolute locations are te same.<br>
  1543. The interleaved format was probably introduced so that a copier <i>can</i>
  1544. (the Game Doctor does only if the dump has no header) always check the same
  1545. location in a dump to tell whether it should handle it as a LoROM or a HiROM
  1546. dump.<br>
  1547. Can be interleaved with uCON64 using the option -gd3 or -ufo.<br>
  1548. Can be deinterleaved with uCON64 using the option -dint, but it is
  1549. better to use one of the regular conversion options -smc, -swc, -fig or
  1550. -mgd. Some SNES tools erroneously interleave LoROM dumps. These dumps
  1551. can be deinterleaved with the options -gd3 and -ufo as well as with the
  1552. aformentioned (SNES) options.<br>
  1553. <br>
  1554. Nintendo 64<br>
  1555. Interleaved Nintendo 64 dumps are produced by the Doctor V64 and the Doctor
  1556. V64 Junior. Perhaps "byte-swapped" is a better term for Nintendo 64 dumps.
  1557. For each two bytes the first and the second byte are swapped.<br>
  1558. Can be interleaved with uCON64 using the option -v64.<br>
  1559. Can be deinterleaved with uCON64 using the option -dint, but it is better to
  1560. use the regular conversion option -z64.<br>
  1561. <br>
  1562. <p>
  1563. <a name="46"><b>Q46</b>: The pre-compiled GNU/Linux binary does not work on my
  1564. system, while a binary compiled by me works fine. How can that be?</a><br>
  1565. <b>A</b>: If you get this output on the command line:<br>
  1566. &nbsp;&nbsp;libgcc_s.so.1: cannot open shared object file: No such file or directory<br>
  1567. Or when the command "ldd discmage.so" gives output that looks like this:<br>
  1568. &nbsp;&nbsp;libz.so.1 => /usr/lib/libz.so.1 (0x4002b000)<br>
  1569. &nbsp;&nbsp;libgcc_s.so.1 => not found<br>
  1570. &nbsp;&nbsp;libc.so.6 => /lib/libc.so.6 (0x40039000)<br>
  1571. &nbsp;&nbsp;/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)<br>
  1572. (note the text "not found") then you are experiencing a binary
  1573. incompatibility problem with the add-on discmage library. You can either
  1574. remove the discmage library from the directory where uCON64 looks for it
  1575. (see <a href="#4">question 4</a>) or compile the library yourself (see
  1576. <a href="#3">question 3</a>).<br>
  1577. <br>
  1578. <p>
  1579. <a name="47"><b>Q47</b>: I use Windows XP (NT/2000) and every time I run uCON64
  1580. I get this error message about ntuser.dat. What does it mean?</a><br>
  1581. <b>A</b>: If you see lines in the display output of uCON64 that look like
  1582. these:<br>
  1583. &nbsp;&nbsp;Create: ntuser.idx<br>
  1584. &nbsp;&nbsp;ERROR: Can't open "C:\Documents and Settings\Daniël\ntuser.dat" for reading<br>
  1585. you should modify the configuration file so that ucon64_datdir points to
  1586. another directory.<br>
  1587. By default uCON64 will use the home directory as the directory where it
  1588. searches for DAT files (the "DAT file directory"). uCON64 handles all files
  1589. in the DAT file directory that have a name that ends with ".dat" as DAT
  1590. files. ntuser.dat seems to be a standard file in a Windows XP user's home
  1591. directory (and should not be removed), but it is not a DAT file for use with
  1592. uCON64. See <a href="#36">question 36</a> for more information on how to
  1593. configure uCON64 so that it uses "real" DAT files. If you only want to get
  1594. rid of that error message either make ucon64_datdir in the configuration
  1595. file point to an existing directory that does not contain any files with a
  1596. name that ends with ".dat" or make an environment variable with the name
  1597. ucon64_datdir point to such a directory. Do not forget that the environment
  1598. variable will not be set the next time you start a DOS session.<br>
  1599. <br>
  1600. <p>
  1601. <a name="48"><b>Q48</b>: Is there any way to make uCON64 convert a ROM dump to
  1602. Game Doctor SF3/SF6/SF7 format and split it, in one command?</a><br>
  1603. <b>A</b>: Not directly, but it can be done with the help of a shell script or
  1604. batch file. See <a href="#41">question 41</a> for some information on how to
  1605. make a shell script or batch file run. Here is a Bash script:<br>
  1606. &nbsp;&nbsp;#! /bin/bash<br>
  1607. <br>
  1608. &nbsp;&nbsp;usage ()<br>
  1609. &nbsp;&nbsp;{<br>
  1610. &nbsp;&nbsp; echo "Usage: $0 file_to_convert_and_split"<br>
  1611. &nbsp;&nbsp; exit<br>
  1612. &nbsp;&nbsp;}<br>
  1613. <br>
  1614. &nbsp;&nbsp;GD3DIR="convert"<br>
  1615. &nbsp;&nbsp;SPLITDIR="split"<br>
  1616. <br>
  1617. &nbsp;&nbsp;if [ ! -n "$1" ]; then usage; fi<br>
  1618. &nbsp;&nbsp;if [ ! -e "$1" ]; then usage; fi<br>
  1619. <br>
  1620. &nbsp;&nbsp;if [ ! -e "$GD3DIR" ]; then mkdir "$GD3DIR"; fi<br>
  1621. &nbsp;&nbsp;if [ ! -e "$SPLITDIR" ]; then mkdir "$SPLITDIR"; fi<br>
  1622. <br>
  1623. &nbsp;&nbsp;rm -f "$GD3DIR"/*<br>
  1624. &nbsp;&nbsp;rm -f "$SPLITDIR"/*<br>
  1625. <br>
  1626. &nbsp;&nbsp;ucon64 -q -gd3 "$1" -o "$GD3DIR"<br>
  1627. &nbsp;&nbsp;ucon64 -q -s "$GD3DIR"/* -o "$SPLITDIR"<br>
  1628. <br>
  1629. And here is a batch file:<br>
  1630. &nbsp;&nbsp;@echo off<br>
  1631. <br>
  1632. &nbsp;&nbsp;set GD3DIR="convert"<br>
  1633. &nbsp;&nbsp;set SPLITDIR="split"<br>
  1634. <br>
  1635. &nbsp;&nbsp;if .==.%1 goto usage<br>
  1636. &nbsp;&nbsp;if not exist %1 goto usage<br>
  1637. <br>
  1638. &nbsp;&nbsp;if not exist %GD3DIR% mkdir %GD3DIR%<br>
  1639. &nbsp;&nbsp;if not exist %SPLITDIR% mkdir %SPLITDIR%<br>
  1640. <br>
  1641. &nbsp;&nbsp;del /q %GD3DIR%\*<br>
  1642. &nbsp;&nbsp;del /q %SPLITDIR%\*<br>
  1643. <br>
  1644. &nbsp;&nbsp;ucon64 -q -gd3 %1 -o %GD3DIR%<br>
  1645. &nbsp;&nbsp;ucon64 -q -s %GD3DIR%\* -o %SPLITDIR%<br>
  1646. &nbsp;&nbsp;goto exit<br>
  1647. <br>
  1648. &nbsp;&nbsp;:usage<br>
  1649. &nbsp;&nbsp;echo Usage: %0 file_to_convert_and_split<br>
  1650. <br>
  1651. &nbsp;&nbsp;:exit<br>
  1652. <br>
  1653. Say you saved the batch file to the name cs.bat, then you can convert a
  1654. file to Game Doctor format and split it with:<br>
  1655. &nbsp;&nbsp;cs somegame.swc<br>
  1656. Afterwards you can find a file in Game Doctor format in the directory
  1657. convert and the split parts in the directory split. Modify the scripts above
  1658. if you want them to make uCON64 write its output to other directories. Do
  1659. <i>not</i> make GD3DIR or SPLITDIR point to the current directory or to your
  1660. SNES ROM directory as the scripts will remove all files in the directories
  1661. pointed to by GD3DIR or SPLITDIR. Starting with empty directories is the
  1662. main reason why the scripts work (actually, this is only true for GD3DIR).<br>
  1663. <br>
  1664. <p>
  1665. <a name="49"><b>Q49</b>: How do I use the command line?</a><br>
  1666. <b>A</b>: There are some commands that are very common when using uCON64. I
  1667. will only explain how to use those. Search the internet if you want to know
  1668. more.<br>
  1669. First read the section <a href="#cmdline">"The command line
  1670. environment"</a>.
  1671. The first principle you should understand is how the space on your
  1672. harddisk(s) is organised. Before an operating system is able to use the
  1673. harddisk it needs to have a <i>file system</i>. A harddisk can contain
  1674. several file systems. When you are using DOS or Windows each file system is
  1675. called a "<i>drive</i>" and gets assigned a drive letter. A file system can
  1676. store files and <i>directories</i>. Directories can be seen as special files
  1677. that themselves "contain" files and directories. By using directories it is
  1678. possible to quickly oversee the structure of a file system and keep it
  1679. organised. Under GNU/Linux file systems are visible in the directory
  1680. structure (e.g. /mnt/windows). With Windows XP it is possible to make
  1681. file systems visible/accessible in the same manner.<br>
  1682. When using the command line there is something called the <i>current
  1683. directory</i>.
  1684. The current directory is like an implicit directory. Several commands and
  1685. programs use the current directory when a directory is not explicitly
  1686. specified. For example, the command <b>dir</b> (Unix: <b>ls</b>) lists the
  1687. contents of a directory. When you do not specify a directory it will list
  1688. the contents of the current directory. You can change the current directory
  1689. with the command <b>cd</b>. For example, to change the current directory to
  1690. "roms" on drive C: type:<br>
  1691. &nbsp;&nbsp;cd c:\roms<br>
  1692. On DOS and Windows there is also a <i>current drive</i>. You can change the
  1693. current drive by specifying the drive letter followed by a colon. For
  1694. example to change the current drive to D: type:<br>
  1695. &nbsp;&nbsp;d:<br>
  1696. Under DOS and Windows the current directory is a bit different than it is on
  1697. Unix: each drive has its own current directory. It is possible to change the
  1698. current directory of a drive while the current directory of the current
  1699. drive is not changed. The first example with <b>cd</b> does just that when
  1700. C: is not the current drive. When C: was the current drive you would not
  1701. have to specify the drive letter as the command line interpreter would
  1702. assume you intended to change the current directory of C:. When a text
  1703. refers to the current directory under DOS and Windows the author usually
  1704. means the combination of current drive and current directory. In other
  1705. words, when directed to change the current directory to c:\ucon64 you
  1706. actually have to change the current drive to C: and the current directory on
  1707. C: to ucon64.<br>
  1708. Let us assume you have the following directory structure:<br>
  1709. &nbsp;&nbsp;C:<br>
  1710. &nbsp;&nbsp;+--roms<br>
  1711. &nbsp;&nbsp;|&nbsp;+--snes<br>
  1712. &nbsp;&nbsp;|&nbsp;|&nbsp;+--gd3<br>
  1713. &nbsp;&nbsp;|&nbsp;+--n64<br>
  1714. &nbsp;&nbsp;+--tmp<br>
  1715. &nbsp;&nbsp;D:<br>
  1716. &nbsp;&nbsp;+--roms<br>
  1717. &nbsp;&nbsp;&nbsp;&nbsp;+--sms<br>
  1718. <br>
  1719. To change the current directory (of drive C:) to c:\roms\snes\gd3 type:<br>
  1720. &nbsp;&nbsp;cd c:\roms\snes\gd3<br>
  1721. You can see that each directory is separated from its parent by a backslash
  1722. ('\'). Under Unix (or Bash under Windows) you would refer to the same
  1723. directory by replacing the backslashes with forward slashes and perhaps
  1724. replacing "c:" with the appropriate mount point (e.g.,
  1725. /mnt/windows/roms/snes/gd3). Note that "c:" is a valid directory name on a
  1726. GNU/Linux file system.<br>
  1727. You can refer to the other directories (and files) in a relative manner. Say
  1728. c:\roms\snes contains the file
  1729. Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc. You can make uCON64 display
  1730. information about that file with:<br>
  1731. &nbsp;&nbsp;ucon64 "c:\roms\snes\Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc"<br>
  1732. but also with:<br>
  1733. &nbsp;&nbsp;ucon64 "..\Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc"<br>
  1734. The quotes are necessary or else uCON64 would handle Secret, of, Mana and
  1735. (U).swc as separate files. This is usual behaviour for command line
  1736. programs, it is not specific to uCON64.<br>
  1737. ".." is a special directory. Each directory contains two special
  1738. directories, "." and "..". "." refers to the current directory, ".." to the
  1739. directory one level higher in the directory structure. For example, to see
  1740. the contents of the directory "roms" you could type:<br>
  1741. &nbsp;&nbsp;dir c:\roms<br>
  1742. but also:<br>
  1743. &nbsp;&nbsp;dir ..\..<br>
  1744. Or on Unix:<br>
  1745. &nbsp;&nbsp;ls ../..<br>
  1746. c:\roms\snes is called a <i>path</i>. To be more specific, an <i>absolute
  1747. path</i>. It is the path to follow in the directory structure to get to the
  1748. file Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc. "..\.." is a <i>relative
  1749. path</i>. In c:\roms\snes "..\.." refers to another directory than in
  1750. c:\roms\snes\gd3 (c:\ and c:\roms respectively). To change the current
  1751. directory to c:\roms\snes type:<br>
  1752. &nbsp;&nbsp;cd ..<br>
  1753. Say you want to convert Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc to
  1754. Game Doctor format, place the converted file in c:\roms\snes\gd3, split that
  1755. file in pieces, place those pieces in c:\tmp and transfer the pieces to a
  1756. Game Doctor SF7. You could type the following commands:<br>
  1757. &nbsp;&nbsp;ucon64 -gd3 "Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc" -o .\gd3<br>
  1758. &nbsp;&nbsp;ucon64 -s gd3\sf16Sec -o c:\tmp<br>
  1759. &nbsp;&nbsp;ucon64 -xgd3 ..\..\tmp\SF16SECA.078<br>
  1760. <br>
  1761. Besides <b>dir</b> (Unix: <b>ls</b>) and <b>cd</b> there are some other
  1762. commands that you may find useful:<br>
  1763. <b>del</b> (Unix: <b>rm</b>) to delete or remove a file<br>
  1764. <b>xcopy</b> (Unix: <b>cp</b>) to copy a file<br>
  1765. <b>md</b> (Unix (and Windows): <b>mkdir</b>) to create a directory<br>
  1766. <b>rd</b> (Unix (and Windows): <b>rmdir</b>) to remove a directory<br>
  1767. <b>set</b> (Unix (Bash): <b>export</b>) to set (and export) an environment
  1768. variable<br>
  1769. <b>rmdir</b> cannot remove a directory if there are still files (or
  1770. directories) in it. Under DOS and Windows you can get more information about
  1771. these commands by using the option /?. Under Unix the equivalent is --help.
  1772. For example, if you want to get more information about <b>del</b> you could
  1773. type:<br>
  1774. &nbsp;&nbsp;del /?<br>
  1775. <br>
  1776. Here follows a final example that uses the commands mentioned above:<br>
  1777. &nbsp;&nbsp;cd \<br>
  1778. &nbsp;&nbsp;md test<br>
  1779. &nbsp;&nbsp;cd test<br>
  1780. &nbsp;&nbsp;xcopy "c:\roms\snes\Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc" mana.swc<br>
  1781. &nbsp;&nbsp;set parport=378<br>
  1782. &nbsp;&nbsp;ucon64 -xswc mana.swc<br>
  1783. &nbsp;&nbsp;del mana.swc<br>
  1784. &nbsp;&nbsp;cd ..<br>
  1785. &nbsp;&nbsp;rd test<br>
  1786. <br>
  1787. First the current directory is changed to c:\. Then the directory "test" is
  1788. created. Then the current directory is changed to "test". Then the file
  1789. c:\roms\snes\Secret&nbsp;of&nbsp;Mana&nbsp;(U).swc is copied to the file
  1790. mana.swc. Then an environment variable with the name parport is set to the
  1791. value 378. Then uCON64 is used to transfer mana.swc to a Super Wild Card
  1792. while using parallel port address 0x378. Then the file mana.swc is removed.
  1793. Finally the directory "test" is removed.<br>
  1794. <br>
  1795. <p>
  1796. <a name="50"><b>Q50</b>: I configured uCON64 to use ppdev and tried to send a
  1797. file to my backup unit as a regular user. I got an error message that the
  1798. parallel port device could not be opened. What did I do wrong?</a><br>
  1799. <b>A</b>: There are two possibilities:<br>
  1800. 1.) You specified an incorrect parallel port device in the configuration
  1801. file.<br>
  1802. In most cases the correct device is /dev/parport0. Only change the device
  1803. name if you are sure /dev/parport0 is not the device associated with the
  1804. parallel port your backup unit is connected to. Try for example /dev/parport1
  1805. or /dev/parport2.<br>
  1806. 2.) You do not have the required privileges.<br>
  1807. It is true that regular users can transfer files to and from their backup
  1808. units (without the executable being setuid root), but that does not mean
  1809. <i>any</i> user can do that. It is quite common that only users in the group
  1810. "lp" have access to /dev/parport&#60;n&#62;. So, you should add yourself to
  1811. that group. Say your login name is helanren. Root could use the following
  1812. command to give you the privilege to use /dev/parport0:<br>
  1813. &nbsp;&nbsp;usermod -G `echo \`id -Gn helanren\` | sed "s/ /,/g"`,lp helanren<br>
  1814. Explanation:<br>
  1815. <b>usermod -G &#60;groups&#62; helanren</b> is used to make helanren a member
  1816. of those groups.<br>
  1817. <b>id -Gn helanren</b> lists the groups helanren is currently a member of,
  1818. separated by spaces.<br>
  1819. <b>sed "s/ /,/g"</b> replaces all spaces with commas.<br>
  1820. <br>
  1821. <p>
  1822. <a name="51"><b>Q51</b>: What do I need to do before I can upload files to my
  1823. Flash 2 Advance?</a><br>
  1824. <b>A</b>: Download the package that contains the support files from
  1825. <a href="http://ucon64.sourceforge.net/" target="_blank">the uCON64 homepage</a>.
  1826. Extract the package and update the configuration file. See
  1827. <a href="#configbin">"How to configure the uCON64 executable"</a>.
  1828. If you want to use the parallel port version of the F2A, you should set at
  1829. least the variable iclientp. If you want to send multiple files to your F2A,
  1830. also set gbaloader. If you want to see a different background while
  1831. uploading, set ilogo.<br>
  1832. The USB version of the F2A is currently only supported under GNU/Linux. If
  1833. you want to use the USB version, you should set at least the variables
  1834. f2afirmware and iclientu. If you want to send multiple files to your F2A, set
  1835. gbaloader. Additional requirements are:<br>
  1836. - <a href="http://libusb.sourceforge.net/" target="_blank">libusb</a> (included in recent
  1837. GNU/Linux distributions)<br>
  1838. - usbdevfs has to be mounted (most (?) distributions have usbdevfs mounted by
  1839. default, but you can do it manually with "mount -t usbdevfs none /proc/bus/usb")<br>
  1840. - if you use Linux 2.4 or older then the EZUSB2131 firmware upload driver has
  1841. to be loaded, see <a href="http://ezusb2131.sourceforge.net/" target="_blank">http://ezusb2131.sourceforge.net/</a><br>
  1842. - if you use Linux 2.5 or later fxload should be present in /sbin<br>
  1843. - you need to have read/write access to /proc/ezusb and /proc/bus/usb, so you
  1844. have to run uCON64 as root (or setuid root) for the USB version of the F2A<br>
  1845. <br>
  1846. By default, uCON64 tries to access a parallel port to communicate with an
  1847. F2A. In order to make uCON64 communicate with an F2A connected to a USB port,
  1848. use the switch -port. For example:<br>
  1849. &nbsp;&nbsp;ucon64 -xf2a "Wario Ware Inc.zip" -port=usb<br>
  1850. uCON64 detects to which USB port the F2A is connected, so you do not have to
  1851. specify a specific port.<br>
  1852. <br>
  1853. <p>
  1854. <br>
  1855. <br>
  1856. <br>
  1857. <br>
  1858. <br>
  1859. <br>
  1860. <br>
  1861. <br>
  1862. <br>
  1863. <br>
  1864. <br>
  1865. <br>
  1866. <br>
  1867. <br>
  1868. <br>
  1869. <br>
  1870. <br>
  1871. <br>
  1872. <br>
  1873. <br>
  1874. <br>
  1875. <br>
  1876. <br>
  1877. <br>
  1878. <br>
  1879. <br>
  1880. <br>
  1881. <br>
  1882. <br>
  1883. <br>
  1884. <br>
  1885. <br>
  1886. <br>
  1887. <br>
  1888. <br>
  1889. </tt></body></html>