sprayk
Beginner
One thing that might be useful for probing the boot process and execution of the Lindberh might be to try and get a game to boot in a virtual machine. That way you are running the actual kernel/libraries, and you have full access to the VM's IO to see what the boot process and baseboard module are doing (or trying to do).
With a VM, you'd also be able to write software to emulate some of the custom hardware, like the dip switch bank mentioned previously. On the right motherboard that has proper IOMMU (that works with Linux's KVM) and PCI slots, it would even be possible to throw an original JVS card in and map directly to the VM. I don't think you will find a motherboard with AGP and working IOMMU for virtualization, though, so probably no graphics.
https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware
This is probably some pie in the sky thinking, but I wonder how hard it would be to take PCI devices that mame has emulated and attach those to the vm.
Another potentially useful endeavor might be to disassemble and decompile the baseboard module , and write our own baseboard emulation module to control the appropriate device nodes. This would be another place to go for reverse engineering game/hardware interaction. There are probably some other good targets for disassembly and decompilation on there too, like the sega library mentioned earlier.
Reversing the driver and running a vanilla 2.6 kernel with some custom drivers might be a legitimately good way to run these games on a regular PC once more is known about the custom bits. If there is nothing special about the nvidia drivers, it might even be possible to give the VM its own pcie graphics card with the IOMMU virtualization thing I mentioned before.
The kernel config is definitely not anywhere to be found, right? Not at /proc/config.gz on a booted system or in /boot anywhere? I doubt such a closed kernel would leave those enabled, but you never know.
Full disclosure, I've never done any kernel development, and have had only mild success with reversing some binaries. Granted they were 68k and my assembly isnt the best, but if i were looking at some even shittily decompiled C I could probably figure out what it was doing, especially given the constraints of a kernel module.
I do know quite a bit about the Linux early boot process that might help, like everything starting from the bios all the way until init is called, and some stuff after init as well. This is mostly from a fun problem at my previous job that had me setting up a crash handler for some hung IO so I could get a dump of the entire system memory to some people better than me at GDB.
I'm also competent at linux internals from a systems perspective. I'm interested to see what is on these filesystems and the exact mechanisms through which these parts are mounted and unlocked. I didn't know IDE security/locking was a thing until I started looking at Naomi CF card stuff, and this seems even more complex. I'm going to see if I can acquire a dvd or hdd dump, cf dump, and bios image to see if I can make any headway.
Is there currently a way to get a shell on an running lindbergh system? Being able to get strace on there and run it against segaboot would probably help us understand what it takes for a game to start besides just having the right libraries.
Anyways, I'm happy to help. If there is anything specific anyone thinks I should look into, any questions I might be able to shed some light on, let me know. Otherwise I'm gonna just poke around images I can find and see what I can learn about how this is all put together.
With a VM, you'd also be able to write software to emulate some of the custom hardware, like the dip switch bank mentioned previously. On the right motherboard that has proper IOMMU (that works with Linux's KVM) and PCI slots, it would even be possible to throw an original JVS card in and map directly to the VM. I don't think you will find a motherboard with AGP and working IOMMU for virtualization, though, so probably no graphics.
https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware
This is probably some pie in the sky thinking, but I wonder how hard it would be to take PCI devices that mame has emulated and attach those to the vm.
Another potentially useful endeavor might be to disassemble and decompile the baseboard module , and write our own baseboard emulation module to control the appropriate device nodes. This would be another place to go for reverse engineering game/hardware interaction. There are probably some other good targets for disassembly and decompilation on there too, like the sega library mentioned earlier.
Reversing the driver and running a vanilla 2.6 kernel with some custom drivers might be a legitimately good way to run these games on a regular PC once more is known about the custom bits. If there is nothing special about the nvidia drivers, it might even be possible to give the VM its own pcie graphics card with the IOMMU virtualization thing I mentioned before.
The kernel config is definitely not anywhere to be found, right? Not at /proc/config.gz on a booted system or in /boot anywhere? I doubt such a closed kernel would leave those enabled, but you never know.
Full disclosure, I've never done any kernel development, and have had only mild success with reversing some binaries. Granted they were 68k and my assembly isnt the best, but if i were looking at some even shittily decompiled C I could probably figure out what it was doing, especially given the constraints of a kernel module.
I do know quite a bit about the Linux early boot process that might help, like everything starting from the bios all the way until init is called, and some stuff after init as well. This is mostly from a fun problem at my previous job that had me setting up a crash handler for some hung IO so I could get a dump of the entire system memory to some people better than me at GDB.
I'm also competent at linux internals from a systems perspective. I'm interested to see what is on these filesystems and the exact mechanisms through which these parts are mounted and unlocked. I didn't know IDE security/locking was a thing until I started looking at Naomi CF card stuff, and this seems even more complex. I'm going to see if I can acquire a dvd or hdd dump, cf dump, and bios image to see if I can make any headway.
Is there currently a way to get a shell on an running lindbergh system? Being able to get strace on there and run it against segaboot would probably help us understand what it takes for a game to start besides just having the right libraries.
Anyways, I'm happy to help. If there is anything specific anyone thinks I should look into, any questions I might be able to shed some light on, let me know. Otherwise I'm gonna just poke around images I can find and see what I can learn about how this is all put together.