Author Topic: My OPK packages for the RS-90 (Opendingux)  (Read 37900 times)

Nootboot64

  • Posts: 35
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #60 on: May 06, 2019, 08:46:15 pm »
I have removed some debug code in Fceux and uploaded said newer build yesterday, i also redid the PGO profiling.
It should run just a little faster (as there was quite some ifs inside of the PPU/interpreter code and all) but probably not by much.

The hardware also supports 9600, 12000, 24000 and 96000, but the first three aren't defined in ALSA (Linux sound system) and the last one isn't very useful, especially on a device like this.
It would still be nice to support 96000. Not for games/emulators of course but maybe for something like a VGM player.
I know, it's not that useful but i'm pretty curious to hear how it sounds like when set to such a high frequency.

Quote
I opened the game, saved the "default" settings, then wrote a new rom on the card and started it - the settings of the new ROM were "default". in the previous version, the permissions settings were not saved, in the new version they are saved.
Yes but the scaling option is not saved. Maybe that's something i will look into.
Do you think you could ever fix the scaling? PocketNES mode is almost fine, but the picture is shifted down, obscuring things. (I mean there's a black bar at the top of the screen, and it's cut off at the bottom.)

pcercuei

  • Posts: 1689
    • My devblog
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #61 on: May 06, 2019, 09:12:54 pm »
I would like to do some PGO on the binaries and doing that when you can't use said rootfs libraries on another device is almost impossible.
Also here's the paper i was talking about :
https://elinux.org/images/1/1f/New-tricks-mips-linux.pdf

A statically linked binary with no PIC and no abicalls can only be beneficial performance wise, even if it can in some cases be a maintenance burden. Every last 1% is important on a 300Mhz device. (which is honestly more comparable to a boosted 486)
Premature optimization is the root of all evil. You're doing all this for a <1% performance increase, when you could get a 10% boost by just rewritting some code. There are much better optimizations you could do without messing with the OS.

And since you mention profile-guided optimization, if the code was properly optimized, then PGO wouldn't give any noticeable difference :)

Quote
This is true in the case of proprietary games released on desktops but we're on a small handled and right now everything got its source code released. Even on the GCW0, most of the stuff had their source open. If we really want to add Pulseaudio support to some app for a future handled, you are probably better off recompiling or adding said support to the soure code.
That's not how it works. If I want to add PulseAudio to the OS, and all the apps are statically linked, then as soon as the OS update lands you would lose audio for all the apps, until they are recompiled, and everybody would blame the firmware devs for breaking everything. So then we wouldn't be able to update anything to keep compatibility with static apps and avoid complaints. That's how a firmware dies.

