Top all-time · #5110
ajxs.me
Personal blog · ajxs.me/blog · on HN as ajxshardwareprogramming
ajxs.me is a personal blog at ajxs.me about hardware and programming. Since 2021, 15 different Hacker News readers have linked it 32 times, most often “Yamaha DX7 Technical Analysis”. It is still writing: the last post was on 2025-12-31, and you can follow it by feed.
Too few sampled comments (4) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for technical write-ups on reverse-engineering vintage synth hardware and firmware, especially the Yamaha DX7 and FM synthesis, plus a post on C++ floating point types.
Summarised by Claude from a sample of 4 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
ajxs personal site
Most-linked posts?
- Yamaha DX7 Technical Analysis3 people · 3 mentions · first linked 2021-10-21
- Introduction to reverse-engineering vintage synth firmware2 people · 4 mentions · first linked 2024-04-22
- Hacking the Yamaha DX9 to Turn It into a DX7 (2023)2 people · 2 mentions · first linked 2023-10-25
- How the Yamaha FM synth cassette interface works2 people · 2 mentions · first linked 2022-11-15
- How does Ada's memory safety compare against Rust?2 people · 2 mentions · first linked 2025-02-10
- Giving Ada a Chance2 people · 2 mentions · first linked 2021-03-01
- μCOM-87: The Strangest Architecture You've Never Worked With2 people · 2 mentions · first linked 2026-08-20
What Hacker News says?
https://ajxs.me I use this site to write about my various technical interests, and hobby projects. Lately this has been reverse engineering vintage synthesisers. I've really been enjoying technical writing, and improving my writing skills since starting the blog.
Comment linking /
on “Ask HN: Share your personal site”Submitted Yamaha DX7 Technical Analysis as a story · 287 points
HN discussionI've been doing a lot of reverse-engineering of synthesiser ROMs lately. The Yamaha DX9 ROM has some fragments of the firmware's symbol table embedded in the empty space left in the binary[0], along with a big block of 6303 code that was probably from whatever development system they used. It's a really amazing feeling when you stumble upon things like this! I'm such a nerd about these things that I feel like some k…
Comment linking /blog/Hacking_the_Yamaha_DX9_To_Turn_It_Into_a_DX7.html
on “The Space Quest II Master Disk Blunder”Submitted Introduction to reverse-engineering vintage synth firmware as a story · 196 points
HN discussionIt would be really great for me if any of these CSS preprocessors offered a standalone command line version that didn't need npm to install. My developer blog ( https://ajxs.me ) is built by a homegrown static-site-generator built in Python, which reads data from a simple SQLite database. I've been looking for a suitable CSS preprocessor for a while, however the ones I can find are all totally overcooked for my need…
Comment linking /
on “Parcel CSS: A new CSS parser, compiler, and minifier”Submitted Giving Ada a Chance as a story · 177 points
HN discussionA while ago I created a simple website using an XML file as a storage technology and XSLT to render it to HTML. The data stored would be updated infrequently and suited a consistent format, making XML suitable for the job. Originally the site index file pointed to the XML file and the XSLT was rendered by the browser. This worked perfectly for a long time. Even though there was some technology to learn, it was a zer…
Comment linking /
on “Ask HN: What novel tools are you using to write web sites/apps?”Submitted How does Ada's memory safety compare against Rust? as a story · 166 points
HN discussionIf people are interested in the DX7's technical details, I've done some work reverse-engineering it, and some of Yamaha's other FM synths: https://ajxs.me/blog/tag/DX7.html Ken Shirriff has also done some amazing work analysing the DX7's sound chips: https://www.righto.com/2021/11/reverse-engineering-yamaha-dx... A really awesome documentary on the DX7 by MadFame: https://www.youtube.com/watch?v=sXt_NXjc7oY There ar…
Comment linking /blog/tag/DX7.html
on “They don't make them like that any more: the Yamaha DX7 keyboard”Submitted Hacking the Yamaha DX9 to Turn It into a DX7 (2023) as a story · 100 points
HN discussion> In mathematical terms, FM synthesis is achieved by using the instantaneous amplitude of a sound wave (the modulator) to adjust the rate of change in the phase angle of another wave (the carrier). > As convoluted as this sounds, it makes more sense when visualised: [1] ...but does it?? [1] https://ajxs.me/static/img/articles/dx7_technical_analysis/f...
Comment linking /static/img/articles/dx7_technical_analysis/frequency_modulation.jpg
on “Yamaha DX7 Technical Analysis”Submitted How the Yamaha FM synth cassette interface works as a story · 54 points
HN discussionI was writing an article on reverse-engineering vintage synthesisers[0], and I ended up getting majorly sidetracked trying to find out exactly what year the Hitachi HD44780 LCD controller was first manufactured, or try and find any background information on it. The earliest reference to it I can find online is a 'preliminary' user's manual[1], dated March 1981. I know it's a bit of a weird rabbit hole to go down, bu…
Comment linking /blog/Introduction_to_Reverse-Engineering_Vintage_Synth_Firmware.html
on “Ask HN: What rabbit hole(s) did you dive into recently?”Submitted Giving Ada a Chance (2021) as a story · 5 points
HN discussionI've spent a lot of time reverse-engineering vintage synthesizer firmware (which is a bit simpler than modern games). I did complete end-to-end annotations of these two vintage synth ROMs: - https://github.com/ajxs/yamaha_dx7_rom_disassembly - https://github.com/ajxs/yamaha_dx9_rom_disassembly It started because I was just curious about how these devices actually worked. In the end I learned a lot of really invaluab…
Comment linking /blog/Introduction_to_Reverse-Engineering_Vintage_Synth_Firmware.html
on “Duke Nukem: Zero Hour N64 ROM Reverse-Engineering Project Hits 100%”Submitted Giving Ada a Chance as a story · 3 points
HN discussion> The goal of ANY software engineer worth their salt should be minimizing errors and defects in their end product. > > ...to the extent possible within their project budget. Sure, but when other engineers discover that shit caused us many defects (e.g., asbestos as a fire insulator), they don't turn around and say, "Well, asbestos sure did cause a lot of cancer, but Cellulose Fibre doesn't shield us from neutron rad…
Comment linking /blog/How_Does_Adas_Memory_Safety_Compare_Against_Rust.htm
on “I'm too dumb for Zig's new IO interface”Submitted How Far Back in Time Can I Take My Website's Design? as a story · 2 points
HN discussionDid you read the section about what made the DX7 hardware a good target for this project? https://ajxs.me/blog/Introduction_to_Reverse-Engineering_Vin... The ARQ96 is an incredibly niche product all things considered, but especially compared to the DX7. It's also ~10 years old rather than ~40 years old. It's a completely different beast. Zoom released few firmware updates, but v1.x to v2.x was a very significant cha…
Comment linking /blog/Introduction_to_Reverse-Engineering_Vintage_Synth_Firmware.html
on “Introduction to reverse-engineering vintage synth firmware”Submitted μCOM-87: The Strangest Architecture You've Never Worked With as a story · 1 points
HN discussionI wrote the article mentioned by Ken: https://ajxs.me/blog/Yamaha_DX7_Technical_Analysis.html I've unwittingly become a bit of a Yamaha FM Synth historian! Here are some other contributions to reverse-engineering the DX7: A fully documented disassembly of the DX7 ROM: https://github.com/ajxs/yamaha_dx7_rom_disassembly A new firmware ROM that makes the DX9 function more like a DX7: https://github.com/ajxs/yamaha_dx97
Comment linking /blog/Yamaha_DX7_Technical_Analysis.html
on “Reverse-engineering the Yamaha DX7 synthesizer's sound chip from die photos (2021)”> Regardless of the language, you cannot write some special program that guarantees an input will be valid if it comes from an external source or a human. It is simply impossible to prove this at compile time. > ...but from my perspective it looks worse in Ada... This isn't really true. SPARK obviously can't prove that the input will be valid, but it can formally prove that the validity of the user input is verified…
Comment linking /blog/How_Does_Adas_Memory_Safety_Compare_Against_Rust.html
on “Should I choose Ada, SPARK, or Rust over C/C++? (2024)”Trove is fantastic. It came in handy very recently for the same project I used the Library of Congress for[1]. The Museums of History New South Wales has a great online archive as well[2]. [1]: https://ajxs.me/blog/The_Identity_of_The_Sanctimonious_Kid.h... [2]: https://mhnsw.au/collections/state-archives-collection/
Comment linking /blog/The_Identity_of_The_Sanctimonious_Kid.html
on “MyHeritage debuts OldNews.com, offering access to myriad historical newspapers”I'd never seen [1] before. Thanks for the link! That's a great and even-handed discussion of the topic. I've written a lot of hobby Ada code. I really like the language. Recently I did some research into how memory safety in Ada/SPARK compares with Rust[0]. My conclusion was that Rust is better at outright preventing common memory-related errors, but Ada has a lot of great features which let you avoid them in the fi…
Comment linking /blog/How_Does_Adas_Memory_Safety_Compare_Against_Rust.html
on “Ada crate of the year 2024 announced”Author here: Thank you so much for posting the article! I'm happy to answer any questions about the project. If you find this interesting, I wrote an overview of how I approach these projects: https://ajxs.me/blog/Introduction_to_Reverse-Engineering_Vin... I'm currently messing around inside the Casio CZ101, another cool 80s digital synth.
Comment linking /blog/Introduction_to_Reverse-Engineering_Vintage_Synth_Firmware.html
on “Hacking the Yamaha DX9 to Turn It into a DX7 (2023)”For "any size" I was kind of expecting arbitrary sized mantissa/exponent, can be useful for emulating weird DACs, for example, 12-bit mantissa and 3-bit exponent[1]. [1] https://ajxs.me/blog/Yamaha_DX7_Technical_Analysis.html
Comment linking /blog/Yamaha_DX7_Technical_Analysis.html
on “Show HN: Floating point arithmetic types in C++ for any size and any base”Location: Sydney, Australia Remote: Yes Willing to relocate: Potentially Technologies: Node.js/Typescript, PostgreSQL, MongoDB, AWS, .NET, React(Next.js, Redux), C, Rust, Ada, and more... Email: ajxs@panoptic.online https://github.com/ajxs https://ajxs.me
Comment linking /
on “Ask HN: Who wants to be hired? (February 2026)”https://ajxs.me/
Comment linking /
on “Ask HN: Could you share your personal website here?”It's a really good question why Casio didn't continue making synths after the 80s. It's possible that the entire CZ-line was intended to be a one-off response to Yamaha's breakaway success with the DX7. After the CZ-line, it looks like Casio tried to keep up with Yamaha for a few years, but exited the market after Yamaha launched the SY-line. From what I understand, the CZ-series were great sellers then, but even wi…
Comment linking /blog/uCOM-87_The_Strangest_Architecture_Youve_Never_Worked_With.html
on “New Casio F-B100W – Upgrade to the iconic F-91W after 40 years”I'm super impressed that someone has emulated the CZ-101's sound generation LSI! Lots of people use MAME as an emulator to help reverse-engineering vintage synthesisers. I only recently discovered this too. Since most 80s synths were built mostly out of 'off the shelf' components, it's not too difficult to build a MAME driver which is capable of running the synth's firmware. The actual sound generation is another st…
Comment linking /blog/Hacking_the_Yamaha_DX9_To_Turn_It_Into_a_DX7.html
on “MAME 0.260”