Doom Comic
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom General > DOOM 32X WAD Converter
Pages (4): « 1 2 [3] 4 »  
Author
All times are GMT. The time now is 15:50. Post New Thread    Post A Reply
Chu
Member


Posts: 479
Registered: 10-02


Flash carts exist for Genesis/32X. I've even modded one to accept data <4MB. If I have time I'll post a video over the next few days with HT32X running on my real hardware.

I was thinking about doing some sort of very limited 32X edition of Hypertension - I know how to build/assemble/etc the cartridges, but yeah, it takes a lot of time. Who would actually want a copy though?

;)

__________________
3DGE source port

Old Post 01-03-10 14:12 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
scalliano
Member


Posts: 627
Registered: 08-09



Chu said:
Who would actually want a copy though?

;)



:D

EDIT: Updated the Jag TC again. MAP13 now includes the BFG and the geometry has been corrected to better reflect the Jaguar version. Intermission music is now also included. Invul haze has been edited slightly to better reflect the Jaguar version and the Chaingun and Plasma rifle now fire at the correct speeds. Also now contains the Jag status bar, thanks to InsanityBringer.

If I need to update this again I'll create a seperate thread, rather than spamming up saxman's all the time ;)

Last edited by scalliano on 01-03-10 at 20:59

Old Post 01-03-10 16:34 #
scalliano is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Kagemaru_H
Banned


Posts: 422
Registered: 09-09



Chu said:
Flash carts exist for Genesis/32X. I've even modded one to accept data > 4MB. If I have time I'll post a video over the next few days with HT32X running on my real hardware.

I was thinking about doing some sort of very limited 32X edition of Hypertension - I know how to build/assemble/etc the cartridges, but yeah, it takes a lot of time. Who would actually want a copy though?

;)



Fixed.

Old Post 01-04-10 05:12 #
Kagemaru_H is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Fisk
Forum Regular


Posts: 821
Registered: 02-07


Here's a quick and dirty conversion project status report. What's happening is, me and a friend are cutting down the Doom2 maps just enough to fit in the 96KB limit for map data, then giving them "rough equivalent" textures. Then, once we have a complete map progression with all the maps optimized for performance in the emulator and they all play through properly, then we'll start importing more Doom2-specific art into the IWAD and retexturing everything a bit closer to their PC counterparts.

http://i47.tinypic.com/2uj6r2e.png
http://i49.tinypic.com/wtjfhh.png
http://i49.tinypic.com/2ryixc3.png
http://i45.tinypic.com/30ueix5.png
(You can see that the 32x doesn't like areas much taller than 512 units...)
http://i49.tinypic.com/155ow37.png

Old Post 01-04-10 05:34 #
Fisk is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Chu
Member


Posts: 479
Registered: 10-02


I'm going to use this thread to post debugging information. I'm hellbent on porting Hypertension to this 32X, and if it means reverse engineering Doom32X, so be it.

Right now I'm debugging the Genesis VDP Registers in realtime, on 32x PAL Doom. This is what I have so far (and indeed proves that the Genesis renders the statusbar separate from the SH2 cores):

*All* of the status bar sprites are generated through the Genesis VDP. All face sprites are 32x32, while the status bar "font" graphics are all 16x16 (M_DOOM is separated into 7 pieces at 32x32). Face sprites seem to alternate between 277/279 (X POS - when the marine is looking around near 100 health). This all seems normal in realtime - I dumped some of the face graphics and it looks like they are interlaced (as in, only dumps half the face). Leads me to believe the face graphics are actually 32x16 (so the VDP laces the other register with the right graphic in realtime) - this reason is because only the top part of the face is being animated, so that extra x16 is the genesis running through each 4bpp graphic (4x4=16),(16x2=32) to render the bottom register. The Genesis laces the lower width part and only changes it in memory as the marine takes damage in the normal Doom increments. This isn't new, as the HEX stuff showed, but instrumental in changing how this works.

When I bring the menu up the debug table changes to reflect the menu graphics.

Looksee:
http://lh5.ggpht.com/_5ZuQ6ZdYe_A/S0GafaqGZkI/AAAAAAAAA64/MdtNGjQH0Uw/s400/sprites.jpg

EDIT: I have successfully patched into the Genesis Yamaha 2612 debugger (again, the 32X does not take care of music - the PWM in the 32x only takes care of sounds). The YM2612 has 6 channels that control the music - I found all of the operators, where the frequencies are in the HEX, Octave, etc etc. I can change the music, which will be later on down the road.

EDIT2: I'm having some trouble deciphering the sound code in the mSH2 but it looks like these values might have something to do with sounds being played:
022EA686:b24b - bsr -22EAB1E

-2243D84:BFFF - bsr -02243d86

Among other things,
I see standard mov.1 r3, (028, r10) which looks like movement code of either the player or monsters, but the main SH2 core looks like it might be the one to play these sounds.

If this thread isn't appropriate for debugging stuff I've created one here that we can discuss more debugging/patching/dis-assembly stuff. I'll post future updates at that link, as I've also linked other 32X enthusiasts to that board - hopefully we can get Hypertension ported in glory, rather than being a Doom32X clone.

__________________
3DGE source port

Last edited by Chu on 01-04-10 at 08:32

Old Post 01-04-10 07:38 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Kaiser
Doom64 Guru


Posts: 2632
Registered: 08-00


I am looking forward to this. Keep it up Chu!

Old Post 01-04-10 11:53 #
Kaiser is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Quasar
Moderator


Posts: 4484
Registered: 08-00


Fisk: while this is off topic, I had to mention that the font in your second picture is exactly the same font used by the GBA game Castlevania: Circle of the Moon. Weird :)

