Impossible Mission
Log..
Thought i ought to log this mornings work before i get heavily into something else on the project (IM still so don't dispair!)..
Couldn't work out why sfx sounded a bit crap then listened more intently and realised that whilst each sfx used its own share of channels, other channel activity was stalled whilst each sfx was playing with lead to long notes being heard. Easy enough to fix.
Also used new SDES to find a neat sound for the Robot Plasma fire (Using a harmonic of Channel C with Envelope generator Sawtooth). This creates a crisp but slightly wobbly sound. I intermittantly fragment it about 7 times which creates a very realistic plasma shot sound
Incidentally if you have SDES you can recreate the sound by setting channel C to $10, Envelope period to $1F, Cycle to $08, Channel C pitch to $1E and Status to $7B
SDES can be dl here..
http://forum.defence-force.org/viewtopic.php?t=516
I've also worked out how to effectively get 4 channels working in the rooms.
Channel C plays the plasma fire sound (C+Envelope), channel B the Robot turning sound, Channel A the Motor and room abience sound and Channel A again for Ethan footsteps. I call a different sfx for the latter than plays the footstep for one irq then jumps back into the room ambience sound. Also adjusted volume levels for all room sfx and now sounds pretty damn good. I'll try to produce an mp3 for this at some point and post here.
Finally, merged all the furniture graphics into the standard object list so that i don't need duplicate routines. This reduces memory and simplifies things a bit
And mid afternoon stuff..
Now fixed Lift problem. Lifts in rooms were not ascending or decending the full extent of each lift shaft. The code was not adding the carry to the high byte of the collision address.
Early evening stuff..
Got time display working and counting up from Midnight. Unlike original game, the score is always present so time is always shown and updated in realtime.
Also coded autocollision map for main lift shaft. However Ethan is still dropping to the bottom of the screen whenever i attempt to move him. Bugs galore here still
Late evening stuff..
Kind of taken a bit of a step back since the lift shaft code was done, i now discover i need complete duplicate routines for plotting and deleting hero (using a local background buffer because i used the existing background buffer to hold the complete lift shaft map + a bit more memory!).
No mean feet when i have to also mirror in separate routine too.
Its not the work involved, its the memory involved!
So i am 50/50 thinking of a rewrite but i know generating a liftshaft from a simple room map is no mean feet. The lift shaft routine must be as fast as possible otherwise it will look awful.
However if i manage it it means i can save alot of bytes.
Thought i ought to log this mornings work before i get heavily into something else on the project (IM still so don't dispair!)..
Couldn't work out why sfx sounded a bit crap then listened more intently and realised that whilst each sfx used its own share of channels, other channel activity was stalled whilst each sfx was playing with lead to long notes being heard. Easy enough to fix.
Also used new SDES to find a neat sound for the Robot Plasma fire (Using a harmonic of Channel C with Envelope generator Sawtooth). This creates a crisp but slightly wobbly sound. I intermittantly fragment it about 7 times which creates a very realistic plasma shot sound
Incidentally if you have SDES you can recreate the sound by setting channel C to $10, Envelope period to $1F, Cycle to $08, Channel C pitch to $1E and Status to $7B
SDES can be dl here..
http://forum.defence-force.org/viewtopic.php?t=516
I've also worked out how to effectively get 4 channels working in the rooms.
Channel C plays the plasma fire sound (C+Envelope), channel B the Robot turning sound, Channel A the Motor and room abience sound and Channel A again for Ethan footsteps. I call a different sfx for the latter than plays the footstep for one irq then jumps back into the room ambience sound. Also adjusted volume levels for all room sfx and now sounds pretty damn good. I'll try to produce an mp3 for this at some point and post here.
Finally, merged all the furniture graphics into the standard object list so that i don't need duplicate routines. This reduces memory and simplifies things a bit
And mid afternoon stuff..
Now fixed Lift problem. Lifts in rooms were not ascending or decending the full extent of each lift shaft. The code was not adding the carry to the high byte of the collision address.
Early evening stuff..
Got time display working and counting up from Midnight. Unlike original game, the score is always present so time is always shown and updated in realtime.
Also coded autocollision map for main lift shaft. However Ethan is still dropping to the bottom of the screen whenever i attempt to move him. Bugs galore here still
Late evening stuff..
Kind of taken a bit of a step back since the lift shaft code was done, i now discover i need complete duplicate routines for plotting and deleting hero (using a local background buffer because i used the existing background buffer to hold the complete lift shaft map + a bit more memory!).
No mean feet when i have to also mirror in separate routine too.
Its not the work involved, its the memory involved!
So i am 50/50 thinking of a rewrite but i know generating a liftshaft from a simple room map is no mean feet. The lift shaft routine must be as fast as possible otherwise it will look awful.
However if i manage it it means i can save alot of bytes.
Worked into the wee small Sunday night hours trying to figure out the best way of coding the Lift shaft section better then at around 3am it hit me..
Each side of the lift shaft potentially has two types of graphics, those being Earth and Corridor.
So instead of mapping the complete width of the shaft, one has only to map one column or Strip.
Ie. a screen map contain just earth, corridor left only, corridor right only and corridor on both sides.
Each room potentially has 2 heights that exits can exist (top or bottom) on. So i decided that each screen should only represent half room height and one of these exits. This makes things extremely simple.
Each StripMap contains 25 bytes. Each byte specifies a 40x6 graphic object. So all 25 bytes fill the complete 40x150 arena.
The graphic is rapidly rendered to the screen using a screen offset table.
Since this table specifies the screen offset of the next byte to display we can set the offsets to avoid plotting over the lift cables and lift.
Infact i believe this technique will be so good it will be faster than the previous method and use far less memory
Last night set up some tables and captured the 40x6 graphics.
Each side of the lift shaft potentially has two types of graphics, those being Earth and Corridor.
So instead of mapping the complete width of the shaft, one has only to map one column or Strip.
Ie. a screen map contain just earth, corridor left only, corridor right only and corridor on both sides.
Each room potentially has 2 heights that exits can exist (top or bottom) on. So i decided that each screen should only represent half room height and one of these exits. This makes things extremely simple.
Each StripMap contains 25 bytes. Each byte specifies a 40x6 graphic object. So all 25 bytes fill the complete 40x150 arena.
The graphic is rapidly rendered to the screen using a screen offset table.
Since this table specifies the screen offset of the next byte to display we can set the offsets to avoid plotting over the lift cables and lift.
Infact i believe this technique will be so good it will be faster than the previous method and use far less memory
Last night set up some tables and captured the 40x6 graphics.
hehe, i guess so.. i must get on with this now though.. the longer i leave it the less interested i become.
To do list..
1)Write and test New scroll routine for main lift shaft
2)Rewrite plot room map and animate dot where Ethan is on map
3)Generate collision map for liftshaft and test ethan running around in it
4)Add lift sfx
5)Write and test Random rooms in room map
6)Link lift shaft to rooms and test ethan running between rooms
7)Remove bugs for Ethan jumping/running/searching
Code puzzle piece work areas, mirror, flip, merge and colours +sfx
9)Sort out the rest of searching items in rooms
10)Code Terminal menu control (reset platforms, snooze robots) +sfx
11)Code simon computer +sfx
12)Code modem menu and write more sfx scripts for dial tones
13)Write more Robot movements and detecting hero
14)Optimise game and create/add samples
15)Add death sequence and kill Ethan on contact with chasm,robots,plasma, etc.
16)accumulate and display score and 1 hiscore for end of game
17)convert spectrum im music score to oric (compact format) and write player
18)Optimise and replace/add/remove furniture items depending on memory
19)Code volume, joystick and pause buttons
20)code joystick routines (including telestrat) and test
21)Code end of game won/lost screen with stats
22)Draw IMPOSSIBLE MISSION title with credits for load/title screen.
23)Add extra content and disc save hiscore for Disk version
And a few other things i have bound to forgotten
To do list..
1)Write and test New scroll routine for main lift shaft
2)Rewrite plot room map and animate dot where Ethan is on map
3)Generate collision map for liftshaft and test ethan running around in it
4)Add lift sfx
5)Write and test Random rooms in room map
6)Link lift shaft to rooms and test ethan running between rooms
7)Remove bugs for Ethan jumping/running/searching
Code puzzle piece work areas, mirror, flip, merge and colours +sfx
9)Sort out the rest of searching items in rooms
10)Code Terminal menu control (reset platforms, snooze robots) +sfx
11)Code simon computer +sfx
12)Code modem menu and write more sfx scripts for dial tones
13)Write more Robot movements and detecting hero
14)Optimise game and create/add samples
15)Add death sequence and kill Ethan on contact with chasm,robots,plasma, etc.
16)accumulate and display score and 1 hiscore for end of game
17)convert spectrum im music score to oric (compact format) and write player
18)Optimise and replace/add/remove furniture items depending on memory
19)Code volume, joystick and pause buttons
20)code joystick routines (including telestrat) and test
21)Code end of game won/lost screen with stats
22)Draw IMPOSSIBLE MISSION title with credits for load/title screen.
23)Add extra content and disc save hiscore for Disk version
And a few other things i have bound to forgotten
Not really dude, remember i have completed (and released) a number of games before and this certainly helps. Pulsoids springs to mind aswell as Magnetix, Zebulon, ZipnZap, etc.
But everyone wants it now and they keep asking me when they'll get a demo or when it will be finished.
Log
Got a bit done today and last night. Now the Map of Rooms are drawn in the scoreboard though with some bugs like isolated rooms.
And i have taken alot of today improving the scorepanels gfx.
Also tested the lift shaft scroll routine which works fine (if a bit slow).
Tomorrow is my birthday so i may not be quite as productive as normal
But everyone wants it now and they keep asking me when they'll get a demo or when it will be finished.
Log
Got a bit done today and last night. Now the Map of Rooms are drawn in the scoreboard though with some bugs like isolated rooms.
And i have taken alot of today improving the scorepanels gfx.
Also tested the lift shaft scroll routine which works fine (if a bit slow).
Tomorrow is my birthday so i may not be quite as productive as normal
ok, a bit more done tonight..
Notice the randomly generated complex. Unfortunately some rooms are still being shown isolated (ie. no exits on either side) so another bug has crept in.
Also notice the complex position cursor which is glowing here but difficult to illustrate on a static screenshot
I've changed the actual corridor and lift shaft arena alot too replacing overhead lamps with strip lights, character based earth rock with random dither and shaft wall blocks with the ones from the rooms.
The lift is also slightly taller. This is primarily because it is easier to allign the corridor to a platform boundary from the rooms (then i need not change the ethan control routines).
Just finished (though not visible ) the collision map generating routine for each new lift position.
I also captured the new design scorepanel. Not much difference from previous except the stat slots are more rounded and the time has a blue background.
Now have Ethan running around in lift shaft corridor. Another bug has raised its ugly head and prevents me moving lift up/down until its sorted.
I have also linked the liftshaft ethan to his pocket computer, so he can now switch to his computer from the lift shaft section and switch back again. The switch happens when he presses fire. However like original game if he runs then presses fire he may still somersault.
Also got the classic echoed step sfx working as he runs through corridor.
Notice the randomly generated complex. Unfortunately some rooms are still being shown isolated (ie. no exits on either side) so another bug has crept in.
Also notice the complex position cursor which is glowing here but difficult to illustrate on a static screenshot
I've changed the actual corridor and lift shaft arena alot too replacing overhead lamps with strip lights, character based earth rock with random dither and shaft wall blocks with the ones from the rooms.
The lift is also slightly taller. This is primarily because it is easier to allign the corridor to a platform boundary from the rooms (then i need not change the ethan control routines).
Just finished (though not visible ) the collision map generating routine for each new lift position.
I also captured the new design scorepanel. Not much difference from previous except the stat slots are more rounded and the time has a blue background.
Now have Ethan running around in lift shaft corridor. Another bug has raised its ugly head and prevents me moving lift up/down until its sorted.
I have also linked the liftshaft ethan to his pocket computer, so he can now switch to his computer from the lift shaft section and switch back again. The switch happens when he presses fire. However like original game if he runs then presses fire he may still somersault.
Also got the classic echoed step sfx working as he runs through corridor.
Last edited by Twilighte on Sat Aug 22, 2009 11:13 pm, edited 1 time in total.
Now have Ethan ascending and descending corridor lift. Only problem is that the corridors that scroll into view don't seem to have any relationship to the map of rooms in the score panel
I also need to add the room code in the collision map so that as soon as Ethan runs too far left or right the game can instantly know what room to draw
I also need to add the room code in the collision map so that as soon as Ethan runs too far left or right the game can instantly know what room to draw
- Silicebit.
- Flight Lieutenant
- Posts: 313
- Joined: Thu Jan 12, 2006 10:18 pm
- Location: Madrid, Spain
- Contact: