Hartie95 / BootCtr9

3DS ARM9 code execution at boot
GNU General Public License v2.0
48 stars 4 forks source link

implement double-buffering for animation? #10

Closed zaersc closed 8 years ago

zaersc commented 8 years ago

It would be neat to add double-buffering for the startup animation, to address vsync and tearing issues. A similar request was made on bootanim9 (https://github.com/Wolfvak/BootAnim9/issues/8), but bootctr9 might be in a better spot to achieve that given that arm11 is already used?

Hartie95 commented 8 years ago

Have you tested the latest dev build, it should have minimized the problem. Its inside of the arm9loaderhax technical discussion thread on gbatemp.

zaersc commented 8 years ago

It's only noticeable with the busier video-like animations for me (where lots of things are always changing), simpler logos look good. Nice work in general, just filed hoping there might be something to do for a future version that wasn't too big a pain to implement.

Hartie95 commented 8 years ago

I already thought about adding it after you posted it. I would need to check out how I could enable multiple frambuffers, but it should be possible.

JustForNothing commented 8 years ago

Where I can have the latest dev build ? (I don't see a thread for bootctr9 in gbatemp)

Hartie95 commented 8 years ago

in the arm9loaderhax diskusion thread, but in the next days I will try to make the 1.0 Pre-Release (Which I wanted to relese a few weeks ago) and make a thread for BootCTR9

JustForNothing commented 8 years ago

ok nice ! Which thing will be added ? Between 0.4.1 and 1.0

Hartie95 commented 8 years ago

At the moment top screen animations, luma patching, autosoftboot, screen brightness configuration for bootctr9 and arm9payloads and the beginning of the arm11 api got pushed, and password, arm9companion and compressed animation support will be pushed after some cleaning up. Maybe I will also try to implement this issue before releasing the pre1.0 version. 1.0 itself will be released together with the completed first version of the Arm11 api.

Hartie95 commented 8 years ago

After some reading on 3dbrew I figured out how to implement double buffering, so it will be included in the pre 1.0 release.

Edit: Now the only thing left is 3D support xD

JustForNothing commented 8 years ago

I am hyped now !

Hartie95 commented 8 years ago

Hey, could somebody please test if the tearing is fixed in this build?

https://fmp.hartie95.de/arm9loaderhax/arm9loaderhax.bin

Its a bould of the unpushed source, which includes the password, compressed animation support and uses different framebuffers to eliminate the tearing.

zaersc commented 8 years ago

Looks good, no tearing. I'm not using compressed animation support (don't know offhand how to flag that, maybe it's a 2nd byte in the .cfg file? IDK.)

See in video if you want, used some random psychedelic video from youtube as a basis (busy video.) https://vid.me/xc7w

Hartie95 commented 8 years ago

OK, thanks for the test. And yes, to enable the compression the second byte in the configuration file needs to be 1. The code is pushed and I will use this as an RC version for the pre 1.0 release, so I will close this issue.

Maybe I will also add support for plaintext animation configuration files in the next days, but first I need to check out how bootanim9 is identifying the configuration file type.

Edit: Done, [animation].cfg will now be read as plaintext, and [animation].cfgb will be read as binary configuration file.