11 March 2016 - Forum Rules

Main Menu

Wolfenstein3D - SNES Uncut hack

Started by Fire-WSP, March 19, 2018, 10:19:14 PM

Previous topic - Next topic


I checked out the patch, the wall textures came out great, you did a great job on them.

I forgot to mention another thing that needs to be restored, one of the treasure items got censored, replace the scepter with the original cross item.

I was reminded that it got censored after checking out the patch.


Thanks :)
Yeah that is on the ToDO lits but it belongs to the Sprites we can not touch yet. Same goes for Music/Sounds btw.
As long as we have no proper tool for that job I try to modify the stuff which is possible without.

What I do not plan in terms of uncut is replacing the current Title music with the Horst Wessel Lied from the PC version.
I think that is not really needed.

March 22, 2018, 10:54:28 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Here is a new version of the patch.
The words "Ammo" and "Health" in the status bar have been restored.

I also looked into the text.
I can change the text but it still creates text formations errors on the Mission Briefing.
Need to find out why.
About the text, has somebody the mission briefing texts from Jaguar version?
Screenshots from the Mission briefing screens are enough.

Also I tried a crude way to copy the uncut sprite data from the beta 2 over to the final version.
Didn't worked but that was expected.


Quote from: Fire-WSP on March 20, 2018, 06:38:59 AM
There is however one problem with the Wall Tiles I saw already.
In the snes game the wall sprites are often mirrored for some reasons I dont know.

It was something that id changed in their engines. I know the Quake engine works that way, pretty sure the DOOM engine has it also, and the SNES/Mac/Jag/3DO Wolf3D is said to use a different BSP format that is closer to the DOOM engine.

The only purpose it serves, that I know of, is that it makes doors automatically mirrored on both sides. Perhaps its true purpose has something to do with speed optimizations, I have no idea.

Hmm, the Jaguar version doesn't have mirrored textures, though.


Quote from: Fire-WSP on March 22, 2018, 07:45:55 AM
About the text, has somebody the mission briefing texts from Jaguar version?
Screenshots from the Mission briefing screens are enough.

Here's screenshots of all the mission briefing screens from the Jaguar port to help you:

Mission 1:

Mission 2:

Mission 3:

Mission 4:

Mission 5:

Mission 6:


very cool, thanks!
Now we have the uncensored text aswell.
I also was able to source the sound clips from the Jaguar version.
Basically we have now all assets together for an proper Uncut hack.

A couple of days ago I was looking into the text changes.
The text is plain text directly visible with a hex editor.
There are also a few control bits.
Probem is, when I changed the text the whole text formatation got messed up.
There is something I haven't seen yet. Maybe somebody could have a look at that.

The offset for the text can be found here aswell
as all other offsets for each sprite, sound or picture.

With the provided offsets I was able to copy a bit GFX over for the brown soldier and got this:

Unfortunately after this it crashed.
With a proper tool or script, a change should be possible.

