GloriousCow2 hours ago
Hi, thanks for checking out MartyPC. I'm the developer if there are any questions.
indroraan hour ago
What's your favorite "What the FUCK were they smoking when they designed this?" moment?
AmazingEveryDay34 minutes ago
Many people are very angry that you used Rust. Did you expect this choice to cause such an uproar?
JoshTriplett10 minutes ago
Angry people gonna angry. Don't take criticism from people you wouldn't take advice from.
tensor5 hours ago
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.
aw16211075 hours ago
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
[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...
pjmlp13 hours ago
Adlib support! At least someone else remembers it wasn't only Soundblaster.
anonzzzies11 hours ago
All my friends had Soundblasters; I had a self soldered Covox. Fun times.
abrookewood8 hours ago
Whaaat?? Do tell more!
anonzzzies8 hours ago
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.
sjsdaiuasgdia8 hours ago
[dead]
_flux10 hours ago
But Soundblaster came with Adlib, so surely complete support for SB should mean Adlib support as well.. ?
pjmlp8 hours ago
Yeah and eventually Adlib was gone.
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."
GloriousCow3 hours ago
I haven't implemented the Soundblaster card yet, although it's quite high on my list of things to do.
wiz21c8 hours ago
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)
[deleted]5 hours agocollapsed
rrr_oh_man14 hours ago
Doesn't seem to support non-QWERTY keboards :(
GloriousCow3 hours ago
I've built out a full keyboard-remapping system, to support any keyboard layout. I need help building these files.
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.
rrr_oh_man35 minutes ago
Thanks! Done
teiferer12 hours ago
But it's written in Rust! Who cares about non-qwerty!
/s
ranger_danger15 hours ago
Ironically, and unfortunately, this doesn't actually emulate the FM Towns Marty (or even the regular FM Towns PC) like I assumed it would.
Dwedit15 hours ago
Mysteriously, backslash has been mapped to backspace for some reason.
rrr_oh_man28 minutes ago
That's keyboard code [1] vs. Keyboard key [2].
[1] Physical location of a key https://w3c.github.io/uievents/#keys-codevalues
[2] Mapping of a key https://w3c.github.io/uievents/#keys-keyvalues
The naming is terrible and I have to look it up every single time
GloriousCow3 hours ago
What keyboard layout are you using? I can't reproduce on a US layout.
Dweditan hour ago
Key is Scancode 0x2B, or as a VKEY code: VK_OEM_5 (0xDC)
Javascript says the key I pressed was keycode 220 (same number as 0xDC) or key "\".
I had Tandy 1000 as the selected machine. When I look at the onscreen keyboard, I don't see a backslash key underneath backspace, but I do see one next to left shift. For keyboards that have the alternate backslash there, it is listed as having a scancode of 0x56 and a VKEY code of VK_OEM_102 (0xE2). (I haven't actually checked information specific to the actual Tandy keyboard)
datakan8 hours ago
I don't think Backspace as a key was standard internationally until 1994. Apple still doesn't use it, just Delete.
Dwedit7 hours ago
This is about early IBM PCs, not apple computers. And the non-working key is the Backslash key \ , not the backspace key.
unixhero15 hours ago
Old terminals had this shenanigans going on too. Backspace was not backspace and so on
[deleted]12 hours agocollapsed
JMiao14 hours ago
probably in the minority but i want the screeching and grumbling hard disk sounds
hggh12 hours ago
IBMulator has HDD sounds: https://www.ibmulator.org/
chvid14 hours ago
Almost usable on an iPhone.
GloriousCow2 hours ago
What would you say is missing or not working well?
kuschkufan4 hours ago
I used to have a phone like that.
benj1117 hours ago
I assume it's called MartyPC because it Marty McFlies?
[deleted]15 hours agocollapsed
throwaway572710 hours ago
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?
GloriousCow2 hours ago
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.
tonyedgecombe8 hours ago
I suppose it makes a change from complaining that the post was written by an LLM.
braiamp7 hours ago
But if it's written in rust and with llm then they both implode and we get really insightful comments
[deleted]10 hours agocollapsed
saiditmate9 hours ago
[flagged]
taneq9 hours ago
> non-human bots
I’m amused by the implication of human bots.
dmd7 hours ago
No, it's being downvoted because (a) who cares and (b) you wrote a wall of text that makes you look like you have schizophrenia.
suddenlybananas7 hours ago
>murderous ways
What?
134159 hours ago
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.
caspper696 hours ago
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.
BobMcBob14 hours ago
Yet another avenue to play EGATREK in a browser. For that, its work it.
unixhero14 hours ago
What's great about Egatrek?
EvanAnderson13 hours ago
Oh, holy crap. I haven't thought about EGATREK in at least 30 years. I'm going to go dig it up right now. Thanks for causing me to recall that memory!
gaoheyang10 hours ago
nice
hncsiocp9x6 hours ago
[dead]
szundi15 hours ago
Why never seeing a title “written by C” or Java or js
pigeons15 hours ago
"Hax – a minimalist, terminal-native coding agent written in C" https://news.ycombinator.com/item?id=49273175
but I see your point.
fukaiall8 hours ago
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.
ChickeNES2 hours ago
Because people love to propagandize
tenox715 hours ago
The main feature of apps written in Rust is that they are written in Rust.
dosisking15 hours ago
"It's not a feature, it's a bug"
fortran7714 hours ago
I flag all these “written in Rust” posts.
globalnode13 hours ago
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
teiferer12 hours ago
Because their following is not cult-based.
(To clarify: I like Rust. I use it every day. But this is going too far.)
pjmlp14 hours ago
Because they predate HN, and aren't hip languages any longer.
There was a time for CoffeeScript, PureScript, Elm, Ruby and whatever else you can think of.
Naturally Lisp has to have monthly entries.
/s
imhoguy15 hours ago
Because nowadays "written in Rust" means "written by AI", as Java or C are not so sexy for LLMs /s
ChickeNES2 hours ago
Not really true, I've had LLMs write hundreds of thousands of lines of C just fine, including stripping out Rust deps out of projects I use. :)
azwaterdamagere13 hours ago
[flagged]
globalnode14 hours ago
the other week i wrote a program in python, and ive been thinking of upgrading my cpp knowledge from v11, wish me luck
tonyhart713 hours ago
how to use this fossil computer era ????? I cant type shhiiii
rvz11 hours ago
Written in Rust™teiferer12 hours ago
What does the "written in Rust" contribute to the title, exactly?
hnlmorg13 hours ago
Early PCs weren’t written in Rust.
queenkjuul12 hours ago
Early PCs were made of steel which can rust
hnlmorg12 hours ago
Nicely done!
pjmlp13 hours ago
In C neither, despite urban myths.
hnlmorg12 hours ago
Is that something people believe? I can’t say that’s a myth I’ve ever heard.
pjmlp12 hours ago
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.
avadodin11 hours ago
computer, remove the extraneous slash es from the statement.
pjmlp11 hours ago
"I'm sorry, Dave, I'm afraid I can't do that"
Kudos13 hours ago
Not specific to this project, but nowadays when I see "written in rust" I hear "written by Claude".
GloriousCow3 hours ago
When I started this emulator four years ago, this was the first PC emulator written in Rust so it was novel.
I've heard the comments here loud and clear :) You all don't think Rust is novel anymore and I should lose that bit.
binaryturtle12 hours ago
"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. :)
ChickeNES2 hours ago
Yup, I have private forks where I've had Claude/Codex rip out Rust for that reason.