Jump to content
IGNORED

Turgen System 8.8.x Adventures


baktra

Recommended Posts

On 5/25/2022 at 8:10 AM, baktra said:

2. Enhance GENCAS command line interface to output not only .cas, but also .wav. Cannot beat a8cas in the decoding area? Beat it in signal generation then.

 

Already pushed to the git repository, branch cli_wav. A new command line option was introduced -o:{cas|wav}.

E.g.

gencas.exe -mode:turbo "-conv:Turbo 2000 - Expressloading" -o:wav file.xex file.wav

The format of the wave file is given by the program configuration.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I've released 9.0.3. It is a minor, maintenance release.

 

Apart from the new -o: option for GENCAS, it also fixes one annoying bug. For some reason, the toolbars were becoming floatable. I've changed the UI initialization code to prevent that, though I do not fully understand the nature of the bug. Perhaps something I missed, perhaps one of the few JFC Swing idiosyncrasies.

 

TURGEN will now enter a quieter period, as the backlog of enhancements has dried out. But don't worry, is someone discovers a new interesting loader or bugs are reported, it will wake up.

 

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

Let me break the silence of the off-season.

 

In the library...

Literary critics (seasoned or aspiring ones), please review the Beginner's guide. 

https://sourceforge.net/p/turgen/turgen-code/ci/master/tree/doc/guides/turgen_beginners_guide.pdf?format=raw

Notes and suggestions are welcome.

 

Time to kill...

... the Visual XEX2CAS. This utility is simply superfluous, because it doesn't do anything that TURGEN doesn't. If you want a tool with GUI, use TURGEN itself, namely its Standard plugin. Why I have created the tool in the first place? Perhaps practicing C# a bit. I still do not see sharp yet.

 

Time to stabilize...

The XEX2CAS command line tool. I will keep this very traditional and lightweight tool to keep the flame, but do not expect anything else than bugfixes.

Let's face the truth, GENCAS is simply more powerful and more likely to get enhancements. 

  • Like 4
Link to comment
Share on other sites

Blunders... no one can avoid them.

 

Version 9.0.3 has a funny one. If you generate a wave file, then you will have trouble selecting items in the worklist. The items will get deselected periodically, causing trouble. It is because the worklist update timer keeps ticking and updating the table. Selection gets lost in the process.

 

Version 9.0.4 will fix that. Impatient ones can get updated turgen.jar from GitHub even now.

 

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

After some time of silence (I was busy with my very first steps on the U.S soil in Boston, MA),

I have a follow-up for the enhancement request above.

 

There is a new release - 9.0.4, which brings the following:

  1. Fixes for severe blunders in the Worklist described above. Now the Worklist is back at your full service.
  2. The enhancement request has been implemented. If you use the Standard plugin with TSCBL or LBE loaders, you have an option to suppress the ATRACT mode. With this option, your precious loading screen is not spoiled by periodic color changes.
    For the LBE loader, the implementation was straightforward without limitations.
    For the TSCBL, the only real opportunity to put 0 to the ATRACT register is before loading a segment of a binary file. If your binary file has segments longer than 24 KB, TURGEN automatically splits them. This is done silently in memory, your original binary file is untouched. The option is available only through GUI, I will add a command-line option for the GENCAS CLI in the next release.

Because of the Worklist-related blunders in 9.0.3, I encourage all users to update to 9.0.4.

 

  • Like 3
Link to comment
Share on other sites

Blunders again...

 

When working on the -noatract command line option for GENCAS, I've discovered that GENCAS cannot convert binary load files to the most usual format - TSCBL as boot file followed by the binary load itself. I've screwed the logic that chooses the loader when adding support for the LBE loading system. Damn me.

 

Good news is that code in the feat_gencas_noatract git branch fixes this, so if this blunder annoys you, there is already a working solution. If the branch doesn't exist, then it has been merged with the master branch.

 

Apart from the -noatract command line option, there won't be too much new. I've updated the FlatLaf look and feel to the most recent version.

The TSCBL binary loader received a cosmetic change. The configuration flag for suppressing the ATRACT mode uses positive logic now. Therefore 0 indicates no suppression and 1 indicates suppression.

Link to comment
Share on other sites

  • 2 weeks later...

It is surprising how much one can forget even in a single forum thread. I've re-scanned the thread to find some enhancements that I spoke of, but did not touch them.

Let us have three groups of them. Yes, maybe and NO.

 

Atari Turbo Tape (Poland) Support. YES. It is based on AST, just somehow different file format. Example files are available, loaders too.

ExpressLoading for the Lower Silesian Turbo plugin. Yes, it is a low hanging fruit. 
SID and SAP support for dual track. YES. Running SOX as an external command line tool works decently. There are SID2WAV and ASAPCONV command line tools, so why not.

 

CAS2Audio Enhancements - Pause playback. Later. First I need to refactor the code to comply with the best practices for programming Android application. Separate the UI model from the UI.
Standard plugin. LBE - Possibility to re-read a failed block. Later. Not a pressing enhancement.

Dual track for multiple playlist items. Perhaps later, dual tracks have a tendency to require individual care.

 

Turbo Rapider. No. Too rare. No documentation.

Redesign menu bar, so it has more standard menus and items. I still didn't figure out a good menu structure.

 

  • Like 2
Link to comment
Share on other sites

Some good news from the git repository.

  1. Lower Silesian Turbo 2000 now supports the ExpressLoading conversion. It is merely a copy-paste from the Czechoslovak Turbo 2000 plugin.
  2. An important fix in the dual track tape creation tool. If the audio track was mono, the creation didn't work, because the downmixing step failed. Now the mono audio tracks are fully supported, because the downmixing step is simply skipped for mono tracks.

Some goodies in progress

  1. The dual track tape creation tool can automatically call asapconv to convert .sap files to .wav and use them as audio track. The same is planned for .sid files, however I have trouble locating a good command line tool to convert .sid to wav. sid2wav seems to be limited to GNU/Linux.

Some items that will require more work.

  1. Atari Turbo Tape. The file format is still unclear to me. Therefore I will have to fully disassemble the loader. 

 

  • Like 2
Link to comment
Share on other sites

Some more good news from the git repository.

  • Support for automatic conversion of the .sap files has been pushed. Keep in mind, you need the asapconv tool from the ASAP project.
    The .sid files will have to wait until I find appropriate command line tool

Some progress

  • The ATT file format starts making sense, at least partially. I made progress with interpretation of the header block. I've identified the following fields: Number of segments, File name area, Array of segment range addresses.
    There are still a few things unclear, e.g. where are the checksums, if there are any. I didn't find a single EOR instruction in the loader, which is somehow suspicious.
  • Like 1
Link to comment
Share on other sites

The Atari Turbo Tape (ATT) file format has been demystified, therefore support for it was added to the Atari Super Turbo (AST) plugin, where it belongs.

The file format is utterly simple and doesn't involve any checksums. Early adopters can try the https://sourceforge.net/p/turgen/turgen-code/ci/ast_att_support/tree/ branch. I've added the file format description to the documentation.

 

The only item left from the 'YES' list is the SID chiptune support, something I can eventually postpone.

  • Like 1
Link to comment
Share on other sites

Version 9.0.6 is out.

Apart from the innovations described above, I've two more additions.

 

Succinct tape images for AST

When verifying the ATT support and tape images holding files in this format, I was honestly horrified by the number of the pwml chunks.

First I thought it must be a bug, but then I realized that each AST (and also ATT) data block ends with 128 very wide pulses. This is the signal for the loader to stop reading.

To generate the signal, I write 128 "stop pulse" instructions for the signal generator. This is then translated to 128 pwml tape image chunks by the tape image writer.

I've introduced a new instruction for the signal generator named "stop tone", which has one operand - number of pulses. The tape image writer translates this instruction to a single pwmc tape image chunk. From 9.0.6 , the tape images holding AST blocks will not be flooded by so many pwml instructions.

 

Full pack installer

I was learning more about the jpackage tool, which creates native packages of Java applications. As a result, you can download and try an experimental "fullpack" .msi installer for windows, which installs both TURGEN and Java 17 in one directory. With the "fullpack" installer, you don't have to worry about installing JDK or JRE, because it is included. You also get .exe launcher and start menu items.

  • Like 4
Link to comment
Share on other sites

Let me get back to the cause of the menu bar. Obviously, TURGEN has an unusual (or shall we say awkward?) hierarchy of the menus.

I was thinking of a hierarchy that would be more conventional. What would you think about it? Would you like it to have it in the next release?

large.turgen_new_menu.png.0d6b6022197ab2100299a381534af4b7.png

 

What is more, I am seriously thinking of renaming the "playlist" to "project". So we would have "project" and "project items", instead of "playlist" and "playlist items".

When TURGEN started, I was intentionally mimicking a look and feel of a media player. It seemed like a good idea at the time. All things considered, TURGEN is rather an authoring tool than a media player, therefore "project" feels more appropriate now.

 

 

 

 

 

 

Edited by baktra
  • Like 2
Link to comment
Share on other sites

Well, TURGEN 9.1.0 - "Gustáv Husák" is out with the normalized menu hierarchy and terminology as described in the announcement.

Apart from the GUI changes, you can see that market supply has been enriched with two new experimental installation options, a full pack installer for windows and a Debian package.

 

At least for now, the TODO list is empty. Lessons from the past taught me that it doesn't mean much.

