Thursday, February 1. 2007
Two days ago I was sure that I would never release another version of FCEUXD SP (everybody's favourite NES emulator for hacking NES games). Today there's a new version because I was unhappy with the Cheat Console. Weird things happen sometimes.
Version 1.07 is another small update. It adds the so called RAM Filter. With this tool you set up rules to specify how you expect RAM values to change. After you set up the rules, RAM Filter eliminates all bytes in memory that changed differently. This makes finding data in NES games very easy. How is that different from the Cheat Console? The RAM Filter offers more options, it's easier to use, you get more information about value changes, and you can easily go back to earlier rules without having to restart everything.
Let me give you two examples.
In the first example we want to find out where the game Faxanadu stores the player's health points in RAM. Check this screenshot to see how I used the RAM Filter tool.
At first I started a game and used the "Any" rule. This rule tells the RAM Filter that I don't have any information about the value I want to find. Right after that I walked to another screen. There I set up two "Equal to last value" rules because the health points didn't change since the first rule. These two rules eliminated lots of potential memory locations that had nothing to do with the health points. Then I went to the next room and walked into a monster. This obviously changed the number of health points and I set up a "Not equal to last value" rule accordingly. Then I went to a store and set up two more "Equal to last value" rules to eliminate more potential memory locations. Afterwards I bought some health points from the vendor. Once again this changes the number of health points so I set up another "Not equal to last value" rule.
After all this, the RAM Filter tool found that only 2 memory locations changed according to the rules I set up: 0x399 and 0x431. A quick test reveals that the health points are stored in 0x431.
Here's another example. Suppose we want to find out where the number of player lives left are stored in Super Mario Bros. Check this screenshot to see the results
I started the game and once again I set up an "Any" rule at first because I didn't know what to look for. Immediately after I set up the first rule I added two "Equal to last value" rules because the number of lifes left didn't change. This helped to eliminate lots of memory locations already. Then I walked into the first Goomba to lose a life. I expected the number of lifes to decrease therefore I set up a "Less than last value" rule. After the game was restarted I set up another "Equal to last value" rule.
RAM Filter worked even better this time. Only one memory location was left. Now we know that the number of lives left is stored in 0x75A.
Both of these examples took less than one minute to figure out. That's pretty neat in my opinion.
Download FCEUXD SP 1.07
Download the FCEUXD SP 1.07 source code
Display comments as (Linear | Threaded)
What are you using as your NES assembler? I'm new to NES programming and I'm looking for an open source assembler to use on Linux. Thanks!
I don't use any NES assembler at all since I don't develop my own NES games. All I can do is to refer you to http://nesdev.parodius.com/ . Maybe you can find something there. Check out their forum too.
I'm sorry to ask again but the 8x8 sprite mode bug for the MMC5 mapper Still is not fixed even in this version of fceuxd ....
Is it ever going to be fixed??? ..I do not know C++ or anything like that so I can't do it myself....
I'm sorry but I can't fix it either. I know nothing about MMC5.
Okay then. I hope I wasn't bugging you or anything about it. Thanks for responding anyway.
Just went to Zophar.net, and re-download some good-ol' NES roms, click a link at zophar's... and what do you know? A new release! ...after last entry at zophar dated 2005.
...I lost my word.
I've updated this program with some NSF trinkets I'd been wanting for a while. It plays NSFs with null bankswitching, and more of the built-in tools are available for NSFs.
It's available here:
At very least, I think the nsf.c changes would be nice to have added to official FCE* releases that don't have some other workaround available for null bankswitching data.
Awesome emulator/debugging tool as always... I was wondering if you could add a feature to disable the screen saver in the future if you ever release another version.
I'll add it to the to-do list but right now I don't plan to release another version of FCEUXD SP.
The first link to "Download FCEUXD SP 1.07" does not function correctly. When I open the .RAR file, I get the following errors:
! J:\Emulation\fceuxdsp-1_07.rar: Unexpected end of archive
! J:\Emulation\fceuxdsp-1_07.rar: CRC failed in fceuxdsp.exe. The file is corrupt
! J:\Emulation\fceuxdsp-1_07.rar: Unexpected end of archive
! Cannot execute "C:\Users\NIGHTV~1\AppData\Local\Temp\Rar$EX00.384\fceuxdsp.exe"
Help me out? This is my first download of this particular emulator and I'd like the most recent version.
Thank you again!!
Yay! All better! Thank you!
It's been such a pain finding a good utility for NES games. Most emulation software doesn't provide NEARLY the functionality that this piece of software does.
I've had very little experience in C/C++, but enough to be curious and enough to be dangerous. chuckle I'm looking forward to playing around.
I'm sorry to hear you don't plan on updating again, this is a really brilliant piece of software!!
Have you heard of any projects that are cross platform? I've always wanted to see an emulator that combined all of the Nintendo systems. NES/SNES/GB/etc. It'd be a work of art!
Well, thanks again!! I wanted to donate for your great work, but I can't seem to find a link anywhere. Anyway. Thanks again!!
There is actually a multi-platform emulator. Check out http://en.wikipedia.org/wiki/Mednafen .
Good luck with C code. If you're having questions about the debugger code, just write me a mail or something. Maybe I can answer your questions.
Interesting. It's definately got the concept of what I was looking for, but it's command line for one and doesn't cover quite enough platforms. shrug Thanks a lot, nonetheless.
I'll definately shoot you a message if I have any questions. I'm working on some MUD code currently. It's being a bit flakey working 100%, so we'll see what we can pull off. Anywho. Take care!
I've been looking for something to help me create GameGenie codes and FCEUXD SP is by far the best tool I've come across.
My goal is to make a code that prevents the Gun value in Blaster Master from depleting when you take damage. The tools provided have helped me narrow down the memory address of the Gun value, but I'm stuck. I'm so close I can taste it, but I don't know what to do next.
Do you have any pointers on how to jump this last hurdle?
you should try posting on forums about NES hacking. I suggest
Futhermore: Check out http://datacrystal.org/wiki/Blaster_Master:RAM_map
Hi. I really enjoy the cheat features on this, as it's helped me in numerous games, but I was wondering how the RAM dump works? For release 1.05 it is mentioned it is in the "File" menu but I cannot see it on my windows XP. It seems like it would be handier than the save state, which does not extract what looks to be a map of the current area in the game when I view the hex editor.
Am I missing something very silly? Thanks for all previous and any future help!
the RAM dump is in the file menu in the hex editor. Hit F6 to open the hex editor and then choose the menu File/Dump to file/Ram.
Thank you VERY much! Now that you mention it, I think I saw it once before but figured I did not need it.
I guess I got so used to the pull down menu I never used, I just started ignoring it. (shakes head at self a bit and grins sheepishly.) There are some other neat options there too. So, thanks in advance for those, too.
hello, I've been part of the team developing FCE Ultra. We have successfully integrated the FCEUXDSP1.07 and FCEU TASing branches into FCE Ultra. The problem is that none of use are good with debugging tools so much of this code is going untested (previous bugs and possible new ones introduced in conversion). So if anyone is interested in testing, bug fixing, or adding features, email me. Thanks.
Wonderful release, sp. Even if I'm like, 2 years late
Just coming to say thank you for this wonderful piece of emulator and debugging tool. I've been using it in Windows in 2008 and 2009 for ROM Translations, and it never let me down. I've never used RAM Filter as I didn't knew how. But today I went here on your page and, what a surprise. Wonderful tool, I must admit. I was stuck with the Cheat Console of NesTen, and that was giving me headaches.
Not begging for you to continue the development of this emulator, no, don't take me wrong. I just came here because I felt you would like some recognition, at least for someone that is being able of seeing all his favorite NES titles in his native language mostly due to you. Thanks a lot.
thank you for your kind words. You do not have to beg me to continue working on it because I am already doing so. It's just that the development moved from my website to http://fceux.com/web/htdocs/
Admittedly the other people working on FCEUX have been doing far more than I did in the last two years, but once in a while I commit code there too.
Oh, I see. I used FCEUX 2.2.1 to record some videos in AVI output. The gameplay almost didn't suffered while I was recording, and the quality was perfect. I just didn't noticed that all the features present in FCEUXD SP were also present there.
I was hoping to get some good codec recommendations at FCEUX page, but there isn't boards or something like that there, so, if you could help me ....
When recording in Windows, I use the "Helix YV12 Codec", but in Linux, I don't either have this codec, nor have one that works. Any recommendations?
I don't actually know anything about recording movies and codecs. Sorry.
Amazing job with the debugger/cheat enhancements. Is there any way to add hot key support to the cheat console's cheat list? I have found this feature lacking from many emulators, and with the absence of a joker type code for these older systems, hot keys would be a wonderful addition.
I am not actively working on FCE anymore. A better place to ask this question is http://fceux.com/web/home.html
Ive been wanting to make the codes seen on the blaster master RAM MAPs for unlimited GUN. health and such and creat game genie codes for the real nintendo?
when i first used this emulator
(FCEUXDSP 1.7) in the hex editor under nes ram if u right clicked it came up with a menu and had an option to make the address and bit into a game genie code say for blaster master: Inf power at offset 0x040D : FF but i didnt know you could make a gg code this way until i read the emu readme but now when i try to do this by clicking on the bit FF for hex 0x040D it only comes up with 4-5 options and the option to make the game genie code at the selected address doesnt show up any more? How can i get that GameGenie code option back, iv tried deleting everything re running nothing will bring back the GG Code Option ? please help!
and when i use the game genie code encrypter/decripter through the emu i enter 040d and value FF for inf energy and puts the code in the cheats menu in the emu but its value changes from 040d FF to 840D : FF and it doesnt work??? on real nes game genie and the emu
I'm sorry but I am not working on this anymore. You can ask your question at http://www.fceux.com or www.romhacking.net/forum and see if they can help you.
hi sp, im going through your Nerdy Nights nes help. IT ROCKS! Could you make and give a .zip file release of FCEUXD SP 1.07? That would be great!
I found your conditional breakpoints highly useful, but when I tried bitwise logic operations, I got an error message. are they not implemented? might they be included in a future release? okokok I know you've closed the door on this project, I just wish I could get bitwise conditionals! how tough would it be for a C++ noob to write them into the source?
thank you for your comment. Unfortunately I have not looked at the source in years. I would recommend asking the maintainers of http://fceux.com/web/home.html which is to my knowledge the latest FCEU version.
Syndicate This Blog