Jump to content
  • entries
    657
  • comments
    2,698
  • views
    899,123

About this blog

Atari projects, Mac mini DVR, and other things

Entries in this blog

X Test

Test of X values from 0-159. Use the RIGHT Joystick to move 2 of the robots. If you push upward the left/right movement is slowed down to facilitate testing. (2nd joystick keys for Stella are: Y = UP, G = LEFT and J = RIGHT).   The Room # is now the first 4 positions of the score. The robot's X value is the last 2 positions of the score. In the topmost strip of the room I've turned on all 8 pixels for the sprites. These are positioned using the traditional position object routine so th

SpiceWare

SpiceWare in Frantic

where's the humanoid?

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

SpiceWare

SpiceWare in Frantic

wall avoidance

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

SpiceWare

SpiceWare in Frantic

walk robot walk

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

SpiceWare

SpiceWare in Frantic

Voice test wrap up

Did the robotic 7-8 treatment on the voices that work at 4000. They all have the distortion that I don't care for.   Based on the experiments done so far, I'm hoping I'll be able to use Alex4000_simple4 from the prior blog entry, but until the game code has been written I won't know how much space I'll have to use for audio samples. I will decrease the quality (or even eliminate the samples) if needed, though there's also the change that there will be extra space allowing me to add an

SpiceWare

SpiceWare in Frantic

trigger phrases

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

SpiceWare

SpiceWare in Frantic

There be Walls

Initial wall routines.   The way this works is you are in a room denoted by X, Y coordinates. Exiting left/right will change the X coordinate while exiting up/down will change the Y coordinate. Each coordinate is an 8 bit value, so it wraps at 0/255.   Starting with a room with 8 posts:   Draw a single wall from each post, going either up/down/left/right. To control the drawing, I'm currently* using the X coordinate for the top 4 posts and the Y coordinate for

SpiceWare

SpiceWare in Frantic

the humanoid must not escape

I found SoX and used it for the frequency conversion w/low pass filtering.   I created a bunch of test ROMs that utilize the original MAME Berzerk samples as well as the various built in voices on the Mac. To create the samples for the Mac voices I used the Speech System Preference panel, selected each voice and ran the script create.sh (in the samples folder of the attached source code), which creates audio files for each word.   I then ran convert.sh, which runs sox to conv

SpiceWare

SpiceWare in Frantic

the bouncing ball follows you

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

SpiceWare

SpiceWare in Frantic

Test of new walls

Partial test of the new wall routines for the Frenzy gameplay variation. The Frenzy maze starts with 15 posts in the middle of the room instead of 8, and the walls can either be shot-out brick-by-brick, or they can reflect the shots flying around the screen. I'll eventually have a menu option where you select which variation to play, at the moment it's hard coded for Frenzy.   While working on the 2nd column, I decided I needed to revamp how I am drawing the walls - so this is what was

SpiceWare

SpiceWare in Frantic

Test of new reposition routines

Added some code to test the new reposition routines. Move the joystick left/right to adjust the X position of player 0 and up/down for player 1. Hold fire to move slower.   The topmost copy of each player is positioned using the standard reposition routines so that I could confirm the results were correct. The 2nd copy of each player is repositioned using the new routines. The remaining copies are hard coded and won't move.   I've also added the Score/Lives/Bonus kernel and a

SpiceWare

SpiceWare in Frantic

Test of new reposition routines

For comparison, the top two robots are positioned using the standard reposition routine. The next two robots are positioned to the same X values using the new routines. The rest of the robots are repositioned to preset X locations using the new routines.   Move the joystick left/right to adjust the X position of player 0 and up/down for player 1. Hold fire to move slower.     Next up will be to do some ROM usage optimizations to the P0EarlyHMxx routines.  

SpiceWare

SpiceWare in Frantic

target acquired

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

SpiceWare

SpiceWare in Frantic

Take 3

Once again, Frantic is being rebooted   While working on Stay Frosty 2, Thomas Jentzsch suggested redoing the kernel to use VDELBL. It puts the ball on vertical delay with updates synced to GRP1. It's a clever idea - but due to how SF2 is designed that would have required me to draw the snowman using player(sprite) 1 instead of player 0, which would cause problems in the horizon due to object priorities:   I thought it could be useful for Frantic and Timmy, as their spr

