ROM Builder: Atari 8-Bit International Karate (System 3, 1986) to Atari Lynx ============================================================================ This program builds a Lynx cartridge image (.lnx) of International Karate from your own copy of the Atari 8-bit game (System 3, 1986). It also works with World Karate Championship (Epyx, 1986), the US release of the game. The program contains the Lynx port and the tools to build it, but no data from the original game: graphics, music and sound effects are read from your file when you run it. Python or other software does not need to be installed. What you need ------------- Your own copy of one of these releases, as a disk image (.atr, .xfd, .dcm or the copy-protected .atx), a program file (.xex), a cassette image (.cas), a cartridge image (.car) or a .zip archive that contains one of them: International Karate (System 3, 1986) - the original boot disk all seven backgrounds - the tape version transferred to a boot disk all seven backgrounds - the single-file disk version (AUTORUN.SYS on an Atari one background DOS 2 disk) or its program file World Karate Championship (Epyx, 1986, US release) - the original disk and disk images of it all seven backgrounds - the 130XE version all seven backgrounds - the cartridge version (128 KB XEGS cartridge) all seven backgrounds - the cassette version one background - program files (.xex) of the game one background The Lynx version runs at the original game speed. A few program files have a shortened sound effect or PAL colours; the builder tells you when it finds one of them. The builder checks every byte it uses and accepts only these releases. Most releases come with their own loader; the builder runs it on a small emulated Atari to get the game into memory. Not supported: early beta versions, damaged files and turbo cassettes. Backgrounds: the game changes its background after every bonus round (in the demo after every fourth fight) - seven locations, from Sydney to Mount Fuji. The disks load them from the disk, the cartridge from the cartridge, and World Karate Championship for the 130XE keeps them in the extra memory. The Lynx version built from these releases changes the background in the same way. Releases with only the first background keep it all the time. How to use it ------------- 1. Start "ROM Builder - Atari 8-Bit International Karate (System 3, 1986) to Atari Lynx v0.9.exe" (or drag your disk image onto it). 2. Click "Select disk image and build ..." and choose your file. 3. Wait a few seconds. The builder converts the game data and compiles the Lynx version. 4. The Lynx file is saved next to your disk image. Under "Detected release" the window shows which release was found and what that means for the Lynx version (backgrounds, and for World Karate Championship also game speed, title line and colours). "Open folder" shows the file: International_Karate_Lynx.lnx International Karate World_Karate_Championship_Lynx.lnx World Karate Championship Play it in a Lynx emulator (for example Felix or Handy) or on a real Lynx with a flash cartridge. The builder checks the result: the message "identical to the reference build" means the ROM is exactly the same as the one the port was tested with. Windows may show "Windows protected your PC" the first time, because the program is not signed. Click "More info" and then "Run anyway". Linux (command line) -------------------- ik-lynx-builder-0.9.pyz is the same builder for Linux on x86-64 and ARM64 (for example a Raspberry Pi with a 64-bit system). It needs Python 3.8 or newer with numpy (Debian, Ubuntu, Raspberry Pi OS: sudo apt install python3-numpy). python3 ik-lynx-builder-0.9.pyz FILE [OUTPUT_DIR] build the Lynx version (default: next to FILE) python3 ik-lynx-builder-0.9.pyz --info FILE only show which release FILE contains python3 ik-lynx-builder-0.9.pyz help After "chmod +x ik-lynx-builder-0.9.pyz" it also runs directly as ./ik-lynx-builder-0.9.pyz. It shows the detected release and what it means for the Lynx version, builds the ROM and checks it against the reference build. Exit status: 0 = built and identical to the reference build, 1 = error, 3 = built, but different from the reference build. Controls -------- D-pad joystick: move and fight, as on the Atari. Each of the 8 directions does something different with and without fire, always relative to the direction your fighter faces. Pulling back blocks when the opponent attacks. A or B fire button; while paused, A switches the edges of the fighters between hard and soft Option 1 start a one-player game (from the demo); with a second Lynx on the ComLynx cable: start a two-player match Option 2 music on/off; while paused: turn the picture round for left-handed play Pause pause (the picture dims); while paused, left/right on the d-pad chooses the mode (see below) and down shows all 16 moves (up: back to the picture) Modes: the pause shows the current mode, and left/right switches between 50 Hz Classic plays like the PAL original (default) 60 Hz Speed the speed of the European version on an NTSC Atari: everything 20 % faster 60 Hz Smooth original speed with two new in-between frames for every step of the fighters: 30 instead of 10 poses per second Two linked Lynx always play in the same mode. Sound: on the Lynx II the music is spread across the stereo field and the hits come from the side of the fighter. The Lynx I plays mono. The backgrounds are alive: rippling water, drifting clouds, a shimmering sun, window lights, and now and then a sailboat, a helicopter, a ferry, traffic on the Harbour Bridge or a caravan. A new location fades in after every bonus round. Move overview: down on the d-pad in the pause shows, for every direction of the d-pad, the pose of the move it starts - on the left without fire, on the right with fire, for a fighter facing right. Left-handed play: Option 2 in the pause turns the picture and the d-pad round, as in other Lynx games; hold the Lynx the other way up. Option 2 again turns it back. Soft edges: A in the pause switches the outline of the fighters between hard, as before, and soft. Where a fighter stands in front of the floor, each edge pixel blends the fighter's colour with the floor; where the fighters overlap, the edge stays hard. Saved: the high score table, the chosen mode, the orientation and the edge setting are kept in the cartridge EEPROM. This needs a flash cartridge or an emulator with EEPROM support; without one the game starts with an empty table as before. In the Felix emulator 0.6.4 this works only in some starts: a fault in its EEPROM emulation leaves the chip silent in the others. Two players: connect two Lynx with a ComLynx cable, both running the game. Option 1 on either Lynx starts the two-player match of the original. The Lynx that starts it plays White, the other one Red; the second Lynx joins by itself. Fights last 60 seconds and are decided by the tug-of-war bar in the status line, a match is best of three with both bonus rounds in between, and the winner then carries on alone against the computer. Pause on either Lynx pauses both. Without a cable, Option 1 starts a one-player game as before. Both Lynx need a ROM made with the same version of the builder from releases with the same number of backgrounds (seven or one) - otherwise they would play slightly different games, and Option 1 starts a one-player game instead. Made by a human and an AI ------------------------- This port was made with AI, and that is no secret. Claude, Anthropic's AI model, analysed the original program and wrote all the code: the Lynx game, the converter, this builder and its tests. The author had the idea, decided what the game should become, played every build, went through every new frame and said what was wrong, what to try and what to leave out. The project summary (PDF) on the download page tells in detail who did what. Legal ----- International Karate (c) 1986 System 3, World Karate Championship (c) 1986 Epyx. Game design and programming: Archer Maclean. Music: Rob Hubbard. This is an unofficial, non-commercial fan project, not affiliated with or endorsed by the rights holders. Use it only with your own copy of the game and do not share the built .lnx file. The builder contains the cc65 compiler suite (zlib license), the Python runtime (PSF license) and NumPy (BSD license); see LICENSES.txt next to this file.