Jump to content
IGNORED

Aquarius Draw: Full-Featured Web-Based Scene Designer for Aquarius


MattPilz

Recommended Posts

Welcome to... Aquarius Draw!

 

title_01.png

 

draw-title.jpg

 

Aquarius Draw Application: https://aquarius.mattpilz.com/draw/

 

Aquarius Draw User Manual: https://aquarius.mattpilz.com/help.php

 

Aquarius Draw Online Gallery: https://aquarius.mattpilz.com/gallery.php

 

Introduction

 

What began as a weekend hackathon for my own amusement and to better familiarize myself with the Aquarius, quickly spiraled into a multi-month long initiative to create a very powerful tool for all Aquarius developers and enthusiasts.

 

Aquarius Draw is a free, modern web-based application (desktop-only) that allows you to quickly design and prototype scenery within the technical confines of Aquarius. This artwork can then be exported as a PNG, saved to an online gallery, or output as boilerplate Aquarius BASIC or Machine Language to load onto emulators or the devices themselves.

It has a huge variety of features and I recommend reviewing the help documentation as well as opening the Keyboard Shortcut panel (F1) to better familiarize yourself with the system. This should rapidly accelerate a lot of software-based efforts in the future, but also is fun just to draw and experiment with even for non-Aquarius users that want to make retro art.

I recommend Chrome (Firefox and Edge also supported). You can use the browser's ZOOM to scale the display so it all fits nicely on your screen: Use only zoom levels of 50% (low resolution), 75% (less than 1080p), 100% (1080p), 125% (1440p) or 200% (4k) to ensure minimal distortion.
 

Feature Highlights

 

  • Full 256 Character Glyph Selector (Sorted and Original Order) with 16-color Background/Foreground and Large Preview
  • 40x24 Drawable Canvas Area and Personalized Border
  • Toggles and Actions to Fine-Tune Drawing Operations
  • Tile Inspector Stats for User Reference
  • Input/Output Actions for Saving and Loading Scene Data
  • Customizable BASIC and Machine Language (Assembly) Boilerplate Code Output for Testing on Emulators or Devices
  • Dynamic Preview of Output with CRT/Monochrome Simulation
  • Export Scene Images as High Quality PNGs
  • Tile Selection Tool with Cut/Copy/Paste Capabilities
  • Pre-populated Templates (Title Screen, Demonstrations and Examples)
  • Tile-specific POKE Data Generation (Raw, with Lines or as DATA Rows)
  • Optional Public Gallery Upload for Showing Off Your Creations
  • Quick-Type Text (Click into Origin Tile and Type Away)
  • Directional Offsetting to Move Specific Rows/Columns in Specified Direction
  • Fast Fill to Quickly Populate Rows or Columns with Selected Brush

 

GIF Demonstration - Intro

 

intro.gif

 

GIF Demonstration - Fast Fill

 

fill.gif

 

GIF Demonstration - Copy and Paste

 

select.gif

 

GIF Demonstration - Keyboard Typing

 

keyboard.gif

 


Aquarius community member Sean H. designed a variety of very helpful visuals using this editor to demonstrate Aquarius color and graphic theory, or how to make the most out of the very limited color and character set. Each of these are available as templates and can be loaded for analysis.

 

Aquarius Color Theory

 

color-theory-1.png

 

color-theory-2.png

 

 

Aquarius Graphics Theory

 

bloxel-1.png

 

bloxel-2.png

  

draw-3.png

 

draw-4.png

 

draw-5.png

 

Have fun!

 

yEluDhIl.png

Edited by MattPilz
  • Like 7
  • Thanks 5
Link to comment
Share on other sites

This is a fun and fantastic tool for anyone who enjoys retro graphics, and you can use it on a Browser!

 

It is also an invaluable tool for Aquarius developers (all six of them, ha!) in layout out screens for their software.

 

