Skip to content

Releases: gi-os/Roll

Roll v3.1.151

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:50

Every video ended the same way: viewfinder dark, then "Camera restarted." The recording itself
was fine. The watchdog was reading a clock that nobody had restarted.

The chain, in order. Stopping a recording asks the muxer to flush, and on this hardware that
flush takes seconds — it stalls the repeating request the whole time, so the preview stops
delivering frames and the frame-stamp clock stops with it. That part is known and handled: the
finalizing guard holds the watchdog off for exactly as long as the muxer is writing, because
rebinding mid-finalize takes down the camera service.

What was missed is the handoff at the end. When Finalize lands and the guard drops, the last
frame stamp is still from before the stop — five, ten, twenty seconds old, already far past the
4-second stale limit. The watchdog's next tick, at most a second and a half later, compared now
against then, declared the camera dead, and rebound it. A false verdict, delivered after every
recording whose flush outran the limit — which on this phone is every recording. Hence the report:
"froze after recording video every time."

It cost more than the restart. The watchdog's first dark-preview response is to quarantine
zero-shutter-lag for the session — the right move against a genuinely dying session, and pure
collateral here. Every video quietly degraded the photo mode you went back to.

One line fixes it: the stamp clock restarts the moment the recorder lets go, before the guard
drops. The preview gets the full stale limit to deliver its first frame after the muxer's stall —
and a session that genuinely died during the flush is still caught, one limit later. Restarted to
now rather than zeroed, deliberately: a zeroed clock never fires, and a camera that died in the
flush would have kept a blind watchdog and a dark viewfinder forever.

