Minilop Retroware

For ZX Spectrum games made with MPAGD · Coming soon

Make the ZX Spectrum game you always imagined.

MPAGD gets your game running. The Minilop Power Desk takes it the rest of the way: bigger worlds, boss-sized sprites, music and sound effects, and a tape that loads properly. A Windows tool, coming soon.

  • Fit more in. Move screens into the 128K banks and free thousands of bytes.
  • Build bosses. Big sprites made from several pieces that move as one.
  • Tell a longer story. Join several stages on one tape.
  • Write with confidence. A script editor that checks your code as you type.

See what it does

An independent tool. It is not made or supported by the author of MPAGD.

Where the memory goes, after banking

Illustrative layout, not a measured build. On Cocoa 3, moving screens into banks freed about 5,200 bytes of main memory.

What can you do with Power Desk?

Build bigger games

128K memory banking, a clear view of where every byte goes, and several stages on one tape.

Give your world room to grow. Your screens move into the spare 128K banks and are paged in as the player walks, so level after level fits.
Make a game in chapters. Build each stage as its own MPAGD game and join them on one tape, carrying lives, score, keys and the variables you choose from stage to stage.
Keep only the engine your game really uses. Link your MPAGD engine folder, apply the trimmed copy with a backup, and go back to any earlier version.
See exactly where every byte goes. A coloured map of main memory and a card for every 128K bank, so you know what you can afford before the next big idea.
A live gauge on every page. Check how much room is left in main memory and in each bank without leaving what you are doing.
Find the screens that slow your game down. The Desk runs your build in an emulator, times every screen, ranks them, names the biggest costs and compares with a saved baseline.
48K builds
Not every game needs 128K. Build a tape for a 48K game, with your loader and loading screen, ready for the classic machine.

Create better sprites

Masked sprites, big bosses and tight hitboxes.

Sprites that sit in the scene, not in a square of background colour. Every frame can have a mask, held in the spare banks.
Masked sprite settings
Tune how your masks look: a halo of 0 to 3 pixels, a mask limit, closing small gaps, and masking for objects too.
Build a boss to remember. A leader sprite and up to three pieces, such as 2 by 2 sprites of 16 by 16, move and draw together without tearing, with optional whole-shape collision for walls and hits.
Stop dying to a sprite that never touched you. Draw a tighter collision box for any sprite image, even a different one for every animation frame.
Flash an enemy when it is hit. A sprite blinks between two colours while one of its variables holds a value you choose, with up to four rules.
Sprite data finder
Give each sprite its own settings on every screen, such as a rope length or a platform path, and let it read them itself without counting through earlier screens.
Player colours
Flash the player when hurt and shimmer in rainbow colours while invulnerable, with the background put back as they move.

10 out of 10 for graphics

Scrolling, effects and ready-made routines you tick on, each with a USER number.

Add features with no coding. Tick what you want from a library of ready-made routines, grouped by category. The Desk writes your user.asm, shows a USER number map and warns about numbers nothing handles.
Vertical scroller Lab
Fly up through your map. The play window scrolls downward, smooth and tear-free, with masked sprites. It moves in small steps, with one colour per window.
Horizontal scroller Lab
Scroll sideways, right only, left only or both, smooth and tear-free, with masked sprites. It moves in small steps, with one colour per window.
Four-way scroller Lab
Scroll a grid of screens up, down, left and right. Move in steps of 8 pixels (a whole cell, full colour), or 4 or 2 pixels for smoother movement. Each block keeps its own colour. 128K only.
Let your heroes step behind the scenery, such as trees, pillars and doorways, even with masked sprites.
Animated blocks
Bring the scenery to life. Chosen blocks cycle through the next one to three blocks wherever they are drawn, for conveyor belts, torches and water, with speed and direction that can follow a variable.
Darkness with torch arcs Lab
Turn out the lights. Light a circle around the player, or a half circle that follows the way they face.
Screen transitions
Change scenes with style. Blinds, triangle, square, circle and rectangle wipes in a colour you choose, optionally after cutscene pictures.
Blinking and rainbow objects
Make pickups impossible to miss. Objects flash between white and their own colour, or cycle through a list of colours.
Text crawl
Roll your story up the screen. A run of messages scrolls up a window one pixel line at a time, in the style of a film intro crawl.
Blood drying
Leave a mark on the world. Pools of coloured ink on empty blocks dry back to the block colour, from the edges inwards.
Nine routines from Jonathan Cauldwell
Nine classic routines ready to tick on: animated fodder, fade, merge room, reset objects and variables, lives counter effect, rotational movement, 64-column text and ColdSnap Audio.

Add music and sound effects

AY music and effects, with tools to make both.

Give your game a soundtrack. Add Vortex Tracker II or ProTracker 3 songs, played from the frame interrupt and controlled from your script by one variable.
Write the tune yourself. Compose and edit PT3 songs inside the Desk, with a drag and drop song timeline. Simpler than Vortex Tracker II.
Keep using SOUND n, now with real AY effects. Add AY Sound FX Editor banks and choose which chip channels effects may borrow.
Design your own lasers and explosions. Draw an effect frame by frame, start from presets, preview it and add it to your game in one click.
MIDI import and WAV export
Start from a MIDI file. Turn it into a first arrangement in the tracker, and export a WAV to preview or share.
Song packing
Fit more songs in the bank with optional ZX7 compression. It is off by default.

Craft beautiful screens

Spectrum colour rules applied for you.

Make a loader that is yours. Edit the BASIC loader, choose your own loading screen and tape file name, and add a message and key wait.
Tell the story in full-screen pictures from .scr, PNG, JPG or GIF files. Each can wait for a key or time itself.
Draw a loading screen that follows the Spectrum's rules. A 256 by 192 pixel editor that keeps to the colour limits for you.
Drop in a picture and move it about. PNG, JPG or GIF images come in as movable layers matched to Spectrum colours.
Put words on your screens in any Spectrum font. A text tool with a font picker, .ch8 font files and a built-in font editor.

Write better MPAGD code

An editor for events.a00 to a20 and events.msg that knows MPAGD.

A code editor that knows MPAGD. Edit events.a00 to a20 and events.msg with colour coding, folding, per-file undo and careful saving that only writes what changed.
Hover previews
Hover to see. Point at an image, block, screen, object, colour or USER number to see what it refers to.
Renumber sprite images
Delete or insert a sprite image and every IMAGE number in your scripts is updated, with a preview and undo.
Insert user routine
Pick one of your user routines from a list and its USER line is added for you.
Careful save dialogue
Save with confidence. Each step is shown (check, look for outside changes, safety backup, write, history) and what was saved is listed.
Find bar and replace in all
Find anything fast. Every match is highlighted and you can step through them, or search and replace across all scripts, in code only or comments only.
Command suggestions and help
Never forget a command again. A pop-up list of MPAGD commands shows how each is written and follows the context.
See where everything is used. Every place a variable, USER number, message or command appears, with counts.
Game review
A health check for the whole game. Checks across all scripts and the game file, for example for variables never set or screens the player cannot reach.
Give variables and sprite types memorable names that show in the editor and reports without changing your scripts. Copy labels from another open project.
Scratch scripts and script Library
Try ideas without risk. Scratch scripts are never part of the game, and the shared Library keeps your snippets.
Compare scripts
Show the same script from two projects side by side, with buttons to copy lines across.
Script checker
Catch mistakes before the compiler does. Errors and warnings appear as you type, following the compiler's rules. It agreed with the real compiler on 22 event files, 99 hand-made faults and 1,350 random damaged copies. The compiler still has the final say.
Messages tab
Move, insert or delete messages and every reference is renumbered, with a preview first.

Know your game

Read-only analysis, plus a few careful tools that rewrite the project.

Your game at a glance. A first page with your game's picture and numbers: screens, sprites, blocks and more. Each tile opens the matching tab.
See your whole world. Every screen is drawn from your blocks and laid out as on your MPAGD map, with sprites, objects and borders, and PNG export.
Know where everything is. See where each sprite and object is placed or spawned, and which ones look unused.
See which blocks earn their place. How many times each block is used, with a filter for blocks used fewer than a number of times.
Combine the best of two games. Builds a new .agd from the parts of two game files, for example to bring screens from one stage into another, with checks.
Documentation in one click. A README and picture sheets of every block and sprite frame.

Working with your project

The Windows desktop app, and the helpers around it.

From compile to tape in a click. Builds a .tap with an editable BASIC loader, ready to load. It says clearly when the main file is not a compiled game.
Help right where you are. A ? button on every page (or F1) opens the user guide at the part for the page you are on, in English, Spanish and Portuguese.
Languages
English, Spanish and European Portuguese for every page, the script checker messages and the help panel.
Project tabs
Keep several games, or several stages of one game, open at once.
Guided project setup
Start a project in a minute. A pop-up asks for the name, 128K or 48K, and your MPAGD folder once. The Desk finds the engine, build folder and build.bat itself.
Backups and Desk projects folder
Experiment without fear. Dated copies of your project files are made before risky changes, with restore and zip. Save project keeps earlier versions in a backups folder.
Never lose a good idea. A list for ideas, bugs and jobs in every project, saved in the project file.
Test game
Play it before you ship it. Your tape loads in an emulator inside the page, as a 48K or 128K machine.
Game folder set-up
A tidy home for every game. Creates a folder structure (DevEnvironment, Code and UserRoutines, Art, Music, Tapes) wherever you choose, with advice to keep one MPAGD per game.
Your project page
Link the files and folders MPAGD writes once, and the Desk re-reads the newest copies whenever you build.
Library
One shared folder of songs, effects, screens and scripts for all your projects, with authors you can search.
Use your own emulator
Prefer your own? Choose your Spectrum emulator in Preferences, then open the built tape in it with one click.
Save and open project
One project file holds your files, songs, effects, pictures and every setting.
Take a tour
A short guided walk round the main sections for new users, in English, Spanish and Portuguese.
What's new list
Plain-language notes for each version, in the user menu.
Looks (themes)
Make it yours. Classic, ZX Spectrum homage, Midnight or Focus colour schemes. Cosmetic only.
Windows desktop app
The Desk in its own window, with direct access to the folders you choose, no permission prompts, and a version number beside the logo.

Where the bytes go: Cocoa 3 as an example

Cocoa 3 filled MPAGD's memory, which is what the Power Desk grew from. This is where it can give space back, and what it did for Cocoa 3 where we have measured it.

Part of the gameNormallyWith the Power DeskIn Cocoa 3
Level screensCompressed screen data sits in main memory.Moved into the spare 128K banks and paged in as the player walks.5,744 bytes of screen data moved, freeing about 5,200 bytes of main memory.
Sprite masksEvery masked frame is 384 bytes of main memory.Held in a spare bank, 42 frames to a bank, with only what each moving sprite needs copied in.No mask data stays in main memory. About 7 to 9 per cent more time in tests.
Music and sound effectsSongs and effects compete with the game for memory.Songs and effects live in a spare bank. Only the player stays in main memory.The PT3 player takes about 260 to 300 bytes of main memory.
Engine codeThe whole MPAGD engine is included, used or not.The Engine Trimmer removes routines your game never calls, from your own copy of the engine.Estimated from your game file, exact from the compiled .asm.
User routinesEvery routine you add takes space.Only the routines you tick are written to user.asm, each with its cost shown.Depends on the routines chosen.
The whole gameOne program has to hold every level.Split a big game into stages, each its own MPAGD game, joined on one tape.Each stage gets a full memory of its own.

Built because one game needed it

MPAGD gets a game running quickly. As the game grows, the jobs around it take the time: running out of memory, finding what is unused, keeping scripts tidy, adding music, and building a tape that loads properly. The Power Desk started with Cocoa 3 and grew from what that game ran into.

You compile in MPAGD as you always do. The Desk reads the result and the folder your project lives in. It does not replace MPAGD, and it only writes to your project folder when you ask it to, with a dated backup made first.

How it fits with MPAGD

  1. PrepareDrag and drop the features you need and create your User Routine file with no coding. Over 30 routines to play with.
  2. Compile in MPAGDPower Desk works hand in hand with MPAGD and enhances your MPAGD game.
  3. Add the extrasMusic, sound effects, cutscene pictures and a loading screen, ready to run.
  4. Build the tapeThe Desk builds the .tap with a loader you can edit. Even create multi stage games by combining multiple .tap files to extend your gameplay.
  5. Test and downloadRun it in the built-in emulator, then download the .tap. Professionally produced in no time.

See it running

Demo videos from the Power Desk beta. Each one loads from YouTube only when you press play.

Creating a multi-stage game

Several MPAGD games joined into one tape, with values carried from stage to stage.

4-way scroller, proof of concept

A first look at scrolling in four directions.

Horizontal scrolling shoot 'em up

A side-scrolling shooter made in MPAGD with the Power Desk.

Scrolling shoot 'em up demo

A longer walk through a scrolling shoot 'em up.

Big sprites and boss battles

Boss-sized sprites in MPAGD.

Animated blocks

Blocks that animate in the game.

Walk behind blocks

The player walking behind scenery.

Upgrading Cocoa and the Time Machine

A full demo of upgrading an existing game with the Power Desk.

Full playlist on YouTube

Credits

The Power Desk is built on the work of others. Their notices are kept in the generated source and in the app.

MPAGD by Jonathan Cauldwell. The Desk reads its output. Nine routines come from his collection.

ZX7 format and decoder by Einar Saukas.

PT3 player by Sergey Bulba, adapted by Stefan Bylund (MIT).

AYFX format by Shiru (AY Sound FX Editor).

JSSpeccy 3 by Matt Westcott (GPL-3.0), used for Test game.

CodeMirror 6 and Lezer by Marijn Haverbeke and contributors (MIT).

z80-emulator by Lawrence Kesteloot (MIT), used in the AY Tracker.

Fonts Press Start 2P, IBM Plex Mono, Manrope and Plus Jakarta Sans, under the SIL Open Font Licence 1.1.

sjasmplus is referred to but not bundled.