Giter VIP home page Giter VIP logo

chunkypixel / atari-dev-studio Goto Github PK

View Code? Open in Web Editor NEW
74.0 7.0 8.0 221.48 MB

Homebrew game creation for the Atari 8-bit consoles (VS Code Extension)

Home Page: http://atariage.com/forums/topic/290365-atari-dev-studio-for-homebrew-development-release/

License: GNU General Public License v3.0

HTML 15.46% JavaScript 0.02% CSS 3.67% TypeScript 9.86% Batchfile 0.21% C 47.62% Shell 1.14% Assembly 20.33% Makefile 0.26% Lex 0.74% Clojure 0.01% CMake 0.68%
bataribasic 7800basic assembly-6502 vscode-extension atari stella

atari-dev-studio's People

Contributors

chunkypixel avatar dchristianson avatar mengstr avatar thinkyhead avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

atari-dev-studio's Issues

Using DASM the extension can't find vcs.h

When using DASM to assembly a 2600 file, it can't find the vcs.h file in the include statement. Isn't is a part of DASM? If not where will it look to find it.

Thanks

pk

Failed compilation artifacts

Every now and then I by mistake don't have the actual assembly file open by rather one of the .h files or something else when I press the compile/launch button. I then end up with a failed compilation and a couple of files ( .sym/.bin/.lst) generated by dasm that doesn't get cleaned up from my the main folder.

It's really not a biggie, but just kinda annoying.

I'm not sure what the best fix would be for this. Always moving all build-artifacts to the bin folder is one solution, or maybe refusing to even try to compile a file that's not .a/.a65/.asm would be better...

IntelliSense popup for opcodes

You know what would be awesome? Being able to hover over the INC you just typed in and have an IntelliSense-popup display this:

Screen Shot 2019-05-05 at 11 51 09 AM

Maybe something to code some nasty rainy and cold day when you have nothing better to do ;-)

Add ability to select both NTSC and PAL palettes

Users need to be able to choose between NTSC and PAL palettes. Implement the following:

  • Add PAL palette to configuration
  • Update selector on Create Project dialog to list PAL
  • Add new selector to Palette window to allow change on the fly between NTSC and PAL

Need to also incorporate 2600 palettes into this process.

Stella autoclose & location

Is there a way to have the old Stella window autoclose and reload when I press the rocket again? And also make Stella appear at a specified (or at least the previous) location on the screen?

I guess this might be very OS specific....

Won't compile on MacOS

Hello, I am trying to compile on MacOS and keep getting ### ERROR: couldn't find bB binaries for Darwin(x86_64). Exiting.

This is my first Mac in years so not quite sure what I am doing to set up on these yet, please can you help me?

New to this so bear with me

I just stumbled across your project and I think I am in heaven! I got really excited about the Vb version of BatariBasic, but it was really wonky on my machine and wouldn't natively work in mac.

So one debug issue I found - in Mac Ox 10.13.6 (High Sierra), Stella is an untrusted program. What this means is that in order for it to launch natively in Visual Studio Code, the user has to have the system trust it. This is easily accomplished in settings, but the error message displayed doesn't give you any clue as to why Stella isn't launching. More importantly, if a user hasn't manually turned on viewing all hidden files, the path is impossible to find in Finder.

Unfortunately, I didn't get a copy of the error before it cleared, and now my system "trusts" stella as I told it to overrule suppressing it's launch.

Using foreground coloring to identify binary for sprites

It was requested by Lillapojkenpåön and a suggestion made by spiceware to identify binary values for sprite/graphic objects in a visual way. The suggestion uses foreground colours (VS Code cannot utilise the background currently).

2120569407_ScreenShot2020-03-06at9_18_50AM png 0903ffcf9b24f38df3062fafd4eb5105

Discussion
https://atariage.com/forums/topic/290365-atari-dev-studio-for-homebrew-development-release/?do=findComment&comment=4460610
https://atariage.com/forums/topic/290365-atari-dev-studio-for-homebrew-development-release/?do=findComment&comment=4475130

Permission denied when trying to compile

Using VC version 1.33.1 on Mojave 10.14.5 I get this when I try to compile some code (by pressing the "Compile source code" button at the bottom status line)

