What's new
Fantastic work! I ended up selling my KI1, but hung onto KI2 and was later sad that KI1 could run both but not the other way around. Now I'm happy again! :P
 
Will you still arrange buttons for the correct order, P1 button for KI1 and P2 button for KI2?
This is defined by the order of the ROMs, final version will be KI1 = P1 & KI2 = P2.
If you take a look to the video the first line of the boot screen displays either 1 or 2 which is the bank the ROM is loaded from (this is debug information).
 
Neku whats the part number on the 8mbit sound roms required?


Truly amazing job. Congrats!
 
Very nice!

the only thing i haven't took time to implement into it (if ever possible) is the sound rom swapping (KI2 is using KI1 sound ROM).
I think it's possible, and probably not too difficult with a bit of reverse engineering. The sound ROMs have SMT jumpers next to them (JP1, JP2, etc), which connect to pin 1 on the EPROM (A19 on a 27C080). The jumpers are currently set to connect pin 1 to VCC, but if they're moved to the other position, it should connect to the output of a D-FF @ U9 (pin 5).

The D input is connected to the ADSP-2105 pin 6 (D15). The FF clock goes to the GAL20V8 @ U1, but this clock is shared with other flip flops which drive other circuity, so should just be a matter of figuring out what code controls that clock, and setting D15 to the appropriate KI/KI2 sound bank when the clock is toggled. And have the R4600 communicate to the sound processor to change banks.

Of course people will need to move the SMT jumpers... they're 0805s, so pretty easy to work with, but some people can't solder DIPs without destroying a board, so I won't say it's trivial. ;) It would have been easier if they simply tied all pin 1s together and just had a single jumper for VCC or A19, but oh well. If you remove all the jumpers, you can add jumper wires between all pin 1s and just install a single SMT jumper.

DogP
 
I think it's possible, and probably not too difficult with a bit of reverse engineering. The sound ROMs have SMT jumpers next to them (JP1, JP2, etc), which connect to pin 1 on the EPROM (A19 on a 27C080). The jumpers are currently set to connect pin 1 to VCC, but if they're moved to the other position, it should connect to the output of a D-FF @ U9 (pin 5).

The D input is connected to the ADSP-2105 pin 6 (D15). The FF clock goes to the GAL20V8 @ U1, but this clock is shared with other flip flops which drive other circuity, so should just be a matter of figuring out what code controls that clock, and setting D15 to the appropriate KI/KI2 sound bank when the clock is toggled. And have the R4600 communicate to the sound processor to change banks.

Of course people will need to move the SMT jumpers... they're 0805s, so pretty easy to work with, but some people can't solder DIPs without destroying a board, so I won't say it's trivial. ;) It would have been easier if they simply tied all pin 1s together and just had a single jumper for VCC or A19, but oh well. If you remove all the jumpers, you can add jumper wires between all pin 1s and just install a single SMT jumper.

DogP

This involves hardware modification, and besides the risk of destroying a board for unskilled people, it also means hardware rework to revert back to original.
I'm a total noob and I don't know if i'd be possible, but I think I'd be better to patch someway the addresses queried from the system with a 4Mb offset to land where 2nd game data is stored (according that the whole 8Mb ROM could be reached by the system without jumpers modification).
 
Very nice!


I think it's possible, and probably not too difficult with a bit of reverse engineering. The sound ROMs have SMT jumpers next to them (JP1, JP2, etc), which connect to pin 1 on the EPROM (A19 on a 27C080). The jumpers are currently set to connect pin 1 to VCC, but if they're moved to the other position, it should connect to the output of a D-FF @ U9 (pin 5).

The D input is connected to the ADSP-2105 pin 6 (D15). The FF clock goes to the GAL20V8 @ U1, but this clock is shared with other flip flops which drive other circuity, so should just be a matter of figuring out what code controls that clock, and setting D15 to the appropriate KI/KI2 sound bank when the clock is toggled. And have the R4600 communicate to the sound processor to change banks.

