What's new
Wow, this is nothing short of incredible..amazing work Neku!

Can I ask, is there any reason your patched U98 rom might not work with the existing switching bank eprom/HD mods in this thread?
In other words, can this now be used for a dual KI/KI2 set-up using the dedicated KI2 U96 hardware, along with retaining the soft-reset and boot-test features before KI2 also?

If you build even more on your new initial boot test screen it could prove incredibly helpful for diagnosing faulty hardware...Losing the blue screen and bong tone is a small sacrifice I think most will be willing to live with!

By the way I love the patched attract sounds too, much better than the music cutting away…would there be any way to toggle this on/off at the initial boot screen?
This would seem perfect for home arcade use 😎

Outstanding work so far, thanks for doing this!!
 
Last edited:
Can I ask, is there any reason your patched U98 rom might not work with the existing switching bank eprom/HD mods in this thread?
No reasons i would not work.

In other words, can this now be used for a dual KI/KI2 set-up using the dedicated KI2 U96 hardware, along with retaining the soft-reset and boot-test features before KI2 also?
Yes definitively ! The boot loader i made is not compatible with all the KI rom versions yet but it's ready to be used with KI1 l1.5di & KI2 l1.4.

If you build even more on your new initial boot test screen it could prove incredibly helpful for diagnosing faulty hardware...Losing the blue screen and bong tone is a small sacrifice I think most will be willing to live with!
There is already hardware diagnostics on the boot screen, the bong is retained (unless S1:7 is turned on).
The blue screen was not providing any diagnostic, it's is dummy progression indicator of the decompression into RAM. It doesn't care if the content of the RAM is OK.
Better identification of the hardware faults is on my todo list (reporting which chip is faulty).
In the mean time i have started to implement an IDE detection check as well. (if IDE drive is not properly connected or not present it will report it)
 
Last edited:
Hello guys,

Here's some renders of my idea about the soft multiboot ROM adapter for U98.
Sound ROMs would have the same kind of adapter but without any additional electronics.

What do you think of it ?
I am waiting for your feedbacks then i will probably order a first batch as prototype.

Now going to work on the IDE adapter (idea there is to intercept Head/Cylinder/Sector address and offset it for the second game so we could use one drive for both of it)

Screenshot 2023-01-17 at 22.07.25.png
Screenshot 2023-01-17 at 22.05.16.png
 
Last edited:
Sorry, I’m really interested but I don’t understand what it does. It looks like a bunch of voltage regulators stuffed underneath a machine pin socket. “Software multi boot” sounds like the software would pick the bank to boot from but I don’t know why you’d need a hardware solution for that. But you’re clearly a wizard so please explain to me what’s going on.

Also for what it’s worth when I build stuff like this myself I use dual-wipe sockets instead of machine pin. It holds the EPROMs better!
 
It's a bunch of logic gates NAND, AND & NOR forming a SR Latch circuit.
Two specific addresses on the ROM are used to control the SR Latch controlling the High/Low signal on A19 of the 8 Mbits EEPROM.

This is reason i am calling it soft, event though there is an hardware part to it, the switching of the upper/lower bank is controlled in software in contrast to the current solution requiring to flip a switch. I am abusing the memory address lines as control lines.

Regarding the type of socket, i had a lot of trouble finding a part with long enough legs to pass through the 0.8mm PCB and still be long enough to hold into the board socket.
An other solution i have thought of is to use sockets strip line and then solder an SMD dual wipe socket on the PCB but i was not able to find stock of the strip lines.
 
No reasons i would not work.


Yes definitively ! The boot loader i made is not compatible with all the KI rom versions yet but it's ready to be used with KI1 l1.5di & KI2 l1.4.


There is already hardware diagnostics on the boot screen, the bong is retained (unless S1:7 is turned on).
The blue screen was not providing any diagnostic, it's is dummy progression indicator of the decompression into RAM. It doesn't care if the content of the RAM is OK.
Better identification of the hardware faults is on my todo list (reporting which chip is faulty).
In the mean time i have started to implement an IDE detection check as well. (if IDE drive is not properly connected or not present it will report it)

Simply fantastic, in my opinion you have made a hell of a breakthrough!

The hardware diagnostics are already great - the more you can implement then even better!
To report chip location would be incredible and to add IDE detection would be a fantastic tool.. There will surely be numerous boards out there that could potentially be brought back to life thanks to your amazing skills and efforts 👏👏
 
