https://sourceforge.net/projects/SokobanRK/
"Sokoban RK" for various Z80-based Computers
Author: RobertK (RetroBertie@outlook.com)
Version 2025-08-25
This is a cross-platform version of the classic puzzle game "Sokoban". You are a worker in a warehouse, and your goal is to push all boxes to the target locations. You can only push the boxes, but you cannot pull them. All 50 levels of the original game are included, the levels.h file also contains 40 extra levels that can optionally be used when compiling the game.
Read more about the game on Wikipedia:
https://en.wikipedia.org/wiki/Sokoban
The following systems are currently supported:
Amstrad CPC
Amstrad NC-200
Aquarius Plus
Bit-90
Bondwell 2
Camputers Lynx
Casio PV-2000
CCE MC-1000
ColecoVision
Dick Smith Super-80 (r/v models)
EACA Colour Genie
Excalibur 64
Exidy Sorcerer
Galaksija
Galaksija Plus
Gemini Galaxy
Genius Leader 6000SL
Hanimex Pencil II
Hübler Grafik-MC
Jupiter Ace
LM80C [1]
Lviv/Lvov PK-01
Memotech MTX
MicroBee 128k Standard / Premium / Premium Plus [2]
Micronique Hector 2 HR
Mitsubishi Multi 8
MSX
NABU (CP/M mode) [3]
NEC PC-6001 mkII
NEC PC-8001
Nichibutsu My Vision
Nintendo Gameboy
Philips VG5000
Primo
Robotron KC 85/2-5 and HC 900
Robotron Z 1013 - KRT graphics required
Robotron Z 9001 (KC 85/1, KC 87) - KRT graphics required
SAM Coupe
Samsung SPC-1000
Sega SC-3000
Sega Master System
Sharp X1
Sinclair ZX Spectrum
Sinclair ZX81 16K (+ Chroma version in colour with UDG characters [4], + UDG4Zxpand version [5])
Sony SMC-777 and SMC-70
Sord M5
Spectravideo SVI
Tatung Einstein
Tesla Ondra
Tiki-100 (also known as "Kontiki-100")
TIM-011
Vector-06C
VTech Laser 500 / 700
Z80 TV Game System (home-brew)
Notes:
[1] Currently, only firmware versions R3.14 and R3.19 work in the LM80C online emulator, version R1.19 does not work.
[2] The keys R and T hardly react. As a workaround, keep hitting left-right-r/t, and you will soon get a reaction.
[3] On the NABU, joystick control is much more responsive than keyboard control using QAOP.
[4] In the EightyOne emulator, set the "Chr$ Generator" option to "Quicksilva" and the "Colour" option to "Chroma". In the "Control" menu, activate "Enable Quicksilva Character Board". The provided .tzx file can then be loaded, it contains both colour and character definitions.
On the Chroma interface, activate switch 4 (Quicksilva Character Board Emulation). The .col and .chr files in combination with the "Chroma_QSCharacters" .p program file can be put on a Chroma Interface ROM cartridge using the "ZX ROM Cartridge Creator".
[5] UDG4Zxpand Version created by Moggy. Keys are cursor. Real Zeddy/ZXpand users place all files in same folder and set UDG4ZXpand board for 128. SZ-81 emulator (Zxpand version) users, have all files in the ZXpand card folder and set for UDG in the menu. To play the first 25 levels just load the BOXREM1.P file and it will do the rest, to play the remaining levels load the BOXREM2.p file and it will also do what needs to be done. Eighty One users, have all files in the ZXpand card folder as per SZ-81 set for CHR$ 128, no WRX, set for ZXpand use then load and run as as above.
=== Controls ===
Each of the included binary programs has been compiled to use a specific input method, this is achieved by using the compiler switch JOYSTICK_NUMBER.
For the directional controls, either the cursor keys or QAOP are used, or the joystick on systems without a keyboard. For a few systems, I have included versions with different input methods, the file name indicates which control method is used.
On systems with a keyboard, use the "R" key to restart a level, and "T" to move to the next level. On systems without a keyboard, the fire buttons one and two are used for this. Pressing "X" will exit the program (on keyboard-systems only).
=== Compiling ===
The game has been written in C using the z88dk compiler.
Download the latest nightly build from www.z88dk.org and extract it to any location on your computer.
Edit the compile_sokoban_....bat batch file and modify the z88root path (make sure that there is a backslash at the end).
Run the batch file and the compiler will hopefully run without errors and create the compiled program file.
The entire source code is contained in one single file (sokoban.c), the level data is contained in the file levels.h.
Several compiler switches are available, see the comments section at the top of the sokoban.c source file.
By default, all 50 levels will be included in the compiled program. For systems with limited memory, a specific range of levels can be included to make the program fit into memory. There is also a "level picking" option to include only specific levels, e.g. for a system with a small screen where only the smaller levels fit.
=== Thanks ===
Thanks to the z88dk team for creating this wonderful compiler and for their continuous work in order to further improve it.
=== Release Version History ===
2025-08-25:
- New targets supported: Memotech MTX and NABU (CP/M mode)
2025-08-21:
- New targets supported: Excalibur 64 and SAM Coupe
- MSX and Spectravideo SVI: versions with joystick control added
2025-08-12:
- New target supported: Dick Smith Super-80 (r/v models)
2025-08-07:
- Mitsubishi Multi 8: White background colour added to the bricks.
2025-08-04:
- New targets supported:
Sega SC-3000
Tatung Einstein
- White background colour added to the bricks on the following targets:
Amstrad CPC
Lviv/Lvov PK-01 (bricks are red and green because there is no white on that machine)
Micronique Hector 2 HR
NEC PC-8001
Tiki-100
2025-07-30:
- New targets supported:
Bit-90
Camputers Lynx
Hanimex Pencil II
LM80C
MicroBee 128k Standard / Premium / Premium Plus
NEC PC-8001
Sord M5
2025-07-25:
- New target supported: Lviv/Lvov PK-01
2025-07-21:
- New targets supported:
Bondwell 2
Tesla Ondra
Vector-06C
- Amstrad NC-200: keyboard input has been improved in z88dk, it is now perfectly responsive
2025-07-16:
- New targets supported:
Amstrad NC-200
Aquarius Plus
NEC PC-6001 mkII
Sharp X1
Tiki-100 (also known as "Kontiki-100")
Z80 TV Game System (home-brew)
2025-06-30:
- UDG4Zxpand Version added, created by Moggy.
2025-06-24:
- Initial release