DARKSOFT Games Fixed to work with DIMM

Did you know that Wild Riders crashes with error 22 after a minute when loading from network? This happens in all packs. Entering and exiting test mode helped. I struggled with the problem for two weeks, and we finally found it! It was fixed. Now it doesn't crash.
link for BIN + MD :

https://drive.google.com/drive/folders/1yanADrJuXdt7xSaj320PCg2N04vBRmAx
# Wild Riders Netboot Error 22: Explanation

Yes — it was a **bad/incomplete netboot hack of the game**, not primarily a NetDIMM firmware problem.

The point is: the old `wldrider.bin` had already been “converted for netboot”, but it was done in a rough way. It only disabled the **final jump to the error handler**, while the game’s protection code itself was still running.

In the original Wild Riders cartridge, the ROM is accompanied by protection/security devices:

```text
x76f100_eeprom.bin
315-6146.bin
315-6215.bin
main_eeprom.bin
```

MAME runs the game correctly not because it magically patches the game, but because it has dumps of those protection components and the driver knows how to provide the correct environment/responses to the game.

A NetDIMM netboot image does not have the original cartridge protection hardware anymore. So the protection check has to be either properly emulated or fully bypassed.

What the old netboot hack did was this:

```text
0x000FE4B4:
04 8B -> 09 00
```

This location corresponds roughly to:

```text
if the protection response is bad:
jump to error
```

The old hack replaced that branch with `nop`. So effectively:

```text
the protection check failed,
but do not jump to the error path
```

At first glance, that looks like it should be enough. But the problem is that the actual protection call happens earlier.

The critical routine starts here:

```text
file offset: 0x000FE480
SH-4 addr: 0x0C0FE480
```

It does roughly this:

```text
if the internal protection state is 0 or 1:
return

otherwise:
call the protection reader
read/receive 0x80 bytes
compare them with the reference string "WILDRIDERSSTAFFAOSAITOU..."
if they do not match:
go to the error path
```

And the reader call was here:

```text
0x000FE4A0:
jsr @0x0C194EC0
```

So the old hack disabled only the “if bad, show error” part, but **did not disable the actual access to the cartridge protection**.

That appears to be what was causing the issue. On NetDIMM, the game was still trying to talk to the missing/incorrect cartridge protection. At first this did not show up, because the protection code does not immediately reach the active stage. Later, roughly after about a minute or during attract/demo/title transitions, the internal state reached the relevant branch, the game called the protection reader again, received garbage/wrong status/wrong data, and eventually collapsed into Error 22.

That is why V13 does not just add another `nop` after the comparison. It does the more correct thing for netboot:

```text
0x000FE480:
E6 2F 22 4F -> 0B 00 09 00
```

In other words, the start of the routine was replaced with:

```asm
rts
nop
```

So the protection task now returns immediately and never calls the protection reader at all.

That is why V13 works: we did not merely prevent the game from complaining about a bad response; we prevented it from touching the missing cartridge protection path entirely.

## Summary

```text
Old netboot hack:
- disabled only the branch to the error handler;
- left the protection polling code alive;
- the game still accessed the cart/security path;
- after some time it triggered Error 22.

New V13 hack:
- completely disables the periodic cart-security task;
- the protection reader is no longer called;
- the game no longer touches the missing cartridge protection path;
- Error 22 is gone.
```

So we were partly chasing the wrong suspect with the NetDIMM firmware. The firmware may have affected the symptoms, but the real cause was that `wldrider.bin` was only partially “netboot-ready”.
 
@piroxilin thank you for the detailed explanation and the fix.

If you want another NAOMI challenge, one that we have not been able to solve for years I have one for you.

This happens only on real NAOMI hardware. Melty Blood A version, when you select the twins HISU&KOHAKU (far left on selection) the game freezes. It will hard-lock, you cannot enter TEST mode
 
@piroxilin thank you for the detailed explanation and the fix.

If you want another NAOMI challenge, one that we have not been able to solve for years I have one for you.

