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

Author Topic: Doom SNES Music Hacking  (Read 2410 times)

TheLoneSurvivor

  • Jr. Member
  • **
  • Posts: 12
  • back from the dead
    • View Profile
Doom SNES Music Hacking
« on: September 27, 2015, 12:25:41 am »
I wonder if I can manage to hack the music of Doom, or anyone out there can manage to hack Doom's music.
Because I really want to do Doom SNES music hacks, I will share my knowledge that can be of any use for music hacking

Most importantly, The SNES port of Doom appears to use use standard N-SPC, or a slightly modified variant of N-SPC, I say this because of 2 things. 1. The N-SPC Engine in an SPC file always has 20 CD FF as the starting bytes. I checked the SPC files of Doom, and surely enough at offset 0x700 there was 20 CD FF in all of the files.
2. The SPC files play on ANY SPC player, Think about it. If Doom utilized a different music format (Like Wolfenstein 3D for the SNES, which used a different method of using the SPC, thus making SPC dumps unplayable) then it would not play.

Another very important thing. With the block of hex starting at 0x700 (SPC Engine, starts with 20 CD FF) I was tracing pointers after the 20 CD FF, but staying within the same block (it is noticably, but slightly seperated from other data by several FF bytes before and after the block) I got to a few locations. From the locations the pointers got me, I selected a big chunk of hex from the location the pointer got me to, and opened the Doom ROM and searched for that chunk. I found it. Exactly the same. I checked the bytes before and after, and compared with the SPC file and ROM, They matched, but only for several bytes more before not being the same anymore. I am guessing it was one of the pattern data blocks.

I will update this every now and then. Good luck to everyone trying to hack the Doom ROM.
Doom SNES Hacker.

Fellowzdoomer

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Doom SNES Music Hacking
« Reply #1 on: September 27, 2015, 02:17:05 pm »
Neat-o! :-) Besides music, do you know if the level structure is the same as the PC version? It'd be cool if I could hack that.

TheLoneSurvivor

  • Jr. Member
  • **
  • Posts: 12
  • back from the dead
    • View Profile
Re: Doom SNES Music Hacking
« Reply #2 on: September 30, 2015, 06:21:03 pm »
Neat-o! :-) Besides music, do you know if the level structure is the same as the PC version? It'd be cool if I could hack that.

Extremely similar. Only differences are no texture names, (obviously, and I think they are replaced with pointers to the tiles for that texture), no floor/ceiling textures though, and also midtextures are dropped. So basically, you have to remove all mid textures from your maps, and replace the texture names with pointers. Quasar (a doomworld moderator) claims that the PC E1M1 vertices are 90% the same as the SNES one. He says that he can not find REJECT and can't find BLOCKMAP, but the rest are there.
Doom SNES Hacker.

Fellowzdoomer

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Doom SNES Music Hacking
« Reply #3 on: October 02, 2015, 04:27:53 pm »
Extremely similar. Only differences are no texture names, (obviously, and I think they are replaced with pointers to the tiles for that texture), no floor/ceiling textures though, and also midtextures are dropped. So basically, you have to remove all mid textures from your maps, and replace the texture names with pointers. Quasar (a doomworld moderator) claims that the PC E1M1 vertices are 90% the same as the SNES one. He says that he can not find REJECT and can't find BLOCKMAP, but the rest are there.

Yeah Isaw that post. Such a shame nobody can make a level eeditor for it. I have once changed E1M1 to E1M2 (and vice versa) and I think the whole blockmaps and things are just pointers for the maps "namespace".

TheLoneSurvivor

  • Jr. Member
  • **
  • Posts: 12
  • back from the dead
    • View Profile
Re: Doom SNES Music Hacking
« Reply #4 on: October 11, 2015, 03:41:09 pm »
Yeah Isaw that post. Such a shame nobody can make a level eeditor for it. I have once changed E1M1 to E1M2 (and vice versa) and I think the whole blockmaps and things are just pointers for the maps "namespace".

If you know where the level data is then, can you tell me? I am currently figuring out the locations of the equivalents of each lump, but am having some trouble. I have determined so far that the E1M1 vertices start at 18BB38 and end at 18C1C8
Doom SNES Hacker.