So, what's the actual state of the software?


@EvilDragon: I personally think the overall control of the output to speakers and headset should use just a regular potentiometer.  We shouldn't have to be dependent on the software to lower or raise volume... It's one of the absolute annoyances with modern devices. bluetooth, phone and other sources individually can be controlled by software, a tray utility or hotkeys IMO.

Yes, I know. But I don't know if this is easily possible - unless you only want to use one output for both speakers and headset.
I can't think of anything outside of bizarre uses for needing to have different outputs simultaneously for the headset or speakers... generally most people plug in the headset want to mute the audio coming of the speakers. I can't think of any other device that would do it that way, no smart phone I ever owned could.
 
I can't think of anything outside of bizarre uses for needing to have different outputs simultaneously for the headset or speakers... generally most people plug in the headset want to mute the audio coming of the speakers. I can't think of any other device that would do it that way, no smart phone I ever owned could.

Well, connect the headphones to your stereo to listen to music but get notification sounds out of the Pyra speakers (I hate it when they also go throught the stereo...)

True, not often used ;)

I'll check with Nikolaus, as said.
 
* Nubs: Work. They use the same userspace and settings as in the Pandora, but there's not yet an UI implemented to set it up.

I think all userspace controls should be dropped and moved to the input daemon. That will make it compatible with mainline, and must be done early so nothing depends on the old stuff. So quite some work here.
Such things can be improved in the future. We also improved a lot of the Pandora over time, so the Pyra doesn't need to be perfect from the beginning.
NO NO NO NO

This attitude is part of the reason the Software on the Pandora is such a mess.

Sure we got tons of PNDs, but as a developer as well as a user there are so many inconsistencies and pitfalls.

We don't have a unified control scheme - leading to confused users and an overall messy experience until you get used to it.

A lot of PNDs depend on old or new libs (which need to be packed along) - it took forever to get away from the completely hacked OS and kernel and get some sort of compatibility with standard packages.

There is no central game hub. We have C4A now (after how many years), but no common lobby/chat/etc. (granted this is not essential, however we are such a small community, you need to make it as easy as possible for people to meet and interact with each other)

There is no official SDK or devkit, everybody just hacked their own. It is pretty straightforward now, but it was a mess in the beginning.

It took quite a while for a central repo to appear and now that we got one it is basically dead development wise and not open-source.

Stuff like this happens and work hours get wasted because everything just gets rushed to a barely working state, then improved later.

I mean don't get me wrong, I am not trying to say everything is shit with the Pandora, but the Pyra could be so much more.

Doing things right from the beginning is essential to give users and developers a better experience. Sitting a few skilled people down with coordinated tasks could save so many man-hours in the end.

I do get that you have to make money and don't have the time to spend on "extra" tasks (since many people here probably don't even care for these things). I am not saying doing all this is easy and straight-forward. I don't really know what to do about it, just please keep this in mind and consider giving the OS and Software side of the Pyra before launch more attention than the Pandora's OS got back then.
 
There is no central game hub. We have C4A now (after how many years), but no common lobby/chat/etc. (granted this is not essential, however we are such a small community, you need to make it as easy as possible for people to meet and interact with each other)

