Saturday, September 13, 2014

"I love playing. The keyboard is my journal."

Well, now we can join Pharrell Williams and play the Bitbox with an USB Keyboard since commit 3a983ff

The USB code can now read USB keyboard and produce events, and a small function has been added to emulate the gamepad with a keyboard, so to get basic keyboard support you need to add one line in games. Or just check for the events yourself.

Keyboard can be read from an application by using the event_get() function , which returns a (possibly empty) event, check for e.type = evt_keyboard_press or evt_keyboard_release events, and then get the modifiers (Control, Shift...) state in e.kbd.mod and the keyboard code e.kbd.key bytes.

The code themselves are position-dependent, not letter-dependant (by example on a QWERTY keyboard the Q letter has the same code than the AZERTY 'A' letter, thanks to the USB norm for that), so if you want to type some text, use the appropriate translating tables. (there are two key maps available on the kernel for now, QWERTY and AZERTY).

All key codes ("Usages") can be found on the HID Usage Tables, Usage Page 7.

All of it is defined in the bitbox.h file.

The bootloader 2 has been upgraded with it, by additionally displaying the last key pressed or released on screen. Also, the examples now include keyboard usage.

Sunday, August 17, 2014

developing for bitbox under windows

Even if I'm personally working under linux, it is quite possible to develop for bitbox under windows.

The following article / page is a reference for it, and will be updated accordingly. Also, if there is any part missing, please tell it !

A very thorough reference can be found by example there : http://www.jann.cc/2013/10/10/embedded_development_with_open_source_tools_on_windows.html#install-the-gcc-arm-embedded-toolchain

Most of the current guide is taken from there.

It targets development on a cortex-m4 chip so it's quite similar and adds a ton of optional software which can be very useful. The proposed method is quite barebones (or light), because, well I tend to prefer lighter solutions, but integration with eclipse could be done I'm sure.

Alternatively, DIYDSP has an page with instructions to setup a linux virtual machine suitable for stm32 development, as well as various other tips.

Wednesday, July 30, 2014

Bitboy gameboy emulator ported on rev2 hw

Hi, just to tell you that the Bitboy gameboy emulator - based on gnuboy - has been ported on the rev2 bitbox ! Download available through the bitboy github page


Works with USB gamepads and can be loaded by the bootloader of course, sound works OK with the emulator and the real thing.

Monday, July 21, 2014

Bitbox Mod player !

A MOD file (tracker files for those remembering them) player is available and can be used for streaming mods from the SD card (with minimal impact on RAM & Flash)

Of course it is integrated to the bitbox kernel (latest one), so that games will be able to make use of it ; it can be loaded with the bootloader - and the bootloader is available when you press reset+userbutton.

See the video for the demo hereafter (sound has been taken by my phone from the speakers so it's better in reality)


Thursday, July 17, 2014

Demo of the bootloader

Just a simple demo of the current bitbox bootloader, selecting a flash image with VGA and the game controller, and running the simple engine demo available on github.



Wednesday, June 4, 2014

rev2 Bitboxes available ! (how to get your gamepad supported)

I dunno if you've seen it, but the Bitbox is now available to buy (look at "get Bitbox" on the blog top banner).

Since people have already ordered a Bitbox, they will need their USB game pad to work. Here is how your device can be supported on the Bitbox. As I cannot buy every gamepad on earth, I will rely on you to provide information to me so that I can add the various gamepads to the firmware.

The process is the following :
  • you open a ticket case on the github account, stating a "nice to have" support for joystick XYZ
  • you include your model name, VID, PID and USB report descriptor attachments. To get them under linux, you can use the following method:  http://www.slashdev.ca/2010/05/08/get-usb-report-descriptor-with-linux/ please leave a comment if you would like a windows tutorial.
  • I add the right values in the firmware to be able to support it
  • You test it with your gamepad (using the kernel test application by example) and report if it is ok.
  • I can close the ticket !
Please comment here or on the mailing list if you have any trouble !

Tuesday, May 27, 2014

Playing TitanFall and Super Mario 3D World on the bitbox


 Well, playing a video of Titanfall on a Bitbox, of course playing a demanding PC / nextgen console videogame is out of reach :) But OK, then, can we have video on the bitbox ?

Full motion video on a very small hardware like the bitbox poses some interesting optimization issues and challenges. That's the kind of challenges you're faced with when you've got a few k on RAM - too few to store the image you're showing entirely- and 180MHz to generate the content and synthetise you VGA signal by software ...

Can we made nice cinematic cutscenes for the game, i.e. full motion video on the bitbox ? Can we make it 4K 3D video ? Well, no (What did you think ? 1080p50 with an Arduino ?)

But ... how far can we go ?