I will just wait until something transpires (it happens, last time it was the information on the Atari Turbo Tape system that appeared at the atari.area forum)

 

 

  • Like 4
Link to comment
Share on other sites

1 hour ago, Schnurrikowski said:

Hey Baktra, your work is highly appreciated! I am really interested in information on how the Turbo enhancements actually work, both hardware- and software-wise. Perhaps there is a FAQ around I missed so far?

I don't believe that there is a comprehensive, unifying guide covering this matter.

The information is scattered over various places and mostly the information is not in English (no surprise, turbo systems evolved mostly in the COMECON countries).

 

The following list is not exhaustive.

  • Some technical information is available in the TURGEN's product documentation - mostly file formats and block formats.
  • Some information is available in the Polish language at Atariki.
  • Source code of the various turbo loaders is present at github repository
  • Information on British Rambit Turbo tape is available in English.
  • Information on the Chilean Injektor system.

This information is mostly for engineers and technical enthusiasts. The Atariki entries also provide some information on business background (e.g. company names) and links to archived computer magazines of the time. This makes the reading more interesting.

  • Like 2
Link to comment
Share on other sites

On 8/30/2022 at 4:38 PM, Schnurrikowski said:

Thanks for your quick reply!

 

The Chilean site looks very promising.

The description of the Injektor system is very thorough indeed. I must salute the author for the reverse engineering. It is however extremely unusual turbo tape solution. Something more conventional is the Turbo 2000 from Czechoslovakia. It is an open borrowing from ZX Spectrum. Google translate Jiří Pecher's page on Turbo 2000.

 

  • Like 1
Link to comment
Share on other sites

There is some ongoing work towards 9.1.1.

Testing TURGEN on Xubuntu revealed that GNU/Linux users and probably macOS users too cannot create dual track tapes.

 

What is the root cause?

 

To create dual track tapes, TURGEN calls the SoX tool and composes several command lines to run the tool.

All file names are delimited with double quotes (to support file names with that contain spaces, TURGEN tries to be a well-behaved application).

 

This works on Windows, because the double quotes are removed by the operating system (namely the component responsible for running programs), therefore SoX just gets the file names and works flawlessly.

 

Unfortunately, this doesn't work with GNU/Linux (and macOS), because the double quotes are normally processed and interpreted by the shell on these systems.

When TURGEN executes SoX, the shell is not involved. As a result, the double quotes are passed to SoX. And SoX then complains about missing files, because of the extra double quotes. And here we are.

 

In the ver_9.1.1 GIT branch, I am using a different way of composing the command lines, which works on all operating systems.

Lesson learned.

Edited by baktra
  • Like 1
Link to comment
Share on other sites

In version 9.1.1 we are going to say another "Good Bye" to ...  the Status bar!

 

Why is that?

The status bar displays number of outputs that failed/succeeded and also total duration of the outputs. It might have been useful, however:

  • Only information on most recent outputs are displayed
  • Only total duration of the outputs is displayed
  • Number of bytes in the output tape images is not helpful at all.

If, on the other hand, we display the durations in the Worklist, we will get the same information , while the user controls when the information is removed from the screen.

And as a bonus, we can display duration for every single item and the last item can also include the totals. For tape images, we don't display duration (as it doesn't make much sense).

large.tg_worklist_time.png.acff1ddb59edff7791521317b7eb5bd2.png

 

 

 

 

 

 

 

Link to comment
Share on other sites

After a long long time (delays caused by what might be called "real life", namely getting married), I've got back to testing TURGEN with real hardware and real cassettes.

The outcomes of that are not exactly positive as I've made two unpleasant discoveries.

  1. My beloved Denon tape deck that I've had repaired is still malfunctioning and chewed one of my FOX cassettes (and these are not as cheap as the Maxell UR90s). I will contact another repair shop to see if something can be done. The trouble is spare parts as always. A pity, I was considering recording a few tapes with games and selling them. 
  2. I was not able to load any file converted with the ExpressLoading conversion type from real tape. Under emulators, everything worked just fine. That is of a little comfort of course, because I know that the emulated data recorder is too perfect (no wow and flutter). 

I will have to perform a thorough investigation and identify the root cause. The most likely root cause is imbalance of the pulse measuring loops in various loader states. I will have to take a pencil, a piece of paper and count the cycles for all loader states. In the worst case, I will have to create a diagnostic version of the ExpressLoader and test with real hardware. Something I wouldn't be looking forward to, to be honest. Or perhaps I've just got too comfortable with Altirra debugger.

 

In the meantime, the ExpressLoading conversion should be considered unreliable. Unless you have your own proof that files converted with the ExpressLoading conversion can be loaded from real tapes, of course.

 

 

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...