Giter Club home page Giter Club logo

Comments (10)

Sappharad avatar Sappharad commented on August 22, 2024 1

Volume label and other disc metadata can be set in the advanced dialog.

The timestamp and empty directory things sounds like they might be worth looking at.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024 1

I believe the time shift problem could originate in GD-ROM Explorer. From what I can see by decompiling that app, it's not using the time zone offset in the disc image and just extracting everything as local time:
image
GDIBuilder writes all timestamps in UTC, since that's just how they're usually handled by most disc image tools including the one I based the image building code on. So each time you extract and rebuild the same image, it's going to move by however many hours from UTC your time zone is.

I'm not sure which is correct. From a standpoint of "this is how the ISO9660 spec says timestamps on disc images should work" GD-ROM Explorer appears to be doing it incorrectly. But if SEGA's original tools also did it incorrectly, then I would need to also ignore the time zone.

I have fixed the support for empty directories locally and also will add the missing timestamps to directories.

Before I do anything else I'll probably contact jc and see if the GD-ROM Explorer behavior is intentional or a bug.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024 1

Alright, I've answered the outstanding questions myself. I never heard back from japanese_cake, but I confirmed that GD-ROM Explorer's behavior is incorrect. Official Dreamcast GD-ROM timestamps are actually saved with their original time zone offsets intact. A majority of games have their time zones set to UTC+9 which is the Tokyo time zone. But something like Planetweb 3.0 has all of the timestamps set to UTC-8 which is US Pacific time.

Right now, as I said in my previous post, GDIBuilder converts all times to UTC on image generation, but when your operating system converts those back to local time they will be a 1:1 match for the original times. GD-ROM Explorer throws away the time zone info and just treats the original timestamps as if they are your local time zone. So every time you extract a GD-ROM with that tool and re-build it with GDIBuilder, it's going to push the times off by however many hours away from UTC you are.

There's nothing I need to fix regarding the times, since they will be correct according to ISO9660 spec. The only potential improvement I could make is letting you manually set the time zone to write the disc image as. If a tool is properly reading time zone information, you would still see the exact same times no matter what time zone we write the disc as. But once you've extracted a disc's contents, you'll never know what time zone the files came from because both Windows NTFS and macOS convert all times to UTC also. This ensures that no matter what time zone you're in, you'll always see the correct time relative to where you are now.

At the moment, I don't see any benefit to letting you force which time zone your disc timestamps are set to. I'll go ahead and do a new release with the empty folder & folder timestamp stuff fixed, but since jc seems to have disappeared maybe we also need a hacked build of GD-ROM Explorer to fix the time zone problem.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024 1

This is why I haven't closed this issue yet. Since japanese_cake seems to be missing, I'm going to release my own modified build of GD-ROM Explorer that fixes two things:

  1. The time zone data on paths is now read from the disc and displayed in your local time zone. Likewise, it's extracted with the correct times for your local time zone.
  2. When directories are extracted, the "Last modified" timestamp gets overwritten because it creates the directory and extracts files into it right away. The timestamp for an extracted directory is now set both before and after it's extracted, so the original timestamp is shown in windows explorer as long as you don't edit the content of the folder.

Screen Shot 2019-12-08 at 9 35 36 PM

Here I extracted the SA2 demo that came with PSOv2, rebuilt it with GDIBuilder (You can tell because I changed the volume name to TestRebuild), and the timestamps now match perfectly.

Release is coming shortly, I was hoping for today but maybe in a few days.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024 1

Unofficial GD-ROM Explorer 1.6.3.2 build. I will post about it publicly later in the week once I've tested it more to make sure I didn't introduce any bugs in the process of updating someone else's closed-source application.

Edit: I found another instance of the date that needs to be updated. Also, porting it to macOS because why not.
image

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024

It is my intention to release the new version tomorrow. I will close this issue once the release has been posted. I had made some other updates to modernize the code base and they took a little bit longer than I intended.

Edit: I released it, but I'm not closing this issue just yet. More details soon.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024

This is now officially released:
https://projects.sappharad.com/tools/gdibuilder.html

The unofficial version of GD-ROM Explorer with time zone fixes can be downloaded via my site at the link above.

from gdibuilder.

tjanas avatar tjanas commented on August 22, 2024

@Sappharad When running gditools.exe --extract-all, it does not seem to be extracting empty directories.

from gdibuilder.

Sappharad avatar Sappharad commented on August 22, 2024

@Sappharad When running gditools.exe --extract-all, it does not seem to be extracting empty directories.

I don’t know what that is. I did not write it.

from gdibuilder.

tjanas avatar tjanas commented on August 22, 2024

Apologies, I will try to contact its author.

from gdibuilder.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.