My Tournament Hub (Mk II) will hopefully deal with that... Once I finish it :)   Want to try and get my other Pyra-related project "finished" first though (it's coming along quite nicely), then get my hub API out there for implementing by devs...

I still dream
 
Last edited by a moderator:
* Nubs: Work. They use the same userspace and settings as in the Pandora, but there's not yet an UI implemented to set it up.

I think all userspace controls should be dropped and moved to the input daemon. That will make it compatible with mainline, and must be done early so nothing depends on the old stuff. So quite some work here.
Such things can be improved in the future. We also improved a lot of the Pandora over time, so the Pyra doesn't need to be perfect from the beginning.
NO NO NO NO

This attitude is part of the reason the Software on the Pandora is such a mess.

Sure we got tons of PNDs, but as a developer as well as a user there are so many inconsistencies and pitfalls.
Most of those happened because we don't have much space on the NAND, so we have to include various libraries...

Of course, the more we can finalize at the beginning, the better. But focussing on the most important bits first and improving the rest later is the only way to go.

Otherwise, you might have not-that-important stuff optimized, but something like 3D doesn't work at all.

We don't have a unified control scheme - leading to confused users and an overall messy experience until you get used to it.

A lot of PNDs depend on old or new libs (which need to be packed along) - it took forever to get away from the completely hacked OS and kernel and get some sort of compatibility with standard packages.
That should have been improved with the new .dbp format, which is in open development for quite some time.

There is no central game hub. We have C4A now (after how many years), but no common lobby/chat/etc. (granted this is not essential, however we are such a small community, you need to make it as easy as possible for people to meet and interact with each other)
Skeezix still plans to enhance that into a central game hub for the Pyra. I don't know how much time he has though, but in my opinion, it's important to have everything (with all features) clearly defined upfront. Code can happen later, but the standards need to be lined out and defined.

There is no official SDK or devkit, everybody just hacked their own. It is pretty straightforward now, but it was a mess in the beginning.
Yes, part of the small NAND. With the Pyra, you can easily install all the dev-packages.

It took quite a while for a central repo to appear and now that we got one it is basically dead development wise and not open-source.
I've got access to the sourcecode, milkshake agreed to make the repo for the Pyra as well and he also said multiple times that I'm free to do whatever I want with the sourcecode (even opening it) in case he stops working on it.

You can also work on a such a repo if you like, with guys from the community.

In fact, that's what I wanted to do when I wanted to create the new website (with Wiki, Repo, Boards, etc. integrated)  with community members over a year ago.

We found a few guys who wanted to do that voluntarily - and not a single line of code has been written since then.

I'm happy if community members do that, but sadly, it's not something that can be relied on.

Stuff like this happens and work hours get wasted because everything just gets rushed to a barely working state, then improved later.
No, it happens because there is not enough manpower.

We can't wait 2 more years with the release simply because the software takes so long to be polished enough.

aTc is basically working alone on the OS (with a bit of help), for over a year now, slaeshjeeg on the dbp system.

There actually was a long timeframe where anyone could've helped.

Crying out now when the hardware is nearly finished won't help at all. There wouldn't have be any need for rushing if more users would've helped long ago.

I mean don't get me wrong, I am not trying to say everything is shit with the Pandora, but the Pyra could be so much more.

Doing things right from the beginning is essential to give users and developers a better experience. Sitting a few skilled people down with coordinated tasks could save so many man-hours in the end.
True, but were are these people?

I'm happy to work together with anyone to improve everything from the beginning, but it seems there are only a few really reliable community members.

I do get that you have to make money and don't have the time to spend on "extra" tasks (since many people here probably don't even care for these things). I am not saying doing all this is easy and straight-forward. I don't really know what to do about it, just please keep this in mind and consider giving the OS and Software side of the Pyra before launch more attention than the Pandora's OS got back then.
Once the units are being sold, money shouldn't be the problem and I'm fine paying for good software work.

Until then, manpower is low, so we need to concentrate on the essential things, try to at write down everything we want to implement (and HOW it will be implemented) from the beginning and implement that later, so that not much will need to be changed.
 
Skeezix still plans to enhance that into a central game hub for the Pyra. I don't know how much time he has though, but in my opinion, it's important to have everything (with all features) clearly defined upfront. Code can happen later, but the standards need to be lined out and defined.
Heh, I remember the first time I started the Tournament Hub, I was told adding all those features was monolithic and "Microsoft-y", not very linux like. Still @skeezix maybe we could bang heads again, and make a combined product?

My developer-API is currently C based, and can be found here. I've got another two repos, one for the website, and one for a Qt UI, so cross platform :)
 
Last edited by a moderator:
 True, but were are these people?

I'm happy to work together with anyone to improve everything from the beginning, but it seems there are only a few really reliable community members.
Only a few willing or able to put in the time and effort that is needed and finish what they start, I hope is what you want to say. I think you have a very reliable community here ;)
 
No, it happens because there is not enough manpower.

[...]

Crying out now when the hardware is nearly finished won't help at all. There wouldn't have be any need for rushing if more users would've helped long ago.

[...]

Once the units are being sold, money shouldn't be the problem and I'm fine paying for good software work.

Until then, manpower is low, so we need to concentrate on the essential things, try to at write down everything we want to implement (and HOW it will be implemented) from the beginning and implement that later, so that not much will need to be changed.
Yup, I totally get it. However most people here either lack the skill, the time or both to help.

Money could "fix" the time problem. I mean most people working on the Pandora's OS did so voluntarily and as you said, you cannot rely on that! Why not hire a few men to work on it full-time. Yup, that is a lot of money, maybe it's worth it, maybe not, depends what you are aiming for.

I would love to see people getting paid for some great software after the release of the Pyra, so thanks for planning on doing so. However doing an investment before the release could avoid some of the problems the Pandora had imo.

It like when you move into a new house, if you don't do all work, like painting walls in the colour you like, while you are moving in, you will never do so, because people are inherently lazy and good at accepting stuff as status-quo and just living with that.

