I'm just curious, but when will we be seeing the ability to modify a ROM in realtime via Lua?
It's not omgimportant (yet), but would be nice to have...
It works now, but there appears to be a bug. Something disables the menu options for reset and power-on (and the hotkeys as well) and forgets to re-enable them again. After restarting, it works as normal.
According to various reports and my tests, FCEUX doesn't support paths containing MBCs (Multibyte Characters). When file operation fails due to this issue, no error message will be given. So it's very confusing and difficult to diagnose for the user.
This issue doesn't exist in FCEU 0.98.xx.
<klmz> it reminds me of that people used to keep quoting adelikat's IRC statements in the old good days
<adelikat> no doubt
<adelikat> klmz, they still do
Emulator Coder, Site Developer, Site Owner, Expert player
(3574)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
FCEUX 2.1.1 released.
This one is mostly a lot of small bug fixes and nice useability enhancements.
For enhancements, Win32 TASers will enjoy some of these:
*Recent menu for movies
*"Load last movie" right-click menu item
*Drag and drop for savestates
*Drag and drop for .fcm (converts and plays converted .fm2 automatically)
And some annoyances fixed:
*Memory watch Save As menu item works again (sorry, I broke it in 2.1.0)
*Memory watch fixed bug that caused the 1st watch value to be drawn in the wrong place if the memwatch slots were all full.
In addition the sound core has been made more accurate. (FCEUX is now one step closer in emulation quality to the likes of Nestopia & Nintendulator, woo!)
gui.register( function()
gui.text(10,10,"stay")
end)
while (true) do
gui.text(10,20,"disappear")
FCEU.frameadvance()
end
If you pause the emulator, only the "stay" line remains on the screen. Other emulators work correctly, only FCEU/X works like this (and PCSX, but I'm using the same code as FCEU :P).
gui.register is called repeatedly even during emulator-pause mode (otherwise the onscreen text like "State saved" would never leave), while "disappear" is only drawn when the emulation advances.
Otherwise, if you had something that drew to the screen using gui.register you would end up having some very interesting trails.
Few subtle things I notice with 2.1.1:
- When selecting "Play Movie...", if it defaults to a movie that begins from a savestate, it claims that it begins from soft-reset. When selecting a movie yourself, it correctly displays savestate, and playing the movie when the information still displays soft-reset will begin the movie as normal. Appears to be a display error.
- Any new movies created with 2.1.1 will be displayed as being made from "FCEUX 2.01.00" from the "Play Movie..." window. Forgot to change a digit?
- The same Memory Watch bug I pointed out earlier appears to still be in effect, even though Adelikat thought the problem is gone. At least, the problem still exists on this computer. Unzipped into an entirely new folder, so none of the earlier configurations should interfere. It seems to be caused by the second address box in the second column when you put five characters in it and is recognized as a number. X0062 is five characters, and is recognized as a number, for example.
Only problems I recognize seem minor. I ask for confirmation of said errors so I don't think I'm insane or the world does everything to make things fail on me alone.
Emulator Coder, Site Developer, Site Owner, Expert player
(3574)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
I'm pretty sure this error has been there is the first release of FCEUX. Nice catch. The auto display routine is still from the old FCEU code which had soft reset.
Whoops, yeah. There is 2 places you have to update the version number. I missed the 2nd one. I can't fix this for this release, but it has been fixed for the interim version/next release.
Aha. Now this is good stuff. I can now easily recreate this bug and it shouldn't be hard to fix. I think my ram change monitor addition introduced this bug. I SWEAR I had fixed it though :/
Mind if I use Microstorage for that?
Should be seen when you select "Play Movie..." and the first one that shows up is this one. If it isn't, back out, remove some files from the folder it defaults to, and check again. Make certain that, when the window appears, it picks this one out of the list.
Better yet, whatever the default directory you're using, make sure the only movie file in there is that apparently affected one. That way, it has no choice but to pick the file in question. Should say Soft-Reset, but if you use that pull-down and select the same movie, it'll fix itself to read Savestate.
That's what I'm seeing, anyway. If it doesn't work that way for you, I really have no explanation why what I see is different from what you see.
Is there any technical reason for not being able to play .fcm movies directly in fceux? I mean I understand that fm2 is the new thing, but I've got a folder full of .fcms that a) I don't want to convert all of them and b) if I did it would take up a ton of space.
Edit: Actually I just thought of something. The fm2 format is plain text, which is great for when you're making a tas, but as I mentioned, it's huge. Of the two .fcms I tried it on, one grew to 20x its size and the other was over 100x (8 kb -> 850 kb). But compressed .fm2 shrinks it down really small. So why not make a custom extension (.f2c or something) that would just be a renamed, zipped up .fm2, which would be the default in the emulator, along with .fm2? I see that the movie browser already supports compressed fm2s, but I think making it the default would be ideal. That way you get the best of both worlds, the flexibility of fm2 without the insane, monstrous filesize increase.
Here is a bug that I found.
I did open FCEUX. Load a game... Ah damn, forgot to configure the ROMs path. So I did it. Manually wrote ".\roms". because I intend to put it on a USB key, so the path might be different if a letter like "X:" or anything else is used on some other computer. Then I did press the "OK" button. Loaded the game. Damn, while thinking of that, better to configure the movies path. So did the same thing, except that I put ".\movies". Then press "ok" button. And then it said "Error: Directory .\roms does not exist. Create this directory?" WTH, that directory does exist and I did just configure the path for it 10 seconds before without any problems. o_0. Curious of where that directory would be created, I did press "Yes"button. Then same thing happen for movies dir and that directory was there before too. Press Yes again. Then I did notice those new directories were being created in the ".\roms" directory.
My guess was that because I didn't configure the "Base directory". So by loading the rom, FCEUX uses the last directory something was loaded which in this case is the ROMs directory. But no. Even if it's configured, it does the same thing when doing the same steps.
So I did try doing the same steps again but this time, using the full path. It works but that's not the way I want due to reasons I did mention above.
Also, FCEUX refuses to use the correct movies directory. It always try to open a movie the movies directory inside the roms directory. And no matter what is "Base directory" path, which is ironical because a software should always try to use what is in its own "root" directory and not anything else, unless something like a "Base directory" is configured (Not true if it's a dll or EXE files but that's not the case here). But in both way, it failed.
Also some other bugs related to uses of ".\" Like by closing and reopening FCEUX 2-3 times, the configured roms path was erased.
Emulator Coder, Site Developer, Site Owner, Expert player
(3574)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
Thank you for the detailed bug report. There are actually a few issues here (mostly known but I havent' been able to find a consistent way to recreate them).
One is that the directory overrides does not like relative paths.
Two, your directory overrides will randomly disappear regardless if you use relative paths.
Two is VERY annoying and I have spent many hours trying to figure it out and fix it but I have failed. What I need is steps to recreate it EVERY time the steps are done. No one has been able to come up with those.
Ok so. I didn't find a way yet. But to be fair, I did erase the .cfg file and restart all from scratch to find a way to reproduce the bug. I did notice that even when the cfg file to be erased, when you "Open ROM", the roms directory path configuration is still saved somewhere because it uses the last Rom path used. So I did rename the roms directory to 222, then closed FCEU, reopen it and Open ROM again. Now I must browse to correct directory and load the game. Then to confirm my suspicion of FCEUX that uses Windows registry(or something else), I did close FCEUX and erase the cfg file again. Open FCEUX again and "Open ROM". Yes, it is in the directory where the ROMS are, which is 222 as I said.
So I think it's a good start to check why it saves/uses thing in windows registry(or something else).
That might be a reason why it makes the problem #2 to occur.
ok so I found a way to make #2 to happen everytime.
Make sure you have no cfg file before doing those steps. Open FCEUX, configure you ROM path, press OK then close FCEUX. Reopen it, then configure your movies path. Press ok, then close FCEUX. Open it again and the movies directory path configuration is erased.
Ok so I rewrote all those steps with extra details.
Just to be sure. The default roms directory path(explorer), when there is no cfg file is "J:\TASing\nes\roms"
1. No cfg file. It's 100% clean.
2. Open FCEUX which is in "J:\TASing\nes" for me.
3. Config->Directories...
4. Press the Browse right of "Roms". Browse to "J:\TASing\nes\roms". Press ok. And Ok again. Press the X button to close FCEU. I didn't use alt+F4.
5. Redo the same steps as 3 and 4 but for Movies this time.
6. Open FCEUX again then go to "Config->Directories..." and it's erased.
Edit: My movies path is "J:\TASing\nes\movies".