Jump to content

Photo

Porting the original classic Castlevania to the 2600


317 replies to this topic

#251 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Sat Jun 18, 2011 7:44 PM

For my eyes, I like the top half of the first guy, the pants of the second guy, and the boots of the first or third guy.

Ok I retooled the palette and came up with this.Attached File  Castlevania 2600 kernel v2.5 new4.bin   4KB   194 downloads

#252 thegoldenband OFFLINE  

thegoldenband

    Quadrunner

  • 5,567 posts
  • Location:The Sapphire Galaxy

Posted Sat Jun 18, 2011 7:55 PM

For my eyes, I like the top half of the first guy, the pants of the second guy, and the boots of the first or third guy.

For some reason your comment reminds me of a certain scene in a Mel Brooks movie...

#253 Random Terrain ONLINE  

Random Terrain

    Visual batari Basic User

  • 28,952 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sat Jun 18, 2011 8:15 PM

Ok I retooled the palette and came up with this.Attached File  Castlevania 2600 kernel v2.5 new4.bin   4KB   194 downloads

He seems to be standing out pretty good now.

#254 JohnnyAtari OFFLINE  

JohnnyAtari

    Combat Commando

  • 4 posts

Posted Fri Jun 24, 2011 3:56 AM

Ok I retooled the palette and came up with this.Attached File  Castlevania 2600 kernel v2.5 new4.bin   4KB   194 downloads

He seems to be standing out pretty good now.

Could you continue this project after castlevania http://www.atariage....og-on-the-2600/ and maybe even port your game to the nd. the-nd.com

#255 Propane13 OFFLINE  

Propane13

    Stargunner

  • 1,649 posts
  • Location:Charleston, SC

Posted Fri Jun 24, 2011 6:07 AM

But that's someone else's project...

If you've followed this thread, you'd know that Castlevania probably has a year or more to go.
It's best to ask an original author to finish their own work. And yes, that can take significant time.

One thing to learn about the Atari community, is that it requires a LOT of patience. But, in the end, it's worth it. :)

-John

#256 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Thu Jun 30, 2011 10:24 PM

Been doing some basic tests with the kernel and thought I would share the current progress.

things added:

joystick sampling (data readout between where HUD area and game screen meet)

temporary hard coded animation to guage best animation speed(s)

raw vertical movement (no actual jump or crouch yet)



The animation looks a little off but thats because horizontal movement has not been added yet.

Doing baby steps here. Every step is a step twards pogress.

#257 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Fri Jul 1, 2011 1:58 AM

Been doing some basic tests with the kernel and thought I would share the current progress.

things added:

joystick sampling (data readout between where HUD area and game screen meet)

temporary hard coded animation to guage best animation speed(s)

raw vertical movement (no actual jump or crouch yet)



The animation looks a little off but thats because horizontal movement has not been added yet.

Doing baby steps here. Every step is a step twards progress.


update:
I removed the constant animation and added left facing to the mix. Just tryin to get a feel for the controls. Guess im getting in the 'zone' or something :D



Next on the list is horizontal movement and jump and crouch graphics

And BTW, some documentation out there for the TIA is incorrect with respect to REFP0 (REFP1).

For D7|D6|D5|D4|D3|D2|D1|D0 (the register associated with REFP)
It is "D3" that needs to be set. Some documents I have read as D2 which does nothing.
This needs to be 0 for non reflective and 1 for reflective.


This is the most current file.

Attached File  Castlevania 2600 kernel v2.6.1 new input.bin   4KB   208 downloads

Edited by grafixbmp, Fri Jul 1, 2011 2:04 AM.


#258 Propane13 OFFLINE  

Propane13

    Stargunner

  • 1,649 posts
  • Location:Charleston, SC

Posted Fri Jul 1, 2011 4:28 AM

Keep up the momentum! Awesome work. Even the tiniest of accomplishments are HUGE in Atari 2600-land.

-John

#259 PAC-MAN-RED OFFLINE  

PAC-MAN-RED

    Moonsweeper

  • 490 posts

Posted Fri Jul 1, 2011 8:48 PM

Me like :) I'm looking forward to whipping a wall and eating a 200 year old pork chop from it. :D Seriously though, it's looking good. :thumbsup:

Illya

#260 gorfcadet OFFLINE  

gorfcadet

    Stargunner

  • 1,339 posts

Posted Wed Jul 27, 2011 5:42 AM

Wow! That looks amazing. How gaming history might have changed if games like this had been in the works in the early 80's. I just want to play hooky and run that cart all day.. of course as a parent and teacher that isn't the best example, but whatever... kudos to you that is outstanding!

#261 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Wed Aug 17, 2011 9:45 AM

Been a while since an update. Here is the current state of the project.

Added crouch graphic for both crouching and jumping. Still need to offset the vertical position when only crouching.
Next task is to add both a gravity routine and ground collision.

Attached File  Castlevania 2600 kernel v2.6.1 new input.bin   4KB   171 downloads

#262 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,314 posts

Posted Fri Aug 19, 2011 7:13 AM

@grafixbmp: When you first started this project I honestly pegged you as an idea man that would probably abandon this project after you realized its complexity. Put simply, I was DEAD WRONG! This latest binary is amazing. No flicker. On a system designed for PONG this is clearly, recognizably Castlevania.

You give me hope for my own projects. Carry on!!

P.S. Belmonts pants change colors after crouching and standing again (but you knew that)

#263 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Fri Aug 19, 2011 8:44 AM

@grafixbmp: When you first started this project I honestly pegged you as an idea man that would probably abandon this project after you realized its complexity. Put simply, I was DEAD WRONG! This latest binary is amazing. No flicker. On a system designed for PONG this is clearly, recognizably Castlevania.

You give me hope for my own projects. Carry on!!

P.S. Belmonts pants change colors after crouching and standing again (but you knew that)


Thanks man. That means alot to me. And yes I knew about the bug. It only happens when the stick goes directly from crouch to left or right but since it is only a visual bug and not anything that hinders future gameplay, it won't have top priority at this time.

I know I mentioned that gavity and collision come next but I had an idea last night about something else that may need to come before those. A single RAM vaiable used as an idirect jump. I call it the "primary overide vector". It temprarily takes control over simon for many things. Jumping, gravity, whip, mace, enemy hit, secondary weapon, etc. I actually surprised myself cause I don't see how I got this far with out a "POV" in place.

And trust me wne I say I am very aware of the complexity cause most of the code is stuck in my head with the majority of the complexity and I need to get it in digital format instead of braincell format. :D

I've never been the fastest at coding. I'm too slow at it. I'm not as experienced at it either but the slow pace is all there is now being it's a one person project.

If I get stuck anywhere along the way, would you care to lend a few braincells to the cause? And that goes for anyone else as well.

We all know the mechanics of the original versions of the game so replicating thoes mechanics leaves little room for original game design which should make it easier... :roll:

Edited by grafixbmp, Fri Aug 19, 2011 9:07 AM.


#264 HatefulGravey OFFLINE  

HatefulGravey

    River Patroller

  • 2,436 posts
  • A ROM image is no way to live.
  • Location:Georgia

Posted Fri Aug 19, 2011 9:43 AM

I don't normally get too involved in the homebrew world but this game has had me excited for a while now. I can't wait for the day this is something I can have on a real cart. Keep up the good work man, you are drawing atleast one new person into a whole new world of collecting.

#265 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,314 posts

Posted Fri Aug 19, 2011 10:05 AM

If I get stuck anywhere along the way, would you care to lend a few braincells to the cause?


I'd be honored to. Of course, the standard disclaimer that I'm a BASIC newb-4-lyfe applies. Right now I'm making a side-scrolling platform engine for the Genesis. If any of that knowledge would help I'll make sure to chip in my 2 cents (which, ironically, usually makes no sense :P)

#266 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Mon Aug 22, 2011 11:12 PM

Well I had the drive to go ahead and fix the slight control issues with crouching and I think its more spot on to the original(still need to make it where he stays on the ground though). I also slightly spead up the animation. I think the next few updates are going to be nice.
Attached File  Castlevania 2600 kernel v2.6.2.bin   4KB   227 downloads

#267 toptenmaterial OFFLINE  

toptenmaterial

    River Patroller

  • 4,757 posts
  • Location:Providence, RI, USA

Posted Sat Aug 27, 2011 7:45 PM

Just out of curiosity has the writer put this on youtube yet? Thanks.

#268 lapetino OFFLINE  

lapetino

    Dragonstomper

  • 555 posts
  • Location:Chicago, IL

Posted Sat Aug 27, 2011 9:26 PM

Very cool stuff! Looking forward to this.

#269 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Sun Aug 28, 2011 4:44 AM

Just out of curiosity has the writer put this on youtube yet? Thanks.

Thats a good question. Up till now I hadn't given it much thought. But I would want to wait a bit before posting up a video just yet. I want to have enough worth posting first.

I want to get all 8 banks set first, with gravity and hoizontal movement added, new screens loading routine. terrain collision and stair recognition. Around the time music and the HUD are being added would be good for a video.

#270 toptenmaterial OFFLINE  

toptenmaterial

    River Patroller

  • 4,757 posts
  • Location:Providence, RI, USA

Posted Sun Aug 28, 2011 7:54 AM

Vampire Killer 2600! Are you gonna go the Gyruss route and exclude sound fx to take advantage of both sound channels?

#271 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Sun Aug 28, 2011 9:38 AM

Vampire Killer 2600! Are you gonna go the Gyruss route and exclude sound fx to take advantage of both sound channels?



Ever since the early stages in design and the briliant work of thegoldenband with enough music to start out with, I thought about which way to go about incorporating as much sound as possible.

I plan on using a music engine based directly on the one created by Richi_S. It was always what I wanted in a sound system and far better than I could ever do. I especialy like the envelopes available. Channel 0 will be lead and channel 1 the bass line. I am however hoping to add an aditional part that doesn't run during vsync. This runs as a multiplexer of the 2 channels. The portion for channel 1 adds percussion multiplexed in with the base and the additions to channel 0 are unique. with chalnnel 0, I'm going to try doing a strait multiplex between the lead music and sound FX only because one is actiual notes and the other is just noise. It will allow for musical continuity even though it may not sound great at least it will be less broken and still allow for SFX. nd because they are so diffrent from each other, the SFX will have their own volume controls and will never share the same waveform as the lead in order to keep distiction between them.

#272 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Tue Dec 20, 2011 2:59 PM

Well, hello everyone. Been a while. First off i'd like to say thank you for your continued support and encouragement. It is always most welcome. It's been a stressful year to say the least. I'm sure everyone out there has had their share of it. I had to take a bit of a break from this project for a while. It was begining to consume me so much, I couldn't think strait about anything else so I let it go for a few months. The only real thing keeping me from progressing further is myself. I lack good organizational skills and focus (not that I haven't tried till i'm blue in the face lol) but I'll never discard this project just cause its too hard (but not impossible) to do. There will be no official release date until a lot more of the framework code is in place. But since I have trouble keeping focus/concentration on code, That is where the community comes in. Anyone from the community with a familiarity with programming (assembly in general) no matter how little, a strong understanding of castlevania (not just in playing it but in the physics of the program, ex: where enemies and items appear, attributes, scoring, quirks, and glitches) and the desire to help squeeze a 128k (nes) game into 32k (atari 2600) ROM, please come forth.

The current work has the HUD ready to be assembled and the screen loader is in the works. But I need to drop all the stand alone code I have into the f4SC template I have. still trying to fully figure that out. I have "0" hands-on experience with using a bankswitched design. The other thing I wanted to open up to the floor is level designing. No coding experience is needed for this but there are some strict rules for implementation. If anyone i intrested then here they are.

A castlevania 2600 screen is made up of 78 scanlines worth of data.
These scanlines are spaced apart by one blank scanline. This brings the effective visual total to 155 scanlines.
Each screen is represented by 40 bytes of data.
Each of these bytes indexes 5 bytes worth of data. one byte being PF color while the other 4 are the image data

These 40 bytes are displayed in a cross repeated order like so:

level image
scanline 1: byte 40
scanline 2: none
scanline 3: byte 39
scanline 4: none
scanline 5: byte 40
scanline 6: none
scanline 7: byte 39
scanline 8: none

This pattern repeats until reaching byte 0

