I have been hinting that I was working on a game for the Empeg and it is finally ready for an alpha release. I'm calling it EmpTriv and it is, as the name suggests, a Trivia game. Right now it's got about 20,000 multiple-choice questions from 34 categories. The categories fall into the general groupings of Arts, History, Geography, Sports, Science, Fan Trivia, and Miscellaneous.

Installation
EmpTriv requires Mark Lord's hijack kernel modifications, at least v60 or so. I'm running and testing with v73. As far as I know, EmpTriv is the first userland application to be released using Mark's hijack features.

There's no pretty installer. Installation consists of getting the tar.gz archive and extracting it to your favorite directory. The archive consists of the program and a questions/ subdirectory containing about 5 megabytes of questions in 20,000 files. This means extraction will take a little while. In the future I will explore a way of compressing the trivia question files or combining them into a smaller number of larger files, but for right now they're all in flat text. 20,000 files is likely to be more than the number of Inodes you have available on your root or /usr partitions, so installing to a subdirectory of one of your music partitions is a good idea. If you were smart enough to format your /usr partition with extra inodes (I wasn't) you can use that.

Once the files are in place, you need to run the binary at which point an "EmpTriv" item should appear in your userland menu. Selecting this menu option allows you to play EmpTriv. If the program does not find a questions/ subdirectory it will complain. You should be able to play EmpTriv while the player is running, and since the knob is the only button that is stolen, you should be able to control the player while it's running as well.

Playing the game
It's very simple. The knob does everyting. Left and right on the knob changes menu options, pressing the knob selects that menu item. Select "Play" from the main menu to play the game. You will be presented a trivia question. Tap the knob to display the answers, or to display the next page of the question if it's a long question. When the "ABCDE" letters show up, you can scroll to select one of the letters and that answer will be displayed. Selecting the "Question" option allows you to take a peek at the question again. In this mode, left and right on the knob scroll the question at the top of the screen until you press the knob again.

After you answer the question, you'll either be given a "Correct!" screen with your stats, or a "Wrong!" screen with the correct answer. Then you'll get a "next, done" menu at the bottom to either get another question or go back to the main menu. Each question has a difficulty rating which is based on how many people got the question right or wrong on the sites I got the questions from. You gain and lose points based on how difficult the question is rated.

That's it, really.

Options
The options menu allows you to change game types, pick categories, or select a difficulty level. Right now there are two game modes. In normal mode you just keep answering questions until you select "done." In survival mode, you can play until you get 10 questions wrong and then your score is reset.

The categories option gives you a vertical-scrolling list of categories. Pressing a knob over each category selects or de-selects that category. De-selected categores will not be used for getting questions. In this manner, you can remove categories which you don't like.


Limitations and Known bugs
- The graphics are rather sluggish as I've chronicled in other posts on this forum. Some of this could be inefficient coding on my part, but a lot of it has to do with the graphics library I'm using. Assembler graphics libraries would help this out a lot.
- Currently settings such as your selected categories and difficulty levels are not saved. Until I have a way to write to the disk, that will remain so. I am not going to hack MLord's kernel to give me more bits from flash, and we're running out of those anyway. SOMEONE with good low-level IO knowledge needs to develop a "storage API" for this kind of thing.
- There is almost NO error checking so if the program finds something it's not expecting, it might crap out. For instance, putting any files in the questions/ subdirectory other than the questions files will probably cause a crash
- Memory usage is around 600k. I'd like to get this down some.
- It'd be nice if the categories menu was "collapsable" so you don't have to scroll through 34 categories. I am thinking about combining some of these categories, especially the "miscellaneous" ones.
- I plan on adding IR remote support to a future release. Right now you need to use the knob.

Anyway I haven't even had time to write a README, much less formal documentation. This post serves as the only documentation I have for this release. If anyone tries this out, please let me know (here or via email) about your experiences, any bugs you find, and suggestions for future releases. Please don't bother with cosmetic problems at this point ("certain text scrolls too far off screen", etc.) because I really want to get the major bugs out at this point.

Right now the source code is extremely cluttered so I'm holding off on releasing the source until I can clean it up a lot. For now, I wanted to get it out there and get some suggestions and input on what I should do with it next. I hope to eventually release the source for all to play with.

Anyway, go grab it at http://www.personal.psu.edu/~amc156/emptriv.html
_________________________
- Tony C
my empeg stuff