| View previous topic :: View next topic |
| Author |
Message |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Sun Jan 24, 2010 5:57 am Post subject: |
|
|
| UncleSporky wrote: | Actually, you could almost do it at full resolution, though it might be hard to see where you're going at times:
This image isn't quite there, but it's close. Chip's body and the fire use too many colors. |
I considered using 32x32 pixel blocks, but in my opinion it gets to small. And the colors would be a problem too.
The way it is now, all objects that are static and can use one of the four background palettes, use background tiles. An example is the chips. All objects that may occur many times within the same visible area, so that the 8 sprite-per-line-limit is broken, also use tiles (and the graphics is simplified if needed to.) That's why the fire looks like lava here.
Some objects will need to be implemented as a sort of hybrid between the two. The movable blocks for example; they can occur many places, and many in a row in a map, and therefore can't be drawn as sprites. At the same time they'll have to move when they collide with Chip. So the only solution will be to, at the time they collide with Chip, remove the background tile, add a new metasprite at the same position, move this metasprite to the next block position and then replace it with a metatile. |
|
| Back to top |
|
 |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Sun Jan 24, 2010 4:03 pm Post subject: |
|
|
Haha, great!
When it comes to sounds an music I must say I don't really know ANYTHING about it. I've never programmed anything sound related for the NES. But I find it very interesting, so maybe I'll look into it when I get stuck in the current development. |
|
| Back to top |
|
 |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Sun Jan 31, 2010 3:57 pm Post subject: |
|
|
I've worked on the project a bit this weekend. Movable dirt blocks are now working. When they're not moving they are displayed as background tiles. Otherwise a lot of the original levels would have to be excluded because of the NES sprite limit. Also notice that they can be moved into water and force fields etc.
You can download a demo here. |
|
| Back to top |
|
 |
UncleSporky
Joined: 17 Nov 2007 Posts: 274
|
Posted: Mon Feb 01, 2010 5:49 am Post subject: |
|
|
That's really cool. I like how you've duplicated the exact mechanics of the block, I know that's always been the goal but it's nice to see it working.  |
|
| Back to top |
|
 |
fireseed
Joined: 02 Feb 2010 Posts: 4
|
Posted: Tue Feb 09, 2010 11:06 pm Post subject: |
|
|
this would have been really cool if it was finished...
Have you considered re-releasing the extent of what you have if you don't plan on working on it anymore in hopes that others will learn from it or carry it on?
That's what I would do anyway...
That, and chips challenge rules! |
|
| Back to top |
|
 |
hyarion
Joined: 05 May 2009 Posts: 84
|
Posted: Wed Feb 10, 2010 4:51 am Post subject: |
|
|
| fireseed wrote: | this would have been really cool if it was finished...
Have you considered re-releasing the extent of what you have if you don't plan on working on it anymore in hopes that others will learn from it or carry it on?
That's what I would do anyway...
That, and chips challenge rules! |
why do you think he doesn't work on it anymore? :S |
|
| Back to top |
|
 |
UncleSporky
Joined: 17 Nov 2007 Posts: 274
|
Posted: Wed Feb 10, 2010 6:06 am Post subject: |
|
|
| Did he say anywhere that he was quitting it? I don't see it. It's only been a week since an update. |
|
| Back to top |
|
 |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Wed Feb 10, 2010 7:57 am Post subject: |
|
|
I'm not thinking about quitting yet, it's too much fun :p
I haven't worked on it that much lately, but I have completed a few new things. Moving objects will bounce back if they hit a solid block while sliding on ice. Also movable blocks cannot be moved if something is blocking them (this wasn't hard to implement, I was just too lazy to do it :p)
You can download a demo here.
Next up will probably be object-to-object-collision detection. It's really just one situation that will require it: blocks colliding with each other on ice. Monsters/blocks/balls colliding with Chip will kill him, and that doesn't look too bad if it happens only at 16-pixel boundaries. So maybe I'll do it a little hardcoded so that only moving block objects check for fine collision.
Also I have to work on various bug fixes. One critical bug I have found is that scrolling while moving blocks can corrupt nametable data. It happens when moving a block just past the point that triggers nametable updates of the two first rows of $2000 and $2400 due to a buffer conflict. Really, the whole buffer system should be rewritten entirely. I've been thinking about something along the lines of an interpreter that reads opcodes from the buffer along with data. For example $00 could mean to set address, $01 could mean to update a metatile, $02 could mean to write a row of upper- or lower halfs of metatiles, $03 could mean to write attributes, etc. So e.g. buffer contents $00 $40 $20 $01 $02 $03 $04 $05 would translate to "set PPU address to $2040 and write a metatile with upper tiles 2 and 3 and lower tiles 4 and 5. I'm afraid running an interpreter for such a "buffer program" would be far to cycle consuming when doing large updates, and really, it's far too general and high level for the few practical situations it would be used. |
|
| Back to top |
|
 |
tepples

Joined: 19 Sep 2004 Posts: 5824 Location: NE Indiana, USA (NTSC)
|
Posted: Wed Feb 10, 2010 8:03 am Post subject: |
|
|
| The refresh engine in Super Mario Bros. runs a kinda-sorta interpreter: each VRAM update has a start address, length, and direction (+1 or +32). |
|
| Back to top |
|
 |
Xious

Joined: 11 Oct 2009 Posts: 96 Location: Sol 3 in Mutter's Spiral
|
Posted: Thu Mar 04, 2010 4:03 am Post subject: Re: Project: Chip's Challenge for NES |
|
|
As a suggestion, you might want to look at the code of the Lynx version of the game...
(EDIT) Sorry Ortega, I replied before noticing that you said exactly the same thing.
I look forward to further updates on this project. Chip's Challenge was probably my favourite Lynx game, so I;d really love to see a NES port of it! Any news???
-Xious
| Jaffe wrote: | I'm currently working on a NES version of this old classic. As you can see if you try the ROM, it's going to resemble the Windows version. It isn't too complex yet and I certainly have a long way to go before it's even playable.
What currently works:
- Map decoding (RLE) and rendering (expanding metatiles, writing attributes, etc.)
- Various functions for replacing metatiles in VRAM etc.
- Objects (metasprites) including movement and collision testing
- Player movement and scrolling (the screen scrolls whenever Chip is in the center of the screen)
- A rudimentary system for "actions" happening when an object is in contact with different types of map blocks
- Picking up objects
A lot of this stuff still has to be improved. I consider the most basic graphical functions as finished, such as scrolling and object drawing (drawing here really just means going through the object list, checking if the objects are in range and if yes, compute their position depending on scroll speed and position.)
What will probably be a challange is the two layered map format of Chip's challenge (there can be things hidden under bricks etc.). I also have to implement a sort of "hybrid" object system where objects remain background blocks as long as they're not moving. And when they move, they'll be replaced by a sprite at the same initial position, move, and then be replaced by a background block again.
You can try what I've done so far: test 1, test 2 (this is a demo showing that objects react to background blocks in the same way as the player)
What do you think so far? As you can see, it's far from playable. I have to implement buttons, teleports, tanks, monsters ... the list lis long. However, this is farther than I've come on any previous NES project :p |
|
|
| Back to top |
|
 |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Tue Mar 23, 2010 3:36 pm Post subject: |
|
|
I'm sorry, it's been way too long since last update. And unfortunately there's nothing new now. I've sort of lost a bit of interest in this project lately. Last time I worked on it, I discovered some deep structural faults in the design (one of them was the nametable update problem described in my last post). I know they can be fixed, but I'm just not up for it. I would much rather continue on the game design and implementing new features rather than rewriting a lot of code, constantly checking that it hasn't broke, etc.
As for a Lynx version, I don't plan to make a NES version of that. The Windows version was the one I grew up with and is the one I like the most (graphics wise.) I will however release the source code when I feel that it is in shape to do so, so that people can modify it the way they like. |
|
| Back to top |
|
 |
Jaffe
Joined: 14 May 2006 Posts: 32 Location: Norway
|
Posted: Sun Jul 04, 2010 2:17 am Post subject: |
|
|
| Ok, so three more months have passed, and I haven't touched the project at all. I don't have time for it, and I can't see me having any more time or energy for it in the forseeable future... As fireseed suggested I will release the source code and graphics files so that people can learn from it, continue on it or something. I'll upload it to http://home.no/johan-af/chip |
|
| Back to top |
|
 |
|