Even if you're not an Aquarius fan/user, give it half an hour and see what you can come up with.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Thank you for sharing!  It would have been great to have a tool like this when I was laying out the manual pages and screenshots for the Aquaricart.  I ended up building my own primitive screen editor—which I still want to finish and release at some point—but since it was intended only for internal use, it never got nearly as many features or the same level of polish as Aquarius Draw has.  Very nicely done!

Link to comment
Share on other sites

2 hours ago, jaybird3rd said:

Thank you for sharing!  It would have been great to have a tool like this when I was laying out the manual pages and screenshots for the Aquaricart.  I ended up building my own primitive screen editor—which I still want to finish and release at some point—but since it was intended only for internal use, it never got nearly as many features or the same level of polish as Aquarius Draw has.  Very nicely done!

That's awesome! I did come across a couple partial attempts at visual editors floating around while I was working on mine, but all quite limited or feature-incomplete (or part of a much bigger system like REXPaint).

 

Also, Aquaricart is prominently featured in the "Preview Image" output of Aquarius Draw, which is a photo taken of my own personal setup :) 

 

I picked up an Aquarius in the 1990s but never had any software or documentation for it so it wound up in a storage bin. It wasn't until recent months that I rediscovered the platform and found there is still a small but active community for it doing really interesting things. So this was my contribution for the community!

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

8 hours ago, MattPilz said:

That's awesome! I did come across a couple partial attempts at visual editors floating around while I was working on mine, but all quite limited or feature-incomplete (or part of a much bigger system like REXPaint).

 

Also, Aquaricart is prominently featured in the "Preview Image" output of Aquarius Draw, which is a photo taken of my own personal setup :) 

So I see!  I'm very flattered.

 

8 hours ago, MattPilz said:

I picked up an Aquarius in the 1990s but never had any software or documentation for it so it wound up in a storage bin. It wasn't until recent months that I rediscovered the platform and found there is still a small but active community for it doing really interesting things. So this was my contribution for the community!

Well, thank you again!  I plan to get back into active Aquarius development myself this year; I've been sidelined for a while, but I now have a few projects in the works again.

Link to comment
Share on other sites

  • 2 weeks later...
Aquarius Draw: The Super Bloxel Update!
 
154046779_10158798018372419_921832625498
 
155068036_10158798030057419_525476919577
 
154188711_10158798026272419_107136661549
 
154354917_10158798028557419_403544196928
 
154379998_10158798029862419_674387585409
Some exciting new features just released for Aquarius Draw! Full summary below, but it includes a comprehensive bloxel mode (2x2, 2x3, glyph placement with rotation and mirroring, freehand drawing, image import for automated bloxelization). Also includes an undo/redo (CTRL+Z and CTRL+Y) and some technical advances like ability to copy-paste from one open instance to another. But mostly bloxel things.

✨ Brand new bloxel design mode (press F9 or click the large character preview to toggle bloxel mode).

✨ One-click insert any of the preset character glyphs into your scenes as supersized bloxels, which can then be customized to your liking.

✨ Rotate the bloxel characters in four directions or mirror horizontally, vertically or a combination of any of these options before placing.

✨ One-click toggle between 2x2 or 2x3 insertion mode (2x3 has the benefit of keeping the foreground/background colors distinct for easy recoloring or programmatic operations).

✨ Freehand draw and erase mode for 2x2 and 2x3, just select your preference, click the paintbrush and doodle away! Combine freehand art with preset glyphs as you wish.

✨ Bloxel image converter - Drag any image you have into the character preview (or use the image browse button) and it will churn out a chunky bloxel alternative. Works on all image types (based on transparency or brightness). This is a lot of fun especially porting over old Game Boy screens and similar.

✨ 25-level undo and redo. This works for most operations and will undo the last alteration via CTRL+Z, or redo via CTRL + Y.

✨ Enhanced selection tool. Now you can highlight an area of the screen, right-click and select "Copy Aquarius Tile Data to Clipboard" or CTRL+C, then in another Aquarius window you can CTRL+V to get a selection, move it where you'd like and MIDDLE-CLICK (or CTRL+V again) to paste it.

✨ A lot of bug fixes and random adjustments. And with that, I am officially calling this a "gold / stable" release full of imaginative possibilities.

https://aquarius.mattpilz.com/draw/
  • Like 2
  • Thanks 3
Link to comment
Share on other sites

@MattPilz,

 

This is an awesome tool, and Sean H.'s pictorials on Aquarius Graphics Theory are phenomenally useful.  Thanks for this.  I am not really an Aquarius fan, but the tool is easy and fun to use to prototype retro graphics for any platform. :)

 

Now for my crucial question ... Is there any chance that we could collaborate on implementing something similar, yet scaled down, for Intellivision graphics?  Our little console is in dire need of a way to express designers' and programmers' visual creativity.

 

     -dZ.

Link to comment
Share on other sites

1 hour ago, DZ-Jay said:

Is there any chance that we could collaborate on implementing something similar, yet scaled down, for Intellivision graphics?  Our little console is in dire need of a way to express designers' and programmers' visual creativity.

Thank you! Of all the retro systems I own, turns out I have never had an Intellivision (I thought I did but turns out that was an Odyssey 2). Now I regret passing one up that was at a local auction recently and included the keyboard component. This tool really was developed purely with Aquarius in mind, although my understanding is Intellivision is fairly similar (20x12 "tiles" in standard mode and its own character set). Though it also has more advanced capabilities than Aquarius including actual GROM that supports custom sprite type graphics. I won't rule out making one in the future especially if I get more into the Intellivision scene, but it'd definitely have to be a separate project given how much of this one is baked into Aquarius compatibility. But I'm sure many elements could still be borrowed. My plate is really full the rest of this year on other non-retro projects but I will certainly keep this in mind and share updates on that front if I get any!

 

56 minutes ago, Intelligentleman said:

MattPilz, those Super Bloxels are rad. Can something like that be animated... something simple... walking or running?

Thanks. They can't directly be animated within the editor like a frame-by-frame tool, but it is possible to create multiple scenes each with a different animation frame. You can then generate the code needed to include each of these frames within Aquarius (BASIC or machine language) as well as export each frame as a PNG so they could be combined into an animation in an external utility. On the device itself, the BASIC interpolation is painfully slow so regeneration of many on-screen characters results in a very low framerate. But with machine language it is lightning fast, and this year the Aquarius community is working to create a lot of guides and resources on how to use machine language to get the most out of it, which would include really fluid animation abilities. With machine language it becomes possible to do stuff like this:

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

3 minutes ago, MattPilz said:

Thanks. They can't directly be animated within the editor like a frame-by-frame tool, but it is possible to create multiple scenes each with a different animation frame. You can then generate the code needed to include each of these frames within Aquarius (BASIC or machine language) as well as export each frame as a PNG so they could be combined into an animation in an external utility. On the device itself, the BASIC interpolation is painfully slow so regeneration of many on-screen characters results in a very low framerate. But with machine language it is lightning fast, and this year the Aquarius community is working to create a lot of guides and resources on how to use machine language to get the most out of it, which would include really fluid animation abilities. With machine language it becomes possible to do stuff like this:

 

 

That is so cool looking! Would it be possible to have the person hold a steady groove, and then when the user presses a disc direction the on-screen character changes to a different dance move, but maintains the same rhythm? One game idea I've been thinking about is some sort of a rhythm game where you press inputs on the hand controller in time with a music "track" (also composed on the Aquarius). And then as you successfully complete more and more of the required hand controller inputs, the scenery would change in some visually fun way.

So to use your example above, the on-screen charecter would start out against a blain white background with no colorful border. It sways back and forth in time with an audio track. Then, the user would see prompts that correspond to hand controller inputs. Hit the right button at the right time and then the background changes to Cyan, Magenta, Yellow, etc... Or, gradually that cool border you have starts working away around the screen with each successive input? If you mess up, you get bumped back to whatever the previous scenery state was. Game over if you get bumped all the way back to the first configuration.

 

I was thinking about this in the shower this morning and I was debating on making a thread to ask you guys if something like that would be remotely possible? I don't even care if it's a "game" in the strict sense. Could just be a fun audio visual experience to play around with. 

Link to comment
Share on other sites

8 minutes ago, MattPilz said:

Thank you! Of all the retro systems I own, turns out I have never had an Intellivision (I thought I did but turns out that was an Odyssey 2). Now I regret passing one up that was at a local auction recently and included the keyboard component. This tool really was developed purely with Aquarius in mind, although my understanding is Intellivision is fairly similar (20x12 "tiles" in standard mode and its own character set). Though it also has more advanced capabilities than Aquarius including actual GROM that supports custom sprite type graphics. I won't rule out making one in the future especially if I get more into the Intellivision scene, but it'd definitely have to be a separate project given how much of this one is baked into Aquarius compatibility. But I'm sure many elements could still be borrowed. My plate is really full the rest of this year on other non-retro projects but I will certainly keep this in mind and share updates on that front if I get any!

 

Thank you for the response.  I feel the same way about the Aquarius as you do of the Intellivision:  Never actually had or knew much about it until recently, although I grew up with an Intellivision and have been working on Intellivision development and tooling for several years now. :)

 

The Intellivision itself has an entire host of weird idiosyncrasies when it comes to graphics, with some quirky technical limitations, especially in the color space.  I understand that a drawing package for the platform would be a completely different project, but I figured that at least some of the existing capabilities and "tricks" Aquarius Draw relies on could be mapped to similar capabilities on the Intellivision.

 

The reason I asked is because I thought that if the UI layer is sufficiently abstracted from the implementation, then its a matter of identifying what is the set of common capabilities between the two platforms that could support each drawing feature, either directly or by exploiting its internal workings.  A subset of the features may be in order since the Intellivision is also more limited in its resources.

 

To me it sounds like an interesting challenge, and something I would be willing to work on, especially in collaboration with someone who's already deeply familiar with such an application (I wouldn't know where to begin!).  I may not be all that good at web-based application development or drawing abstractions, but I consider myself deeply versed in the Intellivision hardware and software domain.  :)

 

 

8 minutes ago, MattPilz said:

Thanks. They can't directly be animated within the editor like a frame-by-frame tool, but it is possible to create multiple scenes each with a different animation frame. You can then generate the code needed to include each of these frames within Aquarius (BASIC or machine language) as well as export each frame as a PNG so they could be combined into an animation in an external utility. On the device itself, the BASIC interpolation is painfully slow so regeneration of many on-screen characters results in a very low framerate. But with machine language it is lightning fast, and this year the Aquarius community is working to create a lot of guides and resources on how to use machine language to get the most out of it, which would include really fluid animation abilities. With machine language it becomes possible to do stuff like this:

 

 

 

 

That is just too cool for words!

 

     -dZ.

  • Like 1
Link to comment
Share on other sites

8 hours ago, DZ-Jay said:

The reason I asked is because I thought that if the UI layer is sufficiently abstracted from the implementation, then its a matter of identifying what is the set of common capabilities between the two platforms that could support each drawing feature, either directly or by exploiting its internal workings.  A subset of the features may be in order since the Intellivision is also more limited in its resources.

 

     -dZ.

I get what you’re saying. A tool that, as far as the user is concerned, functions similarly regardless which platform is selected but modifies the available functionality accordingly.
 

 

Link to comment
Share on other sites

  • 1 month later...

G'day guys,

 

I was playing around with Aquarius Draw to set what I can do with it, and I ran into an issue. I was trying to draw a basic test pattern image like the TV stations would display in the middle of the night back in the day. Generating code as BASIC worked perfectly, however, when I tried to do it as machine code it got a bit messed up at the bottom section of the screen.

 

