Jump to content


Photo

Guitarsonfire


  • Please log in to reply
27 replies to this topic

#1 Daid

Daid

    GP32 Hardcore

  • GP32 Hardcore
  • PipPipPipPip
  • 266 posts
  • Location:Netherlands

Posted 11 January 2010 - 04:18 PM

Hello,

I'm pretty sure I've seen the request somewhere. So here I am.

I own a GP2X and have followed the development of the Pandora for a 'while' now. And now it finally looks that it will ship in less then 2 months. So time to get some software plans ready.

For the last half year or so I have been developing a GuitarHero clone for the Wii, called GuitarsOnFire. And I think this will make a nice port to the Pandora. For those not familiar with it, information can be found here: http://wiibrew.org/wiki/GuitarsOnFire

Why would this make a nice port?
Well, the code is pretty clean C/C++ code, with very few dependencies. The code is for 90% platform independent, and all platform specific functions have separated from the rest. The code already builds and runs for Windows, Linux and the Wii. The Wii has less power then the Pandora, so it will run for sure.
And of course the game itself is also awesome ;) (But that might just be my opinion)

Other alternatives for open source GuitarHero games are FretsOnFire and GuitarFun. FretsOnFire is very good, but it depends on python and a whole load of libraries. Making a porting effort quite hard. (And for the Wii almost impossible)
GuitarFun is a POS, it was made for the PSP or something, and has some nasty bugs. Don't even think about it, you'll just hurt yourself. It's what made me make GuitarsOnFire.

What needs to be done
The porting effort will consist out of a few things:
  • Using most of the 'PC' code for the Pandora, effortless, as the PC version is build to run on windows with mingw, and compiled fine on linux some time back. Effort here is minimal.
  • Reimplementing "video_pc.cpp" for the Pandora, this makes use of OpenGL in the PC version. And thus has to be redone with OpenGL ES. This will require quite some effort, zero experience with OpenGL ES. And from what I understand it's quite different from OpenGL
  • Reimplementing "input_pc.cpp" for the Pandora, this contains all the functions to read controllers. The PC version maps this to keyboard keys for testing. But the Pandora has a unique set of gaming controls. And not to forget, bluetooth, which could be used to hook up a Wii guitar. Shouldn't be too hard, once we figure out what works best. Bluetooth might be some work, but that's just extra.
  • Testing... kind of a issue for me.

Now, I can do most of this myself. But I don't own any Pandora myself. So I cannot test it. Which is a shame, but that's how it is.
So I'm looking for:
  • Ideas, tips, hints. What do you think will work as controller settings? What features would you like to see? Any other brilliant ideas?
  • Best case, a developer willing to help me. Just with full repository access, you get to do what developers do best. Make stuff. Because porting effort will be minimal, the code can remain in the same repository. I just need someone to spend a bit time on it and make a good release. Of course with my assistance where needed. And this person will be free to do extra features and just about everything he wants. But could also stick to just a port and new versions when they are ready.
  • Worst case, a tester willing to help me. I can manage to compile and package a application, but this will take more time. Especially in the beginning where I need to get a first version working.


#2 CC_machine

CC_machine

    GP Mania

  • GP32 Hardcore
  • PipPipPipPipPip
  • 311 posts

Posted 11 January 2010 - 05:16 PM

I'm an interested dev and could help a fair bit I imagine (C++, done a bit of work with SDL, and playing with VB, Java, JavaScript, nothing really serious to be honest), I don't have a testing unit though. My Pandora is coming from the second batch, so that'll probably take a while to get here.

However, some thoughts:
  • How would the controls work?
  • Are you using OpenGL ES or OpenGL?
  • Does Guirarsonfire have GH1,2,3/RB etc etc import capability? (I realise this isn't a priority, but it's nice nonetheless)


#3 JayFoxRox

JayFoxRox

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 684 posts
  • Gender:Male
  • Location:Hanover, Germany

Posted 11 January 2010 - 05:45 PM