Fixes [light-reports#214] — froze after recording video every time.
Fixes [light-reports#213] — Preview went dark. Camera restarted (v3.0.148).
Also explains #207, #192, and the v2.9x "fault chip" family, all closed as duplicates — this code
predates v3.0, which is why the same report arrived from both v2.94 and v3.0.

Roll v3.0.149

Choose a tag to compare

@github-actions github-actions released this 01 Sep 16:33

It's been a while since 2.60 — 39 nightly builds, to be exact — but we think the wait was worth it. Here's what changed.

The wheel is the whole game now

Click the wheel and a list of controls spins up: filters, exposure, shutter, ISO, focus, zoom. Turn to pick one, click again, and the wheel is yours to adjust. Want to keep it locked on a single control? Tap its icon in the band and it's locked — a pocket bump won't move it after that.

A proper meter

Turn the wheel and a ladder of numbers slides down the edge of the frame. A red needle points at your setting — actually just the tip of one, swinging in from off-screen. Drag the ladder to jump around, tap it to lock the dial, and it tucks itself away after a few seconds.

Zoom reads like a lens barrel now: 1.0 at the bottom, 8.0 at the top, and every framing in between. Pinch to zoom raises the same ladder while your fingers are down.

One press, three files

This one's for anyone who shoots raw but loves a good filter: a single press can now save a DNG, a PNG, and a JPEG of the exact same moment. The DNG is your negative — no filter ever touches it. The PNG carries the filter without a second compression. The roll keeps all three together as one photograph with a little tag in the corner; tap it to flip between them, then send one file or the whole set. Find it under Settings > Frame > Files.

The shutter never waits

Press it and you have the photo. Period. Roll develops it in the background, one at a time, while you're already framing the next shot. See that small bar next to the counter? That's the queue draining. Hold the shutter down and it just keeps shooting.

Remember when three quick shots used to freeze the viewfinder and kill the camera? Not anymore. The queue lives on disk now — take as many as you want.

Exposure by hand

Four modes: auto, shutter priority, ISO priority, and manual. The wheel takes over whichever half of the exposure you hand to it, with the stops sitting right beside the ladder. Settings > Camera > Exposure.

Zone focus

For the street photographers among us: set a distance and shoot. No waiting for autofocus to catch up — it's exactly why Ricoh built snap focus into the GR. Peaking marks the edges that are sharp, and the readout tells you what's in focus in feet or meters.

One caveat: the coarse filters switch it off. Dither 16, 1-Bit, Halftone, and the two Game Boys throw away the detail you'd be judging.

Your photos, on a map

The roll now has a Map tab sitting right beside Camera and Starred, with every shot pinned where you took it — as a thumbnail of the photo itself, not a dot. Turn the wheel to zoom, drag to move around, and tap a stack to lay out everything you shot in that spot along the bottom. Location tagging is on by default — Settings > Camera if you'd rather it wasn't. Select a whole day to send it or delete it in one go. Perfect for clearing out an entire trip.

Ten adjustments

We built a proper editing panel: exposure, contrast, highlights, shadows, vibrance, warmth, tint, sharpness, grain, vignette. Each one is a minus, a plus, and a line of plain-English text explaining what it does.

If you remember one thing, make it vibrance — it lifts color and somehow leaves skin alone, which is black magic as far as we're concerned. And if you leave all ten at zero, Roll saves the file exactly as the camera made it. No surprises. Settings > Look > Picture.

Filters, on a real photograph

Settings > Look > View Filters shows the whole catalog on a real photo, rendered live on your phone, one filter per page. Tap to take one off the wheel or put it back. And the big one: filters no longer take your other controls away.

When something breaks, it says so

A small mark in the corner counts camera faults and fades after ten seconds. Tap it to read what happened. If the app crashes, shake your phone twice and it'll send a report with a screenshot. And if a crash happened last time, it reports itself the moment you open the app. We're not just saying "sorry" — we want to actually fix it.

Thanks for sticking with us through all those nightlies. Go shoot something.

Nightly 3.1.150

Nightly 3.1.150 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:35

Every video ended the same way: viewfinder dark, then "Camera restarted." The recording itself
was fine. The watchdog was reading a clock that nobody had restarted.

The chain, in order. Stopping a recording asks the muxer to flush, and on this hardware that
flush takes seconds — it stalls the repeating request the whole time, so the preview stops
delivering frames and the frame-stamp clock stops with it. That part is known and handled: the
finalizing guard holds the watchdog off for exactly as long as the muxer is writing, because
rebinding mid-finalize takes down the camera service.

What was missed is the handoff at the end. When Finalize lands and the guard drops, the last
frame stamp is still from before the stop — five, ten, twenty seconds old, already far past the
4-second stale limit. The watchdog's next tick, at most a second and a half later, compared now
against then, declared the camera dead, and rebound it. A false verdict, delivered after every
recording whose flush outran the limit — which on this phone is every recording. Hence the report:
"froze after recording video every time."

It cost more than the restart. The watchdog's first dark-preview response is to quarantine
zero-shutter-lag for the session — the right move against a genuinely dying session, and pure
collateral here. Every video quietly degraded the photo mode you went back to.

One line fixes it: the stamp clock restarts the moment the recorder lets go, before the guard
drops. The preview gets the full stale limit to deliver its first frame after the muxer's stall —
and a session that genuinely died during the flush is still caught, one limit later. Restarted to
now rather than zeroed, deliberately: a zeroed clock never fires, and a camera that died in the
flush would have kept a blind watchdog and a dark viewfinder forever.

Fixes [light-reports#214] — froze after recording video every time.
Fixes [light-reports#213] — Preview went dark. Camera restarted (v3.0.148).
Also explains #207, #192, and the v2.9x "fault chip" family, all closed as duplicates — this code
predates v3.0, which is why the same report arrived from both v2.94 and v3.0.

Nightly 3.0.148

Nightly 3.0.148 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 03:08

It's been a while since 2.60 — 39 nightly builds, to be exact — but we think the wait was worth it. Here's what changed.

The wheel is the whole game now

Click the wheel and a list of controls spins up: filters, exposure, shutter, ISO, focus, zoom. Turn to pick one, click again, and the wheel is yours to adjust. Want to keep it locked on a single control? Tap its icon in the band and it's locked — a pocket bump won't move it after that.

A proper meter

Turn the wheel and a ladder of numbers slides down the edge of the frame. A red needle points at your setting — actually just the tip of one, swinging in from off-screen. Drag the ladder to jump around, tap it to lock the dial, and it tucks itself away after a few seconds.

Zoom reads like a lens barrel now: 1.0 at the bottom, 8.0 at the top, and every framing in between. Pinch to zoom raises the same ladder while your fingers are down.

One press, three files

This one's for anyone who shoots raw but loves a good filter: a single press can now save a DNG, a PNG, and a JPEG of the exact same moment. The DNG is your negative — no filter ever touches it. The PNG carries the filter without a second compression. The roll keeps all three together as one photograph with a little tag in the corner; tap it to flip between them, then send one file or the whole set. Find it under Settings > Frame > Files.

The shutter never waits

Press it and you have the photo. Period. Roll develops it in the background, one at a time, while you're already framing the next shot. See that small bar next to the counter? That's the queue draining. Hold the shutter down and it just keeps shooting.

Remember when three quick shots used to freeze the viewfinder and kill the camera? Not anymore. The queue lives on disk now — take as many as you want.

Exposure by hand

Four modes: auto, shutter priority, ISO priority, and manual. The wheel takes over whichever half of the exposure you hand to it, with the stops sitting right beside the ladder. Settings > Camera > Exposure.

Zone focus

For the street photographers among us: set a distance and shoot. No waiting for autofocus to catch up — it's exactly why Ricoh built snap focus into the GR. Peaking marks the edges that are sharp, and the readout tells you what's in focus in feet or meters.

One caveat: the coarse filters switch it off. Dither 16, 1-Bit, Halftone, and the two Game Boys throw away the detail you'd be judging.

Your photos, on a map

The roll now has a Map tab sitting right beside Camera and Starred, with every shot pinned where you took it — as a thumbnail of the photo itself, not a dot. Turn the wheel to zoom, drag to move around, and tap a stack to lay out everything you shot in that spot along the bottom. Location tagging is on by default — Settings > Camera if you'd rather it wasn't. Select a whole day to send it or delete it in one go. Perfect for clearing out an entire trip.

Ten adjustments

We built a proper editing panel: exposure, contrast, highlights, shadows, vibrance, warmth, tint, sharpness, grain, vignette. Each one is a minus, a plus, and a line of plain-English text explaining what it does.

If you remember one thing, make it vibrance — it lifts color and somehow leaves skin alone, which is black magic as far as we're concerned. And if you leave all ten at zero, Roll saves the file exactly as the camera made it. No surprises. Settings > Look > Picture.

Filters, on a real photograph

Settings > Look > View Filters shows the whole catalog on a real photo, rendered live on your phone, one filter per page. Tap to take one off the wheel or put it back. And the big one: filters no longer take your other controls away.

When something breaks, it says so

A small mark in the corner counts camera faults and fades after ten seconds. Tap it to read what happened. If the app crashes, shake your phone twice and it'll send a report with a screenshot. And if a crash happened last time, it reports itself the moment you open the app. We're not just saying "sorry" — we want to actually fix it.

Thanks for sticking with us through all those nightlies. Go shoot something.

Nightly 3.0.147

Nightly 3.0.147 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 02:46

This release collects everything since v2.60, the last build most people took. Thirty-nine
versions went to the nightly channel in between. The camera you open is a different camera.

On the first launch, Roll shows a page that lists what is new. Read it once. It does not come back.

One press, more than one file

A photograph can be more than one file. Roll writes a DNG, a PNG and a JPEG from the same press.
The DNG is the negative and never carries a filter. The PNG carries the filter without a second
compression. The roll shows the set as a single photograph, and a tag in the corner switches
between the files. Send or delete one file, or the whole set. Turn the formats on in Settings,
Frame, Files.

The wheel holds any control

Click the wheel to pick a control. Turn to choose it, click to lock it in, then turn to adjust.
Filters, exposure, shutter, ISO, zone focus and zoom all ride the same wheel. Tap the icon in the
band to lock the wheel on one control. The wheel stays on that one until you tap the icon again.

The meter

A ladder of values stands at the edge of the viewfinder. A red needle sweeps on a pivot off the
screen. Only the tip of the needle enters the frame. The ladder shows what the wheel
holds and where the setting sits. Drag it with a finger to jump to a value. Tap it to lock the
dial. It arrives when you turn the wheel and leaves a few seconds later.

Zoom reads like a lens barrel: 1.0 at the bottom, 8.0 at the top, and every framing between them.
One notch of the wheel moves the lens by a fraction of a stop. The needle moves by the same
fraction of the gap. Pinch to zoom raises the same meter for the length of the gesture.

Manual exposure

Four modes: auto, shutter priority, ISO priority and manual. The wheel carries the half of the
exposure that the mode leaves to you. The shutter and ISO ladders show the stops. Settings,
Camera, Exposure.

Zone focus

Set the distance and shoot without waiting for autofocus, the way a street camera works. Peaking
marks the edges that are sharp. The readout says what is in focus, in feet or in meters. A coarse filter removes the detail this
needs. Roll turns zone focus off under one, and offers it again with the next fine filter.

The press is the photograph

The shutter no longer waits. Roll takes the frame at your finger and develops it behind you, one
at a time. The bar beside the count shows the queue as it drains. Hold the shutter down for a
burst. Three fast shots used to lag the viewfinder and then crash the camera. The queue now lives on disk
instead of in memory. The number of shots in a row is your decision.

A map of the roll

The roll has a map scope beside Camera and Starred. Photographs sit where you took them. Location
tagging starts on and turns off in Settings, Camera. Select a day in the roll to send or delete a
group at once.

Ten picture adjustments

Exposure, contrast, highlights, shadows, vibrance, warmth, tint, sharpness, grain and vignette,
in Settings, Look, Picture. Each row has a minus button, a plus button and one line that says what
it does. With all ten at zero, Roll writes the file without changes.

Every filter, on a real photograph

Settings, Look, View Filters shows the whole catalog on a photograph, rendered live on the phone.
Tap one to take it off the wheel or to put it back. The wheel and the grid follow the same list.
Filters no longer take the other dials away.

It tells you when something goes wrong

A small mark in the corner counts camera faults. It shows for ten seconds after a fault, then it
fades. Tap it to read what happened. Shake the phone twice to send a report with a screenshot. A
crash from the last run reports itself on the next launch.

Under the hood

Zero shutter lag is off by default, because it can wedge this sensor. A watchdog restarts the camera if the sensor
stops answering. It waits while a photograph is in flight instead of interrupting it. The camera no longer restarts when you go to the roll and come back.

Nightly 3.0.146

Nightly 3.0.146 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 02:09

"-4" is whole again, and the needle points at the number it means. Both were the same fault.
The ladder drew its numbers on a baseline tuned for text about one rung tall, which was true until
EV's numbers grew: EV prints one number every third rung, so it sizes them off that wider gap, and
at that size the labels sat low of the mark they name and the end ones ran off the strip, where
the clip that keeps the ladder out of the roll cut them.

The needle, the numbers and your finger now share one layout. Rungs are centred by the font's own
metrics instead of a fraction of a slot, and the ends get exactly as much room as the tallest label
needs, so nothing overflows and nothing is cropped. At EV 0 the red line sits on the 0.

Nightly 2.99.145

Nightly 2.99.145 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 01:54

Ten adjustments, in Settings, where you can find them. Exposure, contrast, highlights,
shadows, vibrance, warmth, tint, sharpness, grain and vignette now live in Settings under LOOK,
each with a minus and a plus and a line saying what it does. They were only ever reachable from
the list icon on the viewfinder band, and the wheel's channel button took that slot over, so
they had quietly become unreachable. Every value at zero still means the file is untouched.

Bigger numbers on the value ladders. EV, zoom, focus, shutter and ISO get a deeper strip and
numbers set as large as the rungs allow. Filters keep the small setting, since twenty-odd
three-letter codes at that size would run into each other.

Zone focus steps aside for the coarse filters. Focusing by zone is a judgement made by eye off
the preview, and Dither 16, 1-Bit, Halftone and the Game Boys have thrown the detail away before
it reaches the glass. Under those looks the focus channel leaves the dial and zone focus switches
itself off, in both directions: turning a coarse filter on drops it, and asking for it under one
is declined. Every other channel stays exactly where it was.

Nightly 2.98.144

Nightly 2.98.144 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 01:21

The wheel zooms continuously again, and the needle shows where you are. The printed numbers
are landmarks on a lens that has every framing in between: 2.4x is a real setting, and a needle
that could only stand on 2 or 3 was lying about it. Each notch moves the lens a fraction of a
stop and the needle slides that same fraction of the gap, so racking the wheel reads as one sweep
past the numbers instead of a pointer jumping between them.

Spacing is logarithmic, the way the marks are laid out and the way zoom is felt: 1.5 to 2 and 4 to
6 are the same distance to a hand and the same distance on the ladder. Pinch and the ladder drag
are unchanged, and both show up on the needle the same way.

Nightly 2.97.143

Nightly 2.97.143 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 01:06

The needle moves on every channel. The real fault was one line up from where I kept looking:
the gauge was reading the wheel, EV, zoom and focus from values collected at the top of the screen
but never read inside the meter's own block, and Compose only redraws the part of a screen that
actually reads a value. Filters worked by accident, because the filter is read elsewhere in the
outer body and drags the whole screen along with it. The meter reads its own inputs now, so EV,
zoom, focus, shutter and ISO all sweep the way filters always did.

The !n mark fades after ten seconds. A mark that stayed until it was read made sense while
faults were being hunted and reads as a bandage now that they're rare. It shows for ten seconds
after the most recent fault, then fades out of the picture. Nothing is lost: the tally stands and
a shake report still carries every name.

Nightly 2.96.142

Nightly 2.96.142 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 00:49

The zoom ladder runs the way the barrel is marked. 1.0 at the bottom, 8.0 at the top. It was
upside down.

One notch, one mark. The wheel used to zoom by an eight percent multiplier, which is right for
a pinch and wrong for a dial with a ladder next to it: eight notches moved the needle less than the
gap between two printed numbers, so the wheel read as dead. On the zoom channel the wheel now walks
the marks, one per notch. Pinch stays continuous for framing.

Pinch raises the zoom meter. Two fingers on the glass bring the zoom ladder up for the length
of the gesture, whatever the wheel is holding, then it retreats and the wheel keeps the channel it
had. The gesture borrows the meter instead of reassigning your dial.