I also said the exact same thing some time ago when the Pyra was just announced, so it's not like I am crying just now when the project enters the final stretch. I just feel like the attitude has not changed since then.

Concerning the dev hub: I totally agree the standards need to be laid out first, but coding has to happen eventually or it will just be a lot of arguing about nothing of value in the end.

Concerning SDKs: Not just talking about compiling on the Pyra/Pandora. There also should be an easy way and "officially" supported way to compile from a desktop PC (of any OS). There is a nice VM image for Linux now, if this had existed from the start, the entry to development for the Pandora would have been much easier for many people.

I know this is a lot of complaining coming from somebody who did not put much time into working on the Pandora core, but when I see a valid concern from an experienced developed (who did put in a lot of time) simply get waved away, I become concerned.

Maybe it is coming across as more negative than it is intended, sorry for that. I appreciate the time and money you and all contributors like aTc put into this humongous project. I just fear mistakes could be repeated and I would hate for the Pyra to be plagued by the same problems the Pandora had.

Thanks for your reply.
 
Last edited by a moderator:
I don't completly agree with you @foxblock, at least on certain point.

The "no unified control scheme" is not a problem of Money or early start... It's just, well, it's an Open world and community. 

I prefer the main action button to be X, so most of my ports are like that. Other prefer B as main, so you find port like that... This is no Nintendo, Sony, or other, where the whole GUI & so as to be validated and must follow some guidelines...

So, I think some things are not messy, they are Open and Free, not the same things.
 
Last edited by a moderator:
I prefer the main action button to be X, so most of my ports are like that. Other prefer B as main, so you find port like that... This is no Nintendo, Sony, or other, where the whole GUI & so as to be validated and must follow some guidelines...

Yeah, but it kind of makes sense to be consistent across applications, though. For the end-user, that's the best.

That's why there should be some kind of guideline to avoid everyone using different standards for each application they port, at least to ensure they don't do it unintentionally.

For example, it's particularly annoying that every application has a different way to exit. That kind of basic behavior (action, quitting, selecting) should be consistent as much as possible across applications, just like we don't reinvent scrollbars on the desktop the whole time.
 
Last edited by a moderator:
I prefer the main action button to be X, so most of my ports are like that. Other prefer B as main, so you find port like that... This is no Nintendo, Sony, or other, where the whole GUI & so as to be validated and must follow some guidelines...

Yeah, but it kind of makes sense to be consistent across applications, though. For the end-user, that's the best.

That's why there should be some kind of guideline to avoid everyone using different standards for each application they port, at least to ensure they don't do it unintentionally.
That would be interesting to have one, but even if there was one, it would not be mandatory to comply to it to be allowed to publish an app.

