Dennis Nedry
Well-known member
I'm developing a fancy association machine for a little science museum. It displays an image of an anuran (frog or toad) from this region, plays sounds, and has buttons for the names of 14 of them. You press the corresponding button.
I already have all of the hardware done. It is a wooden box with an LCD mounted in it. There are 7 arcade buttons mounted on each side of the screen. The arcade buttons are connected with wires to the circuit board from inside of an AppleDesign keyboard and they each press some particular alphabetic letter. I made sure to avoid weird keys like arrows, function keys, shift, invalid combinations, etc. The daisy chain port of this little circuit board can accept another keyboard + mouse, thanks to the nifty ADB standard. The "keyboard" board and screen are connected to the Umax, and it will all fit nicely in a wall-mounted box that shouldn't jut out more than 8" or so form the wall. I plan to make the system boot, copy everything to a RAM disk, and reboot if necessary from the RAM disk so as to ultimately not be spinning the hard drive.
Separately, I developed the software in RealBasic 3.5 in Classic on my G4, because that's all that I've really used before with this sort of thing. The program hides the menu bar, switches resolution to 640x480 16-bit (I don't want to deal with dead batteries), displays a 16-bit full-screen background image ("thousands of colors"), labels each button up and down the sides of the screen, displays a random picture, plays a sound associated with that picture, and waits for a kid to press a button.
If a wrong button is pressed, a wrong answer sound effect is played and a message displayed on the screen momentarily. If too many wrong answers are pressed in a row, it says "let's try a different one" goes to the next random image. If the correct answer is pressed, the correct answer sound effect is played, a message is displayed momentarily, and then it goes to the next picture. It does not allow the user to press any additional buttons while messages are displayed, or before the next image is displayed, if that's applicable. It does not cache button presses. These are all things to consider as kids will likely mash as many buttons as possible at the same time.
I'm having some problems when I load it onto the Umax. First of all, the sound is choppy after a few seconds. I am using a QuickTime object to play sounds because playing regular system 7 sound files locks up the entire system until the sound is done. QuickTime can multitask so my program can listen for buttons. So that's problem #1.
Problem #2: I have the picture zoom in. The zooming is just as choppy and slow as heck. I had to reduce it to like 4 frames or else you were just sitting there waiting for it to finish zooming before you could answer the question.
My third problem is that I have store all pictures into global picture variables when I first run, because doing it on the fly is yet another huge time expense. This takes a LOOONNNNG time, minutes. I went so far as to put a progress bar on the window so you could tell if it was even doing anything. This is terrible, and would be an embarrassment when it comes time for me to show my work to the staff. I'm trying to convince people that old Macs are perfect for these things, and that would not be good evidence! This particular museum has quite the stash of old Macs, so, well, needless to say, that's quite exciting.
Does anybody have any ideas as to a different programming environment that I could use for this? I think the main problem is the massive overhead of RealBasic. Is there another easy way to achieve the graphics and sound things listed above, with my little Umax C500? Mind you, this is a 180 MHz Power Mac, selected for its physical size. We should be able to do all sorts of cool graphical effects with that kind of machine! We also have loads of 68k Macs. Ideally, I would think that even a Mac LC II could do what I've described here if programmed efficiently.
Using a 68k Mac is not out of the question. If that's the case, we may want to do some stuff with palettes to get a little better image quality if we're limited to 256 colors. I would gladly put one of my LCII or LCIII Macs in there. It would use less power and wouldn't stick out as far from the wall.
If anybody has any suggestions, please comment. If programming a quick dirty example that I could modify would give you a good reason to pull out an old Mac, and make something on an old Mac that will still be used - for real, well then go for it! I'd be very appreciative.
Here are some pictures:
http://www.facebook.com/media/set/?set=a.10100829702880710.3234927.13963959&l=2d2abb0432
I already have all of the hardware done. It is a wooden box with an LCD mounted in it. There are 7 arcade buttons mounted on each side of the screen. The arcade buttons are connected with wires to the circuit board from inside of an AppleDesign keyboard and they each press some particular alphabetic letter. I made sure to avoid weird keys like arrows, function keys, shift, invalid combinations, etc. The daisy chain port of this little circuit board can accept another keyboard + mouse, thanks to the nifty ADB standard. The "keyboard" board and screen are connected to the Umax, and it will all fit nicely in a wall-mounted box that shouldn't jut out more than 8" or so form the wall. I plan to make the system boot, copy everything to a RAM disk, and reboot if necessary from the RAM disk so as to ultimately not be spinning the hard drive.
Separately, I developed the software in RealBasic 3.5 in Classic on my G4, because that's all that I've really used before with this sort of thing. The program hides the menu bar, switches resolution to 640x480 16-bit (I don't want to deal with dead batteries), displays a 16-bit full-screen background image ("thousands of colors"), labels each button up and down the sides of the screen, displays a random picture, plays a sound associated with that picture, and waits for a kid to press a button.
If a wrong button is pressed, a wrong answer sound effect is played and a message displayed on the screen momentarily. If too many wrong answers are pressed in a row, it says "let's try a different one" goes to the next random image. If the correct answer is pressed, the correct answer sound effect is played, a message is displayed momentarily, and then it goes to the next picture. It does not allow the user to press any additional buttons while messages are displayed, or before the next image is displayed, if that's applicable. It does not cache button presses. These are all things to consider as kids will likely mash as many buttons as possible at the same time.
I'm having some problems when I load it onto the Umax. First of all, the sound is choppy after a few seconds. I am using a QuickTime object to play sounds because playing regular system 7 sound files locks up the entire system until the sound is done. QuickTime can multitask so my program can listen for buttons. So that's problem #1.
Problem #2: I have the picture zoom in. The zooming is just as choppy and slow as heck. I had to reduce it to like 4 frames or else you were just sitting there waiting for it to finish zooming before you could answer the question.
My third problem is that I have store all pictures into global picture variables when I first run, because doing it on the fly is yet another huge time expense. This takes a LOOONNNNG time, minutes. I went so far as to put a progress bar on the window so you could tell if it was even doing anything. This is terrible, and would be an embarrassment when it comes time for me to show my work to the staff. I'm trying to convince people that old Macs are perfect for these things, and that would not be good evidence! This particular museum has quite the stash of old Macs, so, well, needless to say, that's quite exciting.
Does anybody have any ideas as to a different programming environment that I could use for this? I think the main problem is the massive overhead of RealBasic. Is there another easy way to achieve the graphics and sound things listed above, with my little Umax C500? Mind you, this is a 180 MHz Power Mac, selected for its physical size. We should be able to do all sorts of cool graphical effects with that kind of machine! We also have loads of 68k Macs. Ideally, I would think that even a Mac LC II could do what I've described here if programmed efficiently.
Using a 68k Mac is not out of the question. If that's the case, we may want to do some stuff with palettes to get a little better image quality if we're limited to 256 colors. I would gladly put one of my LCII or LCIII Macs in there. It would use less power and wouldn't stick out as far from the wall.
If anybody has any suggestions, please comment. If programming a quick dirty example that I could modify would give you a good reason to pull out an old Mac, and make something on an old Mac that will still be used - for real, well then go for it! I'd be very appreciative.
Here are some pictures:
http://www.facebook.com/media/set/?set=a.10100829702880710.3234927.13963959&l=2d2abb0432