Latest Uploads
Invasion V ... prototype


Invasion V ... Prototype


Shields 64x64




Hives Screen shot


Rpg Potion Sprites


Back to rychan's Blog ( Created 16 May 2017 | Last Edited 16 May 2017)
Development Diary : My Journey into NES Development
AKA Ryan learns Assembly OMG!
So, time for that big final step into assembly.

I've not really managed to get a good grip on ASM before and last years experience with the Atari 2600 was fairly nightmarish, but the NES, it seems, might be slightly more friendly. Hardware sprites and all sorts of things going on.

It's going to be a big journey this one I think. but so far I have a sprite...moving...on the screeen!

Wooo! Roll on joypad input!

Highslide JS

Latest Comments

Posted : Wednesday, 17 May 2017, 03:37


Homepage :
Posted : Wednesday, 17 May 2017, 03:56

I always wanted to do nes dev. never bothered though. I wish you success!

Homepage :
Posted : Wednesday, 17 May 2017, 09:18

Thanks Spinal, If my code is looking reasonable by the end of it I'll post it here with comments 'n' stuff

I'm going to attempt to port my old OUYA game Invasion VS onto the system. I've figured out how to access the background layer late last night and have been tinkering with pixels since then, albeit mostly in photoshop. But it gives me a good target to aim at!

As it's my first try I'll be sticking with mapper 0 and not scrolling the screen, the nice thing about Invasion VS was tat it was a pretty simple but playable game back in the day so should be a good on to port over first.

Here's those images I mentioned earlier:

Back to transferring them pixels for me now!

Homepage :
Posted : Wednesday, 17 May 2017, 16:28

So, learning about nametables today and the odd colour mapping that goes on with the backgrounds. It compares oddly to the gameboy color which has so many more options.

Firstly, you are limited to 4 palettes, not the bonutiful 8 that I've been used to of late, which can be worked around but yeah, is a tad limiting.

Secondly, background colour maps aren't based on a per tile basis, it's each group of 2 x 2 tiles instead. Which changes how things can display, at least without hacking sprites over the top of it anyhoo!

Today has been more about learning the tools I'll need to use to get things on the screen as opposed to much more ASM but it's proven handy to know the limits of the hardware a bit more.

Homepage :
Posted : Friday, 19 May 2017, 02:13

Getting there with the title screen. So far it seems to be just sequential access per tile only, which is a little odd, just firing a stream of data to a single memory address. I'm wandering exactly how you change set background tiles in an X,Y fashion.

But, I've written up a two stage loop and got the equivalent of a while loop running in a subroutine, so, it's getting there. But, as expected, it's a slow process.

Hopefully tonight I'll get the hang of strobing the joypad (sounds kinky XD) then maybe generate a sound effect over the weekend?

Homepage :
Posted : Friday, 19 May 2017, 03:14

Sounds awfully complicated, but I imagine that using raw assembly helps balance any significant speed issues.

You're just going to have to learn to update your backgrounds in a very specific order

Homepage :
Posted : Friday, 19 May 2017, 05:42

Yeah, it's a little odd, it's like gameboy programming but harder

My head is still adjusting to ASM and I think there was a way to skip scanlines by setting the PPU to increment by 32 instead of just 1. That would give a way to update via X and Y.

Maybe tonight XD

Homepage :
Posted : Friday, 19 May 2017, 07:10

Good luck fella

Posted : Sunday, 21 May 2017, 15:49

Had a bit more of a play around with it tonight, got joypad input working in a little way, just so you can select options then press start to go to what will probably be the game screen.

I still need to get something down to store the last joypad state into a single byte so I can detect keypresses nicely and hopefully safely!

Homepage :
Posted : Sunday, 21 May 2017, 16:13

Looks like you're picking it up nice and fast.

Get that Cartridge Maker lined up!!!!

Homepage :
Posted : Sunday, 21 May 2017, 16:38

It's coming along. But there's still so much to learn. I reckon it could be done in a few weeks though, fingers crossed!

Game Screen Bkg Tomorrow night. that's the aim for the moment.

Homepage :
Posted : Monday, 22 May 2017, 08:33

Thinking up pseudo random number generators now.....omg

Homepage :
Posted : Monday, 22 May 2017, 09:18

Could you get away with something like Millisecs() Mod Max?

Homepage :
Posted : Monday, 22 May 2017, 17:04

I'm going for something a little more simple (I think)

Loading up the A reigster with a value,
Adding the current frame number to it which I'm stoing in a seperate memory address
Adding the players X co-ordinate
Rotating the values left by one.

Each frame, it's not exactly linear randomness but it'll do and is slightly influencable by the player in-game I guess...

Also, here's a lil progress GIF

Homepage :
Posted : Tuesday, 23 May 2017, 00:36

Should suffice. Game-random doesn't need to be perfect. As long as it feels random, that's good enough.

Homepage :
Posted : Tuesday, 23 May 2017, 01:53

That's the hopes!

It should at least almost always be a different, unpredictable value each frame.

Tonight / Tomorrow I'll be bunging on the shooting bits 'n' bobs and sorting out those attribute tables for something closer to my original photoshop file.

Homepage :
Posted : Thursday, 25 May 2017, 12:31

Taken a couple of days away from it, mostly due to some crazy headaches, roll on tonight ( hopefully, so much bloody housework to do! )

Homepage :
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 649|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Latest Posts
Any Feature Requests?
Kuron Fri 23:09
More Monkey Madness - With Ducks
therevillsgames Fri 20:23
Arms on Switch
Jayenkai Fri 18:30
Time for a new Android Test Doohickey
Jayenkai Fri 09:26
CSS-Me-Do - SoCoder2
Jayenkai Fri 06:28
Pillowcases for kids!
rockford Thu 16:15
Manchester Arena Explosion
Jayenkai Thu 02:04
Buy Zelda
spinal Wed 11:31
Jayenkai Wed 04:06
RIP - Sir Roger Moore
rockford Tue 15:56

Latest Items
Showcase : Hives
zzoom Fri 16:10
Dev-Diary : My Journey into NES Development
rychan Thu 12:31
Showcase : Flappadiddle
Jayenkai Sun 14:39
Snippet : QFind
Jayenkai Sun 13:02
Showcase : Tiny Blocks
Jayenkai Sun 04:08
Showcase : Read Error A
rychan Fri 05:13
Blog : All my makes!
Jayenkai Tue 05:48
Showcase : Infinitron
rychan Mon 18:03
Showcase : Quadoban
rskgames Fri 10:11
Blog : My Arduino experience.
steve_ancell Wed 17:02
Showcase : Roguelike Explorer
Pakz Fri 06:59
News : Newsletter #311
Jayenkai Thu 17:27
Link : Super Shapes Exploration Kit
Andy_A Thu 11:09
Dev-Diary : Sensitive - Arduboy!
rychan Thu 17:27
Snippet : Skylines
steve_ancell Tue 14:25

Who's Online
Sat, at 01:56
Sat, at 00:49
Fri, at 23:09
Evil Roy Ferguson
Fri, at 20:47
Fri, at 19:28
Fri, at 18:10
Fri, at 18:04
Fri, at 16:34
Fri, at 16:14
Fri, at 15:20
Link to this page
Site : Jayenkai 2006-Infinity | MudChat's origins, BBCode's former life, Image Scaler.