This happens only on real NAOMI hardware. Melty Blood A version, when you select the twins HISU&KOHAKU (far left on selection) the game freezes. It will hard-lock, you cannot enter TEST mode
its all - gpt. I'm just a questionnaire for her.
But my original cartridge started acting up. I switched the machine to network boot (expensive), but even so, the game crashed after a minute with error 22. I made a patch for the Raspberry Pi so it would click the pins to enter the "test" on a timer and exit. I managed fine for a while, but then something started crashing with error 22 during work hours. The GPT suggested that the link net-dimm module and the main board were failing. But that's not true - maybe the voltage drops over time and the network card starts acting up, but it's hard to pinpoint. So I started trying to figure out what was breaking the system - the DIMM card, the Naomi BIOS, or the game. I compilled Naomi firmware, game images, and Dimm firmware over 16GB . I got really annoyed and started digging through the original game dump. and there it is.... my 3 chats in GPT are overflowing from analyzing the software.
 
But I translated TransferGame from Japanese so it was understand what was written there.
Then I created firmware for DIMM # 403-415 with various fixes. When I got tired of it, I created a firmware that allows you to downgrade the firmware to 402 from any higher version programmatically, over the network. In short, I had some fun :)
 
gbx-naomi.jpg
 
@piroxilin thank you for the detailed explanation and the fix.

If you want another NAOMI challenge, one that we have not been able to solve for years I have one for you.

This happens only on real NAOMI hardware. Melty Blood A version, when you select the twins HISU&KOHAKU (far left on selection) the game freezes. It will hard-lock, you cannot enter TEST mode
MeltyBloodActCadenza(RevA) - Are you talking about this version?
 
That is correct, the MAME entry is this:

GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, init_naomi, ROT0, "Type-Moon / Ecole", "Melty Blood Actress Again Version A (Japan, Rev A)", GAME_FLAGS )
 
That is correct, the MAME entry is this:

GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, init_naomi, ROT0, "Type-Moon / Ecole", "Melty Blood Actress Again Version A (Japan, Rev A)", GAME_FLAGS )
# Melty Blood Actress Again Version A — HISUI & KOHAKU Character Select Freeze Analysis

## Short Summary

The problematic character select slot is:

```text
CharaNo_004
Name = HISUI_AND_KOHAKU
IconPos = 0,2
```

So yes, this corresponds to the far-left character/team on the character select screen.

The image contains two different versions of `CHARASELECT.TXT`:

```text
DAT/CHARASELECT.TXT offset 0x0A146800 size 0x19D2
SCR/CHARASELECT.TXT offset 0x138EA800 size 0x1BE3
```

They differ in a critical way.

## Main Difference

In `DAT/CHARASELECT.TXT`:

```ini
[CharaNo_004]
Name = HISUI_AND_KOHAKU
File1 = HISUI
File2 = KOHAKU
CharaFace = 4
Secret1 = 0
Secret2 = 0
IconPos = 0,2
CursorMove = 5,8,6,1
Bg = 2
NameWH = 160,196
WinGrpPos = -80
```

In `SCR/CHARASELECT.TXT`:

```ini
[CharaNo_004]
Name = HISUI_AND_KOHAKU
File1 = HISUI
File2 = KOHAKU
CharaFace = 4
Secret1 = 0
Secret2 = 0
IconPos = 0,2
CursorMove = 5,8,6,1
Bg = 2
NameWH = 160,196
WinGrpPos = -80
TagType = 1
```

So the `DAT` version is missing:

```ini
TagType = 1
```

This looks very likely to be the cause of the freeze.

## Why This Can Freeze the Game

This character entry is:

```ini
Name = HISUI_AND_KOHAKU
File1 = HISUI
File2 = KOHAKU
```

This means it is not a normal single-character entry. It is a tag/team character entry. For this case, the game engine needs to know that it should not load `HISUI_AND_KOHAKU` as one standalone fighter, but instead load two separate fighters:

```text
HISUI
KOHAKU
```

That is most likely what `TagType` controls.

Without `TagType = 1`, the engine may follow the normal single-character loading path and try to load resources for `CharaNo_004` / `HISUI_AND_KOHAKU` as if it were a separate full character.

However, those resources do not exist in the image:

```text
No DAT/HISUI_AND_KOHAKU.CG2
No DAT/HISUI_AND_KOHAKU.HA6
No DAT/HISUI_AND_KOHAKU.CPF
No SOU/04A.OSB
No CSEL_HISUI_AND_KOHAKU.*
```

The existing resources are separate:

```text
DAT/HISUI.*
DAT/KOHAKU.*
SOU/05A.OSB
SOU/06A.OSB
```

Therefore, the correct path should be:

