Partial screen updates for gnuboy

Post Reply
Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Partial screen updates for gnuboy

Unread post by Unorthodactyl » Mon Sep 09, 2019 7:41 am

Has anyone tried to get @Cwiiis partial screen updates working in gnuboy? I'm looking at trying it but it's not making much sense to me so far. If I'm unable to get it to work, is anyone else interested in a bounty for this?

Would anyone else who's attempted this share their progress? Otherwise I'll start from @Nemo1984's "Triforce"

I just want to play micro machines v3 in 60fps haha

Edit: Job is done!
Edit2: apparently the new version has some issues, so use the previous version as it still works (60fps, minor performance hiccups, broken colours in GameGear games)

I'll update this post once this has been resolved

Edit3: newest version attached to this post (will be kept updated)
Attachments
Super-Go-Play-DX.fw.zip
(1017.82 KiB) Downloaded 1 time
Last edited by Unorthodactyl on Tue Sep 17, 2019 7:03 pm, edited 12 times in total.

Paspartout
Posts: 21
Joined: Fri Dec 28, 2018 2:13 am
languages_spoken: english, german
ODROIDs: Odroid go
Has thanked: 2 times
Been thanked: 2 times
Contact:

Re: Partial screen updates for gnuboy

Unread post by Paspartout » Tue Sep 10, 2019 7:01 am

Yeah it would be cool having 60fps working for gnuboy too.
Not sure how hard its going to to apply the patches but with the commit log of Cwiiis it shouldn't be too hard.

I am having a lot of fun developing for the odroid atm, so I might give it a try next weekend.
Maybe we can it to work together.

Not sure what version to patch though, there is also Super Go-Play. Shouldn't matter too much though since we would only have to patch gnuboy. They are probably just doing pallete switching different in there.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 10, 2019 9:22 am

Yeah I rebased on top of Super-Go-Play too

I have a better idea of how gnuboy's video pathway works now & it's looking like it'll be pretty easy to do, Cwiiis did all the hard stuff. I'm writing the pseudocode at the moment & I'll try to get it working tonight but I imagine it's going to take some trial/error.

The palette switching as far as I can tell happens before runtime so it 'should' be fine

Would be nice to work together
Last edited by Unorthodactyl on Tue Sep 10, 2019 10:04 am, edited 1 time in total.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 10, 2019 10:04 am

I was wrong about that, the palette can change during runtime (on Super-Go-Play & Triforce). I'll try to get that working too but changing the palette is less important for me

johannesbehr
Posts: 33
Joined: Thu Jan 03, 2019 12:21 am
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 5 times
Been thanked: 7 times
Contact:

Re: Partial screen updates for gnuboy

Unread post by johannesbehr » Wed Sep 11, 2019 4:32 pm

Hi Unorthodactyl,

I would recommend to use the version from pelle7: https://github.com/pelle7/go-play
It includes a nice but simple menu and works great with pelle's lancher: viewtopic.php?f=159&p=267141#p267141

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Mon Sep 16, 2019 7:55 pm

Update:

Paspartout & I have been hard at work on this, & I'd like to present what I'm calling Super-Go-Play-DX!

Pretty much everything is working now (fairly stable 60 fps on most games), but always room for improvement
Performance in this version is best at full screen scaling (start + dpad-right to switch between scaling modes)

Follow our progress on our respective githubs

Github page for this release:
https://github.com/Unorthodactyl/super- ... perimental

P.S. if performance is really bad when you start a game just turn the odroid off & on to fix. To prevent having to do this, have the odroid @ full brightness (start + dpad-up while in go-play menu) before starting a game (I think this issue exists in the normal go-play too, not sure.)
Attachments
Super-Go-Play-DX.zip
(1019.11 KiB) Downloaded 8 times
Last edited by Unorthodactyl on Tue Sep 17, 2019 6:55 am, edited 1 time in total.

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 6:40 am

I really like the new scaling, but it doesn't save when I exit the game.

Thanks!

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 6:51 am

Hey Nemo, it keeps the menu function of Super Go-Play: press once to save & return to menu, hold to return to menu without saving

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 6:57 am

Unorthodactyl wrote:
Tue Sep 17, 2019 6:51 am
Hey Nemo, it keeps the menu function of Super Go-Play: press once to save & return to menu, hold to return to menu without saving
Hi,

I was talking about the scaling option. Sorry I was unclear.

Thanks again!

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 7:00 am

Oh, sorry! Yes, haven't gotten around to fixing that yet unfortunately. How is the performance for you?

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 7:06 am

So far it's good. Some hiccups sometimes, but nothing too bad. Donkey Kong Country for GBC is a bit funky on the title screen. That doesn't happens with regular Go-Play.

Thanks!

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 7:08 am

Thank you, I'll check it out. Paspartout's version will be available soon which performs better :)
These users thanked the author Unorthodactyl for the post:
Nemo1984 (Tue Sep 17, 2019 7:13 am)

Paspartout
Posts: 21
Joined: Fri Dec 28, 2018 2:13 am
languages_spoken: english, german
ODROIDs: Odroid go
Has thanked: 2 times
Been thanked: 2 times
Contact:

Re: Partial screen updates for gnuboy

Unread post by Paspartout » Tue Sep 17, 2019 7:51 am

Hey,

here is the latest version of our patched version of super-go-play that does partial screen updates.
Thanks to @Cwiiis again for his awesome efforts on the partial screen updates, and thanks
to @Unorthodactyl for starting this and the helpful hints and code :)

The performance on gameboy/dmg games is quite good for the most time, except for games with
heavy scrolling. I haven't tested much platformers yet, so feedback on how the gameplay feels would be interesting.
If we can't update the screen often enough we currently skip frames instead of interlacing which was easier
to implement and for the looks I also kinda prefer that tbh.
Gameboy color games drop a bit more frames than dmg games but for most games I tested the responsiveness is still
a nice improvement.