Since we need technical help here, I also postet in the Help Ads Section but no luck so far :(


You're welcome, I'm glad that I helped you on that.

I made a spritesheet of the PC German Shepard with the frames to replace the rat with to help you:

Another thing that needs to be decensor is Dr. Schabbs's clothes, they're suppose to be cover with blood like in the PC version.

I know how you feel, I have several ads in the Help Wanted Ads section that I'm still waiting for a reply on. It takes time, but someone will reply to your ad soon.


Yeah those are needed. This is not in the Beta versions.
But bloddy Schabbs is. For 98% of the sprites we really just need a way to swap them over from the beta2.
I have checked the rom.
The sprites always start from offset 0x030000 in both versions.
But the lenght of the sprites area is slightly longer for the beta.
So a simple rip of the area from the beta inserted into the final is not working.

Regarding the Sounds. They are not in the beta roms.
That means we would need to convert the material I have from the Jag version
into proper format and needs hacked into the game. I have no technical lead on this.

Since the rats are a SNES unique enemey it would be cool to let it in the game in addition to the dogs.
The rats are actually fit into the Schabbs and √úbermutant levels as sort of experiments.
But for extra content we propably would need extra space.
Also this is not part of a clean Uncut hack which has the priority.
I just hope that a tool here could also open the door for a little modding in general.


Thanks, I'm glad that you like the edited spritesheet that I made. The only thing you need to do is change the colors of its shadow from grey to brown like they did with the other sprites in this port.

Alright, that's good to hear that the bloody clothed Dr. Schabbs sprites are in the beta version.

I like your idea of having both the mutated rat and the German Shepherd be in the same game.

I edited the SNES Hitler sprites to help you:

How are you going to restore his gory death from the PC version, because it's eight frames of animation while his SNES death is three frames of animation.


Here is a excerpt of uncut material from the beta 2 rom.

This is supposed to go straight into the final.
Shitler has just 3 death sprites also in the betas


Quote from: SCD on March 20, 2018, 01:15:20 AM
Switch the music tracks of the first two levels around.

I did a little debugging and found how the maps index which song to play. There's control codes mixed in with the song values that tell the game how to copy the data to RAM (see note below), but it's easy enough to swap songs around.

NOTE: The game uses a compression scheme where the value $00 is the flag-byte and the next byte is how many times to write the value $00 to RAM. The rest of the data stream is written as is.

File Offsets:
$FD7A2 = Song data ptrs
$FE250 = Map Song IDs

Map Song IDs:
|  ROM Data  |  RAM Data  |
|  $CF:E250  |  $7E:8AE3  |
[02] [00 01] = $0002: Map 1-1
[03] [00 01] = $0003: Map 1-2
[05] [00 01] = $0005: Map 1-B
[01] [00 01] = $0001: Map 2-1
[02] [00 01] = $0002: Map 2-2
[03] [00 01] = $0003: Map 2-3
[05] [00 01] = $0005: Map 2-B
[08] [00 01] = $0008: Map 3-1
[01] [00 01] = $0001: Map 3-2
[02] [00 01] = $0002: Map 3-3
[05] [00 01] = $0005: Map 3-B
[09] [00 01] = $0009: Map 3-S
[01] [00 01] = $0001: Map 4-1
[09] [00 03] = $0009: Map 4-2
             = $0000: Map 4-3
[03] [00 01] = $0003: Map 4-4
[05] [00 01] = $0005: Map 4-B
[07] [00 01] = $0007: Map 5-1
[09] [00 01] = $0009: Map 5-2
[0A] [00 01] = $000A: Map 5-3
[08] [00 03] = $0008: Map 5-4
             = $0000: Map 5-5
[05] [00 01] = $0005: Map 5-B
[01] [00 01] = $0001: Map 6-1
[02] [00 01] = $0002: Map 6-2
[07] [00 03] = $0007: Map 6-3
             = $0000: Map 6-4
[0A] [00 01] = $000A: Map 6-5
[05] [00 01] = $0005: Map 6-B
[09] [00 FF] = $0009: Map 6-S

Misc. Screen Song IDS:
$C0/354C [F4 00 00]    PEA $0000  // Title screen (when returning from game over/credits)
$C0/4021 [F4 00 00]    PEA $0000  // Title screen (when returning from game demo)
$C0/4213 [F4 06 00]    PEA $0006  // Mission briefing
$C0/4E0C [F4 04 00]    PEA $0004  // Level complete
$C0/523C [F4 06 00]    PEA $0006  // Final score
$C0/55B1 [F4 0A 00]    PEA $000A  // Credits
$C0/7340 [F4 00 00]    PEA $0000  // Title screen (when booting up)

Song IDs:
$00 = Evil Incarnate
$01 = Funkie Colonel Bill
$02 = Funk You
$03 = Get Them Before They Get You
$04 = Roster
$05 = The Ultimate Challenge
$06 = U R A Hero
$07 = Zero Hour
$08 = The SS Are Gonna Get You
$09 = The Nazi Rap
$0A = Tiptoein' Around
$0B = End of Level (UNUSED)

I might take a look at changing the text later...

I got the text pretty much figured out, just need to write a script to make inserting easier (there's a lot of pointers that need updated).

Added offsets for where the game sets song IDs for misc. screens (such as the title, mission briefing, etc.) and updated the info on how data is decompressed to RAM.


Wow, very cool! Thanks  :thumbsup:
With that we can do already quite a lot.
So my guess about the text was right. Pointers. I never really understood that topic.  :-\

The music part is also very interesting.


Quote from: Fire-WSP on March 26, 2018, 04:03:23 PM
Here is a excerpt of uncut material from the beta 2 rom.

This is supposed to go straight into the final.
Shitler has just 3 death sprites also in the betas
How did you rip these sprites? I thought you can't rip sprites...
Anyway, if you used TileMolester, what settings did you choose?
Welcome to the FF5 Den:


Ripping the sprite is no problem.
This is possible with the phyton script you looked at.
It is just not possible to put the content back in the rom yet.

Edit: Also there is no way to see them in TileMolester clearly.
I know where the GFX is but it is scrambled. All I did was replacing this scrampled line of gfx in the final rom to see if it changes anything in general. And yeah it worked... until it crashed :D


Ahh too bad, I hoped you found a way in  :laugh:

In around 2 weeks, I will have some spare time, so if nobody has done it, I will take your task. For somebody with Python knowledge that should be easy task, but if is not easy, understanding and explaining how it does it will be enough for me to make a tool for you  :thumbsup:
Welcome to the FF5 Den:


I gave the enemies & bosses their correct names in the cast roll.

I'm also fixing up the music track locations as well, I'll be uploading a patch with both of these for you either later today or tommorrow.

I also edit the beta cross sprite to look more like the one from the PC version to help you as well:

Two other things you should change for your hack:

Replace the cheese with the dog food:

Replace the brick wall in the 3D ball with this Hitler portrait from the Jaguar port:


Oh my...
DarkSamus back with his magic!
Damn dude, I swear, you make wonders.
When you hack and debug stuff, things are for sure looking up for completion.



This is too good to be true. More people with knowledge should get involved in this. This is like a nostalgic freight train smashing you right in the head. Looking forward to the final release  :woot!: 


I am happy to see that so many people contributing to this little project.
It looks like we can soon show a proper uncut version and call it a successful community effort.
With the uncut material the game should finally get a better rating :)

@DarkSamus993 very cool stuff.
I would never be able to do that alone.   :thumbsup:
@Squall_FF8 cool, thanks man.
The cast roll names are also with pointer stuff?
Thanks for the cross GFX. Cheese should also be replaced, thats right.
About that Shitler face at the start of the Jaguar version.
I find it really ugly. It was post SNES so I am not sure if this was even planned in the SNES version.
Also I know that this picture does exist also in the PC version as a wall texture.
Really, I don't want this in the patch. I see Wold3D as a comic style game and it works well and is fun.
A real picture of that creature makes it somehow much less fun. The SNES always had a certain style and this picture does not fit.
That is just my opinion. But so or so, this texture is already editable in TileMolester without the need for any special tools.
So everybody can change it in way he likes pretty easy :)


Some of the text don't have the pointer stuff on them, because I gave some of text in the title screen a uppercase letter (Example: normal to Normal) and I didn't encounter any problems.

You're welcome, I'm glad you like the edited sprite.

They changed the food for the mutated rat.

Alright, you don't have to add the portrait from the Jaguar port to this port for the 3D ball, it's no big deal.

Another thing you should do is change the color of Trans Grosse's armored suit from brown to green to make him look more like his PC counterpart:


Altering the palette in this case would be modding the game.
This patch here should aim for uncut only. This pal actually does not censor anything ^^
But here again, with a import tool, you can then include your
desired changes.

March 27, 2018, 03:56:27 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: DarkSamus993 on March 26, 2018, 04:42:44 PM
Added offsets for where the game sets song IDs for misc. screens (such as the title, mission briefing, etc.) and updated the info on how data is decompressed to RAM.

Almost missed that. Very valuable information!