One of the amazing things about this project is that the author built physical harnesses for real early CPUs so that he could build test suites against the real hardware and ensure the emulation is 100% correct, down to every timing and quirk of the original hardware.
To add on top this, the author wrote multiple blog posts on their setup [0, 1, 2]. The project itself is hosted at https://github.com/dbalsom/arduinoX86
besides the fact that it was written in rust, rust happens to be a really nice language to write emulators, you don't have to think much about threading and not much abut memory management, rust makes that easy => you can concentrate on your pixels. Moreover LLM grasp it very well so that you can get a bit more spare time for your emulator-side-project.
It was very long since I wrote any sort of C++ and using rust was pretty refreshing.
Second "besides": marty's PC may not have a lot of breadth in terms of supported hardware, but it gets the accuracy totally right. It's a very special kind of achievement.
(I'm not a rust fanboy :-) I just appreciate the language for writing my emulator)
For not well off geeks you could just solder a bunch of resistors together and get vastly better sound than from the crappy PC speaker and there were games that supported it and I wrote some software for it (which unfortunately is gone I think). I had a lot of just having this on the pc in the house.
"Not long after its introduction, Creative Labs introduced its competing Sound Blaster card. The Sound Blaster was fully compatible with AdLib's hardware, and it also implemented two key features absent from the AdLib: a PCM audio channel and a game port. With additional features and better marketing, the Sound Blaster quickly overshadowed AdLib as the de facto standard in PC gaming audio. AdLib's slow response, the AdLib Gold, did not sell well enough to sustain the company."
This comment is itself a meta comment but here we go I guess...How is it possible that half the comments in this thread are about the title itself? It’s not even a made-up title, it’s taken straight from the project’s README...I keep seeing people complaining almost aggressively that others are touting Rust as a useful tool (which, to me personally, it certainly is). Does someone have a financial stake in opposing Rust’s development, or what?
When I started writing MartyPC over four years ago, writing an emulator in Rust was still somewhat novel. The development of the 'egui' immediate-mode graphics framework made it possible to make one with an advanced interactive debugger.
By mentioning Rust people have been able to more easily find MartyPC as an example of how (or how not to) write an emulator in Rust.
Perhaps the tag as outlived its usefulness, especially if people find it pompous or something. I'm not trying to be Rust cultist, I swear.
Rust's user community is toxic and unbearable. That's enough to explain the widespread resentment against it. Their fanboys are annoying. CommonLisp used to have a similar community problem.
I write Rust code. I don’t mind it. But the truth is, I use very little of the language.
I visit the Discord, and I see all the crazy overcomplicated shit these people are writing.
If I had to try and make heads or tails of some of that shit I’d go crazy.
I actually think some of it is actual trolling by Rust itself.
And yes, the people are toxic. It’s like they really believe C and C++ and everyone else did literally everything wrong. And some of their justifications are seriously weak sauce.
And remember, I like Rust. At least the parts I use. But it’s easily going to eclipse C++ in complexity if it continues the way it has been operating.
I believe a true engineer should love problems not only languages. But it seems like majority of Rust devs only love the language and try to convert all the problems into Rust problems.
If you have problems in C/C++? Write Rust.
If you have problems in Python? Use Rust.
If you have an issue with your product? Rewrite it in Rust.
Is your company in pinch? Launch a new product in Rust.
If you burn your finger while you’re cooking? Write Rust.
If you have a mental problem? Read a Rust book.
You don’t have a girl friend? You have Rust next to you.
If you hate yourself? Writing Rust will solve your life problems.
its just ppl trying to be different from their boring parents. wish i had enough karma to flag them too but i keep getting downvoted into oblivion for making fun of written in rust posts
Yep, before UNIX and C there were no systems programming languages, and after getting the clay tablets from UNIX and C, all civilisation was built upon them. /s
At least when you spend long time around some programming circles.
"cross-platform" and Rust, as advertised in the current title/link label, is incompatible for sure. Can't get that to run on my older OS X machine nor my Amiga. :)
[0]: https://martypc.blogspot.com/2023/06/hardware-validating-emu...
[1]: https://martypc.blogspot.com/2023/05/exploring-dma-on-ibm-pc...
[2]: https://martypc.blogspot.com/2023/10/bus-sniffing-ibm-5150.h...
It was very long since I wrote any sort of C++ and using rust was pretty refreshing.
Second "besides": marty's PC may not have a lot of breadth in terms of supported hardware, but it gets the accuracy totally right. It's a very special kind of achievement.
(I'm not a rust fanboy :-) I just appreciate the language for writing my emulator)
https://github.com/necroware/silly-sound-bastard
From Wikipedia,
"Not long after its introduction, Creative Labs introduced its competing Sound Blaster card. The Sound Blaster was fully compatible with AdLib's hardware, and it also implemented two key features absent from the AdLib: a PCM audio channel and a game port. With additional features and better marketing, the Sound Blaster quickly overshadowed AdLib as the de facto standard in PC gaming audio. AdLib's slow response, the AdLib Gold, did not sell well enough to sustain the company."
Are you using DVORAK? If you are willing to help, please open a Github issue with some info about your keyboard, and I'll build support for it.
/s
By mentioning Rust people have been able to more easily find MartyPC as an example of how (or how not to) write an emulator in Rust.
Perhaps the tag as outlived its usefulness, especially if people find it pompous or something. I'm not trying to be Rust cultist, I swear.
I’m amused by the implication of human bots.
I visit the Discord, and I see all the crazy overcomplicated shit these people are writing.
If I had to try and make heads or tails of some of that shit I’d go crazy.
I actually think some of it is actual trolling by Rust itself.
And yes, the people are toxic. It’s like they really believe C and C++ and everyone else did literally everything wrong. And some of their justifications are seriously weak sauce.
And remember, I like Rust. At least the parts I use. But it’s easily going to eclipse C++ in complexity if it continues the way it has been operating.
What?
but I see your point.
If you have problems in C/C++? Write Rust.
If you have problems in Python? Use Rust.
If you have an issue with your product? Rewrite it in Rust.
Is your company in pinch? Launch a new product in Rust.
If you burn your finger while you’re cooking? Write Rust.
If you have a mental problem? Read a Rust book.
You don’t have a girl friend? You have Rust next to you.
If you hate yourself? Writing Rust will solve your life problems.
(To clarify: I like Rust. I use it every day. But this is going too far.)
There was a time for CoffeeScript, PureScript, Elm, Ruby and whatever else you can think of.
Naturally Lisp has to have monthly entries.
/s
At least when you spend long time around some programming circles.
I've heard the comments here loud and clear :) You all don't think Rust is novel anymore and I should lose that bit.