Jump to content
IGNORED

Programming and Altering CV Games


CV Gus

Recommended Posts

I recently checked out CV games at places like Good Deal Games and Team Pixelboy, and once again wondered about maybe learning some CV programming.

 

One of my first projects would be giving Omega Race a visual makeover, simply changing certain colors and redesigning characters to more closely resemble the vector arcade version, as closely as a CV with raster display can manage at least.

 

Can anyone here help me get started? Programming tools for altering ROMs, emulators to play those ROMs on a Windows 8 ASUS, and instructions for doing so, like where the memory locations for (whatever, such as screen color, etc.) are?

 

 

My experience now includes BASIC and manually-done machine language subroutines on Commodore computers, HTML/CSS/Javascript programming along with some PHP and MySQLi plus a bit of Ruby and plenty of Responsive website design. Javascript has included games, including basic action games and Mahjong. So I have had experience with computer programming, if not with Z-80. So this is not a first-time thing for me.

 

Hopefully here is displayed a mushroom I hope to use for an altered CV Centipede, once I figure out the graphics modes involved.

 

Thanks in advance!

post-11032-0-67047500-1471546039_thumb.jpg

Edited by CV Gus
Link to comment
Share on other sites

I can help you with this, pending my very limited time now (with 2 little kids).

 

I had a job for a year where I literally did squat. I used the free time to explore hacking and cracking of ColecoVision ROMs. I got damn good at it, but never got the chance to connect with a collaborator, nor could I document very much. I find the programming languages a bit daunting--would learn best in a classroom--but hacking I can do. A ton of Dan B. and Dr. D's documentation has helped with this, and I was inspired by some of the other folks on this board who do it so well.

 

That said, if anyone can help me find-tune my DK (Coleco) hack, I'd love to finish it.

 

The tools you'll need are YY-CHR, BlueMSX, a Hex Editor, and MS Paint. Also, jotting locations down on a notepad helped a lot. So did graph paper for managing the 2 color per line "tile rule".

Link to comment
Share on other sites

Superb- I managed to get the "Virtual ColecoVision" running on this thing, and did download- and even run!- some homebrew ROMs, which is further than I have ever gotten so far, especially after some mid-2000s efforts.

 

:)

 

Now I need to know where I can download some "regular" CV game ROMS from a SAFE source; the only ones I found always end up with a malware site warning, so I will not use them.

 

 

Aside from simply changing the appearance of Omega Race, I also want to change some appearances in Mr. Do!. Altering the Alphamonsters and Bad Guys will be easy enough once I figure out where the actual numbers are (just like in Moon Patrol), but the real challenge for me will be Mr. Do! himself- I want to superimpose a red sprite on him so he becomes a two-color character. Also, when you earn a bonus life, maybe include a couple of images to echo the arcade version- nothing awesome, just enough to be pleasant.

 

Now I need a safe source of ROM files, and the means to read them. I have found some information on memory locations, so with Virtual ColecoVision running, at last there is at least a start.

 

Thanks!

Edited by CV Gus
  • Like 1
Link to comment
Share on other sites

Heck, I'd be happy if someone just drew different paths on the Mr. Do levels. That would be awesome in itself and close enough to having a set of new levels to keep me busy for awhile.

 

Anyone notice that the paths in the current Mr. Do levels are each a number that matches the level number?

 

E.g.) a figure-8 on level 8. It seems obvious, but I didn't notice that until just last year.

Link to comment
Share on other sites

I downloaded a few programming tools done by Newcoleco, but those will not run on a 64-Bit ASUS. Of course, trying to alter anything with Notepad++ always results in a disaster, so- can anyone direct me to tools that will work? The documentation is excellent, so if Newcoleco has anything I don't know about that will run on this thing, better yet!

 

 

There was one thing that did run- it takes an image and "translates" it into what a CV would do.

 

The folder downloaded is called "Z-80," by the way.

 

 

 

post-11032-0-49438100-1472061871_thumb.jpg

post-11032-0-41103400-1472061886_thumb.png

Link to comment
Share on other sites

My [very minor] hacks:

Enjoy!

Interesting hack- if I ever get the hang of this, I'll probably use your Alphamonster design.

 

How did you get to "see" the program, and how did you find the locations for altering the images? What were they?

 

 

