Call for Codebreaker testers!

6 posts / 0 new
Last post
Offline
Last seen: 13 hours 33 min ago
Joined: May 4 2021 - 06:35
Posts: 153
Call for Codebreaker testers!

Hi,

you are certainly aware that the first version of UncleBernie's popular game "Codebreaker" unfortunately had a bug.

The bug has been promptly fixed and now, before distributing it widely, UncleBernie would like to have it thoroughly tested.

 

To facilitate this process I have therefore prepared the following page:

 

https://p-l4b.github.io/codebreaker/

 

It contains the corrected version and will contain any subsequent updates.

The game is available in binary/text/audio format and also runs on emulators like POM1 (also on Android available on the Play Store), so you can play it almost everywhere.

 

We kindly ask you to download it, to play it and to report to the email indicated (or here directly to UncleBernie) any weirdness you may come across (screenshots are welcome!).

Once UncleBernie is reasonably sure that there are no more bugs, communications will follow, as well as an update of the ROMPACK for the Juke-Box board.  :-)

 

Thank you all for your cooperation and enjoy the game! :-)

 

Claudio -- P-LAB

 

Offline
Last seen: 25 min 52 sec ago
Joined: Apr 1 2020 - 16:46
Posts: 863
'Codebreaker' is a test case for many goodies !

Thanks, Claudio, for organizing this beta test !

 

Dear beta testers, 

 

let me tell you that the 'Codebreaker' game is a test case for many software tools and techniques I have developed in the past months. It's not only about the game as such, it's about the whole Apple-1 software developers toolchain and the "Apple-1 on Apple-II emulator" code skeleton (yes, if you load it on an Apple-II, it should run and behave exactly like the same game being played on the Apple-1).

 

So if you have the opportunity, please try it on everything you might have that is Apple-1-ish oder Apple-II-ish, and has either a Wozmon or can read cassette audio (you would of course use the AIFF file). 

 

I would like to have some Apple-II owners to try it, too (load it from the AIFF file). This is important because I only have one functional Apple-II-ish machine left, and that is a mid 1980s clone made in Taiwan. All my original Apple-II don't work anymore for various reasons (bad power supplies, bad keyboards, bad IC sockets ...). I want to make the Apple-1-emulator-on-Apple-II code skeleton / backbone in 'Codebreaker' available for other programmers. So you can develop software on the Apple-1 and then make a tape using the Apple-1 ACI (preferably with my 'extended format' PROMs) which can be read on both the Apple-1 and the Apple-II.  Of course, this 'tape' nowadays would be an AIFF file in most cases.

 

The next info I would like to see is if the AIFF file as such works, can be read by both Apple-1 and Apple-II. On various AIFF media players ! Can you see the title of the game and the loading instructions and that is was made by Uncle Bernie's ACIace ?

 

 ACIace is a synthesizer program which turns Apple-1 (or Apple-II) binaries into AIFF files. It's part of my tool chain for Apple-1 software development that runs under Linux Mint (but should compile and run under any version of Linux). But I ran into so many obscure problems when writing and testing ACIace that I have serious doubts about its performance. For instance, some media players would not display the tag fields or would display them only after the audio has played. But since the tags give the loading instructions, they should appear first. Like the title, album and artist of regular music AIFF files would appear instantly after the playback is started. The idea is that you could pause the playback right there, enter the appropriate loading instructions at the Apple-1 or Apple-II command prompt, and then unpause to load the game. This is how it should work. But it does not do this all the time with every player despite I've positioned the tags before the PCM data block. This is where the documentation of AIFF available on the web really sucks.

 

Synthesized AIFF files have no noise (unlike recorded AIFF files do) so they compress very well. You can try this by running any gzip program over this 'Codebreaker' AIFF file. It shrinks to a few kilobytes. But it won't shrink to the original size of the binary. Some call this 'progress'. I don't.

But still, I need feedback about how it works or not. I can't continue to develop ACIace without useful feedback from users of the AIFF files it produces.

 

Oh, and don't ask about its other capabilities. It also should have an analysis mode where it reads audio files and extracts the Apple-1 or Apple-II binary. Alas, this analysis mode is in an embryonal stage as the documentation for the various audio formats I could find sucks so greatly that I always run into problems and they won't read correctly. The analysis mode can, however, turn back synthesized AIFF files made by ACIace  into the binaries.

 

So, please test my 'gifts' to the Apple-1 / Apple-II world and give me feedback how it works out for you. And don't get too frustrated with not winning against 'Codebreaker'. On the original thread here on Applefritter I gave some strategy hints which help to win ! Use the 'rookie' level only as a beginner to learn the rules of the game and then use the higher levels where you can more easily win against the computer !

 