My point is not to point out that the lack of guideline is good (and in fact it's not), but to point that even with guideline, it would be messy anyway.
 
I prefer the main action button to be X, so most of my ports are like that. Other prefer B as main, so you find port like that... This is no Nintendo, Sony, or other, where the whole GUI & so as to be validated and must follow some guidelines...

Yeah, but it kind of makes sense to be consistent across applications, though. For the end-user, that's the best.

That's why there should be some kind of guideline to avoid everyone using different standards for each application they port, at least to ensure they don't do it unintentionally.
That would be interesting to have one, but even if there was one, it would not be mandatory to comply to it to be allowed to publish an app.

My point is not to point out that the lack of guideline is good (and in fact it's not), but to point that even with guideline, it would be messy anyway.
This has been a problem since the GP2X (and possibly GP32 days although that's before my time). I think the "easiest" way to solve this inconsistency issue is to abstract away from physical buttons and map "Actions" to the function you are doing in the application or game. Then the OS provides a GUI to map these actions to the physical buttons. The developer does not care what the physical buttons are (unless it's text input or needs to be specific keys) but does want to assign an accept/back/pause/menu button action.

A Style guide/standards has been attempted with each open console release and each time has had limited success.
Another option would be a validation process to be listed in the official repo.
 
Last edited by a moderator:
OK - so, IMHO, what gets assigned to B or X is irrelevant.  What is important is that there is a defined method of communicating with the nubs (in mouse and joystick modes) and every button on the machine.  I.e. it is important that the hardware behaves in a known consistent manner from the physical button press to the OS.  

How the individual programmer/porter/etc interprets that input and interprets it for the screen is entirely 'up to them'.  If someone doesn't like it enough, they can program/port/etc their own version of it.

So much attention to what B and X 'do' INSIDE applications (emulator is an app) is a waste of energy.  Those will always be decisions of the application creator and should not be dictated.
 
foxblock, ptitSeb, ekianjo, PokeParadox, and Grench, you may want to read flipBX - Gaming buttons (non-)standardization on Pyra if you haven't done so yet. If you added your opinion or personal view there, that would be splendid, because now is the best time to discuss this (as opposed to /after/ the Pyra's release). I'd really like to hear more people say what they think of on the idea.
 
Last edited by a moderator:
I also like the idea of configurable default buttons.

But it needs to be done in a way that even not very experienced porters (like myself) can implement that in their ports.

I know how to change SDL button configs when porting a game... would that "Action"-Button have it's own SDL keycode, or how would that work?
 
On uevm which is completely different board... Have you even decided if it it will be pandora's audio with real analog wheel or default codec with messy software wheel handling?

Oh wow, I thought the whole point of having a volume wheel was that it was a 100% hardware control - so you could mute the device even if it'd locked up.
Well, I cannot remember that the Pandora ever locked up and made some weird noise... doesn't really happen often these days (if it even does).

I've asked Nikolaus, what the final solution for that is.

But: With a modern chip, every connector has it's own volume controls. So headphone port and speakers are two different output devices and use two different volume controls.

That also means that you can have different audio coming out of the speaker than via Bluetooth, Headphones or HDMI.

It's hard to find the best solution here.
The hardware supports two modes (depending on which components are installed):
1.) Pandora mode - here the potentiometer is analog and attenuates the PCM DAC signals before they go to the headset or speaker amplifiers
2.) TWL6040 mode - here the potentiometer goes to one of the ADC inputs of the Palmas chip so that the gpadc iio driver presents a value between 0 and 100%. This can be repeatedly fed by a daemon into amixer
In both cases the position is remembered (mechanically) whatever happens.
Indeed 2.) is more flexible to configure what you really want to control by the volume wheel (headset, speaker, bluetooth, HDMI) - or even use it as a game input device...
 
What I'm worried about with option 2 is lack of control when the CPU is bogged down or perhaps if it's in a state where the software isn't in control of the hardware, such as low-level use, using an alternant OS and etc. 
 
I also like the idea of configurable default buttons.

But it needs to be done in a way that even not very experienced porters (like myself) can implement that in their ports.

I know how to change SDL button configs when porting a game... would that "Action"-Button have it's own SDL keycode, or how would that work?

It would be good if we could continue this discussion over at the flipBX thread, which already contains more information on this. The short version is that luckily, if you just read a bool from a file, and switched two buttons' functions in menus depending on whether the value was true or false, many of the biggest user experience problems concerning buttons would already be eliminated, as far as I can see (but like I said, I'm looking for more input from others). This would be rather easy to build into applications. More information is in the flipBX thread.
 
I prefer the main action button to be X, so most of my ports are like that. Other prefer B as main, so you find port like that... This is no Nintendo, Sony, or other, where the whole GUI & so as to be validated and must follow some guidelines...

Yeah, but it kind of makes sense to be consistent across applications, though. For the end-user, that's the best.

That's why there should be some kind of guideline to avoid everyone using different standards for each application they port, at least to ensure they don't do it unintentionally.
That would be interesting to have one, but even if there was one, it would not be mandatory to comply to it to be allowed to publish an app.

My point is not to point out that the lack of guideline is good (and in fact it's not), but to point that even with guideline, it would be messy anyway.
I totally agree and it's something I complained about at the very beginning of the CC days.

But even if it's messy, at least there's a guideline, and that's something important.
 
What I'm worried about with option 2 is lack of control when the CPU is bogged down or perhaps if it's in a state where the software isn't in control of the hardware, such as low-level use, using an alternant OS and etc. 

What could happen?
The twl6040 isn't emitting noise by itself and it can't read eMMC or SD cards. So if you play music by aplay, this also needs the CPU to run and provide the sound data. So output will simply stop as well.
The worst case could be that the daemon crashes and the volume wheel becomes inactive. In that case you can still use the GUI (I think there is a sound level widget in the XFCE bar) or simply press two buttons to hard reset.
Anyways there are only these two solutions. And we can't insert the volume wheel into the twl6040 analog audio output signal path because it has built-in amplifiers (btw: avoiding the only two big tantalum capacitors needed for the Pandora design. Tantalum caps are not very well for the environment).
But since nobody knows exactly how well these alternatives operate, we do the prototype run to find out. At least one device will be reworked for the Pandora audio. And then we will compare audio qulity and useability aspects so that ED can decide which one goes into mass production.
 
Last edited by a moderator:
Back
Top