Welcome, Guest. Please login or register.

Author Topic: AmiWolf AGA - new Wolfenstein 3D Port  (Read 34731 times)

Description:

0 Members and 4 Guests are viewing this topic.

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« on: July 05, 2013, 04:06:59 AM »
Sweet :) Just promise me you'll add dedicated strafe keys so I can use a proper WASD layout...
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #1 on: July 05, 2013, 07:27:15 PM »
Quote from: NovaCoder;739914
It might even have music as well (either MUS format like DOOM or digital like the SFX, not sure yet).
This would be totally sweet, but there's one tricky bit - Wolfenstein uses iD's IMF format, which is not MIDI-based (unlike DOOM's MUS format) and OPL-specific. However, there is an IMF-to-MIDI converter, with source, so if you could work that into the code (and add customizable instrument maps) you could just shoot the resulting data out over the serial port to an MT-32 or something.

Of course, on the big-box Amigas you could add the option of just directly using an OPL2 on a PC sound card over a bridgeboard...
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #2 on: July 08, 2013, 05:57:44 AM »
Ah, snazzy! If you are going to do that, could I pester you to include an option to send the music to a serial-port MIDI dongle (ideally w/custom program# remapping?) It'd be pretty sweet to be able to play Wolf3D with MT-32 music on my A1200...
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #3 on: July 08, 2013, 07:57:04 PM »
Quote from: Xanxi;740236
The original DOS Wolf3D has no option for MT32 or other MIDI sound.
There is only choice between PC Beeper, Adlib, SoundBlaster and another old thingie i can't remember.

Someone would have to write a MT32 music.
Well, if the music's being converted to MIDI anyway, it's just a matter of coming up with a suitable patch map. (Custom patches would be cool too, but even the presets should be usable.)
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #4 on: August 02, 2013, 12:58:03 AM »
Quote from: NovaCoder;743389
The current plan is for this port to have MIDI playback using only the native chipset (asm MUS player from DOOM).
Just curious, if you're already doing MIDI playback would it be much trouble to have an option to send it over the serial port instead? It'd lighten the CPU load and allow for a significant increase in music quality.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #5 on: August 02, 2013, 01:50:43 AM »
Quote from: NovaCoder;743393
Yes it would be less load on the CPU but I've never attempted to do that before, not sure how hard it would be for my brain.   The other problem is I can't test it as I don't have external MIDI hardware, can you do this in WinUAE?

To use the chipset to play MIDI is pretty easy because I can re-use the code I did from BOOM (my DOOM port).
Yeah, you can do it in WinUAE - and I'll definitely volunteer to test on real hardware ;) Though I don't know how easy it would be to adapt your code since I haven't seen it...

Quote from: bbond007;743395
Yes. It looks like you could choose Microsoft GS Wavetable Synth under  UAE config options "IO Ports". Might be able to install a better  software synth. the MS one kind of sounds like a cheap clone of a sound  canvas.
That's because it is a cheap clone of a Sound Canvas - Windows's GM.DLS soundset is cut down from Roland's Virtual Sound Canvas line of softsynths.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #6 on: August 02, 2013, 02:01:16 AM »
Quote from: ChaosLord;743398
Sending data over the serial port is extremely CPU intensive.

How many bits of data would be getting sent per second?
The MIDI transfer rate is 31.25Kbps, 10 bits per byte (7 data bits + 1 status/data flag + start and stop bits.) Each event consists of one to three bytes. The number of events per second depends on the song, but Wolf3D's music isn't terribly intensive.

(Just spitballing, but a song at 120bpm = 2b/s, or a probable maximum of 8 notes/second if it's all 16th notes - unlikely - and no more than eleven channels for OPL2 music if it's in rhythm mode. That would be a total of maybe 528 bytes for an unusually high number of note events, plus maybe some controller changes - so we'll say 640 bytes. That's a measly 6400 bits/second.)

Quote
But it won't lighten the cpu load compared to playing the sound samples with Paula.
Playing samples with Paula is no CPU load; mixing audio (which you'd have to do in order to play MIDI music of any complexity along with sound effects) can be quite a lot, depending on the quality.
« Last Edit: August 02, 2013, 02:06:11 AM by commodorejohn »
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #7 on: August 02, 2013, 02:11:03 AM »
The only MIDI files my A1200 chokes up on are my 200KB Yes/Genesis/ELP MIDIs ;) (And that only on the initial loading/parsing.)
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #8 on: August 02, 2013, 02:56:05 AM »
Quote from: ChaosLord;743403
So if it was 500 bytes per second that means the code will trigger 500 interrupts per second.  Responding to an interrupt is equivalent to a giant pile of cpu instructions plus it thrashes the cache.

The UART in the Amiga is very very primitive with only a 2 byte buffer.  So the CPU must laboriously put 1 byte in, then RTI back to the game, execute some game code then respond to an interrupt to load up the next byte to send.  All the cpu registers have to keep getting saved and restored each time this happens.

If we had a better UART in AGA, one with a 16-byte buffer then using the serial port would be a breeze.
I am aware that the Amiga's serial port is no great shakes - but even 640 interrupts/second (which I think is a generous overestimate for this scenario) isn't that much off the performance of any AGA Amiga. Heck, a stock A500 can manage serial communications faster than MIDI's transfer rate and still have time leftover for other tasks.

Quote
Oic.  You want to use MIDI in order to get a bunch of extra sound channels for free.  In that case your original statement stands: it would lighten the cpu load to use the serial port to send MIDI commands to play >4 channels of muzak and let the game just play the sfx on Paula.  That would be much less cpu power than software mixing 16 channels or whatever.
Right. The overhead of mixing 9-11 channels of music plus four SFX is bound to be more than the overhead of sending even whole lot of MIDI data over the serial port - and for those of us without 060s, that could make a significant difference in framerate, not to mention music quality.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #9 on: August 19, 2013, 01:54:53 AM »
WASD support alone would make this worth the trouble :D Looks silky-smooth - what are you running it on there?
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #10 on: September 09, 2013, 03:21:02 AM »
So I'm running an A1200 with a DKB 1240 (68030 @ 50MHz) and 16MB RAM with ClassicWB, and AmiWolf starts up fine and goes through the menu without issue - but when I start a new game, it displays the "Get Psyched!" loading screen, then goes black and seems to just hang; I left it sit for about fifteen minutes without it getting to the level...any ideas what I should try in order to pin this down? (I can't run it without the accelerator, as that has all the non-chip RAM - and it's not an unstable board anyway...)

Also, why's it run in interlaced mode? Wolfenstein's 320x200 is already supported by the Amiga...
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #11 on: September 12, 2013, 07:09:01 PM »
Quote from: NovaCoder;747324
My best guess is that it's running out of memory, has anyone got it to run with only 16MB?

Did it create an ERROR.txt log in the game folder?
No errorlog, I'm afraid. I tried running it with 32MB as well, same result. (I'd be kind of astonished if a game that required 528KB on DOS required anything like even 16MB on the Amiga - even with the 4MB "MIDI instruments" file...)
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #12 on: September 12, 2013, 09:42:10 PM »
Quote from: paul1981;747768
Are you running any mode promotion software? It's all I can think of at this time - although I haven't tried this port myself yet.
I don't know - does ClassicWB come with any? I've never quite understood how this works...

Quote from: Oldsmobile_Mike;747771
Maybe memory fragmentation?  TLSFMem?
I doubt this is the case, since I've run it multiple times from a fresh boot (on a configuration that takes only a couple MB of the 16MB total fast RAM) and it's done this consistently.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #13 on: September 12, 2013, 10:03:02 PM »
Quote from: paul1981;747773
Have you tried running Snoopdos yet? I'd turn all the monitor switches on and have a good look at the output created.
Are you using a custom rom with custom graphics.library or anything?
I'll see if I can give that a try. No custom ROM or anything fancy, just a vanilla ClassicWB install with FBlit enabled.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup
 

Offline commodorejohn

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 3165
    • Show all replies
    • http://www.commodorejohn.com
Re: AmiWolf AGA - new Wolfenstein 3D Port
« Reply #14 on: September 14, 2013, 08:03:20 AM »
Quote from: NovaCoder;747779
If you are running ClassicWB make sure you disable CyberBugFix, it's a horrible hack which is known to cause issues with my ports.
I'll look into that. Shouldn't need it anyway as it's a plain AGA machine...
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/MT-32/D-10, Oberheim Matrix-6, Yamaha DX7/FB-01, Korg MS-20 Mini, Ensoniq Mirage/SQ-80, Sequential Circuits Prophet-600, Hohner String Performer

"\'Legacy code\' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup