neil-morrison44 / pocket-sync

A GUI tool for doing stuff with the Analogue Pocket
GNU Affero General Public License v3.0
642 stars 24 forks source link

Gameboy Camera exported images have mismatched pixels/incorrect colouring #334

Closed jkage198 closed 5 days ago

jkage198 commented 5 days ago

Describe the bug When using the Gameboy Camera export feature the user can notice the image is not quite the same as the one on the Analogue Pocket display. There seems to be extra pixels and the colors for some sets of pixels are different.

To Reproduce

  1. Launch Analogue Pocket with Gameboy Camera
  2. Shoot a couple of photos
  3. Press the Analogue button + Up direction to save state
  4. Turn off Pocket, eject SD card and insert into PC
  5. Run Pocket Sync, go to Save States
  6. Find the Camera save state and click export icon to see photos taken
  7. Notice how the images do not quite look the same as the ones on the system

Expected behaviour The images exported on Pocket Sync should match up pixel by pixel (palette can be different)

Screenshots OnAnaloguePocket OnPocketSyncExport

Logs NA

Desktop (please complete the following information): Windows 11 Pocket Sync 5.1.0 Pocket Firmware 2.3

Additional context I tried this feature before and it worked as expected. Now after some months I tried it again on the same Gameboy Camera I own and the result is different. Unfortunately I do not have another gameboy camera to test it with to eliminate it.

neil-morrison44 commented 5 days ago

That’s strange - there’s not been any changes to that bit since it was added. Definitely looks wrong though, I’ll take a look.

neil-morrison44 commented 5 days ago

@jkage198 I've just run through the same steps & am seeing the same issues... however, a save state taken prior to firmware v2.3 works fine.

Just need to work out if it's a bug on Analogue's side or an unannounced change to the save state format I'll have to handle.

neil-morrison44 commented 5 days ago

Looks like it's a semi-announced change in the 2.3 release notes

  • Fixed minor bug affecting GB and GBC Save States

Just need to work out how to automatically detect a 2.3+ save state vs an older one & fix the off-by-one-byte