Any ideas on how I can fix this?

 

P.S. Now that I know my way around Aquarius Draw, it is a great little tool (apart from the export glitch I encountered). Keep up the great work, Matt!

TV Test Pattern Fail.png

Link to comment
Share on other sites

Hi Younge,

 

What assembler are you using to compile the assembly code? By default the code is TASM-compatible, and I recommend using TASM 3.2 available here. If you can share the JSON scene file (saved via Aquarius Draw) and the machine code source/assembled version I can take a look. Here is a blurb from my user manual:

 

Quote

TASM Assembly Compiler — If you want to test the assembly code on an emulated or physical device, I recommend downloading TASM v3.2. This flavor of TASM runs fine even on Windows 64-bit and is very compact. After extracting the TASM files to a location of your preference, you can optionally add the directory to your system path so it is accessible from any command line. Next, save the Machine Language output via Aquarius Draw; if you didn't add TASM to your system path, you'll want to save the assembly file into the same directory as TASM.EXE. Finally, you can execute the command: TASM -80 -b input.asm output.caq This will create a CAQ file that can be loaded into an emulator. Taking it further, you can convert the CAQ to WAV using a tool such as CAQ2WAV.exe (included with Virtual Aquarius 0.72a). To run it, you can simply enter CLOAD and press enter, then play the cassette (or load it virtually). You should then see your scene come to life on the screen.

 

Link to comment
Share on other sites

11 hours ago, MattPilz said:

Hi Younge,

 

What assembler are you using to compile the assembly code? By default the code is TASM-compatible, and I recommend using TASM 3.2 available here. If you can share the JSON scene file (saved via Aquarius Draw) and the machine code source/assembled version I can take a look. Here is a blurb from my user manual:

 

 

G'day Matt,

 

I'm already using version 3.2 of TASM, however, from reading the snippet you attached from the user manual, I have not done the part that requires the CAQ2WAV.exe conversion. I am just opening the .CAQ file in the emulator. Is this the problem?

 

I have attached the requested files, so, if you could have a quick look at them that would be great!

 

BTW, this is the first time I have ever attempted anything to do with assembly code (I made some other images with Aquarius Draw, exporting as .ASM but they worked without any issues).

TestPattern.asm TestPattern.json

Link to comment
Share on other sites

Thanks. I have confirmed it is a bug in the way the screen data is being parsed in Assembly. When the color value is 0 (Black Foreground, Black Background) the data is seen as "empty" instead of an explicit 0 when interpreted by the assembler, and odd things occur.

 

A quick fix is to alter the foreground color to something other than black before filling the background with black. I will work a solution into the app for the next update. Attached are the fixed files.

TestPatternFixed.json TestPatternFixed.asm TestPatternFixed.caq

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 9 months later...

G'day @MattPilz,

 

I'm having another play with Aquarius Draw (currently working on a game idea) and I'm looking at the code generation for BASIC. I see that any characters/colour, etc. are set using "data" statements in the code. Does this mean that I can't use my own data statements in my program? I haven't had a serious attempt at programming for Aquarius since I was a kid, so this is me getting up to speed again, reading the original manual and trying to work things out. It's pages on arrays, etc. make me think that all data statements declared in a program are included in one bundle - does this sound right to you, or I have I misread the manual (easily done)?

 

Cheers,

Younge

  • Like 1
Link to comment
Share on other sites

Hi @Younge
 

The data elements are just a compact way of squeezing the artwork into a display in BASIC, but are meant to be expanded on. You can always include your own data statements either before or after those ones.

 

What matters is the order that you READ the data. The "READ" command by default starts from the first DATA statement onward. In the boilerplate BASIC code, the first DATA statement (line 10000) is a count of how many tiles need to be updated. The rest of the DATA statements after that are three values per tile (position, color, character). These then plot the scene to the screen.

 

If you wanted to add more custom DATA elements after that, you could, and then call READ anywhere after line 160, it will continue reading from that point so will read in your custom values.

 

But there's also an important command, RESTORE, which lets you jump to a particular line of DATA to start reading from. So you can place your DATA at any lines for organization, and then just call RESTORE # in the code before READ statements (where # is the line number of data you want to read) and then it will work in that way. This is also a very useful command if you need to redraw elements or items at different points in your program, you can simply RESTORE to the correct DATA line and then handle accordingly, each time. If you include DATA elements before any of the Aquarius Draw generated ones, then you would want to add a RESTORE 10000 before the READ line at 100, so that it reads from that block of DATA instead of earlier custom ones you've added.

 

Finally, with Aquarius Draw there are other "code snippet" capabilities in case you don't want to copy the entire BASIC template. If you use the selection tool (top-center button on right menu) and select around an element you'd like to include in an Aquarius program, you can right-click on it and select a variety of copy patterns. This includes raw POKE data that can be inserted anywhere in your own program without necessarily needing to use DATA commands.

 

image.thumb.png.1bae173e3e38684273a7a2b2cb5bafa4.png

Edited by MattPilz
Link to comment
Share on other sites

  • 1 month later...

AQUARIUS DRAW UPDATE: Row 25 and Screen Memory Dumping!
 

I've just released a new update for Aquarius Draw with some very valuable enhancements suggested by @1stage and here's a sneak peak of one such potential with this screen dumping and a micro expander combined... A very fluid animation loading full screen image dumps on-the-fly without consuming any excess RAM of the Aquarius itself, just the 2KB of screen data being overwritten rapidly.

 

 

25 ROWS - THE SECRET ROW

 

You can now directly edit the secret "row 0" within the editor. By default this is functionality is still disabled (40x24), but you can right-click the border and select "Enable Row 0" to be given that special power (40x25). Remember the top-left tile in this mode will also change the border. The code will generate all the necessary POKES or ASM Data for this extra row. If you disable row 0, then it behaves as before and the top row will just be filled with the border pattern. Your preference will be remembered after you set it so power users that always prefer to use 40x25 can set it once and forget about it. I recommend running in fullscreen (F11) at 1080p or higher resolution for best visibility, but you can also CTRL+MOUSEWHEEL to zoom in or out to fill your screen nicely (25%, 50%, 75%, 100%, 125% or 200% zoom will look best).

 

SCREEN MEMORY DUMPING

 

On the Code Export screen when ASM is selected (or via CTRL+M shortcut from main editor) a new export button will appear to save the raw 2KB of "screen data" as a raw binary .SCR file (arbitrary extension). This data can then be fed directly into Aquarius at #3000 (12288) to instantly fill the screen with your design. Users with a Micro Expander can now utilize these "memory dumps" within ordinary USB BASIC programs by calling LOAD "TEST.SCR",12288 from anywhere in their code. This has many practical uses. It becomes possible to instantly cycle between unlimited scenes all from flash/USB media without occupying any additional RAM in Aquarius. And it is instantaneous. Attached is a video demonstrating a 27 frame GIF screen dumped from Aquarius Draw and then looped via simple BASIC and running in real-time! It's pretty great and hard to believe this is an Aquarius running so smoothly. For games this can be useful for easily cycling between detailed Title/Instruction/Score/Level data. Right now we are still limited in its usefulness to machines/emulators with micro expanders.

 

ODDS AND ENDS

 

I took care of some general bugs and performance problems. You can now also see the HEX value of the tile you are over in the upper-right. The gallery has also been improved to fix some previous bugs where the layout was inconsistent.

 

Aquarius-Draw-1.thumb.png.853e96c43181fb9df992362606cd1196.png

 

Aquarius-Draw-2.thumb.png.c8ecf4833c12b8bfc4e85fc085a33dd0.png

 

image.thumb.png.ec44fc118a4e6d26dcec1cc8001fddff.png

 

https://aquarius.mattpilz.com/draw/

Edited by MattPilz
  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...