If possible, I want to make the Bad Guys look better, albeit still single-colored (Ladybug, Mario Bros., Cosmic Avenger, etc.); I may change the apple colors for certain screens, for better visibility; maybe add images for the EXTRA MR. DO! screen; and- the tricky part- adding an extra sprite to make Mr. Do! into a two-color character.

 

So far, with a crummy CE 6 netbook's Hex Editor, I sort of made some text changes in Omega Race. It worked about 50% of the time, at least.

Link to comment
Share on other sites

I can help you with this, pending my very limited time now (with 2 little kids).

 

I had a job for a year where I literally did squat. I used the free time to explore hacking and cracking of ColecoVision ROMs. I got damn good at it, but never got the chance to connect with a collaborator, nor could I document very much. I find the programming languages a bit daunting--would learn best in a classroom--but hacking I can do. A ton of Dan B. and Dr. D's documentation has helped with this, and I was inspired by some of the other folks on this board who do it so well.

 

That said, if anyone can help me find-tune my DK (Coleco) hack, I'd love to finish it.

 

The tools you'll need are YY-CHR, BlueMSX, a Hex Editor, and MS Paint. Also, jotting locations down on a notepad helped a lot. So did graph paper for managing the 2 color per line "tile rule".

 

 

How does one read the program? I'm not sure a hex editor will do here for that- is there something that can translate a ROM file into something more understandable?

Link to comment
Share on other sites

How does one read the program? I'm not sure a hex editor will do here for that- is there something that can translate a ROM file into something more understandable?

Gus: see post #3 for all the tools I listed. YY-CHR for Windows is the best and simplest tool I've found for simple sprite and tile editing within a ROM file. It will take a short while for you to get the settings just right so that you can see the monochrome character maps. I don't have my Windows machine right now, but I'll check the settings next time I'm on.

 

You'll use the hex editor to search for color patterns that pertain to a given character (say, Mario or Q*Bert for example). You have to visually inspect the colors in a tile, and reverse-codify the TI graphic color codes (15 of them + transparent, 0 thru F). These are posted all over the place and were on Dr. D's site.

Link to comment
Share on other sites

Gus: see post #3 for all the tools I listed. YY-CHR for Windows is the best and simplest tool I've found for simple sprite and tile editing within a ROM file. It will take a short while for you to get the settings just right so that you can see the monochrome character maps. I don't have my Windows machine right now, but I'll check the settings next time I'm on.

 

You'll use the hex editor to search for color patterns that pertain to a given character (say, Mario or Q*Bert for example). You have to visually inspect the colors in a tile, and reverse-codify the TI graphic color codes (15 of them + transparent, 0 thru F). These are posted all over the place and were on Dr. D's site.

 

Where would I download YY-CHR? and instructions for programming Z-80? Medical emergencies here give me no time for searching.

Link to comment
Share on other sites

I've figured out a few very basic things so far for existing programs. Unfortunately, instructions for actually programming CV games, which would help with alterations, are very hard to come by. The YY-CHR program, when in two-color and vertical modes, has been VERY helpful indeed.

 

This is what I've managed so far:

 

Omega Race alterations were a hassle and a half, until I guessed that the purple areas were not purple objects, but the screen color itself. This narrowed things down enough to guess at the places where the color was stored; there were two places, one for game sessions and one for the game over part. Object alteration is not too difficult, although since everything seems to be 8x8 instead of 16x16 it's unlikely I'll get the player's ship to look like the arcade version. Oh, well. I'm still trying to track down all of the color codes, I have a couple so far, as you can see. I should be able to get a nice vector look for this one. I had wanted to do monochrome, but since both player's ships look alike I'll probably go with color, or maybe monochrome except for the second player's ship.

 

 

Centipede: if you look up at an earlier post here you can see my design for a better-looking mushroom. Sadly, it's now obvious (although I do not know where the memory locations for setting screen modes are, or what the numbers should be; none of the Z-80 literature even mentions this) that the game is in Mode 0. The only way to make it look better is to put it in Mode 2, and that will also mean more numbers will be needed for each character (eight times as many). How to do that is still beyond me, but it's painfully obvious that anyone skilled enough to program this game was also skilled enough to make it look better- why did they then make Joust, Pac Man, and the other games better but not this one?

 

Question: if I do manage to get this all done- and it's almost certain with Omega Race, what you see here is not finished yet since I only caught on yesterday- might they be put on a cartridge as an "improved collection?"

post-11032-0-70287400-1473621339_thumb.png

post-11032-0-06141400-1473621354_thumb.png

post-11032-0-83305500-1473621364_thumb.png

Link to comment
Share on other sites

Latest Omega Race update:

 

Still trying to find the color codes for sprites. Still, it is coming along nicely, and except for the fact that an 8x8 grid makes trying to make the player's ship like the arcade version impractical, I actually like the way it's turning out.

 

How would a CV deal with numbers above 255? I had assumed that one space would be x256 and the next 0-255, or vice-verca, but trying to find "10000" in Centipede this way has not worked. Also, I need to find out more about the VDP- any links?

post-11032-0-83305600-1473800120_thumb.png

post-11032-0-89593100-1473800135_thumb.png

Edited by CV Gus
Link to comment
Share on other sites

I haven't taken any Coleco games apart, but larger numbers can be stored as you suggest, or they could be stored in BCD (in which case "10000" would literally be "0x01 0x00 0x00". When looking for either version, don't forget the Z80 is little endian - that is, the least significant byte is usually stored first (so in hex, 10,000 may well be stored as 0x10 0x27, rather than 0x27 0x10).

 

For raw information on the VDP, Thierry Nouspikel's page will tell you more than you want to know (it's TI centric, so the computer interface will be different, but it's comprehensive on the VDP side) - http://www.unige.ch/medecine/nouspikel/ti99/tms9918a.htm

 

Another great doc is Sean Young's "almost complete description" - http://bifi.msxnet.org/msxnet/tech/tms9918a.txt

  • Like 1
Link to comment
Share on other sites

I haven't taken any Coleco games apart, but larger numbers can be stored as you suggest, or they could be stored in BCD (in which case "10000" would literally be "0x01 0x00 0x00". When looking for either version, don't forget the Z80 is little endian - that is, the least significant byte is usually stored first (so in hex, 10,000 may well be stored as 0x10 0x27, rather than 0x27 0x10).

 

For raw information on the VDP, Thierry Nouspikel's page will tell you more than you want to know (it's TI centric, so the computer interface will be different, but it's comprehensive on the VDP side) - http://www.unige.ch/medecine/nouspikel/ti99/tms9918a.htm

 

Another great doc is Sean Young's "almost complete description" - http://bifi.msxnet.org/msxnet/tech/tms9918a.txt

 

Thanks for the help!

 

Guess part of my problem is that I'm trying to reverse-engineer someone else's work. I knew that Centipede was Mode 0 by changing the hexadecimal number and seeing that EVERYTHING changed; but how would you find "10000" in an existing program? "0x27" does not exist in the program, does it? Or did I just miss that (I'm new to this).

 

It's obvious that altering Mr. Do!, even just making Mr. Do! a two-color character, is not going to be easy. Adding a (red) sprite, and moving it along with the white image, looks to be a real hassle. At the very least I'd like to know where the color codes for the prizes are, since I want to alter them, too.

Link to comment
Share on other sites

Oh, sorry, "0x" is just a prefix that means that the number is in hexadecimal instead of in decimal. So whatever you're using to search, it's most useful if you can search for hex values. :) So you'd search for the two hex digits "10 27" in that order to find 10,000 stored as a hexadecimal value. It's possible, too, that it's never stored that way, It might be implemented using code that loads each byte separately. That would be much harder to find. But, it's also less likely. ;)

 

Reverse-engineering never gets easy, even when you know the machine intimately. It's totally more art than science, since you need to understand someone else's mindset and toolset, often with nothing to start with. But it certainly can be fun. ;) Keep at it!

Link to comment
Share on other sites

One game I really liked when I played it on a Commodore 64 was "Boulder Dash," and was pleased when I could get it for the ColecoVision. I never liked the looks of Rockford, though. Luckily, since all characters are apparently custom characters, I was able to change appearances- mainly color, but a few other details as well.

 

Here are some screenshots. It seems as though a formula is used for some of the colors, based on Rockford's initial colors. This is why the Amoeba screens have different colors. I also gave some shading to the boulders.

post-11032-0-95711400-1474232877_thumb.png

post-11032-0-11314500-1474232889_thumb.png

post-11032-0-28629400-1474232901_thumb.png

post-11032-0-71001900-1474232909_thumb.png

post-11032-0-79101900-1474232919_thumb.png

post-11032-0-07765200-1474232929_thumb.png

  • Like 4
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...