Shadow of Rome Recompiled
Shadow of Rome Recompiled is a Windows PC port of Shadow of Rome that runs at up to 4 times the PS2 resolution and 60 frames per second.
- Type: PC port
- Game: Shadow of Rome
- Runs on Windows
- By Korvonordico
- Latest release v1.9, 2026-11-06
- Source: https://github.com/Korvonordico/shadow-of-rome-recompiled
README
Shadow of Rome Recompiled
An unofficial PC version of Shadow of Rome (PS2), made by translating the game's own code into a Windows program. Since 1.9 the video card draws it: up to 4 times the PS2's resolution, 60 frames per second, 4:3, 16:9 or 21:9.
Version 1.9 · What changed
The game has not been played to the end yet: it still needs full testing. Found a problem? Tell me here: every report is read and fixed as soon as possible.
The same moment of the game, real pictures from this port: on the left at the PS2's resolution, on the right drawn by the video card at 4x. The line moves by itself.
What this is
Shadow of Rome is an action game made by Capcom for the PlayStation 2 in 2005. Agrippa's father is accused of murdering Caesar: Agrippa is forced to fight as a gladiator in the arenas, and his friend Octavianus sneaks through Rome to find out who really killed Caesar.
This project makes it run on a Windows PC as a normal program. It is not an emulator. A tool called PS2Recomp reads the game's program from the disc and rewrites every one of its instructions as C++ code, which is then built for Windows. This is called static recompilation. The parts of the PS2 that the game talks to (the graphics chip, the sound chip, the memory card, the disc drive) are played by a runtime that comes with PS2Recomp, with many fixes of mine (see patches). The picture is drawn by the graphics chip of the PS2 emulator PCSX2, on the video card.
You need your own copy of the game (the European disc, PAL, SLES-52950), as an .iso file. No game data is included. The ready-made package on the Releases page holds only the program: the game's code translated to C++ and built for Windows, the video card part and the launcher. The first time you press Play, the launcher reads the rest from your own disc image. You can also build the program yourself from your disc: see How to get it running.
This is an experiment. I can't promise I'll finish it, for personal reasons, and it will take a long time before the game is playable: I work on it with limited time and resources, so there are no deadlines.
If someone is already working on a port of this game, or is further ahead, please let me know as soon as possible by opening an issue, so I don't do useless work and can spend my time on something that hasn't been done yet. If you find a mistake here, even a small one, an issue is welcome too.
What's new in 1.9
- The video card draws the picture, with DirectX 11, DirectX 12 or Vulkan, at 1x to 4x the PS2's resolution. The drawing on the processor of 0.0.7 can still be chosen.
- 60 frames per second, with VSYNC on by default: every picture stays on screen for the same time, so the movement is steady.
- A steady and sharper picture: the picture no longer shakes half a line at every frame, and SHARPNESS (off, low, high) makes textures and edges crisper.
- Wider screens, 16:9 and 21:9: you see more of the scene at the sides while you play and when you talk to someone; the movies, the game's own scenes, the pause menu and the title menus stay 4:3. 21:9 was not made for this game: some views may show flaws.
- Full screen (F11), the OSD (frames per second on screen) and texture packs, as in PCSX2.
- Fixed: long dark stripes on the floor between the characters: they were their shadows, with the corners shifted.
- Fixed: the voices running ahead of the lips in the movies, a little more every time the game stopped for a moment.
- CONTROLS in the launcher: swap ✕ and ○, and invert the camera, for the controller.
4:3 on the left, 21:9 on the right: the same moment, with more of the camp at the sides. Real pictures from this port; the line moves by itself.
All the changes: CHANGELOG.md.
Screenshots
In the order you meet them in the game, drawn by the video card at 4x in 16:9: the opening movie, the first chapter's title card, the game's own scenes in the Roman camp, and playing. The movies and the game's own scenes are shown 4:3, with black bars at the sides.
The launcher
ShadowOfRome.exe starts the game. Play starts it: the first time, it asks where your .iso file is, reads from it the files the game needs (a few seconds, into the disco folder next to the launcher) and remembers it. If the image is not the European disc, Play says so and starts nothing. Arrows and Enter, or the mouse.
- GRAPHICS: RENDERER (the video card with DirectX 11, DirectX 12 or Vulkan, or the processor, as in 0.0.7), RESOLUTION (1x to 4x the PS2's), SHARPNESS (off, low, high), SCREEN (4:3, 16:9, 21:9), FRAME RATE (60 or 50), VSYNC and OSD.
- OPTIONS: the game in a window or in full screen. F11 switches while you play.
- CONTROLS, for the controller: swap ✕ and ○, and invert the camera (the right stick) up and down or left and right. The keyboard keys are in Keys.
- MODS: texture packs on or off, and a button that opens their folder.
Each page saves only with APPLY; BACK leaves without saving.
Status
In short: the game starts, every menu works, the movies play, and with the video card it runs at 60 frames per second. I have played it by hand through the Germanian Forest up to Chapter 3. Nobody has played the whole game yet, and most of what comes after has only been reached by test tricks.
Most checks below were done by test scripts: small programs that press the keys, read the game's memory and take screenshots. Where I played by hand, it says so. Some tests forced the game forward by writing to its memory (for example, to win a round without fighting it): those are marked too.
How far the game goes
With the video card I have played by hand through the Germanian Forest on to Chapter 3 (Octavianus in front of the procession), with no freeze. The table says how each part was checked.
| Part of the game | State | How it was checked |
|---|---|---|
| Start: language, video mode, memory card, warnings, CAPCOM logo, opening movie, title screen | Works | Script, on screenshots. By hand too, on an older build that skipped the movies |
| Every menu: New Game, Load Game, Secrets of Rome, Options | Works | Script, on screenshots |
| The first arena (the First Match) | Works, at full speed (50 frames per second, like the European original) | By hand for a few minutes. A script played it to its end, with help (see below) |
| Saving and loading | Works | Script: saved after the First Match and after City Arena Round I (that win was forced), closed the game, loaded both |
| The movies after the first arena, and the "City Arena" title card | Work | By hand, from my own save |
| Chapter 1: the Roman camp in a forest | Can be finished | Script, with help |
| The Forum in Rome (Octavianus), then a street | Reached by walking | Script |
| The Germanian Forest (Agrippa) | Played to its end, with no freeze. In a scripted test it froze once, after about 95 minutes; two later runs, of 46 and 108 minutes, did not freeze | By hand, with the video card (6 November). Script before |
| The next areas: the fort key, the inside of the fort (053) | Played: the enemies die, and the game goes by itself to the next area (054) | Script, starting from a forced jump |
| The fort wall (054) | Loads and runs. The enemies on the ground die, but the big door does not open: two archers on the wall are left, and the script cannot reach them | Script |
| The two areas after it (055, 056) | Load and run | Script, each one reached by a forced jump |
| City Arena Rounds II and III, the first Octavianus stage | Load and run | Script, with each win forced |
| On to Chapter 3 (Octavianus in front of the procession) | Reached by playing | By hand, with the video card (6 November) |
| The rest of the story | Not played. Of 31 later stages tried, 30 load and run | Script, each one reached by a forced ending |
Tested by hand
| When, which build | What I did | Result |
|---|---|---|
| 31 October 2026, before the speed work | From the desktop shortcut: menu, New Game, into the first arena | Works, but extremely slow |
| 31 October 2026, after the speed work | About three minutes in the first arena with a PS4 controller: walking and fighting (one minute of it, MP4, 9 MB, no sound, recorded before the camera fix and with the processor drawing) | Works |
2 November 2026, with patch 0016 | From my own save, past the "City Arena" title card, watched the movie and played on | Works. Seen, not fixed: glitches on the floor, and the speed is not steady (short slowdowns) |
| 0.0.6 | Not tested by hand yet | |
| 0.0.7 | The game started from the ready-made package | Works |
| 6 November 2026, the video card at 3x, from the launcher | Played on through the Germanian Forest up to Chapter 3 | Works, no freeze |
| 6 November 2026, the shadows fix | The room where long dark stripes joined the characters | Fixed: the shadows look right |
| 6 November 2026, 1.9 | 60 frames per second with VSYNC on DirectX 12 (180 Hz screen), SHARPNESS low and high, full screen | Works: smooth, sharp |
| 6 November 2026, 1.9 in 16:9 | Played with movies and talks, before and after the sound fix | Works: the voices are now in time with the lips. The talks were shown 4:3: changed after this test, so that they stay wide |
| 1.9 | Not tested by hand yet: 21:9, the talks shown wide, CONTROLS, texture packs, DirectX 11 and Vulkan in 1.9, 50 frames per second | Checked by script only, or not at all |
What does not work yet
- It is not playable from start to end. Nobody has finished the game on it. I played by hand up to Chapter 3; after that, nothing has been played without forcing.
- A freeze in the Germanian Forest, seen once in a scripted test, after about 95 minutes of play: the picture stopped and the game's logic stopped. Something wrote drawing data over most of the game's memory, and the cause is not known. It has not happened again, in longer scripted tests or when I played the stage by hand.
- Short pauses: in the Roman camp of Chapter 1, the game sometimes hands a picture to the video card 30 to 49 milliseconds late, and VSYNC can then lose its step for a moment. Seen in a scripted test, not fixed yet.
- FRAME RATE 50 in the launcher does nothing when the game's own
settings.inisaysvideo=60(see Settings). - The wide screens: the life bar is stretched, and 21:9 was not made for this game, so some views may show flaws. With the processor drawing only 4:3 and 16:9 can be chosen, and the 4:3 menus and scenes were not checked there.
- The video card part needs the Microsoft Visual C++ Redistributable (x64), which most PCs already have. Without it the game draws on the processor, even if the launcher says video card.
- The sound has not been compared with the console.
- The fights were checked by a script that fights badly and by my own play, not by a good player.
- It has run on one PC only (Windows 11, Intel i5-8600K with 6 cores, NVIDIA GeForce RTX 3070 Ti), with the keyboard and a PS4 controller.
All the test details
The details below were written up to 0.0.7, when the processor drew the picture. The video card changes how the picture is drawn, not the game's logic.
What works
- The whole executable is translated to C++ and built for Windows, with no errors.
- All the game's original IOP modules load and run in PS2Recomp's IOP simulator (the IOP is the PS2's second processor: it runs the sound, the disc and the memory cards).
- From the start to the menu, on screen: the language choice, Start Game and Change video mode (with the NTSC test), the memory card check, the violence warning, the CAPCOM logo, the title screen and the main menu.
- Every menu, opened and closed, checked on pictures:
| Menu | Works | Notes |
|---|---|---|
| New Game | Yes, up to the first arena | See below |
| Load Game | Yes | It finds a game saved after City Arena Round I and loads it. With no game saved it says "No data present": the file made at startup is not a game in progress |
| Secrets of Rome | Yes | Cheats and the Salvo Master List with its pages open and close. The other 6 entries are locked, as on a new game |
| Options: Subtitles / Tutorial, Sound, Controller, Violence | Yes | Each value changed and put back |
| Options: Screen | Yes | Brightness and Screen Position pages |
| Options: Control Explanation | Yes | All 3 pages |
| Options: Default, OK | Yes | Default puts the changed values back |
- The first arena, in 3D: after New Game and the difficulty choice come the trainer's briefing, the "First Match" map, the controls page, then Agrippa at the gate of the City Arena. Checked on pictures, with scripted keys.
- Saving and loading: the game saves after the First Match ("First Battle - Fini", see below) and offers to save after City Arena Round I. Tested on City Arena Round I: "Save Successful", the game closed and opened again, Load Game finds "City Arena Round I", "Load Successful", and the game goes on from City Arena Round II. The win was forced by writing to the game's memory in the test: nobody has won that round by playing yet. Starting from an empty memory card also works, both when you create the save file at the start and when you skip it and save later (that second way was followed up to the last confirmation). The saves are in
disco/mc0/. - The 60 Hz choice is remembered: after you choose it in Change video mode and press Start Game, the game writes
settings.ininext tosor.exe, and the next start begins in that mode. See Settings. Tested with scripted keys, not yet from the launcher. - The keyboard, with real key presses sent to the window by a script (Enter, the down, left and right arrows, Space, X, V). The arrow keys and W A S D move the left stick, and with them Agrippa walks in the first arena (checked with keys injected inside the program, not on a real keyboard).
- Speed at 50 Hz, the game's PAL mode (the European version): full speed from the menu to the fight, in a window, on the test PC with nothing else running. Measured in vblanks per second, which here means frames per second: 50 is full speed. The earlier build is on the same PC:
| Part | Earlier build | Now | Lowest second now |
|---|---|---|---|
| Menu | 50 | 50 | 49.9 |
| Trainer's briefing | 43 | 50 | 42.6 (one second, once) |
| First room | 41.8 | 50 | 49.7 |
| Arena | 36.9 | 49.9 | 49.8 |
| Fight | 37 | 50 | 49.9 |
- The sound: I listened to it by hand on an older build: it sounds fairly good. The sound mix has changed since (see the reverb below) and has not been listened to again.
- The music: the title screen, the menu and the arena have their music. Checked as numbers on a recording of the output, not by ear: the level goes from silence to about 3000-4000 RMS on the title screen and in the menu, with no clipping. In 30 seconds of title music, the short holes of exact silence went from 155 to 0.
- The movies: the opening movie plays with its subtitles and sound, 30 pictures per second at 50 Hz and at 60 Hz, and goes on to the title screen at its end. Enter skips it. The title screen's attract movie and the movie after New Game play too. Checked on pictures and as numbers on a recording of the output (all 178 seconds of sound, with no holes in a 60-second sample), not by ear. They are decoded with a small part of FFmpeg, and the picture reaches the screen as a texture, as in the original game. From the second movie on, the sound used to break and the screen stayed grey with a beep after the "City Arena" title card: fixed on 2 November (patch
0016), and tested by hand. - The First Match, played to its end: this win was not forced. A test script (not published) reads positions and life from the game's memory and presses the keys: it walks to the enemies, hits them, closes the tutorial pages and opens the doors with ○. All the waves die, including the last opponent (2816 life), and the game does the rest by itself: result screen, save, "Chapter 1: The Wickedness of Men", and the next stage, a Roman camp in a forest (area 050). Load Game then finds the save as "First Battle - Fini" and goes on to Chapter 1, even after closing the game. The script had help: it refilled Agrippa's life 18 times when it fell below 500 of 2048, because it fights badly and never guards. So nobody has won this fight without help yet. Without the refill, in one attempt Agrippa died with 1 enemy of the first group left, and in another he had 39 life left when that group was dead. The Game Over works: blood runs down the screen and Continue goes back to the waiting room. Over that whole session the median was 50 frames per second, and 5% of the seconds, loading included, were below 33 (not looked into).
- The forest stage, played to its end, and what comes after: this was not forced either, and the same script played it, with the same kind of help (Agrippa's life refilled once). The stage asks you to climb the hill at the far end of the camp, talk twice to the soldier by the fence, and choose "Inform the men that we are moving out." in his menu. If you press ✕ without moving down, the menu answers "Nothing, yet." and nothing happens. Then enemies appear; when they are dead, the game goes by itself to the Forum in Rome, with Octavianus, then