Starting build of fluuw.a... /bin/sh: /Users/mats/.vscode/extensions/chunkypixel.atari-dev-studio-0.1.0/out/bin/compilers/dasm/dasm.Darwin.x86: Permission denied

The issue persists even after a restart of code (tried that since older versions of code required a restart after installation of extentions)

Add context support to RandomTerrain's help files

Add some sort of context help keyword selection to RandomTerrain's bB and 7800basic documentation. This could be integrated on the following ways:

  • Set cursor on keyword and press F1 (or other)
  • Right-click on keyword and offer View Help option in pop-up menu

Race condition in "autosave before run"

If I hit the compile or run buttons without saving the source first it seems like in about 20-25% of the cases the compile fails (usually giving a lot of "label mismatch" errors). Pressing the compile again always gives a clean compile.

I guess the saving is done asynchronously and dasm starts reading and processing the source before the save is fully finished.

GTK Warning when launch Stella on Fedora

I am running vscodium on Linux (Fedora 39) and when I launch the Stella emulator I am getting the following warning:

Launching Stella emulator...
libdecor-gtk-WARNING: Failed to initialize GTK
Failed to load plugin 'libdecor-gtk.so': failed to init

The emulator runs fine. I have libdecor and libdecor-devel installed:

libdecor-0.2.2-1.fc39.x86_64
libdecor-devel-0.2.2-1.fc39.x86_64

Stella not loading in Linux distro

So I recently moved over to Linux Mint to revive an older laptop and got Visual Studio Code running through the flatpak install. Got the Atari Dev Studion going and all seemed fine until I tried to compile and test a game - got an error indicating there was no Stella emulator present. I separately tried to install Stella and point to my own install of it, to no avail.
When digging into the path it appears that perhaps there is a bug in the path? I didn't see a path folder called "ia32". I assume this is supposed to be "x32"? I tried to change the folder to ia32 and it still didn't work. I'm not fantastic with Linux, but I put in my own very basic path (like to the Desktop) for my own copy of Stella and it still didn't like it.
Any thoughts?

Here's what I get when I try to use the built in reference.
Complete.
Build complete.
Verifying compiled file(s)...
Cleaning up files generated during compilation...
Moving compiled file(s) to 'bin' folder...
Moving debugger file(s) to 'bin' folder...

Launching Stella emulator...
/bin/sh: /home/chris/.var/app/com.visualstudio.code/data/vscode/extensions/chunkypixel.atari-dev-studio-0.3.0/out/bin/emulators/stella/linux/ia32/stella: No such file or directory

Compile fails when file name contains a space

Hi. I have the version 0.4.9 of the extension installed on Windows 10 and Ubuntu. When I try to compile an assembly source file that contains a space character in the file name, DASM is stopping with an exit code 1. I believe that some of the DASM parameters just need to be wrapped in quotes. Below are the contents from the OUTPUT tab.

Starting build of Scrolling Playfield - Left.asm...
DASM 2.20.13
Copyright (c) 1988-2020 by the DASM team.
License GPLv2+: GNU GPL version 2 or later (see file LICENSE).
DASM is free software: you are free to change and redistribute it.
There is ABSOLUTELY NO WARRANTY, to the extent permitted by law.

Usage: dasm sourcefile [options]

-f#      output format 1-3 (default 1)
-oname   output file name (else a.out)
-lname   list file name (else none generated)
-Lname   list file, containing all passes
-sname   symbol dump file name (else none generated)
-v#      verboseness 0-4 (default 0)
-d       debug mode (for developers)
-Dsymbol              define symbol, set to 0
-Dsymbol=expression   define symbol, set to expression
-Msymbol=expression   define symbol using EQM (same as -D)
-Idir    search directory for INCLUDE and INCBIN
-p#      maximum number of passes
-P#      maximum number of passes, with fewer checks
-T#      symbol table sorting (default 0 = alphabetical, 1 = address/value)
-E#      error format (default 0 = MS, 1 = Dillon, 2 = GNU)
-S       strict syntax checking

Report bugs on https://github.com/dasm-assembler/dasm please!


Fatal assembly error: Check command-line format.
Exit code: 1

Binary values incorrect in the horizontal motion documentation

image

Looks like it should be:

- bit7..4=0111 ($70): Left 7 clock
- bit7..4=1000 ($80): Right 8 clock
- bit7..4=1001 ($90): Right 7 clock
- bit7..4=1010 ($A0): Right 6 clock
- bit7..4=1011 ($B0): Right 5 clock
- bit7..4=1100 ($C0): Right 4 clock
- bit7..4=1101 ($D0): Right 3 clock
- bit7..4=1110 ($E0): Right 2 clock
- bit7..4=1111 ($F0): Right 1 clock

Status line (again)

When I size VC to fit about half my screen width so I can have Stella in the other half (yea, I know that I really should have a dual screen setup but I like to code in the sofa) then the "rocket" in the status lines disappears. Changing the name & version blurb to
{ text:ADS ${application.Version} },
makes it short enough to be displayed.

Compiling/emulating

When I go to ads in command palette and choose to compile and emulate, nothing happens. Well compiling may be happening but it doesn't show anything on screen or ask me where to put the compiled file. No stella for sure. Is there something I'm missing? I left everything default.

Thanks so much!
-Lucien

Spelling issue for assembly opcodes popup

Just a quick note on the hover popup with opcode info... where it says "immidiate", it should say "immediate". It's definitely wrong on "lda". I haven't checked all the other opcodes.

Raised by Andrew Davie

Remove auto complete for X on Playfields

Hello, is there a way to remove the autocomplete that pops up when we type X for a playfield pixel? It doesn't do it on a full-stop but it really hampers productivity when the autocomplete keeps popping up? Thank you.

Add sample viewer for languages

Add some sort of sample viewer for languages to allow users to view/edit/compile them to help with learning.

It may be best to have them copied to another location outside the extension so they can be kept.

Wrong breadcrumb path in help message

When trying to compile & run on OSX for the first time the help message is not so helpful since it points you to the list of extensions rather than the settings of them. (Also the 's' in Preferences is missing as well)

WARNING: You must provide a path to your Stella emulator before you can launch your game. Review your selection in Preference -> Extensions -> Atari Dev Studio.

should be

WARNING: You must provide a path to your Stella emulator before you can launch your game. Review your selection in Preferences -> Settings -> Extensions -> Atari Dev Studio.

Problem with plugin activation

Hello, I've just installed Atari Dev Studio 0.4.4 in my VSCode and faced with the following problem:

I tried to "compile" or "compile and run" BatariBasic program and saw only "Activating Extensions..." without any reaction. I tried to configure paths to BB, dasm and Stella, but it did not help.

Extra information:

Version: 1.43.2
Commit: 0ba0ca52957102ca3527cf479571617f0de6ed50
Date: 2020-03-24T07:34:57.037Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.4.0

VSCode logs:

[2020-03-29 03:01:53.404] [exthost] [error] [chunkypixel.atari-dev-studio] provider FAILED
[2020-03-29 03:01:53.404] [exthost] [error] Error: Illegal argument, contents must be defined
	at new U (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:385:321)
	at new U (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:375:558)
	at BatariBasicHover.provideHover (/Users/vbauer/.vscode/extensions/chunkypixel.atari-dev-studio-0.4.4/out/hovers/hoverBase.js:94:16)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:585:255
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:54:345
	at new Promise (<anonymous>)
	at Object.t.asPromise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:54:317)
	at S.provideHover (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:585:226)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:607:893
	at V._withAdapter (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:604:832)
	at V.$provideHover (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:607:871)
	at p._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:688:464)
	at p._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:688:156)
	at p._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:686:766)
	at p._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:685:623)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:683:791
	at l.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:48:845)
	at v.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:191:325)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:851:104
	at l.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:48:845)
	at v.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:191:325)
	at t.PersistentProtocol._receiveMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:195:717)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:192:897
	at l.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:48:845)
	at p.acceptChunk (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:188:897)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:188:249
	at Socket.t (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:197:232)
	at Socket.emit (events.js:203:13)
	at addChunk (_stream_readable.js:295:12)
	at readableAddChunk (_stream_readable.js:276:11)
	at Socket.Readable.push (_stream_readable.js:210:10)
	at Pipe.onStreamRead (internal/stream_base_commons.js:166:17)

Sprite Editor

Could we have a 2600 Sprite Editor please? Thank you.

Syntax highlighter for dash fails for "ds"

The "ds" pseudo-op should probably be highlighted the same as the other like org/seg/include, now the "d" takes on the label color and the "s" is the constants color.
Screen Shot 2019-04-20 at 9 40 07 AM

