VOGONS


Reply 20 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member

OK so I captured the output from PT4DOS (DOSBox SVN) and the PT2 clone, and I can't hear anything being off in the pitch in the very beginning of "back again.mod":
https://16-bits.org/etc/pt4dos_then_pt2clone.flac (warning: very loud!)

I think you either use an emulator that is not precise for SB16 at 45454.54Hz, or you are hearing an absolutely tiny pitch difference that 99.9% of people won't hear. Feel free to record the output of the emulator you use, as well.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 21 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member
8bitbubsy wrote on 2023-07-10, 13:11:

BTW, comparing to FT2 makes no sense, as FT2 doesn't have the same middle-C tuning as ProTracker. ProTracker is more like A4=~436Hz, while FT2 is closer to 440Hz.

Uhh, good point!

I'll test this out properly later in the week and get back to you. I'll use a known-good reference point, then compare everything else to that. PT 1.2B/2.3D in WinUAE should be definitive (too lazy to wire up my real A500 for recording, and I trust WinUAE is 100% accurate when it comes to pitch).

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 22 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member

Did you listen to the clip, though? It sounds exactly the same as the PT2 clone, and the PT2 clone sounds the same as real PT1.x/2.x on Amiga.
Do note that PT1.x/2.x requires you to set the "DMAWait" value in the SETUP screen to 9999 (max) if you don't use a cycle-accurate A500 emulator configuration.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 23 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member
8bitbubsy wrote on 2023-07-11, 11:40:

Did you listen to the clip, though? It sounds exactly the same as the PT2 clone, and the PT2 clone sounds the same as real PT1.x/2.x on Amiga.

Yep, I've just listened to it now and indeed, it's in perfect tune with your PT2 clone.

It's also in perfect tune with the 'sbpro1' and 'sb2' models in DOSBox Staging; the tuning problem manifests only when 'sb16' is selected. Well, that's my default, so I haven't played with the other SB types until now...

But in DOSBox-X it's in tune with 'sb16' too, which indicates that either Staging or X is wrong 😀 Needs further investigation, and I'll definitely get to the bottom of it, as I don't want our 'sb16' model in Staging to be out of tune (if it's our code at fault and it's not *supposed* to be out of tune a bit compared to the other SB models... I guess that's also a possibility).

Anyway, it seems that your PT4DOS doesn't have tuning problems. The reason I did not want to let it go that easily is to figure out whether PT4DOS is the problem or something in Staging, because if the latter, I need to fix it 😀 A recording of the output with the 'sb16' model is attached anyway, if you're interested.

Apparently all other replayers are out of tune then, because the relative tuning difference is there... So yeah, it was a bit confusing.

8bitbubsy wrote on 2023-07-11, 11:40:

Do note that PT1.x/2.x requires you to set the "DMAWait" value in the SETUP screen to 9999 (max) if you don't use a cycle-accurate A500 emulator configuration.

Interesting, I know nothing about such things as I'm only using the cycle-accurate option 😀

Attachments

  • Filename
    sb16.wav.zip
    File size
    428.03 KiB
    Downloads
    33 downloads
    File license
    Public domain

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 24 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member

Hm yeah, the pitch is some cents low in your recording. I can only assume it's because of the SB16 emulation.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 25 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member

Reporting some actual issues now about the clones 😀


1) Both the PT2 and the FT2 clone have mouse problems in fullscreen mode on my M1 MacBook with Retina screen (3456 × 2234). The coordinates seem to be offset a bit; e.g. if I click on "DISK OP." when in fullscreen, that toggles the scopes, unless I'm clicking on the top ~20% of the button.

So either your programs don't handle high DPI entirely correctly, or this is yet another bug in SDL2. Their high DPI support is still not perfect, we reported quite a few high DPI handling issues to them over the past year, e.g. this is one of the latest ones:
https://github.com/libsdl-org/SDL/issues/7855

Not sure if you're aware of this, but the common theme in these issues is that high DPI handling is inconsistent across platforms. E.g. they fixed the above issue quickly, but without the fix we'd have to resort to some platform specific #ifdefs. So whatever you do to fix it, ideally you want to test fullscreen mode on all platforms.


2) Not a bug, but a usability/documentation issue. I had to spend about 15 minutes figuring out how to configure the PT2 clone via the .ini file, and I'm a coder 😀 So here are some suggestions on how to improve this for regular people as I'm sure it will trip many people up:

  • In README.md, the macOS notes section only says this: "To get the config file to load, protracker.ini has to be in the same directory as the .app (program) itself". No mentioning of where this file can be found. You mention it in the Linux notes section, but I did not even read that first as I'm not using Linux (which is reasonable). So the macOS notes section should have all relevant info in a self-contained manner.
  • Most people (like me) will put the app into /Applications, so you need to spell this out to macOS users because it's highly unusal: you need to put protracker.ini into /Applications if PT2 clone is there. But it would be a lot better to store this in "~/Library/Application Support/PT2 Clone" or something, just like your FT2 clone does (and document it).
  • In the distribution ZIP downloadable from your website, although the .ini file is included, it's not described in the help.txt where to put it. You should simply copy the (improved) OS-specific instructions from the README.md there.
  • Lastly, it would be best to put an actual link to protracker.ini in the README.md as opposed to describing where to find it.