SpiceWare

SpiceWare in Frantic

stealth mode, activated

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

SpiceWare

SpiceWare in Frantic

Sprite driver rewritten

The sprite driver has been rewritten to work with the new kernel.   Left Difficulty A = Frenzy layout Left Difficulty B = Berzerk Layout   Right Difficulty A = all possible robots Right Difficulty B = normal randomized robot count       The display at the bottom is XXYYFF where X and Y is the room location and F is the flicker factor. 0 = no flicker 1 = 30 hz 2 = 20 hz 3 = 15 hz   ROM frantic_2012031

SpiceWare

SpiceWare in Frantic

Sprite driver rewritten

Sprite driver has been rewritten to work with the new kernel. I've also written an alternative sprite driver that improves performance, though there is a minor tradeoff when using it. I've set OPTIMIZE to 1, which causes some extra 6507 code to come into play. The extra code extends the display by 10 scanlines in order to show what's left in TIM64T for Vertical Blank and Over Scan. Some TVs may not like displaying a 272 scanline image, so it's possible this ROM will roll for some people. My C=10

SpiceWare

SpiceWare in Frantic

Speech prep finished

I've freed up enough RAM so I'll be able to add back in the speech routines. Part of it was freed up by changing the sprite variables from INT (4 bytes) to UNSIGNED CHAR (1 byte). The routines can handle 24 sprites, and there are 9 different values stored for each sprite (such as X, Y, Image ID, Animation Frame, etc), so the original RAM usage was 864 bytes. After the change that only took 216 bytes. The rest was freed up by moving variables from the Display Data area into the Frequency table ar

SpiceWare

SpiceWare in Frantic

Special Room updates

Moved routines from Vertical Blank to Overscan to fix screen roll problem Special object animation in place Big Otto's face will update, launches extra Evil Ottos with very primitive movement logic Hit the Power Plant and robots can't move, but can still shoot Hit the Central Computer and robots can't shoot and will randomly move (even into walls) Factory doesn't do anything yet, but if you hit it the animation stops Big Otto   Power Plant

SpiceWare

SpiceWare in Frantic

Special Room Objects

Special images are in place. All they do at the moment is animate.         Humanoid shifts with room   Can shoot out walls     There's also updated humanoid and explosion animations.     This will most likely be the last Frantic update until January.     ROMs frantic_harmony_20111104_ntsc.bin frantic_harmony_20111104_pal.bin frantic_stella_20111104.bin   So

SpiceWare

SpiceWare in Frantic

sound effects

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

SpiceWare

SpiceWare in Frantic

Some love for Frantic

Been about a month since the last update for Frantic so I thought I'd spend some time on it. Tryed out Maze Type as the default selected option. Not a fan, already changed back to Start for next build. Added Diagnostic support like in Draconian, no longer need to create special diagnostic builds. Noticed that the ARM routines were not using the audio interrupt routine (which will be needed when voice samples are added back in). It's been turned on - and I'm now seeing screen

SpiceWare

SpiceWare in Frantic

Shot revisions

missile/wall logic now checks all corners of the missile when testing for brick removal, fixes issues with Tank's Homing Missiles missiles now reflect off flickering walls in Frenzy variation ROM frantic20140218.bin   Source Frantic20140218.zip

SpiceWare

SpiceWare in Frantic

Shot driver rewritten

The shot driver has been rewritten to take advantage of the new kernel. It supports up to 6 shots by using 30 Hz flicker.   Vertical shots are now 5 pixels tall instead of 8. One of the things I discovered before the reboot was that you could shoot a robot on the other side of a horizontal wall because the shot was too tall (horizontal walls are 5 scanlines tall).   Shots are drawn round-robin so each shot will be drawn using the ball, missile 0 and missile 1 over subse

SpiceWare

SpiceWare in Frantic

shot collisions

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

SpiceWare

SpiceWare in Frantic

×
×
  • Create New...