The original 'Codebreaker' thread is here:

 

https://www.applefritter.com/content/uncle-bernies-codebreaker-game-apple-1

 

Comments invited !

 

flatsixracer's picture
Offline
Last seen: 4 days 10 hours ago
Joined: Sep 14 2021 - 23:48
Posts: 48
Loading AIFF

I ran into two issues loading the AIFF audio file:

 

  1. The downloaded AIFF file would play in Audacity and iTunes, but not on the iPod (it just stopped).  I exported it as MP3 and AIFF(Apple/SGI) using Audacity which both played on the iPod and loaded the game.
  2. The instruction on the github site: Load with 0800.0FFFR didn't work for me, but 7F8.0FFFR 800R  from the song info did.

 

Now I am trying to figure out how to play this game :-)

Offline
Last seen: 13 hours 33 min ago
Joined: May 4 2021 - 06:35
Posts: 153
Hi,I added a note to the page

Hi,

I added a note to the page to specify the right address ranges, both for standard ROMs and UncleBernie's custom ROMs. 

 

Thanks for your contribution,

enjoy the game. :-)

 

C.

Offline
Last seen: 25 min 52 sec ago
Joined: Apr 1 2020 - 16:46
Posts: 863
How to load 'Codebreaker' with my 'extended format' PROMs !

For the standard ACI page written by Woz, the loading address given in the github page is correct, but the procedure for the 'extended format' PROMs is not. To end the confusion about how to load the game, here is a more complete description for all cases.

 

The first step is always the same: position the tape or the AIFF media player at the beginning of the header tone and PAUSE the thing.

 

For standard ACIs:

You  would start the ACI with C100R at Wozmon command prompt to get the ACI command prompt (a '*').

Then give the ACI command  07F8.0FFFR to read the AIFF file. UNPAUSE the player simultaneously with pressing <return> to invoke the command.

If it does not hang you are back to Wozmon and ready to give the '800R' start command.

Not extactly user friendly (you have to memorize and type all the addresses) and there is no checksum whatsoever to detect loading errors.

The standard procedure for Apple-1 ACI is to look if the last two bytes of the cassette load are correct using the Wozmon (even more work !):

FFE.FFF <return>

and for 'Codebreaker' it should spit out the two byte values 7F and 60. Otherwise you have a loading error or the old, buggy version.

So you have to memorize a lot of bytes.

 

With the 'extended format' page in my ACI PROMs you start  it with C500R at Wozmon command prompt to get the ACI command prompt. (Note the different address).

Then, since it is a two block recording, you give the command: RX RX <return>, where each 'RX' means 'read one extended format block'.

Again, UNPAUSE the recording when hitting <return>

And the game will load, the checksum will be checked, and if it is OK, it will automatically start.

Much, much more user friendly ! All you need to memorize / write down is the number of blocks. That's it !

 

On the Apple-II, use:

CALL -151 <return>

7F8.FFFR  <return>

800G <return>

 

The Apple-II has a checksum for cassette records which it automatically checks. A lesson Woz had learned from the angry customers of the Apple-1.

 

The more I research the Apple-1 history, the more I come to the conclusion that the NTI motherboards with the little blue multilayer ceramic bypass capacitors probably were OK and did not crash all too often, but the ACI card never was fixed or improved and drove the users nuts. One of Lisa Loop's major complaints was difficulty with loading BASIC from cassette and the kids got impatient. 'flatsixracer' who has recently finished his first Apple-1 build using one of my IC sets also reported frustration with loading BASIC. Oh, and with loading 'Codebreaker', too, until he had found a 'good'  volume setting of the media player.

 

So don't get too frustrated with the ACI. It is what it is and if you think it's a POS you probably haven't worked, or tried to work, with any of the other cassette interfaces on some other early microcomputers of the time. I've been there, done that, and it was generally a terrible experience. You absolutely had to record your program two or three times, preferably on different cassettes, to have some reasonable confidence not to lose it to the digital abyss.

 

This is why the first floppy disk systems (the 5.25" minifloppy) took the microcomputer scene by storm.

And believe it or not, Apple's Disk II system was the cheapest on the market despite the very healthy profit margin Apple always had.

 

Comments invited !

 

Offline
Last seen: 13 hours 33 min ago
Joined: May 4 2021 - 06:35
Posts: 153
Hi all,loading instructions

Hi all,

loading instructions on the web page https://p-l4b.github.io/codebreaker/ have been updated accordingly to the previous post. :-)

Cheers,

Claudio

Log in or register to post comments