For 100% compatibility you would need things like Joycon support, including things like IR camera, as well as all of the music, sounds and default images that are included.
One of those is complex given how messed up Windows and its many drivers has gotten, probably requiring hacked drivers and all of the complexities that that brings.
The other is .. well, it's copyright theft, basically, and if you're truly aiming for 100%, then that's going to be one heck of a brick wall to overcome.
You have to err on the side of caution, and if it's means creating "HTVBasic" then I would much prefer to support something like that, than something that could end up getting a C&D at any moment.
At the end of the day, BASIC is BASIC, and if you write a good language, with "(*) support for SmileBASIC programs", then that would be much appreciated by many. You might also scan through other basics, and see how many you can mangle into one. Classic 8-bits.. BBC, Commodore, Spectrum, Amstrad, etc.. You could write a perfect "all in one", with support for everything, all under one roof.
"The Ultimate BASIC"
..."FINAL BASIC"!
Just imagine if it takes off, and your language becomes supported by many developers, and ends up being taught in schools... constantly with someone else's (SmileBoom) name attached.
How would that make you feel?
Concept: Open-Source SmileBASIC
HTV04Created:
I've grown to love SmileBASIC4 over the past 13 weeks of using it. But... *tries not to look too much like a spambot* If you want something that might come close to SmileBASIC, maybe have a look at AMOS2. AMOS was a BASIC language from the Amiga days, and the author (the original AMOS creator, Francois Lionet) has recently started to port the entire thing over to Javascript. I'm not sure if any of you are old enough to remember AMOS, let alone the Amiga computers, but if you do know what it is, you'll probably get why it's as important as it is. Linkage The author is still at the early stages, but his intention is to create a 100% compatible version, (as in, you could literally copy+paste entire Amiga AMOS game code, and it'd work) and then expand from there. As for cloning SmileBASIC.. As much as I'd like to see it, I'd rather it be attempted by SmileBoom and done "properly" than have the wrath of their CEO come down on anything and everything you might've then created using it. IMO it's better to go your own way, and make a "BASIC Clone" that doesn't land you in hot water. A little ingenuity and a little imagination can create a wonderful new thing. Don't clone. Create.I know I could always create something different or potentially better, but that's not the point of what I'm trying to do. I'm trying to make a SmileBASIC interpreter as an experiment, to learn more about the language. About the legal issues, that part was already resolved. As long as there's no mention of SmileBASIC (albeit in the description, like I said), it should be fine. And we could always change that, but then people would be confused on the purpose of the project (they would probably think it's an original BASIC dialect).
For 100% compatibility you would need things like Joycon support, including things like IR camera, as well as all of the music, sounds and default images that are included. One of those is complex given how messed up Windows and its many drivers has gotten, probably requiring hacked drivers and all of the complexities that that brings. The other is .. well, it's copyright theft, basically, and if you're truly aiming for 100%, then that's going to be one heck of a brick wall to overcome. You have to err on the side of caution, and if it's means creating "HTVBasic" then I would much prefer to support something like that, than something that could end up getting a C&D at any moment. At the end of the day, BASIC is BASIC, and if you write a good language, with "(*) support for SmileBASIC programs", then that would be much appreciated by many. You might also scan through other basics, and see how many you can mangle into one. Classic 8-bits.. BBC, Commodore, Spectrum, Amstrad, etc.. You could write a perfect "all in one", with support for everything, all under one roof. "The Ultimate BASIC" ..."FINAL BASIC"! Just imagine if it takes off, and your language becomes supported by many developers, and ends up being taught in schools... constantly with someone else's (SmileBoom) name attached. How would that make you feel?Calm down lol This is just going to be an interpreter, not a full-on language that can be used to make separate Win32 applications. As for the controller compatibility, I could have a mapping system that could map keys and XInput/DirectInput buttons. The IR camera can also be mapped to a webcam. Not many SmileBASIC programs use it though, so it shouldn't really a problem if we can't get 100% compatibility there. I have been thinking about features I could add to the interpreter, but right now I just want to focus on SmileBASIC compatibility. Can we move on from legal issues here? It's all we've been talking about.
I don't feel that you quite grasp the legal issues, from your uhh interactions so far, though maybe that's just me being painfully aware of them after watching this community for so long.
To be very blunt, this looks like another "Hey what if we did <x>" thread where the idea sounds okay but OP doesn't understand the magnitude of the proposal and has nothing to bring to the table.
If it's for your own experience or whatever, then the project is something you should at least start on your own, and if it's something that you want other people to, um, "help" with, they'd be better off organizing it themselves.
I don't feel that you quite grasp the legal issues, from your uhh interactions so far, though maybe that's just me being painfully aware of them after watching this community for so long. To be very blunt, this looks like another "Hey what if we did <x>" thread where the idea sounds okay but OP doesn't understand the magnitude of the proposal and has nothing to bring to the table. If it's for your own experience or whatever, then the project is something you should at least start on your own, and if it's something that you want other people to, um, "help" with, they'd be better off organizing it themselves.I understand. I guess I'll see what I can do, if I can make a good base for this, then I'll start updating everyone on it. In other words, I'll try making the PoC myself instead of appointing others to help me, and if it turns out well, I'll ask for help with expanding it if I can't do it myself. Thanks, Y. I also think I jumped to conclusions. This is really just a concept, and I should've kept it that way for now instead of thinking about its development. Sorry everyone.
I come bearing the gift of interpreter/compiler links
- A simple interpreter from scratch in Python http://www.jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1
- A blog series on writing a Pascal interpreter https://ruslanspivak.com/lsbasi-part1/
- Antlr https://www.antlr.org/
- LLVM https://llvm.org/
- Bison (see also YACC) https://www.gnu.org/software/bison/
- Flex (see also LEX) https://github.com/westes/flex
- Rosetta Code BNF Grammer's which includes some versions of BASIC https://rosettacode.org/wiki/BNF_Grammar
- A book I have been eyeing "Writing an interpreter in Go" https://interpreterbook.com/ (costs money). I think I gave the last guy wanting to make an interpreter a heap of book links if you want to scan my post history.
- A page with links to BASIC interpreters https://sites.google.com/site/smallbasicinterpreters/source-code
- A regular expression tester https://regexr.com/
- Learn about regular expressions https://regular-expressions.mobi/index.html?wlr=1
FWIW : I'm not saying you shouldn't do it. If anything, I think you should. But just be aware of all the legalities of "duplicating".
Over the stupidly long time that I've been online, I've seen SO many long-term projects being completely destroyed once they're unveiled and released to the public, simply because they used other people's IP.
People keep saying "Well what about Sonic Mania?" and .. yes, that's a rare success. It's a fantastic success, too!! But it IS a Rarity, and you should always assume that the opposite will happen.
In this situation, I think it's OK to do "BASIC", and even add "Smile Compatible", but not specifically do "A Smile Clone". That's where the main problems might occur.
And even if it's not CEO himself, who you've asked and he's semi-OK'd it.. .. It might be some hired Lawyer trying, noticing your project and trying to do the right thing.
You really do have to err on the edge of caution. And I'm just trying to make sure you do that before putting too much time and effort into things.
From the get-go, always assume someone will sue/C&D you, and take things from there.
So.. Yes, absolutely, go ahead and make this.
But just be wary of being "A clone", and instead consider it "An option"..
IMO> The more variants of BASIC you add, the less trouble you'll be in. You're just "Adding compatibility", not "cloning".
I think this is a great idea. Like everyone else is saying though, LEGAL. Still, it would be nice to just load up smilebasic games on a website whilst using a gamepad/kb and mouse to play them. Would allow people who dont even have a ds to access these things too.
And, you do get the rights, allow for smilebasic stuff to be uploaded from PC. No more hunching over my ds trying to type out stuff with a pint sized pen.