Old Post 01-04-10 19:02 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
AlektorophobiA
Green Marine


Posts: 32
Registered: 12-09


Those "Hypertension32x" and "Doom II 32x" are looking great, keep it working.

Old Post 01-04-10 20:48 #
AlektorophobiA is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
scalliano
Member


Posts: 627
Registered: 08-09



AlektorophobiA said:
Those "Hypertension32x" and "Doom II 32x" are looking great, keep it working.


Seconded! I honestly thought that an anyway accurate 32x port of Doom II was out of the question. Those shots prove otherwise!

Old Post 01-05-10 03:29 #
scalliano is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
saxman
Warming Up


Posts: 16
Registered: 12-09


Here's an image of a Chex Quest port in progress from True Dude over at Sonic Retro:

http://img686.imageshack.us/img686/...exquestlvl1.png



Also, for those interested, I'm working on a DeHackEd patcher for 32X DOOM.

Old Post 01-05-10 05:33 #
saxman is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Chu
Member


Posts: 479
Registered: 10-02


This is great news. I was just looking into the Dehacked stuff - glad you are working on an automated patcher.

I found out a shitload more information on Doom32x, but I need to compile it all in a presentable format. I'm hoping it will fill in answers that we didn't know about the 32X and DOOM32X itself.

__________________
3DGE source port

Old Post 01-05-10 06:35 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
saxman
Warming Up


Posts: 16
Registered: 12-09


http://www.4shared.com/file/1887403...DEH32X_010.html

DOOM 32X DeHackEd Patcher v0.10



It will import thing information from a DEH file. I can't guarantee it works perfectly the way it should as I have given it very limited testing. I know the "width" and "height" may be issues, as well as "speed" on certain things. Help me test it out and let me know what works, what doesn't, and so on. I also included a sample DEH file that modifies a couple enemies.

Old Post 01-05-10 09:46 #
saxman is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Maes
I like big butts!


Posts: 7955
Registered: 07-06


Heh. How about modding/fixing bugs in the 32X Doom engine? :-p

That should be fun, if anything, to discover/deduce what version of the source code it's based on. E.g. does it suffer from the ouchface bug? Ghost monsters? Is it really a source port or is there major rewriting in there etc.

Old Post 01-05-10 15:35 #
Maes is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Kaiser
Doom64 Guru


Posts: 2632
Registered: 08-00



Maes said:
Heh. How about modding/fixing bugs in the 32X Doom engine? :-p

That should be fun, if anything, to discover/deduce what version of the source code it's based on. E.g. does it suffer from the ouchface bug? Ghost monsters? Is it really a source port or is there major rewriting in there etc.



The face code in JaguarDoom is completely redone and from what I am seeing, I would say yes, that bug doesn't exist.
code:
int spclfaceSprite[NUMSPCLFACES] = {0,sbf_facelft,sbf_facergt,sbf_ouch,sbf_gotgat,sbf_mowdown}; boolean doSpclFace; spclface_e spclFaceType; /* */ /* face change */ /* */ if (stbar.godmode) DrawJagobj(faces[GODFACE],FACEX,FACEY); else if (!stbar.health) DrawJagobj(faces[DEADFACE],FACEX,FACEY); else if (doSpclFace) { int base = stbar.health / 20; base = base > 4 ? 4 : base; base = 4 - base; base *= 8; DrawJagobj(faces[base + spclfaceSprite[spclFaceType]],FACEX,FACEY); } else if ((stbar.face != newface) && !gibdraw) { int base = stbar.health/20; base = base > 4 ? 4 : base; base = 4 - base; base *= 8; stbar.face = newface; DrawJagobj (faces[base + newface], FACEX, FACEY); }


Also since 32x is based directly from JaguarDoom, it should also contain the gibface. Also, JaguarDoom has a lot of the existing code re-written from scratch as well as some stuff improved, or rather simplified.

Also Chu, what kind of assembly language are 32x roms usually compiled in? I could maybe disassemble it in IDA Pro..

Last edited by Kaiser on 01-05-10 at 16:16

Old Post 01-05-10 16:10 #
Kaiser is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Chu
Member


Posts: 479
Registered: 10-02


@Kaiser - to assemble 32X roms, these are what's used:
Snasm68k Assembler - regular Motorola 68000 assembly for Sega Genesis
SnasmSH2 Assembler - SuperH(SH2) core assembly for 32X (also works for Sega Saturn)

I'm working on disassembling it in Eclipse but you are welcome to try your hand as well, since you are most likely more knowledgeable than I am with this.

__________________
3DGE source port

Old Post 01-05-10 21:04 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Quasar
Moderator


Posts: 4484
Registered: 08-00


At least a good portion of the source for 32x DOOM is available. Just get the JagDoom source and look for the #if(n)def MARS statements - MARS was the development codename for the 32x project.

Using that as a basis, it should be possible to fill in some of the blanks using a tool such as IDA :)

If 32x Doom has problems with areas of > 512 height, that would suggest that it suffers from a problem related to Moire error, which would probably place it circa Doom 1.2

Old Post 01-05-10 21:04 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Chu
Member


Posts: 479
Registered: 10-02



Quasar said:
At least a good portion of the source for 32x DOOM is available. Just get the JagDoom source and look for the #if(n)def MARS statements - MARS was the development codename for the 32x project.

Using that as a basis, it should be possible to fill in some of the blanks using a tool such as IDA :)

If 32x Doom has problems with areas of > 512 height, that would suggest that it suffers from a problem related to Moire error, which would probably place it circa Doom 1.2


You're right - I'm looking through it and finding MARS stuff. I should have known that, oh well.

Fixing the >512 height is something I'm adamant about doing though.

More 32X specs should be coming later tonight.

__________________
3DGE source port

Old Post 01-05-10 21:09 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Use3D
Forum Legend


Posts: 4364
Registered: 04-02


Maybe while doing this someone can come up with a decent port of Doom for Sega Saturn...unless I have to do it ;)

Old Post 01-06-10 04:38 #
Use3D is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Fisk
Forum Regular


Posts: 821
Registered: 02-07


Out of curiosity, may I ask how one goes about getting maps >15 playable, as in the JAG32X hack by saxman? It would probably help making Doom 2 32x a bit more... Well, faithful. I really hate the idea that I'm having to cut some maps just because I just don't know what value at a particular address in the ROM to change, for example.

Old Post 01-06-10 05:09 #
Fisk is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Nuxius
Forum Regular


Posts: 688
Registered: 02-05



Fisk said:
Out of curiosity, may I ask how one goes about getting maps >15 playable, as in the JAG32X hack by saxman?
Edit from jag32x.32x. ;) You just use the converter to export the wad out of the 32x file and edit it directly, then import it back into jag32x.32x when you're done.

The Doom 2 conversion is looking great so far, let me know if you need any help on getting the maps within the limits.

