I've decided I better document my To Do List as I'd forgotten some of the things I was going to do. I've reviewed the Homebrew forum and my blog from the beginning(wow reviewing all that took longer than I expected) and have come up with the following. Let me know if you recall something that I left off.
List updated October 13th
AI player improvements
fireball to track logic
capture-shoot fireball logic
avoid fireball that got past play
I fixed a couple things that annoyed me
1) the dead kings are no longer visible during screen flashes
2) the dragon can launch the fireball in more than 4 directions. No more sitting pretty on your castle's corner waiting for the round to start
I have to do some "house cleaning" on the code so this will be the last update for a while. I'm down to 2 bytes of RAM and need to free some up for the AI routines.
Medieval_Mayhem.zip mm20060604NTSC.bin mm20060604PAL.bin
The updated graphic converter is now online. I had some trouble getting "upload an image" to work, so instead of wasting any more time fighting with it I just now require your image to be available on the internet somewhere.
Steps to use it:
Screen 1
1) cut/paste the IMAGE URL (something like http://www.spiceware.org/atari/fd1.gif )
2) click LOAD IMAGE
Screen 2
1) Fill in the color numbers for the 2 sprites. For fd1.gif use 1 and 2
2) optio
I've updated the upper kings and made a change to the King Death Flash. I think the original flash was better - any comments?
Medieval_Mayhem.zip
mm20060602NTSC.bin
mm20060602PAL.bin
I spent a couple hours revamping the lower castles' kernel to support 5 pixel wide kings.
I also added a priority to the king-death sound sequence so it will no longer be aborted by brick or shield sound effects.
Medieval_Mayhem.zip
mm20060601NTSC.bin
mm20060601PAL.bin
B-52's in the background
Due to popular request, I've added routines for brick flash and king flash.
I'm going to have to revamp the main menu to add a flash control option, with values of None, Brick, King and Both. I don't want to make the letters smaller, so I'm thinking about making the list scroll up/down to show all the options. The 2 options are currently turned on until I redo the menu.
There is a quirk with the king flash - if another sound effect sta
I've got the dragon flying back and forth and am posting this as a candidate to be demoed at the Midwest Gaming Classic. I'd appreciate any feedback if you see any problems.
Thanx!
Minor updates - fixed problem where fireballs were always launched downward, and fixed yellow for PAL's dragon wings.
Medieval_Mayhem.zip mm20060529NTSC.bin mm20060529PAL.bin mm20060529NTSCb.bin mm20060529PALb.bin
I think they're much better than the "winner" messages from before. I'm sure I'll revise these graphics for the final version, but not for MGC.
Round Winner
Game Winner
Draw
Yep, with multiple fireballs everybody can die To test this I killed off 2 players, the used the stella debugger to reposition 2 fireballs so they'd hit the 2 remaining kings at the same time.
Supercat's input helped tremendously with the brick collision routines! Many thanks!
Also changed are:
The hard-to-read game and round winner messages are now trophies
hard-to-read draw message redone
I think I fixed the "goofy" bounce that occasionally happened on the top of the screen.
scores moved to bottom so I could use sprites for more detailed numbers
end-of-round now works when playing Doubles
I'll be working on the dragon animation tomo
The converter seems to be working OK. I still need to add the generation of the "flipped" HMOVE table so I can fly the dragon in either direction.
I've also changed the shield graphics to make them look less blocky.
mm20060521PAL.bin
mm20060521NTSC.bin
Medieval_Mayhem.zip
Al needs a placard for the Midwest Gaming Classic. This is what I've come up with - any comments/suggestions?
Medieval Mayhem
War has broken out between the kingdoms. A well respected knight, you've been called forth to defend your King and Castle.
Atari Console Switches
Hit GAME SELECT at any time to return to the Main Menu.
Hit GAME RESET at any time to start a new game.
TV TYPE and DIFFICULTY switches are not used.
I've got a preliminary graphic converter working in PHP. Right now I have to hard-code the URL for the image to convert, I plan to make it user-selectable at a later date.
It's also forcing the leftmost pixel of each row to be "on" which can cause some alignment issues. I need to make it smart enough to "shift" the bits if needed when the rightmost pixel is blank.
Revised shields
Revised Score routines
Revised 3 and Round winner graphic
I've decided to back-burner the AI routines to get some polish in place for the Midwest Gaming Classic.
This weekend I got the score routines in place, end of round & game messages, as well as a debounce routine. The debounce routine should eliminate the problem where a fireball occasionally gets stuck in a shield then flies off at maximum speed when you move your shield away.
For the Midwest Gaming Classic I've set the Game Winner to be determined by the first to win
Looks like my iMac will be in for repairs until next week as CompUSA's Apple Tech only works weekends
I've got Stella, jEdit and DASM setup under Linux on my Thinkpad and have resumed work on Medieval Mayhem.
Today I did some updates on the fireball capture routines
Multiple players can simultaniously capture a fireball
If you die while holding a fireball it's now released back into play
Fireball Capture for 1 player games now works in all 4 corners
Had a full weekend so not too much happened with Medieval Mayhem. I did find a bug while playtesting with some friends, only 1 fireball could be captured at a time. This has been fixed.
I've also rearranged code so the Dragon Kernel will be in it's own banks. Yep, plural. I've set aside 2 banks of ROM for Nathan that should support up to 32 frames of animation for the dragon, plus an additional 8 frames for smoothly scrolling on/off the screen. I'll be utilizing the HMOVE blanks to h
Released fireballs will now travel in a direction that's based on how far from the edge of the screen you are as shown in this picture from my blog entry titled Research.
I also found and fixed a bug that was causing the fireball to occasionally pass through the lower shields as well as fixed a couple sound-effect glitches caused by using LDA SoundEffect instead of LDA #SoundEffect
Note - I replaced the BINs with an update that adds back the "english" bouncin
The ROM is now 32K and preliminary fireball capture routines are now in place.
Please note these limitations, which will be addressed in a future update:
Released fireball only travels in 1 of 3 directions
Player 1's paddle always captures for the top-left shield, even if you selected a 1 player game in a different corner
paddles will capture even if the shield is "computer controlled"
Capture does work correctly for Doubles.
Medieval_Mayhem.zip mm200604
The dragon's no longer gassy
I've added some "english" to make the fireballs occasionally bounce a touch off-center to hopefully prevent a fireball from being stuck moving left/right or up/down. I'm sure I'll need to fine tune it.
Also tweeked the sound effects.
Medieval_Mayhem.zip mm20060425NTSC.bin mm20060425PAL.bin
It's not pixel exact of what Nathan provided as a test, but it's pretty close.
Source Medieval_Mayhem.zip
NTSC mm20060423NTSC.bin
PAL mm20060423PAL.bin
for a round of Medieval Mayhem!
Collision routines are finished and preliminary sound effects have been added. The sound effects are also in stereo so make sure to select that option in your emulator of choice.
Source Medieval_Mayhem.zip
NTSC mm20060422NTSC.bin
PAL mm20060422PAL.bin
Got a few changes going the past couple days. I'll be entertaining a friend from out of town for a few days so there won't be another update until next week.
The "dragon" launchs a fireball in a random direction when it crosses the center of the screen. It then disappears for the rest of the round. The fireball routines were also modified to support "not on the screen" and the other 2 fireballs are now disabled until king killed routine is written.
The scores on left are
The paddles now move the shields.
The fireball speed/direction tables were taking up too much room so there's now seperate NTSC and PAL BINs.
I'm off to a cook-out, so type to y'all later!
Source Medieval_Mayhem.zip
NTSC BINmmNTSC.bin
PAL BIN mmPAL.bin
I've redone the dragon routines so only 1 fireball is visible while the dragon's onscreen. I've not yet written the "dragon not there" code, but that should be pretty easy.
With this change I was able to keep the dragon routine with 2 double wide sprites at single line resolution w/single line shifting and still squeeze in enough time to read 2 paddles every other scanline on each frame. The following macros are used to read the paddles. The value of Paddles2Read is either 0 or 1. Du
While I don't have dragon graphics, I have updated the routines that draw the dragon to use single line resolution & shifting with double wide pixels.
It's a really slick effect - but it's taking a lot more processing time per scanline than I was expecting, not leaving much time for the processing of paddles. Any input?
Source Medieval_Mayhem.zip
BIN mm.bin
I rewrote the fireball movement routines to use less RAM. I tried out REALbasic in order to create the direction/speed tables. It's a little qwerky, but it got the job done.
The direction/speed is now stored in a single byte for each fireball. When viewing the bits as 76543210, bits 765 control the speed while 43210 control the direction. This yields 7 speeds(speed 0 flags a not-moving fireball) and 32 directions. The directions are set up like this:
0 ^ |24<--+--