AX-80 O.S. hacking co-op?

Pulling out your hair? Don't know what to do or where to go? Ask in here.
Forum rules
READ: VSE Board-Wide Rules and Guidelines

If your Help request has been solved, please edit your first post in order to select the Image Topic Icon to let others know your topic has been solved.
Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Thu Aug 04, 2016 6:17 pm

tim_m wrote:Amazing work on the CPU, by the way!
Why, thank you :)

Latest update on the project is that I've coded the SysEx out and it should only take about 25-30 bytes in practice. If SysEx in works to be the same then we're in under our mark. I'm having trouble finding ways to optimize and shave it down, but I think it'll all work out. It's going to be a squeeze, but I still think it's doable.

Still unraveling other functions to find potential hacks (or good ways to implement them) but progress is starting to slow down as I've already picked all the low-hanging fruit. Even though I think it should be easy once discovered, I have little idea about the free-running LFO thing.

I'm planning on developing a tape in/out patch converter as well. I probably should have worked on that first, as it should be a quick kill.

I hope I'm not getting anyone's hopes too high :| I could easily get suddenly lazy.

Interesting sidenote though: It seems as if Akai was planning on adding SysEx support but either ran out of time, space, or motivation. There is code to handle incoming SysEx data, but it doesn't do anything productive really. Some of it is even very kludged, like someone quickly wrapped it up just enough to not make it catastrophically crash.

This is good though because it will likely provide extra wiggle room.

There are definitely a couple weird spots in the code in general, like potentially accidental infinite loops or an instruction or two that just cannot ever be reached.

Anyone ever found any reproducible bugs in the AX80?

mrtransistor
Newbie
Newbie
Posts: 2
Joined: Tue Aug 02, 2016 9:45 pm

Re: AX-80 O.S. hacking co-op?

Post by mrtransistor » Fri Aug 05, 2016 6:37 am

Tim & Group,

All of the keys work now. We now have two geniuses!!!!
Problem is the keyboard is 30 miles away. I assume I need the version letter of the CEM chips?
How to pick the problem CEM IC?

Mr. Transistor PM'ed me, and I sent him this way to test this way as well:

Press one key, hit the chord memory button, and hit one key again. This should force the AX80 into a sort of mono mode. Do all of the keys work now?

This could help differentiate between whether it's a keyscanning issue or a dead CEM chip.

Amazing work on the CPU, by the way!

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Fri Aug 05, 2016 2:22 pm

mrtransistor wrote:Problem is the keyboard is 30 miles away. I assume I need the version letter of the CEM chips?
How to pick the problem CEM IC?
Either that or know your ROM version. If the EPROM has a letter "I" then you need version B chips and letter "K" for version C.

If you know the date the AX80 was made you could probably make a good guess. I believe all 1985 AX80 boards are ROM K / CEM3372 version C and anything 1984 is ROM I / CEM3372 version B. Don't take that as gospel.

Easiest way to test would be to buy a matching set of 8 chips. Put them all in, make sure all your voices work (they should unless you got a dud replacement). Then swap out one of the new chips for one of the old. Still work? Save that chip as a spare or sell it to another needy AX80 owner. Repeat the process until one of your voices die. The old chip that you just stuck in was your problem, obviously. Send it to silicon heaven.

If they magically all work then it was probably just a faulty connection that was fixed by swapping the chips in and out. Reseating all the chips would probably be worth your time before you invest in a new (set of) chip(s). Then again, can't hurt to have spares for the future.

I had a "dying" voice in an E-mu Emax that fortunately came back to life by reseating. It's not an uncommon phenomenon.

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Fri Aug 05, 2016 6:41 pm

Well... Frankenstein is at least twitching on the operating table in the laboratory of the mad scientist.

I added SysEx out to the firmware and the good news is data transferred and it didn't (seem to) break the Tape/Save function. The bad news is that my h4x0r skills are not l337 enough because it didn't return the data I wanted.

Ah well, time to revisit my sloppy code while waiting for lightning to strike.

P.S. Having to burn a ROM and yank it out of the socket each and every time you want to test something does not make for convenient development nor debugging.

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Tue Aug 09, 2016 5:27 am

I can now decode tape dumps, so if anyone wants to develop a patch editor then I can give you a couple files to play with and the technical details / file format.

User avatar
madtheory
Supporting Member!
Supporting Member!
Posts: 5361
Joined: Mon May 01, 2006 12:45 pm
Real name: Tomas Mulcahy
Gear: Wurlitzer Opus 1536, Model F, Morovdis Arpeggiator, Maplin My First EQ, Jeff Wayne Thunderchild rack, Thermostat, Buck Owens' Moog.
Location: Cork, Ireland
Contact:

