The reposition routines have now been rewritten to support updating the missiles. The 2 missiles are flickered at 30 Hz to provide a maximum of 4 shots in flight.
I've also added test routines to move the 4 shots around the screen. 1 shot will be used for the humanoid, up to 3 for the robots. The shots can be displayed in 1 of 3 shapes: horizontal, vertical and small square. The small square will be used for a new robot-smart-missile feature I'm planning to add to compensate for fewe
The "new" Linux ARM compiler produces the same results as the OS X compiler that batari built. So either the OS X compiler was built with the current source, or the changes made are not relevant to Frantic's source.
In the source are 2 directories for the custom C routines:
In custom, the function ShiftRoom() directly precedes DataStream0().
In custom crash, the function ShiftRoom() directly follows DataStream0().
The functions themselves have not changed, only th
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
My folks are coming in from Trinidad this weekend. Their household is all packed up and ready to be shipped to Africa. They'll be leaving from Houston for dad's new job in Africa sometime next week.
My next step for Frantic is to update the kernel to turn on/off the missiles for the shots. My plan is to flicker the two missiles to provide 1 humanoid shot and up to 3 robot shots. If I can also get the ball to update then I'll do 2 human shots and up to 4 robot shots.
An al
I paid off my car this month so decided it was time to replace the kitchen appliances from 99. Main incentive was the old dishwasher's racks were rusting out, plus it was super noisy.
The new dishwasher is nice and quiet. The fridge has slick looking LED lighting + an in-door-icemaker. Microwave has a pop-out vent and the new stove has 2 ovens
The rest of the photos are here:
http://spiceware.org/gallery/kitchen_appliances
While playing Asteroids last night for the 7800 HSC, I got to thinking that Frantic's sprite routines could be used to make a much better version of Asteroids. Since there's no playfield to update, I think I can even get each sprite's reposition routine down to a single scanline (in Frantic Player 0 takes 2 scanlines while Player 1 takes 3).
Anybody got a name suggestion?
Initial integration of the digitized sample playback routines. It sounds a bit rough at the moment as not all of the AUDV0 updates are in place.
Note: the speech can only be heard using a Harmony cartridge. I'll release a beta build of Stella later this week with support for the new DPC+DA driver.
ROM
f20110626_NTSC.bin
Source
Frantic20110626.zip
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
Preliminary flicker routines. They do mess up every once in a while, so no need to report that - just wanted to get an "offsite backup" posted in case I make things worse trying to figure out the source of the occasional glitch
Use left joystick to change rooms, robots will rearrange for each room. Use difficulty switches to control room display.
ROM
f20110617_NTSC.bin
Source
Frantic20110617.zip
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
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
hardcoded sprites for testing the repositioning routines for Player 1. Also did some color tests for the robots
ROM
f20110611_NTSC.bin
Source
Frantic20110611.zip
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
With the packed data, I'm pretty sure I'll be able to make the simple phrases fit into the game. It also increases the odds of fitting in some additional words.
Instead of overlapping 2 samples together, I just packed each sample's data by itself. This means I only need 1 function to expand the data instead of 2. The utility raw_to_dpc was modified to pack the data when it converts the 8 bit samples to 4 bit.
Anyway, back to kernel development.
alex_packed_sim
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
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
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
In the prior example the entire phrase was put into the Display Buffer. For this test, I've revised the routines to use a 1K sample buffer. The buffer is filled in with $F8, then the word to be played back is copied into the buffer. The 6507 routines monitor for volume >= $80 which tells it to request the ARM routines to fill in the next word.
Not all of the voice tests were compatible with the 1K buffer. Some of them, such as the Berzerk samples, ended up having a word (humanoid
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
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
Clan of Xymox released Darkest Hour this week. I've been listening to them since 89 when they released Twist of Shadows. Back then they went by just Xymox - as such, iTunes lists Twist of Shadows and 2 other albums under Xymox, with the rest under Clan of Xymox.
hardcoded sprites for testing the repositioning routines for Player 0. There's 2 DataStreams, 1 for the color and another for shape. The color stream is always read first. It will contain a 0 whenever Player 0 needs to be repositioned (1 is used for black). The reposition prep is contained in the next 2 Graphic Datastream bytes and the next Color Datasteam byte, so a reposition takes 2 scan lines.
At the moment I'm using Early HMOVE so there's no black bars on the left edge of the sc
Time again for another Art Car Parade! Just a few photos to wet your appetite
300+ photos and a couple videos can be found here:
http://spiceware.org/gallery/ArtCarParade2011
RL events mean the next update won't be until next week.
I'd been planning to use similiar robots & humanoid images as those found in Berzerk and Frenzy, but espire8 sent me some multi-color sprite samples that have me reconsidering:
One thing I was planning to do was to HMOVE the Missiles and Ball on every line so I could draw them diagonally for diagonal shots. I haven't looked at timing yet, but multicolored sprites and digital sample playback probably
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