What's new

About namco system 11 c431 keycus(dancing eyes)

WangDrum

Student
Joined
Jan 8, 2021
Messages
70
Reaction score
77
Location
South korea
hello.
I wanted to convert the Namco system11 games to Dancing Eyes, so I applied a patch to bypass keycus in mame and succeeded in booting and running the game.
However, keycus is used to convert hexadecimal to decimal, which displays the remaining time during gameplay, so when I run patched Dancing Eyes from keycus of another game, the remaining time is displayed as 999.
I knew that Namco's keycus was used for random number generation, but this was the first time I learned that it was used for hexadecimal-to-decimal conversion.
This could be solved by making an fpga chip that converts hexadecimal to decimal, but then the price would be too expensive and there would be no reason to convert, so if KEYCUS from another game is used like this, I think it could be solved by transplanting KEYCUS. Does anyone have any knowledge about this?
Or do you have any good ideas for solving this?
 
Last edited:
The newer keycus added more functions, and then they became unique functions.

I had a look some time ago, pocket racer had some kind of scrambling going on...
 
Since I don't have a star sweep board, I looked into what star sweep's keycus does in mame debugger, but it wasn't used as a hexadecimal converter.
Yes, it's easier.
The only other easy ones are tekken 2, quiz angel 3 / point blank 2 but it requires a gun board.

As you can see, none of the cus are identical on this hardware, so can't get away with adjusting the offsets.
 
Yes, it's easier.
The only other easy ones are tekken 2, quiz angel 3 / point blank 2 but it requires a gun board.

As you can see, none of the cus are identical on this hardware, so can't get away with adjusting the offsets.
I will also have to look into the keycus function of quiz angel 3 / point blank 2.
It's hard to imagine that among all Namco's keycuses, dancing eyes' keycus is the only one that functions as a hexadecimal converter.
 

Attachments

  • IMG_0466.jpeg
    IMG_0466.jpeg
    617.7 KB · Views: 49
why not just write the code to do that on the CPU and then point all of the calls to that function to your code rather than the keycus?
Yep, that's the way to do it, there's several functions tho, not only the decimal conversion he is talking about.
I don't understand the C code tho so not sure what code to actually write lol :D
The mips is the easy bit for me heh
 
return ( ( value / 100 ) % 10 ) |
( ( ( value / 1000 ) % 10 ) << 8 );

---------------
Here's an example of one of em...

It's value divided by 100 , then 10% of that?? ?

Then it does it again by 1000? ... then < < 8 what's that? :D

C code, never understood it , way too abstract :D
 
return ( ( value / 100 ) % 10 ) |
( ( ( value / 1000 ) % 10 ) << 8 );

---------------
Here's an example of one of em...

It's value divided by 100 , then 10% of that?? ?

Then it does it again by 1000? ... then < < 8 what's that? :D

C code, never understood it , way too abstract :D

My C is VERY rusty, but the % sign is a modulo operator, it checks what's left after dividing. And the << is shifting bits (some explanation on stackoverflow here).
 
This is one of the things that Large Language AI seems to excel at. I can feed it a chunk of 68K assembly and ask it to describe what it's doing, or then convert it to python or whatever.

it does really well with 68K, C-Code, Python and other well documented stuff.
it's absolute TRASH at GAL/PAL PLD code almost guaranteed to give you bad code on that lol
 
why not just write the code to do that on the CPU and then point all of the calls to that function to your code rather than the keycus?
The code that writes a hexadecimal number to keycus and retrieves the value converted to decimal is approximately 10 lines of code.
It is impossible to convert hexadecimal to decimal within the CPU by modifying about 10 lines of code.
And I am not familiar with mips programming, so programming it to load the converted value by performing conversion work in another part of the memory is beyond my ability.
 
It is impossible to convert hexadecimal to decimal within the CPU by modifying about 10 lines of code.
you find a area of the ROM space that is unused.
replace the existing code with a jump to that unused space
write the new code in the unused space to do the conversion
jump back to the original section of code.

I am not familiar with mips programming, so programming it to load the converted value by performing conversion work in another part of the memory is beyond my ability.
ask Chat GPT to write the code for you.
 
Back
Top