Measure the gap before anyone quotes
Every port starts with two numbers, and neither can be read off a spec sheet: how much memory the game actually wants, and how fast it actually runs on the target. On King’s Bounty II the first boot on a devkit answered both. The PC build wanted roughly 7 GB of memory against 4 GB on the whole Switch, part of which the system holds back for itself. And it ran at 6–8 frames per second against a target of 30.
Read the second number carefully. A fourfold frame-rate gap is never one bottleneck. It is a queue of them: close the first and the next subsystem becomes the limit, and the queue only shows itself if you measure again after every fix. The first number decides something just as large — whether the work ahead is tuning or restructuring. That is why a quote made before the build has run on the target is a guess, and why the questions below come in this order.
Memory: where most of the work goes
Seven gigabytes into four is not an optimisation gap that profiling closes. It is most of a game’s working set with nowhere to live. On King’s Bounty II it closed through texture pool budgets, level-of-detail work and asset repacking — the unglamorous half of a port, and where most of the 7 GB went.
None of it was a single pass. Every change was applied against a running measurement of the working set rather than signed off once, because on an open world what is in memory depends on where the player is standing, and a figure taken in one area says little about the next.
One constraint made this harder than it had to be, and it is also the one that made the port worth buying: nothing could be cut. Every gigabyte had to come from how the game was built, not from what was in it. That trade has a section of its own below.
CPU and streaming: the bottleneck that moves
With memory inside budget, the frame rate did not follow. The CPU became the limit, and the stock streaming path was the reason. Switch CPU cores are ARM Cortex-A57 running well below desktop clocks, so anything that leaned on single-thread throughput had to come off the critical path or be spread across cores. On a game with this much simulation behind the camera, that is continuous work rather than a task.
The largest single piece of engineering on the port followed from it: we wrote our own character streaming. A rewrite like that costs more than its code. Anything you replace in the engine’s stock path is a subproject with its own bug tail, which is why it is one of the four things that move a port quote. It was also what turned a memory fix into a frame-rate fix.
Resolution and image, set per mode
A Switch runs in two modes, docked and handheld, with different power and thermal envelopes, and they are worth treating as two targets. On King’s Bounty II the resolution is fixed rather than dynamic and set separately for each mode, with both aimed at 30 fps.
On top of the lower fixed resolution we chose temporal anti-aliasing, to hold the image together. It buys stability and costs ghosting on moving edges. Reviewers noticed and named it, and we would make the same choice again under the same constraint. Nor do we claim a locked 30: reviewers reported drops in the larger towns, and dense areas were the expensive case throughout.
Content or pixels: decide it first
A port has two currencies to spend. You can make the game smaller, or you can render the whole game at a lower fidelity. Most difficult ports are decided by which of the two a team is willing to spend, and the decision is usually made implicitly, halfway through, under deadline. Make it at the start instead, and write it down.
| Spend content | Spend pixels | |
|---|---|---|
| What gives | Fewer objects, a shorter draw distance, simplified areas, a dropped language | A lower fixed resolution and a less stable image |
| What the player gets | A smaller version of the game | The whole game, at fewer pixels |
| How it is reviewed | As a lesser version of the game | As the same game, rendered worse |
| Afterwards | No patch restores a world that was never packaged | A patch can improve an image |
On King’s Bounty II the decision was made before the work began and held: keep the game, spend pixels. The Switch version has the same world, the same quests and the same eleven languages as PC, and the cost shows in resolution and image stability.
The scores are the argument for it. On Metacritic, read on 29 August 2026, the Switch version holds 63 — level with PC, six points above PlayStation 4’s 57, with Xbox One at 73. A port that had bought its frame rate by cutting content would have been reviewed as a lesser version of the game. This one was reviewed as the same game rendered worse, and of those two failures only one is recoverable.
Packaging and certification
The whole game, eleven languages included, went into a 10.3 GB build that fits a cartridge and downloads from the eShop. Then it went through Nintendo’s certification, which took two passes: the first submission was rejected on one critical issue, we fixed it, and the second passed.
Two passes is a normal outcome for a port of this size, and it is worth planning for rather than hoping past. The certification calendar is set by the platform holder, and it is the one risk on a console project that adding people cannot compress. A plan that assumes one pass is a plan with no slack in it.
Here it mattered because of the date. King’s Bounty II shipped on Switch on 24 August 2021, the same day as PC, PlayStation 4 and Xbox One. A console version that slips past launch loses the review cycle, the marketing beat and most of the audience that was ready to buy, so certification was scheduled as a two-pass risk from the start rather than treated as a formality at the end.
What Nintendo Switch 2 changes for a port
Switch 2 changes the arithmetic of a port, not its shape. The figures below are from Digital Foundry’s breakdown of the console, as reported by Notebookcheck on 14 May 2025. We have not measured them ourselves.
| Nintendo Switch | Nintendo Switch 2 | What it means for a port | |
|---|---|---|---|
| Memory | 4 GB on the whole device, part held back by the system | 12 GB of LPDDR5X, about 9 GB of it available to games | The gap that defined our port narrows a great deal: on paper, 9 GB is more than the roughly 7 GB our PC build wanted |
| CPU | ARM Cortex-A57 cores, well below desktop clocks | Eight Cortex-A78C cores, six of them available to games | A much later core design, so the single-thread limits that forced our streamer rewrite should bite less |
| GPU | 256 CUDA cores | Ampere, 1,536 CUDA cores | Six times the CUDA cores, so fewer pixels should have to be given up |
| Certification | Nintendo’s, on Nintendo’s calendar | Still Nintendo’s, on Nintendo’s calendar | Nothing to compress by adding people |
Read the right-hand column as inference, because that is what it is. Our 7 GB was measured on a PC build and a port is budgeted on the target, so the memory comparison is a first read rather than a budget. And we have not shipped a Switch 2 port. King’s Bounty II runs on Switch 2 through compatibility: Nintendo’s own listing records it as “Supported — Game behavior is consistent with Nintendo Switch”, which is the Switch build running on the new console, not a version made for it.
What does not change is most of this article. The gap still has to be measured on the target before anyone quotes. The content-or-pixels decision still has to be made at the start. And the certification calendar is still the platform holder’s.
How long a Switch port takes, and what moves the cost
We do not band console ports, and quoting a figure here would be inventing one: two games of identical genre and scope can differ by a factor of five depending on how they were built before anyone thought about a handheld. What we can publish is the shape of the one we shipped: five engineers, twelve months of active development, for a full-content port of a PC open world onto Switch with a day-and-date release. That is the upper end of what a port costs in time, and the reasons are the ones above.
The four things that move a port quote, in the order they move it:
- How far the memory budget is from the target, because that decides whether the work is tuning or restructuring.
- Whether content can be cut — a commercial decision that lands as an engineering multiplier.
- How much of the engine’s stock path survives, since anything you rewrite, a streamer for instance, is a subproject with its own bug tail.
- The certification calendar, fixed by the platform holder and the one risk that adding people cannot compress.
For a port to Switch 2, the published figures suggest the first of the four will shrink for most games. The other three stay where they were.
What this article does not claim
We do not claim a locked 30 fps on King’s Bounty II. Thirty was the target in both modes, and reviewers reported drops in the larger towns.
We have not shipped a Switch 2 port. The Switch 2 figures are Digital Foundry’s, as reported by Notebookcheck, not measurements of ours, and what we say they mean for a port is inference.
One port is one data point. The sequence above is what King’s Bounty II took. A game built differently will meet the same four questions and get different answers.
The scores, sizes and dates are not ours. The Metacritic scores were read on 29 August 2026; the 10.3 GB build, the eleven languages and the Switch 2 note are from Nintendo’s listing; the release date is the publisher’s. King’s Bounty II was developed by 1C Entertainment S.A. and is published under the Prime Matter label. The game is theirs; the port is the work described in the case study.