I guess now the only thing I can do now is indiscriminately redo code and disable features until I find what's breaking it. Oh well.
My SB interpreter github is set up (ClassTEST)
Root / Programming Questions / [.]
jamieyelloCreated:
https://github.com/jamieyello/classtest
I did a pretty sloppy job, I think I should have gone a folder deeper, and the project's name is classtest instead of SBInterpret (since the whole program came from a project where I learned how to use classes and I never changed the name), but you know what, good enough. From now on this project is ClassTEST, the SmileBASIC interpreter. I'm not changing it. Screw that.
So now anyone that wants to can look at my code, you'll need glut before you can compile (follow this tutorial, ignore everything he says about visual studio and just put the glut files in the right places)
https://www.youtube.com/watch?v=TH_hA_Sru6Q
I'm also using VS 2013 if that makes any difference.
The main reason I'm doing this is I've reached a bug I don't know how to fix and I have no one to help me fix it.
In the spoiler I have the entire e-mail I had sent to someone I know talking about my problem, he's a pretty busy guy and on top of that he's not familiar with SB so I don't think he'll get back to me, but it describes my whole problem.
If someone could help me figure out this issue I would really really appreciate it. I am very new to c++ and I've never taken a class on it or anything so it probably has several problems on formatting.
Also it is open source and if anyone would want to contribute to it's development that would be wonderful.
Edit, also you'll notice btrig doesn't have the () after it. You could add it or remove it but I haven't added a syntax error to make sure it's right and it works the same way.
Spoiler
My basic interpreter mostly works and I don't think there's anything actually wrong with the code itself, but something is just messing with it and I think it has to do with how I'm getting my header files and libraries, and I think maybe somehow things are conflicting in memory. run.txt has the basic code that will be executed, and even though several lines work by themselves just fine The problem is it seems to break and fix itself randomly depending on the length of the program, so if I type print "print" @loop if btrig==1 then y=y-1 if btrig==2 then y=y+1 if btrig==4 then x=x-1 if btrig==8 then x=x+1 wait 1 gcls gbox x,y,x+10,y+10,3 goto @loop what should happen is a little pink box should pop up on the screen and you should be able to control it with your arrow keys, but instead what happens is the whole screen goes purple. All these commands I've tested individually as I implemented them and they should all work, but for some reason it's just breaking itself as the program changes in length. Last time I fixed it by changing around the order in which the arrays were declared, but I kind of figured it would break again, and it did. The first time this happened was when I added the <ctime> and <chrono> libraries, so I think it has something to do with that. So every time I change the program it breaks in a different way, and I don't know why. (I use ' to comment out entire lines) print "print" @loop if btrig==1 then y=y-1 if btrig==2 then y=y+1 if btrig==4 then x=x-1 'if btrig==8 then x=x+1 wait 1 gcls gbox x,y,x+10,y+10,3 goto @loop Still does the same thing print "print" @loop if btrig==1 then y=y-1 if btrig==2 then y=y+1 'if btrig==4 then x=x-1 'if btrig==8 then x=x+1 wait 1 gcls gbox x,y,x+10,y+10,3 goto @loop Shows a box moving down without pressing any buttons print "print" @loop if btrig==1 then y=y-1 'if btrig==2 then y=y+1 'if btrig==4 then x=x-1 'if btrig==8 then x=x+1 wait 1 gcls gbox x,y,x+10,y+10,3 goto @loop This prints a box on the screen as it's supposed to, and pressing up moves it, but the screen is green, which it should not be. It should be clear (black) So I was actually working on this for the community since the kind of BASIC I'm interpreting use to be able to officially run on the Nintendo DSi game Petit Computer, a lot of people made games in this language and now there's no way to play them since the software isn't available anymore, so I thought I'd write an interpreter for it, but since these glitches came up I had no idea how to fix them and no one really knowledgeable on the internet really wants to spend their time looking through someone else's code. This is my first full c++ program so it's probably not very standard or proper. I attached the whole VS project along with two txt files of the main program and it's header, thanks for the helpMy string array size that held the whole program was set to 10.
Should have had a V8.
Problem fixed.
I'll still keep the Git though.
The first real "game" to boot in SBInterpret, 3DED. The dot there is actually being correctly 3d rendered in the center of the screen, utilizing tons of trigonometric and math functions and operators accurately.
Interesting, I was thinking about it a little bit and wondering how I was going to handle editing programs, then I realized literally every part of the ui could be handled entirely by a custom os written in smilebasic. I could give a couple elevated commands that would make it possible.
I kept hearing about all these mock os's but they never came to because they never had enough permissions.
I guess either people lost interest or a good chunk of the community doesn't approve of emulation type programs.
I don't know if there are any lurkers following my posts, but I feel like I'll just stop talking about it until I'm done, because frankly this is just making me feel kind of alone and maybe a little spammy. Not that my feelings are super hurt and I'm shedding a single golden tear but yeah. I guess it is kind of a slow and boring process. This must be why people don't make their emus public until they have something worthwhile to show.
Jamieyello, this is amazing. Although I do have a suggestion. Can you make it to where it's like Love2D for the distribution? https://love2d.org/wiki/Game_Distribution
Ok, so that's fine, I just felt like no one was actually reading the things I wrote for a while, so nevermind about all that I guess. Every now and then I get a little moody. |:
Jamieyello, this is amazing. Although I do have a suggestion. Can you make it to where it's like Love2D for the distribution? https://love2d.org/wiki/Game_DistributionI've never heard about love2d, but it looks like it's for lua only. I don't have an exe up to download right now. I think I'll make that resource page now.
Y'know, this whole time I've been wondering... Is this legal?!?! I just don't want SmileBOOM to lose sales when a bunch of kids find out they can just download SmileBASIC on their PC for no charge.He explains in the video that it doesn't seem like SmileBoom will be supporting PTC anymore (which is what he intends to emulate), so we'll see what they think of that. The other big point is that the entire novelty of SB/PTC is that it's your code running on your Nintendo 3DS. On PC you may as well call it Programming Masochism Simulator. I see it being more helpful for easier development than for getting around spending $8-10. Besides, we all know the reason there are so many kids in the first place is because it's 3DS software.
It probably is legal, SmileBASIC is just a BASIC interpreter itself, they don't own BASIC, I'm just bringing that format of BASIC to other platforms particularly for the main reason of preservation, which is what the bottom line for all "emulators" is. Even if I was going for SB 3ds compatibility I wouldn't have an issue with it, but yeah as of now I'm only going for PTC, which isn't being sold anymore anyway, so larger controversy avoided for now.
And yeah the other way to look at this is SB is making it increasingly harder for your average user to do work on pc (drawing images for sprites on higher quality drawing software than painting by pixel) and overall more difficult for users to access code that they actually wrote themselves. SmileBOOM doesn't own its users' content and users aren't getting paid for it anyway. When I'm done with this I could use it to make a game on smilebasic for free and then actually publish it to steam as well to make money, and it would be much easier because I wouldn't be stuck working exclusively on a 3ds using only the tools available on the 3ds. Better games are possible and more feasible to make, SB has better games to potentially draw more attention to it from customers. Basically the way I see it is I would like to make a full fledged game for smilebasic but when it comes down to it that's not really feasible to put a thousand hours into something you could have made and sold on steam.
I don't think copyright will ever be an issue. If it comes down to it I will create a program that renames every command in a SB program. I doubt I will have to do that, I don't know how you copyright something like "GLINE". It's just "line" with a g in front of it that draws a line from one point to another
I'm no expert on copyright, but if I ever get some kind of C&D I know what to do, I'll just change the names of all the commands and write a converting program that converts PTC to my own version of BASIC.
That's what I'll do before making my own tool kit for windows anyway, just change enough things to distinguish it far enough from SmileBASIC. Make GLINE DLINE and such. Far enough so that SmileBASIC is as similar to my BASIC as any other BASIC, my point being they don't own BASIC.
It's illegal. Violation of licensing and copyright.I don't think it's so black and white, emulation lawsuits always end up in favor of the emulators with restrictions such as "get your own bios" or something like that. Since there is no available "smilebasic bios" I don't think this is even capable of breaking the law aside from using official SB programs like the sample games and sounds.
BIOS are illegal (when you don't rip them from a console you own yourself) but custom BIOS's are still a thing, right? I'm not taking their code line for line. You can also patent a machine, I don't see why this is any different.
I'm not replicating Petit Computer, my program and Petit computer are two different things. For one, my program runs on Windows. It does not share the same graphics music or sounds. My program has several inaccuracies, the numbers are more accurate, it doesn't have any limitations on array size. It is not an absolute clone.
Secondly if replicating programs was illegal like that then software companies could shut down competitors they deemed "replications of their software". If they were using the same exact graphics and assets, like I'm not, then that would be true, but again, I am using no assets from Petit Computer. Users will have to dump copyrighted content themselves.
Unless SmileBOOM has a copyright on the actual commands I am using, and if that's true I will change the commands and make a converter from .PTC to .BCP, that said they cannot possibly have anything legal over me. If I change my commands I am just another version of BASIC, there are many many versions of BASIC. Hell I could write a program that converts SmileBASIC to BASIC! on the android app store. Is that illegal? I really have to disagree here. Pokemon clone on petit computer? Possibly illegal, part of the reason why I abandoned it. This? I really don't think so.