Some silly fun, the nabu uses the same vdp and sound chip as msx1. So why not try to patch the msx bios rom to use nabu addresses?
The msx has the vdp on addresses 98 and 99, where the nabu has it on a0 and a1.
The msx has the AY-3-8910 on addresses a0/a1/a2 while the nabu has it on 40/41.
msx a0 is reg write nabu is 41 reg write
msx a1 is write data nabu is 40 write data
msx a2 is read data nabu is 40 read data
So if I take the bios from a canonv20e, and do a little search and replace with a hex editor:
change the sound io addresses:
d3 a0 -> d3 41 out ($41),a
d3 a1 -> d3 40 out($40),a
db a2 -> db 40 in a,($40)
change the vdp io addresses:
d3 98 -> d3 a0
db 98 -> db a0
d3 99 -> d3 a1
db 99 -> db a1
then substituting the modified msx bios for the nabu's rom, then starting up directly into the debugger and then performing a "load starblaz.rom,4000", "pc=w@4002", and then running it, it doesn't quite work. The starblazer code looks to address $0007 for the address of the vdp, loading that into the c register and then doing an out (c),a. If we patch that in the rom to address 0xa0, then star blazer will run:
5967: 3A 07 00 ld a,($0007)
596A: 4F ld c,a
596B: 21 30 E4 ld hl,$E430
596E: 06 80 ld b,$80
5970: 7E ld a,(hl)
5971: ED 79 out (c),a
![[Linked Image from i.imgur.com]](https://i.imgur.com/rp0N2FJ.png)
![[Linked Image from i.imgur.com]](https://i.imgur.com/ksORXUN.png)
![[Linked Image from i.imgur.com]](https://i.imgur.com/1VPbKU8.png)
Unfortunately, it isn't playable because the roms access the hardware to read the joystick (msx reads the joystick from the sound chip register 14). It should be possible to patch the roms and bios to read and translate the keyboard and joystick.
But the sound and video seems to work ok.
Note that this only seems to work with 16k roms like mappy, galaxian, starblaz and pacman, and if there isn't a bunch of direct hardware access in the rom.