So ever since the beginning of 2015, there's a little something that I've been working on "behind the scenes".
Basically it's a personal dare.
Not only do I have to make a SNES game, but I also have to write all the tools for doing so. This explains why I made a palette converter earlier on.
So why haven't I shown any tools since then? Because what I'm working on now is the assembler. It'll be very basic and somewhat low-level, but maybe eventually I'll post it online when it's even usable.
The main reason this has been to myself this whole time is mostly cuz I'm just afraid of people saying it's not worth my time and I should do something that would actually be worth it. To those who would agree to that statement: I don't care.
Anyway, I've been maintaining a small blog of the journey. Hope you guys enjoy it, and follow along as I go.
http://thesnesproj.blogspot.com/
Nice bro, good luck and happy success
bazz wrote:
Nice bro, good luck and happy success
Thanks. I've actually had tons of luck today. Implemented .db, .dw, .dl and .dd for 8/16/24/32 bit numbers. Also got a tiny banking system and even working file output.
Basically, if you want to make a whole game in one file out of raw data, be my guest, as this program can handle a bit of it. (No, the actual 65816 instruction hasn't been implemented yet XD).
Still need to add in label support, however...as for preprocessor, I don't even know what I'm gonna do about that. It might have to wait. For a really long time.
I went ahead and put what I've gotten done so far on GitHub:
https://github.com/NicklausW/neptune
nicklausw wrote:
bazz wrote:
Nice bro, good luck and happy success
Thanks. I've actually had tons of luck today. Implemented .db, .dw, .dl and .dd for 8/16/24/32 bit numbers. Also got a tiny banking system and even working file output.
Basically, if you want to make a whole game in one file out of raw data, be my guest, as this program can handle a bit of it. (No, the actual 65816 instruction hasn't been implemented yet XD).
Still need to add in label support, however...as for preprocessor, I don't even know what I'm gonna do about that. It might have to wait. For a really long time.
I went ahead and put what I've gotten done so far on GitHub:
https://github.com/NicklausW/neptunebro you skipped a step.. You need to write the Operating System that you dev on...
lolol JK but that's insane you'll go down in history for doing this.
XD Well, I built the computer I'm doing all this on, so let's just skip a step for that...
...And then you built the house you're in and the local power plant... Oh, and the factory that made the parts you used to make the computer.
For my own work, I've operated under a different rule: If I can use a component that is publicly available as
free software, I can skip making that component. This let me skip these components:
- Operating system: Xubuntu (free except for a WLAN device driver not directly involved in the build process)
- Assembler and linker toolchain: cc65 (free except for the C compiler part that I'm not using at all)
- Tool frameworks: Python, Pillow, NumPy, SoX, Pygame
- Audio editor: Audacity
I wrote my own graphics conversion tools using
Pillow and an audio conversion tool.
tepples wrote:
For my own work, I've operated under a different rule: If I can use a component that is publicly available as
free software, I can skip making that component. This let me skip these components:
- Operating system: Xubuntu (free except for a WLAN device driver not directly involved in the build process)
- Assembler and linker toolchain: cc65 (free except for the C compiler part that I'm not using at all)
- Tool frameworks: Python, Pillow, NumPy, SoX, Pygame
- Audio editor: Audacity
I wrote my own graphics conversion tools using
Pillow and an audio conversion tool.
Yeah but in his case it's more legendary if he makes his own assembler and gfx tools and even audio!! But if you succomb to SNES Tracker in the future I will understand
BUT YOU CANT!!! YOU MUST MAKE YOUR OWN. BECOME THE LEGEND YOU SET OUT TO BE!!! <3
Wait, cc65 isn't entirely free?
nicklausw wrote:
Wait, cc65 isn't entirely free?
no it is "If I can use a component that is publicly available as free software"
cc65 isn't DFSG because the license explicitly forbids charging for distribution. Meh.
Huh...never seen a license like that one.
I prefer GPL, cuz copyleft. My only problem is the document's size. That thing is frickin' huge!
nicklausw wrote:
That thing is frickin' huge!
that's what she said
bazz wrote:
nicklausw wrote:
That thing is frickin' huge!
that's what she said
I'm sure she'd agree.
lidnariq wrote:
cc65 isn't DFSG because the license explicitly forbids charging for distribution.
Fortunately, everything in the cc65 package except the C compiler is under the zlib license, a GPL-compatible non-copyleft free software license. This puts ca65 and ld65 squarely within "free tools".
Espozo wrote:
...And then you built the house you're in and the local power plant... Oh, and the factory that made the parts you used to make the computer.
Life is different when you're stranded on a deserted island with two sailors, an elderly rich couple, a movie star, and the rest.
I've just added a labels feature...well, sort of. The label has to start with a semicolon but it works.
Code:
:i_am_a_valid_label
i_am_currently_not:
i_am_also_currently_not
This will be the last of me for the day...it's 5 'till midnight and tons of progress has been made. School is cancelled tomorrow for bad weather, so that means that much more time to work on neptune.
I'm guessing that it's colder in ... than it is in Texas? (Alright, I'll stop being a jerk now.
)
Espozo wrote:
I'm guessing that it's colder in ... than it is in Texas? (Alright, I'll stop being a jerk now.
)
In my actual location we had tons of snow hit us last year, and it stuck to the ground so quickly that all hell was going on in the roads with traffic. I would know, cuz I was stuck in it myself. XD So now the governor is paranoid and is begging the schools to cancel.
It's nice in ... though. I like it.
Yeah, if there's even a quarter inch of sleet, people freak out and the schools close. To people over here, sleet is snow to them. People teased me because I didn't go out to play in the "snow", but if you tried to make a snowman, you'd end up picking up more dirt than any "snow". The temperature does get pretty cold here, but my luck, there is never any precipitation to form any snow. Seriously, It was raining like a monsoon over here this morning and it was about 60 degrees outside, and later, it stops raining and it's about 40 degrees.
Made one more update: improved user-thrown errors. It took 2 commits because of stupid pasting errors...
Another update: neptune now supports some 65816 opcodes. Only ones that have no args to them, like nop. Sadly plenty to go...
(ew, triple posting).
Thought I'd just post a quick update on here that neptune has had tons of progress coming along with it. Plenty of fixes and additions, and a large speed-up.
Reminder that the repo is always open to look at:
https://github.com/NicklausW/neptune
I was just quickly glancing through the source.
Code:
fn = malloc(strlen(argv[0]));
strcpy(fn, argv[0]);
That's a buffer overflow. Similar cases appear elsewhere in the code.
thefox wrote:
I was just quickly glancing through the source.
Code:
fn = malloc(strlen(argv[0]));
strcpy(fn, argv[0]);
That's a buffer overflow. Similar cases appear elsewhere in the code.
Fix: malloc(strlen(argv[0])+1);
Thanks, fixed that right up.
(This might be considered cheating, but I'm using non-self-made software JUST for testing purposes).
Any idea why Snes9X doesn't seem to recognize a lorom header, but ZSNES sees it just fine?
nicklausw wrote:
(This might be considered cheating, but I'm using non-self-made software JUST for testing purposes).
If that's cheating, than I guess 99% percent of the people here are only cheating.
Espozo wrote:
nicklausw wrote:
(This might be considered cheating, but I'm using non-self-made software JUST for testing purposes).
If that's cheating, than I guess 99% percent of the people here are only cheating.
Aw, c'mon, tell me you at least read the first post to know what I'm talking about. XD
Espozo wrote:
If that's cheating, than I guess 99% percent of the people here are only cheating.
Keep in mind that "cheating" means doing something different from what you committed to doing. If nicklausw said he'd only use the tools he made himself, then yeah, he's cheating, but everyone else who made no such commitment can do the exact same thing and they won't be cheating.
This is true even in romantic relationships: hooking up with someone else isn't necessarily cheating... it depends on what the agreement between the couple is. Some couples are OK with their partners seeing other people, so in this case it won't be cheating. Problem is that not everyone makes the rules perfectly clear beforehand, so it isn't always this easy to say whether cheating took place.
Nevermind. Just dismiss what I said.
tokumaru wrote:
Some couples are OK with their partners seeing other people, so in this case it won't be cheating.
What, you mean like people who practice polygamy?
Espozo wrote:
What, you mean like people who practice polygamy?
Well... yeah, but also people who just want to have some quick fun with people other than their main partner. I'm not one of those people, so I can't tell you much more about any of this, but you can be certain that there's a lot of weird shit out there, but as long as everyone involved has agreed to such shit, there's no cheating going on, no matter how weird the situation is.
nicklausw wrote:
Any idea why Snes9X doesn't seem to recognize a lorom header, but ZSNES sees it just fine?
Things kinda got off-topic about polygamy, so I'm re-posting this question. If anyone can answer, that is.
Yes, I'm bending the rules, but it's not like someone else made them. XD They is mine. MIYNE.
nicklausw wrote:
nicklausw wrote:Any idea why Snes9X doesn't seem to recognize a lorom header, but ZSNES sees it just fine?Things kinda got off-topic about polygamy, so I'm re-posting this question. If anyone can answer, that is.
Woah, settle down now.
Anyway, what do you even mean? It looks good to me.
Attachment:
SNES9x LoRom.png [ 1.05 KiB | Viewed 1128 times ]
I'm still trying to work with the headers. Found that Snes9X wouldn't recognize it unless I put a bunch of 0xFF's after the main thing. Got checksum kinda working at least.