As far as for what maps to skip, looking at PSX Doom would be a good start. I can tell you from my editing of Ultimate Doom, PSX Doom skips certain maps for a reason. Sure, you could split a map in two parts like GBA Doom 2, but then you're going to have to cut out but yet another map to make room for it. Also 32X Doom's limits are stricter than PSX Doom's, as I am having to edit maps beyond what PSX Doom did to get them not to crash 32X Doom because of seg/visiplane overflows.


Also:
I patched Jag32X Doom
DOWNLOAD (pick one)
http://ul.to/vor6yo
http://www.sendspace.com/file/jxskk3
http://www.speedyshare.com/files/20134118/JAG32X.zip


FIXES:

1)simplifies MAP20 so it can fit into the 32X's memory and thus be playable

2)fixes MAP20's yellow key secret door so it is accessable

3)all of the skull keys in the Jaguar maps are replaced with normal keys, as the skull keys have no icons in the 32X versions status bar when picked up (so you couldn't easily tell which ones you had)

Old Post 01-06-10 06:11 #
Nuxius is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Fisk
Forum Regular


Posts: 821
Registered: 02-07



Nuxius said:
Edit from jag32x.32x. ;) You just use the converter to export the wad out of the 32x file and edit it directly, then import it back into jag32x.32x when you're done.


*facepalm*

Of course. I can't believe I didn't think of that :P


The Doom 2 conversion is looking great so far, let me know if you need any help on getting the maps within the limits.

As far as for what maps to skip, looking at PSX Doom would be a good start. I can tell you from my editing of Ultimate Doom, PSX Doom skips certain maps for a reason. Sure, you could split a map in two parts like GBA Doom 2, but then you're going to have to cut out but yet another map to make room for it. Also 32X Doom's limits are stricter than PSX Doom's, as I am having to edit maps beyond what PSX Doom did to get them not to crash 32X Doom because of seg/visiplane overflows



Of course. Anyone willing to contribute is absolutely welcome. AIM, MSN, YIM, PM, or whatever in my direction, if you'd please, while in the mean time I PM you with a current build of the ROM.

EDIT: Additional screenshots from Doom2 32x:

http://i45.tinypic.com/34ya68z.png
The upper-left (Tricks and Traps) was taken on the old NTSC ROM base; the rest were taken after the move to the JAG32X EU ROM.

Last edited by Fisk on 01-06-10 at 07:45

Old Post 01-06-10 06:32 #
Fisk is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
saxman
Warming Up


Posts: 16
Registered: 12-09


This is unrelated to my utility, but I thought this was interesting:

http://www.4shared.com/file/1895251...D32X_music.html

Just a little experiment with music. Each level is given it's own song. The reason for this is I discovered some unused tracks in the ROM.

Level 10 -- Title
Level 11 -- Victory
Level 12 -- Intermission (version 1)
Level 13 -- Intermission (version 2)

The two intermission tunes get layered together in the game. Level 14 does that.



Also, the playlist found in the ROM has 21 entries (excluding the zero entry which is there only because level "1" is the first level, not level 0.) If you exclude the two Jag-specific maps and MAP20 which crashes the game, that would make 21 maps. That's me speculating a bit, but it appears the 32X version was going to have 21 levels.



Also, on the note about accessing more levels, if you know how to use a hex editor, change the word at 0x000E74 to anything you'd like. This is certain to work in the EU ROM, but the NTSC ROM may have a different address.

As for indicating what level is the secret level, last level, etc... I'm not sure about it yet. I'm recently finding that for some reason when I try to enter the secret level from level 3, it's taking me to level 4 (is there something about this I'm forgetting???)

Old Post 01-06-10 08:21 #
saxman is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
_bruce_
Forum Regular


Posts: 732
Registered: 11-07


Doom2 32x is looking fine...

Old Post 01-06-10 13:41 #
_bruce_ is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Maes
I like big butts!


Posts: 7955
Registered: 07-06


Music is another good point to investigate: if I'm not wrong the 32X uses the Mega Drive for FM music, and itself only adds 2 digital PWM channels or somesuch. Now, the sound chip used in the Mega Drive is pretty similar in capabilities to the OPL3, so it should be capable of delivering much superior music than the steaming pile of anal crap that's plaguing the 32X.