It looks kinda complete already, I could possibly help porting, work on graphics for the background like in the original guitar hero or some other things.

#4 Derek

Derek

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 184 posts
  • Gender:Male

Posted 11 January 2010 - 09:08 PM

SNIP The Wii has less power then the Pandora, so it will run for sure.
SNIP

Are you serious? The Pandora is quite a bit less powerful then the Wii. I believe that this will work for the Pandora, but I just don't think the Pandora has the same amount of computing power the Wii has.

#5 Daid

Daid

    GP32 Hardcore

  • GP32 Hardcore
  • PipPipPipPip
  • 266 posts
  • Location:Netherlands

Posted 12 January 2010 - 10:42 AM

I'm an interested dev and could help a fair bit I imagine (C++, done a bit of work with SDL, and playing with VB, Java, JavaScript, nothing really serious to be honest), I don't have a testing unit though. My Pandora is coming from the second batch, so that'll probably take a while to get here.

However, some thoughts:

  • How would the controls work?
  • Are you using OpenGL ES or OpenGL?
  • Does Guirarsonfire have GH1,2,3/RB etc etc import capability? (I realise this isn't a priority, but it's nice nonetheless)

Best way to get serious is by getting your hands dirty ;) Just try to compile the PC version for starters, which might be quite a feat already.

"How do the controls work" - Good question. On my laptop I use F1-F5 as 'fret' keys, and up/down keys to strum. And I got scary good with it because of all the testing I do. But for the Pandora this needs some thought, one of the reasons why I made this topic. Maybe it would work to tilt the pandora sideways, strum with the DPad and use a few letter keys as frets...
"Are you using OpenGL ES or OpenGL?" - PC port uses OpenGL. On the Wii there is something called GX (which works a bit like OpenGL) but all of it is abstracted by a few simple functions. With a bit of luck, only this: http://pastebin.com/m32b8f1aa needs to be ported to OpenGL ES.
It doesn't do any importing. But I think there are converters to FretsOnFire for those songs already. And I just use FretsOnFire compatible songs ;)

It looks kinda complete already, I could possibly help porting, work on graphics for the background like in the original guitar hero or some other things.

Graphics work would be awesome. I'm not a great artist. I ripped gfx where I was legally allowed, and made my own where needed, but it still looks kinda dull I think.


SNIP The Wii has less power then the Pandora, so it will run for sure.
SNIP

Are you serious? The Pandora is quite a bit less powerful then the Wii. I believe that this will work for the Pandora, but I just don't think the Pandora has the same amount of computing power the Wii has.

Not want to ruin this topic with this discussion. So, ok. Fine.

Edited by Daid, 12 January 2010 - 10:44 AM.


#6 Aimless_E

Aimless_E

    GP Mania

  • GP32 Hardcore
  • PipPipPipPipPip
  • 461 posts

Posted 12 January 2010 - 01:59 PM



SNIP The Wii has less power then the Pandora, so it will run for sure.
SNIP

Are you serious? The Pandora is quite a bit less powerful then the Wii. I believe that this will work for the Pandora, but I just don't think the Pandora has the same amount of computing power the Wii has.

Not want to ruin this topic with this discussion. So, ok. Fine.


I think Daid wasn't referring to the hardware specs of both systems, but rather to the genius of the Pandora's design and the inherit power of an open system that allows for both commercial and non-commercial endeavors.

Best of luck with the port and I hope that you or whomever adds bluetooth guitar support.
Oh and if you plan on putting it in the papp store you might want to look into fair use music or try to contact ColdStorage to arrange a "Free" mix or two to distribute with the title.

#7 conso

conso

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 732 posts

Posted 12 January 2010 - 03:59 PM

wow, I'm amazed! All of my family and friends love playing guitar-hero and rockband. We used to play a lot of fretsonfire, but for some reason it got very sluggish on our family-pc a while back. Still have a lot of selfmade songs for it that I'd love to play with friends again.
We have 3 guitars (2gh3 1rb1), 3 mics (1rb,2ss) and (rb1-)drums.
Would it be possible to use all 3 guitars and the drums and the same time with your game? Having a pandora-release would be even more awesome then, as rock-band doesn's support 3 guitars and I hate taking my ps3 to friends.

