News:

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

desolatewinds

This project is so great! Keep up the good work! I'd love to play a full restored version on my SNES! I mean, does it run on hardware?

Fire-WSP

Unfortunately I havent heard from DarkSamus for a very long time.
Without somebody who understands ASM to hack the rom or C to use the available Sourcecode it is not possible to continue the project.
I am not sure how to proceed any further. Many hours haven been invested in that hack aleady. Would be a shame if that was all for nothing :(

Baggins

Isn't the japanese version uncensored? Maybe take the sprites from it?

Fire-WSP

the japanese version is even more censored.
The beta version have some uncut content but you can not just copy and paste that stuff over.
Wall stuff is no problem but the whole sprite stuff is. For the sprites I can not even get the tools in the source working. No clue why.

niuus

Quote from: Fire-WSP on July 22, 2021, 12:26:13 PM
Unfortunately I havent heard from DarkSamus for a very long time.
Without somebody who understands ASM to hack the rom or C to use the available Sourcecode it is not possible to continue the project.
I am not sure how to proceed any further. Many hours haven been invested in that hack aleady. Would be a shame if that was all for nothing :(
I could suggest to maybe ask for a hand in the nesdev forums.

BIGLOU07

Keep hope alive people! Too much good work has been put into this project by some great people to let it go. If you've sent a reply in this thread everyone here needs to reach out to everybody you know in this community. Exhaust all your resources and leave no stone unturned! WE CANNOT LET THE GREAT WORK THAT HAS BEEN DONE HERE GO TO WASTE!!!!

Matheus123

Hey, is my first comment here, anyway, me editing the color palette

I was able to restore the remaining sprites from Hitler's death from the PC version



https://ibb.co/GkjsV6j

SCD

Excellent job, they came out great! :thumbsup:

niuus

Quote from: Matheus123 on November 17, 2021, 07:17:30 PM
Hey, is my first comment here, anyway, me editing the color palette

I was able to restore the remaining sprites from Hitler's death from the PC version



https://ibb.co/GkjsV6j
Nice job!

Matheus123

Hi, after I made all the remaining sprites from Hitler's death, I made the full and uncensored version of Hans Grosse and Dr Schabbs, and adjusted the color palette and restored the pac man ghosts in Wolfenstein 3D from level 10 of chapter 3, but as the Snes version of Wolfenstein 3D is based on the Mac Os and Atari Jaguar version, the ghosts in Mac Os had different colors, so I made them in Mac Os colors.

https://ibb.co/yP1qr3X

It took work, but it was worth it, the next step is to finish DeathKnight, Trans Grosse, and ÜberMutant But for now, I'll take a break

Fire-WSP


Rodimus Primal

I'm eager to see this finished. I love the original PC game but to have one available for the SNES will be a plus too!

Matheus123

After a while changing the color palette of Wolfenstein Bosses, I made the 4th, 5th and 6th Bosses of Wolfenstein 3D in the SNES version
I personally always thought it would make more sense to have Otto giftmacher instead of Trans Grosse, the format of the Boss phase is very similar to the Otto Giftmacher phase.

https://ibb.co/KLyXkt7
https://ibb.co/BVDBzW3
https://ibb.co/Jq7JCg2

kalita-kan

Is there a complete summary of what's still left to be done?

Fire-WSP

Well the biggest problem are still the Sprites.
The Sprites are compressed. Dark Samus made a tool for that long ago but he never shared that with me.
The Sprites GFX are all complete and just wait to be inserted into the game.
We also do have the full sourcecode of the game and in there is a (DOS) Tool to convert the Sprites.
Unfortunately this is the only tool in the bunch that does not work. It works but it oututs the data differently.
What the project needs again is a ASM hacker and/or somebody who is able to compile and make changes the sourcecode.

kalita-kan

Posted earlier

Quote
https://www.dropbox.com/s/v7lmov9gyx0zd31/SpriteAmmo.zip?dl=0

Only the lower part in both binaries are identical. The middel part looks similar but has quite some changes.
The first few lines are totaly different.
That shouldn't be the case since it is the same GFX.

Official tool looks to work correctly but the pointers are completely messed up, hence the crash (Minucce verified this appears to be the case and explained to me the storage format and pointer system).

If you modified SPSCRIPT.TXT, then this is likely why it died. The pointer system is multi-layered and easy to fail if something is added or removed.

I'm assuming you changed all the LBM files to the correct graphics. Use original SPSCRIPT.TXT and run SPRGRAB.EXE. You'll need these 2 output files: SPRSTRUC.C (pointer table) and SPRITES.BIN (sprite data + mode7 pixels).

SPRITES.BIN you insert back into ROM at c30000-c7c7d8. If it's larger than this, you'll have to use expanded rom at d00000 to make it work.

Next problem we discussed together is that you will need a custom tool to inject sprite table SPRSTRUC.C back into the ROM. Which is roughly at CFDAxx - CFDB56 (guard_wlk1) - CFDF8C (end?). It's another annoying compression (rle-zero). This might need relocating also if it goes beyond the limit.

Final problem is that game loads entire sprite table into ram at bootup. So any changes to sprite (width or height) will destroy the entire pointer system. Requires a complete game reboot.

Fire-WSP

So that explains why I am not able to deal with the sprites so far.
"A custom tool to inject sprite table SPRSTRUC.C back into the ROM <<< yeah well such a thing does not exist so far so that is a read block for now.
Yes I was rebuilding all the LBM files.
We do not change the Sprites width or height. They all keep the same sizes, we just make them uncut. So just some pixels are changed.
But if I remember correctly, the final game does have a few more Sprites lined up than the beta roms.

In any case, would you be able and interested to help finish this hack @kalita-kan?

kalita-kan

Interested = Partly.
Able = Hm..?


Noah3D generates 185 sprites; Wolf3D only has 170 sprites.

This should be the correct (..?) script file to use
https://raw.githubusercontent.com/kalita-kan-files/kalita-kan-files/6ee7ce0be28f46274a13040205d085bd1b575c4e/SPSCRIPT.TXT


If you did not add or remove any transparent pixels, then I suppose it should fit perfectly. Otherwise could you upload the newly generated SPRSTRUC.C file? I'd like to see where it diverts from rom table.

Fire-WSP

I will check my files shortly.
"If you did not add or remove any transparent pixels..." <<< well for the uncut hack this is unavoidable. Most of the sprites are taken from the SNES Beta version with blood. Others are edited.
I am sure transparent pixels have been changed.

Since you seem to have checked the Noah3D source pretty close, have you seen the original Wolf3D code in there?
About two years ago a user here contacted me and said that he had reconsructed the Wolf3D source. It is all behind "IDefs".
Unfortunately the guy had disappeared. But it seems it would be possible to rebuild the Wolf Rom.
Not sure how feasable that is.

kalita-kan

Thanks for the PM material! No leaks coming from my side!


With @Minucce's help, we dug through the source a lot more. It appears that iD did not give WT the final source code, as there are missing and changed asm bits from the Wolf3D build that WT RE-disasm'd themselves (lots of comments at times). They hid these comments behind "IDefs". And iD did not give the complete toolset either (other custom source code missing).


We did hunt down some WDC tools that appears to compile the Noah files. Looks like this atm:

echo off

WDC816AS.exe -L test.asm
WDC816AS.exe -L wolfasm.asm
WDC816AS.exe -L struc.asm
WDC816AS.exe -L iosnes.asm
WDC816AS.exe -L newrefa.asm
WDC816AS.exe -L extdata.asm
WDC816AS.exe -L rwall.asm
WDC816AS.exe -L rsprite.asm

WDC816CC -D__ORCAC__ -ML -SO -WL -I include tables.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include sounds.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include wolfio.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include snesmain.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include intermis.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include music.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include intro.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include doors.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include enmove.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include enthink.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include level.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include missiles.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include plmove.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include plstuff.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include plthink.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include pushwall.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include refresh.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include refbsp.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include refspr.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include sight.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include wolfmain.c
WDC816CC -D__ORCAC__ -ML -SO -WL -I include statedef.c

WDCLN.exe -F noah.lnk -Llibcl

MAKEROM.exe MAKEROM.REP

pause


We made a custom makerom.exe to replace the rom(emulator) tool that won't work (needs original eeprom hardware). But compiled build is not same as Noah binary and doesn't run in emulator, with enough unknown code mismatches. We'll keep looking at this approach also.

ORCA/c is not zardoz so we wonder if Burger Becky was cross-compiling on IIgs.


Color Dreams (Wisdom Tree) did make some of their own tools (zeropack, decomp0) so we'll look at using those to expand the rom for easier modification. It's pretty packed tight. If something comes out, naturally I'll ship it to you in private first.