soft multiboot ROM adapter for U98.
If you change jumper JP30, don't you get the full 8Mbit EPROM mapped into memory? Wouldn't that be sufficient to do multi-boot, rather than bank switching two 4Mbit EPROM images on an 8Mbit chip? Especially since you've rewritten the decompression... don't you just need sufficient space to store the compressed blobs for KI1 and KI2?

What's your plan for the multi IDE part? A CPLD that patches C/H/S writes? I haven't done much research into it, but a software patch seems fairly straightforward, if you can build the image properly. Just as an example, if there are 255 heads and 63 sectors, then each cylinder is ~8MB. So the original KI1 HD would fit in roughly 16 cylinders, and the KI2 HD would fit in roughly 52 cylinders. If you rounded the disk up to 128 cylinders (~1GB disk), you could have cylinders 0-63 for KI1 and 64-127 for KI2. Then KI1 should work as-is, and you'd only have to patch every write to the cylinder number low byte in the KI2 ROM to always OR with 0x40.

Of course this makes a lot of assumptions, since I haven't personally spent the time to look at the KI IDE R/W code.

DogP
 
@neku
I step away for a bit and come back to see this absolutely incredible work - WOW
The sound change to keep the attract sound playing is amazing - that has always bugged me

I cannot wait to see what you come up with next
Awesome work :)
 
Okay okay. I can't fully understand the conversation. The extra diagnostic tests are a great addition.

Big question: I will be able to play ki1 on a ki2 board by adding a small socketed chip?

Am I picking that up right?

Really good work, magnifique :)
 
Yes you're right, there would be one adapter per sound rom + some electronic (to be designed) in between the ide connector port and the hard disk to make it a multi.
But you also could play ki1 only by swapping the roms and hd without further hardware, thanks to neku's patch!
 
Last edited:
If you change jumper JP30, don't you get the full 8Mbit EPROM mapped into memory? Wouldn't that be sufficient to do multi-boot, rather than bank switching two 4Mbit EPROM images on an 8Mbit chip
Yes, a 8Mbit eprom could be mapped to memory, but sounds rom would still need bank switching (unless the control data sent to the ADSP contains the offset of the sound/program to play/execute, but i haven't found any evidence of it yet).
Also one argument in favor of the two 4Mbit bank switched eprom is that each ROM contains its own set of setup code & patches based on the game ROM packed in.
What's your plan for the multi IDE part? A CPLD that patches C/H/S writes? I haven't done much research into it, but a software patch seems fairly straightforward, if you can build the image properly
You are right, a software patch would be way better that adding any hardware.
I have started to look into it.
I found the read and write functions as well as the device parameters initialisation function.

Now trying to figure out to which ATA registers are the different IO addresses mapped to.
Few are already identified (Status Register, Command Register, Sector Count).

EDIT: All the registers / IO address are identified, the path for a patch is opened !

I am feeling i am on the right track :)

Yesterday i also added support of the KI1 p47 ROM to the unpack tool and started to write the readme file of the git repository (https://github.com/nekuz0r/ki-rom).
Contributions are welcome.
 
Last edited:
Wow I haven’t seen this forum in weeks and I come home to some great advances. I love you guys 😭
 
Achievement unlocked : One drive to rule them all !
Just out of curiosity, would it be possible to add some kind of cheat dipswitch?

For example, enable unlimited health for both players, allow characters to perform ultras at any time, and the character gets up as if nothing happened. The ability to perform ultimates and fatalities with a refresh and the ability to jump to eyedol? I just thought it would be cool if the game came with an arcade-style training mode.

Also great work with what you are doing here!
 
Last edited:
@kinooshi823 Building all that, especially while only having the game's compiled binary, is a whole lot of work (speaking from experience, I've done it). While I can't comment if @neku actually wants to put in those hours, I just wanted to direct you to some MAME cheats that you could use right now that have some of that functionality already: http://cheat.retrogames.com/mame_downloads.htm
 
Hello guys ! You asked for it, here it's !

View: https://youtu.be/gjw-sbPAiF0


I used a modified MAME binary allowing 8Mbits ROM, 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).
Next step, real hardware, i am waiting for my 8Mbits EPROM to be delivered.

EDIT: eagle eyes will have observed that there is no bank switching on the U98 ;)

Just out of curiosity, would it be possible to add some kind of cheat dipswitch?
Yes, this could be done, but i am not interested on doing so to be honest, i don't want to modify the gameplay.
 
Back
Top