Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
High level mods/patches for console video games (krystalgamer.github.io)
101 points by zdw on Jan 9, 2023 | hide | past | favorite | 15 comments


Impressive. I wonder how much easier this gets as consoles converge with PCs architecturally


Modern games are significantly more complex than older ones, and the consoles they run on are becoming more and more locked down to the point that some even run the games in a virtual machine (Xbox games run inside HyperV) so this kind of tinkering is becoming less and less common over time.


Aren't XBoxes basically PCs these days?


The original Xbox was a pentium 3 with 64mb of ram, running a modded Windows 2000, and a slightly custom Nvidia chip. It was literally just a P3 in a custom case, which was why it was huge. Also why the modding scene was huge, and still not paralleled. The 360 was PowerPC, but the One's have been AMD 64 w/ AMD GPUs. So, it's probably more that the Xbox OG was easy to hack, as the PS4/PS5/Xbox Ones l+ are all AMD/AMD pcs.


64mb… what is this, l3 cache or something!


Almost shocking at this point, isn't it?


Define "PC".

The XBox Series consoles don't have a UEFI or a BIOS, they have unified system/video RAM using GDDR6, they don't provide ACPI tables, and don't emulate legacy PC bits like the 8259 PIC or the 8254 PIT.

Most of that is irrelevant for modern home computers, except the UEFI. If you consider a Raspberry Pi to be a PC, then the XBox Series should probably qualify as well.


The One and Series S OS is essentially some form of Hyper-V, with a VM for apps and one for games. The one for apps is a stripped down version of Windows that only runs UWP apps. I'm not sure if the game partition is the same.


it's weird because while they support dynamic libraries the video-games filesystems are more and more immutable. thus the question is now how can I deploy my library to the game.


With C achieved, aren't even higher level languages within reach? I would imagine interpreting scripting languages (middleman Wasm runtime?) isn't an enormous undertaking and would make such modding more approachable.


sky's the limit :P just need to make sure we don't go beyond the memory limits


"EE/IOP, EE is for game code while IOP is used for PS2 libraries"

I would assume that IOP refers to the IO Processor chip, which is a MIPS R3000A (or an emulated one in later hardware).


Yep. It was literally a PS1 inside the PS2. It was used for PS1 back-compatibility in the early models.

It had its own memory space, and exclusive access to all of the non-GPU I/O. CDROM, audio, controllers, USB, memory cards.

You could program it directly if you wanted to get serious. But, for basic operation, there were convenient EE libraries that forward most APIs over DMA to the IOO.


Yeah. I spent quite a bit of time working on optimizing IOP code. On one game, one of our developers had written an audio middleware library for the IOP which used up almost all the RAM. Then we were tasked with adding network play a couple months ahead of our ship date (a well planned project obviously) which meant adding in a Sony IOP library that chewed up more RAM than we had left over. Fun times.


The emulated one is called DECKARD and is such an interesting topic. These consoles are even sought after in some speedrunning because they run with less stutter.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: