Fc2X Alpha (Svn Revision 2)


Cthulhu32

Still Fresh
Joined
Nov 9, 2010
Messages
21
Location
Denver, CO
Here is the first alpha release for testing of my FCEUX NES emulator port. The entire emulator is being ported fresh from scratch using the latest FCEUX 2.1.5 SVN candidate, so compatibility will be extremely high. Right now the emulator is running at about 15 fps due to absolutely no optimizations, and the sound is very choppy because I am not compensating for missing frames (writing extra sound to fill in the gaps.) However, this port uses no SDL and relies purely on system calls and Linux calls to do input, video, and audio.

So I'm first placing this in the testing area because this is not ready for a release yet (please do not put this in any Caanoo file archives yet), but I need a little bit of help from the community. Right now what I need is for people to start, stop, restart, etc. etc. various roms and let me know if you see any crashes or irregularities.

I will also be keeping this thread active as I release future versions, along with to-dos and various bugs I'm attempting to fix.

Current Version: Alpha SVN Rev.2
Controls - Menu: Up,Down,B In-Game: Analog stick, A, X, Help1, Help2 Both: Home exits out of game, and back to GMenu

Download:
FC2X Alpha SVN2 - [Download]

Known Bugs
  • Slow! 15fps is not acceptable, will need fixing.
  • Non-dpad inputs such as Powerpads do not work yet
  • SRAM does not save to the SD card
  • Sound stutters due to slow FPS
  • Sound is only coming out of left channel

To-Do
  • Speed-ups, optimizations, remove FCEUX specifics such as debug, movie capturing, replay, etc.
  • Add SRAM saving capabilities
  • Proper sound playback when FPS is lower than ideal
  • Overclocking support (works, but need a configurable setting)
  • Settings file
  • Real GUI
  • Far too many games untested including PAL
  • Many things, this is the first public version!

If you are a developer and are feeling code-curious, check out the Google code page with full source and GPL v2 Source Code
 
I tested Rad Racer Super Mario Bros 1 and 3. all ran without glitches but as you said slow due to lack of optimizations. Cant wait for the next update. Are there any roms I can test for you that you dont have?
 
qbertaddict said:
I tested Rad Racer Super Mario Bros 1 and 3. all ran without glitches but as you said slow due to lack of optimizations. Cant wait for the next update. Are there any roms I can test for you that you dont have?

I've only really tested the basics, Mario, Zelda, Contra, Battletoads, Castlevania 3, etc. to make sure the mappers work properly. Part of what I need tested is to see whether my game clean-up works properly or not. So try loading games, quitting, loading games, quitting, etc. If it crashes, then there's a memory leak or something I've introduced. If you want to test specific mappers (each NES cart runs on a mapped setup), go through this list http://tuxnes.sourceforge.net/nesmapper.txt and try the different games in different mappers. For example, Contra uses UNROM (2), or Mapper 2, and Dream Master uses Namcot 106 (19), or Mapper 19.

Yeah I'm hoping each update will progressively get the FPS up. FCEUX is a little beastly in the fact it combines everything from all of the FCEU variants, but the compatibility is one of the best available. If there are some weird hacks causing a major lag in FPS, I might need to pull a few mappers in order to get proper speed. Also I have tested overclocking, and at 700mhz it only shows a 5-6 fps increase so not substantial enough yet. But I'd like to get this emulator working at 500mhz, no reason an NES emulator should need overclocking. :)
 
Last edited by a moderator:
Nice port Man :D

FCEUX compatibility is nice.

Waiting for Fullspeed Emulator ^^

Thanks.
 
Rikku2000 said:
try GPFCE for Caanoo

FCEUX have much better support for nes mappers (i like china pirated games).
 
Last edited by a moderator:
Yeah I initially looked at porting GPFCE (it uses the FCE structure and the Little GP32 x6502 arm cpu), but I decided I wanted to turn this into a more personal challenge and try to get it running full-speed myself. You should be able to port the mappers from FCEUX, but you'd really need to revamp the FCE x6502 if you wanted full compatibility. I'm planning to do a x6502 ARM port of the FCEUX x6502 instead of using Little GP32, but as all major code projects are this is pretty time consuming :) Also good work on the GPFCE port Rikku2000, some of the #gp2xdev guys suggested using previous emu sources but I figured someone else was already doing that.

Just a note on progress: got the new banner/title icon in there, been looking over the Little GP32 x6502 source and I've begun work on my own x6502 ARM core, got some other various speed-ups but nothing major. Until I get the x6502 swapped for a full ASM version (using the ARM registers as 6502 registers with ASM magic), FPS will remain low. But I'm getting more confident in my abilities to do this port, so hopefully progress release soon :) Also there were some mentions of manually mapping my own hardware double buffers by Senor Quack, looks challenging but might improve the speed by an FPS or two.
 
I thing i will remove the sdl stuff too on gpfce with that you use today i take a look at the fceux source and i thing its more easy to port the fceux to gpfce
 
Rikku2000 said:
I thing i will remove the sdl stuff too on gpfce with that you use today i take a look at the fceux source and i thing its more easy to port the fceux to gpfce

Cool, go for it :) My code is still a bit sloppy, and the joystick stuff needs a little bit of work but all the direct access stuff is there. Plus you might see even more speed increases if you're doing your writes to a secondary buffer then copying to the FB0 directly like I'm doing it. Check out the svn:\FC2X\source\drivers\caanoo\video.cpp line 84 for a really slick way Senor Quack showed me to do three 32-bit writes to convert the 8-bit palette lookup buffer to the 24-bit frame buffer on the Caanoo. Its about as fast as you can get for outputting the video in C.
 
Last edited by a moderator:
i can give you my joy code there is no sdl crap

yeah thanks i will take a look curently i try to
make an Netplay menu on the gpfce. If it work
i dont know XD...
 
Phew.. about 20-25% of the way through porting over the FCEUX core to ARM assembly. The core for FCEUX is much different from Little GP32 (GPFCE's core), but there are a few ways its a bit cleaner. Unfortunately I can't release an update halfway through the CPU port because this is one of those "it works or it doesn't work" situations. I also need to get a good grip on how to do remote gdb on the Caanoo, so I can make sure my assembly is functioning how it should be.
 
have a FCEUX port for dingoo (by the gama coder) and work very good, no perfect (the sound no is good).

Please make a good emulator fullspeed with good sound and good Scalling + Filter :)
 
Back
Top