PetDrawX 2.0
Try It Now!
This is a newly working version of Petdraw for the latest kernel (r42) and VERA. It retains the same features as the original PetDraw by David Murray (technically screen size is broken but I plan on adding it back in) and adds a few small features (more coming). It has been converted over to using cc65 and I've modularized the program into several scopes/procs. C64 compatibility has been removed as well. This version uses drawings made IN Petdraw for displaying the various static menus and that code is fairly easy to use for other applications wanting to pull screen buffer files directly off the filesystem and push them into VRAM. I contacted David about whether it should be renamed or not, and he seems happy with the minor relabel to PetDrawX 2.0.
Latest Changes:
2023-07-04:
* Fixed status bar updates
* Added Home function (moves cursor to left side of screen)
* A few minor tweaks
Previous:
* Auto advance cursor (Option A) - useful for drawing boxes
* File overwriting (can save the file over and over)
* Removed screen size (for now) since it was busted and I wanna redo it and perhaps make the save files include the screensize
* Removed main RAM screen buffer and am using VERA layers instead
* Toggle-able status bar for showing information about what is under the cursor
* Fill background color
More info as well as the source code (which is available under GPLv3) can be found here:
https://gitlab.com/m00dawg/petdrawx
Petdraw X 2.0
Petdraw X 2.0
- Attachments
-
- petdrawx.zip
- (4.83 KiB) Downloaded 1539 times
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
Re: Petdraw X 2.0
Nice little adaptation. I never saw a command to exit and return to BASIC. Is there one? Also, do I need to do anything special with the save files other than bvload them? Thanks.
Re: Petdraw X 2.0
I haven't implemented an exit command so if David didn't in the original Petdraw it isn't there. Wouldn't be too hard to add. PetdrawX has been on my list to get to for some time to be able to handle 256 color mode but I've been waffling on if/how to use it in DreamTracker.
For loading saves, I assume you mean how to load them into your programs? I use assembly but I think BVLOAD is probably what you'd want in BASIC. For assembly, this is what I do:
https://gitlab.com/m00dawg/petdrawx/-/b ... type=heads
(Yes, PetdrawX 2.0 loads Petdraw made files from disk too!)
I'm not sure if BVLOAD uses the MACPTR kernel routine but if you were doing it in assembly, I would highly recommend using it. It's FAST. All the Dreamtracker static UI elements are loaded this way at present (they're from PetdrawX 2.0 also).
For loading saves, I assume you mean how to load them into your programs? I use assembly but I think BVLOAD is probably what you'd want in BASIC. For assembly, this is what I do:
https://gitlab.com/m00dawg/petdrawx/-/b ... type=heads
(Yes, PetdrawX 2.0 loads Petdraw made files from disk too!)
I'm not sure if BVLOAD uses the MACPTR kernel routine but if you were doing it in assembly, I would highly recommend using it. It's FAST. All the Dreamtracker static UI elements are loaded this way at present (they're from PetdrawX 2.0 also).
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
- ahenry3068
- Posts: 1131
- Joined: Tue Apr 04, 2023 9:57 pm
Re: Petdraw X 2.0
I would say it's certain that BVLOAD uses MACPTR. It loads an entire 320x240 8 bit buffer in < 1 second. I don't know any other ROM routine that would support that load time.
Re: Petdraw X 2.0
Ah it must then. One thing I hadn't considered is the screen save is only the viewable area, not the entire buffer. Not sure how that'd affect BVLOAD. The asm routine does it line by line (still quite fast).
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
- ahenry3068
- Posts: 1131
- Joined: Tue Apr 04, 2023 9:57 pm
Re: Petdraw X 2.0
I've implemented it here in BASIC. Using the ROM routines so probably the same logic you would use in ASM.
viewtopic.php?t=7022
The routines I've written aren't blazingly fast but they're actually pretty darn speedy for BASIC code.
BVLOAD wouldn't work with that directly. If smaller than 8k you could BLOAD to a Hi-Ram page and call graph_draw_image. My BASIC code will BLIT random size images but I'm also loading from disc. To use BVLOAD direct to VERA Ram you must be full screen width, doesn't have to be full screen height though.
Re: Petdraw X 2.0
Cool thanks everyone!
I'm making a few basic projects but have also started on my first assembly code project. This app saves me lots of time and knowing how to load the files is perfect
I'm making a few basic projects but have also started on my first assembly code project. This app saves me lots of time and knowing how to load the files is perfect