News:

11 March 2016 - Forum Rules

Main Menu

Ever notice weird things in a ROM?

Started by wogh, March 27, 2016, 08:38:32 AM

Previous topic - Next topic

wogh

Ever discovered weird things in a ROM?

* Why is the music of Knuckles Chaotix so huge?

* Why is there so much redundant data in so many ROMs? Many NES games have multiple copies of uncompressed sprites. Many SNES games have hidden graphics hidden under layers.

tvtoon

I don't know if the Chaotix music is that huge, never bothered to listen that much, but I do know that it is great! :D

People have the bad habit of not cleaning trash, it is bothersome when you need to figure out unallocated space...

I have been discovering many things inside ROMs once in a while, because I got the habit to compare sets for patches and stuff. My most recent one was inside "Elmo in Grouchland (AELP, Game Boy Color)": GIF images after the game code (256KB), with the cast, and a readme telling you that was done within purpose!

Tsukiyomaru0

For the same reasons Undertale and some other PC games have additional data: Originally they may have intended to use them or used them and scrapped after, but believed they would still use by the end of the deadline. Sometimes they just leave there out of laziness or as "easter eggs".

tryphon

I don't know if it's frequent, but Golden Axe III for Megadrive has code in its header.

AWJ

NES games often contain duplicate graphics because of CHR ROM banking limitations.

zhade

Secret of Mana is filled with weirdness, l myself stumbled upon alot REP #20 followed by SEP #20 which basically sets the accumulator size to 16-bit and then set it to 8-bit...  that really doesnt make any sense to me. Other than that, Regrs could probably write a whole book about all the stuff he found in this ROM that defies logic.

RetroRain

Megaman 1 has a ton of data and possibly code that is not used in the actual game.  Just play through the whole game in FCEUX with the code/data logger.  I was surprised at how much wasn't logged.  You can practically wipe out all of that unused data and use that as free space for your hacking.  Not that MM1 had a problem with free space to begin with.  But yeah, all of these weird things in ROMs are very interesting.  I still wonder what all of that unlogged data was for.
My YouTube Channel: RetroRainZX85 - https://www.youtube.com/channel/UCdHK6fSwUlcM-q8_EgZQfdw

KingMike

Quote from: zhade on March 27, 2016, 10:31:22 PM
Secret of Mana is filled with weirdness, l myself stumbled upon alot REP #20 followed by SEP #20 which basically sets the accumulator size to 16-bit and then set it to 8-bit...  that really doesnt make any sense to me. Other than that, Regrs could probably write a whole book about all the stuff he found in this ROM that defies logic.
The one possible reason I can think of is a delay, such as for the multiplication registers.
"My watch says 30 chickens" Google, 2018

fusaru

Sometimes developers left interesting bits of information in there.  E.g. the "scientist" in the home versions of "The Chaos Engine/Soldiers of Fortune" was originally the "preacher" like in the computer versions, but apparently censored later on. Comments in the rom still refer to him by that name.

But when it comes to weird messages in a rom I think this one takes the cake, found in the obscure Famicom adventure/travel game "Super Monkey Daibouken"
http://www.geocities.jp/rinkaku89/yoiko/yoiko5.html
Third second/picture from the top says:
デザイナーなかじま かおる。
1960アイチケン トヨカワ市うまれ.26才。...
おまんこ.なめてぇーよぅ
エッチする女ノ子がほしいチツちゃん、クリちゃん、スキ!スキ!
First two lines are the designer's name, age, birthplace etc.
Third and forth line is obscene language for certain parts of the female body and the stuff he wants to do with them. This obviously doesn't show up in the game.
(MD hacks):
Complete --> see contributions page
Twin Hawk (arcade graphics), Toki

VicVergil

HMFoMT and Zoids DS have a huge half-width font and most of it isn't even used (or usable, I tried making a table). Zoids' one even includes a full 8px width joyou kanji set. Also, in FoMT, out of the 8 horizontal pixels only 7 actually show up in-game.

Summon Night Swordcraft Story 3 having duplicate identical text for the boy and girl protagonists even when it doesn't make sense and the scene is identical with the protagonist never being mentioned.

Lufia GBC had English and German as language options, but rather than having separate compression dictionaries for the text (which is further compressed with another scheme) they share the same one for both languages.

In lots of SNES ROMs, they'd compress lots of stuff but the uncompressed player character sprites are stored in a really inefficient way, with huge black areas on the sides that could easily fit the same sprites one more time.

And then there's the games with lower case characters in the font but most (not all) of the main script is in all caps, like Kid Icarus, Metroid, Lunar 1/2 (full font is only really used in Grandia), Taito's Jetsons, Tecmo Secret of the Stars, the French/German versions of Actraiser 1/2 (which even had working lower case accentuated characters), Ganbare Goemon 1's shitty English version, and so many more...

RyanfaeScotland

Quote from: Tsukiyomaru0 on March 27, 2016, 01:37:24 PM
...Sometimes they just leave there out of laziness or as "easter eggs".

