FCEUltra for PS2
I ported FCEUltra to PS2 to play a couple NES games on a TV in a different room for the holiday season. I have an autistic brother who loves Megaman, heh.
The built-in game genie rom support works if you put the game genie rom as gg.rom. I haven't used any codes, so I'm not sure if they actually work on the PS2.
Some notes about the source code:
The original project source code that I ported is at sourceforge.net/projects/fceumm. It's a mapper modded version, which supports the most mappers of any FCEUltra version, I think. I tried to make as little change as possible, so using a diff utility won't be too much trouble to see the changes I made. From what I can remember:
I had to remove support from gzip compressed nes roms because of a reference to dup() which wasn't supported and it was over my head on how to implement a similar function.
Instructions for use:
Select opens/closes Config Menu
Start is used to save the savepath or set the screen center.
http://psx-scene.com/forums/images/icons/bullet_1.gif Browse up one directory.
The emulator now uses a FCEUltra.cnf fie that stores the settings for the emulator
Both the digital pad and analog stick can be used for movement.
http://psx-scene.com/forums/images/icons/bullet_3.gif is A.
http://psx-scene.com/forums/images/icons/bullet_4.gif is B.
http://psx-scene.com/forums/images/icons/bullet_1.gif opens the ingame menu.
Select is Select.
Start is Start.
L3 is used for swapping FDS disks.
R3 is used for swapping FDS sides.
L2 loads savestate
R2 saves savestate
You can use the in-game menu to select your savestate number.
2 controllers should work, I haven't tested it myself, still.
The FCEUltra.cnf file should be in mc0:/FCEUMM/ so "mc0:/FCEUMM/FCEUltra.cnf".
# FCEULTRA.CNF == Configuration file for the emulator FCEUltra
# CNF Handling Code (c)2006 Ronald Andersson aka dlanor
OffsetX = 0
OffsetY = 0
ButtonSwitch = 0
Display = 0
Emulation = 0
Interlace = 0
Volume = 50
LowPass = 0
Turbo = 0
Savepath = mc0:/FCEUMM/
Elfpath = mc0:/BOOT/BOOT.ELF
# End-Of-File for FCEUltra.CNF
You can also use hex numbers that correspond to different buttons on the controller (taken from libpad.h):
JOY_Menu = TRIANGLE
JOY_SaveState = R2
JOY_LoadState = L2
JOY_FDS_DiskSwap = R3
JOY_FDS_SideSwap = L3
JOY_A = CROSS
JOY_B = SQUARE
JOY_Select = SELECT
JOY_Start = START
JOY_Up = UP
JOY_Down = DOWN
JOY_Left = LEFT
JOY_Right = RIGHT
If you want button combinations you can add them together in hex mode: e.g. select + square would be 0x8000 + 0x0001 = 0x8001. R1 + L1 would be 0x0800 + 0x0400 = 0x0C00.
For skins or color schemes:
You can define colors in... I think it's RRGGBBAA format. PNG/JPG textures are supported as well. The BGColors are applied to each corner in this order: top-left, top-right, bottom-left, bottom-right.
# SKIN.CNF == Skin configuration file for the emulator FCEUltra
# CNF Handling Code (c)2006 Ronald Andersson aka dlanor
FrameColor = 0x80FFFFFF
TextColor = 0x80FFFFFF
Highlight = 0x80408080
BGColor1 = 0x80000080
BGColor2 = 0x80000000
BGColor3 = 0x80000000
BGColor4 = 0x80000080
BGTexture = mc0:/FCEUMM/back.png
BGMenu = mc0:/FCEUMM/menu.png
# End-Of-File for SKIN.CNF
cah4e3 for making a version of FCEUltra with extra mapper support.
DCGrendel for providing a space to host my homebrew and helping me with various logic errors I had.
The entire ps2dev/ps2-scene community for PS2SDK, gsKit, and various other projects I utilized when porting FCEUltra, especially dlanor for his help and providing uLaunchelf's code as an example from which to work.
Previous release here.
<<<doctorxyz's EDIT Start>>>
First of all, thank you very much Ragnarok2040 and bootsector!
Update - 28.07.2012 & 31.07.2012
Latest Ragnarok2040's release (0.93) found on Ragnarok2040's Homebrew Hosting Page (binaries/sources/libs/patches/whatever) Homebrew Hosting :: ragnarok2040
Thanks goes to bfoos for his investigative work http://psx-scene.com/forums/f176/fce...tml#post987238) and bootsector, for the info provided http://psx-scene.com/forums/f176/fce...tml#post988125
Update - 31.07.2012
Latest bootsector's release (0.90i) found on his home page post (FCEUltra for PS2 - NES emulator for PS2 | Sparrow's Domain)
I (doctorxyz) just used ps2-packer on it to make the ELF smaller (approximatelly 50%) and attached here.
Q: "is ps2fceu-0.9.3 ps2 the latest version???"(dlsmd 2010.08.16)
A: "I think I posted a release after that version, and then a few betas after the last version in this thread but almost every release had problems, really. I decided to take a break from it at that point (...) I cleaned out the old user interface, but left in the ps2-specific changes in the fceultra source made by bootsector and myself so I could make a new version with the new interface later. I'm going to try to port the latest version of fceux, too. That's after Snes9x, though" (ragnarok2040 2010.08.16)
"90i is most stable version available to date" (lee4 2010.09-05)
"I can't seem to get 0.93 to work, all I get is a black screen after launching it from ULE? 0.90i works fine though" (Cribba 2010.01.16)
Cleaned core code for FCEUltra (which doesn't have any ps2-related code, as of this second since the port was in middle of a rewrite)
- The FCEU 0.9.3 and 90i are best reported by members, so try both and use the one best fit into your needs.
- Chronologically speaking, I haven't an idea about the value of "Previous release here" (above stated by Ragnarok2040). Any help is welcome.
- Hey, take in account I'm not a FCEU specialist... I'm just trying to organise the stuff here for you!
<<<doctorxyz's EDIT - End>>>
Hey i tried zelda with this and play and looks nice, great job man!
Edit: also plays Castlevania 3 full speed... now this is sweet! ;)
Wow good job all we need is sound and more rom support and it will be perfect
to bad u cannot work on it more :( thanks for the bins and source im sure some one will pick it up
OMG! It looks like that the scene is not really dead! :D
Maybe the great coders (dlanor, EP, Polo35 and many others) of the scene could help to improve it!
Great job, Ragnarok! Thank you!
This emu has way better video quality than than InfoNES and even savestates!
Like I said earlier just needs better rom loading options and sound
Does anyone know why the program freezes when triangle is pushed?
Can't wait to try it out as soon as my ps2 get straightened back out.
Thanks for all the great feedback, heh. As for the triangle button, pressing it does a call to exit(); which closes the program. It's needed for code profiling to dump the information to host: via xlink, but I forgot to remove it when I compiled the binaries. It doesn't do anything but freeze the ps2 without the -pg flag enabled.
ok thanks im changing the source and compiling it to see it with sound. Do I have to boot .nes files from MC or is there something I could edit to boot more than 2 roms from a different source? BTW im no C or C++ programmer most Ive done is BASIC
Originally Posted by ragnarok2040