rolandshacks / vs64

C64 Development Environment for Visual Studio Code
Other
88 stars 15 forks source link

Update on GO TO feature #41

Closed Rytikar closed 1 year ago

Rytikar commented 1 year ago

Hi, the new go to feature works really nice, even with a big project like mine. I have observed one type of labels that are not found, though.

In code like this 'PrintStatus LDX #<StatusTexts', the StatusTexts are unknown to VS64.

I don't know how you get the go to information, but in the ninja .report file I can spot a difference.

a 'normal label is listed like ' 296 StatusTired = 1', while one of the not found labels is listed like '304 6b06 0149485220534549...StatusTexts !byte CRLF : !scr ""' with address and label content as binary data in front of the label name.

Not a big issue, more for the sake of completion. :-)

Else the feature is 'a game changer' or 'a live saver', you may choose...

rolandshacks commented 1 year ago

Hi. In order to get the information, you need to parse - relying on the compiler output would not work for the real-time use cases. I will look into it, thanks for the info. Glad you like the feature, and any further feedback (and rating) is very welcome!

rolandshacks commented 1 year ago

Btw. have you looked at the resource compilation features? I think THESE can be a real game changer... :-)

Rytikar commented 1 year ago

Well, no, but I trust you and have bought the SpritePad/CharPad doublepack. Works fine under Wine and I could for starters import an 8k raw bin file containing sprites just fine, normally placed from E000-FFC0. Obviously, we had written our own char and sprite editors in 1987, with color and animation data and all. I need to figure out how this data can be imported or reentered, it's all available. Then I could see that CharPad has a 'map editor' feature. We had that, too, for the main map and the 40 city maps. That would be great. Then, what does your resource compilation feature actually do? Is there animation code handling CharPad/SpritePad data? I need to figure out charpads and spritepads data structure and see if I can place it in the meager 64k of the C64. :-) There is not a lot of room to play with...

If I get into that I'll let you know. :-)

rolandshacks commented 1 year ago

The *pad file formats are described very well. I pretty much export everything to source, bulk info goes do data arrays, meta information goes into comments - as I did not find a good standard way to export. ...but that can easily be extended in future releases.

Am Mo., 8. Mai 2023 um 21:45 Uhr schrieb Gtach @.***>:

Well, no, but I trust you and have bought the SpritePad/CharPad doublepack. Works fine under Wine and I could for starters import an 8k raw bin file containing sprites just fine, normally placed from E000-FFC0. Obviously, we had written our own char and sprite editors in 1987, with color and animation data and all. I need to figure out how this data can be imported or reentered, it's all available. Then I could see that CharPad has a 'map editor' feature. We had that, too, for the main map and the 40 city maps. That would be great. Then, what does your resource compilation feature actually do? Is there animation code handling CharPad/SpritePad data? I need to figure out charpads and spritepads data structure and see if I can place it in the meager 64k of the C64. :-) There is not a lot of room to play with...

If I get into that I'll let you know. :-)

— Reply to this email directly, view it on GitHub https://github.com/rolandshacks/vs64/issues/41#issuecomment-1538946132, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALEIMBPS4QHGIVOAF3UUZTXFFEPNANCNFSM6AAAAAAXY7OVH4 . You are receiving this because you commented.Message ID: @.***>

rolandshacks commented 1 year ago

Just edit a *pad file, save it, then go to vs64 and compile. Keep the generated resource-source open in the editor and you'll see the differences while trying out all the options.

Am Mo., 8. Mai 2023 um 22:01 Uhr schrieb Roland Schabenberger < @.***>:

The *pad file formats are described very well. I pretty much export everything to source, bulk info goes do data arrays, meta information goes into comments - as I did not find a good standard way to export. ...but that can easily be extended in future releases.

Am Mo., 8. Mai 2023 um 21:45 Uhr schrieb Gtach @.***>:

Well, no, but I trust you and have bought the SpritePad/CharPad doublepack. Works fine under Wine and I could for starters import an 8k raw bin file containing sprites just fine, normally placed from E000-FFC0. Obviously, we had written our own char and sprite editors in 1987, with color and animation data and all. I need to figure out how this data can be imported or reentered, it's all available. Then I could see that CharPad has a 'map editor' feature. We had that, too, for the main map and the 40 city maps. That would be great. Then, what does your resource compilation feature actually do? Is there animation code handling CharPad/SpritePad data? I need to figure out charpads and spritepads data structure and see if I can place it in the meager 64k of the C64. :-) There is not a lot of room to play with...

If I get into that I'll let you know. :-)

— Reply to this email directly, view it on GitHub https://github.com/rolandshacks/vs64/issues/41#issuecomment-1538946132, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALEIMBPS4QHGIVOAF3UUZTXFFEPNANCNFSM6AAAAAAXY7OVH4 . You are receiving this because you commented.Message ID: @.***>

Rytikar commented 1 year ago

Yeah, I thought so. I'll give it a try with the sprite file, should be easy enough, sprites as data arrays and color meta info only. A little snag is, that the pad file is in the wine 'windows' folder, not under my project structure, it's Linux. I need to see how that can be copied automatically to where it belongs.

rolandshacks commented 1 year ago

The extension perfectly accepts paths in the project file which point to outside the workspace - in such a case, the folder names are converted to a MD5 checksum and you'll find that in the build folder. That MD5 folder is where the generated files are. Alternatively, use links either from or to the wine folders

Am Mo., 8. Mai 2023 um 22:12 Uhr schrieb Gtach @.***>:

Yeah, I thought so. I'll give it a try with the sprite file, should be easy enough, sprites as data arrays and color meta info only. A little snag is, that the pad file is in the wine 'windows' folder, not under my project structure, it's Linux. I need to see how that can be copied automatically to where it belongs.

— Reply to this email directly, view it on GitHub https://github.com/rolandshacks/vs64/issues/41#issuecomment-1538985259, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALEIMEWQW72ORDKWSG4MIDXFFHT7ANCNFSM6AAAAAAXY7OVH4 . You are receiving this because you commented.Message ID: @.***>

rolandshacks commented 1 year ago

About that parsing issue: Does that snippet reflect your use case?

!set CRLF = 13
StatusTexts !byte CRLF : !scr ""
PrintStatus LDX #<StatusTexts
    rts

That works on my machine. Could you provide me with a quick example to reproduce the problem?

Thanks.

Rytikar commented 1 year ago

No problem, find attached folder as zip.

It's a snippet from the project. Go to strutils.asm. In the bottom you find

StandardTextPrint LDX #<StandardTexts

The StandardTexts label can not be found in my environment.

Btw, I've played with CharPad and SpritePad. Works fine under Wine, your workflow, too. Is there a way to specify the output placement? Right now it's creating the files under the build folder.

Now I just need to figure out how to get the complete color info for a 40x25 map (just a screen) out of CharPad. I seem only to be able to assign a specific color to a character in the font. But that's not your problem. :-) As of now I've just included .bin files in ACME. Works fine, too. Don't know if there is an advantage in doing the binaries in code, maybe github, but the files are so small compared to modern projects, don't think it matters.

Regards

test.zip

rolandshacks commented 1 year ago

Found it, and added it to the latest release v2.3.2

Problem was conditional include (!if .... !src), I think I added a workaround that is fine for your example. Not sure how complete this is. Also important to know is that the extension does NOT differentiate all conditions, it ignores the condition and just fetches the file to scan.

Besides that, I added a first version of code completion for ACME. !PseudoOpcodes should not be completes when hitting TAB.

Would be great if you could download and manually install / test the latest version.

https://github.com/rolandshacks/vs64/releases

THANKS!

Rytikar commented 1 year ago

Downloaded and installed, works. Great!

Thanks a lot.

I will trudge on and keep you informed about other issues or improvements. :-)