#8 Caine

Caine

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 515 posts

Posted 12 January 2010 - 05:50 PM

How would the controls work?

If you also support the Wiimote over bluetooth you can actually use the Wii guitars if you own any. Useful for when you hook up the Pandora to the TV.

#9 conso

conso

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 732 posts

Posted 12 January 2010 - 05:58 PM

How would the controls work?

If you also support the Wiimote over bluetooth you can actually use the Wii guitars if you own any. Useful for when you hook up the Pandora to the TV.

well, probably the same applies to ps3-guitars as those work basically on every linux-desktop-distribution. Still, it would be nice to have a more portable solution. Keyboard should be fine, but for the max-2-buttons-at-same-time restriction.

#10 Mr.Confuzed

Mr.Confuzed

    stoked and confused

  • GP32 Hardcore
  • PipPipPipPipPip
  • 352 posts
  • Gender:Male
  • Location:Canada

Posted 13 January 2010 - 07:16 AM

Maybe it would work to tilt the pandora sideways, strum with the DPad and use a few letter keys as frets...

Won't work: the keyboard only recognizes two simultaneous presses. Your best bet will be a guitar controller or a usb keyboard. The gaming controls should work, but I can't imagine that not being awkward. You could call it hardcore mode. :)

I've built the game and it seems to work, except that it seems to think that there is another player. This prevents me from playing because I can't control the other player. Any ideas?

#11 Daid

Daid

    GP32 Hardcore

  • GP32 Hardcore
  • PipPipPipPip
  • 266 posts
  • Location:Netherlands

Posted 13 January 2010 - 10:37 AM

wow, I'm amazed! All of my family and friends love playing guitar-hero and rockband. We used to play a lot of fretsonfire, but for some reason it got very sluggish on our family-pc a while back. Still have a lot of selfmade songs for it that I'd love to play with friends again.
We have 3 guitars (2gh3 1rb1), 3 mics (1rb,2ss) and (rb1-)drums.
Would it be possible to use all 3 guitars and the drums and the same time with your game? Having a pandora-release would be even more awesome then, as rock-band doesn's support 3 guitars and I hate taking my ps3 to friends.

Well, it supports up to 5 players. On the wii that can be 4 guitars or drums (in any mix) and a single USB keyboard. We can use whatever controls we can get working ;)

How would the controls work?

If you also support the Wiimote over bluetooth you can actually use the Wii guitars if you own any. Useful for when you hook up the Pandora to the TV.

The wiiuse library should make this pretty easy. So, that was the plan yes.


How would the controls work?

If you also support the Wiimote over bluetooth you can actually use the Wii guitars if you own any. Useful for when you hook up the Pandora to the TV.

well, probably the same applies to ps3-guitars as those work basically on every linux-desktop-distribution. Still, it would be nice to have a more portable solution. Keyboard should be fine, but for the max-2-buttons-at-same-time restriction.

Guess those work as basic HID devices then. I don't own any of those but I guess someone who has one will figure it out ;)


Maybe it would work to tilt the pandora sideways, strum with the DPad and use a few letter keys as frets...

Won't work: the keyboard only recognizes two simultaneous presses. Your best bet will be a guitar controller or a usb keyboard. The gaming controls should work, but I can't imagine that not being awkward. You could call it hardcore mode. :)

I've built the game and it seems to work, except that it seems to think that there is another player. This prevents me from playing because I can't control the other player. Any ideas?

Only 2 keypresses, well, that should work for most songs on easy/medium. And a few on hard. Just supporting as much controller settings as possible would be the best I guess ;)

