gamewavefans / GameWaveFans

A fan project to document and emulate the only Canadian gaming console, the GameWave (ZAPiT, 2005-2009)
1 stars 1 forks source link

First steps, goal clarification #2

Open namgo opened 1 year ago

namgo commented 1 year ago

What do we think are good first steps?

In my opinion the most attainable goal right now is to document what we know, with the intention to produce an emulator for the console.

I want us to have a clear goal because it has, in my experience, provided clarity to differentiate "worth-documentings" and "side-notes". I'm also attaching a "discussion" label to this because it's more of a discussion on what to do than how.

I got off the phone a few hours ago with someone who provided me excellent direction, from the engineering perspective of the company who designed the console. His advice that I was a little hesitant to listen to at first was as that writing a homebrew without the original development environment would require far more resources than we realistically have; I understood him as saying he was willing to provide us with the PCI cards that were used to provide a portion of the console emulation but there was a substantial amount of other components lost to time. The software part of the SDK may be on someone's old hard drive somewhere. He highlighted the difficulty of write-burn-try for DVDs, that the console releases were not designed to be developed upon (same as all the other consoles in that regard).

The difficulty of homebrew in an unfamiliar environment, to me suggests that we can start by emulating the environment. From there, even with a better architectural understanding of the device, we may still find it impossible to produce a homebrew, but an emulator is a great goal to have in my opinion - it's still VERY difficult to be clear.

namgo commented 1 year ago

Our first step appears to be writing tooling to unpack, decompress and possibly convert the files to something we can view. I think this is great, it gives us tangible goals without diving into disassembly of unfamiliar binaries and bytecode just yet.

halamix2 commented 1 year ago

Tools:

For emulation, knowledge how to unpack data would be enough, and with that knowledge we can write unpacker to easily work with the files, or visualize them

For creating/editing games repacking capability is also necessary

Emulator:

Emulation would require us to basically implement Lua functions/libraries as a part of the emulator, and draw the output.

What we'd need to use:

And probably more things I couldn't think of yet.

This emulator should be just enough to run original games bytecode, but it wouldn't be a hardware-level emulator, so we couldn't emulate the engine itself, making usage of a custom engine executable impossible.