HNHacker News
TopNewBestAskShowJobs

mikepavone

981 karma · joined October 27, 2011

Author of BlastEm, an accuracy focused high performance emulator for the Sega Genesis/Mega Drive. Currently writing C++ at Discord for the game console voice integration. Opinions are my own and don't necessarily reflect those of my employer.

https://www.retrodev.com/

submissionscomments
mikepavone··on Production Imminent: 40 Solar-Charging Aptera EVs Coming Soon
I fell in love with the Aptera back during the Automotive X Prize era. Back then batteries were expensive enough that a vehicle that got decent range by being ultra-efficient was rather attractive. I also loved the unconventional look.

Much harder to justify in a world with normal car EVs with decent range at fairly normal car prices. There are a fair number of choices below their $40K target price. I still hope they succeed, but hard for me to imagine buying one

mikepavone··on Production Imminent: 40 Solar-Charging Aptera EVs Coming Soon
> For me the bigger problem is that it's classified as a motorcycle, which may mean wearing a helmet, and needing to have a class M license.

The only state that requires a motorcycle endorsement for the Polaris Slingshot (an "autocycle" style trike) is Massachusetts, but that state's motorcycle definition exempts fully enclosed vehicles so it shouldn't apply to the Aptera. It's trickier to find a quick summary for helmet laws though. At least some states have exemptions for fully enclosed vehicles and some exempt all autocycles even if they're not fully enclosed. California has an exemption for enclosed trikes that meet certain minimum size and weight requirements which I expect the Aptera to meet.

mikepavone··on The web server deployment model breaks at hobby scale
Sounds like they've worked on some ActivityPub related software based on their other blog posts and codeberg.

The details remind me more of the Bluesky PDS though. It's nodejs-based and the only officially supported way to run it is via a largely self-contained docker container.

mikepavone··on Hybrid-Electric Aicraft Engine Targeting 30% Fuel Efficiency
Chevy Volt was still a parallel hybrid. The gasoline engine was used for driving the wheels for highway cruise because it was more efficient. I think the range extender version of the BMW i3 was a pure serial hybrid though
mikepavone··on Frame – Linux X server in Assembly
Article reads like it was AI-generated too
mikepavone··on Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
Yeah, the Saturn is probably the more practical target. The SH-2s are clocked a little faster, the memory bus is 32-bit wide and there's an off-the-shelf 4MB RAM expansion cartridge. There's also a readily available, first-party PS/2 keyboard adapter (this adapter can also be used on the MD, but you need a custom passive adapter since they switched connectors).

> Good thing is, this is actual Linux (And not uCLinux) so there's still stuff that can be disabled further if for some reason it can't fit still on the available memory.

Doesn't actual Linux require an MMU?

mikepavone··on Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
For what it's worth, the Sub 68K (mostly*) does not share memory with the main 68K. This makes SMP impossible, but on the bright side there's no contention. Sadly, there's also no way for the faster Sub 68K to directly access the cartridge so I think it would be difficult to run Linux on that CPU at all unless you can cram everything into 768KB (program RAM + word RAM)

* Word RAM can be swapped between the 68Ks, or can be operated in a split mode where each 68K gets half. There's no mechanism to allow both 68K's to access the same bank simultaneously though.