```text
TagType = 1 → load HISUI + KOHAKU
```

The incorrect path would be:

```text
TagType missing → try to load character #04 / HISUI_AND_KOHAKU as a single fighter
→ missing resource / invalid structure
→ hard lock
```

## Why TEST Mode Stops Working

This also fits the observed behavior.

After confirming the character, the game probably enters a synchronous battle/resource loading routine. If that routine gets stuck waiting for a file, dereferences an invalid pointer, or falls into an unhandled SH-4 exception/trap, the normal game loop no longer runs.

As a result, the TEST button is no longer processed. This is not a BIOS-level lockup; it is most likely the main game code getting stuck.

## Why This Looks Related to the Netboot / Patched Build

In MAME, `mbaa` Rev A is described as using the base `ic8.bin` from the regular `mbaao` set, with the Rev A overlay `epr-24455.ic7` loaded over the beginning. The remaining banks `ic9` through `ic13` are shared. MAME also lists board ID `5586` for `mbaa`, while the older `mbaao` uses board ID `5506`.

For this netboot BIN:

```text
File size = 0x18000000
Banks 0x04000000..0x17FFFFFF match MAME ic9–ic13
But the first 4 MiB block does not directly match MAME epr-24455.ic7
```

So the game data is mostly original, but the initial executable/startup region appears to have already been rebuilt or adapted for netboot.

The most likely scenario is:

```text
The official Rev A logic should use the correct SCR/CHARASELECT.TXT,
or it should otherwise correctly set TagType for CharaNo_004.

But in this netboot/patched build, the game appears to use the older/incomplete DAT/CHARASELECT.TXT,
or it loses TagType during parsing.
```

This explains why the issue appears specifically on HISUI&KOHAKU, while normal single-character selections work.

## First Patch to Test

The simplest test fix is data-only, without touching code.

### Option 1: Minimal Clean Fix

Add this to `[CharaNo_004]` in `DAT/CHARASELECT.TXT`:

```ini
TagType = 1
```

Relevant location:

```text
DAT/CHARASELECT.TXT base: 0x0A146800
[CharaNo_004] starts at: 0x0A146B77
Add after: WinGrpPos = -80
```

However, since the file would become longer, directly inserting bytes into the image is not ideal unless the ISO directory size and file layout are updated.

A cleaner approach would be:

1. Replace the whole `DAT/CHARASELECT.TXT` with `SCR/CHARASELECT.TXT`.
2. Update the ISO directory file size from `0x19D2` to `0x1BE3`.

### Option 2: Dirty In-Place Test

For a quick test, replace the existing line:

```ini
Secret2 = 0
```

with:

```ini
TagType = 1
```

The two strings have the same length:

```text
"Secret2 = 0" length 11
"TagType = 1" length 11
```

The address of this line is:

```text
0x0A146BE1
```

This is a very good quick test of the hypothesis: if the freeze disappears, the cause has been found.

## Conclusion

The most likely cause of the freeze is:

```text
When HISUI_AND_KOHAKU is selected, the game uses the incomplete/older DAT/CHARASELECT.TXT,
where CharaNo_004 is missing TagType = 1.

Because of that, the tag pair is handled as a normal single character #04,
but the image does not contain a complete battle/audio resource set for such a character.

This leads to a failed load, invalid state, or hard lock.
```

The first fix to test is:

```text
Add or substitute TagType = 1 for CharaNo_004 in DAT/CHARASELECT.TXT.
```
 
  • Like
Reactions: rtw
Thanks for the analysis @piroxilin , I see the AI claims that this is already patched but it is not. Let me explain.

from the original dump readme:

Melty Blood Actress Again, ECOLE 2008, NAOMI M4 cart.

Cart is populated with an FPGA, a PIC and a set of FLASH chips.

On some carts there is an extra EPROM with an updated program. In
this case the EPROM updates the main program to version A.

The EPROM shadows the FLASH address space.

On this specific cart only the first 0x1d0000 bytes of the main block is encrypted.

Here are the encrypted and decrypted dumps, I see that they would be hard to get out of MAME

https://sprend.com/download?C=57058bfa7e364acf9832d55d0208735e

Two directories, v0 and A containing the encrypted and decrypted files.
 
Thanks for the analysis @piroxilin , I see the AI claims that this is already patched but it is not. Let me explain.

from the original dump readme:

