Release Cannonball - The Enhanced C++ Outrun Engine


Amazing :)

But why not do another PND for the editor ?
I can, but that mean I have to automount / unmount Cannonball PND for that (and check version is the good one?), because the "try track" feature use cannonball (and of course, it use the roms also).

Yeah !!!

Did you send the shots to the developer ?
Not yet, just a little message on his blog. I have a diff to send him (for the qt4 adaptation) and the 2 ui files (plus some sources changes) for the small screen.
 
I'm trying to compile on a Linux PC, but i'm stuck there, don't know what to do :/.

### Non-IDE (e.g. straight GCC)
    
    cmake -G "Insert Generator Name Here" ../cmake
    make

 
 
Compile Layout ?

type

qmake
make


Compile Cannonball

edit cmake/CMakeFile.txt and change default.cmake to debian.cmake (or edit debian.cmake if path are not correct).

then type

ccmake .

choose your option interactively

and than type "c" and if no error "g" to generate Makefiles. ("q" to quit)

than

Code:
make
 
LayOut:


2$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt/mkspecs/linux-g++ -I. -I/usr/lib64/qt/include/QtCore -I/usr/lib64/qt/include/QtGui -I/usr/lib64/qt/include -Ic:/coding/qt/lastwave/LayOut -I. -I. -o main.o main.cpp
In file included from globals.hpp:4:0,
from leveldata.hpp:28,
from mainwindow.h:14,
from main.cpp:10:
stdint.hpp:20:16: erreur: conflicting declaration ‘typedef qint64 int64_t’
typedef qint64 int64_t;
^
In file included from /usr/include/stdlib.h:314:0,
from /usr/include/c++/4.8.2/cstdlib:72,
from /usr/include/c++/4.8.2/bits/stl_algo.h:59,
from /usr/include/c++/4.8.2/algorithm:62,
from /usr/lib64/qt/include/QtCore/qglobal.h:68,
from /usr/lib64/qt/include/QtCore/qnamespace.h:45,
from /usr/lib64/qt/include/QtCore/qobjectdefs.h:45,
from /usr/lib64/qt/include/QtGui/qwindowdefs.h:45,
from /usr/lib64/qt/include/QtGui/qwidget.h:46,
from /usr/lib64/qt/include/QtGui/qmainwindow.h:45,
from /usr/lib64/qt/include/QtGui/QMainWindow:1,
from mainwindow.h:12,
from main.cpp:10:
/usr/include/sys/types.h:197:1: erreur: ‘int64_t’ has a previous declaration as ‘typedef long int int64_t’
__intN_t (64, __DI__);
^
make: *** [main.o] Erreur 1

I'll try CB, thx.
 
And CB. I think it's not the first time i try on PC :/

Code:
$ make
Scanning dependencies of target cannonball
[  2%] Building CXX object CMakeFiles/cannonball.dir/home/me/cannonball-master/src/main/main.cpp.o
[  4%] Building CXX object CMakeFiles/cannonball.dir/home/me/cannonball-master/src/main/romloader.cpp.o
[  6%] Building CXX object CMakeFiles/cannonball.dir/home/me/cannonball-master/src/main/trackloader.cpp.o
/home/me/cannonball-master/src/main/trackloader.cpp: In member function ‘void TrackLoader::init_layout_tracks(bool)’:
/home/me/cannonball-master/src/main/trackloader.cpp:175:73: erreur: call of overloaded ‘read8(long unsigned int)’ is ambiguous
     display_start_line = layout->read8(LayOut::HEADER + sizeof(uint32_t));
                                                                         ^
/home/me/cannonball-master/src/main/trackloader.cpp:175:73: note: candidates are:
In file included from /home/me/cannonball-master/src/main/roms.hpp:10:0,
                 from /home/me/cannonball-master/src/main/trackloader.cpp:17:
/home/me/cannonball-master/src/main/romloader.hpp:49:20: note: uint8_t RomLoader::read8(uint32_t*) <near match>
     inline uint8_t read8(uint32_t* addr)
                    ^
/home/me/cannonball-master/src/main/romloader.hpp:49:20: note:   no known conversion for argument 1 from ‘long unsigned int’ to ‘uint32_t* {aka unsigned int*}’
/home/me/cannonball-master/src/main/romloader.hpp:64:20: note: uint8_t RomLoader::read8(uint32_t)
     inline uint8_t read8(uint32_t addr)
                    ^
/home/me/cannonball-master/src/main/romloader.hpp:81:20: note: uint8_t RomLoader::read8(uint16_t*) <near match>
     inline uint8_t read8(uint16_t* addr)
                    ^
/home/me/cannonball-master/src/main/romloader.hpp:81:20: note:   no known conversion for argument 1 from ‘long unsigned int’ to ‘uint16_t* {aka short unsigned int*}’
/home/me/cannonball-master/src/main/romloader.hpp:91:20: note: uint8_t RomLoader::read8(uint16_t)
     inline uint8_t read8(uint16_t addr)
                    ^
make[2]: *** [CMakeFiles/cannonball.dir/home/me/cannonball-master/src/main/trackloader.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/cannonball.dir/all] Erreur 2
make: *** [all] Erreur
 
Last edited by a moderator:
This look like 64bits conflict with "int" definition.  I'm not an expert of thoses things... can't a "-m32" or something like that helpfull?
 
I'm on a multilib system, some compilation sometimes fails because of that.

How do i use that "-m32" ?
 
New release(s) on the repo.

Cannonball  has been update (adding custom track and autoframeskip), and LayOut in also available as a separate PND.

LayOut

==========

0.1.0.01

----------

  • This is the track editor for Cannonball
  • Version of LayOut is in fact 0.11 (despite PND version number)
  • All UI downsized to fit Pandora Screen
  • This PND is not Standalone and needs Cannonball PND (correctly popultated with ROMS) to works.
 

Cannonball

==========

0.2.0.18

----------

  • Custom track can be played (separate menu, no C4A while playing custom track)
  • Use LayOut to create / edit custom track (separate PND)
  • AutoFrameSkip, so no more stutering even if selected res/hires/fps puts to much pressure on the Pandora.

Also, thanks to the author of Cannonball and LayOut, the Pandora is mentionned in his blog here: http://reassembler.blogspot.fr/2013/12/layout-open-pandora-port.html
 
Last edited by a moderator:
Doesn't run on Slack:

./cannonball: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./cannonball)
 

strings /usr/lib/libstdc++.so.6 | grep LIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19

Can i fix that on my side ?

The /etc/slackware-version bash test is no longer needed as the pnd works as is...

Also, the pnd_run reports:

./cannonball.sh: line 140: [: too many arguments

Finally, some preview*.png permissions are different ^^.
 
Last edited by a moderator:
Ok. I compiled with gcc 4.9.0, so you are ussing gcc 4.7.2 IIRC for slak, so that make sense :) .

Also, the error line 140 i'm aware of, it's the test for ROM file presence that is very crapy (but it works if no roms are present). I'll try redo it one day.

I'll do a fixed PND for slack soon ;)
 
Stability ?

The new build works pretty well on 600MHz units, even with high-res.
 
New version, fixing (I hope) compatibility with Slackware.

0.2.0.19

  • This version should be compatible with Slackware
 
Back
Top