Support for CC65


Saw this project and thought to myself, hmmm maybe I should try to fix CA65 since I have a few minutes over?
So I did! :) Well now it works, halfway kinda.
You can't specify your own build command so right now you're quite limited. But support for this is coming later.

Another cool thing is I managed to build the famitracker driver with a couple of songs and try it out!
Very cool. If you'd also like to do it, find a guide over at famitracker forums

Peace out - Elrinth

Level editor integration


So today I spent alot of time integrating teh level editor into the main "IDE". So here it is.
Right now it's a bit locked... It will always load page 2 from the .CHR which is hardcoded atm.
I've been working getting some PixelBot temporary graphics into a .CHR file, and it took awhile until I understood how to import it into yy-CHR! :D Turns out, you need to save an uncompressed BMP at the exact size as one page.
That's 128x128 pixels.
Once you've figured that out, you'll notice that background tiles are grabbed from the second page and sprites from the first.

Ofcourse nerdy nights show that there's some bit you set to decide which page you use.
Anyways, I managed to code a title screen, add code to listen to start, and then switch screen.

Peace out - Elrinth

Palette swaps


Added so you can switch palette n shiz.
It doesn't apply directly onto the level editor, but only for new stuff you place. So that needs fixing.

I'm taking inspiration from NES Screen Tool by Shiru.
I'll obviously not make it as advanced as his tool, but I'll make it fully possible to export asm files to import into your project.
I haven't decided on how I should store the data yet tho. There's plenty of ways it seems.
Nerdy Nights tutorial for scrolling screens suggest you store the data as 16x16 blocks with RLE-compression.
Obviously that won't work if you need higher precision.
Rainwarrior explains it super damn awesome in his kickstarter update.

Peace out - Elrinth

Started developing level editor


So right now you can only select tile from mario.chr file and you can leftclick in another canvas to draw that tile.
If you left click you can select tile from the "level" canvas aswell.
It's pretty nifty.

Right now you can't choose palettes or export or anything, but that's to come.
Also I guess I'll try to do it as intuitive as I possibly can.
So in the end you're supposed to be able to export Attribute and Tile Data.
Attribute is basically a number representing which palette each 16x16 pixels section is using.

Peace out - Elrinth

Some progress @ actual NESDEV


* Bugfix: No longer loads cached copies of the .asm you open.
* Settings for project now changable (stored in db). More settings coming later
* Wrote up the cookie settings, but haven't implemented them. (zoom,code-theme, last-project, volume)

NES project code changes:
* So my project has made some progress. I've learnt about sub routines.
* Then I've fixed so controller in expanion port is read. Thank the gods @ #nesdev. Finally I can play using my Famicom expanion four score ;lt;3
* Made Mario animate 2 frames (12 frames per animationframe).
* Fixed mirroring for Mario aswell!
This was tricky because you couldn't just flip the sprites, you need to change the tile-index for them aswell.

Peace out - Elrinth

Soldering NES stuff


Today, me and a friend repaired my AV Famicom.
I had at a prior time stupidly put my PAL PSU into it. Wops! Luckily, the two components which needed replacing (capacitor and 7805 psu-regulator) were cheap from ebay.
It worked directly after resoldering.

After that, we decided to finish my Gimmick cart. So I had succesfully already desoldered the CHR rom, but the RPG rom needed to get desoldered aswell
After taking pin by pin out, we cleaned the holes, made sure all paths were okay and we used my TL866 EEPROM programmer.
I had already purchased the necessary 1Mbit & 2Mbit EEPROMS for the mission.
After figuring out how to use it (it wasn't really rocket science), we programmed the roms and then soldered them back on the Barcode World donor cart.
Viola, it worked directly, nice! However, graphics were a bit screwed up. Turns out we had destroyed one path, which we could easily repair just by some soldering.

As I was using FME-7, I was missing the sound channels, we didn't really find the necessary schematics until it was very late at night.
So we'll do that missing at some other time.

Peace out - Elrinth

Layout fixes


* Gave the start page more space
* Moved buttons around, and threw away crap buttons
* Actually made all (except settings) buttons to work on JSNES and CycloaJS.
- nesbox is flash so I don't know if I'm able to change settings there, but we will see! :D.
* Fixed so coding window doesn't jump around when resizing it
* Fixed so File Explorer animates smoothing to the right when it's opened now.
* Started working on a Create project dialogue box.
* Created some simple database design for how project should be handled.
- Haven't quite decided on how to do with duplicate name projects.

Peace out - Elrinth

Emulator selection


* Added NESBOX as selectable emulator.
* Fixed selection of emulators, not 100% perfect, but it's getting better atleast! :D
* Oh Z and X is flipped in JSNES. I intend to take a look at it's input handler at some time, but not right now...
* Fixed so all assemblers work as intended. A warning to all you PHP-coders who'd like to use the command "EXEC()".
You need to specify working directory for the exe you wish to fire, if the exe does something with paths n stuff.
Example: $result = exec("cd c:\inetpub\nessite\www\nes_src\ && asm6.exe inputFile.asm outputFile.nes 2>&1", $outputTextAsArrayWhichNeedsImploding);

Peace out - Elrinth



* A bit chaotic right now, but I threw in the JSNES emulator, right now it always uses that one.
* I noticed my code would give jsnes errors, so I tweaked the code slightly, and now it works, but it's not behaving as expected. :D
So my code might actually be broken, but FCEUX, actual NES and CycloaJS allows it.
I've noticed for example, that the right side of my screen is showing a couple of pixels of mario, which is a defintive error :D

With a tiny bit of code tweek, I can do some kind of select between the emulators.
Next up is trying to get nesbox work as I want aswell.

a thought:
jsnes uses controls like this:
which is kind of annoying, how can I bind a gamepad if it's like that?!.
luckily, jsnes.src.js is not obfuscated like cycloajs, which means I can add in gamepad support easily at some point :P

Peace out - Elrinth

Layout fixes


* Cleanup interface * Integrating the filetree
* Started working on project management
* Adding file tabs
* Ability to switch between tabs
* Ability to close tabs
* Right click menu on filetree
* File tree don't actually open new tabs yet.

Peace out - Elrinth

Fixes, fixes! :D


So yesterday I started this whole thing. Today I've made a bunch of fixes. Changes to
* backspace overridden so you don't accidently go away from the page
* made so arrow keys, A,B,Enter,Space preventDefault whenever we are actually playing something in the emulator
* made buttons a bit more beautiful :)
* added a theme selector for the editor
* added a dropdown where u can select between assemblers which build your code.
* Fixed so you can quickly go between editor and ingame. CTRL+R to run, then escape to go back to editor.

Revelations/Changes to my nes code:
* Can move 4 sprites (a whole mario) at same time whenever key is pressed
* Read ALL keys from the input (instead of only A and B buttons)
* Figured out how to change colours.

I am learning everything from bunnyboy's Nerdy Nights.

Peace out - Elrinth

Started coding NES


Yay, so today I started coding on NES stuff...

Peace out - Elrinth