Locked

1 2
10 11 12 29 30
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
no I haven't tested to see it if it does the same thing with nitsuja's
It's hard to look this good. My TAS projects
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Try it and report if you still have same problems.
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
When you load a state that isn't from any movie, it is recording from now. It stills says "Error(s) reading state x".
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Nitsuja: FCEU project had been reopened. http://fceultra.sourceforge.net/ Also, new mappers support: http://cah4e3.shedevr.org.ru/fceultra.html
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I've been working on some modifications to windows FCEU 98.15. Here's a version with some new features: http://lukeg.50webs.com/fceu.exe.heh (delete the .heh at the end after downloading--50webs doesn't allow executables :P) I can't upload source code just yet--I guess I have a 300kb file max, so I'll have to split it up. But I'll upload it eventually I didn't touch any internals, so movies, configs, etc are 100% compatible with 98.15. Here are the new features: Shared memory The game data can be read by external programs, in particular, Hoe's EmuRead. The downside is, you can only have 1 instance of this program running at once. But you can still run non-shared memory FCEU's simultaneously. So hang on to your old version if you like watching movies while you work on them. Note: All the shared-memory stuff can be removed with compiler instructions. Memory Watch Watch up to 24 RAM locations in a dialog box. Access the dialog through the NES menu. Simply type the address, and the value will update every frame. If you want to watch a 2-byte value, use a '!' before the address. You can save and load all the stuff as a text file, too. I'm not sure everything works 100% yet, but so far things seem to be fine. Later I hope to add options like view in hex, etc. but as it is, it's still very useful. Screenshot: http://lukeg.50webs.com/screen.html Next, I'm going to try and make FCEU able to accept input from outside programs. This would make it possible to author bots. I also am hoping to put some simple bots in the program itself, although this might be a while. Let me know if you have any problems or suggestions
Use the force
nesrocks
He/Him
Player (241)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
I can't seem to download the fceu, are you sure the link is correct? yes i deleted the last four letters in the link (.heh)
Joined: 8/3/2004
Posts: 380
Location: Finland
FODA wrote:
I can't seem to download the fceu, are you sure the link is correct? yes i deleted the last four letters in the link (.heh)
You need to download it with the exact link provided and when you got the file (fceu.exe.heh) on your computer, you rename the file removing the .heh ultimately resulting in fceu.exe.
"Kids! Bringing about Armageddon can be dangerous. Do not attempt it in your home." ( Pratchett & Gaiman: Good Omens )
nesrocks
He/Him
Player (241)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
got it. great thing with the memory watcher, that makes my life easier to TAS yo! noid.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
Luke wrote:
Next, I'm going to try and make FCEU able to accept input from outside programs. This would make it possible to author bots. I also am hoping to put some simple bots in the program itself, although this might be a while.
YES please do. I have the means to program some luckbot type programs with nice intuitive user-interfaces, but I do not know the C programming language and have been stuck. An easy way to communicate with FCEU would allow me get started! I have messed around with your memory watcher, and it works great! I've been inputting all the known ram addresses for the games I'm working on just for quick easy access to them. Also you might want to note that it converts those values to decimal automatically (this confused me at first because I assumed I was watching hex vaules) One more thing FCEU suggestion (and all emulators for that matter): How about a feature that pauses a run on the last frame, instead of stopping it? This way I could watch my work, and load a savestate without having to open the file again. Obviously this would need to be toggled, so that an .avi can be recorded. This should be an easy feature to make and would save a lot of time. thanks
It's hard to look this good. My TAS projects
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I'm glad the memory watch has been useful so far. I've tweaked it a bit, and probably this weekend will have another version with some minor changes. I'm going to add hex viewing as an option, too. I like the idea of stopping a movie on its last frame. I agree, definitely more convenient. I'll check how hard that would be to add. ----- Anyway, I think this weekend I will start working on bot support. I'm open to suggestions how to implement this. I don't know a lot about inter-process communication, except for sharing memory. So if there's a better way to do this than memory sharing, let me know! My current thinking is this set up a page of shared memory (say, 4k would be more than enough), that FCEU will check for input. If there is a signal that the bot input is ready (for example, maybe writing a '1' to the first byte), then FCEU will use this for input. The input could be stored however, probably just serially 2bytes/frame (+ more for special commands) representing the controller input. The bot input would simply replace the user input (just like playing a movie), so it won't be hard to program this. The only special command I was thinking about giving the bot is Load Current State. I wouldn't want a bot to overwrite save states. However, if this is something you guys would like, I could make some bot-only savestates. This would be more work, however, so it wouldn't be in the first version. So I'll give a little example how I was thinking this could work A bot generates some potential input. It writes "Load Current State" to the memory, and then the input. The bot writes a non-zero value to the first byte (maybe the input length would be a good value?), and then when FCEU checks the memory, it runs the potential input. After FCEU is done, it writes '0' to the first byte. Now the bot can look at the NES RAM, etc., and decide what to do next--either "Load Current State" and try again, or continue giving input. If there is a way to send messages to other programs via the message queue (maybe I'll check MSDN and see what they have about this), this process could be a little more streamlined. Probably not a big deal, since almost all the CPU time will be for the emulation, and any overhead will be pretty small compared to this. But like I said, if you know better ways to do this than sharing memory, I'd love to hear about it ) Anyway, I'm open to feedback about this, so potential bot authors (Hoe, adelikat, ?), I'd be interested in hearing your thoughts. Probably I will also make a basic bot included with FCEU. After all, I need something to test it with, so I might as well add it to FCEU )
Use the force
Active player (277)
Joined: 5/29/2004
Posts: 5712
Could you have a box that lets you type in what frame to pause on, and the last frame would be in as the default?
put yourself in my rocketpack if that poochie is one outrageous dude
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
Bag of Magic Food wrote:
Could you have a box that lets you type in what frame to pause on, and the last frame would be in as the default?
that would be pretty easy too, but what advantage would that have?
It's hard to look this good. My TAS projects
Active player (277)
Joined: 5/29/2004
Posts: 5712
I don't know, but VisualBoyAdvance lets you do it...
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 11/26/2005
Posts: 285
Some sort of window for game-specific extensions with a short description of them. And these tick boxes so you could turn them on and off separately.
nesrocks
He/Him
Player (241)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
i've been thinking that a permanent info showing which is the current active save slot would be good too. for all emulators :P
Active player (277)
Joined: 5/29/2004
Posts: 5712
You could also check VisualBoyAdvance's Load Game menu...
put yourself in my rocketpack if that poochie is one outrageous dude
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
luke, the memory watcher's save profiles is a bit problematic a) it doesn't display the .txt files in the current folder selected when loading or saving b) it would be nice to be able to set a default directory under the config where all the profiles can be stored
It's hard to look this good. My TAS projects
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Hmm, I think it should display the *.txt files. I didn't code the load/save dialog myself, so I hope it works ) However, right now it doesn't automatically add a .txt after your filename when you save, so maybe your files aren't getting named properly? I'll definitely make it automatically add the .txt in the next version, since that confused me at first. I'll check out the directories thingy too. I think there's already some good code in FCEU for directories so it shouldn't be too much work. Happily, the weekend is here now, so I'll have a good chunk of time to work on FCEU.
Use the force
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
yeah, it my problem was that I assumed it was saving as a .txt file. Automatically doing that would be nice but the directory issue would be far more important (for me).
Luke wrote:
Happily, the weekend is here now, so I'll have a good chunk of time to work on FCEU.
excellent! Your killing me here! First, major improvements to FCEU, then amazing star movies. Keep up the good work :)
It's hard to look this good. My TAS projects
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Ok I think I am ready to release an FCEU with bot support. I made a little webpage here with more info http://lukeg.50webs.com/fceu.html A little bug on the webpage in the autofire section, I talk about a menu item "Alternate A and B", but it's actually called "Desync Autofire". I forget to recompile the menu P Anyway, this has a bunch of little tweaks and fixes from the shared memory/memory watch version. I tried to put in a bunch of your guys' suggestions, but I didn't get around to making the saveslot display yet. I haven't tested external input much, but it seems to be working after feeding FCEU random strings of data ) I'll release this version so bot programmers can play with it. Let me know about bugs etc., although I might not have a chance to do much programming for a couple days.
Use the force
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
First of all, how the bot is supposed to work? 2nd, after running, it pauses the emu, but you can't unpause it. 3rd, why do you need to check something "Use external input" for the bot to work? 4th, I also noticed that the bot try to open unavailable savestate. Why?
Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
The built-in bot doesn't work right now, it just does random input--I'll be adding to it later. However, external programs should work. Come to think of it, really I should have disabled it before releasing. The bot opens the current savestate before running, so that's why it's getting an error. I'm not sure about the pause error--but I think that's just because the bot will try to run for 1000 frames before you regain input. You do have to manually unpause, however, after unchecking "use external input"
Use the force
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Well, it should create a savestate from where you tell it to start its task. If it really needs to "use external input" , it should auto-put it itself then disable it after the task.
nesrocks
He/Him
Player (241)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
luke can you make the bot's goal be just a memory address value reached?
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Also, in many games, you need to press some buttons for 1-2 frames for the action to work then you need to wait x frames to redo that action. So, what I want, is something that is configurable. Ex. If bot press A, then wait 20 frames before it tries to repress it. It should eliminate many and many possibilties.
1 2
10 11 12 29 30

Locked