Melty Blood Actress Again, ECOLE 2008, NAOMI M4 cart.

Cart is populated with an FPGA, a PIC and a set of FLASH chips.

On some carts there is an extra EPROM with an updated program. In
this case the EPROM updates the main program to version A.

The EPROM shadows the FLASH address space.

On this specific cart only the first 0x1d0000 bytes of the main block is encrypted.

Here are the encrypted and decrypted dumps, I see that they would be hard to get out of MAME

https://sprend.com/download?C=57058bfa7e364acf9832d55d0208735e

Two directories, v0 and A containing the encrypted and decrypted files.
I only gave her MeltyBloodActressAgain.bin for netboot. not M4 version.
 
The netboot is created from the v0. Feel free to pass the originals to your GPT
 
The netboot is created from the v0. Feel free to pass the originals to your GPT
# Melty Blood Actress Again RevA Hisui/Kohaku Freeze Fix — Notes

## Summary

This build is **not ver0**.

The current working build should be described as:

```text
Melty Blood Actress Again Version A — V1 Hisui&Kohaku Fix
```

or shorter:

```text
MBAA RevA V1 H/K Fix
```

It is still **mostly RevA / Version A**, but with a very small rollback of several dangerous Hisui/Kohaku command-data changes to the safer ver0 layout.

The game balance is therefore:

```text
Overall system balance: RevA
All other characters: RevA
Hisui/Kohaku: mostly RevA
Hisui/Kohaku 3+C / Otama Upper: reverted to ver0 behavior
Hisui/Kohaku 214D: reverted to ver0 behavior
Hisui/Kohaku chair/projectile limit: reverted to ver0 behavior
```

Only **11 bytes** were changed.

---

## About the `3+C / おたまアッパー` change

To be precise, “swapped” does not necessarily mean that two text lines were literally moved like spreadsheet rows. What actually happened is that **RevA reassigned the action/animation ID and one important limit/parameter between two command entries, `82` and `85`, for the same command: `3+C / おたまアッパー` — Otama Upper.**

Inside the `hisui1` command block there are two entries for the same input:

```text
3+C // おたまアッパー / Otama Upper
```

They are probably not duplicate commands. They are likely **two different variants or state-dependent versions** of the same input. The game distinguishes them by internal entry number:

```text
82 3+C
85 3+C
```

In **ver0 / base flash**, the data looked like this:

```text
82 3+C 00000101 00000000 186 0 2 0 0 // おたまアッパー
85 3+C 00000101 00000000 630 0 1 0 0 // おたまアッパー
```

In **RevA**, it became:

```text
82 3+C 00000101 00000000 630 0 1 0 0 // おたまアッパー
85 3+C 00000101 00000000 186 0 0 0 0 // おたまアッパー
```

So the change was:

```text
entry 82:
was action/anim 186, limit/param 2
became action/anim 630, limit/param 1

entry 85:
was action/anim 630, limit/param 1
became action/anim 186, limit/param 0
```

That is why this can be described as a “swap”. More accurately:

```text
RevA moved action/animation 630 from entry 85 to entry 82,
moved action/animation 186 from entry 82 to entry 85,
and also changed the important parameter of entry 85 to 0.
```

The **V1 fix** restores this part to the ver0 layout:

```text
82 3+C ... 186 0 2 0 0
85 3+C ... 630 0 1 0 0
```

However, this does **not** mean that the entire Hisui/Kohaku balance was reverted to ver0. Only this small dangerous group of command-data changes was reverted. The rest of the game remains RevA.

---

## Possible cause

The likely scenario is:

During RevA balancing, the developers tried to adjust `3+C / おたまアッパー` for Hisui/Kohaku: which variant is available, how many times it can be used, in which state, and with which action ID. But one of the resulting records became suspicious:

```text
85 -> action/anim 186, param 0
```

That `0` is especially suspicious. If this column is a limit, condition, or state selector, then the command entry may still exist formally, but be invalid in some Hisui/Kohaku state. On real NAOMI hardware, that could cause the game to hang during match initialization or command-data loading.

So the current working theory is:

```text
The RevA developers adjusted Hisui/Kohaku's 3+C / Otama Upper balance.
While doing so, they accidentally reassigned entries 82 and 85 incorrectly and/or set one parameter to 0.
Because of that, original RevA can freeze on real NAOMI hardware when loading Hisui/Kohaku.
The V1 fix restores these two command entries to the safe ver0 layout, so the match starts correctly.
```

---

## What exactly was changed in V1

The V1 patch changes only the following Hisui/Kohaku command-data bytes:

```text
0x3AA9CD 214D flag/state
0x3ABCBC 3+C / Otama Upper entry 82 action/limit
0x3ABCFF 3+C / Otama Upper entry 85 action/limit
0x3AC254 214D flag/state
0x3AD359 chair/projectile limit
```

Total changed data: **11 bytes**.

Everything else remains RevA:

```text
RevA system balance
RevA changes for other characters
RevA overlay code
RevA tables
RevA resource/data layout
```

---

## Final conclusion

The current working build is:

```text
Version A / RevA,
with only a tiny rollback of broken Hisui/Kohaku command-data to ver0-safe values.
```

The fix does **not** turn the game back into ver0. It keeps the RevA balance almost entirely intact and only avoids the command-data combination that appears to hard-freeze real NAOMI hardware when Hisui/Kohaku is loaded.
 
In **ver0 / base flash**, the data looked like this:

```text
82 3+C 00000101 00000000 186 0 2 0 0 // おたまアッパー
85 3+C 00000101 00000000 630 0 1 0 0 // おたまアッパー
```

In **RevA**, it became:

```text
82 3+C 00000101 00000000 630 0 1 0 0 // おたまアッパー
85 3+C 00000101 00000000 186 0 0 0 0 // おたまアッパー
```

The patch verA mixed up two lines.
 
The netboot is created from the v0. Feel free to pass the originals to your GPT
https://drive.google.com/file/d/1A_mt1c7HrHEQDIyLrgR9nn83k6930ffw/view?usp=sharing

Its 24455 fixed for real HW.

...........
# Final epr-24455.ic7 Report — MBAA RevA V2 Hisui/Kohaku 3C Fix

## Purpose

This file is intended to test the **Melty Blood Actress Again Version A / RevA** Hisui & Kohaku freeze fix on a real Sega NAOMI M4 cartridge.

The goal is to replace the original `epr-24455.ic7` EPROM on the cartridge and verify whether the hard freeze disappears on real hardware when loading a match with **Hisui & Kohaku**.

Final patch name:

```text
MBAA RevA V2 Hisui/Kohaku 3C Fix
```

## Original file

Original file:

```text
epr-24455.ic7
```

Original file information:

```text
Size : 0x400000 / 4,194,304 bytes
CRC32 : 8660c63b
MD5 : e42fa0a2938b9c9e9b88e27cb3d9c847
SHA1 : 24d8d467b5298311fe00d431aba762a8899c5fa5
SHA256 : 0b92ea5134ce6a648853789f229968c957795d42a2e8cf5658152b5be28bb5b4
```

This is the original RevA EPROM overlay file. The first approximately `0x1D0000` bytes look like a protected/encrypted area, while the area after `0x1D0000` contains plaintext command/script data.

## Final patched file

Final patched file:

```text
epr-24455.ic7.V2_HisuiKohaku_3C_Fix.bin
```

Patched file information:

```text
Size : 0x400000 / 4,194,304 bytes
CRC32 : 59e5b167
MD5 : 46b1e5ad915d14162c5a92783e134acc
SHA1 : 279ba1ad1220036af31db9a47aeec953f5c55117
SHA256 : 2fae416b2bcfd9dd2c36f77105501f07f848a0727b309378d933a66a5f0c1fef
```

The file size is unchanged. It remains a raw 4 MiB EPROM image.

## Exact byte changes

The final V2 version differs from the original `epr-24455.ic7` by exactly **8 bytes**.

| Offset | Original | Patched | Original ASCII | Patched ASCII |
|---:|---:|---:|:---:|:---:|
| `0x3ABCDD` | `36` | `31` | `6` | `1` |
| `0x3ABCDE` | `33` | `38` | `3` | `8` |
| `0x3ABCDF` | `30` | `36` | `0` | `6` |
| `0x3ABCE6` | `31` | `32` | `1` | `2` |
| `0x3ABD20` | `31` | `36` | `1` | `6` |
| `0x3ABD21` | `38` | `33` | `8` | `3` |
| `0x3ABD22` | `36` | `30` | `6` | `0` |
| `0x3ABD29` | `30` | `31` | `0` | `1` |

