Jump to content
IGNORED

Charge!


jrok

Recommended Posts

Hey gang,

 

Haven't signed on in a long while, but I thought I'd share an early demo of what I've been working on. This is a DPC+ kernel adaptation of a project I started a few years ago, although I think this version is different enough to constitute an entirely different game. I'll include the instructions in this first post, and update them with each build.

 

 

CHARGE!

by J.D. Kitchen

 

 

 

 

THE STORY:

 

The kingdom of Nirata is under attack! Armed with your lance, your bow and your trusty steed, you must defend the realm from the relentless hordes of soldiers, horsemen and fire-breathing dragons.

 

Patrol the road that encircles your kingdom, using your arrows to slay the dragons in the sky and footmen advancing through the fields. But beware the dragons' fiery breath, the lances of enemy knights, and other deadly hazards and foes which may befall you.

 

 

 

PLAYING THE GAME

 

Your objective is to destroy marauding Dragons, Wizards and other foes while defending your Castles from harm. You begin the game with three Castles and three Paladins to defend them with. Each Paladin comes equipped with Armor that is gradually depleted by enemy attacks, a Lance for jousting Knights and a magic bow that can fire an unlimited number of arrows into the sky. The number of remaining Armor Points and Paladins is displayed at the bottom of the screen, along with the player's current score.

 

Use the left joystick to maneuver your Paladin's horse around the dark gray road area. The road is a loop around the kingdom, so moving in one direction long enough will bring you back to where you started. Pressing the joystick's fire button will draw your bow, and releasing it shoots an arrow into the air on a slight forward arc. If you hold the joystick left or right while holding down the fire button, your horse will charge at a fast gallop. Your galloping Paladin will automatically engage his Lance, making it possible for you to kill advancing enemy knights.

 

Charge! includes multiple attack waves. In each wave, you must first clear the sky of enemies and then destroy any enemies that remain on the road. After the road is cleared of enemies, there will be a brief interlude, during which your castles and armor are repaired slightly, and any bonus men you earned during the wave are applied. After the interlude, the next wave begins, gradually increasing the challenge to the player.

 

You score points whenever you kill a Dragon, with various breeds earning different point values. As waves progress, you will meet sturdier, faster, and deadlier breeds. You can also score points by killing any other enemy as long, as all of your Castles are still intact. Some waves feature special foes who must be defeated to advance, with unique rewards for doing so.

 

When a Paladin's Armor Points are fully depleted, the current hero dies. A new one will appear until all your remaining Paladins are lost.

 

At the beginning of each new wave, the kingdom will fortify itself for the next attack in the following ways:

  • Your Paladin will recover an Armor Point for each surviving Castle.
  • At 500 points, you will recieve a bonus Paladin
  • Each of your surviving Castles will undergo repairs, recovering eight hit points per round.
  • If a Castle was destroyed in the previous wave, the flaming ruins will be extinguished. The Castle's smoking rubble will be able to be rebuilt after the conclusion of the current wave.

The game ends either of the following conditions:

  1. You have lost all your remaining Paladins.
  2. All of your Castles are destroyed and the current Paladin dies.

Press [Reset] or the left joystick fire button to begin a new game.

 

 

 

 

CONTROLS:

 

Joystick - Move horse in 8 directions along the road.

Press Fire Button - Draw bow.

Release Fire Button - Shoot arrow.

Hold Fire Button and Joystick Left/Right - Charge!

 

 

 

SCREEN LAYOUT:

 

6027796526_bbe43ed260_z.jpg

A. Paladin

B. Dragon

C. Dragon's Breath

D. Bats

E. Castle

F. Foot Soldier

G. Knight

H: Armor Remaining

I: Remaining Paladins

J: Score

 

 

 

 

GAME OBJECTS

 

 

THE KINGDOM

 

The Paladin

5983353649_2e4904b911_t.jpg

The player's Paladin can attack enemies in the fields and the skies by shooting arrows at them, and attack enemies on the road by charging them with his Lance. Arrows can be shot at any time by pressing and releasing the fire button, but the Lance can only be used when the Paladin's horse is moving at full speed. A charging maneuver increases the top speed for the duration that the player holds down the fire button while pressing the joystick in left or right direction. If a player switches the joystick direction mid-charge, the Lance will become inactive again until the horse achieves maximum speed in the new direction. Each Paladin can receive seven wounds before death, indicated by the red bars on either side of the score. A Paladin will heal one Armor Point per Castle that survives a wave.

 

The Castles

5983915362_87145bdd53_t.jpg5983353551_32e2a7fd9b_t.jpg5983915336_98940ed3dd_t.jpg

The primary goal of the game is to defend your kingdom's three Castles: Purple, Yellow and Red. As each Castle takes damage from Dragons and Footmen, it becomes shorter. When its last hit point is lost, it becomes a Flaming Ruin. At the conclusion of each wave, surviving Castles are repaired slightly, while Flaming Ruins turn into Smoking Rubble. Smoking Rubble can be rebuilt into a Castle at the end of the next wave.

 

Castle Damage States:

5983353599_7739f1a0ed_t.jpg5983353627_8b90630052_t.jpg5983915430_b30f5accbe_t.jpg

 

Princesses

If you can defend a Castle well enough, a Princess will appear at the top of it during the Repair Phase. If a Dragon swoops down and captures a Princess, it will attempt to bring her to the top of the screen for a quick snack. Shoot the beast before suppertime, and then rescue the falling damsel for bonus points.

6044250417_b95f8a75a2_m.jpg6044250469_e96f234230_m.jpg6044800760_bf167259c4_m.jpg

 

 

 

ENEMIES

 

Dragon

5983353455_6c5df996ba_t.jpg5983353443_2eaf0a1589_t.jpg

Dragons are the player's primary foe. Sweeping down from the sky, they attempt to bathe the player's Paladins and Castles in flames. There are several breeds of Dragon, distinguished by different colored hides and varying abilities. Dragons travel in packs of between 1 and 5 per wave, attacking the kingdom one at a time. When all the Dragons in the current pack have been slain, the game progresses to the next wave.

 

Footman

5983915268_d956b2576b_t.jpg5983915248_4a3b3c9cc2_t.jpg

Foot Soldiers of various armies and tribes will charge upon the fields to lay siege to your castles. They vary in uniform, speed, number (not implemented yet) and attack strength, but they all share the same purpose: to burn your Castles to the ground! Dispatch them with your arrows, yea, verily.

 

Bats

(Not implemented)

6027048157_ab8f1efcc2_t.jpg

These flying pests patrol the skies in swarms, attacking any Castles they find along the way.

 

Knight

5983915288_49b58d46c3_t.jpg

Renegade Knights prowl the road, looking to make a name for themselves... by writing it in your Paladin's blood. These horsemen will challenge you continually as you protect your Castles from other foes. To defeat them, look for signs of their approach on the battlefield, align your Lance with theirs, and charge!

 

Grendel

6027601234_0866f7a732_t.jpg

These large, bloodthirsty monsters occasionally are lured from their lairs by the smell of the Paladin's blood. Grendels have thick hides that are impervious from attack, unless you can locate their weak point. If that wasn't bad enough, they will sometimes lurk just out of your reach alongside the road, and they require two direct lance hits to defeat.

 

Wizard

6027981304_38182f939c_t.jpg

The Evil Wizard sails through the skies, wreaking destruction with big blasts of mystical energy. He is a tricky target to hit, and sometimes will use a barrier of green mist to protect himself from your arrows.

 

 

TERRAIN

5983915160_ab4ccf9aa3_t.jpg5983915186_4c0bf078e7_t.jpg

 

 

 

 

