By chance discovered some printf style string formatting in Color A Dinosaur. There's a lot of text in there that is relevant to DOS/PC implementations too, which is kind of interesting because I don't think it got a DOS release? Anyhow, just another one to add to the list of "might have been written in C".

There are some other games which have pieces of random leftover data from the disk (or memory?) in their ROM. I can't name any of the top off my head, but IIRC TCRF should have a few of them (I think one of them had pieces of the game source code). I guess some old tools tried to be clever with optimizations by not clearing unused memory, or only writing disk sectors partially.

From 1989 onwards the PC Engine had a CDROM attachment, and since 650 mb was an absurd amount of space back then, the PCE CD devkit was a expensive combo of a PC9801VX with a 620 mb HDD and a 8mm master tape unit plus the Hu7 system which was a regular PC Engine with a huge hardware CD emulation board connected into it. http://i.imgur.com/pqofNGI.png (edit: video of the Hu7 unit: https://www.youtube.com/watch?v=ge9aFCnx5tw)

the PCE CD devkit was a expensive combo of a PC9801VX with a 620 mb HDD and a 8mm master tape unit plus the Hu7 system which was a regular PC Engine with a huge hardware CD emulation board connected into it.

I guess some old tools tried to be clever with optimizations by not clearing unused memory, or only writing disk sectors partially.

Actually, if I think about an assembler that needs to output to very slow drive (e.g. tape storage), maybe not clearing unused memory could be a huge time saving on iterations, especially early on in a project when a ROM isn't very full.

An optimization like that which makes little sense now might have been essential on the hardware it was originally written for, and could easily have persisted into the next era where it was no longer necessary.

When you create a file and write a single byte to say 1MB point, the stuff between first byte and the last one is filled with whatever was on the sectors on the HDD that the new file got assigned. Windows NT explicitly zero's out new memory and files, but DOS and Win9x do not.

Perhaps the tool that ultimately creates the rom image declares one large chunk of RAM, but never bothers to zero or $FF it.The system RAM on the host computer of course contains data from other programs that were loaded into its RAM previously.The tool creating the rom image goes from bank to bank, and just stops copying early if the source data for that bank does not completely fill it.Ending earlier at the bank of course leaves the previous data there.

When done, the entire chunk of RAM is copied to the rom image file, that is later sent to the EPROM writer or onto a floppy disk.

Otherwise I can't fathom that one would copy raw sectors from a storage disk-- it seems like more effort to read raw sectors than read and write from the filestream.

I definitely remember writing programs in C, compiled with Borland Turbo C++ v3.0, running in x86 real mode under DOS, and allocating memory using malloc (which makes no guarantees about the contents of the memory when allocated, unlike calloc) and finding random crap in the allocated memory blocks.

I thought this was a joke entry (like "Uncyclopedia" does) when I saw it recently, but that seemed out of character for TCRF. Then I opened my hex editor and had a good laugh. Wow, it's real.

I wonder if, for similar reasons to those stated above, this could be an artifact of the dumping process (random chunks of the dumper's harddrive sectors or RAM contents). Who knows what silly copying techniques people used when they first dumped this probably 20 years ago?

Well, I'm not gonna be the one to go to Ebay and play repro-roulette at $100 a cart to get a verified dump. I did ping @JayObernolte on Twitter trying to get some info.

In my opinion, it's a build (by the original producers) that didn't zero the contents of its memories it was using (reusing), and just left whatever contents were there. And copied it in entirety onto the original ROM.

There's no reason to believe it won't play correctly.

_________________nesdoug.com -- blog/tutorial on programming for the NES

Who is online

Users browsing this forum: No registered users and 8 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum