Jump to content
  • entries
    657
  • comments
    2,692
  • views
    898,402

About this blog

Atari projects, Mac mini DVR, and other things

Entries in this blog

Alex tests

Just for grins, did some builds using the Alex voice at 3 different rates: 2000, 3000 and 4000 Hz. Sample space used for the 12 words:   2000 Hz = 7575 bytes 3000 Hz = 11365 bytes 4000 Hz = 15153 bytes   Edit: added Berzerk samples at 2000 and 3000 Hz 2000 Hz = 8743 bytes 3000 Hz = 13117 bytes   Edit 2: added Victoria samples at 2000, 3000 and 4000 Hz. 2000 Hz = 7537 bytes 3000 Hz = 11304 bytes 4000 Hz = 15072 bytes  

SpiceWare

SpiceWare in Frantic

more voice tests

An empty buffer is filled with an 8 for the waveform data as using 0 causes a noticeable click between words. The Display Data after the sample buffer is filled with 0, so if the program went past the end of the buffer the waveform on the screen wouldn't show anything. On the chance that just the ARM code stopped working and the 6507 was using data from after the sample buffer, I added a bit to the 6507 code to toggle the background color based on the right difficulty switch. However, the proble

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

Playable

Animation routines aren't in place yet, but we now have a playable build.   I always liked the Stealth Mode, so I've added that back in. It's currently controlled by the Right Difficulty switch. When enabled, all robots will initially be visible for 1 second. After that any robot that shoots will be visible for 1/2 second. If a robot is destroyed, all remaining robots will be visible for 1/2 second.   In the Frenzy version you can shoot out the solid walls - this can be handy

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

a couple optimizations

The sprite collision routine is called a lot, and I do mean a lot. it's used to check if a robot can safely move (Wall Avoidance in Berzerk and Wall + Robot Avoidance in Frenzy), figure out if a robot collided with something, figure out if the humanoid collided with something, and so on. So my first optimization was to look it over and see what I could do to make it faster. I ended up replacing a number of things with pre-calculated values that are stored in the space freed up by dropping the di

SpiceWare

SpiceWare in Frantic

Big Otto

New look for diagonal shots. Robot explosions back in place, utilizing the new 2x sprite feature. Doors are back in place. Special room objects for Frenzy (Left Difficulty = A) in place. Only Big Otto does anything at the moment. Evil Otto can be killed in Frenzy variation. Still some work to be done on this feature. Sleeping until something happens   Happy the humanoid was neutralized   mad that little otto was destroyed, so launc

SpiceWare

SpiceWare in Frantic

Minor update

My sister's taking a little longer than to expected to get here, so I put in the new title graphics while I've been waiting. The graphics didn't work as is though, I had to shift the letters FRANT to the left by 1 pixel due to PF alignment of the 2nd color. The colors I'm using are: FranticLogoColor: .byte 0, HAIR ; 0 .byte 0, FACE ; 1 .byte WHITE-4, FACE ; 2 .byte RED+6, RED+4 ; 3 .byte WHITE-6, WHITE ; 4 .byte WHITE-2, WHITE ; 5 .byte WHITE-2, WHITE-6 ; 6 .byte WHITE-4, WHITE

SpiceWare

SpiceWare in Frantic

Robot and Tank animation

Changes Robot and Tank animation sequences are in place Robot and Tank "cool down" logic implemented, should prevent "rapid fire" Controls RESET = start game SELECT = return to menu Left Difficulty, Frenzy Special Room Test1: B = Off, A = On Right Difficulty, Stress Test Mode2: B = Off, A = On 1Frenzy Special Room Test will always put a special object in the room. Currently only Big Otto does anything, and it's the same experimental code as befor

SpiceWare

SpiceWare in Frantic

For those without a Harmony

Not sure how clearly this comes across via YouTube as I'm so used to hearing & understanding the phrases (even down to 2000 Hz) from all the testing I've done. The demo is at 4000 Hz and the phrases are: "The Humanoid Must Not Escape" "Intruder Alert, Intruder Alert" "Chicken, Fight like a Robot" "The Chicken Must Not Escape"   Followed by the Intruder Alert message played back at a variety of rates.   http://www.youtube.com/watch?v=NEDP0Ch0j8M  

SpiceWare

SpiceWare in Frantic

Harmony tests please

For those with a Harmony, can you test this build and let me know if it works OK? digitalaudio_harmony_20110614.bin   I've been experiencing crashes on my light sixer and 7800. On both it sometimes crashes right away, and other times it can complete a few words or even a few phrases before crashing. Eventually, "once it warms up", it stops crashing.   Batari's not able to find anything wrong with the new DPC+DA code, plus it runs OK on his system, so we're thinking it mi

SpiceWare

SpiceWare in Frantic

menu beginnings

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

SpiceWare

SpiceWare in Frantic

Launch Missiles

Just finished getting the main kernel loop revamped to support updating the missiles. To make it work I unrolled the datastreams for both left and right PF0. PF0 only uses the upper half of the byte, while the missile enable only uses one of the bits in the lower half, so I combined the data(left PF0 with Missile 0 and right PF0 with Missile 1). Due to timing issues, I load those datastreams into the X and Y registers as that gives me more flexible for timing the writes (the PF0 writes have diff

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

Playable

While there's still a lot to be added back, such as animations, Otto, and explosions, Frantic is once again playable.   ROM frantic20120318.bin   Source Frantic20120318.zip

SpiceWare

SpiceWare in Frantic

Reposition Player 0 routines done

The Reposition Player 0 routines have been rewritten. It now takes 5 scanlines to reposition player 0, plus an additional scan line to get back into sync with the main kernel loop. The player 0 graphics can start on the additional scan line, but a reposition of player 1 cannot be triggered on it as the BMI KernelEvent is what was dropped to get back in sync.   I was surprised that the reposition player 0 routines now take longer than player 1 (it used to take 2 and 3 scanlines respecti

SpiceWare

SpiceWare in Frantic

Homing in on you

Tanks now launch Homing Missiles changeable wall color menu is back lots of ROM savings Menu's back in place. All options should be functional, so let me know if something doesn't work as expected.   A couple Tanks launched Homing Missiles. They're shaped differently than the normal shots. The menu option sets the number of redirects each Homing Missile can make. Values range from 0-3 (0=no redirect). The "remove brick" routine needs to be updated to cop

SpiceWare

SpiceWare in Frantic

bye bye digital audio

hello 2 channel sound   The bug in the ARM chip had me >this close< to cancelling Frantic. Thanks to the help of GroovyBee, I'm now using the bug workaround which is to set the ARM's MAM to Mode 1. That partially disables the ARM's cache, which introduces a performance hit in the ARM code.   To make the drop in performance easier to address, I've turned off the random selection of where robots appear - instead robots appear in every slot they can so I can test worst cas

SpiceWare

SpiceWare in Frantic

Optimized P0 routines

Optimized the player 0 reposition routines for 200+ byte savings. The room generation is back in place to make it easier to test the timing of playfield updates - when the room shifts left/right any playfield timing issues become readily apparent. To aid in reviewing it, the playfield has been given priority over the players:   The X position display was changed to show which of the reposition routines are in use - there are 22 of them, 11 for each player. The routine used will b

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

Game Title & SpiceWare Logo in place

I was able to get a 2 color 48 pixel routine going while working on Chun Li last year. I decided to use it for displaying the game title in Frantic as I thought it would be cool if the humanoid was used for the I. This is a rough logo I threw together this afternoon, if anybody cares to contribute something else I would not be offended in the least, though please maintain the humanoid I aspect of it (there's no need to keep this specific humanoid image). The humanoid could even be taller and fac

SpiceWare

SpiceWare in Frantic

humanoid

I did some testing for sample playback. I used 2 different samples for the word "humanoid", one from the Berzerk samples used in older versions of MAME, the other uses the Mac's built in speech synthesis with the Zarvox voice (with speaking rate set half way between Normal and Fast). I chose the humanoid sample as it was the longest in duration of the Bezerk samples.   The Berzerk sample seems a bit noisy which is why I decided to try the Mac's built in Zarvox voice. Also I would like

SpiceWare

SpiceWare in Frantic

Flickerama

Think I figured out the cause of the glitch.   I use 4 datastreams to draw all the players(sprites in 2600 terminology) on the screen. Each player gets 2 datastreams, one for the image and one for the color. A 0 value in the color datastream is used to trigger a reposition of a player. The color datastreams are pre filled with 15 (white) so that missiles will be visible on scanlines without the corresponding player present.   When a reposition is triggered, 2 bytes in the ima

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

×
×
  • Create New...