Quote
Dynamically linked apps can still not run when linked against newer libraries, especially if they break the ABI.
That's not to mention some will even refuse to work with linked against a different version. (like OpenSSL and the likes)
The point here is not that the apps can run against newer libraries or different versions of the libraries.
The point is that the apps will always run on the RS-90, without having to be recompiled, while still taking benefit of the new features introduced over time.

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #62 on: May 06, 2019, 11:27:25 pm »
Do you think you could ever fix the scaling? PocketNES mode is almost fine, but the picture is shifted down, obscuring things. (I mean there's a black bar at the top of the screen, and it's cut off at the bottom.)
What game(s) are you trying to run ? Every single one of them is different in this regard. You can default to no crop in all cases : it will show everything onscreen and squeeze it down to 240x160. (of course, it won't look as good as PocketNES in an ideal setting)

Quote
Premature optimization is the root of all evil. You're doing all this for a <1% performance increase, when you could get a 10% boost by just rewritting some code. There are much better optimizations you could do without messing with the OS.
Yes, in an ideal world, i would have implemented a 6502 MIPS dynarec for fceux. But i'm no assembly programmer (sorry to disappoint you guys) and getting those 10% is not always feasible that easily without rewrite much of it. In comparison, getting that 1% (or less) was much easier and don't require much work on my part.
I mean even you are seeing that reGBA does not always run smoothly despite the fairly good MIPS dynarec it has (as you may have noticed in the comments). That's not to mention the broken games on it, which is just as important.

Quote
That's not how it works. If I want to add PulseAudio to the OS, and all the apps are statically linked, then as soon as the OS update lands you would lose audio for all the apps, until they are recompiled, and everybody would blame the firmware devs for breaking everything. So then we wouldn't be able to update anything to keep compatibility with static apps and avoid complaints. That's how a firmware dies.
Not sure how the Pulseaudio daemon works but yeah i guess it is a possibility that it could break if the static library happens not to be compatible with the newer version. Thankfully though, we are not using pulseaudio on that handled as it would be overkill.
I would consider using the dynamic libraries on a more powerful handled like the GCW0 but not on the RS-90.
« Last Edit: May 07, 2019, 05:14:39 am by gameblabla »

pcercuei

  • Posts: 1689
    • My devblog
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #63 on: May 07, 2019, 01:57:06 am »
Quote
Premature optimization is the root of all evil. You're doing all this for a <1% performance increase, when you could get a 10% boost by just rewritting some code. There are much better optimizations you could do without messing with the OS.
Yes, in an ideal world, i would have implemented a 6502 MIPS dynarec for fceux. But i'm no assembly programmer (sorry to disappoint you guys) and getting those 10% is not always feasible that easily without rewrite much of it. In comparison, getting that 1% (or less) was much easier and don't require much work on my part.
And yet I'm the one that you called lazy.
It's maybe less work for you, but it's a pain in the ass for us.

Quote
That's not how it works. If I want to add PulseAudio to the OS, and all the apps are statically linked, then as soon as the OS update lands you would lose audio for all the apps, until they are recompiled, and everybody would blame the firmware devs for breaking everything. So then we wouldn't be able to update anything to keep compatibility with static apps and avoid complaints. That's how a firmware dies.
Not sure how the Pulseaudio daemon works but yeah i guess it is a possibility that it could break if the static library happens not to be compatible with the newer version. Thankfully though, we are not using pulseaudio on that handled as it would be overkill.
Don't try to play dumber than you really are. Pulseaudio was just an example. In the past years we've been adding optimizations to the rootfs, which would give a small performance boost to *all* apps, that is, if they've been dynamically compiled.

I would consider using the dynamic libraries on a more powerful handled like the GCW0 but not on the RS-90.
The A320 was less powerful, and we were using dynamic libraries there.

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #64 on: May 07, 2019, 02:35:43 am »
And yet I'm the one that you called lazy.
It's maybe less work for you, but it's a pain in the ass for us.
Yeah i'm sorry for that. (though it was more of a joke than anything)

Quote
Don't try to play dumber than you really are. Pulseaudio was just an example. In the past years we've been adding optimizations to the rootfs, which would give a small performance boost to *all* apps, that is, if they've been dynamically compiled.
The A320 was less powerful, and we were using dynamic libraries there.
I mean even if i were to completely disregard that 1% performance improvement (at best) and go all out on using the dynamic libraries then there's still the issue of me not being able to directly test the binary without said handled and of course that goes without saying PGO.
That may have been a different story if let's say, someone made an image using a QEMU image with the rootfs like Dmitry did with the GCW0 so we're not quite there right now and i don't want to work on that myself.

I'm sorry to disappoint you but i'm not doing of all that simply to bother the OpenDingux devs.
You made some valid points but for the most part they don't currently apply to my ports. I will closely follow what you are doing on the RS-90 & Opendingux and if the statically linked apps really become a pain in the ass then i'll link to the system libraries.

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #65 on: May 07, 2019, 05:14:20 am »
I have ported GnuBoy for the RS-90.
Not as perfect as Gambatte obviously but it should be able to play most game boy games just fine.
It supports save states as well as 3 scaling options.
As usual if you want to give it a try, see my first post.

EDIT: Welp, on the first build the menu was flickering. This is now fixed so please download it again
if you have issues with the menu.
« Last Edit: May 07, 2019, 05:46:29 am by gameblabla »

Cralex

  • Posts: 58
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #66 on: May 07, 2019, 06:01:47 am »
Considering you are coding blind, you hit the bulls-eye with this one! Really happy with it so far. Made two issues on github and closed one when I noticed you fixed the menu. Speed, music, controls, saving, and scaling all work very well.

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #67 on: May 07, 2019, 06:14:37 am »
Considering you are coding blind, you hit the bulls-eye with this one! Really happy with it so far. Made two issues on github and closed one when I noticed you fixed the menu. Speed, music, controls, saving, and scaling all work very well.
And i've also fixed your other issue as well. I didn't know that Link's Awakening DX used all 4 buttons but the more you know...

So yeah guys, i updated the OPK again and now there should not be any obvious issues. (apart from some obscure games not working)

Cralex

  • Posts: 58
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #68 on: May 07, 2019, 06:59:24 am »
Considering you are coding blind, you hit the bulls-eye with this one! Really happy with it so far. Made two issues on github and closed one when I noticed you fixed the menu. Speed, music, controls, saving, and scaling all work very well.
And i've also fixed your other issue as well. I didn't know that Link's Awakening DX used all 4 buttons but the more you know...

So yeah guys, i updated the OPK again and now there should not be any obvious issues. (apart from some obscure games not working)

Yeah, Link?s Awakening is a pain to save in, and you?d never know how to do it unless you RTFM or talk to NPCs. They wrote a new menu for the Oracle games in the series that handles it much better. But I digress.

So far, the only game I?ve tested that has issues is Donkey Kong Land 2 (see github). It handles beefy ROMs like Shantae and Bad Apple and handles drawing the sprites in Donkey Kong Country well, even though I?m aware of at least two other gnuboy ports that can?t do it. There is some screen tearing when scrolling backgrounds and such, but it?s really minimal.

watchgintama

  • Posts: 44
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #69 on: May 07, 2019, 08:02:11 am »
GNUBoy working good for pokemon crystal.   Also can you add a Reset option to GNUBoy menu?

Sipulka

  • Posts: 29
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #70 on: May 07, 2019, 02:33:03 pm »
gnuboy_rs90.opk    2019-05-07 07:09    432K

great job, no complaints there :)

