Here is the great new, I was finally be able to correctly and cleanly dump a WonderWitch (without any hardware modification)! As you may know there is no known dump of the WonderWitchon internet, at least none I’me aware of. Anyway no emulator are really able to correctly support the WonderWitch. The only one that is “near” is oswan173, but there is no way to use it after as there is no serial port emulation, and I suspect that it does not correctly emulate the SRAM part as the WonderWitch use much more SRAM than standard game.
Also, don’t ask, I will not provide the dump for obvious copyright reasons.
But why I speak about this? Because the WonderWitch will allow me (and you also) to know more about the WonderSwan.
There is a bunch of files like wstech24.txt that try to explain how the hardware of the WonderSwan is working, but all of theses files miss essential parts, and are not complete. Since I’ve started to work on the WonderSwan, I’ve already found 4 (four) non documented IOs on the Bandai 2003, and now thanks to the WonderWitch, I have now a list of 6 undocumented IO. For 3 of them I have partial informations and will need more hardware test, but I already can says that the Bandai 2003 have at least 2 GPO (maybe GPIO)
The WonderWitch will also help to understands the RTC interface as it use it a lot, and it’s really well underdocumented, same for the internal EEPROM documentation. At least the WonderWitch is able to read the User information (name, date of birth, blood type, …) It may not explain how to write, but at least tells us how to read it and verify the current documentation.
Before I continue, I will give you a small explanation on how the WonderWitch is working.
This table will help you to understand the layering system of the WonderWitch:
Both “WonderSwan Hardware” and “User Application” layer are obvious, but the two FreyaOS / FreyaBIOS and Meg are not necessarily the most known part of the WonderWitch.
FreyaBIOS is currently, with an analogy with a modern computer what we can call the Bootloader, but it also have a minimal UI, and provide most of the functionality of the WonderWitch.
Effectively FreyaBIOS it the first thing that the WonderSwan will execute (apart from the internal ROM that, for know, we know nothing..) that why it is some sort of a bootloader, but it also provide all of the software interrupt that we use with the WonderWitch to interface with the Hardware. It also provide a minimal UI to set the time and date, and select the UART baudrate.
It also provide the only way to update the higher layer, FreyaOS.
FreyaOS on the contrary is less than an OS than FreyaBIOS, as most of the IO are provided by FreyaBIOS, FreyaOS is just here to manage the simply process manager, the file system, and the IL library function (some sort of a Windows DLL or UNIX so file)
I have no proof currently, but the way the software int are done will also allow FreyaOS to patch FreyaBIOS ints as FreyaBIOS is hardware locked to not be erasable.
Meg, even if it’s part of the “FreyaOS” binary as it’s not available as an external application, is the “shell” that we all know and use with the WonderWitch. It’s the one that is responsible to list installed application, discuss with the TransMagic application, and run the small shell you can have on the serial port.
I’m currently trying to get the working on the internal of FreyaBIOS, especially the Service Menu, because the update files (fwXXX.bin) are not avaiable in clear text, I don’t expect a really high level encryption, and looking at FreyaBIOS, the part that receive the OS, is the best way to do it!
As soon as the encryption is known, it will be a matter of time to provide an English version of Meg, as I’m sure that most of the non Japanese speaking people that have a WonderWitch would like.
One of the good news on the WonderWitch, is that making a compatible device, is not that hard, and without copyright infringement!
As part of my Wonder Project! a WonderWitch compatibility module is clearly on the list now!