Short: SimCity 2000 retargetable graphics patch Author: tobi@themaster.de (Tobias 'MastaTabs' Seiler) Uploader: polluks+aminet sdf org (Stefan Haubenthal) Type: game/patch Version: 1.5 Requires: The original game Architecture: m68k-amigaos URL: https://codefloe.com/MastaTabs/sc2krtg SimCity 2000 AGA -- patches and tools ===================================== Two independent patches for the Amiga (AGA) release of SimCity 2000, and the sources that produce them. NEITHER PATCH CONTAINS THE GAME. You supply your own original executable; the patchers read it, check it, and write a new file next to it. Your original is never written to. If a check fails, nothing is written at all. SC2000RTG 1.5 -- run it on a graphics card ------------------------------------------ SimCity 2000 AGA renders its map with a software chunky-to-planar conversion straight into the eight bitplane pointers of the screen's BitMap. On a Picasso96 / RTG screen there are no bitplanes, so the render loop scribbles over Picasso96's own structures and takes the machine down. SC2000RTG decides at run time whether the screen is planar or chunky and, on a chunky screen, copies the already-chunky pixels straight into the framebuffer. On a native planar screen the original code path runs untouched, so one binary does both, and it stays V39 (Kickstart 3.0) clean. The game also renders into an off-screen bitmap whenever the target is not the map window -- the preview pictures in the power plant and arcology choosers are drawn that way -- and converts that bitmap to chunky and back around the drawing. On RTG the bitmap is already chunky, so both conversions were wrong and the previews came out as eight narrow slices side by side. The patch gates both conversions on the same planar/chunky test. One thing it fixes has nothing to do with RTG. The port's palette put a near-black dark green at colour 9, where the Mac original has white, and sixteen of the game's own pictures use colour 9 as a white highlight -- the weather icons draw their raindrops and snowflakes with it, and came out speckled with black dots. Colour 9 is now white. It also makes the screenmode requester list 8-bit modes only, lets the screen, window and map view open at the full size of whichever mode you pick instead of a fixed 640x512, and centres the Maxis logo on the startup screen. SC2000RTG [FROM] [TO] [FORCE] FROM original executable (default: SimCity2000) TO patched file to write (default: SimCity2000.RTG) FORCE overwrite TO if it exists Hold either SHIFT key while the game starts to get the screenmode requester. Full details in patcher/README (German: patcher/LiesMich); every changed byte with before/after disassembly is in patcher/PATCHES. SC2000MIDI 1.0 -- MT-32 and General MIDI music ---------------------------------------------- The DOS Special Edition shipped Maxis' own MT-32 arrangements, and the song numbers are identical across the Amiga, Mac and DOS releases. SC2000MIDI is a small background program that plays standard MIDI files through camd.library. SC2000MIDIPATCH puts a hook in the game that tells it which song to start. SC2000MIDIPATCH [FROM] [TO] [FORCE] If you want both patches, run SC2000RTG first and SC2000MIDIPATCH second. Not the other way round: SC2000RTG knows its builds by size and checksum and refuses a file that has already been changed, while SC2000MIDIPATCH searches for an instruction sequence and so is the one that can come afterwards. If SC2000MIDI is not running -- no camd.library, no MIDI driver in DEVS:midi/, or you simply did not start it -- the hook finds no port and the game plays its own Amiga music exactly as before. The fallback costs nothing and cannot fail. SC2000MIDI is configured through the Tooltypes in its icon (MODE, LOCATION, MIDIDIR, DEVICE, CAMDLIB, VOLUME, LOOP, DEBUG); the same names work as shell arguments. SCMIDICTL sends PLAY, STOP and QUIT by hand, for testing. Details in midiplayer/LIESMICH (German). What is in this archive ----------------------- README this file SC2000RTG the RTG patcher SC2000MIDIPATCH the MIDI patcher SC2000MIDI the MIDI player SC2000MIDI.info its icon, carrying the Tooltypes SCMIDICTL send PLAY / STOP / QUIT by hand patcher/ SC2000RTG: source, patch tables, documentation midiplayer/ SC2000MIDI, SCMIDICTL, SC2000MIDIPATCH: sources and the game-side hook in 68k assembly amiga-midi/ scripts that convert the game's own music to MIDI The music itself is not in this archive, and neither is anything else out of the game. Recognised builds ----------------- Four builds are recognised and each gets its own patch set. They are told apart by size and checksum, so a file that is not one of them, or one that has already been patched, is rejected rather than corrupted. 0.031 German (Oct 28 1994), 377400 bytes 0.031 English (Oct 27 1994), 374904 bytes 0.037 German (Jan 28 1995), 378096 bytes -- Maxis' own SimPatch update 0.037 English (Jul 3 2016), 375724 bytes -- the same update applied to the English 0.031; supported, but not tested on hardware Building -------- Both patchers are plain C and build for AmigaOS with vbcc: vc +aos68k -O2 sc2000rtg.c -o SC2000RTG midiplayer/mkmidi.sh builds everything on that side: it assembles the game-side hook, turns it into hookdata.h, and builds SC2000MIDI, SCMIDICTL and SC2000MIDIPATCH. Both patchers also compile for the host with cc, which is how they are tested. Licence and credit ------------------ SimCity 2000 is copyright Maxis. This is an unofficial patch; it ships no part of the game beyond the byte differences it has to apply.