Parallax Scrolling (4.5)

Logana

Well-known member
Could you possibly post I link to that I can’t seem to find it, you have about 189 posts at the moment I’m trying to dig trough them
 

mouse spirit

Well-known member
https://nesmakers.com/search.php?st=0&sk=t&sd=d&sr=posts&author_id=240
If you wanna search cuttercross' posts, but only about parallax,
go there then in the left search, type parallax. That way you can search through
specific persons posts with keywords.
 

PasseGaming

Active member
Wait a tick, this is my post. It's on the first page. He doesn't actually give the code but he explains different methods of doing it.
 

CutterCross

Active member
UNROM 512 / Mapper#30 has 4 swappable banks of CHR-RAM, each bank holding 8 KB of data. (4 KB each for both pattern tables, for background and sprite graphics.) You can swap out which CHR RAM bank is loaded into the PPU's memory window on the fly. The catch is that it can't swap portions of the pattern tables. It's either the full 8 KB or nothing.

https://wiki.nesdev.com/w/index.php/UNROM_512

The trick to save ROM space is to write your graphics to all 4 CHR-RAM banks, then overwrite the graphics you want to animate with new tile graphics in the same places. (And of course if all the animated tiles are contiguous in the tilesets that makes thing more efficient.) So...

Load CHR-RAM bank 0,
Write graphics to both pattern tables,
Load CHR-RAM bank 1,
Write graphics to both pattern tables,
Load CHR-RAM bank 2,
Write graphics to both pattern tables,
Load CHR-RAM bank 3,
Write graphics to both pattern tables,

Load CHR-RAM bank 1,
Write new graphics to the locations of tiles you want animated,
Load CHR-RAM bank 2,
Write new graphics to the locations of tiles you want animated,
Load CHR-RAM bank 3,
Write new graphics to the locations of tiles you want animated,

Load CHR-RAM bank 0 back in, then you can cycle through all 4 banks based on a timer, and now you've got animated background tiles with little to no extra weight on the CPU's resources.

My current implementation is very brash and not flexible at the moment, I'll be refining it more after Byte-Off so I can use more than 1 set of animated tiles. More a proof-of-concept to prove I could do it.
Also, I'm not the first person to do CHR-RAM bankswitching with NESmaker. Mugi's Dimension Shift has been doing that long before me.
 

Jaboc1234

New member
Parallax scrolling is used in so many NES games that I find it odd that they didn't implement some kind of default support for it in NES maker. Is there a reason for this? Was it hard to implement or just not on the top of the list of needed features to implement?
 

mouse spirit

Well-known member
Nesmaker is meant to be reeeaaally basic. So if you think "hey, shouldnt i be able to easily..." the answer is no.
But if you can code or learn to code then you open many avenues. And people here have done some great things and fixxed so much. The community helps to do more with nesmaker.
I can understand what joe wants.....
but in my opinion he should give us what we want. As we are the ones who are using the program , not institutions or future possibilities, or whatever. Average nerds. And theres not too many of us here and i see alot of people give up as nesmaker requires a ton of coding to do anything real cool.

But to answer i would say, joe doesnt think the program should have stuff like that as its not basic.Im just going on what he says to people in responses or in videos repeatedly.

All that being said, i still love the program, its really amazing and helpful.,and i love joe and everyone involved.......
But ONLY because of this forum.And dale_coop.

The End
 

Jaboc1234

New member
mouse spirit said:
Nesmaker is meant to be reeeaaally basic. So if you think "hey, shouldnt i be able to easily..." the answer is no.
But if you can code or learn to code then you open many avenues. And people here have done some great things and fixxed so much. The community helps to do more with nesmaker.
I can understand what joe wants.....
but in my opinion he should give us what we want. As we are the ones who are using the program , not institutions or future possibilities, or whatever. Average nerds. And theres not too many of us here and i see alot of people give up as nesmaker requires a ton of coding to do anything real cool.

But to answer i would say, joe doesnt think the program should have stuff like that as its not basic.Im just going on what he says to people in responses or in videos repeatedly.

All that being said, i still love the program, its really amazing and helpful.,and i love joe and everyone involved.......
But ONLY because of this forum.And dale_coop.

The End

That's probably my main problem with NES maker. It was promoted as a tool to make an NES game without programming but I'm discovering that your game will be pretty basic if you don't code. the learning curve is also a little more steep than I expected. I almost feel like I would be better off learning assembly and just making my game from scratch but i'm kinda lazy these days. I'm trying really hard to motivate myself to learn more but it's really hard with my current mental health.
 

mouse spirit

Well-known member
Well i hope everything works out for you. Yes i agree that although you "can" make "a game" without "coding" with nesmaker,it would be a baaaasic one.

I decided to learn coding from youtube and trial and error for gamemaker. For nesmaker i asked for help, alot, and still do. But i have alot of time on my hands and have been able to do pretty ok after 4 months. Literally 100s and 100s of hours.

The cool thing is that WE make all that cool stuff and give it to eachother. Aaaafter the competion of course. But yeah if you wanna use this program, hang on to this community and give when you can.
 

CutterCross

Active member
Jaboc1234 said:
Parallax scrolling is used in so many NES games that I find it odd that they didn't implement some kind of default support for it in NES maker. Is there a reason for this? Was it hard to implement or just not on the top of the list of needed features to implement?

Most of those NES games with parallax scrolling were made much further in the NES's lifespan. They typically used more advanced mappers / cartridge boards that add a lot of extra features, like extra ROM banks, CHR-RAM, IRQ counters, etc.

NESmaker was designed around UNROM 512 / Mapper#30, which is basically an expanded version of UNROM / Mapper#2 made for homebrew use. It has 512 KB of total ROM and has CHR-RAM (albeit limited in its use, as described earlier), but it has no IRQ scanline counter that can help with more advanced parallax techniques. Parallax on the NES is not easy by ANY means.

Again, Dimension Shift gets around this using the more uncommon / advanced DMC IRQ technique, which is not at all easy to work with. It's unfair to expect something like that in the default codebase when its so use-specific and finicky.
 

PasseGaming

Active member
I'm thankful for this toolset. I spent the first half of this decade trying to hack nes games, because other then coding your own from scratch there wasn't any other option. An while it was fun messing with existing games, it pales in comparison to making your own. An I get it, I bought into the no coding required tag line too. I really struggle with getting my head around coding, I'm sure that's apparent with all the help I ask for.... Anyhow, this tool can make all sorts of basic NES games with out much coding. If you want it to do more advanced things, you gotta learn to code it into the game. An we have a community to share ideas and code with each other. With the ultimate goal in learning to fully code...
 

TakuikaNinja

Active member
If anyone is wondering why I haven't shared my method for sprite 0 parallax yet, this is why:
[media]https://youtu.be/HYbzm7D0GcI[/media]
Yeah, I managed to cram in some CHR-RAM animation as well. I was barely able to animate 2 tiles without bankswitching. (Adding any more code breaks the NMI, basically.)
It's only 2 unique frames, but hey, that's how most Codemasters games did it. I'm going to make a game with this stuff now, so the guide I promised will probably have to wait until after the byte-off.
P.S. I know about the CHR-RAM shenanigans Rare did in Battletoads. Maybe someone with more patience and time than me could figure that one out, I guess.
 
Top Bottom