TIPS:

  • .
  • Listen to the sound of the Dragon's fire and the Soldier's sword to track your enemies' positions (louder equals closer; quieter equals farther away).
  • If one of your Castles is successfully attacked, you will hear an explosion sound.
  • Your bow fires Arrows on a slight forward angle, so try to anticipate a Dragon's movements when firing at one. A good tactic is to try to keep your horse in motion and either match the Dragon's speed or charge beneath it while firing.
  • Enemy Soldiers roam the fields beyond the road, laying siege to any Castle they find. Kill them on sight whenever possible.
  • When a Lance appears on the road at either side of the screen, it means that an enemy Knight is close. The longer the Lance is, the closer the Knight is to your current position.
  • When charging, try to align your Lance to the enemy Knight's Lance to defeat him in a joust. The closer you are to aligning with Enemy Knight's path when you clash, the more likely you are to kill him, and avoid injury yourself.
  • As the waves proceed, Dragons will become faster, more damaging and more durable, sustaining multiple bow hits before death. Enemy Soldiers and Knights will also become faster, stronger and more aggressive as waves progress.
  • Dragons are primarily concerned with destroying your Castles, but with a little coaxing you can lure them away with your Paladin, and get them to come after him instead.
  • You begin the game with three lives (represented by the series of vertical bars next to the the score area). The red bars on either side of in the score represents the current Paladin's Armor Points. Each of your Paladins can sustain seven wounds (either from dragon fire or jousts) before death, at which point a new Paladin is re-spawned at the nearest Castle. If all three Castles are destroyed (either flaming of smoking) and the current Paladin is killed, the game immediately ends, even if more lives are left in reserve.
  • At the conclusion of each wave, each surviving Castle will be rebuilt slightly. If a Castle is destroyed before the end of the wave, you will have to complete an additional wave to wait for the flames to die out and turn into smoke before it can begin being repaired again.
  • Beware of Giant Dragons, Evil Wizards and other powerful foes.
  • The final wave in this demo will repeat until the player loses the game.

 

 

 

 

Playing in an Emulator:

 

Since this is DPC+, you'll have to play using the latest Stella build (3.4.1). I'd suggest setting Options> Game Properties>> Display>>> Use Phosphor to "On" (77%) to compensate for flicker.

 

 

 

 

Playing on Harmony:

I'd be curious to know how the flicker is looking on TVs when both the Paladin and the Knight are on screen.

 

 

----

I've deleted all other archived versions, and will start labeling releases with dates from now on. Thanks for any feedback, bug reports or ideas you have to offer. High Scores would also be appreciated, so I can gauge the level of challenge.

 

Cheers,

Jarod

 

Newest Version:

ChargeDPC_090211.bas.bin

Edited by jrok
  • Like 7
Link to comment
Share on other sites

Excellent Jarod!

 

I tested it (PAL console + Harmony cart).

 

All perfect but when the evil knight appears the flicker is too much (IMHO).

 

After a while vertical strips appears from the top.

 

Thanks, Philsan. Curious about the strips. Could you describe these more?

 

Not sure what to do about the flicker, except maybe fool with the color a little. It's 30hz now, so I don't see how it could get much better than that. I guess the only thing I could do is revise the knights' graphics to 8-wide single sprites to eliminate the flicker... which I'd hate to do because I was fairly pleased with the look of the big, multicolored horsies. :(

Edited by jrok
Link to comment
Share on other sites

Three (or four I don't remember exactly) big strips grow from the top to the bottom of the screen, one after the other, from left to right, building a "cage".

After a while the screen becomes green.

 

Hmmm, that doesn't sound very good. I initially thought it might be a PAL thing, but now it sounds like a memory leak of some sort. Do the strips appear over the sprites? Are they green or red? And when the screen turns green, is that because the strips have filled it?

 

Thanks,

J

Link to comment
Share on other sites

Three (or four I don't remember exactly) big strips grow from the top to the bottom of the screen, one after the other, from left to right, building a "cage".

After a while the screen becomes green.

 

Hmmm, that doesn't sound very good. I initially thought it might be a PAL thing, but now it sounds like a memory leak of some sort. Do the strips appear over the sprites? Are they green or red? And when the screen turns green, is that because the strips have filled it?

 

Thanks,

J

Later I will try again to be more precise.

If possible I will upload a video on Youtube.

Link to comment
Share on other sites

Confirming the same thing happens on an NTSC system with Harmony.

 

I think you've hit a bug that ScumSoft ran across. EggVenture loses it's colors on occasion too, and it looks like DPC+ ram is being overwritten in places.

 

Is there an event that happens 20 or 30 seconds into the game?

Link to comment
Share on other sites

Here's what happens 25 seconds after game's start:

 

http://www.youtube.com/watch?v=L8e5cSwWL08

 

Wow, that's... uh, interesting :).

 

I'm guessing there's a write to the playfield data that Stella is somehow correcting for. I'm not getting any sound in the video, but do those bleeding stripes correspond to a certain sound effect?

 

Thanks for your help, Philsan.

Link to comment
Share on other sites

Confirming the same thing happens on an NTSC system with Harmony.

 

I think you've hit a bug that ScumSoft ran across. EggVenture loses it's colors on occasion too, and it looks like DPC+ ram is being overwritten in places.

 

Is there an event that happens 20 or 30 seconds into the game?

 

Yeah, that's what I'm thinking too. I'm going to take a look in debugger, but whatever it is Stella appears to be correcting for it. Did it happen with the second version of the binary I posted as well?

 

Thanks,

J

Link to comment
Share on other sites

It happens with both posted versions.

 

Everything that uses a color list eventually gets overwritten, like the score, the background, etc.

 

I think the only surviving elements, like the castle, are those that have their graphics set in the main loop, like the rider and the enemies. The graphic strips can be cleared away by clearing a level (guessing you set the playfield at the beginning of a level) but the background colors never come back.

 

Stella doesn't execute the same firmware code that's running in a Harmony - instead there's a common spec that it adheres to.

Link to comment
Share on other sites

Jarod, if you turn up the volume to the maximum (both YT and your PC) you'll hear the normal in game sounds.

Now I test second version.

 

Thanks Philsan, but I don't think it's necessary. I'm sure that version will show the same bug.

 

I think the only surviving elements, like the castle, are those that have their graphics set in the main loop, like the rider and the enemies. The graphic strips can be cleared away by clearing a level (guessing you set the playfield at the beginning of a level) but the background colors never come back.

 

Yeah, RevEng. That's immediately what I thought too. I set the "WAVE" playfield bitmap and then reset the playfield at the end of a wave. I just now tried taking all that gunk out and just defining the playfield and DF#FRACINC once in bank 2. Hoping if you or Philsan have some time you can try the bin attached to this post (Charge_test.bin) in Harmony and let me know the result.

 

Thanks again, guys.

 

Charge_test.bin

Link to comment
Share on other sites

Unfortunately, yes.

 

But there is a difference: the stripes after brown turn green, then the background scrolls to the right left, then the background turns green.

 

I have to go to bed now. See you tomorrow for other tests.

Edited by Philsan
Link to comment
Share on other sites

I've been trying to track down this bug myself. If you find what is really causing it let me know! Like I mentioned in the EggVenture thread, you shouldn't have to rewrite everything every frame, all this does is hide the corruption that's still occurring. I do believe there is a pointer running amuck unseen until it starts writing erroneous data into the Graphics bank. Those that are rewritten every frame stay alive so to speak, but the rest gets a screen wipe.

 

Those streaks are the playfield, in my game you can fly into them and it causes the collision to register a hit with the PF.

Edited by ScumSoft
Link to comment
Share on other sites

Does this happen with all DPC+.arm files or only the latest one?

 

Anyway, it's clearly a pointer that is counting down from somewhere and writing a value once per frame in hardware but not in Stella. At 25 seconds, that's 25*60=1500 bytes, so that gives me an idea what's causing it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...