Of course people will need to move the SMT jumpers... they're 0805s, so pretty easy to work with, but some people can't solder DIPs without destroying a board, so I won't say it's trivial. ;) It would have been easier if they simply tied all pin 1s together and just had a single jumper for VCC or A19, but oh well. If you remove all the jumpers, you can add jumper wires between all pin 1s and just install a single SMT jumper.

DogP
I have worked a bit on it last night and documented the commands needed to play a sound (Yes i can play sound in the boot screen !), looks like the processor is sending an index/ID for the sound to be played.
As the A19 bit is tied to VCC it implies like you said hardware modifications, i prefer a less invasive solution which is plug and play and can be revert easily.

Thus i will stick with the EPROM socket adaptor for the sound ROM.
An adaptor will still be needed on U98 but simplified with less electronics as both eprom are mapped to memory i only have to listen to the A19 bit and CE/OE pins to toggle the A19 bit on the sound ROM.

Here are the ID of the sounds i found by looking quickly into the code.

Code:
0x57A # (Warning sound when trying to exit test mode but switch still enabled)
0xD7D # (Coin in)
0x158E # (Danger)
0x1590 # (Humilation)
0x5ED # (Perfect)
0xDBD # (Perfect bis)
0x1AE # (Sword sound)
0x550 # (Killer Instinct)
0x56A # (Ready but sounds like "Redady" (http://soundfxcenter.com/download-sound/killer-instinct-ready-sound-effect/))
0x56C # (Ready)
0x156C # (Weird splashy sound)
0x5EE # (Weird splashy sound bis)
0x9 # (Menu screen music)
0x54E # (Combo breaker !)
0x1F5 # (Woosh sound ?)
0x566 # (Eyedol)
0x588 # (Fight On)
0xC54 # (Eye poping sound)
0x484 # (Eye poping sound bis)
0x525 # (Wind sound)
0x1FC # (Lightning strike sound)
0x9CC # (Lightning strike sound bis)
0x102b # (?)
0xC3F # (Explosion sound)
0x589 # (Welcome)
0x1528 # (Fight on)
0xE7 # (Longer woosh sound)
0x570 # (Game Over)
0x141D # (Glacius Teleport sound)
0xE # (Continue background music)
0x572 # (Continue)
0x52A # (Heartbeat sound)
0x4D # (End game music)
0x4E # (Main theme background music)
0x2C # (Orchid tune)
0x23 # (Main theme music)
0x1538 # (Available for your home ... Ultra64)

NOTE: "bis" sounds are meant to be played at the same time as the main one
 
Last edited:
I certainly understand the desire for a plug and play adapter, but just to note, if pin 1 on the sound ROMs is jumpered to A19, most (all?) 27C040s will still work if reverting back to just a single game, since VPP is usually/always a "don't care" (will function correctly if either high or low).

DogP
 
I have worked a bit on it last night and documented the commands needed to play a sound (Yes i can play sound in the boot screen !), looks like the processor is sending an index/ID for the sound to be played.
As the A19 bit is tied to VCC it implies like you said hardware modifications, i prefer a less invasive solution which is plug and play and can be revert easily.

Thus i will stick with the EPROM socket adaptor for the sound ROM.
An adaptor will still be needed on U98 but simplified with less electronics as both eprom are mapped to memory i only have to listen to the A19 bit and CE/OE pins to toggle the A19 bit on the sound ROM.

Here are the ID of the sounds i found by looking quickly into the code.