Is the music stores as MUS/MIDI lumps and are there timbre definitions in a GENMIDI lump, or are they using a completely different system? In the former case, it should be possible to reprogram the timbres using high-quality FM instruments, so that E1M1 doesn't sound like a aquarewave banjo :-p

Old Post 01-06-10 13:48 #
Maes is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Chu
Member


Posts: 479
Registered: 10-02


The music in 32X DOOM is handled by the YM2612, that's OPL2. 32X's PWM takes care of DMA sounds and the Z80 is (we think) for management (disabling it almost removes the music).

They just wanted a quick port of the music, and that's why it sounds like crap. They did it in a literal soundfont-way than most Genesis/32X games did. Then again, can you really see Doom32X having any other OPL2 music common to Genesis games? :p

__________________
3DGE source port

Old Post 01-06-10 13:56 #
Chu is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Maes
I like big butts!


Posts: 7955
Registered: 07-06



Chu said:
The music in 32X DOOM is handled by the YM2612, that's OPL2.


Wait...the OPL2 would be Yamaha YM3812, which has more channels but only two ops/channel. The YM 2612 is actually closer to an OPL3 locked in 4-op mode (6 channels, 4 operators), although I think it lacks some of the base waveforms and so some effects and sounds will sound off.

THe problem with shitty OPL2/3 timbres actually plagues many sound card drivers in the PC World, including DOS-era games and windows drivers. Doom was exceptional in its good use of the OPL2 chip (and AFAIK it doesn't actually have OPL3 timbres, using the OPL3 just adds stereo and double voices). When I first heard E1M1's music in the 32X, it reminded me of how a Yamaha Waveforce sounded through ZDoom using the on-board FM chip used as a MIDI device through windows: very poor, since the GENMIDI timbres weren't used, and instead they had some bland, placeholder "instruments".

That's why I'm curious: if they use a MUS + GENMIDI approach, then fixing GENMIDI (or the equivalent) should fix the music too ;-)

Now if they have the timbres hardcoded somewhere in special playback subroutines....heh...good luck with that.

Old Post 01-06-10 14:15 #
Maes is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Fisk
Forum Regular


Posts: 821
Registered: 02-07


This seems relevant.



I'll be doing this for all the original Doom tracks that appeared in the 32x version along with the Doom2 music for distribution with Doom 2 32x. It's not much, but I agree that the original 32x Doom music is absolutely atrocious and I aim to provide an alternative. Sort of.

Old Post 01-06-10 16:08 #
Fisk is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Maes
I like big butts!


Posts: 7955
Registered: 07-06


I checked out the ROM myself, and saw that there are no IWAD entries for sounds and/or music, so these must reside somewhere else, probably in a 68000 or Z80 chunk of code. If so, finding said code in there would be a good place to start. About changing it...well, that;s another matter altogether.

Edit: nm, I read about the Sh2 code above handling sound. Damn... my ASM sk1llz are too 0ldsk00l for that.

Last edited by Maes on 01-06-10 at 16:57

Old Post 01-06-10 16:48 #
Maes is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
scalliano
Member


Posts: 627
Registered: 08-09


Nice work on the tunage, Fisk! That is so much better than the native 32x music. I always felt that the Mega Drive's wee FM sound chip was capable of a lot more (eg. Thunder Force IV, Gunstar Heroes or any of the Streets of Rage games) and this proves it. Good job!

Old Post 01-07-10 00:31 #
scalliano is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
saxman
Warming Up


Posts: 16
Registered: 12-09


The YM2612 is an OPN2 chip. It's actually two YM2203's in one, with the added ability to replace channel 6 with DAC. It's very closely related to the Yamaha DX/TX family of FM synthesizers. It's on the lower end of the scale in terms of quality and abilities, but it is definitely capable of doing better music than DOOM 32X.

Just download "Sonic Boom" to hear the Duke Nukem 3D theme song playing -- it sounds just like it would on a PC! So it seems to me that they just weren't all that concerned with the quality of the music when they ported DOOM to the 32X.

Old Post 01-07-10 02:40 #
saxman is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 15:50. Post New Thread    Post A Reply
Pages (4): « 1 2 [3] 4 »  
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom General > DOOM 32X WAD Converter

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.

Forums Directory