Re: AX-80 O.S. hacking co-op?

Post by madtheory » Tue Aug 09, 2016 8:55 am

Amazing work! I guess you could solder a ZIF socket into the Akai? But be careful- you might get sucked in to all sorts of hacking, maybe developing an upgrade á la Kiwitech ;)

User avatar
rhino
Supporting Member!
Supporting Member!
Posts: 2611
Joined: Sat Aug 02, 2008 5:00 pm
Real name: bill
Gear: keepers:
Kurzweil K2500x
Ensoniq TS-12
Yamaha SY-99
Alesis QS-8
Roland JD-800
Roland JX-10
Akai AX-80
Ensoniq SQ-80
Korg DSS-1
Moog Mini
Fizmo
Location: kentucky hills

Re: AX-80 O.S. hacking co-op?

Post by rhino » Thu Aug 11, 2016 7:12 pm

WOW! I am far beyond impressed. I wish now I had asked for help in creating world peace, a cancer cure, and time travel! Kudos, cheers and fist-bumps to all.
:shock:
When the wise man points to the stars, the fool looks at the finger.
- Confucius

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Sun Aug 14, 2016 9:10 pm

rhino wrote:WOW! I am far beyond impressed. I wish now I had asked for help in creating world peace, a cancer cure, and time travel! Kudos, cheers and fist-bumps to all.
:shock:
Well... to clarify, only TAPE IN/OUT patch editing and preset replacement is working so far.

In other words, once someone makes a patch editor then we can easily backup, edit, restore, and trade user banks A/B as small binary files which could be broken up into individual patches, etc. Both banks A/B have to be loaded at the same time, but it's simple to mix-and-match various patches from other banks and whatnot to create a library and/or "best of" banks.

Clearly this is advantageous compared to large audio files which are monolithic slabs that can only be restored as one-shots and never edited. Once a patch editor is created then this will be usable for anyone regardless of what their firmware revision is or whether they have/want custom firmware or not. It will work with any fully stock AX80.

I have created the tape out decoder (wave to patch banks) and the tape in encoder (patch banks to wave) utilities but they're relatively useless without a patch editor. I can manually edit and combine patches, but that's... well... just not fun and mostly defeats the purpose of the project.

The other development is (again, once someone creates a patch editor) that now presets can be replaced with custom patches of one's choosing. This requires replacing the EPROM though, so it's a bit more involved. Oh yeah, and it (practically) requires the currently non-existent patch editor.

Is it clear we need a patch editor, yet? :lol:

As far as SysEx and other OS hacks: I'm stuck at the moment because my SysEx dumps are still returning semi-random gibberish, and I don't know why. I'm like 95% of the way to successful MIDI patch dumping, but whatever I'm overlooking is standing in the way of the MIDI patch save/load idea.

User avatar
madtheory
Supporting Member!
Supporting Member!
Posts: 5361
Joined: Mon May 01, 2006 12:45 pm
Real name: Tomas Mulcahy
Gear: Wurlitzer Opus 1536, Model F, Morovdis Arpeggiator, Maplin My First EQ, Jeff Wayne Thunderchild rack, Thermostat, Buck Owens' Moog.
Location: Cork, Ireland
Contact:

Re: AX-80 O.S. hacking co-op?

Post by madtheory » Mon Aug 15, 2016 8:57 am

So I take it that it's not easy to split a bank into individual patches?

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Mon Aug 15, 2016 12:33 pm

madtheory wrote:So I take it that it's not easy to split a bank into individual patches?
It's super easy. It would just be a hassle to try to create/merge/copy/edit patches without a patch editor which is where we stand now.

Creating a serviceable patch editor should take no more than a day or two for anyone that routinely codes stuff with Visual Studio or the like. The technical aspects are all figured out, it's just a matter of someone else being willing and able to slap together some kind of GUI.

Getting banks in and out of the AX80 in a computer editable format isn't (shouldn't be) a problem anymore, but without a GUI to manipulate those banks/patches then you might as well stand over the AX80 itself and manually key in data, right?

I'll eventually get to it someday if no one else steps up, but now that I'm 100% sure the "poor man's solution" of tape in/out works and can serve as a fallback method, I've shifted my focus back to the OS hacks.

As more clarification: Transmitting/receiving individual patches isn't viable for the tape in/out method. What you'd do is transfer Banks A/B from the AX80 to the computer, edit or replace any patches you want changed, and then transfer everything back to the AX80 again in one big lump.

