32blit: retro-inspired handheld with open-source firmware
Learn to create your own platformer, side-scroller, racer... whatever! The modern handheld designed for homebrew hacking.
This project will only be funded if it reaches its goal by Sun, June 30 2019 10:59 PM UTC +00:00.
The 32blit team grew up in the days when booting up your computer meant being greeted with the blinking cursor of an interpreter; it was a time when you could immediately start experimenting with drawing graphics on screen, making sounds, and processing input.
Then the dark times came and suddenly everything was janky and complicated. Layers of abstraction hid away the hardware and you needed pages of boilerplate code, libraries, and drivers to get anything done at all.
The magic was lost.
Fancy a (home)brew?
32blit takes you back, way back, to the start, providing a single hardware platform with a great set of game creation tools and software to play with. Everything is set up and ready to go out of the box.
And, what's more, it's designed and manufactured by us in Sheffield, UK.
Your 32blit experience will include:
- An awesome handheld console
- Twenty-four game programming tutorials
- Full graphics/game programming library (C++ and Lua)
- Heaps of free assets (sprites, music, sound effects) designed specifically for 32blit
- Sprite, map, sound effect, and music editing tools
- Discord community to get help, share ideas, and show off your creations
We've added stacks of extra information below so grab a cup of tea, relax, and take it all in!
32blit is a homebrew handheld console that can be programmed in C++ or Lua.
It’s based on some pretty nifty hardware!
- STM32H750 Cortex-M7 processor (400MHz, 1MB SRAM, hardware floating-point)
- 32MB flash via QSPI interface which supports XiP (execute-in-place)
- 3.5" 320x240 16-bit IPS TFT display
- 0.5W speaker with mono audio power amplifier
- Analog joystick, D-pad, four action buttons, and two system buttons
- MSA301 triaxial low-G accelerometer
- micro-B USB port for programming and charging
- 1200mAh rechargeable battery (good for 4+ hours of play!)
At 150mm x 65mm and weighing ~250 grams it's also super-portable and will easily slip into your bag or pocket!
Learn how to code games!
As part of your pledge reward, we’re including twenty-four tutorials which will introduce you to everything you need to know about 32blit and game coding. It's a step-by-step journey from the basics all the way to finishing your first game.
If you’re completely new to this, you can stick to the basic tutorials and then catch up on the more advanced guides later on. If you’re already a bit of a programming legend, you can jump straight in at the deeper end.
We’ll hold a monthly live-stream on Twitch where you can ask questions, and we’ll take you through the tutorial for that month and add a little more context. These live-streams will be available to watch afterwards, so don't worry if you can't make the date!
We have created and commissioned a pile of great assets for you to get started with. You can use them in your games or just as placeholders until you've nailed your own style.
- 2,000+ colourful, 8x8 sprites: scenery, characters (with animations), objects, icons, caves, and buildings
- 100+ sound effects: jumps, footsteps, attacks, spells, impacts, and creature noises
- 10+ music tracks: to add ambience to your creation
The assets cover a mix of genres and styles so you're sure to find something that fits your project.
Tools, glorious tools
One of the main challenges when creating a new game is creating the various assets you need to bring it to life. Our web-based tools are specifically designed around the 32blit capabilities and software library, allowing you to create new sprites, sound effects, maps, or music quickly, and to import them directly into your project.
- Sprite editor: draw sprites, test and tweak animations, manage your colour palette, and apply transparency effects with powerful editing tools.
- Map editor: create multi-layered maps that can be used in many different types of game. Add per-tile flags and trigger regions that can be used to trigger events/behaviours in your code.
- SFX editor: edit waveforms to create all of those essential bleeps and bloops.
- Music editor: put together awesome chip-tunes to provide the right feel for your games.
The 32blit tools will prepare everything ready for you to drop straight into your project.
We have a selection of great additions to make to your 32blit depending on how well the campaign goes. Check below for the current status!
32blit is open!
All of 32blit's software, libraries, and firmware will be released under the MIT license and will be available for you to fork from GitHub.
We can’t wait to see what you manage to get running on 32blit in the future; our contribution is only the start.
32blit behaves itself!
Modern life is rubbish. How often have you turned on your computer or tried to play a movie only to be told that you’ll have to wait while updates are installed or that the disc isn’t valid in your region?
32blit will hold no truck with such shenanigans.
- DRM-free and region-lock free
- Open media & game formats
- Respect for your privacy (no telemetry/phoning home)
- Install updates on your own schedule
- You have complete control over the hardware
In fact, 32blit will never do anything that you don’t ask it. It’s jolly well-behaved like that.
32blit is a complex product, with a mix of software, electrical, and mechanical design that all needs to work together perfectly. Designing and testing 32blit has been a ten-month journey so far:
Initially, we focussed on proving that our choice of microcontroller (the STM32H750) was powerful enough to achieve what we wanted. We spent a couple months testing on a breadboard-based prototype that let us work out that the pixel fill rate, maths functions, game engine, and audio would all perform well.
We then designed an initial test PCB, the intention being to bring together all of the fundamental parts that make up 32blit and to test them together in a more robust format.
Based on the results of the test PCB, we made final decisions on which parts would make it into the production version of 32blit. Then we spun up a pre-production PCB that included all of the support circuitry, such as battery charging, extra debugging features, and connectors for our final choices of screen, speaker, and battery.
The pre-production PCB was sized to fit our final case design, and we ordered high-quality 3D prints of the case parts so that we could test the mechanical fit of the product.
The last few tweaks involved customising the FPC cable of the screen to fit our needs better, adding the required crystal for DFU programming (allowing programming directly over USB), and adding an ST-Link v2 compatible debug header for users who want to get their hands dirty.
Important Beta Backer notes!
The following information only applies to backers of the "Beta Backer" tier.
It's really important you know what you're letting yourself in for. :-)
Our Beta tier is designed for people who want to have an early poke around at the hardware. This is pre-production hardware and while we don't expect any changes/incompatibility compared to the final production units it's possible there will be.
Beta testers will be invited to a private Discord channel where they can talk to us, make feature requests, ask for help, and support each other.
Beta testers who provide valuable input will be listed in a credits file in the main 32blit code repository alongside a brief summary of their input.
Please read the information below carefully before considering being a Beta backer!
Things you will not receive as a Beta tester:
- Retail packaging
- Production-quality case
- LiPo battery (though you can install your own if you wish)
Please note: we will provide an upgrade path to the final retail unit for you in the future, and some costs may apply if you wish to take that option.
Other important things to consider:
- Your unit will come in kit form for you to assemble (we'll provide a video guide for this)
- You may need to jump through a few hoops to get the software up and running
- Documentation will be incomplete and change without warning
- You'll have a much better time if you have experience developing in C/C++ or Lua
- Ideally, you'll have some basic test equipment to hand (oscilloscope, logic analyser, etc)
- We may ask you to test certain features and feedback to us
Risks and challenges
While we already have functional hardware it is possible that Beta testing may raise some issues that require changes to be made - this could extend the timeline for delivery of finished units.
Parts of 32blit are injection moulded which requires the creation of an (expensive) tool. This is the longest lead-time item on our production schedule. The design and production of this tool can only be completed once every other aspect of the hardware is finalised.Learn about accountability on Kickstarter
- All gone!