Arduino
- Verdict: No
- CPU: 8-bit ATmega328P @ 16MHz
- RAM: 2KiB SRAM, 1KiB EEPROM
- ROM: Same as HDD
- HDD: 32KiB
- NET: Serial
- HID: None
It may be possible to cram a Hello Squirrels in the flash ROM and boot it, but the severe lack of memory will definitely hurt. Targets such as this would require a specially designed compiler that generates the tiniest code possible.
Nintendo 64
- Verdict: All
- CPU: 64-bit MIPS @ 93.75MHz
- RAM: 4MiB, 8MiB w/ Expansion Pak
- ROM: 64MiB
- HDD: SD/CF (64Drive), 0-4x32KiB (Controller Pak)
- NET: USB (64Drive), Parallel (GameShark)
- HID: Joystick, Mouse
This console has enough power, RAM, and speed to reliably run virtually all SquirrelJME programs. The only main consideration is lack of input. There is a mouse peripheral, but in most cases only the joystick would be used.
The 64Drive provides access to the USB interface (as a serial device) and the storage card.
Nintendo Entertainment System
- Verdict: Hello Squirrel (NROM), Simple Programs (MMC5)
- CPU: 8-bit 6502 @ 1.78MHz (NTSC), 1.66MHz (PAL)
- RAM: 2KiB internal, 64KiB & 8KiB (MMC5)
- ROM: 512KiB (PowerPak), 1024KiB (MMC5)
- HDD: 32KiB (PowerPak)
- NET: None
- HID: Joystick
Note that the PowerPak does not support MMC5. It is not known if NES games can be given access to the PowerPak CF block device.
Slow but there should be enough memory to run basic programs, although special mappers could provide much more via special hardware support. The 8-bit CPU would be quite a bottleneck. More advanced programs could run, but the only viable run that would really run is a "Hello Squirrels" type application.
Nintendo Game Boy
- Verdict: Hello Squirrel
- CPU: 8-bit LR35902 (8080, Z80) @ 4.19MHz
- RAM: 8KiB internal, 32KiB w/ cart
- ROM: 976KiB (8Mb)
- HDD: Unknown
- NET: Serial
- HID: Joystick
Likely, it could only run very basic programs such as _"Hello Squirrel"_s. The main factor is lack of RAM, having almost 1MiB of ROM should be good enough. The 8-bit CPU will create very slow integer and even slower floating point arithmetic. If a cart can provide an actual 32KiB of memory, that would not do much since the run-time inforation and linkage tables would have to be in memory. However, since there would only be less than 65KiB of RAM, that means that all pointers can truly be 16-bit.
Sega Dreamcast
- Verdict: All
- CPU: 32-bit SH4 @ 200MHz
- RAM: 16MiB
- ROM: ~750MiB
- HDD: SD (Adapter), 0-8xVMU (100KiB)
- NET: Modem, Ethernet
- HID: Joystick, Keyboard, Mouse
Supports homebrew very easily and has essentially all of the peripherals needed to be an actual useable computer. The only consideration would be the lack of storage. Other than that, the VMU could store a bunch of basic files as needed.
The ethernet adapter is rare.
The modem will require a PPP client to connect to networks.
Sega Virtual Memory Unit:
- Verdict: No
- CPU: 8-bit LC86000
- RAM: 256B
- ROM: Same as HDD
- HDD: 100KiB user, 10KiB unused
- NET: Direct Connection
- HID: Buttons
The 256 bytes of RAM is the main stopping point for running code reliably. So the alternative would be a kind of emulated system which uses the flash storage area as main memory instead. One issue with this however is that it would very much wear down the flash on these old devices. Two VMUs connected to each other however would mean a dual CPU system with double the memory and flash storage. However even then, 512B is not much memory at all.
US Robotics Pilot 1000, Pilot 5000
- Verdict: Most
- CPU: 32-bit m68k @ 16MHz
- RAM: 128KiB (Pilot 1000), 512KiB (Pilot 5000)
- ROM: Same as RAM
- HDD: Same as RAM
- NET: Serial
- HID: Buttons, Touchscreen
Most programs should be able to be ran at a decent speed.
One consideration is that the more stuff in storage, the less RAM that is available for programs for usage. As such, SquirrelJME will require that free space exists in storage so it may be allocated for program usage.