The changes we applied to the source can be seen here.
Nemo1984 wrote:
Tue Sep 17, 2019 7:06 am
So far it's good. Some hiccups sometimes, but nothing too bad. Donkey Kong Country for GBC is a bit funky on the title screen. That doesn't happens with regular Go-Play.

Thanks!
Thank you for testing. The colors should now be displayed properly in gbc games.
But would be nice if you could confirm :)
Also the scale setting is now saved like original gnuboy.

I also plan to port the changes to the go-play version of pelle7 with that fancy menu.
We also experimented with other scaling factors that could probably be made switchable through that menu.
Attachments
Super-Go-Play-DX.zip
(1.02 MiB) Downloaded 3 times

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 8:10 am

The colors are still messed up on title screen. At least it fixed the colors in the Game Gear emulation. It seems to have slowed down the emulation, the sound is now skipping quite a bit in GBC, the standard Go-Play is now faster. It also removed the fullscreen scaling.

Thanks!

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 8:17 am

Ah, that's annoying! Okay, use my one for now until I can get back to a computer & see what happened.
The fullscreen scaling option was just a hack that fixed sound issues & performance in my version, those issues didn't affect Paspartout's version.

Did the one I posted affect game gear emulation? That's odd

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 8:21 am

Yup. Yours seems to mess up the game gear emulation. If I am not mistaken, gbc and game gear use the same emulator.

Thanks for your work! I love the fullscreen scaling!

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 8:25 am

Huh, I have made some minor changes to odroid_display.c, I'll revert them in that case. Thanks Nemo :)

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 8:27 am

My pleasure! I'm always ready to test.

Paspartout
Posts: 21
Joined: Fri Dec 28, 2018 2:13 am
languages_spoken: english, german
ODROIDs: Odroid go
Has thanked: 2 times
Been thanked: 2 times
Contact:

Re: Partial screen updates for gnuboy

Unread post by Paspartout » Tue Sep 17, 2019 8:31 am

Hm, we need to test more gbc games it seems to get the colors right.

The audio is also skipping quite a bit for me sometimes when there is scrolling in some games. Does the audio also skip when playing unscaled? I fear that the scaling together with more display updates is eating too much cpu and causes audio to stutter. Probably needs more optimization.

We could maybe also add back the fullscreens/stretching as a third scaling option.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 8:33 am

Can't believe I never thought to test DKC, I was using Micro Machines v3 as my demanding game but DKC would be much harder on the diffing function I'd think. Does it run well outside of the title screen?

Paspartout, maybe try setting scaling to 1.2; That fixed sound/performance for me lol.

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 10:16 am

Appart from the title screen, the menu and the map, yes, it's working. And I confirmed that the game gear colors are messed up.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 10:37 am

Sweet as, I'll release a new version when I get home to fix GameGear colours & add persistent scaling. The issue with the menu will be a bit harder, some games are doing something crazy in the menus that messes with the diffing function, I noticed a similar issue in the menu for Micro Machines 2 for GB.

Nemo1984
Posts: 131
Joined: Thu Aug 23, 2018 7:58 pm
languages_spoken: english, french
ODROIDs: Odroid-Go
Has thanked: 11 times
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Nemo1984 » Tue Sep 17, 2019 12:17 pm

Yes. And the poor performance once in a while is a new bug too.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 1:39 pm

Booted up DKC & I see why you would miss fullscreen @Nemo1984 :P

Have you got any examples of that bug?

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 4:46 pm

Okay, I've made some updates to my version

New:
Fix for scrolling/flickering issue on specific static game screens
Default scaling option is now fullscreen
Performance & frame consistency improvements
GameGear colour issues resolved

Please try it out & let me know if there are any issues :)
Attachments
Super-Go-Play-DX.fw.zip
(1017.84 KiB) Downloaded 3 times

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 5:40 pm

Another new build

New:
Extended the static screen fixes to GB
Minor performance improvement
Attachments
Super-Go-Play-DX.fw.zip
(1017.82 KiB) Downloaded 4 times

Paspartout
Posts: 21
Joined: Fri Dec 28, 2018 2:13 am
languages_spoken: english, german
ODROIDs: Odroid go
Has thanked: 2 times
Been thanked: 2 times
Contact:

Re: Partial screen updates for gnuboy

Unread post by Paspartout » Tue Sep 17, 2019 5:46 pm

Hello,

We think we can't do proper palette diffing and partial updates for game boy games with Cwiiis functions at the moment that works on every game.

The technical reason behind this is that there is no unique color palette for a single frame since both dmg and cgb can change palettes during the frame drawing and some games make use of that.
The dmg/normal gameboy games I tested don't do this and for me they look really nice and smooth. But the gameboy color games seem to do that trick more often.
We might try some other approaches like 16bit buffer diffing without palettes or per scanline diffing but that's very experimental and might not work at all.

Unorthodactyl
Posts: 15
Joined: Mon Sep 09, 2019 7:04 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Partial screen updates for gnuboy

Unread post by Unorthodactyl » Tue Sep 17, 2019 6:28 pm

For what feels like 99% of games our current build is very fast & usable (my build plays GBC without any 'major' issues so far), so please continue to test the current build & let us know if you find any examples of games that exhibit the above :)

Attached is the latest build (same as above). Remember after flashing do START + dpad-up to set brightness to max, otherwise you'll need to toggle the power after loading a game.
Attachments
Super-Go-Play-DX.fw.zip
(1017.82 KiB) Downloaded 2 times

Post Reply

Return to “General Topics”

Who is online

Users browsing this forum: No registered users and 0 guests