C64 Mini CJM files Reference

The C64 Mini is a fun and useful machine for those wanting to relive the experience of the Commodore 64. However, the C64 Mini uses emulation to run games. This means it behaves differently than a full-fledged Commodore 64 and, as a result, games designed for the system do not always behave the same way they would when running on original equipment.

The way they found to get around a lot of these issues was the .CJM file. This is a simple text file that, when formatted properly, will tell the Mini how to operate with certain games. 

There is a tool to help you do this here that automates a lot of the process. This site also has pre-configured CJM files to download.

While it is not necessary to write the configuration file yourself, it should be well documented in the event that this tool no longer is available. Let’s start by taking a look at an existing .CJM file.

X:ntsc,accuratedisk,readonly,driveicon
J:1:JU,JD,JL,JR,JF,JF,RS,SP,SP,RS,F1,F7,RS
J:2*:JU,JD,JL,JR,JF,JF,RS,SP,SP,RS,F1,F7,RS
V:1

NOTE: You will need to name the file EXACTLY the same name as the image file. (Ex. Jupiter_Lander.d64 –> Jupiter_Lander.cjm)

X: System options
Each one of these is either on or off. Remove the option to disable. NOTE: These X: values are case sensitive and must be in all lower case.

ntsc: This is the video display type the game requires. Options are: ntsc or pal. Remove to use the default (native) display.
accuratedisk: This turns off the cycle exact floppy emulation in the mini. Use this option if the game hangs or crashes while loading.
Note: Accurate Disk does slow down loading but it does not control the Mini’s fast loader. To disable that, press the third button (C) on the Mini Joystick before loading your ROM or disk image. 
readonly:
Marks the disk image read-only. Required for some disk images and copy protection.
driveicon: Displays a drive icon while the image is being accessed.

J: Joystick Mapping
Each one of these options is required – even if the joystick doesn’t have a button for the function.

Input TypeNumberDefaultUpDownLeftRightFire LeftFire RightTriangle L / XTriangle R / YTriangle R / Shoulder LA/BB/AC / SelectTriangle L / Shoulder RController Brand
JoystickMini in port 22nd is defaultJoy UpJoy DownJoy LeftJoy RightJoy FireJoy FireRun/StopSpaceSpaceRun/StopF1F7Run/Stop 
J:1 JUJDJLJRJFJFRSSPSPRSF1F7RSiNNext
J:2*JUJDJLJRJFJFRSSPSPRSF1F7RSC64 Mini

Key

JUJoystick Up
JDJoystick Down
JLJoystick Left
JRJoystick Right
JFJoystick Fire
F1F1
F2F2
F3F3
F4F4
F5F5
F6F6
F7F7
F8F8
A-ZA-Z
0-90-9
ENReturn
@@
..
//
++
;;
**
CUCursor Up
CDCursor Down
CLCursor Left
CRCursor Right
SLShift Left
SRShift Right
HMHome
DLDelete
CTControl
RERestore
PO£ (pound)
SSShift Lock
AUArrow Up
ALArrow Left
COComma
CMC= key

V: Vertical Video Offset
This is simply a positive or negative integer to move the video up or down.

Examples
This should give you enough info to remap joystick and set system options. 

Example 1: You have a PAL game that is not designed for a joystick but instead uses WASD and the Right Shift for joystick control.

X:pal
J:1*:W,S,A,D,SR,SR,SR,SP,EN,RS,F1,F7,RS

Example 2: You want to turn on the access indicator and map the second joystick button to Space on the second joystick and make it default.

X:driveicon
J:2*:JU,JD,JL,JR,JF,SP,RS,SP,SP,RS,F1,F7,RS

Using The File

Place the file in the same folder as your game. The mini looks for the .CJM file automatically. 

Applying to Multiple Games

You can apply the file to multiple games in a folder by renaming the file to THEC64-default.cjm

This information is found in more detail here under Appendix A.