MednafenX-PCE - PCE/TG16 Emulator for XBox v1 http://mednafen.com/ http://xport.xbox-scene.com http://necstasy.emunova.net/ Thanks to J-Red for an excellent skin! Features : - Emulates PC-Engine/TurboGrafx-16/SuperGrafx/Arcade Card CD/CD/SCD - Excellent, stupendous, fanshmabulous compatibility - ported from Mednafen - ZIP support - Launch original PCEngine CDs from your XBox DVDROM drive - Loads of hardware/software filters and video options to tweak - Cheat system - Search/Create your own cheat codes (see notes) - Favorites list - Save states - Fast forward/throttle - Resizable game screen - Text file viewer - ISO9660, Relax, Samba support - Take in-game screenshots and display them on the game selection list - Record/Playback feature - record your gameplay in the emu and then play it back again. Record up to 10 minutes of gameplay. - Every single in-game command is fully customizable on any of the four joypad controllers. - Map any emulator or UI command to a single button or a combination of two buttons. (e.g. RTrigger+LTrigger = Save State) - Autofire capabilities for any emulator button on any controller - One-button combos (define a series of emulator commands to be played back when you press a user-definable XBox controller combination.) (E.g. Press RTrigger+LTrigger to execute the command string A,B,A,B,Up,Down,Left,Right) - Traverse any directory on any drive ( Continue selecting the parent directory entry on the file selection list to get the drive selection list. Selectable drives are C, D, E, F, R, X, Y, Z, RLX, and SMB. R is the CDROM drive. SMB is your samba share, RLX is your relax share. Press Y from any file-listing screen to go up one directory level. - All UI commands (save state, load state, screenshot, etc) can be invoked from the Options/Pause menu as well as in-game via your customized joypad mappings. - All the other standard features found in XPort ports. Default ROM dir is D:\PCEROMS =============== Important Notes =============== If you like PCE, you're going to love this one. Out of the 100+ CDs I tried and the dozens of HUCard images, it played them all perfectly with just a handful of ones with minor issues. ------------------ Perfect CUE System ------------------ Thanks to the great people at http://necstasy.emunova.net/, you should no longer have to worry if your CUE sheet has the right indices, gaps, layout, etc. The PCE TOC database is a compilation of verified TOCs from just about every single PCE CD game in existence. I have incorporated all of that data into MednafenX-PCE. The only thing you need to be concerned with is making sure your CUE sheet points to the correct ISO/MP3 files for each track. You can still use CDDissect to rip your PCE games: http://xport.xbox-scene.com/cddissect.php As long as you have all the ISO/MP3 files and your CUE sheet points to them correctly, you'll be all set. Please note the following examples of CUE sheet "FILE" lines: This is good: FILE "dynastic_hero02.iso" BINARY This is bad: FILE "c:\pcecds\dynastic hero\dynastic_hero02.iso" BINARY You should not have any paths in your FILE lines. It should simply be the filename. -------- CD Games -------- To play a CD game, select the CUE sheet. You will then be prompted to select the name of the game so that MednafenX-PCE can load the correct TOC information. If you are looking for a specific name but cannot find it, then load up pcetoc_names.txt in notepad or some other text viewer and search for the name of the game. (Or some portion of the name.) The game you are trying to play *does* have an entry in the list. You just have to find it. ---------------- US Encoded Games ---------------- Almost all games will load without issue, but if you just get a black screen then go to the game configuration menu for that game and toggle the "Force US" option. That will probably fix the problem. If not, you most likely have a bad dump. ============= Configuration ============= Everything can be changed from the configuration menu. If you have never used one of my ports before, I highly suggest you go through all of the various configuration screens (particularly "General Settings") to see what you can do. Even if you are already familiar with the standard XPort interface, I suggest you at least take another look at "General Settings" because there may be options you have not seen before. =============== Menu Navigation =============== Select menu options with the DPAD or with R/LTrigger. The speed of R/LTrigger movements can be controlled by : Configuration -> General Settings -> Page 2 -> Menu Scroll Speed There are some places where you can enter or change values. This can usually be done in a variety of ways include DPAD Left/Right, R/L Trigger, and L/R Thumb. Try all of them if the values are changing too slowly. "A" selects the highlighted choice. "B" cancels/returns. "Y" from a file-select list will go up one directory. "X" to select a game brings up the game configuration screen "WHITE" to select a game adds it to your favorites. "BLACK" to select a game (on your favorites list) deletes it from the list. ================ Text File Viewer ================ DPAD Up - Up one line DPAD Down - Down one line DPad Left - Up one page DPAD Right - Down one page R Trigger - Scroll down L Trigger - Scroll up A - Start search X - Continue last search White - Top of file Black - End of file Y - Simulate fixed-width font Back - Decrease width of simulated fixed-width font Start - Increase width of simulated fixed-width font B - Exit ===== SKINS ===== Instructions for making a new skin: - Create a new directory off of your SKINS directory (default skins directory is D:\EMUSKINS - Place your sound/font/graphic media files in this new directory - Load MednafenX-PCE - "Select Skin" from the main menu and select your new directory. - Select Configuration - select Configure Skin - Use the menus to select your new media files and change your settings - When you are satisfied with what you have, go back to the main menu. - Select "Configuration" - Select "Overwrite D:\*.ini and D:\emuskins\\<skin>\\settings.ini" This will write the skin settings in your skin directory (if your skin directory is on the hard drive.) - You're done! You can package up the directory and share it with your friends. If you wish to use sprites in your new skin, then read the following: - Create a subdirectory off of your new skin directory called SPRITES e.g. D:\EMUSKINS\NEWSKIN\SPRITES - In this new SPRITES directory create a 0-based numeric directory for each sprite you wish to make. This means that if you have 4 sprites you wish to load, the directory names *must* be called 0, 1, 2, and 3. Do not call them 1, 2, 3, and 4. Do not call them 0, 3, 5, 6. Do not call them SPRITE1, SPRITE2, SPRITE3, SPRITE4. - Inside each of these new directories, you must place the sprite frames. Each frame is represented by a BMP, PNG, or JPG file. The order of the frames is given by the filenames. These filenames must also be named with 0-based numbers. For example, 0.png, 1.png, 2.png. Look at the sprites directory of the included default skin to see how it works. - Do not skip numbers when naming sprite directories or sprite frame filenames. A list of directories called 0,1,2,5,7 is *INVALID*. Similarly, a list of files called 0.png, 1.png, 4.png, 5.png is also *INVALID*. Also be aware of memory constraints. Let's say you have a frame of a sprite called 0.png. This picture file is 90 pixels wide and 130 pixels high. This will get rounded up to a 256x256 pixel 32bit picture. This means that it will consume 256x256x4 bytes (256KB) of memory. If your sprite has 10 frames of animation, that's around 2.5MB of memory. Keep this in mind before you make ultra-smooth moving sprites with hundreds of frames of animation. You can check your available memory by going to Configuration -> Configure Skin -> Show Available Memory ==================== Controller Remapping ==================== Configuration -> Configure Controllers There are 32 general/all-purpose emulator "buttons" or actions. Each of these buttons can be assigned a specific emulator action. For example, Emu Button 1 can be A, or B, or DPad Down, etc. These "emu buttons" can then be assigned XBox triggers. For example, Emu Button 1 (which you have mapped to, for example, A) can be triggered by XBox controller button B. The default button mappings should provide enough information on how the system works and how it can be used. ========== Autofiring ========== Configuration -> Configure Controllers -> Controller # -> Change Autofire Each "Emu Button" can be set up for autofiring. Simply set the autofire variable to a non-zero value. This value indicates how long the emulator should wait before releasing and re-pressing the button. A value of 1 might be too fast to register on some games. I suggest setting it to a number like 5 first and then fine-tuning it. ====== Combos ====== Setting up a combo can be kind of tricky because you need to know exactly what the game expects to have happen on the joypads to execute the special move. For example, let's say that we want to map a standard move that is described like this : D, DR, R, A D = Down, DR = Down+Right, R = Right, A = A button First, set the delay to a number like 2 or 3. Then set up the moves. In this case, any (or none) of the following might work: Down Down+Right Right Right+A Right OR Down Down+Right Right+A OR Down Down+Right Right Right+A Right+A Right+A You will probably need to fine-tune each combo move before it works, but you'll soon get the hang of it. ================================================== Cheating System - How To Make Your Own Cheat Codes ================================================== Just about every single port I've released has this feature, and I occasionally hear people asking "how does it work?" This is easiest to explain by example: 1) Start playing a game. 2) Go to Options Menu and select "Start Search for Cheat Code" 3) Go back to game and lose a life 4) Go to Options Menu and select "Continue Search For Cheat Code" 5) Select "Search For Values Less Than Before" because when you first selected "Start Search For Cheat Codes" you had one more life than you do now. You will see the number of matches go down. 6) If the number of matches is greater than 10, then perform actions 3, 4 and 5 continually until the number of matches is less than 10. If you run out of lives, then just start playing the game again. (Do not exit the emulator and select the game again - just start another game from within the emulator.) Now you will have a full stock of lives, which is *more* than the last time you checked your values. So when you continue searching, you'll want to select "Search For Values Greater Than Before." Then go through steps 3-5 over and over until you have less than 10 matches. 7) Now that you have less than 10 matches, you can add the codes to your list. If the search narrowed the list down to 1 possible match, it will automatically add it to your list. Now you can "List Cheat Codes" and selectively turn on/off the cheat codes to try them out and see which on is the right one. Alternately, you can use the "Search For An Exact Value" option if you already know the number you wish to change. Example: Let's say you are playing Dragon Warrior and your character currently has 25 Hit Points. Follow these instructions: 1) Go to Options Menu and select "Start Search for Cheat Code" 2) Select "Continue Search For Cheat Code" 3) Select "Search For an Exact Value" and enter 25 as the number. The number of matches should decrease very quickly. 4) Go back to the game and do something to change your Hit Points amount. For example, let's say you drink a potion and your Hit Points are now 35. 5) Go to options menu and select "Continue Search For Cheat Code" 6) Select "Search For an Exact Value" and enter 35 as the number. Chances are very good that the number of matches will be down to one or two. Just try out the codes to see which one gives you infinite Hit Points! Advanced Cheat Code Usage: Cheat codes have the following format: TT AAAAAA VVVV TT = Type AAAAAA = Address VVVV = Value You can hand-edit the cheat codes you've created. Go to the Cheat Code list, select a code, and select Edit. Let's say you've already created a cheat code that keeps your hit points at 25. The last four hex digits of your code will be 0019 (which is hexidecimal for 25.) You can change the last two digits to, for example, FF which will give you 255 hit points instead of 25. More sophisticated codes can be made by altering the Type: Type Table 80 - Means set the 16-bit value (0-65535) pointed to by the cheat code address to the cheat code value. 30 - Means set the 8-bit value (0-255) pointed to by the cheat code address to the cheat code value. 10 - Means increase the 16-bit value pointed to by the cheat code address by the cheat code value. 11 - Means decrease the 16-bit value pointed to by the cheat code address by the cheat code value. 20 - Means increase the 8-bit value pointed to by the cheat code address by the cheat code value. 21 - Means decrease the 8-bit value pointed to by the cheat code address by the cheat code value. D0 - Means only execute the next code in the list if the 16-bit value pointed to by the cheat code address is equal to the cheat code value D1 - Means only execute the next code in the list if the 16-bit value pointed to by the cheat code address is not equal to the cheat code value D2 - Means only execute the next code in the list if the 16-bit value pointed to by the cheat code address is less than the cheat code value D3 - Means only execute the next code in the list if the 16-bit value pointed to by the cheat code address is greater than the cheat code value E0 - Means only execute the next code in the list if the 8-bit value pointed to by the cheat code address is equal to the cheat code value E1 - Means only execute the next code in the list if the 8-bit value pointed to by the cheat code address is not equal to the cheat code value E2 - Means only execute the next code in the list if the 8-bit value pointed to by the cheat code address is less than the cheat code value E3 - Means only execute the next code in the list if the 8-bit value pointed to by the cheat code address is greater than the cheat code value If you are familiar with cheat codes, you'll notice that these are standard Gameshark types. With enough experience you could make some seriously interesting codes with this system. For example, I played around with Super Mario Bros (NES) and found out that address 0007EE stores the number of coins and address 0007FA is the one's digit in the timer. Here are two codes: E0 0007FA 03 20 0007EE 01 Those codes mean that while the ones timer digit is equal to three, increase the number of coins by one. You won't see the coins updated on the overhead display in the game, but if you start a game, wait until the timer one's digit is a three and then collect a coin, you'll see that your coin value is actually much higher than one, now. Fun useless stuff. :P ================================================== Command-Line/Auto-Launching and Return to Launcher ================================================== This section is for the developers of frontends, dashboards, etc. MednafenX-PCE can be started with parameters to automatically launch a game at startup. Example code can be found in the custom_launch_params.cpp file. There is also example code in that same file that will show you how to make MednafenX-PCE load your frontend/dashboard when it exits. Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox, Bliss, WinSTon, Gens, Z26X, StepmaniaX, PCSXBox, XBoyAdvance, DOSXBox, AtariXLBox, MirrorMagicX, KoboX, MaelstromX, MarblesX, Vice64X, Vice20X, VicePETX, KegsX, XPired, AdamX, WonderSwanX, BeatsOfRageX, PowermangaX, LynxBox, BlueMSXBox, GladiatorX, AmphetamineX, StarfighterX, PachiX, BlobWarsX, OdysseyX, ArnoldX, X68000X, WinUAEX, MekaX, MednafenX-NES, MednafenX-PCE, MednafenX-Lynx what's next? Enjoy! ----------------------------------------------------------------- |