Code:
0x57A # (Warning sound when trying to exit test mode but switch still enabled)
0xD7D # (Coin in)
0x158E # (Danger)
0x1590 # (Humilation)
0x5ED # (Perfect)
0xDBD # (Perfect bis)
0x1AE # (Sword sound)
0x550 # (Killer Instinct)
0x56A # (Ready but sounds like "Redady" (http://soundfxcenter.com/download-sound/killer-instinct-ready-sound-effect/))
0x56C # (Ready)
0x156C # (Weird splashy sound)
0x5EE # (Weird splashy sound bis)
0x9 # (Menu screen music)
0x54E # (Combo breaker !)
0x1F5 # (Woosh sound ?)
0x566 # (Eyedol)
0x588 # (Fight On)
0xC54 # (Eye poping sound)
0x484 # (Eye poping sound bis)
0x525 # (Wind sound)
0x1FC # (Lightning strike sound)
0x9CC # (Lightning strike sound bis)
0x102b # (?)
0xC3F # (Explosion sound)
0x589 # (Welcome)
0x1528 # (Fight on)
0xE7 # (Longer woosh sound)
0x570 # (Game Over)
0x141D # (Glacius Teleport sound)
0xE # (Continue background music)
0x572 # (Continue)
0x52A # (Heartbeat sound)
0x4D # (End game music)
0x4E # (Main theme background music)
0x2C # (Orchid tune)
0x23 # (Main theme music)
0x1538 # (Available for your home ... Ultra64)

NOTE: "bis" sounds are meant to be played at the same time as the main one
Imagine how lovely to listen "FIGHT ON" every time you start the game, rather than the standard ding sound.
 
Hello, quick update,

- AnyIDE patch is supporting all versions of KI1 (except p47) and KI2.
- Reset patch is supporting all versions of KI1 (except p47) and KI2.
- MultiHD patch is supporting all versions of KI1 (except p47) and KI2
- Volume fading patch is supporting all versions of KI1 (except p47).
- Working on making a universal remap patch for all versions of KI1 and KI2
- All the components to make a breadboard prototype has arrived except the 8Mbits EPROM (it's in the netherlands, so it should be delivered tomorrow).

Are all the versions of KI1 and KI2 using the same disk content or are there out there in the wild other versions of the CHD than the easily available ?
 
From the mame chd list there is only the one disk image each for ki1 and ki2.

It possible there are others but they have not been dumped/verified.
 
Hello !

It's finally here, the video update, i have added captions this time as i made few mistakes while speaking (64 was really the number that i was not able to say correctly once :D).

View: https://youtu.be/DUH0ATRGXPo


The version of the EPROM demonstrated in the video is not the latest one, in the mean time, i have corrected the reset combination handling code to add some lock mechanism to it because it was a bit too sensitive (all buttons need to be released before reading inputs again).

You heard it right, KI1 and KI2 HDD combined fit in less than 512MB.

I haven't show it in the video but the check disk diagnostic KI1 and KI2 are passing.

I am working on the breadboard prototype of the sound ROMs switcher and should be able to post a video update this week-end.
 
Hello !

It's finally here, the video update, i have added captions this time as i made few mistakes while speaking (64 was really the number that i was not able to say correctly once :D).

View: https://youtu.be/DUH0ATRGXPo


The version of the EPROM demonstrated in the video is not the latest one, in the mean time, i have corrected the reset combination handling code to add some lock mechanism to it because it was a bit too sensitive (all buttons need to be released before reading inputs again).

You heard it right, KI1 and KI2 HDD combined fit in less than 512MB.

I haven't show it in the video but the check disk diagnostic KI1 and KI2 are passing.

I am working on the breadboard prototype of the sound ROMs switcher and should be able to post a video update this week-end.
So this can work on either a KI or KI2 board?

and what did you use to burn to the CF? I tried once with chdman and couldn't even get the thing working. I wish was a simple GUI solution.
 
Bravo Neku!

Your spoken English in the video is perfect.

Looking forward to the release.
 
Hello,

Here's a small update.

I have ordered a first batch of a prototype of the bank switch PCB. Waiting to receive it to make some tests with it.
I already have some idea of improvements to be done to that board but the general idea won't change.

I have also added IDE connection self-test check, the test is not validating any checksums yet but the presence of an IDE drive properly connected.

One last thing, i have improved the bootscreen and game version selection screen.

Screenshot 2023-02-13 at 20.22.25.png
Screenshot 2023-02-13 at 20.18.33.png
Screenshot 2023-02-16 at 13.10.53.png

The KI1 and KI2 characters displayed on the game version selection screen are random and match their respective game version.
Source of the sprites : https://www.deviantart.com/blzofozz/art/Microsoft-KI-668294406
 
Back
Top