Jump to content
IGNORED

Turgen System 8.8.x Adventures


baktra

Recommended Posts

The functionality described above is getting shape.

 

1. No individual STOP and RESUME buttons - One for all items

2. Progress items are displayed immediately after their creation. This allows to STOP items that were initialized, but not started yet.

3. Duplicate output files are checked earlier. If found, an error message is displayed and signal generators are not even started.

4. When an item is waiting for resume (because of a silence list), it can be stopped. The item is resumed and then cancelled.

5. A button that clears the list of progress items available.

6. The buttons are oriented vertically - to be different from the main buttons

7. For each item, the status is one of the following: Initialized, In Progress, Cancelled, Failed, Completed.

 

29960375_obrzek_2022-03-17_144145.thumb.png.1c0f6867526af0e795bdbc94d95e9913.png

 

Major development remaining:

1. I am thinking of a function that would allow to open the output files by double-clicking the progress items. This could be useful for .CAS files and .WAV files.

2. When to clear the list of progress items? Only when the dedicated button is clicked or also when one of the 'WAVE','AUDIO',TAPE IMAGE' buttons is clicked. Items in progress would stay always.

 

Minor things:

1. Remember column sizes

2. Font size for the progress items

3. Some good terminology for progress monitoring related stuff. "Progress item" sounds weird.

4. Documentation updates.

 

 

  • Like 3
Link to comment
Share on other sites

The work is going very well. The 8.9.0 is on already closing to the horizon.

What you can expect?

 

Say goodbye to the awkward "Progress monitoring panel" and meet "Worklist". This was a long lasting technical debt. Solving it deserves a bigger release.

  • Worklist - this is now the official name for the completely redesigned portion of the user interface that allows you to observe work in progress and work completed.
    The worklist displays work items.
  • Clarity. Each work item displays clear information on status.
  • Only three buttons to control the work in progress. Simple, straightforward, easy-to-use. The buttons are not dodgy.
  • Worklist shows meaningful progress information also in the preview mode.
  • The tape image generator finally provides meaningful information on work progress (before it was either 0 % or 100 %).
  • Choice of normal or small font for the worklist.
  • You can double-click a completed work item to open the associated output file (if the file exists). This is most useful for generated tape images you want to test with your emulator.
  • Like 4
Link to comment
Share on other sites

Since the long-lasting technical debt is finally eliminated (I am referring to the Worklist), I am somehow cornered in terms of what to do next.

Recently, I have been trying to please users from the good old Europe. Now I should do something for the new world.

 

I've already started studying the cassette-specific code of the SIO routines in the Atari OS, in order to deliver a new loading system for the Standard plugin.

This will be coding in 6502 assembler again. Yum yum. Am I too spoiled by the rich instruction set of the z/Architecture? Perhaps not that much.

 

The loading system will offer the following:

1. Fixed length block size based file format - the intended block size will be 384-768 bytes

2. Possibility to re-read a failed block

3. One plain and unobtrusive binary loader for maximum compatibility

4. One binary loader capable of displaying progress (probably using PMG in non-DMA mode)

5. No code in RAM under ROM

6. Option to disable noisy SIO, friendly for authoring of dual track tapes.

 

I do not expect the binary loaders to display fancy titles or subtitles (except plain program name). if you want your newly developed game to display a fancy loading screen, include an INIT segment to do so. 

 

I know I was planning this loading system several times, but now I believe I can really do it. It is also thanks to the major improvements of the cassette emulation in both Altirra and atari800 emulators in last years. 

 

 

  • Like 1
Link to comment
Share on other sites

Making some progress both on 6502 and Java sides, you can check the repositories.

 

It is not working yet, but I am getting closer, the loader is already correctly loding data from 512 b blocks, but the binary load process needs fixes. The physical and logical file formats are almost defined too. This time, the file name and other metadata are stored at the beginning of the first long block, so there is no need to zap the loader.

 

The loading system has a provisional name - LGV. Loader of Great Velocity, inspired by the french TGV. I will, of course, research if the LGV name has some unpleasant duplicates.

 

I will deliver LGV in three iterations

1. Plain LGV (8.9.1)

2. LGV with progress indicator (8.9.2).

3. LGV with block re-read (8.9.3). Block sequential numbers will be used.

 

It is funny, all SIO documentation just says the cassette is a dummy device, but doesn't give a clue how to read or write data from or to it.  Perhaps I will be able to fill that gap. Frankly, it was easier than I thought, OS listings helped.

  • Like 2
Link to comment
Share on other sites

While thinking of better name instead of LGV, I've done also some coding.

 

1. Complex games such as Ridiculous Reality can be converted and loaded. I like RR as a test game for its binary file complexity.

2. IRGs are elongated after blocks that hold INIT segments, minimum IRG after such block is 2.4 seconds - enough to allow full motor stop and start

3. The loader displays program name - I allow rather generous 30 characters.

 

It is all taking shape.

 

Immediate next Steps:

1. User interface in TURGEN. I can either create a separate panel with options for this new loader, which would be convenient. However, that would also mean duplication of the silence list and some loader look and feel options. Perhaps it would be better to re-use the existing panel and enable/disable components in it.

2. Converting loader. Turgen must learn how to convert the loader to a tape boot file. Easy, it can do it for other loaders.

 

Note:

Programming languages like Java (and others like that) are amazing. A lot can be developed in matter of minutes. It was a sunny weekend, I spent most of the two days outside.

 

Any suggestions for the loader/loading system name? I have a few on my mind. These are "offensive-google-results-safe". I want to avoid the word "turbo" to prevent confusion.

 

1. SLB - Standard Long Block

2. HKBL - Half-Kilobyte Block Loader

3. S-LOB - Standard LOng Block

4. LB-Express - Long Block - Express

 

To be continued...

 

 

  • Like 1
Link to comment
Share on other sites

The changing face of... the Standard Plugin panel

  • The components are neatly aligned.
  • The "Binary file to LGV" and "Binary file" conversion types share the same panel.
  • The list of binary loaders in the "Binary loader" box is changed dynamically when the Conversion type is changed

This way, the complexity of the UI is somehow under control.

 

large.std_lgvl_screenshot.png.8432897518d22b7a5c27b7de22de56bb.png

 

This is how I envision a generic progress indication. Three lines, PMG in non-DMA mode. I emphasize that I am looking for a way that will work with most binary load files.

The thick lines represent 0% and 100%, the narrow line represents progress. The similar way was used by JRC's VisiLoader.

Of course, I wouldn't mind creating a specialized version of the loader that would display number of remaining blocks at a designated address.

 

std_lgvl_progress.png.1ae29f174d33c05eee3cb4153b45dad9.png

 

And dear fellow Atarians, thank you for encouraging me. Much appreciated.

  • Like 2
Link to comment
Share on other sites

Let us have 8.9.1 beta. I've changed the name from LGV to LBE (LB-Express). Google doesn't throw anything utterly negative, Bing too. Yandex doesn't respond.

 

With this beta version, you can convert your own binary load files to LBE and have some fun. The LBE is not available through the Wizard, it might be in the final version.

 

 

 

turgen-8.9.1-bin.tar.bz2

  • Like 1
Link to comment
Share on other sites

Final 8.9.1 is available at its usual location.

Download: https://sourceforge.net/projects/turgen/files/turgen/turgen_8.9.1/

Full list of changes: https://sourceforge.net/p/turgen/blog/2022/03/turgen-891/

 

What is next is pretty obvious, LBE iteration #2 - display progress during loading.

And, of course, fixing bugs that might appear.

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

The adventure continues with the promised LBE iteration #2.

 

I now have a working version of a new LBE PMG loader, which displays progress during loading. The progress is expressed simply by three missiles in non-DMA mode. Two thick missiles show beginning and end of a simple "progress bar", one thin missile shows the actual progress.

 

I do not have to emphasize that the number of binary load files loadable by the LBE PMG loader will be somehow lower. The loader is affecting PMG, so if the binary load file is using PMG during the loading process, undesired effects can occur - from broken title screens to lack of PMG objects after the program is loaded. That's why the original LBE loader, now named "LBE Plain", will still be the default option.

 

I am attaching a .cas file with the River Raid game as a showcase. 

rraid_lbe_pmg.cas

Link to comment
Share on other sites

I've just finished this entire thread.  Somehow I missed this software when it was first released, but I'm looking forward to giving it a go.  I admire your continued passion for this project, it seems like your goal was to create the ultimate Atari cassette creation tool.  Thanks for all of your hard work. It is people like you that help to keep the Atari 8-bit community near the top of retro-computing world.

 

I'm not sure how much better you can make this program, but I would like to see some support for dual track recording.  I always loved it when music played while loading cassette games, perhaps you could add a way to add music  and voice to the other track.

Link to comment
Share on other sites

1 hour ago, mutterminder said:

I've just finished this entire thread.  Somehow I missed this software when it was first released, but I'm looking forward to giving it a go.  I admire your continued passion for this project, it seems like your goal was to create the ultimate Atari cassette creation tool.  Thanks for all of your hard work. It is people like you that help to keep the Atari 8-bit community near the top of retro-computing world.

 

I'm not sure how much better you can make this program, but I would like to see some support for dual track recording.  I always loved it when music played while loading cassette games, perhaps you could add a way to add music  and voice to the other track.

Thank you.

 

You are no the first to touch the topic of dual track. 

 

I will think of it loudly...

 

If we assume that no one is going to create an interactive dual-track programs like Sammy the Sea Serpent and

if we would limit the feature just to include an audio track as follows:

 

1. Limit to the Standard Plugin (dual track doesn't make sense for any Turbo system anyway)

2. Begin the audio track right after the binary loader (which is needed, because the binary loader places 0 to SOUNDR)

3. Trim the audio track to the length of the digital track

4. Optional fade-in and fade-out

 

It would be doable as a first iteration.

 

However, there would still be some preparation work left for the user - getting the audio track, converting to WAV and mixing two or more channels into one mono channel.

Pretty much impossible task for an average user. Automating this would require significant amount of DSP processing code. At least I can take a look at available libraries. 

 

Anything more complex (such as voice overs) would require a digital sound editor (like Audacity) anyway, and if someone can master a digital sound editor, creating a dual track tape is matter of seconds for such person.

Link to comment
Share on other sites

On 4/14/2022 at 7:35 AM, baktra said:

Thank you.

 

You are no the first to touch the topic of dual track. 

 

I will think of it loudly...

 

If we assume that no one is going to create an interactive dual-track programs like Sammy the Sea Serpent and

if we would limit the feature just to include an audio track as follows:

 

1. Limit to the Standard Plugin (dual track doesn't make sense for any Turbo system anyway)

2. Begin the audio track right after the binary loader (which is needed, because the binary loader places 0 to SOUNDR)

3. Trim the audio track to the length of the digital track

4. Optional fade-in and fade-out

 

It would be doable as a first iteration.

 

However, there would still be some preparation work left for the user - getting the audio track, converting to WAV and mixing two or more channels into one mono channel.

Pretty much impossible task for an average user. Automating this would require significant amount of DSP processing code. At least I can take a look at available libraries. 

 

Anything more complex (such as voice overs) would require a digital sound editor (like Audacity) anyway, and if someone can master a digital sound editor, creating a dual track tape is matter of seconds for such person.

Sure you could do it with Audacity.  But it would be cool to output the second track automagicly as a chiptune or MIDI track.

Link to comment
Share on other sites

4 hours ago, mutterminder said:

Sure you could do it with Audacity.  But it would be cool to output the second track automagicly as a chiptune or MIDI track.

This confuses me a little bit. 

 

To create a dual track tape, TURGEN would need two inputs:

1. Binary load file with the software

2. MP3/WAV/OGG/chiptune (e.g. SAP file)/MIDI file

 

From these two inputs, one stereo output WAV file would be created as follows:

1. Left channel - audio track with the input #2, downmixed to one channel if needed

2. Right channel - data track - input #1 converted to FSK (the beeping and screeching).

 

At least I am thinking of this function more and more, it still seems doable. Using WAV and OGG files as audio track wouldn't be an issue, the other formats are a different beasts in the world of Java. In the worst case, TURGEN can automagically call external tools to convert MP3,SAPs and MIDIs to WAV. 

 

What would be the public opinion on this? Doing a dual track with a few clicks?

 

Link to comment
Share on other sites

On 4/20/2022 at 11:01 AM, baktra said:

This confuses me a little bit. 

 

To create a dual track tape, TURGEN would need two inputs:

1. Binary load file with the software

2. MP3/WAV/OGG/chiptune (e.g. SAP file)/MIDI file

 

From these two inputs, one stereo output WAV file would be created as follows:

1. Left channel - audio track with the input #2, downmixed to one channel if needed

2. Right channel - data track - input #1 converted to FSK (the beeping and screeching).

 

At least I am thinking of this function more and more, it still seems doable. Using WAV and OGG files as audio track wouldn't be an issue, the other formats are a different beasts in the world of Java. In the worst case, TURGEN can automagically call external tools to convert MP3,SAPs and MIDIs to WAV. 

 

What would be the public opinion on this? Doing a dual track with a few clicks?

 

Sorry, didn't mean to confuse you.  I know the final output has to be output as a WAV file or even an audio output from the sound card.  Your idea as mentioned above would be great, especially if it's not too much work for you.  What I was thinking by mentioning chip tunes or MIDI as a source for the audio track, so you could use .mid,.sid (funny I know), .nsf, .vgm, etc.  Calling existing external tools makes more sense, than integrating the code into your project.

 

Link to comment
Share on other sites

5 hours ago, mutterminder said:

Sorry, didn't mean to confuse you.  I know the final output has to be output as a WAV file or even an audio output from the sound card.  Your idea as mentioned above would be great, especially if it's not too much work for you.  What I was thinking by mentioning chip tunes or MIDI as a source for the audio track, so you could use .mid,.sid (funny I know), .nsf, .vgm, etc.  Calling existing external tools makes more sense, than integrating the code into your project.

 

Yes, now we are in sync. Let us see what I will come up with.

 

In the meantime, I had some background technical work to do.

  • Sadly, I had to refactor the playlist-related code. It was brutal work. It also means that old playlists will not work with new TURGEN. You can shoot me if you want. On the other hand, the new playlist system will not be prone to incompatibilities in the future.
  • Wizard for files allows to select a subset of conversion methods when converting multiple files. This gives the Wizard much more flexibility.
  • Moving playlist items. Ability to move just 1 item at the time was limiting. Now one can move any number of playlist items up or down.
  • Fix blunders in the worklist. Output wave files were not displayed and progress bars were not displayed either. 

All this will result in version 9.0.0 soon, which can work in parallel with older versions. 

Once 9.0.0 is out, I can focus on the dual track. For now, I believe I made enough progress with the LBE loading system, so innovations in that area can wait.

  • Like 2
Link to comment
Share on other sites

This is how the enhancement in Wizard for files will look like. Previously, when converting multiple files with Wizard, you had very little control over the selected conversion methods.

 

With the new interface, you will be able to have some control. For example, converting multiple files to Standard - LBE loader using Wizard will be much easier.

 

1623539155_obrzek_2022-04-25_103853515.png.f93870dcae07199962252b9028906bb8.png

 

 

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

Features planned for 9.0.0 are almost done.

 

One of them is a new context menu for the Worklist items. The context menu will allow two functions.

1. Open the output file (available also by double-clicking the work item)

2. Show in folder (a new one, will help to open the output file with desired program).

 

Theoretically, there is a function that would allow to show a file in folder and select it. It doesn't seem to be implemented for Windows,

so I will give it up for the time.

 

 tg_worklist_context.thumb.png.48bf2179adad0d8d75b1813efc326c4d.png

 

Default Look and Feel

Frankly, I am horrified to see how many users have set the not-so-elegant Ocean look and feel (LaF).

Since 9.0.0, the FlatLaf is the new default. Face it, live with it. If you don't like it, you can always switch to a different LaF.

TURGEN will ship with recent FlatLaf version 2.1.

 

Some settings are gone

Buffer size for audio output. TURGEN automagically ensures buffer for 3 seconds of the signal. No need to have this setting any more. 

 

Documentation

The wiki pages with step-by-step guides will be decommissioned. The step-by-step guides will be replaced by pdf files shipped with TURGEN.

  • Like 4
Link to comment
Share on other sites

The Beginner's guide is taking shape. A result of deadly combination of non-native speaker and eagerness to write.

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

If you would have any comments to the content, you are welcome to state them here.

 

  • Like 1
Link to comment
Share on other sites

Even though Microsoft Windows is now my home desktop, I do not underestimate testing on other supported operating systems.

This time, it was the Ubuntu 18.04 LTS. And guess what? The popup menu for worklist items didn't want to appear.

 

Since different desktops can have different ways of activating a popup menu, the Swing tutorial suggests the following:

class PopupListener extends MouseAdapter {
    public void mousePressed(MouseEvent e) {
        maybeShowPopup(e);
    }
    public void mouseReleased(MouseEvent e) {
        maybeShowPopup(e);
    }
    private void maybeShowPopup(MouseEvent e) {
        if (e.isPopupTrigger()) {
            popup.show(e.getComponent(),
                       e.getX(), e.getY());
        }
    }
}

Basically, listen to the mouse events of a component, and if the mouse event is a "popup menu trigger", display the popup menu where the mouse event occurred. This worked nicely under Windows. With Ubuntu, it was a different story. the isPopupTrigger() always returned false, no matter what. 

 

Solution? Disclaimer of the tutorial indicates the tutorial might not be exactly up-to-date. There is more recent way of summoning the popup menu, since Java 1.5. 

component.setComponentPopupMenu(popupMenu).

Everything is then handled for you automagically, even with Ubuntu. Victory!

Link to comment
Share on other sites

Turgen 9.0.0 - "Mixed Bag" has been released.

It is truly a mixed bag of unrelated changes, hence "Mixed Bag".

 

Next Station... Dual track creator.

So far, I believe the best way of doing that is to create a simple dialog, where you will select the audio track and a few options. TURGEN will then run SOX to do the hard work - downmix the audio track to mono, trim it and merge with the data track.

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

As every good design begins with a GUI, this is my idea of the DT creator interface. You will select one playlist item in the playlist, and then you will choose Tools>Create dual track... from the main menu.

 

tg_dtrack_mock.png.642eae2c8baf8e3de57710864c86503f.png

 

Behind the scenes, there will be a nicely designed Java class, one instance will be able to completely dispatch one dual track creation, providing potential for creating multiple dual tracks at once, when such need arises. The most challenging part, of course, would be to learn SOX. Good news is that documentation on SOX is a decent one.

Edited by baktra
  • 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...