These bytes are located in the plaintext command-data area, well after the protected/encrypted-looking section:

```text
changed area: 0x003ABCDD..0x003ABD29
protected/encrypted-looking area ends around: 0x001D0000
```

Therefore these bytes do not need to be re-encrypted. They are already part of the open plaintext command-data block.

## Logical meaning of the change

The change belongs to a `HISUI_1_C.TXT`-like command block, meaning a Hisui/Kohaku command-data block.

The fixed command is:

```text
3+C / おたまアッパー / Otama Upper
```

Original RevA data:

```text
82 3+C ... 630 0 1 0 0
85 3+C ... 186 0 0 0 0
```

Final V2 data:

```text
82 3+C ... 186 0 2 0 0
85 3+C ... 630 0 1 0 0
```

In other words, V2 restores only this very small part of the command data to the safe ver0/base layout.

## What was NOT changed

V2 does not revert the game back to ver0.

The following remain RevA:

```text
- RevA system balance
- all other characters
- Hisui/Kohaku 214D
- Hisui/Kohaku chair/projectile limit
- the rest of epr-24455.ic7
```

The only reverted area is:

```text
Hisui/Kohaku 3+C / Otama Upper rows 82 and 85
```

## Why this change was chosen

The diagnostic builds showed:

```text
V1 = revert 5 small Hisui/Kohaku changes -> works
V2A = revert only 3+C rows 82/85 -> works
```

Because V2A works on real hardware, the other previously suspected changes are not the cause of the freeze:

```text
- 214D flag/state is not the cause
- chair/projectile limit is not the cause
- CHARASELECT is not the cause
- TagType is not the cause
```

Final identified culprit:

```text
HISUI_1_C-like command block
3+C / おたまアッパー / Otama Upper
rows 82 and 85
```

## Integrity check / checksum

The possibility of an embedded checksum inside `epr-24455.ic7` was checked.

The obvious candidates were tested:

```text
- CRC32 of the original epr-24455.ic7
- inverted CRC32
- CRC32 of the protected/encrypted-looking area
- CRC32 of the plaintext data area
- simple 8-bit / 16-bit / 32-bit sums
- little-endian and big-endian variants
```

No meaningful embedded checksum field was found inside `epr-24455.ic7`.

Conclusion:

```text
No internal checksum field needed to be updated.
```

The MAME/ZIP CRC is external metadata and is not used by the real cartridge.

If the physical M4 cartridge performs any additional validation through the PIC/FPGA/board logic, it is not exposed as a normal checksum field inside `epr-24455.ic7`.

## Burning instructions

Use this file:

```text
epr-24455.ic7.V2_HisuiKohaku_3C_Fix.bin
```

as a raw 4 MiB image.

Important:

```text
- do not byte-swap the file
- do not interleave it
- do not add a header
- do not truncate or expand it
```

If your programmer reads the original `epr-24455.ic7` with this CRC32:

```text
8660c63b
```

then the patched file should be written using the same byte order.

## Expected test result

After replacing `epr-24455.ic7` with the patched V2 image:

```text
Melty Blood Actress Again Version A should remain RevA,
but Hisui & Kohaku should no longer hard-freeze when loading a match.
```

If the cartridge boots and a Hisui/Kohaku match starts correctly, this confirms that the original RevA bug was in the command data for `3+C / Otama Upper`, not in the BIOS, JVS, character select, or netboot.
 
Thank you vey much to both you and your AI @piroxilin ! I appreciate the details.

Did you manage to test this on a netboot NAOMI yet ?

What is super fascinating is that all this works on the original cart.

The only reason I can think of is that the netboot hack converts DMA transfers to PIO which is slower.
 
Thank you vey much to both you and your AI @piroxilin ! I appreciate the details.

Did you manage to test this on a netboot NAOMI yet ?

What is super fascinating is that all this works on the original cart.

The only reason I can think of is that the netboot hack converts DMA transfers to PIO which is slower.
I tested the builds on a network Naomi.
Have you tested it on real hardware yet?
I don't have an M4 cartridge, but everything should work on it, judging by the structure of the network image and the cartridge dump.
 
Thanks, I have not had the time to test it on the Naomi HW yet.

I own the cartridge of this game and it works perfectly so we must be hitting some kind of race condition on the slower PIO access.
 
Back
Top