Basically you could create a patch library and then just go through and select which patches you want to be in Banks A/B (slots 1-64). It would be very easy to reorder, copy/paste, edit, and so on without having to manually key in stuff on the AX80. It would also facilitate trading patches between users and give you the ability to name patches (not visible on the AX80, of course) and all that other good stuff.

Because historically, the only way to combine patches from other banks was to key it in manually. So if someone uploaded a tape dump and you only liked some of the patches from it then you'd have to transfer their tape dump to the AX80, write down all the parameters, transfer your patches back, and then manually key in the replacement patches over the patches you wanted to replace.

:---)

Now I can take a tape dump and convert it into banks/patches without even loading it into the AX80. And then I can copy/paste patches from bank to bank and edit the patches without using the AX80. It's just more manual labor than it's really worth because there's no GUI yet. Without the automation that a patch editor would provide, it's more an act of desperation than a breakthrough.

When it comes to SysEx, right now I'm just trying to get it to work the same way as the tape in/out method, insofar as dumping Banks A/B, manipulating what you want, and then sending both banks back to the AX80. Given how fast and convenient MIDI is, transmitting/receiving on the individual patch level is really just an ideal and wouldn't be that much of an improvement over bank transfers. Functionally, it works out to be just about the same.

What would really be splendid is real-time parameter editing over SysEx. In theory, it's possible, but I don't know if there's enough room in code to implement it. I think it's going to be limited to just bank in/out over MIDI, but of course, that's not even working yet, so...

pouncey
Newbie
Newbie
Posts: 12
Joined: Fri Aug 31, 2012 6:03 pm

Re: AX-80 O.S. hacking co-op?

Post by pouncey » Sun Aug 28, 2016 1:01 am

Just got an ax80 and I can't begin to say how much I'd love to see Sysex implemented in it. Hoping that this will turn into reality. Seems very doable. I suspect that getting an editor wouldn't be too hard either. Does midiquest offer any generic editor that could be customized for an ax80?

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Sun Aug 28, 2016 1:20 am

Dumped and disassembled the CPU mask ROM yesterday.

I don't have it entirely figured out yet as there's some unorthodox stuff going on by the looks of it, but it seems to do much less than I would have thought. The interesting points are that it drops into 64K mode by default, so that could potentially unlock some extra capabilities if someone was clever and patient enough. Also, it seems that out of the entire 4K, less than 1K is actual code and the remainder is a mammoth table. Or tables plural, perhaps.

Either way, nothing I've found so far is directly helpful with the whole upgrade idea, but it's still interesting to peer inside code that has likely not been seen by human eyes for a couple decades.

Rasputin
Senior Member
Senior Member
Posts: 808
Joined: Thu Jul 21, 2016 4:52 am

Re: AX-80 O.S. hacking co-op?

Post by Rasputin » Sun Aug 28, 2016 1:51 am

pouncey wrote:Just got an ax80 and I can't begin to say how much I'd love to see Sysex implemented in it. Hoping that this will turn into reality. Seems very doable. I suspect that getting an editor wouldn't be too hard either. Does midiquest offer any generic editor that could be customized for an ax80?
That approach could possibly work once SysEx is working (and yes, it's almost certainly doable, at least in a primitive sense) but right now only tape in/out is working correctly, and that requires a custom editor for a variety of reasons. Plus, tape in/out is the only thing that is ever going to work with a fully stock AX80 (every revision, no less), so it's very attractive in that regard.

User avatar
madtheory
Supporting Member!
Supporting Member!
Posts: 5361
Joined: Mon May 01, 2006 12:45 pm
Real name: Tomas Mulcahy
Gear: Wurlitzer Opus 1536, Model F, Morovdis Arpeggiator, Maplin My First EQ, Jeff Wayne Thunderchild rack, Thermostat, Buck Owens' Moog.
Location: Cork, Ireland
Contact:

Re: AX-80 O.S. hacking co-op?

Post by madtheory » Sun Aug 28, 2016 6:57 pm

pouncey wrote:Does midiquest offer any generic editor that could be customized for an ax80?
Yes.

pouncey
Newbie
Newbie
Posts: 12
Joined: Fri Aug 31, 2012 6:03 pm

Re: AX-80 O.S. hacking co-op?

Post by pouncey » Mon Sep 05, 2016 1:11 am

I am hopeful that something comes of this. Nice Sysex control would be good for lots of reasons.

Post Reply