Frenzy variation playable
Traditional Tanks in place, they won the votes
Hitting GAME SELECT will bypass the end-of-game score screen
door routines revamped, if you die the room's entry door will reopen
for testing purposes, the room number shows during the room-shift sequence
ROM
frantic_harmony_20110927.bin
Source
Frantic20110927.zip
Finished merging 6507 banks 4 & 5 into bank 5. Saved 377 bytes by doing this!
updated robot up/down graphics (no more sliding leg)
revised sprite routines to offset the Right-Robot images by 1 pixel
revised wall avoidance routines to work better with animated sprites
new screen which shows last score for a bit, with continue countdown if enabled. Hitting fire on this screen will start a new game, starting level depends on the continue setting
This came to me a couple nights ago as I started to go to sleep. I jumped out of bed and sketched it out so I wouldn't forget.
For Rally S, one of the issues I'd been concerned with was the Atari's chunky scrolling of the play field. I'd originally been planning to make the up/down scrolling chunky as well so that it would have worked like the
.
Last night I realized that I could use smooth scrolling up/down and delayed scrolling left/right(like in Thrust+ Platinum ). The entire
Robot animation frames are in place. They have thrown off the wall avoidance routines though, so no need to let me know that the robots are walking into walls more frequently than they should!
Also no need to let me know the Frenzy variation doesn't look right! That's because the Tank robots aren't in place yet.
Speaking of Tanks, which do you prefer?
Traditional Tank
Scorpion Tank
Both Tanks look cool. The main tradeof
espire8's been quite busy churning out the graphics, so I decided it was time to work on how to implement the animation sequences. First up, the humanoid's now using a 4 frame run sequence.
When I initially got it working, I thought the the speed was a bit to fast, so I did another build where each frame is used twice in succession.
ROMs
frantic_harmony_20110917fast.bin
frantic_harmony_20110917slow.bin
Source
Frantic20110917.zip
though I might end up redoing it in 6507 code as I think it'll take less ROM space and processing time is not an issue when displaying the menu.
Up/Down to select option to change.
Left/Right/Fire to change an option.
Only Fire works on the Start option, and it starts the game when Fire is released.
The options are:
Maze Type (berzerk style on the left, frenzy style on the right)
Homing - tank robots shoot homing missiles (frenzy only)
Wa
I decided to take advantage of the 2 color kernel for the menu options as well. The menu is not functional yet, I just finished working out how to display it.
The options that are displayed are going to be:
Maze Style - berzerk is currently selected
Homing Missiles Yes/No. Frenzy only(will be greyed out if berzerk maze selected)
Wall Flicker Rate 1/2/3/4. Frenzy only. Maze sample at top will flicker at the selected rate for user feedback.
Max Robot Sh
Updated the collision routines to handle the 2x players. To do this I needed to double-up the pixels of the sprites so that a 2x image of _X__X_X_ would be tested as __XX____XX__XX__
const unsigned char double_nybble[] = { 0x00, 0x03, 0x0C, 0x0F,
0x30, 0x33, 0x3C, 0x3F,
0xC0, 0xC3, 0xCC, 0xCF,
0xF0, 0xF3, 0xFC, 0xFF};
int DoubleBits(int bits)
{
return (double_nybble[(bits &
Was trying to figure out how to show the special objects* in the Frenzy variation when I realized a 2x player would just about fill the width of the smaller room sections. I checked the kernel and discovered I had enough time to change the size of Player 1 during it's reposition routines. I also had an unused color data stream value, due to Player 1's reposition routine taking 1 scanline longer than player 0's routine, where I could store the NUSIZ1 value. So I've updated the kernel and the spri
there's fire *
I took these while driving home to Houston after visiting friends in San Antonio for the weekend. The photos where taken on I10 between Luling and Shulenburg, about 30 miles south of the fires in Bastrop.
Finally past it
* screen grab of Weather Underground at time of post, zoomed in so you can see where Luling & Shulenburg are.
fixed the shoot-off-screen bug
Evil Otto now bounces
Evil Otto using a different Direction-To-Humanoid routine than the robots (so he'll do angles unless he's perfectly lined up horizontally or vertically)
extra lives ever 1000 points
ROM
frantic_harmony_20110902.bin
Source
Frantic20110902.zip
added a function to trigger the phrases (before phrases were hardcoded to the direction you exited the room). It's used to say:
"Intruder Alert! Intruder Alert" when Evil Otto shows up
"Chicken" if you leave a room without killing all the robots
"Get the Humanoid" if you leave a room after killing all the robots.
[*]made changes to the sound effects
[*]revised the wall avoidance routines
ROM
frantic_harmony_20110830.bin
Added the sound routines along with a few cheesy sound effects. Will revise those later. I'm using only channel 1 due to the digitized sample support, which requires AUDV0 to be updated on just about every scan line (it's using a variation of DPC+'s 3-voice music routine). I have some ideas on how to work around this for users with an AtariVox plugged in. I might even be able to make it work when there's no speech being played back.
Tweaked the WallAvoidance routines, in the prior ro
The robots now try to avoid the walls.
Shots now take out other shots. Sometimes a robot will shoot too quickly, causing both shots to disappear. This will be fixed later when I add a "gun cool down" routine.
This change took a bit longer than I expected - a shift in the compiled code triggered the MAM1 bug in the ARM chip and it took me a few hours of reordering the functions until it cleared up. Not fun.
ROM
frantic_harmony_20110827.bin
Sour
fixed the bug where the explosions were sometimes half invisible.
fixed bug where bonuses won't be added if explosions were still onscreen
shrank explosion width by 1 pixel as if the robot ran into the wall on his right side the explosion would go thru the wall and hit robots/human on the other side.
added new stealth mode. Set Right Difficult to A to activate it.
Here's a screen recording of stealth mode in Stella
http://www.spiceware.org/movies/FranticStealth.mov
Robot speed ramp up redone to take twice as many levels to hit max speed.
Slow robot shots now move at 1/4 humanoid shot speed.
Fast robot shots now move at 1/2 humanoid shot speed.
Max shots per level now ramps up from 0 shots to 3 slow shots, then 1 to 3 fast shots.
Death sequence for humanoid
Robots explode when hit. Shrapnel can take out other robots and the humanoid.
Preliminary Evil Otto routines.
Implemented 3 reserved lives
Robots a
I decided to worry about the homing missiles later, so here's the initial version with moving and shooting robots!
ROM
frantic_harmony20110824.bin
Source
Frantic20110824.zip
The robots now know if they'll hit you when they shoot. To visually show this, I change their shots from the homing missiles(squares) to the normal shots (lines). In the screen shot the top and bottom row robots have acquired target lock, the middle row robot has not.
The test them, I made it so that holding up on the right joystick (Y key in Stella) will cause the robots to shoot. Let go and the shots will reset. If you can line things up correctly, the robots will shoot other
I take my bike out each evening for about an hour. I wait until 7pm to go out due to the weather we've been having in Houston. We normally see only 4 100+ days per year, but yesterday we tied the record of 32 100+ days in the year. The forecast for the rest of the month calls for 6 more 100+ days.
Besides that, we're seeing a serious lack of rain. Along with Houston, over half the state is experiencing the worse drought ever in recorded history. Due to watering, the yards in the neighb
In order for the Robots to move or shoot, they need to know where the Humanoid is in relation to themselves. If we're only looking at 4 directions it fairly straightforward - horizontal vs vertical is determined by seeing if the difference between Robot X and Humanoid X bigger or smaller than the difference between Robot Y and Humanoid Y. Once horizontal/vertical is decided then if the difference is negative the direction is left or up, while if it's positive it's right or down.
For
Shot collisions are in place. Use Left Joystick to move shot (hold fire for slo-mo), use Right Joystick to select shot style (horizontal, vertical, homing missile).
Note: selecting "no missile" (Right Joystick Up) turns off the missile, but in the test routines I didn't skip the collision detect. As such, you'll still see collisions occur (for the curious, it's using the Tank robot shape).
No collision
Colliding with wall
Colliding with
Playfield collision logic is now in place. When moving the humanoid the score will change from white to red. When moving Otto the score will change from green to blue.
Humanoid not touching the wall
Humanoid touching the wall
Otto not touching the wall
Otto touching the wall
As you might have noticed, the robots can now appear in different colors. The current colors are just tests, so let me know if you really li
The routines now report a collision only when sprite pixels overlap.
I've modified the joystick routines to use the right joystick to move Evil Otto. When he's moved the score will turn green to denote that his collisions are the ones being displayed.
Not touching (technically this should be touching - but the revolving eye is not stored as part of the sprite image).
Touching
Evil Otto collides with humanoid
Evi
I'm not able to use the TIA's hardware collision to detect sprite collisions as it's possible, due to flicker, that 2 colliding objects are never drawn on the same frame. As such, I've started working on a software collision detection routine.
Collisions are only tested for a sprite that is moved (saves a lot of time as most sprites are stationary on each frame).
The quickest thing to determine is if the rectangles containing the spites overlap - that's called Bounding Bo