https://sourceforge.net/projects/SokobanRK/
"Sokoban RK" for various Z80-based Computers
Author: RobertK (RetroBertie@outlook.com)
Version 2025-07-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
Bondwell 2
Casio PV-2000
CCE MC-1000
ColecoVision
EACA Colour Genie
Exidy Sorcerer
Galaksija
Galaksija Plus
Gemini Galaxy
Genius Leader 6000SL
Hübler Grafik-MC
Jupiter Ace
Lviv/Lvov PK-01
Micronique Hector 2 HR
Mitsubishi Multi 8
MSX
NEC PC-6001 mkII
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
Samsung SPC-1000
Sega Master System
Sharp X1
Sinclair ZX Spectrum
Sinclair ZX81 16K (+ Chroma version in colour with UDG characters [1], + UDG4Zxpand version [2])
Sony SMC-777 and SMC-70
SVI
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] 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".
[2] 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-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