Jump to content
mksmith

Atari Dev Studio for Homebrew Development [Release]

Which language do you develop with using Atari Dev Studio?  

48 members have voted

  1. 1. Which language do you develop with using Atari Dev Studio?

    • batari Basic
      25
    • 7800basic
      14
    • dasm (assembly)
      17


Recommended Posts

Just now, Andrew Davie said:

These would be so lovely for assembler code.... just sayin.....

I'll move on to assembly shortly and see what we can get going.  I'd assume most of these features should be reasonably straight forward to implement based on what I've had to do so far (famous last words 🤪).

Share this post


Link to post
Share on other sites
Just now, mksmith said:

I'll move on to assembly shortly and see what we can get going.  I'd assume most of these features should be reasonably straight forward to implement based on what I've had to do so far (famous last words 🤪).

Ha! Just wait till you see my code and how variables are defined.

You have no chance.

 

Share this post


Link to post
Share on other sites
Just now, Andrew Davie said:

Ha! Just wait till you see my code and how variables are defined.

You have no chance.

 

Haha - that's what I'm worried about 🤣 My assembly is pretty average! Anyway we'll see what how it goes 👍

Share this post


Link to post
Share on other sites
15 minutes ago, mksmith said:

Haha - that's what I'm worried about 🤣 My assembly is pretty average! Anyway we'll see what how it goes 👍

Could always do a special version of dasm which provides the file/line where variables are defined and referenced. That would go a long way to making it super-easy, I think!

  • Like 1

Share this post


Link to post
Share on other sites

Does the version of Stella that comes with Atari Dev Studio only work with Atari Dev Studio? For example, if a person downloads Atari Dev Studio, then downloads Visual batari Basic, will the Stella that comes with Atari Dev Studio work with VbB or will the user need to install Stella separately? 

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, Random Terrain said:

Does the version of Stella that comes with Atari Dev Studio only work with Atari Dev Studio? For example, if a person downloads Atari Dev Studio, then downloads Visual batari Basic, will the Stella that comes with Atari Dev Studio work with VbB or will the user need to install Stella separately? 

Hey RT,

Yes they could but as Atari Dev Studio is an extension it's located within the VSCode extension process. Let me check where is located to ensure its publicly visible and not version based (I think the final path contains the version number).

 

[Update] This is where (on Windows) VS Code stores the extension:

c:\Users\mksmi\.vscode\extensions\chunkypixel.atari-dev-studio-0.5.5

 

So as you can see the path will change on each release unfortunately.  You can see where is this path is by starting VS Code (with ADS installed) and opening the Developer tools:

ads-developertools.thumb.png.9fa5d7c1f1c7a1cb43399a04230e7e11.png

 

Location of Stella

C:\Users\mksmi\.vscode\extensions\chunkypixel.atari-dev-studio-0.5.5\out\bin\emulators\stella\win32\x32

C:\Users\mksmi\.vscode\extensions\chunkypixel.atari-dev-studio-0.5.5\out\bin\emulators\stella\win32\x64

  • Like 1

Share this post


Link to post
Share on other sites
11 hours ago, Andrew Davie said:

Could always do a special version of dasm which provides the file/line where variables are defined and referenced. That would go a long way to making it super-easy, I think!

Sounds interesting Andrew 👍

Share this post


Link to post
Share on other sites

I just started using this today and I really like it. My computer is Linux (Ubuntu) so trying to get VisualbB working outside of an emulated Windows env via Wine didn't seem to work. Definitely an upgrade from trying to write stuff in Gedit. :)

 

I noticed two things though. The built in Stella version didn't work for me (Installed Extension through the extension screen. Version is 0.3.9). This wasn't really an issue as I was able to update the config to point to my current version of Stella already installed. The second one, I'm not even sure is an issue as I'm super new to trying out bB. I noticed that the 'built in' variables missile0height and missile1height do not get syntax highlight like the other keywords do.

 

Anyway, keep up the great work. This is perfect for someone like me who is learning bB and doesn't own a Windows machine.

  • Like 1

Share this post


Link to post
Share on other sites
4 minutes ago, slacker said:

I just started using this today and I really like it. My computer is Linux (Ubuntu) so trying to get VisualbB working outside of an emulated Windows env via Wine didn't seem to work. Definitely an upgrade from trying to write stuff in Gedit. :)

 

I noticed two things though. The built in Stella version didn't work for me (Installed Extension through the extension screen. Version is 0.3.9). This wasn't really an issue as I was able to update the config to point to my current version of Stella already installed. The second one, I'm not even sure is an issue as I'm super new to trying out bB. I noticed that the 'built in' variables missile0height and missile1height do not get syntax highlight like the other keywords do.

 

Anyway, keep up the great work. This is perfect for someone like me who is learning bB and doesn't own a Windows machine.

Hi @slacker,

 

Thanks for trying it out Atari Dev Studio.  Not sure if your VS Code is out of date but there is a newer version of the extension available (currently v0.5.4).  I use the Debian releases of Stella so maybe that may be the issue??

 

Thanks for the missing keywords -   I've added those in for the next release 👍 We tend to come across ones that have been missed occasionally so if you find any more feel free to let me know. 

 

Good luck with bB - if you have any questions post them up in the bB programming forum as there as lots a great people around to help!

 

  • Like 1

Share this post


Link to post
Share on other sites

Here's a question about the sprite editor. When you draw a sprite frame and duplicate it so you can make changes to the next frame, it would be useful if we could use the left and right arrow keys to move from frame to frame instead of needing to click on each frame using the mouse pointer. For example, this is what I do in Visual batari Basic when I want to flip between two or more frames using the arrow keys:

 

 randomterrain.com/atari-2600-memories-batari-basic-vbb.html#creatinganimations

Quote

If you want to work on an animation and you've never done it before, here's one way to do it. Create a sprite in the Sprite Editor and save it. Then use Save As to save a copy of it. Open that copy and as you work on that 'frame' of your animation, you can click on the tab for it to make sure it's active and 'flip' between the two sprite editors by using the left/right arrow keys on your keyboard. You can flip back and forth, work on the image some more, flip back and forth and so on until you get it looking perfect. Make sure you save the sprite, then use Save As to save a copy of that sprite. Open that copy and work on it, click on a tab and flip between all three using the left/right cursor keys to see how your animation is progressing. You can keep on with this process until you have perfected your animation. Just remember to save the latest version of all of your 'frames' and you'll be ready to use the Sprite Animator.

 

Share this post


Link to post
Share on other sites
8 hours ago, Karl G said:

You may need to set the execute bit on the Stella binary for it to work.

Will do! I had set it for the mac only at this point just in-case something went wrong but will adjust this for next release which will probably be next week. 

[Update] Actually looks like i'm already doing it.

 

7 hours ago, Random Terrain said:

Here's a question about the sprite editor. When you draw a sprite frame and duplicate it so you can make changes to the next frame, it would be useful if we could use the left and right arrow keys to move from frame to frame instead of needing to click on each frame using the mouse pointer. For example, this is what I do in Visual batari Basic when I want to flip between two or more frames using the arrow keys:

 

 randomterrain.com/atari-2600-memories-batari-basic-vbb.html#creatinganimations

 

When I first included the editor I rebuilt it from scratch based on the original source but left out all the key checks as I wasn't sure they would work within the nature of the VS Code webview - just never got back to checking if I could add them.  Will have a play around very soon and see if I that can be done 👍 

  • Like 1

Share this post


Link to post
Share on other sites
18 hours ago, slacker said:

I just started using this today and I really like it. My computer is Linux (Ubuntu) so trying to get VisualbB working outside of an emulated Windows env via Wine didn't seem to work.

Just out of curiosity, could you run "ldd" against the built-in stella? (no arguments needed) That will show if any linked libraries it needs aren't found.

  • Like 1

Share this post


Link to post
Share on other sites