You are planning to make a ZX Spectrum emulator?

kokokool

  • Posts: 100
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #71 on: May 07, 2019, 02:34:48 pm »
gnuboy_rs90.opk 2019-05-07 07:09 432K

great job, no complaints there :)

You are planning to make a ZX Spectrum emulator?

Please!

ZxSpectrum
Coleco ( over smsplusgx with button mapping)
Atari 2600/800xl
MSX


Enviado desde mi iPhone utilizando Tapatalk

kokokool

  • Posts: 100
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #72 on: May 07, 2019, 02:44:31 pm »
Considering you are coding blind, you hit the bulls-eye with this one! Really happy with it so far. Made two issues on github and closed one when I noticed you fixed the menu. Speed, music, controls, saving, and scaling all work very well.
And i've also fixed your other issue as well. I didn't know that Link's Awakening DX used all 4 buttons but the more you know...

So yeah guys, i updated the OPK again and now there should not be any obvious issues. (apart from some obscure games not working)

Mate, the emulator runs ok for GBC, however i?ve experienced some crashes with GB games (DK land 1/2/3).


Enviado desde mi iPhone utilizando Tapatalk

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #73 on: May 07, 2019, 03:00:43 pm »
Quote
So far, the only game I?ve tested that has issues is Donkey Kong Land 2 (see github).
Mate, the emulator runs ok for GBC, however i?ve experienced some crashes with GB games (DK land 1/2/3).
The Donkey Kong Land series is a bitch to emuate, they have really odd behaviours. If the games do crash though, then i guess it might be easy to fix them with GDB. No promises though.

Quote
You are planning to make a ZX Spectrum emulator?
Quote
ZxSpectrum
Coleco ( over smsplusgx with button mapping)
Atari 2600/800xl
MSX
Nope, no plans for a ZX spectrum emulator for now. There's now i have in mind but it's a bit fairly CPU intensive so not sure if it's going to work that well.
And i would like add remapping support for the other Colecovision buttons but for now you can play most games with it.

gameblabla (OP)

  • Posts: 1406
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #74 on: May 07, 2019, 09:46:12 pm »
Updated Gnuboy as to merge some upstream fixes : this fixed games like Killer Instinct & Ghostbusters.
Let me know if there are any regressions or additional graphical glitches.

Still no true fix for DKL2 though : the game won't crash anymore but it won't run properly either.
I may consider looking at Gambatte again.

kokokool

  • Posts: 100
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #75 on: May 07, 2019, 09:48:22 pm »
Updated Gnuboy as to merge some upstream fixes : this fixed games like Killer Instinct & Ghostbusters.
Let me know if there are any regressions or additional graphical glitches.

Still no true fix for DKL2 though : the game won't crash anymore but it won't run properly either.
I may consider looking at Gambatte again.

No mate, DKL is one minimun sand grain. You made a tremendous port with Gnuboy, thank you!


Enviado desde mi iPhone utilizando Tapatalk

Great Crippler

  • Posts: 167
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #76 on: May 07, 2019, 10:31:08 pm »
Updated Gnuboy as to merge some upstream fixes : this fixed games like Killer Instinct & Ghostbusters.
Let me know if there are any regressions or additional graphical glitches.

Still no true fix for DKL2 though : the game won't crash anymore but it won't run properly either.
I may consider looking at Gambatte again.

No mate, DKL is one minimun sand grain. You made a tremendous port with Gnuboy, thank you!


Enviado desde mi iPhone utilizando Tapatalk

Odd work around, but if you pick the second or third save files on Donkey Kong Land 2 or 3, then they work fine.

kokokool

  • Posts: 100
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #77 on: May 07, 2019, 10:39:29 pm »
Updated Gnuboy as to merge some upstream fixes : this fixed games like Killer Instinct & Ghostbusters.
Let me know if there are any regressions or additional graphical glitches.

Still no true fix for DKL2 though : the game won't crash anymore but it won't run properly either.
I may consider looking at Gambatte again.

No mate, DKL is one minimun sand grain. You made a tremendous port with Gnuboy, thank you!


Enviado desde mi iPhone utilizando Tapatalk

Odd work around, but if you pick the second or third save files on Donkey Kong Land 2 or 3, then they work fine.

Good!


Enviado desde mi iPhone utilizando Tapatalk

Cralex

  • Posts: 58
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #78 on: May 08, 2019, 02:50:52 am »
I?m wondering if some of the upstream changes might have broke how Gnuboy draws the graphics for Donkey Kong Country for GBC. When I tested it after the menu fix was merged, the sprites and graphics looked normal, but after the last update the sprites and parts of the background became garbled, just like Ohboy on the RS97 or Gnuboy on the PocketSprite. It?s an edge case, certainly, but I wanted to make sure it was noted.

Sipulka

  • Posts: 29
Re: My OPK packages for the RS-90 (Opendingux)
« Reply #79 on: May 08, 2019, 03:37:51 am »
gnuboy_rs90.opk    2019-05-07 22:40    432K   

Donkey Kong Country - bad draws the graphics. in the previous version this is not