Iyouboushi's Home


Archive for the ‘Emulation Control’ Category

Posted by Iyouboushi on March - 25 - 2014 Comments Off on Emulation Control – Release 009

Release 009 is now available for download!

Nothing changed with the console bot (honestly I don’t know what more to do with it since my goal isn’t AI) but the IRC side of things is now version 1.6.  I know I never posted about version 1.5 here on my main site (I did on the forum though) so I’ll briefly say that version 1.5 of the IRC Client added DEMOCRACY mode.  Version 1.6 introduces the ability to have a command repeated a certain number of times.  I’m sure you’ve seen on TPP people doing stuff like “UP 5” or “DOWN 3” and it doing the multiples of the command.  Well, I’ve replicated that for mine.  Whitespace doesn’t matter here. You can have “UP 5 information on fast online payday loans” or “UP5” and it does the same thing. You can also put the number before the command (5UP or 5 UP) and it should still work.

For mine the max amount is 5, so anything higher will be reduced down to 5.  Right now it works with anarchy.  Democracy doesn’t do multiples yet.  Considering my waning interest in this project I figured it’d be better to release what I have now rather than have it sit on the back burner for a while before I get around to adding support to democracy.

Anyway, hopefully this might make things a little more pleasant for smaller streams.


Emulation Control – release 009 (contains version 1.6 of the IRC client, version 1.2 of the Console Bot)

Posted by Iyouboushi on February - 27 - 2014 Comments Off on C# Emulation Control News

I just wanted to come post a very quick update to say that I have started working on a DEMOCRACY vs ANARCHY type system, similar to what the Twitch Plays Pokemon program is using now. However, I’m about to be going off on vacation so that I will not be posting this update until I return.

I’m going to aim to have this uploaded on the 9th of March, so look forward to it then!

Posted by Iyouboushi on February - 25 - 2014 Comments Off on Emulation Control – Release 007

I know I did release 006 yesterday but Release 007 is now up, available for download and probably will be well-welcomed. This release contains version 1.2 of the console bot (unchanged) and version 1.4 of the IRC client.

So here’s what’s new with the IRC client:

I’ve added an “About” menu option that has my email/website links as well as when the program was originally created and last updated. The title bar of the program now shows the version as well.

