Reply 360 of 399, by jal
- Rank
- Oldbie
GloriousCow wrote on 2025-01-25, 23:41:Tons of stuff is either janky or outright broken (you can't even reboot - just refresh the page), but it basically works and you can load disk images.
Impressive.
JAL
GloriousCow wrote on 2025-01-25, 23:41:Tons of stuff is either janky or outright broken (you can't even reboot - just refresh the page), but it basically works and you can load disk images.
Impressive.
JAL
Fixed rebooting, setting filenames for uploaded disk images (and subsequently you can now eject them properly).
MartyPC.net now auto-mounts a boot disk image, that prints some fun ANSI art suggestions for newbies. A surprising number of people though the GLaBIOS disk boot error was a bug or that the emulator wasn't working properly.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
chenke wrote on 2024-09-06, 06:39:Excuse me for asking, but the Area 5150 demo in martypc has been malfunctioning since version 0.2.0, especially with the credits at the end being a complete mess, and still not fixed to this day.
Recently I've been working on Area 5150 again. If you watched my talk on Area 5150 at VCF Midwest you probably got an idea of why this demo brutalizes emulators. The Lake (end credits) effect requires nearly perfect CPU, CRTC and timer emulation.
I've been going through my bus capture (https://github.com/dbalsom/marty_tools/blob/m … a5150/README.md) comparing hardware to emulator output in two instances of sigrok Pulseview. This shows me where MartyPC deviates from hardware during the effect, but it doesn't always tell me what to do about it.
I had a very unfortunate bug in my core device tick logic that was causing the timer to get out of sync in a very confusing way, and unfortunately I wasted a lot of time scratching my head as to why my timer appeared to run slow now and then as a result. Once that was fixed we saw immediate improvements. The end credits now play through in the web version a bit more than half the time. As previously mentioned the old web player uses a timing hack to ensure that the end effect ISR starts at the correct position on screen. We're close enough now that this hack is no longer required, which I'm very pleased to see.
I suppose that means that Area 5150 was only finally emulated "properly" some two years after its release. Well, almost - unfortunately the fixes that make the end credits work have knocked the parallax checkerboard effect out of sync. I don't know how you set up a regression test for an entire 8-minute demo, but I feel like I will need one.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
Congratulations, that's quite some effort.
GloriousCow wrote on 2025-02-09, 16:26:Recently I've been working on Area 5150 again. If you watched my talk on Area 5150 at VCF Midwest you probably got an idea of w […]
chenke wrote on 2024-09-06, 06:39:Excuse me for asking, but the Area 5150 demo in martypc has been malfunctioning since version 0.2.0, especially with the credits at the end being a complete mess, and still not fixed to this day.
Recently I've been working on Area 5150 again. If you watched my talk on Area 5150 at VCF Midwest you probably got an idea of why this demo brutalizes emulators. The Lake (end credits) effect requires nearly perfect CPU, CRTC and timer emulation.
I've been going through my bus capture (https://github.com/dbalsom/marty_tools/blob/m … a5150/README.md) comparing hardware to emulator output in two instances of sigrok Pulseview. This shows me where MartyPC deviates from hardware during the effect, but it doesn't always tell me what to do about it.I had a very unfortunate bug in my core device tick logic that was causing the timer to get out of sync in a very confusing way, and unfortunately I wasted a lot of time scratching my head as to why my timer appeared to run slow now and then as a result. Once that was fixed we saw immediate improvements. The end credits now play through in the web version a bit more than half the time. As previously mentioned the old web player uses a timing hack to ensure that the end effect ISR starts at the correct position on screen. We're close enough now that this hack is no longer required, which I'm very pleased to see.
I suppose that means that Area 5150 was only finally emulated "properly" some two years after its release. Well, almost - unfortunately the fixes that make the end credits work have knocked the parallax checkerboard effect out of sync. I don't know how you set up a regression test for an entire 8-minute demo, but I feel like I will need one.
Thank you for the detailed update on your recent efforts to improve Area 5150 emulation in MartyPC. I deeply appreciate the meticulous work you’ve undertaken to address the end credits ("The Lake") effect, especially given its reliance on near-perfect synchronization across CPU, CRTC, and timer subsystems. Your approach of comparing bus captures between hardware and emulator instances in Sigrok PulseView is particularly fascinating—it underscores the challenges of cycle-accurate emulation, as highlighted in your earlier research on DMA and CGA quirks.
The discovery and resolution of the core device tick logic bug sound like a significant breakthrough, and it’s encouraging to hear that the end credits now function reliably in the web version without timing hacks. While the regression in the parallax checkerboard effect is unfortunate, I share your sentiment that a comprehensive regression testing framework for such a complex demo would be invaluable. Perhaps leveraging automated cycle-accurate checkpoints or integrating community-sourced hardware captures could aid in future validation.
As someone who has followed the challenges of emulating "improper" CGA modes and undocumented CRTC behaviors, I’m optimistic that the remaining issues will be resolved with the same rigor you’ve applied thus far. Your work not only advances emulation accuracy but also preserves the ingenuity of demoscene artifacts like Area 5150, which push vintage hardware to its limits.
Thank you again for your transparency and dedication. I look forward to testing the 0.3.0 release and will continue to follow your progress closely.
chenke wrote on 2025-02-13, 06:32:Thank you for the detailed update on your recent efforts to improve Area 5150 emulation in MartyPC. I deeply appreciate the meticulous work you’ve undertaken to address the end credits ("The Lake") effect, especially given its reliance on near-perfect synchronization across CPU, CRTC, and timer subsystems. Your approach of comparing bus captures between hardware and emulator instances in Sigrok PulseView is particularly fascinating—it underscores the challenges of cycle-accurate emulation, as highlighted in your earlier research on DMA and CGA quirks.
I appreciate the overall sentiment but I find a response clearly written by ChatGPT to be a bit unsettling.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
GloriousCow wrote on 2025-02-14, 03:29:chenke wrote on 2025-02-13, 06:32:Thank you for the detailed update on your recent efforts to improve Area 5150 emulation in MartyPC. I deeply appreciate the meticulous work you’ve undertaken to address the end credits ("The Lake") effect, especially given its reliance on near-perfect synchronization across CPU, CRTC, and timer subsystems. Your approach of comparing bus captures between hardware and emulator instances in Sigrok PulseView is particularly fascinating—it underscores the challenges of cycle-accurate emulation, as highlighted in your earlier research on DMA and CGA quirks.
I appreciate the overall sentiment but I find a response clearly written by ChatGPT to be a bit unsettling.
I'm sorry that my English writing is not very good. I have to turn to DeepSeek to come up with some nice words.(*-*)
GloriousCow wrote on 2025-02-14, 03:29:I appreciate the overall sentiment but I find a response clearly written by ChatGPT to be a bit unsettling.
So I wasn't the only one that suspected as much 😁
JAL
chenke wrote on 2025-02-14, 06:15:I'm sorry that my English writing is not very good. I have to turn to DeepSeek to come up with some nice words.(*-*)
Don't worry about that - your English seems fine, for one thing, and I'd much rather struggle through reading broken English from a real person. We've only got a scant few years before AI replaces all of us, no need to accellerate the timeline 😀
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
Will you add support for Nvidia RIVA 128 emulation to MartyPC?
miller11568 wrote on 2025-02-15, 17:37:Will you add support for Nvidia RIVA 128 emulation to MartyPC?
I find that an extremely odd question. Marty PC is emulating an 8088, which is a 1970s CPU used in an early 80s computer. I believe Glorious Cow's intention is to also support the 80286, a 1982 cpu, as well as EGA, a 1984 graphics chip. You are asking whether he will add a 1997(!) 3D GPU, which was contamporary to Pentium MMX and Pentium II class machines.
JAL
A quick look at this person's post history will let you know everything you need to know.
miller11568 wrote on 2025-02-15, 17:37:Will you add support for Nvidia RIVA 128 emulation to MartyPC?
Look forward to that feature in 2058.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
Tonight I fixed the last bug in Area 5150 I think - after getting the end credits to work, the checkerboard parallax effect was bugging out.
As is often the case, this was the result of making an emulator more accurate and breaking something that was only working by accident.
I needed a small fix in my DMA state logic to tie the IO READY line from the CGA card to the DMAC READY line.
I posted a thread on mastodon about debugging this particular problem using my bus sniffer and decoder: https://oldbytes.space/@gloriouscow/114016158401491342
This means that it took 2 years, 6 months and 9 days to properly emulate Area 5150 without any hacks.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
Congratulations, that's quite a feat! I know enough about emulation to know it's quite difficult, and to persevere for years to get where you are, well, hats off!
Wow, that's quite an accomplishment. Glad to see your dedication and perseverance pay off! Congrats.
Awesome! We've finally arrived at this day: area5150 can run through from start to finish with precision in martypc without any hacks!
I've made major progress with the new desktop version of MartyPC.
I've refactored the display system under a new toolkit - we've temporarily lost multi-window support as a result, but I think I can bring it back eventually.
On the other hand, we can now toggle the display between the window background and a, well, a window in the window.
Plus, we have shaders in windowed mode. Along with an optional bezel overlay, this looks pretty cool.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc
Nice. I assume it's still beta?
jal wrote on 2025-02-24, 11:55:Nice. I assume it's still beta?
MartyPC will probably be in beta for my lifetime. If you're asking if it's released, well, no. Although I did finally push everything up and set 0.4.0 as the default branch.
0.3.0 ended up not seeing the light of day, alas.
With most of the heavy refactoring behind me, I'm full steam ahead on trying to polish up the desktop front end for a new release, now.
MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc