
Windows version released! (21st January 2002)
Partition Sector is a Bomberman-style game which supports up to five players on the same PC. It is
based on a 1995 Amiga game called Masterblaster, which at the time was one of the best multiplayer games in existence.
It contains all the features from Masterblaster, and adds extra powerups (including rocket launcher and flamethrower),
improved special effects, and a high level of customizability.

Download PaRTiTioN SeCToR
PaRTiTioN SeCToR for Windows (version 0.90) - 2.45Mb
PaRTiTioN SeCToR for DOS (version 0.85) - 2.41Mb
Hardware/Software requirements
The game should run pretty well on most Pentium-class PCs. If you get poor performance, you can reduce the
colour depth to 256 colours. For more information on PC requirements and any other information read the file psector.txt
after downloading the game.
Revision History
Started on: 9th March 1998
Released on: 4th September 1999
Windows version released: 21st January 2002
Things that may be added in future versions (if demand is sufficient):
- Saving of menu settings each time the game is exited.
- Allow configuration of sound volumes.
- More improvements to control setup.
0.90 20th January 2002
- Improved control setup.
- Updated to fixed wimbaah sample.
- Improved 8 bit mode - looks like it became broken at some point (possibly due to Allegro update).
- Changed page flipping mode to new Windows compatible version.
- Added /gfx_gdi command line parameter for Windows GDI mode (very slow but more compatible).
0.87 23rd March 2000
- Windows version is still unreliable - I will release it only when the relevant bugs in Allegro are fixed.
- Added /gfx_safe command line parameter.
0.86 10th February 2000
- Added screenshot writing (F12 key).
- Added fsync() function for Mingw32 (thanks to Mumit Khan).
- Changed double buffering so it doesn't use a sub-bitmap.
- Moved allegro_init() right to the front of the program.
- Changed instances of printf to allegro_message. Sound intialisation needs some more work for the error message to work properly on all platforms. /? also needs improvement.
- Changed addnew in dialog.h to accept const char instead of char.
- Started Windows version (mingw32).
- Changed destruction of page1 and page2 to active_page and visual_page.
- Smoothed radio emmissions on controller bonus graphic.
0.85 3rd September 1999
- Finished. The game was started on the 9th of March 1998. The source code (not including headers) is 5412 lines long, 263Kb, and about 25,000 words.
- Reduced the quality of some of the sounds to save unnecessary download/upload time.
- Added credits section to psector.txt
- Added sound effects for annhiliator, rocket launcher and flamethrower pickups - sounds made by Mark Sheeky. Added credit for him to credits page.
- Added 'Fast' option for Initial Player Speed.
- Made it so that the American spelling of colour in /colourdepth was also allowed.
- Added shareware/legal/distribution information to psector.txt, and improved some other parts of the documentation.
- Changed credit for 'Bonus graphics' to 'Most bonus graphics' (I did the new bonuses - Snail, Rocket Launcher, Flamethrower and Annhiliator).
- Fixed bug with rockets colliding with dead (and thus invisible) players - altered square_occupied_by_other_player() (which is used for rocket collisions only).
- Changed getrandom from a macro to an inline function.
- Made it so that controllerbombs and timebombs are detonated if the player controlling them dies - added function normalize_bombs() so that there is no code repetition (the rest of the program is full of it).
- Finished snail graphic.
- Wrote psector.txt
- Did credits/info screen.
- Added controller animation (for players)
- Made it so that Superman can push bombs (excluding rockets and controllerbombs).
- Improved flamethrower sound staggering system. (flame_sound_count and FLAME_SOUND_STAGGER)
- Found a bug where round didn't end after music had reduced in volume. Couldn't reproduce it. Arse, arse, arse.
Changed if (victory_countdown == 0) to if (victory_countdown <= 0). That should fix it.
This bug was probably caused by the sole remaining player dying on the last frame before the victory countdown ended. victory_countdown is decremented twice in one frame when the sole remaining player dies, that would have caused it to go to -1, and the original if statement wouldn't have detected the end of the round.
- Changed bonus probabilities back to what they were before this version, with these exceptions:
Ghost is 5 instead of 6
Death is 8 instead of 9
Stop is 5 instead of 4
Controller is 4 instead of 3
- Changed text "Editing controls for" to "Viewing controls for". Added note on not being able to edit controls to control screen.
- Noticed anomaly in bonus selection routine - subtracting TIMEBOMB from randomvalue instead of BONUS_TIMEBOMB. What the hell is TIMEBOMB? Ah - a bomb type, defined as 2. That is what is causing the bug. Now that I know it wasn't the bonus probability values, I'll have to change them back...
- Changed some more bonus probabilities:
Bomb from 19 to 18
Range from 15 to 14
Death from 9 to 8
Annhiliator from 2 to 3
Snail from 3 to 4
Flamethrower from 2 to 3
- Changed randomvalue for bonus probability calculation to 1-100 instead of 0-99.
- Hmm - something seems to have gone wrong with the bonus_chance[] system I added in 0.75 - I don't remember seeing any bonus after Stop (i.e. Rocket Launcher, Flamethrower, Annhiliator, Snail) for ages...
Found reason about two hours later, see TIMEBOMB thing.
- Changed some bonus probabilities:
Ghost from 6 to 5
Flamethrower from 1 to 2
- Added some extra sound effects for bonus pickups.
- Added extra menu options: Cash Injection (free cash at start of each round except first) and Credits/Info (not yet implemented). Had some other ideas for menu options while on the toilet, but forgot them.
- Slowed down the stop animation (SPIN_SPEED) after seeing it with the new graphics.
- Removed Please Wait and trans/light map calculations for high colour modes (only necessary in 256 colours).
- Added and implemented command line options /penises and /graves.
- Slightly darkened foreground arm/leg colour of Player 5 (yellow) sideways animations.
- Extended width of smiley mouth on Player 1's sideways animations.
0.84 16th August 1999
- Fixed it so that wall probability percentages were correct - turns out if you specified 50%, you got 51%, and if you specified 0%, you got 1%.
- Changed it so that wall and bonus densities of 0% are allowed (previously 10% was the minimum).
- Noticed and fixed swapped on/off values for Grid Blocks option.
- Removed unused variables stick_anim_variant in main() and anim_count in trophy_room().
- Changed returned key_delay from menu_press() - again - this time to 11 (started as 10, then 14, then 12).
Still doesn't feel totally right, I think I should stop tampering with it..
- Fixed direction bug in trophy room (players should always be facing forwards) - added facing argument to get_bloke_anim_frame().
- Halved anim speed for left/right movement. Achieved by doubling PLAYER_ANIM_SPEED and multiplying reduction of time_to_next_anim by two on up/down movement.
- Implemented new bloke animation frames.
- Changed choices for Grid Blocks from Yes/No to On/Off.
0.83 20th July 1999
- Renamed Normallevel to Grid Blocks.
- Added more calls to fflush and fsync following successful experiment (see below).
- Added video driver detection result to log file.
- Reverted temp_bitmap and temp_bitmap_2 to their former status.
- Traced bug preventing access to Player Control menu to an uninitialised local variable.
- Removed menu_item parameter from menu_press() after realising it wasn't being used at all.
0.82 24th June 1999
- Made temp_bitmap and temp_bitmap_2 static pointers in draw_grid instead of global pointers initialised in main. Unfortunately this makes it practically impossible to destroy them manually. Whoops.
- Added some extra log file entries for clean-up operations at the end of main.
- Added int stick_anim_variant for future use with varying stick man animations.
- Traced stick man animation problem to ommission of #include <cmath>. Putting this in uncovered a bug which led me to find out that I was using gcc 2.8.0 instead of 2.8.1. Probably. It's not entirely clear.
- Added sound driver detection to log file.
- Made it so that if there is no sound, Time Before Shrinking is increased (to compensate for the loss of interlude time).
Now that I think about it, I didn't really need to use maps to achieve the fast/slow difference. I could have just used the same technique here, i.e. having a base value and adding to it slightly if necessary. Then again, customizing shrink_time based on timing of the music would not have been practical if I had used the new method.
The increase is 10 seconds (600 frames) - slightly more than the length of the Zoo interlude music.
- Fixed shrinking when there is no sound.
- Reduced returned key_delay in menu_press from 14 to 12. Also reduced delay slightly in control screen and shop.
- Added one call to fflush and fsync as an experiment to fix logfile problem with hangs and write-behind caching.
0.81 9th June 1999
- Fixed initial flicker of dancing stick man.
- Swapped positions of Start Cash and Normallevel on main menu
- Made it so that if shop is off, cash bonuses are replaced with something else.
- Altered bonus probabilities - cash down by 1%, rocket launcher up by 1%.
- Altered internal working of Time Before Shrinking variable, to allow two different sets of values - so that the value is slightly less when initial player speed is Normal (or Fast - an option that was added later).
- Halved the speed of death animations.
0.80 30th May 1999
- I haven't exactly done much in between these versions, but then:
- a) I have long since come out of one of my biggest ever programming frenzies (chronicled below), which was brought on by me starting this revision history - it allowed me to clearly see what I had achieved, thus giving me motivation.
- b) The player death thing is quite a fundamental change - up until now, players were able to continue as normal after they had died. This was necessary for testing, but now pretty much all the testing has been done.
- c) The game is virtually finished except for final polishing (graphics and some sounds need to be done). Which is why I've upped it to 0.80. I guess it is a beta version now.
- Added version number to main menu.
- Added full player deaths - animations, and players aren't allowed to do anything when they're dead.
- Tried to add my dancing stick man animation to the main menu. It was too big and the speeds were all the same (and too slow) for no apparent reason. It'll be removed later, but I'll keep it for the moment so the beta testers can laugh at it.
0.75 20th May 1999
- Made it so that players can't buy the same thing twice in the shop (except things which are additive).
- Added function convert_to_str (thanks to Ralph Deane for that). This is meant to be part of the keyboard setup screen, but I am now told that the vital macro this function uses will not be inlcuded in the next version of Allegro, and it will have to be done using a different method. So I won't do much more work on the keyboard setup screen until the next version of Allegro is out.
- Added speed-up sound for menu selections.
- Made it so that blart sound plays when player tries to buy something but doesn't have enough cash.
- Reversed order of Shrink Speed variable on menu, so that it goes from slow to fast instead of the other way around.
- Increased volume of blart sound by 300% (in datafile).
- Changed return value for key_delay at end of menu_press() from 10 to 14.
- Added initial button definitions for control setup screen. Added menu_control() function.
- Fixed displaying of purchased speeds in shop.
- Added music to main menu.
- Added bonus_chance[] array to make alteration of individual bonus probabilities much easier. The code that places bonuses on the grid is still a mess, but at least now it's a customizable mess.
- Replaced player[].status with player[].dead, removed defines for status.
0.74 8th May 1999
- Added new setfocus member function to dialog.h, to fix problem with mutliple focuses in shop.
- Made a few alterations to initialisation of main menu so that most options are automatically initialised to the correct value.
- Added shop. Unlike the one in Masterblaster, this shop shows you what you have purchased so far.
0.73 6th May 1999
- Added some calls to destroy_bitmap at the end (better late than never).
- Implemented /diag command-line option - info readout is now off by default.
- Fixed a bug where it would draw the first animation frame of shrinking even if shrinking was switched off on the menu.
- Reduced default bonus density to 30% (from 40%).
- Removed position correction for secondary movement, which was unneccessary.
- Reduced delay between end of drumbeat sample and 'bong' in interlude screen by 10ms (to 90ms).
- Fixed volume resetting when music changes to a different stage while volume ramping is taking place.
- Added routine which assigns controls to players based on the number of joysticks detected.
- Changed joystick code to reflect changes to joystick system in Allegro 3.1. Multiple joysticks are now supported.
- Added some new keysets, so that all five keyset slots are predefined.
- Resumed work on menu. Added function menu_press; cmdscreen made global.
- Made it so that music volume ramps down when round is about to end.
0.72 1st May 1999
- Added graphics for rockets.
- Changed the in-game quit key from space to escape.
- Made it so that bombs can't be dropped on top of bonuses.
- Made it so that secondary movement code is not called if player has just used his superman ability (added variable superman_used). This was supposed to fix jerks when running along pushing a block in the secondary movement zone. Inexplicably, the changes have made no difference.
- Made it so that players can't move diagonally - needed for superman and so that players don't get speed boosts using secondary movement. Left/right movement has priority over up/down movement.
- Added improved movement code - secondary movement to allow players to move more smoothly without snagging on blocks.
- Made games continue over multiple rounds until someone has won or game is quit.
0.71
- Records of changes were not kept before this point, including a few early changes between 0.71 and 0.72.
Go back to the ARGnet index...
Copyright 1997-2002 Andrew R. Gillett.