This method allows for upto a page of options worth of image data to be reused numerous times

Along with the 40 bytes is 5 more bytes. Each screen worth of 40 bytes will have these additional 5 bytes. They are used for the collision detection routine. There are 40 bits in 5 bytes, and so represent the image data. If any bit is 0, the scanline of data it represents is ignored for collisions. If it is 1, then that scanline is monitored for possible collisions.

Every scanline drawn, which also is used for collisions, may have a special pattern which will trigger a climb up or down stairs.

This pattern is simply a bit skip '00111010' this bit skip is a stair going down and right. '00101111' and this goes down and left.

From the floor going up, will have similar patterns.

so 45 bytes sofar..

6 additional bytes are added for candelabra (active,amount/spacing, location)

There are 6 possible rows where they may appear. a single bit tells if any are to appear. 3 bits indicate 1, 2, or 3 and how far apart they sit. the last 4 bits indicate horizontal location of screen. these will allways appear fixed (don't move).

This brings each screen to 51 bytes of data. Add one more byte for BG color which gets us to 52.

For all this data (52 bytes for each screen) to fit into a single bank it gives a total of 78.77 screens that can be displayed. I planned to have another bank to fill for additional screens (specialty screens) about 35 more than this.

I also will have 2 main game play kernels. Each of these has some identical data (simon, some enemies, etc) but the screen image data is almost totaly diffrent. This gives 2 diffrent "sudo tile sets/scanline data" that will help to keep diversity in the color and look of each level.

So to recap If anyone wants to help design gamescreens, Its 1 byte = BG color, 40 bytes = game screen, 5 bytes = collision detection, and 6 bytes = candles

I had started out with the first level and plan to finish it out.

Good colors for each screen is important And remember that any scanline of data could be reused elsewhere even if the BG color is diffrent.

The greatest solution is also its biggest weakness. Croud sourcing the level design gets alot done in a short time but the problem is in the squeezing of the data.

Use as little space for screen data as possible because it will need to be shared across multiple levels and BG colors.

When anyone finishes a level, post it for community refinement. This will help others out in using your data to help make other levels and eleminating redundant scanline data. In the demo I used maybe 12 to 18 chunks of 5 bytes to make the screen. and alot of that data will be reused in the next screens, there by keeping me from having to use up all the space. Once the majority agree on any set of screen data, it will be a generic piece others can use in their levels. I will try to get the ball rolling into January but for now, I want to get this game done cause I can't do it alone and I don't want to loose my sanity in such an attempt.

anyone willing to participate, please submit a visual image and data list of the level you choose to work on.

The following image shows the fundamental workings of the engine and how things are drawn to the screen. Candelabra are represented by the triangles, scanline loading is color coded on the left and simon is represented in 2 parts (split sprite). there are 2 enemy/items on screen. Please take time to examine this image. Any questions, post in this forum.

castlevania 2600 screen fundamentals.PNG

Rock on!

#273 PAC-MAN-RED OFFLINE  

PAC-MAN-RED

    Moonsweeper

  • 490 posts

Posted Tue Dec 20, 2011 8:03 PM

This place has full level maps as well as enemy and object placement:

http://vgmaps.com/At...htm#Castlevania

Illya

#274 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • Topic Starter
  • 683 posts
  • Location:South Central US

Posted Tue Dec 20, 2011 8:52 PM

Wow. Very nice. I think that helps more with data compaction. Just a matter of building a data matrix table based on these levels. static screens. I like how it helps with candelabra. This will do well for accuracy.

#275 PAC-MAN-RED OFFLINE  

PAC-MAN-RED

    Moonsweeper

  • 490 posts

Posted Wed Dec 21, 2011 10:07 AM

Here's a utility that may also help:

"Stake is a Windows-based level editor for the NES ROM, Castlevania. It was developed
using Delphi 6, on the Windows XP operating system. It supports the many versions of
Castlevania, such as the european ROM, the american ROM, and even Akumajou Dracula -
the special rerelease of the Japanese CV. It doesn't however, support the Famicom Disk
System original of CV. (Yet :))"

http://www.zophar.ne...evel/stake.html

ROM not included. :P

Illya




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users