Radio F Software Posted March 26, 2010 Share Posted March 26, 2010 (edited) Years and years ago back when I made that Pineapple 2K space invaders hack I started working on this tongue-in-cheek mod of Custer's Revenge for my friends to replace characters and hazards with other stuff. I bowed out of modding 2600 games at the time just because I couldn't figure it out, but I've taken it up again and I realize that editing certain graphics seems to break the game? Namely I began with the smaller things like editing the "MYSTIQUE" text and icons, backdrop, etc - editing any of them breaks the game and it will not emulate. If I undo whatever it is I do and recompile it, it works. I've duplicated the same modifications using 2600gfx and HOM3, 2600gfx will not recompile the edited version(s) and HOM3 will recompile but when I test it with the Stella and Z26 emulators neither one works. In both cases undoing whatever mods I do and restoring it to its original 100% intact version will let the game run. I have also attempted to modify PlayAround's "Westward Ho" version and messing with the graphics yields the same lock-out. I've seen 1 hack of CR (it's posted here on AA) so I know a mod is possible, I'm just having problems getting started. Is there some kind of special bit of code I should know about when editing this game? Something to remove or edit to allow graphical mods? I searched and couldn't find a topic on this. Thanks! :3 (Also I can't seem to find the place in my profile to change my display name. I no longer go by this name and was looking to change it to what I go by now.) edit: The original thread from 2006 where another user reported the same problems - http://www.atariage.com/forums/topic/83876-problem-using-bit-hacker/ and also ATARI TROLL's thread for his hack of CR - http://www.atariage.com/forums/topic/22227-custers-viagra-small-hack-will-take-suggestions/ Update: I have done a bunch of trial-and-error edits against the seemingly random blocks of code (in the image editor at least) at the beginning of the ROM information, and scrambling up the data has an adverse effect on the game upon start-up, but when I scrambled the beginning and then edited out "MYSTIQUE" into a black bar it SAVED the changes and ran the game "normally", albeit with a broken color palette from whatever it was I did. So it looks like somewhere in the beginning of the ROM is either an anti-piracy or string of code to protect intellectual rights or something. If anybody who knows more about Atari 2600 production wants to take a look at it maybe we could figure it out. The top two rows of code seem to govern this block. edit2: guys what is this i dont even --------------------------- For the sake of leaving something possibly worthwhile to future generations of hackers/coders/programmers here's some notations on the Custer's Revenge programming: GRAPHICS 03FD: Calls for the location of the teepee smoke plume. (Value 48 by default) 0429: Color of the teepee. 046E: Color of the indian girl's headband feather. 0472: Color of the cacti hazards and cacti post. 0145: Color of Indian leg overlay. 046A: Color of Custer's hat. 03EC: Color of Mountain formation background 0667: Color of Sky (play) 0071: Color of Sky (startup demo) 06D4: Color of Sky (mode select) 0353: Color of Sky (game over) 0870 & 0874: Color of sky (2 tone death blink, tone 1 is usually the same as "Sky (demo)" and "sky (play)", tone 2 was orange) 0209: Color of clouds 0663: Color of ground (play) 006D: Color of Ground (startup demo) 06D8: Color of Ground (mode select) 0357: Color of Ground (game over) 0205: Color of Arrow hazard 0201: Color of Teepee smoke plume. 0C48 - 0C4F: Teepee smoke plume (it is upside down) 0C40 - 0C47: Teepee (it is upside down) 0C80 - 0C86: "Extra Life" symbol (it is upside down) 0CE1 - 0CE7: BG clouds (note this pattern is mirrored once, then duplicated a second time) 0CE8 - 0CEF: BG mountain formation (note, the display is the same as the clouds) SOUNDS 0E00: "Start up" cowboy jingle with indian drums afterward. 0EC0: Background "drum beat" during play. 0EE4: Taps (the "Death" music). 0F08: "Humping" fanfare. ETC 00DA: Inverting this hex value makes you invincible to arrows. 066B: Changes Custer's starting position Edited April 3, 2010 by Radio F Software Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 26, 2010 Share Posted March 26, 2010 There is a checksum routine near the beginning of the code. Lots of places to disable it though. Try using this in HOM3: address, value 0066 EA 0067 EA That should disable it. Quote Link to comment Share on other sites More sharing options...
Radio F Software Posted March 26, 2010 Author Share Posted March 26, 2010 (edited) There is a checksum routine near the beginning of the code. Lots of places to disable it though. Try using this in HOM3: address, value 0066 EA 0067 EA That should disable it. Haw, I wasn't anywhere close playing with the top two rows. Your code just Chris Brown'd the routine - Thanks! :3 As part of my gratitude here is a hellacious abomination I managed to make by turning a few things on and off. Since I can get cracking on graphics, if anyone knows some pointers on what governs the colors I'd like to check it out. Once I get the colors down all will be well. :3 Seems I've found what part of the code deals with General Custer's sprites (and the overlay "hump" sprite I think). edit: And I need to shut up the cowboy song that plays at the beginning or otherwise change sound effects. I can't find any documentation on this at all. I understand the concepts of tone, pitch, and frequency -- I just cannot find the places in the cartridge that control this or a decompiler/program that specializes in sound editing. hellCOLONthegame.bin Edited March 26, 2010 by Radio F Software Quote Link to comment Share on other sites More sharing options...
retrorussell Posted March 26, 2010 Share Posted March 26, 2010 Looks like the Indian princess got revenge on Custer.. with a strap-on! Quote Link to comment Share on other sites More sharing options...
Radio F Software Posted March 26, 2010 Author Share Posted March 26, 2010 Are there any programming/hacking/composition tools that can either directly edit or support changes to the sound effects or noise of 2600 games? I mean, I know that's a stupid question of course there ARE otherwise they'd all be silent but what I mean is, much like how HOM3 caters to being able to edit graphics well, is there another editor (or normal hex editor with documentation) that aids with modifying sound? I've looked into a few tools like the Sound Kit and such, but it doesn't seem like the right thing that I could use to code something and drop it into an existing game. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted March 27, 2010 Share Posted March 27, 2010 (edited) Distella. Sound effects are created frame-by-frame...and it is completely up to the software regarding when and how values are sent to the audio registers. Reverse-engineering the code is the only way to make new sounds, but you could distort existing sounds if you know where to look. Addresses $xE00 through $xEFF hold some sound data tables in Custer's Revenge, if you just want to pick at them randomly. BTW virtually ALL of the "adult" titles had checksum routines. You can find disassemblies of all of them in the Supercharger thread. Edited March 27, 2010 by Nukey Shay Quote Link to comment Share on other sites More sharing options...
Radio F Software Posted March 27, 2010 Author Share Posted March 27, 2010 (edited) Distella. Sound effects are created frame-by-frame...and it is completely up to the software regarding when and how values are sent to the audio registers. Reverse-engineering the code is the only way to make new sounds, but you could distort existing sounds if you know where to look. Addresses $xE00 through $xEFF hold some sound data tables in Custer's Revenge, if you just want to pick at them randomly. BTW virtually ALL of the "adult" titles had checksum routines. You can find disassemblies of all of them in the Supercharger thread. Thanks Nukey, I found the addresses you mentioned and fooled around a bit but seemed to have completely destroyed the intro tune. Looks like there's 4-bits that govern each note (Frequency, Tone, etc). I've been using Random Terrain's website utilities for batari to experiment with notes and sounds but I'm not sure how to convert the values on the keyboard images into something I can use. http://www.randomterrain.com/atari-2600-memories-batari-basic-music-toy.html This game seems to be coded really strangely, especially in dealing with the colors. The colors that define the indian's graphics are all over the place as is the cactus, the teepee, etc. Haven't found Custer's hat yet, but I've found the rest of his colors. I also have yet to find the colors for the smoke billows, the arrows, and everything in the background. The sky (both shades of it from the play and mode select screens) do not match any colors on the TIA color chart either. edit: Nevermind 06D4 seems to be the sky in mode select (83 is the hex value even though it is slightly off). Edited March 27, 2010 by Radio F Software Quote Link to comment Share on other sites More sharing options...
Radio F Software Posted March 27, 2010 Author Share Posted March 27, 2010 (edited) Via trial and error I've been mapping the colors and graphics for my own records (and making the non-obvious hex locations noted in my first post). If anyone has anything interesting or helpful hex-wise about this game feel free to chime in and I'll edit it into the first post. I have not been able to pinpoint the hex value that changes the elusive "death flash" the sky does while being hit. Yay check first post! I believe that's all of the colors in the game accounted for with the possible exception of text and lives colors. Edited March 27, 2010 by Radio F Software Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.