Oh, yeah, the PC version input_pc.c has some 'debugging' tweaks. It acts as if player 2 has connected wii-drums. Solution is simple, just press '5', that's the drum cancel button. Or remove the 'buttons |= INPUT_HAS_DRUMS;' lines from input_pc.c
It has a few more wierd button things, like slash tilting the guitar, blackslash being the whammy bar, 'y' should show a low battery warning for player 1 ingame. And 'z' does 'ok/select' on players 3 to 5 at once. This config allowed me to test a lot of features ;) but was not indented for general playing.

I've setup an SVN repository here: http://daid2.mine.nu.../GuitarsOnFire/ which contains a few fixes for a linux build. And a Makefile for linux.

#12 Mr.Confuzed

Mr.Confuzed

    stoked and confused

  • GP32 Hardcore
  • PipPipPipPipPip
  • 352 posts
  • Gender:Male
  • Location:Canada

Posted 16 January 2010 - 06:29 AM

Looks like a solid game... Personally, I'd like to be able to see the notes when they're a bit further away. Maybe the guitar neck could be tilted down more?

In terms of porting, it looks good and modular, but you're using immediate mode rendering. That'll have to be changed to vertex buffers. Sounds like fun. It should make your game run faster too. You'll probably need to add a function or two though, which might cause compatibility issues with the Wii version.

By the way, I'm sure I'll be able to test eventually, if not develop.

edit: I think some of the work should be offloaded onto the vertex shader, assuming you want to use openGL ES 2.

Edited by Mr.Confuzed, 16 January 2010 - 06:38 AM.


#13 JayFoxRox

JayFoxRox

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 684 posts
  • Gender:Male
  • Location:Hanover, Germany

Posted 16 January 2010 - 12:31 PM

Hey there again.
I'm looking at the GX documents (even tho I don't have a stationary nintendo console, I'll see if an emulator works for me) right now and I'll probably rewrite the renderer, add a menu stage (for the main menu) and a new stage format (/ commands) which supports skeletal animation, bumpmapping, lights, fog and shadows (features which work on both, Pandora and Gamecube / Wii).
I also created a makefile and made some changes as typecasting was necessary in some parts.
It should be fairly easy to port this to the Pandora.

http://jayfoxrox.bplaced.net/pandora/public/GuitarsOnFire
http://jayfoxrox.bplaced.net/pandora/testing

should have some data in them soon.

Daid: In which direction would you like to go? (I would personally like if the guitars were more GH style (more 3D elements / more complex shape), but I don't want that I'm writing this update for nobody else than me because you wanted something different ;) )

//Edit: Also, is it normal that there are no notes at times? And where is the stricmp defined, its not included in my string.h anymore so I just defined stricmp as strcmp

Edited by JayFoxRox, 16 January 2010 - 12:32 PM.


#14 Rockthesmurf

Rockthesmurf

    GP Mania

  • GP32 Hardcore
  • PipPipPipPipPip
  • 314 posts
  • Gender:Male
  • Location:Manchester, UK

Posted 16 January 2010 - 05:28 PM

And where is the stricmp defined, its not included in my string.h anymore so I just defined stricmp as strcmp


stricmp is a case insensitive version of strcmp, so it's results aren't guaranteed to be the same. I know you get a deprecation warning with Visual Studio 2005 when using stricmp, it says you now need to use _stricmp instead - perhaps that would work for you?

//Edit - also, I think it is exciting you are taking a look at this project.

Steve

Edited by Rockthesmurf, 16 January 2010 - 05:29 PM.


#15 JayFoxRox

JayFoxRox

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 684 posts
  • Gender:Male
  • Location:Hanover, Germany

Posted 16 January 2010 - 06:03 PM

Posted Image

video_pandora.cpp, first hacked together version using OGLES2.0

I'll have to change some things tho as SDL seems to be initialized in the video code (meaning input doesn't work as I create my own X window), this should be changed imo.

//Edit: I know what stricmp is, but as I said: its not defined anymore. I also figured out _stricmp does work (not for me tho, I thought it would but I just didn't recompile that part), yet I wonder where stricmp (without leading underscore) comes from if he uses mingw32.

Edited by JayFoxRox, 16 January 2010 - 06:34 PM.