C64 disk editor
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    I'll just split this of into a new thread since this won't have anything to do with QT if and when it gets done.

    @red

    >Are you familiar with the C64 file system(s)?

    My C64 experienced sofar:
    - 2 hours of cameplay (some Jump'n'Run involving logs) at my cousin's about 30 years ago
    - another 2 hours of gameply with the DTV C64 joystick before dusting it in about 10 years ago

    >DiskImagery64 is a portable (Qt 4.2.x-based), open-source D64 disk
    >image editor.It offers a nice GUI with drag-and-drop support between
    >disk images and the local file system.

    Creating a listview with the image's content and allowing basic editing including drag and drop should be no problem. Wether those are than used in a classic 2 lister Dopus4 style or in mutiple windows is a matter of taste.

    >Runs programs or mounts images directly in your favorite emulator.

    "Running" -> calling something like "vice myimage.D64" no prob
    "Mounting" -> notifiying the emulator of a diskchange, need to look into what API vice offers

    >RR-Net support is available and allows to transfer programs and even
    >disk images directly to your real C64.

    That might be a bit harder (no experience on network coding)

    >DiskImagery64 is a GUI application that allows to quickly view and
    >edit a large set of disk images and allows to copy or move files by
    >simple dragging them from one image to the other. Moreover, a file
    >browser will allow access to your local file system and from there
    >you can also drag files to an image
    >and vice versa.

    Just a repeat of what was written above


    >Added full WarpCopy64 support! Warp/Slow read/write disk images
    >directly from/to real disks. Send DOS Commands, format or verify
    >disks.
    >Drag files from your Desktop/Finder directly into a disk image

    All depends on how you plan to connect that 1541 to your MorphOS-puter and what API are available.

    >Double-click on file automatically runs program on real C64
    >Fixed bugs in separator handling


    >Open D64 Images by double clicking
    >Open many Image Browsers simulatenously
    >Drag and drop files between Disk Images to quickly create new ones
    >Drag and drop files between Disk Images and a File Browser showing
    >the local file system
    >Automatically convert file names between local Unicode files and
    > PETSCII names. >Add/strip extensions correctly.
    >Add custom Seperators to your disk images.

    All this seems to be available in that diskimage.lib

    >Edit all entries directly in PETSCII and use the Charset window to
    >quickly copy & paste graphic chars.
    >Automatic naming scheme to quickly create sets of new image
    >files with correctly formatted disk images
    >Mount a disk image directly in your favorite C64 Emulator
    >Run a selected program in a disk image directly in your Emulator
    >View D64 Directory in authentic scalable CBM TrueType font
    >Toggle between shifted and unshifted CBM Font
    >Uses Diskimage-Library written by Per Olofsson

    Most of these might be possible by lifting the code from DI64

    >It looks like Diskimage-library is in GCC, so should be an easy port?

    Erm... just install the MorphOS-SDK, download DI64, go into dislimage dir, type "make" -> lib ported

    >A nice graphical Commodore disk image manipulator, that can drag
    >and drop between the disk image and the native file sytstem, would
    >be sweet.

    Will do, might take a little longer as I plan to reuse it's code for something completly different.

    > All the extra features like launching an emulator from the interface and
    >RR-Net support would be gravy.

    [ Edited by Kronos 11.10.2013 - 08:45 ]
  • »11.10.13 - 07:42
    Profile
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    Was bored....
    Grab.png

    Just some random&weird .d64 I found on the net, don't worry bout the unused string gadgets, this is just some reused code from another project atm.
  • »11.10.13 - 15:20
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Doffo
    Posts: 508 from 2010/10/14
    From: Nevada
    Keep it up! :) Will keep my eye on such a program.
    -=-=-=-
    YUUUP!
  • »11.10.13 - 15:42
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    bash64
    Posts: 958 from 2010/10/29
    From: USA
    I know c64 inside and out if you need to ask questions.
    I used to love using the disk editors.
    Sometimes the only way to make mods to software was with a disk editor with a built-in machine language monitor.
    Mac G5 ISight 21" 2.5 gb of ram 233gb hd matshita dvd-r uj-846
    Powerbook G4 1.67ghz 2GB, ATI 9700M Pro 128mb
    1TB hd, DL-DVD Burner, Netgear pcmcia wireless card.
    ImageFX 4.5, PageStream 3.3, PhotoGenics 5.0
  • »12.10.13 - 10:49
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    redrumloa
    Posts: 1424 from 2003/4/13
    @Kronos

    That's pretty kick ass that you are taking this on!

    I'm not terribly worried about Warp Copy/rr-net support at this time. It requires a real C64 connected to the network with an ethernet (such as rr-net). I don't have the space to set up a real C64 these days.

    Quote:

    >A nice graphical Commodore disk image manipulator, that can drag
    >and drop between the disk image and the native file sytstem, would
    >be sweet.

    Will do, might take a little longer as I plan to reuse it's code for something completly different.



    That's cool, I am in no rush. I have a Windows PC and emulators handy. It would be nice to have eventually, so thanks for tackling it!

    [ Edited by redrumloa 12.10.2013 - 10:26 ]
  • »12.10.13 - 15:25
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Jupp3
    Posts: 1193 from 2003/2/24
    From: Helsinki, Finland
    Kronos,
    Quote:

    Creating a listview with the image's content and allowing basic editing including drag and drop should be no problem. Wether those are than used in a classic 2 lister Dopus4 style or in mutiple windows is a matter of taste.

    Remember that C64 uses its own font which has lots of custom graphical elements. Not saying this couldn't be done, just that things will look rather wrong with random font, especially if it isn't monospace :-)
    Quote:

    >RR-Net support is available and allows to transfer programs and even
    >disk images directly to your real C64.

    That might be a bit harder (no experience on network coding)

    Network support & WarpCopy etc. are features mainly used on outdated hardware (like Retro Replay and MMC Replay by Individual Computers). Since then we got 1541 Ultimate, which emulates floppy drive (which Jens didn't want to do for his older hardware for some reason, but quickly added it to his Chameleon C64 emulator, when the feature became incredibly popular)

    So: How to run random multi-file demo / game that uses non-standard loader (nearly all do) you got as a disk image. Using easiest approach available.

    MMC64: Either copy the file to its SD card, OR send the image via network, then write it to an actual floppy disk in an actual floppy drive with provided software. Then run the program from the physical disk, with or without the module.

    1541 Ultimate: Copy file to SD card / USB stick. Plug it into C64, select image from menu, and run it.

    Should be obvious why WarpCopy & MMC Replay usage has been in decline lately :-)

    Also, the latest version (1541 Ultimate 2) doesn't even have Ethernet connector anymore, so WarpCopy cannot even be used with it at all.

    Of course it has USB port instead (which I consider much better), and the idea is to support USB Ethernet / Wireless adapters at some point. But as long as it's not done, it cannot be used at all. In my opinion, it's better to dedicate the network functionality for few random C64 online games :-)

    Also, if it would be easier, check c1541 from vice package. It does most of the things that DiskImagery64 does (or those that people actually use, so doesn't support f.ex. WarpCopy I think)

    And if someone is thinking "why not just mount the image?" - let's put it simply. With many single file programs it would probably work just fine, but you might get in trouble with f.ex. C64 filetypes (prg, seq...), file ordering in directory and many programs use disks in completely non-standard way (in which case, copying files with disk image manager wouldn't help either). Also, wouldn't display filenames properly. In short, could be done (has been done on classic, I have copied files to 1541 attached via parallel port interface by dragging files to the drive), but usability is rather limited.
  • »12.10.13 - 17:15
    Profile Visit Website
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    Was bored again:

    http://www.steamdraw.homepage.t-online.de/c64d.lha

    This will just list the files in a selected diskimage as best as it can, and then allows you to dump them into RAM:

    @Jupp3
    Yeah, allready noticed that alot of the names are just weird nonsense and not everything listed as file will be properly dumped.....

    @all
    Please have a close look at which package (diskimage-0.95 or c1541) offers better options for things really needed. Doesn't make much different wether the GUI is wrapped around some link.lib or a bunch of shell commands. Sofar it's all just a slight typing exercice wouldn't like to waste actual time on something that won't be usefull.

    [ Edited by Kronos 12.10.2013 - 19:17 ]
  • »12.10.13 - 18:03
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    redrumloa
    Posts: 1424 from 2003/4/13
    Kronos,
    Quote:

    Please have a close look at which package (diskimage-0.95 or c1541) offers better options for things really needed.


    Hmm, I can't say I am familiar with "c1541"?
  • »12.10.13 - 19:51
    Profile
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    @red

    Quote:

    Jupp3 wrote:
    Also, if it would be easier, check c1541 from vice package. It does most of the things that DiskImagery64 does (or those that people actually use, so doesn't support f.ex. WarpCopy I think)
  • »12.10.13 - 21:01
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Jupp3
    Posts: 1193 from 2003/2/24
    From: Helsinki, Finland
    Practical c1541 usecase:
    c1541 -format test,13 d64 test.d64
    c1541 -attach test.d64 -write program1.prg
    c1541 -attach test.d64 -write program2.prg
    c1541 -attach test.d64 -list

    That will format new disk image called test.d64, copy program1.prg and program2.prg into it, and print directory. Basically almost directly from Makefile :-)

    @Kronos:

    Don't know how well suited c1541 would be for f.ex. reorganizing disk (moving files around, they will be on disk in the format they were copied) or any other sensible extra functionality that DI64 might offer. I need it for creating empty disk images and copying files to them, and it does that just fine :-)

    If you were going for "full rewrite", c1541 code is probably easier to understand as it's written in C.

    -EDIT-

    Also I thought it might be a good idea to mention c1541, as many people don't even know it exists, and they already have it on their hard disks...

    You can find the default C64 character sets in image form f.ex. here: here

    Note that there are 2 of them. 2nd one has lower case letters, but first one is actually the "default", and the one, with which 99% of disk directories look correct. You could make it possible to switch between.
  • »13.10.13 - 13:47
    Profile Visit Website
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    @Jupp3

    Yeh, thought it would work something like that, but...

    - diskimage is also written in C (not the niecest coding style but still readable)
    - the examples you get when you compile diskimage work in a similar way (only that they are seperate tools)
    - diskimagery64 does come with a bunch of costum ttf fonts not sure what would be easier to implement in a listview


    So here are my questions:
    - does the provided alpha works as it should, or are there fundamental problems ?
    - does c1541 offer any functionality that couldn't be done based on diskimage or the other way round ?


    Here is what I may do:
    - create/format new images
    - delete/rename files in image, change image-title
    - open as many C64D windows as requiered
    - copy files between those windows by drag&drop
    - drop files from Ambient into C64D window (other way should also be possible)
    - list files as close to C64-look as possible
    - add a button (or more) for a "run in C64" script

    Bonus:
    - display txt or gfx files just as they would look on C64

    Feel free to add any "must have" features.

    [ Edited by Kronos 13.10.2013 - 15:52 ]
  • »13.10.13 - 14:52
    Profile
  • Moderator
    Kronos
    Posts: 2431 from 2003/2/24
    Not dead yet ....

    Took the fonts from http://sourceforge.net/projects/diskimagery64/files/ converted/installed them with tools/FTManager and then selected CBMshift Medium for lists in the Disk-Utilitiy's MUI-Setting.


    Grab2.png

    Doing it properly would mean setting that font in the source code so it only affects the list and the diskname-string (currently it also changes the the list in MUISettings.... funky).

    So please repeat that procedure and check wether results look correct or if when the non-shift font has to be used (that one is mostly symbols). Also still waiting on feedback on dumping files.
  • »12.11.13 - 14:23
    Profile