3) Finally, managed to configure 3x scaling in windowed mode because the defaults are tiny on my Retina screen. But it was a bumpy ride because you're parsing *some* ini properties in a case-insensitive manner, but others are case-sensitive. Here's how it went:

  • First I tried "FULLSCREEN=true", that worked.
  • Let's try "PIXELFILTER=linear" next. Okay, that works too.
  • Now let's do "VIDEOSCALE=3x". Hmm, no workie.
  • After much trial and error, I realised the X needs to be uppercase... 3X works, but 3x gets ignored...

So at least lowercase (or uppercase) all input in your config parser, but personally I'd lowercase all property names and values in the ini file itself too. That is just a more standard approach.

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 26 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member

Ok, found the regression and fixed it 😀 Thanks for your assistance on troubleshooting this!

https://github.com/dosbox-staging/dosbox-staging/pull/2676

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 27 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member

The rate is in fact 45454.545454 (repeating), so you should handle the fractional part too.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 28 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member
Rincewind42 wrote on 2023-07-12, 00:20:

1) Both the PT2 and the FT2 clone have mouse problems in fullscreen mode on my M1 MacBook with Retina screen (3456 × 2234). The coordinates seem to be offset a bit; e.g. if I click on "DISK OP." when in fullscreen, that toggles the scopes, unless I'm clicking on the top ~20% of the button.

I've heard another person mention the same, but it works perfectly fine in fullscreen mode (PT2/FT2 clone) on my MacBook Air Retina 13" M1 Late-2020 running latest macOS, and also on my MacBook Pro Retina 13" Early-2013 running macOS Catalina. I tested the very edges of buttons, and the coordinates are perfect. Also tried to stretch the image out in fullscreen mode, still works. Also tried different scaling settings in macOS (larger text/more space). As I don't have the issue myself, I don't know how to start debugging it.

Rincewind42 wrote on 2023-07-12, 00:20:

2) Not a bug, but a usability/documentation issue. I had to spend about 15 minutes figuring out how to configure the PT2 clone via the .ini file, and I'm a coder 😀 So here are some suggestions on how to improve this for regular people as I'm sure it will trip many people up:

Ok. These are hobby projects done by ONE person. If you have the energy to perfectionize your one-man projects, then good for you. This software is also completely free, so if spending 15 minutes configuring it is too much to pay, then all I can say is that my projects feel like a waste of time.

protracker.ini is located next to the .app in the release zip... And I'm perfectly aware that the de-facto standard is to have the config in the folder you mentioned.
The reason I want to have it in the same folder as the .app is because the only way to change the config in the PT2 clone, is to edit protracker.ini. Many people don't even know about that config folder you're talking about, and as such it would be even harder to find it.

Yes, this goes against the ".apps go to the application folder" policy and is impractical in that regard, but this is how it will stay. The program's low 320x256 resolution makes it too messy for having a flexible config screen for editing all of these entries, it's just not worth it. The FT2 clone is following the standards better here.

Rincewind42 wrote on 2023-07-12, 00:20:

3) Finally, managed to configure 3x scaling in windowed mode because the defaults are tiny on my Retina screen. But it was a bumpy ride because you're parsing *some* ini properties in a case-insensitive manner, but others are case-sensitive. Here's how it went:

Yeah, I can fix that. Thanks for mentioning.

What version of the PT2 clone are you using? The latest version defaults to "AUTO", which attempts to set a reasonable upscaling size based on the screen resolution. However, this sometimes result in a lower upscale factor than what is optimal, as it tries to take the dock and stuff into account without knowing its height or if it's present or not. It's a quite naive approach.

Sorry for being grumpy. I just wish I could be completely done with these two projects and move on, but alas... Also, please mention things related to my PT2/FT2 clone in relevant threads next time, or send me PMs. 😀

This thread is about PT4DOS.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 29 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member
8bitbubsy wrote on 2023-07-12, 10:27:

Ok. These are hobby projects done by ONE person. If you have the energy to perfectionize your one-man projects, then good for you. This software is also completely free, so if spending 15 minutes configuring it is too much to pay, then all I can say is that my projects feel like a waste of time.

Oh, I think we have a case of mismatched expectations here. My assumption was that a person who posts an alpha version of his software in a public forum is actively looking for feedback and improvement ideas. Especially if that person seems to be a perfectionist (translating the 68k ASM code of some ancient Amiga tracker into C and x86 ASM is pretty hardcore, and I'm quite happy that someone has finally done it, so congrats again!)

My intention was certainly not to upset you; I was merely giving you detailed, thoughtfully written suggestions I would be very thankful to receive if our roles were reversed. But okay, we're all different, so I will refrain from offering further improvement ideas if that's your wish. It's all good man 😀

Rincewind42 wrote on 2023-07-12, 00:20:

What version of the PT2 clone are you using? The latest version defaults to "AUTO", which attempts to set a reasonable upscaling size based on the screen resolution. However, this sometimes result in a lower upscale factor than what is optimal, as it tries to take the dock and stuff into account without knowing its height or if it's present or not. It's a quite naive approach.

Latest version from your website I downloaded yesterday. Yes, the setting was on "AUTO", but that only resulted in 2x scaling. Had to bump it up to 3x so it becomes usable.

Rincewind42 wrote on 2023-07-12, 00:20:

Sorry for being grumpy. I just wish I could be completely done with these two projects and move on, but alas...

Also, please mention things related to my PT2/FT2 clone in relevant threads next time, or send me PMs. 😀
This thread is about PT4DOS.

No problem at all 😀 I'm old and grumpy too, haha 😁 Like I said, mismatched assumptions/expectations on both of our parts 😀

Thanks again for releasing the sources so I can hack in whatever I feel necessary in the future. If you want, I can send you my improvements; if not, I'm fine with that too 😀

I found a few small bugs in the FT2 clones, I will report those in the FT2 thread then.

Have a nice one! 😀

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 30 of 32, by 8bitbubsy

User metadata
Rank Member
Rank
Member

Don't get me wrong, I do want to know about bugs and all of that, but this thread is about PT4DOS (MS-DOS), not the PT2 clone (Windows/macOS/Linux). It's mostly the talk about lacking documentation that I don't have the energy to deal with, I'm not good with writing documentation and guides.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 31 of 32, by Rincewind42

User metadata
Rank Member
Rank
Member
8bitbubsy wrote on 2023-07-12, 12:27:

Don't get me wrong, I do want to know about bugs and all of that, but this thread is about PT4DOS (MS-DOS), not the PT2 clone (Windows/macOS/Linux). It's mostly the talk about lacking documentation that I don't have the energy to deal with, I'm not good with writing documentation and guides.

All clear, I'll report only bugs from now and in their respective threads 👍 (I'm quite liberal with "forum usage", haha 😀 )

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 32 of 32, by dnbstartrek

User metadata
Rank Newbie
Rank
Newbie
8bitbubsy wrote on 2022-06-17, 21:31:
I'm trying to port ProTracker to MS-DOS (386+, Sound Blaster 2.0/ Pro / 16). This is just a proof of concept for now, so the onl […]
Show full quote

I'm trying to port ProTracker to MS-DOS (386+, Sound Blaster 2.0/ Pro / 16).
This is just a proof of concept for now, so the only thing that works is to load a module through Disk Op, then press Play or Stop (or change the BPM).

It won't be "just another .MOD player" though, as the goal here is playback accuracy. I've ported the ProTracker replayer from 68k asm to i386 asm, and I've written a Paula (Amiga sound chip) i386 assembler mixer that kinda works like Paula in the way it handles looping and register updating (DAT/LEN). I don't think there's a single ProTracker player for MS-DOS that does "live sample-swapping" correctly, but this one does. This tecnique was used in several chiptune-styled .MODs to simulate SID PWM. The swapping shouldn't happen instantly (many players do this, it's wrong), but rather at the next "sample end" point inside the mixer.

The mixer runs at 43.5kHz (SB 2.0/Pro) or 45.5kHz (SB16). 16-bit mixing, 8-bit/16-bit output, no resampling interpolation.

Minimum system requirements:
- Intel 386SX processor @ 25MHz (486 recommended)
- At least 2MB RAM
- Sound Blaster 2.0 / Pro / 16 (earlier SB cards not supported, output rate must be >32kHz)
- NOTE: Audio might have occasional buffering issues under DOSBox

A 486+ w/ SB16 is going to give the best experience and sound quality.

Download: https://16-bits.org/etc/pt4dos.zip
Source code: https://16-bits.org/etc/pt4dos_src.zip (tabsize = 8 for the .asm files)

pt4dos.png

I try ussing this DOS tracker in a TV BOX emulated with Emuelec ussing DOS emulator, and work very fine than another more heavy trackers as impulse tracke or fast tracker, we need make a Arm version of this for ussing in Rasphberry pi , Banana pi or TV Box arm hardware