Thanks for the report. I need to get an ESS card and see what's up.
I actually ordered what I thought was one off eBay but when it arrived it was another YMF card - doh!
Still haven't had a chance to set my retro stuff up after a house move but I'm aiming to be up and running by Christmas. Too much 'real life' stuff going on.
if anyone has other EA games from this period it would be great to test them with SoftMPU. Keep an eye out for buffer overflow as Populous has this problem.
Lakers vs Celtics and the NBA Playoffs behaves exactly the same way as Budokan: when launched as "BBALL.EXE MT32" without having intelligent mode control, it freezes the PC. You can add another game to hall of fame... 😎
"Ita in vita ut in lusu alae pessima iactura arte corrigenda est."
I suspect either an SB Pro II or a "stronger" card is the minimum spec for this version with games that provide both MIDI and speech. On a CT1330A (SB Pro I), the sound effects are slightly distorted and the speech is strange - stutters rapidly, sometimes it sounds like skipping about 200 ms out of 1000 ms data...
Ah well, Admiral Ackbar never sounded more Calamari 😀
Then again, speech is a rare thing in games before 1991.
"Ita in vita ut in lusu alae pessima iactura arte corrigenda est."
Yep, I noticed some distortion on my SB Pro 2 with Lands of Lore. It wasn't as bad as what you describe though.
It looks like the SB-MIDI DSP commands disrupt sample playback somehow. Don't think there's anything that can be done to fix it. Maybe this is part of the reason we don't see more games with SB-MIDI support.
Oh well, at least it doesn't crash 😀 It should still be useful for non-speech games.
After further thought the speech stuttering is probably caused by the same thing that messes up intelligent-mode interrupts. Basically it seems like the SB-MIDI DSP commands either prematurely acknowledge interrupt requests from the DSP or cause some interrupts to not happen in the first place. Intelligent mode interrupts with SB-MIDI work fine on Bochs' SB emulation. Maybe it's an undocumented behaviour of the real SB hardware.
Were it so, I would not be surprised at all. I have been "testing" dozens of Creative cards for years, there really is no perfect all arounder, just better models for specific purposes.
All those quirks...
Did you know that Dune 2 has different memory requirements for 1st gen. and PnP Blasters ? A PnP Blaster can do SB Pro speech + effects + MT32 (or General MIDI) with 617 kb conventional RAM (rare crashes) whereas a 1st gen Blaster like the CT1740 wont cut it all - the game will terminate instantly with a low RAM msg...
For the scope of hardware and games in question, SoftMPU v1.7 already covers the vast majority of games that are sensible to run on 386 with a Pro or Pro 2.
"Ita in vita ut in lusu alae pessima iactura arte corrigenda est."
Star Wars TIE Fighter: Works with the program without issues, crashes when using the Adlib/OPL3 Synthesizer (making a comparison video to put on YouTube)
Wing Commander 2: Speech and music crashes, and terminates unexpectingly
Lemmings 1 and Lemmings 2: Slower than my laptop and big desktop and crashes.
Frederik Pohl's Gateway 1 and Frederik Pohl's Gateway 2: Homeworld: Run great, doesn't crash
Police Quest 1: VGA, 2, and 3 run tremendously without crashing (PQ1 is slow when using the MT-32 Synthesizer)
DOOM: Works without a problem, but crashes when using the Sound Blaster/Adlib Synthesizer
Earl Weaver's Baseball 2: Crashes and slows down.
Games tested with Microsoft EMM 4.46 (optimized memory, 610KB conventional memory free):
All of the games listed above using either the Roland MT-32 Synthesizer (with SoftMPU v1.7 loaded during system startup) or not listed works and never crashes, hell, they start faster and run pretty fast.
For those who are using QEMM 7.03 and higher, Wing Commander and others would have sound issues in both speech and music and will crash; and will tell you to restart or terminate the game.
Just tried Wing Commander II under QEMM 7.03 and it worked fine here (Speech and Midi using SoftMPU on an ESS 1868). Maybe your QEMM config is a bit too aggressive. I just have DEVICE=QEMM386.SYS RAM and nothing else.
There seems to be missing music in Frederik Pohl's Gateway using the Roland MT-32 at the beginning.
1First music that plays: Prospector Theme Part 1 2Second music that should play: Random theme 3Third music that should play: Prospector Theme Part 2
When I play the game using the Sound Blaster OPL3 chipset, all of the music plays perfectly.
For the Roland MT-32, I have to press Master Volume and Rhythm to reset all instruments, and song #2 plays after typing in music off then music on, not #3 though.
Not sure if it's a bug or if my sound card hates me. Does anyone else have this issue?
1A10 v1.5 --> works with any IRQ (2, 5, 7, 9) 2Earl Weaver's Baseball II --> works with any IRQ (2, 5, 7, 9) 3Frederik Pohl's Gateway --> works with any IRQ (2, 5, 7, 9) missing music: requires a 100% compatible Roland MPU-401 card 4Gateway II --> works with any IRQ (2, 5, 7, 9) 5LucasArts TIE Fighter --> works with any IRQ (2, 5, 7, 9)
:::Note:::
SoftMPU only works with the following MPU port #s:
1300 2310 3320 4330 <-- default depending on your sound card 5340
OK, got my new MPU-IPC-T up and running and tested a few things out 😎
- In Gateway the second piece of music plays fine with the Roland card, so this is a bug with SoftMPU. The same problem happens with Dosbox too (and of course SoftMPU's high level logic uses the Dosbox code). I will probably raise a bug with the Dosbox devs and see if srecko or anyone else bites 😀
- Confirmed keropi's report of /DELAYSYSEX not working with Roland cards. Need to look into this more, but in general even without SoftMPU I can see that the Roland card generally transmits faster than the soundcard MPU interfaces.
I've also revised the timing logic so that the 'slow' parts of SoftMPU are only active when needed (i.e. when playing a game that needs MPU interrupts, or when /DELAYSYSEX is active). This means that the performance hit for the majority of games should be less noticeable on 386 class machines.
bjt wrote:OK, got my new MPU-IPC-T up and running and tested a few things out :cool: […] Show full quote
OK, got my new MPU-IPC-T up and running and tested a few things out 😎
- In Gateway the second piece of music plays fine with the Roland card, so this is a bug with SoftMPU. The same problem happens with Dosbox too (and of course SoftMPU's high level logic uses the Dosbox code). I will probably raise a bug with the Dosbox devs and see if srecko or anyone else bites 😀
- Confirmed keropi's report of /DELAYSYSEX not working with Roland cards. Need to look into this more, but in general even without SoftMPU I can see that the Roland card generally transmits faster than the soundcard MPU interfaces.
I've also revised the timing logic so that the 'slow' parts of SoftMPU are only active when needed (i.e. when playing a game that needs MPU interrupts, or when /DELAYSYSEX is active). This means that the performance hit for the majority of games should be less noticeable on 386 class machines.
Ah, good to know. Figured it wasn't my sound card, because all of the Gateway II: Homeworld music plays without missing a beat.
Plus, I revised my system's boot up (autoexec.bat) to the following and made a new file to let me choose which game to play (games.bat):
1autoexec.bat 2----------------------------------------------- 3:::Output omitted::: 4@echo off 5echo Y - Play games 6rem calls the games.bat file (if Y is pressed) 7echo N - continue with MS-DOS 8rem if N is pressed (or within 15 seconds), MS-DOS continues 9echo. 10@echo off 11choice /C:YN /T:N,15 "Do you want to play games " 12IF ERRORLEVEL 2 GOTO END 13IF ERRORLEVEL 1 GOTO GAMES 14 15:GAMES 16call games.bat 17rem opens the games.bat file 18 19:END 20 21:::Output Omitted:::
1games.bat 2----------------------------------------------------------------- 3@echo off 4echo Which game do you want to play? 5echo. 6echo A - A10 v1.5 J - Lemmings 2 S - NHL Hockey 97 7echo B - Sid Meier's Civilization K - Lemmings T - Pac-Man 8echo C - Champ Kong L - Mario U - Police Quest: VGA - Adlib 9echo D - DOOM M - Mario Bros. V - Police Quest: VGA - Roland 10echo E - Dark Queen of Krynn N - Monkey Island Adlib W - Police Quest II - Adlib 11echo F - Earl Weaver's Baseball II O - Monkey Island Internal Speaker X - Police Quest II - Roland 12echo G - Galagon (Galaga) P - Monkey Island Roland Y - Police Quest III 13echo H - Frederik Pohl's Gateway Q - Ms. Pac-Man Z - Taco Bell Tasty Temple Challenge 14echo I - Gateway II: Homeworld R - NHL Hockey 95 -------------------------------- 15echo 1 - TIE Fighter 2 - Wing Commander II 0 - Exit 16echo. 17@echo off 18D: 19choice /C:ABCDEFGHIJKLMNOPQRSTUVWXYZ120 /T:0,15 "Which game do you want to play " 20IF ERRORLEVEL 29 GOTO END 21IF ERRORLEVEL 28 GOTO WC2 22IF ERRORLEVEL 27 GOTO TIE 23IF ERRORLEVEL 26 GOTO TEMPLE 24IF ERRORLEVEL 25 GOTO PQ3 25IF ERRORLEVEL 24 GOTO PQ2 26IF ERRORLEVEL 23 GOTO PQ2-A 27IF ERRORLEVEL 22 GOTO PQ 28IF ERRORLEVEL 21 GOTO PQ-A 29IF ERRORLEVEL 20 GOTO PAC-MAN 30IF ERRORLEVEL 19 GOTO NHL97 31IF ERRORLEVEL 18 GOTO NHL95 32IF ERRORLEVEL 17 GOTO MPAC-MAN 33IF ERRORLEVEL 16 GOTO MONKEY-R 34IF ERRORLEVEL 15 GOTO MONKEY-I 35IF ERRORLEVEL 14 GOTO MONKEY-A 36IF ERRORLEVEL 13 GOTO MARIOBRO 37IF ERRORLEVEL 12 GOTO MARIO 38IF ERRORLEVEL 11 GOTO LEMMINGS 39IF ERRORLEVEL 10 GOTO LEMM2 40IF ERRORLEVEL 9 GOTO GATEWAY2 41IF ERRORLEVEL 8 GOTO GATEWAY 42IF ERRORLEVEL 7 GOTO GALAGON 43IF ERRORLEVEL 6 GOTO EWB2 44IF ERRORLEVEL 5 GOTO DQK 45IF ERRORLEVEL 4 GOTO DOOM 46IF ERRORLEVEL 3 GOTO D-KONG 47IF ERRORLEVEL 2 GOTO CIV 48IF ERRORLEVEL 1 GOTO A10 49 50:A10 51cd games 52call a10.bat 53goto end 54 55:civ 56cd games 57call civ.bat 58goto end 59 60:d-kong
…Show last 136 lines
61cd games 62call d-kong.bat 63goto end 64 65:doom 66cd games 67call doom.bat 68goto end 69 70:dqk 71cd games 72call dqk.bat 73goto end 74 75:ewb2 76cd games 77call ewb2.bat 78goto end 79 80:Galagon 81cd games 82call Galagon.bat 83goto end 84 85:gateway 86cd games 87call gateway.bat 88goto end 89 90:gateway2 91cd games 92call gateway2.bat 93goto end 94 95:lemm2 96cd games 97call lemm2.bat 98goto end 99 100:lemmings 101cd games 102call lemmings.bat 103goto end 104 105:Mario 106cd games 107call Mario.bat 108goto end 109 110:mariobro 111cd games 112call mariobro.bat 113goto end 114 115:monkey-a 116cd games 117call monkey-a.bat 118goto end 119 120:monkey-I 121cd games 122call monkey-i.bat 123goto end 124 125:monkey-r 126cd games 127call monkey-r.bat 128goto end 129 130:mpac-man 131cd games 132call mpac-man.bat 133goto end 134 135:nhl95 136cd games 137call nhl95.bat 138goto end 139 140:nhl97 141cd games 142call nhl97.bat 143goto end 144 145:Pac-Man 146cd games 147call pac-man.bat 148goto end 149 150:PQ-A 151cd games 152call pq-a.bat 153goto end 154 155:PQ 156cd games 157call pq.bat 158goto end 159 160:PQ2-A 161cd games 162call pq2-a.bat 163goto end 164 165:PQ2 166cd games 167call pq2.bat 168goto end 169 170:PQ3 171cd games 172call pq3.bat 173goto end 174 175:temple 176cd games 177call temple.bat 178goto end 179 180:TIE 181cd games 182call tie.bat 183goto end 184 185:WC2 186cd games 187call wc2.bat 188goto end 189 190:end 191echo. 192@echo off 193echo Exiting... 194echo. 195@echo off
Sorry for the long list... That's my actual MS-DOS games collection (downloaded and acquired from floppies and CD-ROMs).
All of the goto end in the games.bat file tells the game after I either click exit or hit ALT+X the games quit instead of going to the next one.
Choice MS-DOS Command code:
1choice /C:[choices] /T:[goto choice],X[time in seconds from 1 to infinity] "String of text " 2IF ERRORLEVEL 255 GOTO END 3.......... 4.......... 5.......... 6IF ERRORLEVEL 1 GOTO Label1 7 8:Label1 9[insert commands] 10goto end (mandatory for either games or sets of commands) 11 12:end
:::NOTE::: [choices] range from A-Z, 1-0, and special characters (!@#$%^&*()-_=+[{]};:'",<.>/?\|`~)
:::NOTE 2::: if you're making a games batch file, always add the goto end for each game, otherwise every game would play. Same applies for commands.
Alright. I decided to replace my PCI sound card with an older ISA Sound Card: a Sound Blaster Vibra 16xv PnP ISA CT4170 Sound Card, and the SoftMPU program does work with the system. Doesn't work without it, but TIE Fighter and Indiana Jones and the Fate of Atlantis don't complain if the games operate in either UART or intelligent mode surprisingly.
Tested Sid Meier's Civilization with SBMPU401 program (found on here with the help of Google) <-- without SoftMPU running, and the music works surprisingly, even with Police Quest I: VGA, the game works with the program listed above... I'll be surprised if NHL Hockey 95 would work with both SBMPU401 and SoftMPU running at the same time, or just with the SBMPU401 program.
The SBMPU401 program allows games to play through the external MIDI/Joystick port on a Sound Blaster ISA Card (surprising).
Got Frederik Pohl's Gateway to work with DOSBox officially after applying new lines of code; works fantastically. Now, if only I can build a new version of SoftMPU to do the same as DOSBox... I inserted the codes/commands in the appropriate files:
Is there a way to build the program with Visual C++ 2008 Express Edition, or is that physically impossible?
This will be my second time making a program with patches in the codes. That and I need to fix the keyboard input lockup for the game to work without freezing the computer or locking the keyboard and forcing a system restart.
Edit: I have Microsoft C Compiler 7 for Windows on my Windows 98SE Virtual PC and the one error message went away, now the linker program still gives out the error listed above. Getting close here, and if only I can find a link command that'll work. Might as well install Microsoft C Compiler 7 on a Windows 2000/XP Virtual PC and copy the exact files and folders for the appropriate building method. I'll post back to see whether this will work or not.
Edit 2: Doesn't want to build in Windows XP... gives me the same exact error.
Last edited by bjwil1991 on 2014-01-21, 04:20. Edited 2 times in total.