I found a syntax highlighting file for Notepad++ and rB+ (Atari Jaguar BASIC)

 

Would this be useful for including Jaguar support?  Wouldn't mind using ADS across 2600, 7800 and Jaguar :)

 

 

rb.xml

  • Like 1

Share this post


Link to post
Share on other sites
10 minutes ago, Gemintronic said:

I found a syntax highlighting file for Notepad++ and rB+ (Atari Jaguar BASIC)

 

Would this be useful for including Jaguar support?  Wouldn't mind using ADS across 2600, 7800 and Jaguar :)

 

 

rb.xml 7.13 kB · 1 download

Hi @Gemintronic! It's certainly something to consider. Someone did enquire about adding a language previously for the Jaq (last year sometime from memory - I think it was rB+) but the biggest concern is how big the whole extension becomes if I add anything further into this one. This one is already quite large so adding this was going to push it to around 70-100MB - not sure if that included an emulator.  I'm currently adding some additional functionality so may re-visit this again soon.

 

  • Thanks 1

Share this post


Link to post
Share on other sites
50 minutes ago, mksmith said:

Hi @Gemintronic! It's certainly something to consider. Someone did enquire about adding a language previously for the Jaq (last year sometime from memory - I think it was rB+) but the biggest concern is how big the whole extension becomes if I add anything further into this one. This one is already quite large so adding this was going to push it to around 70-100MB - not sure if that included an emulator.  I'm currently adding some additional functionality so may re-visit this again soon.

 

 

I appreciate the consideration!  It was probably me (last year).  My battery backed memory is finally failing :)

 

Any way to donate to your coffee fund?  After a commission or self publishing run I can give back a bit.  As we both know: every bit counts!

 

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, Gemintronic said:

 

I appreciate the consideration!  It was probably me (last year).  My battery backed memory is finally failing :)

 

Any way to donate to your coffee fund?  Sometimes after a commission I can give back a little.

 

Thanks 😀 that's very kind of you but I haven't got one of those setup yet 🤔 

  • Like 1

Share this post


Link to post
Share on other sites

If Atari Dev Studio comes with batari Basic preinstalled, does that mean users of Atari Dev Studio don't have to double click on install_win.bat?

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Random Terrain said:

If batari Basic comes with Atari Dev Studio preinstalled, does that mean users of Atari Dev Studio don't have to double click on install_win.bat?

I think you said that backwards. ADS comes with bB preinstalled. No need to run the install script for bB to use the version that comes with ADS. 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
22 minutes ago, Karl G said:

I think you said that backwards. ADS comes with bB preinstalled. No need to run the install script for bB to use the version that comes with ADS. 

 

Yeah, posted backwards. Thanks. I'll fix it.

Share this post


Link to post
Share on other sites
14 hours ago, RevEng said:

Just out of curiosity, could you run "ldd" against the built-in stella? (no arguments needed) That will show if any linked libraries it needs aren't found.

From console output when using the default setting and clicking on the "compile and run" button:

Launching Stella emulator...
/home/{my_username}/.vscode/extensions/chunkypixel.atari-dev-studio-0.3.9/out/bin/emulators/stella/linux/x64/stella: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory

ldd output on built in stella in above dir: (sorry for the long output)

$ ldd stella 
./stella: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./stella)
        linux-vdso.so.1 =>  (0x00007ffe86ca5000)
        libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f5abac0f000)
        libpng16.so.16 => not found
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5aba9f5000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5aba673000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5aba36a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5aba154000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5ab9f37000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5ab9b6d000)
        libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f5ab986d000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5ab9669000)
        libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f5ab9419000)
        libsndio.so.6.1 => /usr/lib/x86_64-linux-gnu/libsndio.so.6.1 (0x00007f5ab9209000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f5ab8ecf000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f5ab8cbd000)
        libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f5ab8ab3000)
        libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f5ab88b0000)
        libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f5ab86a0000)
        libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f5ab8495000)
        libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007f5ab8291000)
        libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f5ab808b000)
        libwayland-egl.so.1 => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007f5ab7e89000)
        libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f5ab7c7a000)
        libwayland-cursor.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007f5ab7a72000)
        libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f5ab7833000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f5ab762b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5abb703000)
        libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2 (0x00007f5ab7420000)
        libpulsecommon-8.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-8.0.so (0x00007f5ab71a5000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f5ab6f59000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f5ab6d44000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f5ab6b22000)
        libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f5ab6918000)
        libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f5ab6712000)
        libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f5ab650a000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f5abb870000)
        libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f5ab6300000)
        libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f5ab6096000)
        libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f5ab5e90000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f5ab5c8c000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f5ab5a86000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f5ab5864000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f5ab5642000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f5ab5361000)
        libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f5ab5148000)
        libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f5ab4ed3000)
        libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f5ab4c2a000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f5ab4a0f000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f5ab479f000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f5ab458b000)
        libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007f5ab4382000)
        libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f5ab4157000)

 

When I run ldd on my local build of stella v6.0.2, I see this for the two above that are in error:

        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe2bca96000)
        libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f01aef8a000)

So it looks like my version of libpng and libstdc++ installed is an older version than what the built in emulator uses.

 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
(older version omitted)
GLIBCXX_3.4.21

 

  • Like 2

Share this post


Link to post
Share on other sites

Yep, agreed. Nicely done, and thanks for satisfying my curiosity here too!

 

I think this sort of shared library issue might be worked around a few ways, but I think to do it satisfactorily would take a lot of work from other people. (e.g. the emulator authors could make flatpak packages) and even then I'm sure there will be some compatibility problems. Better to just get a working emulator and point Dev Studio at it, as you have done. 👍

  • Like 2

Share this post


Link to post
Share on other sites

A new release (v0.5.5) is now available with the following changes:

  • Updated A7800 to 4.0 (Windows, Linux, macOS) [Removed XBoarD Expansion option from A7800 > Console settings]
  • Added document outline for batari Basic and 7800basic (shows banks, labels, sub-labels, functions, macros, dmaholes)
  • Added Go to Definition and Go to References features for batari Basic and 7800basic
  • Added missing batari Basic keywords: missile0height, missile1height (slacker)

This release has some really nice developer features for bB and 7800basic users with things like Document Outline, Go to/Peek Definition and References as well as breadcrumb selection.  There are keyboard and Command Palette feature access to all this functionality - spend some time to make yourself familiar! Next up is looking at Assembly! Eventually hoping this will lead to proper document related intellisense down the track also.

 

I've been testing this whilst finalising my code review to Millie and Molly the past week and have found most usage issues I hope 🤞  If you find anything which seems a bit odd please let me know.

 

Features

 

Document outline shows things such as Banks, Labels (and sub-labels), Functions and DMA Holes

Peek Definition displays the code for that label

Breadcrumb provides drop-down structure access

ADS-Features1.thumb.png.345ebcc30773f3b1a800f0773d2d83b7.png

 

Right-click on keyword to access menu

Peek/Find All references shows lists of where are keyword is used

ADS-Features2.thumb.png.24e82213aa8a100d57fa33ddd46f7f62.png

 

Hold down Control and hover keyword (Windows, Linux), click left button to jump

ADS-Features3.thumb.png.03111344043e5e62a61f961227e20ac5.png

  • Like 4

Share this post


Link to post
Share on other sites

A new release (v0.5.6) is now available with the following changes:

  • Updated to latest 7800basic release v0.10 (Windows, Linux, macOS)
  • Added document outline for dasm (shows labels, sub-labels, macros)
  • Added Go to Definition and Go to References features for dasm
  • Further enhancements to Go to Definition and Go to References features for batari basic and 7800basic

 

I've also added a Poll to the post if you would like to identify with language(s) you use with Atari Dev Studio.

  • Like 4

Share this post


Link to post
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.

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...