NESBit Studio - Development tools
Moderator: Moderators
NESBit Studio - Development tools
Whats good my dudes!
Creating a nes project has been on my mind for about 10 years and was a bit suprised when I was already registered here since 2013.
So im on day 3 of my development journey in trying to understand the system. Now I've been doing mostly webdevelopment for 15 - 20 years so nothing on the lower level really so I already feel my brain turn in to mush
Since I'm a webdevloper my weapon of choice is html, css and javascript, node and bundle it all to an electron app.
day1-2
ca65 build file
Project skeleton set up.
Open and save projectfile.
Create, import, export, save colorpalettes.
Basic sprite tool
day3 - today
Trying to understand CHR files so i can parse and draw it with my own sprite tool. The sparse information I found was this https://simple.wikipedia.org/wiki/Chr.
I'm reading the file and getting uint8(0-255) values. Not sure if thats even right tho.
I find it easier to grasp things by doing the tools myself. Like if I would download and use someone else CHR tool i'd probably not care to much about how it actually works. Same with the palettes, which was pretty easy to implement and export.
The end goal right now isn't a full fledged game engine, but hopefully i can create enough tools for me to learn and eventually speed up any development process and come to a point where i actually manage to create an engine.
I always develop in silence and tend to lose motivation(I mean it's about ten years since I first wanted to create a game ) so i'm trying something new and putting my journey out there and have something to reflect and see progress on.
Anyways some screens and a small video of the progress so far.
Not sure whats prefered. External or upload directly to the forum?
https://drive.google.com/drive/folders/ ... FsRzCydboR
Creating a nes project has been on my mind for about 10 years and was a bit suprised when I was already registered here since 2013.
So im on day 3 of my development journey in trying to understand the system. Now I've been doing mostly webdevelopment for 15 - 20 years so nothing on the lower level really so I already feel my brain turn in to mush
Since I'm a webdevloper my weapon of choice is html, css and javascript, node and bundle it all to an electron app.
day1-2
ca65 build file
Project skeleton set up.
Open and save projectfile.
Create, import, export, save colorpalettes.
Basic sprite tool
day3 - today
Trying to understand CHR files so i can parse and draw it with my own sprite tool. The sparse information I found was this https://simple.wikipedia.org/wiki/Chr.
I'm reading the file and getting uint8(0-255) values. Not sure if thats even right tho.
I find it easier to grasp things by doing the tools myself. Like if I would download and use someone else CHR tool i'd probably not care to much about how it actually works. Same with the palettes, which was pretty easy to implement and export.
The end goal right now isn't a full fledged game engine, but hopefully i can create enough tools for me to learn and eventually speed up any development process and come to a point where i actually manage to create an engine.
I always develop in silence and tend to lose motivation(I mean it's about ten years since I first wanted to create a game ) so i'm trying something new and putting my journey out there and have something to reflect and see progress on.
Anyways some screens and a small video of the progress so far.
Not sure whats prefered. External or upload directly to the forum?
https://drive.google.com/drive/folders/ ... FsRzCydboR
Last edited by hjalmar on Mon Feb 22, 2021 8:32 pm, edited 1 time in total.
Re: BeverlyHills6502 - Development tools
Have you figured out the CHR format?
It's 2 bits per pixel, but each bit comes from a completely different byte.
tile #0 uses bytes 0-15 of a CHR file, but bytes 0-7 hold all the low bits, and bytes 8-15 hold all the upper bits. Then those bits are combined to determine which color each pixel uses.
https://wiki.nesdev.com/w/index.php/PPU_pattern_tables
It's 2 bits per pixel, but each bit comes from a completely different byte.
tile #0 uses bytes 0-15 of a CHR file, but bytes 0-7 hold all the low bits, and bytes 8-15 hold all the upper bits. Then those bits are combined to determine which color each pixel uses.
https://wiki.nesdev.com/w/index.php/PPU_pattern_tables
nesdoug.com -- blog/tutorial on programming for the NES
Re: BeverlyHills6502 - Development tools
Hey, thanks alot man.dougeff wrote:Have you figured out the CHR format?
It's 2 bits per pixel, but each bit comes from a completely different byte.
tile #0 uses bytes 0-15 of a CHR file, but bytes 0-7 hold all the low bits, and bytes 8-15 hold all the upper bits. Then those bits are combined to determine which color each pixel uses.
https://wiki.nesdev.com/w/index.php/PPU_pattern_tables
Honestly i actually thought ppu pattern tables refered to something else. But i think i get it now, with the help you provided.
Re: BeverlyHills6502 - Development tools
I probably wasted 2h before i realized that combining != adding them together.dougeff wrote:Have you figured out the CHR format?
It's 2 bits per pixel, but each bit comes from a completely different byte.
tile #0 uses bytes 0-15 of a CHR file, but bytes 0-7 hold all the low bits, and bytes 8-15 hold all the upper bits. Then those bits are combined to determine which color each pixel uses.
https://wiki.nesdev.com/w/index.php/PPU_pattern_tables
If anyone else has trouble understanding it.
If the low bit is 1 the value is 1. if the high bit is 1 it's 2. and lastly if they are both one it's 3. Giving you a color code from 0-3. So you don't actually add low + high bit together to get the result.
Re: BeverlyHills6502 - Development tools
I'm assuming that you are wanting to code the game from scratch?
You could always try NESmaker an another option.
Also I've been wanting to have a website for years, but don't understand how it all works. I might drop you a PM if you don't mind me asking some basic questions on how to get a webpage up.
Thanks and looks like a cool project that you are working on.
You could always try NESmaker an another option.
Also I've been wanting to have a website for years, but don't understand how it all works. I might drop you a PM if you don't mind me asking some basic questions on how to get a webpage up.
Thanks and looks like a cool project that you are working on.
Re: BeverlyHills6502 - Development tools
Instead of bumping my own thread all the time i just put some small clips on my drive if anyone follows the process. Sort it by date and you can see the progress.
They seem like fun characters and cool stuff what they are doing, but their software is not for me.
I don't mind at all. Also available on discord(mainly) and slack. But you can pm me first.
Yes i am going to do my own, and the tools to help me do it, from scratch.Erockbrox wrote:I'm assuming that you are wanting to code the game from scratch?
You could always try NESmaker an another option.
Also I've been wanting to have a website for years, but don't understand how it all works. I might drop you a PM if you don't mind me asking some basic questions on how to get a webpage up.
Thanks and looks like a cool project that you are working on.
They seem like fun characters and cool stuff what they are doing, but their software is not for me.
I don't mind at all. Also available on discord(mainly) and slack. But you can pm me first.
Re: BeverlyHills6502 - Development tools
Man oh man! I had to shelf this project for a year. But I'm now back and I have been able to put in a lot of work these past 2 months.
As I picket up the project again I instantly swapped from my custom frontend framework to somehthing open source since I have no ambition
continue on with that and it's also a waste of time for this project.
Also the system got totally action based. So anything it does is done via actions. And in turn these actions executes the task which
mean that anything and everything can have keyboard shortcuts. These shortcuts is also both global or whats currently active so that
different sections can have same shortcut but perform different taks. For instance 'Shift + N' can create a blank spritesheet while
on the palettes section it creates a blank palette.
The pixel editor is what has gotten the most love latly. There are some key features still yet to be implemented, like marquee selection tool,
tile rotation(for each 8x8 tile, not sure about rotating marquee selection), and most importantly the preview window which will preview an area with the option to have it repeating on the x,y or both axis.
I was thinking of only implementing an 'attributes table' tool on the tilmaps but the more im using the application the more I feel it needs to
be implemented on the spritesheets layer as well. The spritesheets only acts like layers and will be compiled/merged down with only
the used tiles upon build so the limits are not because of what the NES supports. But visually seeing how it will look I think I want to be there.
Some of these features requires the 'selected tool options bar'(area above the main view. where different tools have different options, like other graphics applications) to be implemented and refactored some before fully being able to work as intended.
With the tools currently available it's starting to feel usable. Now, having 6 ways to zoom the canvas might seem overkill but things should just work and feel intuitive even if you utilize shortcuts or simply prefer clicking the ui.
check out some of the new feature in this link
https://drive.google.com/file/d/1ArcC01 ... sp=sharing
As I picket up the project again I instantly swapped from my custom frontend framework to somehthing open source since I have no ambition
continue on with that and it's also a waste of time for this project.
Also the system got totally action based. So anything it does is done via actions. And in turn these actions executes the task which
mean that anything and everything can have keyboard shortcuts. These shortcuts is also both global or whats currently active so that
different sections can have same shortcut but perform different taks. For instance 'Shift + N' can create a blank spritesheet while
on the palettes section it creates a blank palette.
The pixel editor is what has gotten the most love latly. There are some key features still yet to be implemented, like marquee selection tool,
tile rotation(for each 8x8 tile, not sure about rotating marquee selection), and most importantly the preview window which will preview an area with the option to have it repeating on the x,y or both axis.
I was thinking of only implementing an 'attributes table' tool on the tilmaps but the more im using the application the more I feel it needs to
be implemented on the spritesheets layer as well. The spritesheets only acts like layers and will be compiled/merged down with only
the used tiles upon build so the limits are not because of what the NES supports. But visually seeing how it will look I think I want to be there.
Some of these features requires the 'selected tool options bar'(area above the main view. where different tools have different options, like other graphics applications) to be implemented and refactored some before fully being able to work as intended.
With the tools currently available it's starting to feel usable. Now, having 6 ways to zoom the canvas might seem overkill but things should just work and feel intuitive even if you utilize shortcuts or simply prefer clicking the ui.
check out some of the new feature in this link
https://drive.google.com/file/d/1ArcC01 ... sp=sharing
Re: BeverlyHills6502 - Development tools
This project now also comes in a web version. How feature rich it will be in the end, time will tell, but it's build from the same source as the desktop version so the limitations of the browsers is what sets the possibilities there. Check out the alpha version of the pixel editor which i have published here https://jensa.org/NESBitStudio-web/, and let me know if you find it useful.
p.s
red buttons needs ctrl/alt + click and it also has shortcuts like other graphics software to change tools and 1,2,3,4 for the colors for a smoother workflow.
p.s
red buttons needs ctrl/alt + click and it also has shortcuts like other graphics software to change tools and 1,2,3,4 for the colors for a smoother workflow.
Re: BeverlyHills6502 - Development tools
I'm wanting to talk to a web developer because I want to make a custom site where players can play a game like chess onine. I'm wanting to find the right person so when the day comes to make it I have someone in mind.
Re: BeverlyHills6502 - Development tools
Not sure what you are asking here. If you are asking if I would be up for doing it in the future, I would have to decline I'm afraid.
Updates to the project
I've been on an 12 day binge grind working on this and some parts are starting to come together. Still in an early stage but it's coming along and starting to get highly productive using it.
I'd estimate the spritesheet editor is about 80-85% percent done in terms of functionality. Next on the list is to implement a pattern brush to be able to paint with tiles. All the tools different options which isn't hooked up or implemented and finally a marquee tool.
But with that said the current state is highly functional, i made a small demonstration https://drive.google.com/file/d/1Va11ON ... w5Z9Y/view (sorry for drive links, need to find a better way to upload videos)
A note about tools. Most of them have modifiers, either by holding control, alt or shift. A bit unintuitive currently but that will clear up during the final polishing.
Also a spritesheet is not reflected to that of a chr(doesn't have to i should say). It just conforms to the same dimension but it's more like a free painting canvas. All the bundling and cleanup will take place later on in game/export settings depending on tilemaps etc, however one can simply import a chr file or two and use it like that as well.
Also created a discord server if anyone needs help or like to suggest some features that one might feel is missing.
You can try the current version live, here.
https://jensa.org/NESBitStudio-web/
Re: BeverlyHills6502 - Development tools
Hi you could try uploading the video to youtube. I will check the video soon thanks!hjalmar wrote: ↑Mon Feb 22, 2021 8:23 pmNot sure what you are asking here. If you are asking if I would be up for doing it in the future, I would have to decline I'm afraid.
Updates to the project
I've been on an 12 day binge grind working on this and some parts are starting to come together. Still in an early stage but it's coming along and starting to get highly productive using it.
I'd estimate the spritesheet editor is about 80-85% percent done in terms of functionality. Next on the list is to implement a pattern brush to be able to paint with tiles. All the tools different options which isn't hooked up or implemented and finally a marquee tool.
But with that said the current state is highly functional, i made a small demonstration https://drive.google.com/file/d/1Va11ON ... w5Z9Y/view (sorry for drive links, need to find a better way to upload videos)
A note about tools. Most of them have modifiers, either by holding control, alt or shift. A bit unintuitive currently but that will clear up during the final polishing.
Also a spritesheet is not reflected to that of a chr(doesn't have to i should say). It just conforms to the same dimension but it's more like a free painting canvas. All the bundling and cleanup will take place later on in game/export settings depending on tilemaps etc, however one can simply import a chr file or two and use it like that as well.
Also created a discord server if anyone needs help or like to suggest some features that one might feel is missing.
You can try the current version live, here.
https://jensa.org/NESBitStudio-web/