Release Ducktape mGBA fullspeed GBA/GB emulator (no proper GUI)


FelixNemis

Very Active Member
Joined
May 15, 2012
Messages
306
Ok here's a working build of mGBA.
Now on the repo: https://pyra-handheld.com/repo/apps/47

Notes
Esc quits the emu
mGBA should be able to use GLES2 but I couldn't get it to so this is using gl4es, runs pretty good though.

Didn't build the qt GUI, but I made a zenity launcher script that should be fine for now
Default options are for fullscreen and correct aspect ratio, you have to edit the options in the launcher each time if you want different options.
The config file is in the appdata, I also listed the button numbers in there so its easy to remap

write save state is F1-9 and load is Shift F1-9
loading savestates wasn't working on one gba game I tried, but it was working on pokemon red.

It auto detects some gb games for super gameboy mode it seems
There is a way to force gameboy or gameboy color mode for those roms respectively but the config file is poorly documented so I'm not too sure

Enjoy!
 
Last edited:

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
Well because it’s Gameboy I dit a quick Test: it’s runs good, but there is a Audio issue:
Sometimes it’s plays the audio quite loud, I don’t know if this is the audio issue of the Pyra, I try to deactivate the microphone and try again

Edit now I played to the first level of super Mario land and i ditnt got this audio issue.. strange ..
 
Last edited:

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
I ditnt had the time for proper testing yet, i only played a bit Tetris, Super Mario Land, Super Mario Land DX, and Super Mario World, maybe a quarter hour this morning.., the only issue i came across was whit the Sound, but this may got an Issue from the Pyra itself, as this is a common issue of the early Boards..

I will make a bigger test maybe this evening..
 

levi

Still fresh, damnit!
Joined
Oct 6, 2008
Messages
14,587
Location
Somewhere off the coast of the EU
That sounds like a decent test to me. Of course, software can always be tested better, but even if it can only play tetris and Super Mario Land that sounds like a decent emulator to me.
 

FelixNemis

Very Active Member
Joined
May 15, 2012
Messages
306
Yeah mainly wanted to make sure it actually launched for other people before uploading to the repo. It's up now :)
 

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
But is it save when i ditnt got the changse to test it properly? And is the version you put on the repo the same as the version i downloaded this morning from your atachment?

I would like to test if this also runs the "NES Classic Games", as lots of Emulators, and also the EverDrive got issues whit them..

Also Super Mario Land and Tetris might be not the best Testing Games, as they ditnt need that much power, better to take Mario Land 2 (DX), or Tetris DX..

Although the DX Versions from Mario Land 1 and 2 are Romhacks which give these Color....

Maybe this evening some more tests from me, and thursday a Video when im ready whit my Rom Folders then..
 
  • Like
Reactions: rSl

FelixNemis

Very Active Member
Joined
May 15, 2012
Messages
306
The repo version is the same, yeah.
I tried out some GBA games already so I wasn't worried, let me know how your testing goes though.
 

EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,794
Age
43
Location
Ingolstadt
Sometimes it’s plays the audio quite loud

Is it loud or does it switch to noise at some time?
Only the latter one is the Pyra audio issue. Disabling the microphone won't help, the stream needs to be disabled in the driver to make that fix work, it's not easy to do it yourself at the moment :)
 

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
Its plays on the gamesound extrem loud and it’s seems like the sound got stuck: even if I kill the task of the emulator by pushing the Pyra button and close the program in the task bar, it was a few seconds on after that..
on my last try it wasn’t, maybe it’s depends on where the loudness dial stands?
I will try to use the AirPods this evening to look if this issue is only over wired headphones
 

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
Ok i testet some games: the whole Classic NES Games work ; which is amazing as they don’t even work on Everdrive on a Original GBA SP ..
i discovered the noise issue at Super Mario Land 2 in the Original Version, and whit the Color Hack DX,
It’s sounds like someone blows or something like this but quite loud ..
I played whit the speakers, then you can turn it down so it’s not that worse then over headphones but still an issue..
But only on these games, I tried a lot other game where this issue wasn’t ..
o and it is normal that the Pyra vibrates a bit when it’s plays sound? It’s a cool feature ^^
You can also play whit nub instead of DPAD ^^
 

Silent-Hunter

Hardcore Member
Joined
May 29, 2010
Messages
3,476
Is it loud or does it switch to noise at some time?
Only the latter one is the Pyra audio issue. Disabling the microphone won't help, the stream needs to be disabled in the driver to make that fix work, it's not easy to do it yourself at the moment :)
Does this mean the onboard mic will never work properly?
 

matzesu

Forum Addict!
Staff member
Joined
Oct 24, 2008
Messages
11,422
Age
37
Location
Germany,, Saarland, at home
Well, i ditnt got this noise that often, so i would assume the mic works, but something might be wrong whit the driver..
For my Purpose, i dont want to use the Mic, i would rather use the Mic of my Airpods (i know to use them on the Pyra might be a sacrileg), or a USB Sound Device like the Guitar Intervace when i get them to work..

In my trying to run all of the Classic NES Titels (there where the NES Titels portet to GBA), i also got Castlevania which got a pretty cool soundtrack so i put the Audio Level a bit higher , maybe this causes the issue?
I think i will make more tests this afternoon, but whit Audio over Airpods..

Funfact: The Gameboy Emulator was the only reason why i preeordered the Pandora in the past ^^
 

EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,794
Age
43
Location
Ingolstadt
Does this mean the onboard mic will never work properly?

No, you can easily enable / disable the microphone upstream on-the-fly. At the moment, it's always enabled.
The problem at the moment is that this can't be done with the driver, you can do it by poking a register in the audio chip (using devmem2) while an audio stream is playing.
So at the moment, you'd need to start the emulator and once it plays sound, disable the microphone upstream via the register - as the driver always enables all streams as default when a stream starts.
This could be changed in the driver, so that the microphone upstream is only enabled when a program wants to access the microphone.

It could also be that the hardware accelerated driver (using ABE / AESS) which does not work yet takes care of that bug anyways.
 

Phlyra

Electric
Joined
Jul 25, 2019
Messages
1,021
This could be changed in the driver, so that the microphone upstream is only enabled when a program wants to access the microphone.
Is it possible to set the microphone to work only when the *User* wants it to, rather than automatically when some program wants it to? Like hardware access permissions per app?
 
  • Love
Reactions: rSl

TrashyMG

Sarcasm Dispenser
Staff member
Joined
Jan 18, 2010
Messages
11,080
Is it possible to set the microphone to work only when the *User* wants it to, rather than automatically when some program wants it to? Like hardware access permissions per app?
yeah, just turn it off... Per application permission would likely be a bit tedious to setup as this is Linux not Android or IOS.
 

Silent-Hunter

Hardcore Member
Joined
May 29, 2010
Messages
3,476
Is it possible to set the microphone to work only when the *User* wants it to, rather than automatically when some program wants it to? Like hardware access permissions per app?
Set it up so the mic stream is off by default, and wrap any programs that need mic with a shell script that uses devmem2 to turn it on when running the program, perhaps?
 
Top