I’ve added a new settings menu option and a few sub settings. These new sub settings now allow you to control the delay on the key being sent to the emulator and the key bindings. The delay is set to 100ms by default. The bigger this number the longer the keys are held down in the emulator. 100ms seems to work okay for everything I’ve tested so far. If it’s set too high (like 300ms or so) then certain emulators might see it as the button being held down longer and move more spaces (the moving left twice per each command as mentioned before I fixed it, for example). However, some buttons may no longer work right (I haven’t tested to see if “AB” or “BA” work right (for certain NES games, such as TMNT #3).

The biggest change, and probably most welcomed change, this version is the ability to reconfigure the key bindings. With version 1.4 it is now possible to change the default key control settings that the emulators use. You can use the following keys:

NumPad0 NumPad1 NumPad2 NumPad3 NumPad4 NumPad5 NumPad6 NumPad7 NumPad8 NumPad9
UP DOWN LEFT RIGHT (these are the arrow keys)

To change the keys, load the program and click on the menu option Settings -> Control Settings -> Key Bindings

You have to type in the key names (using the ones listed above) for each key you want to change (and you’ll see this when you open the config). Make sure they match the spellings of the keys above. Ultimately one day I’d like to make it so you can just click on the box and hit the key you want (like VBA does it) but it’s not a huge priority right now.

Your settings will be saved upon hitting “OK” and loaded back into the program each time you run it so you don’t have to keep redoing it. The settings will be saved as keys.cfg. As with settings.cfg, please don’t mess with it (you don’t want to break it).

This version also introduces an idle timer. If no commands are sent in 10 minutes it will default to sending an “UP” command to the game. This is to try and help certain emulators from going to sleep when no buttons are pressed after a while. For now ten minutes is built in but maybe in 1.5 I’ll change it to be like the delay and let you choose your own time.

Finally, the last thing I did was make it so the pause button is not disabled upon loading the program. This means you can pause the control functions before you connect to give yourself more time to set things up. When paused the idle timer will not trigger as well.

Phew. This was a fairly big update, even though it might not look like it just from reading this. Doing the key bindings was quite a bit of work. So unless there’s any major bugs that pop up in the next day or two, I really will be taking some time off from this project (for reals this time).

Enjoy it, everyone!

Emulation Control – release 007 (contains version 1.4 of the IRC client, version 1.2 of the Console Bot)

Posted by Iyouboushi on February - 24 - 2014 1 COMMENT

It’s another release of my C# Emulation Control programs!

Release 006 includes versions 1.3 of the IRC client and 1.2 of the console bot.

In this release I’ve added support for the “C” button that SEGA Genesis uses (set it to keyboard key I) and added support for the PSX buttons (you’ll have to look at the readme text for that though as there’s many buttons).  I’ve added fceux to the IRC emulation list and cleaned that up a little (it’s by console -> emulator available  now instead of just a list of emulators).  On the code side of the IRC client, I’ve fixed a bug that would cause the program to crash if you hit “SEND” before you were connected to a channel. Speaking of channels, I’ve changed the client to check for the “#” in the channel name and add it if it’s missing.

Perhaps the best change to both versions is better window handle search functionality.  This means it’s now possible to use pretty much any emulator with both programs.  In the IRC version you can use the command /setemu (emulator name) to manually select an emulator that isn’t in the official menu list (such as /setemu ePSXe).  The console version already has a menu option you can choose and follow the prompts.  To make this work with the console version I had to include a bunch of default control config files, so please don’t remove these.  You can still use custom ones for certain games though but if you don’t have one for a specific game use the default config for the console you’re trying to play.

Just as a quick warning, the better window search functionality seems to be working pretty good but there’s still a chance that it might not be able to find the emulator that you’re trying to use.  It’s still experimental, so keep that in mind.  Also you still have to set the keys up the way you would normally.

My next goal in this program is to make it so you can define the keys used by the programs instead of it being forced to use the built-in ones.  This might take some time though, so for now just enjoy release 006.

Emulation Control – release 006 (contains version 1.3 of the IRC client, version 1.2 of the Console Bot)

As a bonus, here’s a video of the console bot playing Devil’s Castle Dracula X: Nocturne in the Moonlight (Castlevania: Symphony of the Night).


Posted by Iyouboushi on February - 21 - 2014 Comments Off on Emulation Control – Release 005

It seems there are still some issues with version 1.1 of the IRC emulation control. Sorry everyone. This is what I get for being rusty at C# and making minor stupid human errors.

For version 1.2 of the IRC client I’ve hopefully fixed that error for good (a, b, x, y, l, and r shouldn’t be ignored sometimes now).  I’ve also added a pause button that will hopefully make it so commands stop working when pressed (and resume when pressed again).  I didn’t test it in a very active channel but it worked in a smaller channel.

For both the IRC client and bot control I’ve also changed the DOWN/RIGHT/LEFT/UP display to show arrows rather than the names of the keys.

Finally, I’ve also found an updated copy of the InputManager.dll that makes all of this possible.  With this update both projects have been updated to .NET framework 4.5.1, which might actually solve a few other problems I’ve been having as well (as well as work on Windows 8.1 better).  Of course that means it’ll only work on computers that are running that framework but it should be the standard by now.  I highly recommend upgrading to it if you haven’t already.

Assuming I didn’t make any more minor human errors and it works properly, I will probably be taking a break from the project for a little bit.  If another error pops up and you discover it, feel free to tweet me about it and I’ll check into it as soon as I can.

Emulation Control – release 005 (contains version 1.2 of the IRC client, version 1.1 of the Console Bot)\

I’ll make new demo videos of both programs soon.

Posted by Iyouboushi on February - 20 - 2014 Comments Off on Emulation Control – Release 004

I honestly wasn’t expecting to release another version of this so soon but due to a small oversight on my part I felt it necessary to go ahead and release version 1.1 of the IRC Emulation Control Client.  (I seriously need a catchier name than this).

I’ve made a few GUI changes in 1.1 of the IRC client.  I figure most people who will be running this won’t be using the thing as an actual IRC client (as it loses focus too much once the game starts getting played anyway).  So I shrunk the window for that, which made the entire client smaller.  Also fixed a mistake I had in which lowercase commands weren’t being recognized.

Emulation Control – release 004 (contains version 1.1 of the IRC Client, version 1.0 of the Console Bot)


And here’s a video of this in action.  The command window is a little laggy/behind the actual commands though (it does the commands before it shows them in the window).  But it works!

For testing I tried Pokemon Red and Link’s Awakening (a little over a minute of each).

Pokemon Red:

Link’s Awakening:

Posted by Iyouboushi on February - 18 - 2014 Comments Off on Control Emulators via IRC — Also via a Bot!

For those who have been living in the dark, Twitch Plays Pokemon  (Direct link to stream) has taken the Internet by storm! An anonymous programmer created a way for Twitch users to interact using the Twitch chat and they’ve been trying to collectively play the first Pokemon game (to some funny and frustrating results).  You can click on the first link to learn more about that or the stream to watch it happen live.

After seeing that I said “I bet I can do that in C#!” and set out on a frustrating journey to get it to work.  However, I’m happy to report that thanks to a guy on the Tech Life Forum for providing a quick IRC GUI client demo and to the Input Manager Library, I’ve managed to get it to work.

After spending several days working on it, I now have a release that I’m feeling rather proud of and want to share with the world.  I’m providing a few different things here with this 7z.  First, I’m providing the IRC version of the project.  It still  isn’t perfect but it does work 99% of the time now.  Second, I’m providing a console bot version that randomly selects keys and attempts to play games on its own (no AI behind it, it’s all random baby).  Third, the source codes of both programs are included.  I honestly don’t mind if someone downloads these and improves them/gets them to work better (I would like at least some credit for starting this project though if you choose to do that).  Fourth, I’ve included a few emulators that both programs are designed to run with.  These are just the emulators themselves, no ROMS are included (and won’t be included).

With all that in mind, there are two readme files inside the 7z, one for each program, and I highly recommend you read both in order to learn how to make the programs work.  Alternatively, you can head on over to this topic on my forum where I talk more about it.

I remind everyone that this is really a rough release.  I’m not trying to steal the Twitch pokemon guy’s thunder or run a stream of my own (as I can’t leave my computer on 24/7 anyway).  If you can, great, feel free to edit the source code and get it to connect to your Twitch stream and try your luck.  I just thought it’d be fun to try and replicate the idea and see if I could do it.

I’ll also add that there’s probably better ways to do certain things in the code.  I’ll be trying to improve it as I go along, should I continue this project.  It’s been a long time since I’ve messed with C# and I’m a little rusty.  But it works regardless.


Emulation Control – release 003 (contains versions 1.0 of both programs)

As a bonus, here’s a youtube video of version 0.2 of the console bot attempting to play the NES game Ice Hockey.  It’s not that great at it, but it’s still amusing.


Featured Posts

Battle Arena 4.0 – Release

Version 4.0 has been in development for almost three full years but it’s finally ready to be officially released. As you can imagine it’s full of additions, changes and fixes. Look after the jump for the changelog and the download link. Moving forward I am not sure if I’ll continue to post “full versions” here […]

Battle Arena 3.2 – Release

It took over a year but it’s finally here! Battle Arena 3.2 is done and is now available for download.  As usual it’s chalk full of additions, changes and fixes — most of which will be listed after the jump.  Hope everyone has happy holidays.  See you in 2017.

Battle Arena version 3.2 Is Almost Done!

It’s been nine long months and Battle Arena has undergone a lot of various new additions, changes and fixes.  The final release of version 3.2 is drawing closer but still has a little ways to go.  As it stands today, here’s some of the main highlights:   ADDITIONS: Added the Supply Run type battle. In […]


Chapter 666 – EMPTY HALL OF THE PUPPET TEMPLE [Unix] [MangaStream] The chapter was released a day earlier than usual! Woohoo! Though, was it really a chapter to get excited over? Click the read more and see the summary and some thoughts (as usual).

Search my site

Twitter Updates