Python 2

Konami (2004-2008)

The Python 2 is a bit of a mystery. On one hand, it is pretty much a Japanese SCPH-50000 Fat PS2 with HDD/Ethernet kit and 40GB HDD in a big metal box. On the other hand, the setup of the system is pretty mysterious because of the protection in use on the unit. It's worth noting that the system can no longer be repaired in any official capacity; you must use bootlegged data to repair your system.

The hardware setup uses a USB IO board called a Python 2 IO. There were at least two versions of the IO board produced, with the newer one using more ICs in place of SMD components. They are otherwise identical. This board is powered over JAMMA. On getting power, it sends an IR blast using LED1 to turn on the PS2. The board is connected over USB and has an extra USB cable connected to ground the unit. AV comes out of the PS2's multi av out configured for RGB in the BIOS settings and goes into the IO board. Optical audio is also connected though it is only used for separating keysounds from BGM for Guitar Freaks and Drummania.

In DDR based setups there may be a memory card context switcher connected (MCIF) but it is unused as the part required to do this was deemed EOL by Sony before the release of SuperNOVA 1.

By default the system mutes AV coming out of the IO until the Konami bootloader is loaded. There is a 5-10 minute failsafe timeout that will unmute AV in case the bootloader fails to load.

A vanilla system outputs a 15kHZ video signal over the IO board. You can enable 31kHZ video by bridging TILT (PIN S) to ground. If this is already hard configured to 31kHZ (as is the case with dedicated setups), you can force 15kHZ mode by flipping DIP 4 on the Python 2 IO.

Python 2 employs the use of Sony hard drive based DNAS. The protection works by encrypting data from the system using the console's system ID, a hard drive ID and an installation ID (created at install time). These 3 components are mixed together and out pops a symmetric encryption key. This key is then used to decrypt an RSA container that has the payload.

The PS2 loads a retail BIOS which checks the HDD for an updated version of the OSD (similar to how the retail HDD kits worked). The "OSD" on the HDD launches dnas_load.kelf (magic gate encrypted binary) which performs the gathering of IDs and creates the de/encryption key. Once that’s done, dnas_load.kelf decrypts and loads the Konami arcade bootloader called KNAC.

The first thing KNAC does is verify the decryption key. If it fails, you get a black screen. After that, the bootloader initializes the Python 2 IO board over USB, reads it's own settings (including locale and MAC address; the bootloader supports both English & Japanese and reads the MAC address from a file instead of detecting it) and attempts to read the black dongle plugged into it. If the IO board or dongle is not plugged in, the bootloader informs the user that there is no security attached and fails to proceed further (of course this behavior can be modified to not care if a dongle was read or not which is how after market repairs are made possible). After the previous phase, the data read from the dongle is used to create an AVS profile. AVS is a virtual arcade machine abstraction library made by Konami. All black Python 2 dongles have the same "password" and that password is used to decrypt the game's MCODE. The game's MCODE is then used to assign a partition name to use on the PS2 PFS file system. These partitions are password protected and this password can be removed with piracy tools, but by doing so, the game will fail to boot because the password is used to authenticate.

Once the full AVS profile is made with the data from the black dongle, the system will check if an optical disc is inserted. If it is, it will check if the MCODE on the optical disc matches that of the profile that it created. If they match, data is copied off the disc to the PS2 HDD and then extracted. Please note you cannot run install discs through the OSD. There is a stub application that immediately exits if run.

If no disc is inserted, a similar operation will occur by first connecting to the network and then attempting to connect to (This is actually a configurable server in one of the KNAC bootloader’s settings file) ; If an update is found, a similar process will happen where the data downloads and is then extracted.

All updates will attempt to replace KNAC, even in the case of a downgrade. After a new KNAC is downloaded and staged, you will be prompted to reboot. Be warned, downgrading KNAC may result in freezing your system leaving you with a brick because some settings and configurations stored are not backward compatible and sanity checking is not performed.

(The system was almost fully designed to allow a user to insert a Python 2 Dongle and install disc and be able to seamlessly transition between versions of games without issue after a 'reinstall', however, due to the preceding issue, this functionality has a high probability of not working.)

When installing an updated KNAC from the staged area, upon completion, you will be prompted to reboot a second time to boot into the new KNAC.

If there are no updates or discs in the install queue, at this point the game will attempt to boot. First it will look for a partition name matching a variant of the MCODE found in it's AVS profile. If it cannot find it, you will get an application is illegal error and loading will halt. If it does find it the binary inside is decrypted using the same keys KNAC is encrypted with and the program will attempt to execute. If the Python 2 IO board is not connected at this point, the system will appear to freeze and constantly poll for the Python 2 IO board over USB. Once it's presence is seen, the application will finally start the game specific startup checks and your game will boot.

Please note Guitar Freaks V-V3 and Drummania V-V3 REQUIRE a white dongle to be present in order to boot otherwise a game specific security error will be thrown when trying to start those games.

🔗Known Games

Dance Dance Revolution

  • Dance Dance Revolution SuperNOVA (GKFDH/GQFDH)
  • Dance Dance Revolution SuperNOVA2 (G_GDJ/GCGDJ)

Drum Mania

  • Drum Mania V
  • Drum Mania V2
  • Drum Mania V3

Guitar Freaks

  • Guitar Freaks V
  • Guitar Freaks V2
  • Guitar Freaks V3

🔗Known Parts

🔗Images and Diagrams

No images currently added.

🔗Repair Manuals

No manuals currently added.

🔗Repair Tips

🔗 Bypass EXT-IO in DDR

Booting without an EXT-IO connected to the IO board will ordinarily cause the game to throw an error at startup. However, the need for the EXT-IO can be bypassed by enabling DIP 2 and wiring the dance pads directly to the JAMMA connector. If you bypass the EXT-IO, you will loose individual sensor recognition but the game will still boot up. You will need to jump pins 1 & 6 on the Stage PCB light connectors if doing this.

🔗 No music in GFDM

Ensure that the optical audio cable is connected between the IO board and the PlayStation 2 console. Guitar Freaks and Drum Mania use the multi-out port for system sounds and effects, but music is sent separately through the optical out.