Thinking about how to develop PalmBoy, Bodo Wenzel tried his good old Atari ST. After successfully porting the necessary tools (PilRC, Pila, and some of PLink) to TOS that way was right for him. The core development was done with STemBoy - just the user interface and support functions had to be done separately. STemBoy means "ST emulates GameBoy."
STemboy is put under the GNU General Public License.
Beginning with V3.2 STemBoy is made running Pure-C in STonX, the ST emulator on X. This version introduced support for color screens and the cursor keys for the direction pad.
After version 3.30 I (Mia Jaap) took over. The first updates were just minor modernisations to the user interface.
Version 3.50 (2026-10-25) was a big step for the emulator: cleaning up self-modifying code, a 2x option to enlarge the display and a throttle to keep the emulator in check when used inside a fast Atari environment. This version also replaced the flicker mode (for mono screens) with dithering.
Version 3.60 (2026-11-05) offers a switch to change between 1x, 2x, 3x and 4x. There's also a toggle to unthrottle emulation. A big new feature are palette files. These files are stored in the palettes folder and contain a general palette (default.pal) and game-specific palettes. The format follows those of GameBoy emulator Gambatte and you can find palette files on the web.
Version 4.0 (2026-11-12) adds sound on the YM2149 and runs faster on mono screens. All options are in one Settings dialog with the tabs Audio/Video, Emulation and Controls. The new Frame skip option draws every picture (0), only every second, third or fourth picture (1 to 3), or leaves it to the emulator (Auto). The buttons are on new keys: A for A, S for B, Return for Start and the right Shift key for Select. The emulator doesn't read any controller simultaneously anymore. Select the controller of your choice in the settings: keyboard, joystick, Jaguar pad.
More changes in 4.0:
There are four different emulations: a pure one (once the core of PalmBoy), one with more runtime checks, one with checks and opcode profiling, and one like the profiling one but with single stepping. Each time you select one of these - even if it's already selected - the emulation will be reset. This is BTW the only method to reset aside from loading a cartridge!
The windows for profiling results and emulation messages are closed by default. They give most advantages when starting the single stepping emulation by "Animate." Their contents are created in any case (if appropriate) so you can speed up the animated single stepping if you close the windows.
You can try small sequences of opcodes. After confirming the entry the emulation is reset and the registers are loaded with special values. This is intended to check the emulation of the Gameboy CPU itself.
To set breakpoints you may define upto ten addresses in the Gameboy ROM space which will be overwritten with the unused opcode 0DBH ("de break"). Reaching one of those points and fetching this byte as opcode the emulation will stop in any mode.