Problem with launching Stella emulator and space in user directory

Hello! I wanted to check atari-dev-studio on Windows 10 and faced with problem corresponding to paths.. My user folder contains space symbol - "Vladislav Bauer" (yes, it was my silly mistake...) When I try to compile and run project I see that compilation phase works fine, but Stella emulator could not be launched

OUTPUT from VS Code:

Starting build of FIFA1977.bas...
batari Basic v1.5 (c)2020
2600 Basic compilation complete.
      2254 bytes of ROM space left

Complete.

Verifying compiled file(s)...
Cleaning up files generated during compilation...
Moving compiled file(s) to 'bin' folder...
Moving debugger file(s) to 'bin' folder...

Launching Stella emulator...
'c:\Users\Vladislav' is not recognized as an internal or external command,
operable program or batch file.

Exit code: 1

Path to test project is "C:\Users\Vladislav Bauer\Documents\workspace\atari\Atari-Games\FIFA1977"

Perhaps it is connected to "spawn" usage, but until I figured out how to check or fix it

Syntax highlighter - labels

Looking at the dasm man page that says the following for symbols:

 name	-beginning with an alpha character and containing letters,
 		 numbers, or '_'.  Represents some global symbol name.

and also at the code

const char *pushsymbol(const char *str)
  {
      SYMBOL *sym;
      const char *ptr;
      unsigned char macro = 0;
    
      for (ptr = str;
      *ptr == '_' ||
          *ptr == '.' ||
          (*ptr >= 'a' && *ptr <= 'z') ||
          (*ptr >= 'A' && *ptr <= 'Z') ||
          (*ptr >= '0' && *ptr <= '9');
     ++ptr

it is apparent (even if they disagree on the dot/period) that both a dot and an underscore are valid parts of a label. And that a label must start with a upper/lowercase letter as well.

I updated the dasm.tmLanguage.json to match this:

                "labels": {
                        "patterns": [
                                {
                                        "name": "keyword.control.label.dasm",
                                        "match": "^[a-zA-Z][a-zA-Z0-9_.]+\\b",
                                        "comment": "Label"
                                }
                        ]
                },

Colouring higher bank numbers & regions

Hello, please could we have the same colouring for referencing higher bank numbers, such as 11, 23 etc like we do for 1, 2, 3?

It loses that nice colour highlighting on bigger ROMs with more banks.

Also, collapsible regions would be a game-changer, I'm working on a 64KB game at the moment and that would be amazing!

Keep up the good work!

Usage of status line

I just realized that this extension is using quite a lot of real estate of the status line - and it's there all the time, not just when I'm in a ADS folder/workspace.

I couldn't find any guidelines for the usage of the status line, but personally I don't think it's totally ok to hog a lot of space there - especially for a specialized extension like this.

But I really like how easy it is to access the compile/run button...

A solution to this could be to have the usage of the status line disabled by default, and then let the user enable it in the workspace or folder preferences. Then the buttons could be easily accessible from the projects where I do Atari coding, but be completely out of the way when I do other stuff.

Apple Touch Bar Support

Hi, I was wondering if there is a way to add the action bar at the bottom (Home / Sprite / Compile / Launch) into the Apple Touch Bar? That WOULD be slick!

Also good to see regular updates on here! Keep up the good work!

Makefile isn't sourced from workspace root, but from current source file's directory

When setting DASM default compiler to Make, the extension's action to compile the source code can't find my Makefile if it's in a parent directory. Can the extension reference the root workspace directory or walk the parent directories to workspace root until it finds a Makefile?

It appears that GetWorkspace uses the current source file's directory rather than the workspace root directory which causes FindTerminalMakeFileAsync to not consider VSCode's workspace root when looking for a Makefile.

I have a project where the Makefile is in the root, but the source files are in a subdirectory.

/
  /include
  /out
  /src
    project.asm
  Makefile

This isn't a breaking problem since the Makefile can be run from terminal, but the extension's behavior was unexpected.

Batari Basic Variable Colours

The colours for temp variables are excellent, could we have a slightly different colour for declared variable names?

eg, dim _hitPoints = o

Build and Launch on Mac

When hitting Build & Launch on the Mac, it launches before a new build is created and launches older bin files on occassion.

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.