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

Author Topic: Doom 32X: Bugfixes, Changes and Translation  (Read 990 times)

4lorn

  • Full Member
  • ***
  • Posts: 123
    • View Profile
Doom 32X: Bugfixes, Changes and Translation
« on: December 14, 2019, 01:03:47 pm »
Not exactly a long lost jRPG with a cult following and lacking a decent translation for the past 20 years, but found myself revisiting the original and binge watching documentaries on it, so decided to poke at the game.



So that's a progress shot of a WIP portuguese translation of Doom for the 32x. While there are tools to extract, modify and import the levels, I have yet to find one that allows for editing the font, so I've been carefully editing it with Tile Molester (Sonic Molester seems to screw up the palettes). Besides, I believe the font and HUD are not extracted at all in the 32x version.

But I felt like doing more, so the JU version I'm working on right now has been edited to:

-Display the Exit and Poison signs, along with the UAC crates in portuguese;
-Display the HUD in portuguese, which still needs some revision for letter shading;
-Fix the unattainable 100% kills in E1M2 by moving the Imp behind the wall near the exit to the ground below;
-Fix the unattainable 100% kills and secrets in E2M2 by adding a door and sector to a cut off area housing the walled off items and enemies (I also textured the inside of that area, and closed a wall that led to the larger corridor that was yanked off the game);
-Fix the forward facing direction of the rocket sprite.

To do:

-Fix the Doomguy portrait flipping. Unsure how to proceed on this one since I haven't found if this is handled by code or is simply a matter of mirroring the sprite.
-Slightly tweak the HUD to resemble the original font.
-Fix the graphic for the C button option.
-Finish editing the main options.

To do maybe:

-Place the BFG and ammo for it somewhere in the later levels, but haven't decided where (suggestions are welcome). Besides, that's going to expand the rom slightly as adding the door and textures to EM2M did, which seems to have led to some slight corruption (which thankfully was easy to fix).

To do not:

-Restore the cut levels. Saxman already did an excellent job there and that's not what I'm aiming to do here.
« Last Edit: December 29, 2019, 07:12:11 am by 4lorn »

4lorn

  • Full Member
  • ***
  • Posts: 123
    • View Profile
Re: Doom 32X: Bugfixes, Changes and Translation
« Reply #1 on: December 29, 2019, 07:16:48 am »
So, I've edited the topic title to reflect what else I've been doing with the game. I'm not restoring levels, as I've already said but I've been working on a series of changes for the game. Several things were poorly handled during the level conversion made by American McGee, who was also responsible for converting the levels to the Jaguar.

So far, these include:

Fixes (General):

Quote
• Removed all multiplayer and deatmach Things (entities) left in the game to alleviate map memory. Some were not even labelled as multiplayer or deatmatch, so some maps had to be combed over.
• Fixed the forward facing rocket sprite issue.

Fixes (Levels):

