Tuesday, November 11, 2014

CannonBall 0.3 - Widescreen Tilemaps & Freeplay

This is a version of CannonBall I meant to release a while ago, but moving house and family commitments ended up causing me to sit on it for a while. I suspect there may be some new bugs as there was a gap between coding and release, so please report anything found.

I also spoke with Colin who is going to carry on with CannonBoard work soon. Behind the scenes a lot is done and ready to go from a software point of view.

- Widescreen tilemap support for music selection screen.

- Widescreen support for map screen. The sea on the left now extends further.

- Freeplay Mode (enabled in config.xml for now)

- Optional Timing Fixes (enabled in config.xml for now)


Also of note is the following project, which is a port of CannonBall to Android phones, tablets and other devices. There are some bugs and suggestions I have for the author, but overall it runs nicely!

You will need to enable the installation of APK files from unknown sources in the Settings -> Security section of your device to use it.

The author has kindly released the source code, which is available here.

Cabinet Restoration

One benefit of moving is that I finally have space for my OutRun cabinet. It needs a lot of restoration work, so I will be devoting a lot of free time to this project in the coming months as well as supporting Colin with his CannonBoard work. I'll post some pictures once I get going.


barito said...

Great to read some news on this awesome project of yours Chris!

Tipus4u said...

Nice updates and the news on the Android version.
Great to hear some new news.
Can't wait to hear more on the CannonBoard as I think it would be a possible replacement for my OR arcade board.

yt said...

Thanks chaps, as I've recently learnt; moving house, working, and new babies can take up a lot of spare time! Colin has also been pretty busy too. :-)

I'm looking forward to switching to the cabinet restoration shortly and supporting Colin with anything he needs.

Then, will probably switch back to further software development.

Unknown said...

I tried it out on my android mk808b tv box and it worked perfectly. Thank you for a great android port. Can the onscreen controls be turned off so i can get fullscreen on my tv when i use my controller. Thanks again....

yt said...

That's great to hear, but the Android port is not maintained by me (despite being based on the CannonBall code).

You'd have to find a way of contacting Tim Leader who is the port author. I haven't spoken to him directly myself :-)

Taggsta said...

Hey Roby, you will need to find on your Android device where Cannonball has installed the configuration.xml file.
Find this file by linking your device to the PC using explorer . Open the configuration.xml file in notepad.
You will need to turn off the controls overlay in there. 0 = off 1 = On from memory.

Unknown said...

Thanks taggsta..

Nevat said...

Hi, some compilation errors running make

[ 6s] [ 26%] Building CXX object CMakeFiles/cannonball.dir/src/main/hwvideo/hwtiles.cpp.o
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp: In member function 'void hwtiles::init(uint8_t*, bool)':
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp:111:68: error: 'memcpy' was not declared in this scope
[ 6s] memcpy(tiles_backup, tiles, TILES_LENGTH * sizeof(uint32_t));
[ 6s] ^
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp: In member function 'void hwtiles::patch_tiles(RomLoader*)':
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp:131:64: error: 'memcpy' was not declared in this scope
[ 6s] memcpy(tiles_backup, tiles, TILES_LENGTH * sizeof(uint32_t));
[ 6s] ^
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp: In member function 'void hwtiles::restore_tiles()':
[ 6s] /home/abuild/rpmbuild/BUILD/cannonball-0.3/src/main/hwvideo/hwtiles.cpp:149:64: error: 'memcpy' was not declared in this scope
[ 6s] memcpy(tiles, tiles_backup, TILES_LENGTH * sizeof(uint32_t));
[ 6s] ^
[ 6s] CMakeFiles/cannonball.dir/build.make:330: recipe for target 'CMakeFiles/cannonball.dir/src/main/hwvideo/hwtiles.cpp.o' failed
[ 6s] make[2]: *** [CMakeFiles/cannonball.dir/src/main/hwvideo/hwtiles.cpp.o] Error 1
[ 6s] CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/cannonball.dir/all' failed
[ 6s] make[1]: *** [CMakeFiles/cannonball.dir/all] Error 2
[ 6s] Makefile:76: recipe for target 'all' failed

Jay Aldred said...

im getting the same compile errors as Nevat under kubuntu 14.10.

Any ideas?


yt said...

Looks like the compiler can't find memcpy.

Have you tried a simple
#include cstring // Needs angled brackets can't post in this comment

at the start of the hwtiles.cpp file?