Perhaps I'm just being a grumpy old man but does it bug anyone else when leaving code in place is referred to as laziness? I guess there are instances where it could be but I'd reckon 9 times out of 10 it is more a case of efficiency (faster to comment out code than remove it), safety (less likely to introduce errors by leaving the code in but removing the references to it) and forward planning (I've saw managers ask for a feature to be removed only to later ask for it to be reinstated).

There are arguments against such practice of course (keeping code tidy, clean, clear) but might point isn't that it is a good / bad practice just that blaming it purely on laziness is, well, lazy!  ;)

snarfblam

Just in case anyone hasn't stumbled upon it, just wanna point out that The Cutting Room Floor exists, and is full of things like this.

Rotwang

Quote from: GHANMI on March 28, 2016, 05:03:27 AM
In lots of SNES ROMs, they'd compress lots of stuff but the uncompressed player character sprites are stored in a really inefficient way, with huge black areas on the sides that could easily fit the same sprites one more time.


This is due to the way SNES sprites are drawn. You can set the system to use for example 16x16 pixel sprites, but the character data has to be laid out so that the bottom two 8x8 tiles have to come exactly 16 tiles after the first tile of the sprite. There are other possible sprite dimensions and they all follow a similar restriction. The player sprites are likely uncompressed because the game typically has to swap out that CHR data on every frame of the player's movement and compression would only slow that down. Since stuff like background data only really needs to be loaded once per level, they can afford to compress it.

tryphon

Quote from: RyanfaeScotland on March 28, 2016, 05:43:40 AM
Perhaps I'm just being a grumpy old man but does it bug anyone else when leaving code in place is referred to as laziness? I guess there are instances where it could be but I'd reckon 9 times out of 10 it is more a case of efficiency (faster to comment out code than remove it), safety (less likely to introduce errors by leaving the code in but removing the references to it) and forward planning (I've saw managers ask for a feature to be removed only to later ask for it to be reinstated).

There are arguments against such practice of course (keeping code tidy, clean, clear) but might point isn't that it is a good / bad practice just that blaming it purely on laziness is, well, lazy!  ;)

I'm a grumpy old man too and was always bothered by reading guys who are using huge libraries to colour a pixel claiming that games were poorly coded.

VicVergil

Quote from: tryphon on March 28, 2016, 06:14:29 PM
I'm a grumpy old man too and was always bothered by reading guys who are using huge libraries to colour a pixel claiming that games were poorly coded.

If only they knew how much unnecessary code their libraries have :P
To this day, I can't wrap my head around why Skullgirls needed 1GB just for the 2D sprites. Have the devs never heard of images with indexed colors, or RLE compression? Even someone from an animation background should have at least heard of the concept.

Quote from: snarfblam on March 28, 2016, 05:30:23 PM
Just in case anyone hasn't stumbled upon it, just wanna point out that The Cutting Room Floor exists, and is full of things like this.

But that site is not about game coding weirdness.
You won't find there for example stuff like how 3D tree reflections in some Saturn games (Linkle's Liver Story for example) and the mask salesman's first cutscene in Majora's Mask actually reuse existing models clipping with the ground in creative ways.
The remains of scrapped SRAM features in games which shipped without SRAM.
How SNES games did gradients, Tales of Phantasia's Yume Wo Owaranai, etc..

But some of the content there that somehow qualifies, the atmosphere (someone from Japan posted some interesting info about Okami only to be told his page "sucks" for no reason given, it certainly wasn't the Engrish or lack of content), and the Patreon fundraiser as they have on their pages cheat codes and stuff found by other people for free... ugh.

Rotwang

There's no verification either. Almost everything on TCRF about the unused Industrial Area stage in SNES Final Fight is incorrect.

snarfblam

Quote from: GHANMI on March 28, 2016, 07:16:05 PM
But that site is not about game coding weirdness.

Is that what this topic is about? Thought it was just about general weird things noticed in ROMs.

Quote from: Rotwang on March 28, 2016, 07:49:52 PM
There's no verification either. Almost everything on TCRF about the unused Industrial Area stage in SNES Final Fight is incorrect.

It's a wiki. Go fix it. Or just take it for what it is: a community maintained catalog of unused game content that is neither complete nor perfect.

Anyways, since people were talking about unused assets, hidden messages, extra code, etc. I figured I'd point out a place dedicated to that stuff. Sorry?

RyanfaeScotland

Quote from: snarfblam on March 28, 2016, 09:50:28 PM
Anyways, since people were talking about unused assets, hidden messages, extra code, etc. I figured I'd point out a place dedicated to that stuff. Sorry?

First site I thought of when I saw this topic and I'm sure anyone else who is reading it who hasn't heard of TCRF before will appreciate the recommendation so no need to apologise in my mind.

Revenant

Quote from: Rotwang on March 28, 2016, 07:49:52 PM
There's no verification either. Almost everything on TCRF about the unused Industrial Area stage in SNES Final Fight is incorrect.

Speaking as one of the site's admins, there's plenty of verification. But you can't really expect the relatively small staff to be able to verify every detail of the nearly 8,000 games currently represented on the site. This is the whole purpose of allowing other users to edit articles (or, at the very least, make issues known on an article's talk page instead of just making an offhanded mention somewhere where there's no guarantee that anyone who cares will actually see it).

Trax

I saw lines such as F0 00 (or any other branch opcode) a few times, which do nothing except wasting CPU cycles. My take is that there is some code removed during the port from FDS to NES, for example. But it could be a simple oversight.