Quote
• Level 2 (E1M2): When the level was converted, an Imp was left behind level geometry in the exit area meaning it was impossible to achive 100% kills in higher difficulties.
• Level 4 (E1M4): Two shotgun shells were never given any skill flags, so they never spawned.
• Level 5 (E1M5): There is a pentagram on the level that should act as a teleporter but didn't work. Turns out the teleport function was coded and there was even a destination point, but the destination sector did not have the corresponding tag that linked both teleporter and destination.
• Level 7 (E1M7): Several barrels were not assigned a skill flag and never spawned in the level.
• Level 10 (E2M2): A barrel was lacking a skill flag, so it never appeared.
• Level 10: The alcove in the room with the blue armor had a "BROWN96" texture reference for its door, but that texture does not exist in the game so it reverted to the default, rocky ASH01 texture, at odds with the remaining texures in the level.
• Level 10: On conversion, a secret area with a Chainsaw and some enemies was left behind but got cut off from the rest of the map, which made it impossible to achieve 100% kills and 100% items. The area itself was also untextured and the sector had to be closed to avoid rendering issues. Nothing a door and interior decoration couldn't handle.
• Level 11 (E2M3): The southwestern area with lava, which connects to a staircase leading to the room with the Plasma Gun, had its geometry simplified but the secret tag was removed from the sector making it impossible to get 100% secrets.
• Level 12 (E2M4): The minimap did not show the secret platforms near the exit after they had been activated.
• Level 13 (E2M5): A room not far from the starting area had two adjacent linedefs facing opposite directions between the door and the wall, making them invisible.
• Level 13: There were linedefs which did not produce the doomguy's "ungh" sound when trying to interact with non-interactive things. Turns out they were lacking an impassable definition. This might be a leftover from the original version, as in one case one of these could be passed through to reach a secret later removed from the 32X version.
• Level 14 (E2M6): During conversion, a tunnel was cut off from the game but a box of shells was left floating in the void where the tunnel used to be.
• Level 14: A trap room referenced a non-existing texture, defaulting back to ASH01, which clashed with the metallic look of the level.
• Level 14: A trap room was meant to activate near the exit once the player obtained the yellow skull key in the original. When the map was simplified the skull key (now a yellow card key since skull keys aren't used) was moved but the triggers for the trap were simply deleted and not recreated. This prevented 100% kills and 100% items on some difficulties.
• Level 14: The exit column's texture was terribly offset, meaning that while the linedef was fully functional you'd never see the switch to exit the level.
• Level 15 (E2M7): Considerably reworked in comparison to the original version, it now uses a lot of stone texturing. Perhaps because of this, several walls were left untextured leading the game to apply the default ASH01. As a matter of tidying things up, I've applied that one directly and aligned the textures where there were none.
• Level 15: Two hanging leg decorations had no flags for skill setting, so they were never spawned.
• Secret Level (E1M9): The back of the room after the pentagram where a slew of enemies ambushes you, where a Berserk pack resides, was not showing at all on the minimap.

Changes (Aesthetic):

Quote
• Level 1 (E1M1) and Level 2 (E1M2): Added the missing corpses at the start of the levels. The standard dead player sprite of the original version does not seem to exist at all in the 32x version, so for the player corpse I've used a former human corpse (the standard enemy). These were included for the sake of the minute yet striking visual narrative both levels established in the game. I might look around the game for an unused sprite and remake the dead marine's sprite just to make it closer.
• Level 2: Centered the player's starting position (it was offset a bit to the right in the 32X in comparison to the original).
• Level 10: Added the BFG 9000, as per the Jaguar level.

Translation:

Not terribly important but still underway. Have to study the menu offsets to see how much the options can be moved around.

SCD

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 641
  • SPOOOOON!
    • View Profile
Re: Doom 32X: Bugfixes, Changes and Translation
« Reply #2 on: December 29, 2019, 07:24:42 am »
Any plans on restoring the Cyberdemon and the Spider Mastermind?

4lorn

  • Full Member
  • ***
  • Posts: 123
    • View Profile
Re: Doom 32X: Bugfixes, Changes and Translation
« Reply #3 on: January 06, 2020, 11:32:34 am »
Any plans on restoring the Cyberdemon and the Spider Mastermind?

Short answer: that's incredibly out of my league, unfortunately.

Longer answer: it's possible to place the Cyberdemon in the game. Proof of concept:



Additionally, adjusting his states and abilities can be done with DeHacked, then patch that information into the 32X rom without many issues (DeHacked is primarily rigged for the original Doom and there are pointer mismatches that need to be manually adjusted). The real issues come with how he's placed. As you may have already noticed, the above shots indicate his presence at the expense of replacing an existing enemy. Without the source code and, more damning, not being a programmer myself, it's not something I can do otherwise. I can't even fix the Doomguy's flipping portrait frames :)

A group of fans did manage to include the Spider Mastermind and fix the Spectre's transparency in the Jaguar version though, along with having music during the levels, which is nothing short of spectacular.

Of course, this depends on what you'd be replacing. An example: the game has data for Demons and Specters, but since Specters do not use the transparency effects at all like in the original, any Specter entity is indistinguishable from a regular Demon (map editors will read both Demons and Specters in a 32X map but ingame there's no difference). In theory, one could find the Specter animation offsets and exchange them for the Cyberdemon (I have been somewhat successful doing this with other enemies). Doom has a series of unused sprites, from scenery to items, which could be replaced with the Cyberdemon's frames. The space used seems quite negligible, and there are more than enough unused sprites to go around. Another example is this: I've managed to swamp an unused stalagmite with a dead marine's corpse, making it closer to the original game:



Assuming one can do this by repointing it to the sprites not usually considered as animations, then sure... But it would still require replacing the Specter or something else (such as reworking an unused item into a critter, if possible, which would also require associating more frames and states to it). The game uses Things (entities) for enemies and items (even the explosive barrel is considered an entity) and it would be necessary to create a new one. Also, unlike most other enemies who have two death animations, the Cyberdemon has a single long death animation. So even if possible it's not an ideal solution. I assume that one can very carefully rewire the code so that it overwrites unused Things and makes a new one, though.

But let's not forget he has his own sounds as well and while Saxman's notes point out to their starting location in the ROM, and I've been cataloguing them for the past week, their format eludes me so I'm not sure how they could be properly transfered. The 32X version has around 50 sounds (54 if you count the menu sounds) and repeats two of them: it has 2 virtually identical versions of the shotgun reload sound (the sound you hear on any weapon pickup, and also the sound you hear when going through teleporters), and has 3 virtually identical "ungh" sounds (when the Doomguy tries to interact with something or falls down).

It's even got a punching sound which I don't think it's used. It might be possible to simply repoint it.

If anyone cares to look into it, here's an example sound file extracted from the ROM. It's the sound for the barrel/rocket explosion. The last 3 bytes might be paddding, and the total file size is roughly half of the PC equivalent. [EDIT] If the original Doom sound .lmp format is anything to go by, bytes 3 and 4 are the Hz and bytes 6 and 7 are the samples.[/EDIT]

Curiously, I just remembered the Cyberdemon's attack is a... Front facing rocket. I wonder if that is the reason why there was a front facing rocket in the ROM first place.
« Last Edit: January 06, 2020, 06:29:51 pm by 4lorn »