News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Zombies Ate My Neighbors SNES Red Blood Hack  (Read 3887 times)

velvetelvis

  • Jr. Member
  • **
  • Posts: 1
    • View Profile
Zombies Ate My Neighbors SNES Red Blood Hack
« on: May 26, 2015, 06:54:08 pm »
Hey everyone! I need a little help with a personal project, if anyone would be willing to give me a couple of pointers in the right direction, I'd really appreciate it!

I'm working on a small modification for the game Zombies Ate My Neighbors (SNES). When I was a kid, I used to play this game on the Genesis whenever we'd visit extended family in the summer. I loved it, played through every level with my cousins.

Last week I came across the SNES version at a resale shop, and on a whim I bought it. Now it's generally believed the SNES version is the superior version of the two; the graphics aren't compressed like they are on the GEN, colors are more robust, audio is much fuller, etc etc. BUT one of the first things I noticed upon booting up the game is that the red blood GAME OVER screen that I had become so fond of in the GEN version had been censored and replaced with purple ooze, which, for some reason, is driving me crazy!

GENESIS GAME OVER SCREEN
CENSORED SNES GAME OVER SCREEN

At first I thought it was gonna be as simple as changing the palette, but after replacing the colors using this palette editor, the changes only appear with a portion of the game over screen:



The droplets that successfully changed over 'drip' at a faster speed than the rest of the game over screen, so I'm assuming that they're their own objects and in a separate place entirely from the GAME OVER screen. I've tried replacing every instance of the purple color I can find in the palette editor, but to no avail. The only possibility I can think of is that it's compressed somewhere with the graphics, but to be honest I am a little stumped. Which is what led me here, to this forum. I am looking for help! If anyone would be willing to give me an idea on my next step, I'd greatly appreciate it! :crazy:

DackR

  • Full Member
  • ***
  • Posts: 130
  • Mo~
    • View Profile
    • Hackaday.io Page
Re: Zombies Ate My Neighbors SNES Red Blood Hack
« Reply #1 on: June 09, 2015, 06:34:48 pm »
You might try comparing file differences between the North American and European release ROM files. The North American version uses a purple color for the blood, while the European version uses a lime green color.

I would compare save states to determine which palettes were actually changed.

zstandig

  • Jr. Member
  • **
  • Posts: 87
    • View Profile
Re: Zombies Ate My Neighbors SNES Red Blood Hack
« Reply #2 on: June 10, 2015, 01:19:07 pm »
Thanks for taking this on, the censorship annoys me too.

Erockbrox

  • Jr. Member
  • **
  • Posts: 35
    • View Profile
Re: Zombies Ate My Neighbors SNES Red Blood Hack
« Reply #3 on: June 19, 2015, 01:21:24 am »
I think this is a great idea and would love to see the red blood hack as well. I dont have any advice but best wishes!

DackR

  • Full Member
  • ***
  • Posts: 130
  • Mo~
    • View Profile
    • Hackaday.io Page
Re: Zombies Ate My Neighbors SNES Red Blood Hack
« Reply #4 on: June 22, 2015, 12:41:43 am »
If you haven't seen this, it looks like the palette locations are at least partially documented:
https://code.google.com/p/zamn-editor/wiki/LevelFormat

Some of the level data is compressed and it may include the palette for the ooze?

DackR

  • Full Member
  • ***
  • Posts: 130
  • Mo~
    • View Profile
    • Hackaday.io Page
Re: Zombies Ate My Neighbors SNES Red Blood Hack
« Reply #5 on: March 07, 2016, 08:00:30 pm »
Necro-post!

This has been bugging me for a while, so I decided to finally sit down and figure it out.

We had been unable to determine the location of the palette not because it's compressed, but because it is hard-coded!

The game is literally re-writing the palette to CGRAM a couple times a second. This means that even if you found the palette in a debugger and changed the value in CGRAM, it would stay for a split second and then get changed right back.

Here is the code that handles writing the palette values for the ooze(now blood) into CGRAM:
Code: [Select]
; Compiles with xkas 0.06
; A better fix would be to relocate this code and have it read the palette values from the palette data in ROM.
; Changes ooze to blood... Original values are commented out.
lorom
org $808b89    ;PC $0B89   
lda #$13    ;#$53         
sta $2122   
lda #$00    ;#$59               
sta $2122   
lda #$0D    ;#$8a 
sta $2122   
lda #$00    ;#$34       
sta $2122   
lda #$0A    ;#$26     
sta $2122
lda #$00    ;#$1c
sta $2122

Other than that, the dripping ooze palette is static. Located at: $F1026...

Replace:
D45D5359CF448A34261C

With:
150013000F000C000900

I'll make a patch for this and submit it shortly. Here's a couple screenshots:





Edit:
Hack has been submitted.
http://www.romhacking.net/hacks/2761/
« Last Edit: March 09, 2016, 12:33:59 pm by DackR »