Yazzie MSX Remastered --------------------- (c) RetroSouls 2019, 2020 This is a remastered version of the game Yazzie that was originally released for the ZX-Spectrum and MSX1. The list of improvements is somewhat long. 1) ChangeLog: - Redesigned the title and menu screens to match the box art and the traditional cleaner MSX1 style - Restored the complete menu screen image, like the speccy version has. The original MSX version had a simpler screen - Fine tuned the colors of most of the tiles of the game - Implemented lives and game over. Extra lives are given every 4 completed stages - Added 10 more stages, for a total of 30 (10 stages/theme) - It’s now possible to load user designed stages by pressing L on the menu - Fine-tuned the flash timing of the PUSH FIRE text on the title screen - The intro screen can now be skipped by pressing a button - Demo autoplay, activated after the menu music loops 2 times - The hero doesn't stop anymore when diagonals are pressed - The game now extends the bridges without freezing the gameplay. But be careful! While one bridge is being extended, the other bridge buttons will be blocked. ;) - The enemy sprites are painted with specific colors for spawning and death. Also, different enemies have now different colors too. - The hero sprite now changes to gray on his death - The music replayer is now interrupt-driven - Enhanced the game random number generator - Turbofixed the 50Hz/60Hz detection - Bugfixed the getmyslot detection routine on non-expanded slots - All songs now play at exact the same speed either at 50Hz or 60Hz video frequency (i.e., the stage 2 song was played faster at 60Hz on the original release) - Added game pause (STOP key or button-2) - button1+unpause = restart level. Allows restart on the joystick - Press the function keys anytime to select the palette on MSX2 or higher - HIDlib is now used to allow the joystick to be connected to any port, and to avoid conflict with mice, touchpads, paddles etc - The ending credits will now be finished after it has looped for 3 times, and you can quit it after it looped at least 1 time - The RAM is now cleared on init - Fixed all direct I/O places. The game now passes the Acid2Test - When available, the turbo is enabled on boot - Fixed a bug that allowed the end game screen to be restarted or skipped - Several speed and RAM/ROM space optimisations everywhere - Fixed a bug on the tele-transporter that released the enemies and hero 1 pixel below the normal line, making them walk at the incorrect height - Implemented the angry enemy mode. When an enemy sees you directly, he gets angry and starts to chase you restlessly until he calms down. This was also added as part of the gamification tactics to win certain stages - Fixed the music corruption that happened under certain conditions - It's now possible to warp from right to left and vice-versa - Fixed a bug that made the enemies freeze when going through narrow spaces to the left - Implemented a subtle special ability that only the enemies have - Fixed a bug where the mine explosion didn't clear all tiles around it - Enemies now commit suicide when they detect that they're trapped - Fixed a bug that caused the enemies to go through bridge buttons when falling - Solved the tendency of the enemy AI to keep turning around up/down without leaving the same ladder. - Rewrote hero, enemy and sprite code to use data structures - Fixed the the action button (dig, start bridges) detection sometimes failing - Fixed the hold down jumps more than 1 bridge bug - Decompress the title and menu screen using only MegaLZ compression - Implemented a sprite multiplexer. This allows more than 4 sprites to be used in the game, and this was used to add more enemies to some levels, to enhance the experience. - Big overhaul of the enemy processing engine. It now supports up to 31 simultaneous enemies instead of 3. - Fixed a bug where the mines processor code would strafe garbage on the memory, causing glitches on the bridge building and music playback - New sfx for: start/stage completed (the original was ripped from a famous MSX game of a big impetuous software house), pause, enemy spawn, extra life, mine explosion and teleport. - Upgraded the ayFX replayer to v2.1, with multichannel support - Implemented the stage advance transitions (a bit different form the speccy, to be quicker) - Implemented titles for the levels. This was initially done for the user custom level support, but I thought it was fun to add titles to the built-in levels too - Fixed a bug that caused the hero landing sfx to be repeatedly played all over the fall, and allowed the player to walk during the fall on some circumstances 2) Gameplay Help the gold seeker collect all the gold from the strange mansion, whilst avoiding the enemies. Collect pickaxes to dig through the brick floors. Also: - There are mines on certain places, and they'll explode after 10 ticks. - Only one bridge can be extended at a time. When a bridge is being extended, the other bridge buttons will be inactive. - You and the enemies have different abilities. There are things that you can do and the enemies don't, and vice-versa. - This is an oldskool game, so the there's no spoonfeed tutorial, and the subtle details won't be described in this manual. The game you give you hints on the design of the stages, so you can learn in the process. You must exercise observation and experiment what are your character habilities, exploit the imposed restrictions, the enemy behaviour, find out where are the real limits/ features/quirks etc in order to advance. It's all part of the game. Your victory must be earned with your brain! 3) Controls - Keyboard: - Directionals: move your character - SPACE: action button. Dig holes (if you have a pickaxe), activate bridges etc - GRAPH: secondary button. Used mainly in the file selector, to advance pages. - STOP : pause the game - ESC : kills your character (in case you get stuck) - F1 to F5: Select the palette - F1 = MSX1 palette - F2 = MSX2 palette - F3 = CoolColors palette - F4 = ZX-Spectrum palette - F5 = Commodore 64 palette - Joystick - Directionals: move your character - Button-1: action button. Dig holes (if you have a pickaxe), activate bridges etc - Button-2: Pause the game - If you hold the button-1 while unpausing the game, it will kill your character. (in case you get stuck) 4) Custom Levels It's now possible to design your own levels (must be drawn with an external tool, see ahead). To load them, press L on the menu screen and select the desired level from the file manager. To edit your levels, use an editor named Tiled, and compile the map from JSON to YAZ using the Bash scripts provided in the EXTRAS folder. This folder contains: - Two sample .YAZ levels - Empty templates for the 3 themes of the game - Bash scripts to compile the .json maps edited by Tiled to the .YAZ format used by the game - The game soundtrack in PT3 format - The zipped game source code (except some libraries published on http://frs.badcoffee.info) 6) For developers, this is the structure of a YAZ user level file: Offset type Content +0000h string Header. Always "Yazzie1" +0007h byte Theme number (0,1~3). Selects one of the three available themes. 0 means that a random theme will be selected each time. +0008h byte Music track number (0,1~6). Selects one of the 6 available music tracks. 0 means that a random track will be selected each time. +0009h string Author initials, in ASCII chars. Always 3 chars long, so fill the unused chars with zeroes. +000Ch string Level Title, in ASCII chars. Must be terminated with FFh. +0020h array Level map. Array of 32x23 bytes containing tile indexes Tiles: 00h=Transparent space 01h=Gold bars 02h=Ladder 03h=Fire 04h=Pickaxe 05h=Round Window, TL 06h=Round Window, TR 07h=Square Window L 08h=Square Window R 09h=Spike 0Ah=Down arrow button1 0Bh=Down arrow button2 0Ch=Round Window, BL 0Dh=Round Window, BR 0Eh=3.Small brick 0Fh=4.Medium brick 10h=5.Normal brick, center 11h=Left torch 12h=Bridge 13h=Right torch 14h=Wall fire bowl 15h=Land mine inactive 16h=Left arrow button unused 17h=Right arrow button unused 18h=Normal brick,border 19h=Bridge builder 1Ah=Left arrow button used 1Bh=Right arrow button used 1Ch=Land mine active 1Dh=Floor fire bowl 1Eh=Hero icon 1Fh=Concrete brick 1Fh=Concrete brick 20h=Hero 21h=Enemy 22h=Red block 5) Special Thanks - MSXdev team, for the stymulus for the development for the MSX platform - OpenMSX team, for their excellent emulator and debugger - Paulo Peccin, for the incredible webMSX emulator that allows testers to easily run the game beta version without any need of prior MSX knowledge - MRC crew, for the place where MSX hobbyists can meet and exchange ideas - The SjASMPlus assembler team - Sandro Sebastião Singer and Mauro Sans Jr, for betatesting and ideas =========================================================================== License Terms of use --------------------------------------------------------------------------- 1) This patch is gratis for non-commercial purposes, and the author retains its copyright. The original author, RetroSouls, must be contacted to authorise any commercial distribution. 2) If you want to use this game for commercial purposes you MUST contact the original author, RetroSouls, prior to negotiate the terms and conditions. Send an e-mail to submit@retrosouls.net 3) This game is provided ‘as-is’, without any express or implied warranty. In no event will the author be held liable for any damages resulting from the use of this software. 4) USE THIS SOFTWARE SOLELY AT YOUR OWN RISK. =========================================================================== Donations --------------------------------------------------------------------------- If you like this game and want to show your appreciation by donating any amount, or MSX hardware, it will be very welcome and will help future developments. Donations can be done via PayPal to https://www.paypal.me/retrosouls, and for MSX hardware, try contacting submit@retrosouls.net . If you also like the enhancements and fixes made on this remastered version and want to show your appreciation you can donate via PayPal to sdsnatcheralpha@gmail.com .