mikepavone··on Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
Neat to see this on HN after discussing this a bit with you on the Emudev discord (I'm Mask of Destiny there). I'm curious if you tested this on hardware. I think I mentioned this previously, but my understanding is that the SH-2s are incapable of writing to the cartridge area [0]. This would seem to preclude using the cart as RAM even with the extended "SSF2" mapper. Did you find that to be not the case or was this only tested in an emulator?

[0] - See this Spritesmind forum thread https://web.archive.org/web/20190209161834/http://gendev.spr... (Internet Archive link because the live site is mostly unusable due to the scraper deluge)

mikepavone··on The art and engineering of Sega CD Silpheed
So the problem with the Model 1 that the mixing cable is trying to solve is that the expansion port on that model has audio input pins, but no audio output pins. Now strictly speaking, this is sufficient if you just want to use the MD1's headphone jack (stereo) or A/V out (mono), but in addition to the analog audio circuitry not being amazing (though honestly the MD1 is much better than the MD2 here in general) it also imposes a fairly aggressive low-pass filter. This is rather undesirable for 44.1 kHz CDDA. As you note, the mixing cable allows the RCA outputs to be mixed on the CD hardware side which works around this issue.

On the MD2, they added audio output pins to the expansion port in addition to the existing audio input pins. This allows them to achieve the same effect with no mixing cable.

mikepavone··on Linux for the Sega MegaDrive
It should. There are some small differences between the Nomad and a normal Gen/MD, but nothing that should impact something like this
mikepavone··on Ask HN: What are you working on? (June 2026)
I'm working on adding Sega 32X support to BlastEm [0], the Genesis/Mega Drive (as well as some related Sega systems these days) emulator. I've gotten most games working on this point, though still have some bugs to track down. Also want to increase timing accuracy (even if its not needed for games, it's helpful for homebrew development) and improve perfomance.

[0] https://www.retrodev.com/blastem/

mikepavone··on Earthion: A New Mega Drive-Style Shoot-Em-Up
Yeah, with some effort it's possible (or at least it was) to extract the ROM from the Steam release and play it on the real hardware. They went to a fair bit of trouble to prevent that though. ROM isn't even stored in the clear in-memory while it's running. I guess they wanted to make sure they didn't cannibalize the cartridge release
mikepavone··on Does that use a lot of energy?
I'm not sure it's even a particularly relevant comparison to an hour of use of various other electronic devices. I'm sure the median user is running a lot fewer queries than a Claude Code power-user, but I would guess it's still more than one in a typical session.
mikepavone··on End of an era for me: no more self-hosted git
As someone with a self-hosted Mercurial instance dealing with this, I will say that the big names (OpenAI included, but not exclusively them) generally at least use proper user-agents and respect robots.txt, but they are still needlessly aggressive compared to traditional search indexers.

There are also scrapers that are hiding behind normal browser user agents. When I looked at IP ranges, at least some of them seemed to be coming from data centers in China.

mikepavone··on We replaced H.264 streaming with JPEG screenshots (and it worked better)
Nothing stopping you from encoding h264 at a low frame rate like 5 or 10 fps. In webRTC, you can actually specify how you want to handle low bitrate situations with degredationPreference. If set to maintain-resolution, it will prefer sacrificing frame rate.
mikepavone··on We replaced H.264 streaming with JPEG screenshots (and it worked better)
> They shared the polling code in the article. It doesn't request another jpeg until the previous one finishes downloading.

You're right, I don't know how I managed to skip over that.

> UDP is not necessary to write a loop.

True, but this doesn't really have anything to do with using JPEG either. They basically implemented a primitive form of rate control by only allowing a single frame to be in flight at once. It was easier for them to do that using JPEG because they (to their own admission) seem to have limited control over their encode pipeline.

mikepavone··on We replaced H.264 streaming with JPEG screenshots (and it worked better)
You probably won't get acceptable latency this way since you have no control over buffer sizes on all the boxes between you and the receiver. Buffer bloat is a real problem. That said, yeah if you're getting 30-45 seconds behind at 40 Mbps you've probably got a fair bit of sender-side buffering happening.
mikepavone··on We replaced H.264 streaming with JPEG screenshots (and it worked better)
> When the network is bad, you get... fewer JPEGs. That’s it. The ones that arrive are perfect.

This would make sense... if they were using UDP, but they are using TCP. All the JPEGs they send will get there eventually (unless the connection drops). JPEG does not fix your buffering and congestion control problems. What presumably happened here is the way they implemented their JPEG screenshots, they have some mechanism that minimizes the number of frames that are in-flight. This is not some inherent property of JPEG though.

> And the size! A 70% quality JPEG of a 1080p desktop is like 100-150KB. A single H.264 keyframe is 200-500KB. We’re sending LESS data per frame AND getting better reliability.

h.264 has better coding efficiency than JPEG. For a given target size, you should be able to get better quality from an h.264 IDR frame than a JPEG. There is no fixed size to an IDR frame.

Ultimately, the problem here is a lack of bandwidth estimation (apart from the sort of binary "good network"/"cafe mode" thing they ultimately implemented). To be fair, this is difficult to do and being stuck with TCP makes it a bit more difficult. Still, you can do an initial bandwidth probe and then look for increasing transmission latency as a sign that the network is congested. Back off your bitrate (and if needed reduce frame rate to maintain sufficient quality) until transmission latency starts to decrease again.

WebRTC will do this for you if you can use it, which actually suggests a different solution to this problem: use websockets for dumb corporate network firewall rules and just use WebRTC everything else

mikepavone··on PS5 now costs less than 64GB of DDR5 memory. RAM jumps to $600 due to shortage
Wow, I only paid $265 for 96GB of DDR5 back in April. Same brand (G.SKILL) as the kit in the article too.
mikepavone··on IKEA launches new smart home range with 21 Matter-compatible products
FWIW, they still seem to have not actually pulled the trigger on the account requirement and they've removed the "Starting soon" portion of the nag bar text in the Hue app (though it's still on the web page you get to when hitting "Learn more"). I do wish they would either get it over with or make it clear they're not actually going ahead with forcing accounts though.
mikepavone··on EU court rules nuclear energy is clean energy
> This is not how nuclear works. Nuclear sets a low price that corresponds to its cost, then lets more expensive marginal energy sources set the final price.

This may be an accurate description for fully-depreciated nuclear plants, but it doesn't reflect the economics of new-build nuclear at all. You have to consider both operating and capital costs. Nuclear plants are cheap to operate once built, but those operations have to pay off the capital costs. If the load factor is low, then each unit of generated power has to bear a higher portion of the capital costs. If your capital costs are very high, then you either need a very high load factor or very high spot prices to bear those costs.

> Nuclear can by the way be modulated +20%\-20%

Net demand on CAISO can go from about 2 MW to 30 MW in the summer. 20 MW of that ramp occurs over just 3 hours. I'm sure you can build nuclear plants that ramp that fast, but you need a lot more than the range you're mentioning here. Regardless, I'm not making an argument about the physics of nuclear power plants, just the economics. Expensive plants generally need high load factors to pay off the capital costs.

> nuclear generation in France can go from 25GW to 45GW during a day.

Most of France's nuclear plants are old and thus fully depreciated. The only one built recently (Flamanville Unit 3), is a good example of the bad cost trend in nuclear. While this was a bit cheaper than Vogtle Units 3 and 4 in the US on a dollars per nameplate capacity basis, at 19 billion euro it's still very expensive (and also way over budget).

France also has high rates of curtailment, which is not necessarily a huge problem for them since so much of their generation is already carbon-free, but it does suggest they're already hitting the limits of their ability to ramp production up and down. Whether this is an engineering problem or something to do with the structure of their electricity market is a bit unclear to me

> New small modular reactors promise great improvements, as they can be pre-built in factories, require limited maintenance, lower risk, and as a result much lower cost per MW.

This has been the promise for years, but so far the low costs have yet to materialize and they are estimated to have a higher LCOE than traditional plants. Currently only 2 are actually operational, a demonstration plant in China and a floating power plant using adapted ice-breaker reactors in Russia. There are a few more in the pipeline, but they are all at least a couple years out from actually producing power.

mikepavone··on EU court rules nuclear energy is clean energy
You totally can do it with some combination of overbuilding, storage and increased interconnection. It just starts to get expensive the higher the portion of your generation you want to supply with renewables. There's a good Construction Physics article[0] about this (though it simplifies by only looking at solar, batteries and natural gas plants and mostly does not distinguish between peaker and more baseload oriented combined cycle plants).

Personally, while I'm not opposed to nuclear, I'm pretty bearish on it. Most places are seeing nuclear get more expensive and not less. Meanwhile solar and batteries are getting cheaper. There's also the issue that nuclear reactors are generally most economical when operating with very high load factors (i.e. baseload generation) because they have high capital costs, but low fuel costs. Renewables make the net-demand curve (demand - renewable generation) very lumpy which generally favors dispatchable (peaker plants, batteries, etc.) generation over baseload.

Now a lot of what makes nuclear expensive (especially in the US) is some combination of regulatory posture and lack of experience (we build these very infrequently). We will also eventually hit a limit on how cheap solar and batteries can get. So it's definitely possible current trends will not hold, but current trends are not favorable. Currently the cheapest way to add incremental zero-carbon energy is solar + batteries. By the time you deploy enough that nuclear starts getting competitive on an LCOE basis, solar and batteries will probably have gotten cheaper and nuclear might have gotten more expensive.

[0] https://www.construction-physics.com/p/can-we-afford-large-s...

mikepavone··on I bought the cheapest EV, a used Nissan Leaf
I have a 2017 Bolt as my only car and the slow L3 charging is definitely a downside, but I haven't found it to be a huge issue in practice. On a trip long enough to worry about fast-charging you're going to need to stop to eat periodically anyway so if you plan your charging around meals you don't end up waiting too long. Obviously gets a bit more annoying on trips that are long enough to require more than one fast-charge per-day, but I don't take trips that long frequently.

Day to day charging is generally all going to be L2 or even L1 depending on how far you drive and how long typically parked somewhere with a plug. That will be roughly the same speed in any car. Some cars do have higher capacity L2 chargers than the Bolt does, but most public L2 stations don't provide the higher current needed to see the difference.

mikepavone··on I bought the cheapest EV, a used Nissan Leaf
IIRC, the EUV had an option for normal adaptive cruise control, but I don't think any ever had a Super Cruise style option
mikepavone··on A computer upgrade shut down BART
If you compare it to the commuter rail systems in those places, BART feels impressive (though less so with the service cuts). I was a regular rider on the Metro North New Haven line and had experience with SEPTA and NJT commuter rail and I was really impressed with BART when I moved out here. Peak frequency was pretty good (at least on the Red line I primarily used) and when things were on time they were very on-time ("on-time" Metro North trains were always at least a few minutes late in my experience).

If you compare it to the NYC subway, it's obviously not impressive at all (though the tech is less dated). As a rapid-transit system, BART isn't exactly a commuter rail or subway system exactly, but I think it's closer to the former than the latter.

mikepavone··on The Real Origin of Cisco Systems (1999)
As another commenter pointed out, you can do pre-emptive multitasking just fine without an MMU. And as it turns out AmigaOS had just that. All you need for pre-emptive multitasking is a suitable interrupt source to use for task switching.

What it did not have was memory protection or virtual memory. You do need an MMU for those.

mikepavone··on Big agriculture mislead the public about the benefits of biofuels
Most places growing corn don't have the right climate for sugar cane.
mikepavone··on Ask HN: How many of you are working in tech without a STEM degree?
Went to Drexel for CS, but dropped out in my Sophmore year back in 2004. Did PHP webdev in my home state of CT until 2011. Moved to the SF Bay Area and transitioned to doing Erlang and C++ for some F2P games for a while. I'm currently a Staff Engineer at Discord focused on AV and other "native" stuff.
mikepavone··on SpaceX Starship 36 Anomaly
So looking back to the Falcon 9, there were only 4 failures to complete orbital objectives across 503 launches and one of those was only a partial failure (main payload delivered successfully, but the secondary payload was not due to a single-engine failure). These failures were not consecutive (4th, 19th, what would have been the 29th and 354th). Now apart from the first launch or two (COTS Demo Flight 1 had some useful payload, but still seemed pretty disposable) these all had real payloads so they were less experimental than these Starship test flights.

If we compare to the propulsive landing campaign for the Falcon 9 1st stage it's a bit more favorable. The first 8 attempts had 4 failures, 3 controlled splashdowns (no landing planned) and 1 success. I think in general it felt like they were making progress on all of these though. Similarly for the Falcon 1 launches they had 3 consecutive failures before their first success, but launch 2 did much better than launch 1. Launch 3 was a bit of a setback, but had a novel failure mode (residual first stage thrust resulted in collision after stage separation).

Starship Block 2 has had 4 consecutive failures that seem to be on some level about keeping the propellant where it's supposed to be with the first 2 failures happening roughly in the same part of the flight and this 4th one happening during pre-launch testing.

mikepavone··on I convinced HP's board to buy Palm and watched them kill it
Yeah, Android had good support for multi-tasking from the start, though at least some early devices did not really have enough RAM for it to work well
Page 1 of 7Next →