I was recently writing a command line application in C++ that parses raw binary. I thought it would be really nice to be able to print different parts of memory to the screen as the program runs. I’ve included well-commented code and a usage example.
I recently ordered a new mug from zazzle.com. “Code is poetry,” it says on one side, with my favorite programming language, C♯, on the other. Code really is poetry, and now let me relate a memory that I thought of on my drive home from work today. (Sorry in advance. This post doesn’t have very much focus.)
I gave a presentation for my ENGE 1104 (Exploration of a Digital Future) class about home automation. My team members talked about X10, Z-Wave, ControlThink’s SDK, and some project ideas. I gave a brief overview of a project that I have been working on sporadically for a couple years, Roomie. In doing so, I for created some documentation, so I figured I’d publish some of it here. Here is an example of RoomieScript and it’s execution:
I have a friend who is an open-source fiend, and so he nag nag nagged me to make the source code for FRI available for download. After a lot of re-organizing and commenting, here it is! The "Frie" project in the Visual Studio solution is the FRI back-end, stands for "Fantastic ROM Indexer Engine". Yes, it is pronounced "free" just like the front-end.
I’m putting this code out on the Internet, but please keep in mind that FRI is still my baby. If you want to make a derivative work, email me first for permission.
- Fix: emulator compatibility is now caps-insensitive
- Fix: emulator selector centered and has correct icon
- Re-Write: Emulator loader re-written. The emulator selector now looks finished. Note that ROMs can no longer be opened in bulk.
- New Feature: Image Health (good dump, bad dump) can now be searched.
- New Feature: The default size of the Advanced Search window is now just the right size to fit all of the content.
- New Feature: The default size of the Emulator Selector window is not just the right size to fit all of the content.
Here is the Emulator Selector when I select a PlayStation ROM to play. (I don’t have any PlayStation emulator configured to work with FRI, so it just shows all of the emulators.)
Here is the Emulator Selector when I select a Game Boy ROM to play. Since I have more than one Game Boy-compatible emulator configured in FRI, it gives me a choice.
- New Feature: More-detailed status messages in the status bar.
- Tweak: Many improvements to program responsiveness. Previous versions of FRI freeze temporarily when scanning for a large number of new ROMs, or when populating the ROM list when a large number of ROMs. Various tweaks, combined with the new status bar messages, ensure that FRI remains responsive and keep the user in control.
- New Feature: Maximum number of players can now be an implied meaning of a File Tag. This means that if a ROM has "[p1]" in the file name, then FRI will recognize it as a 1-player game. As always, the user can create new tags, so if the user has a lot of ROMs with "(1 player)" denoting that it is a 1-player ROM, then he can easily add that to the File Flag Vocabulary.
- New Feature: FRI now has the ability to randomly-select a ROM in the ROM-list, or (if multiple ROMs are already selected) to randomly-select a ROM out of the selected ROMs.
- New Feature: Now when FRI is closed it only saves the database if changes have been made.