Naomi support status #1188
Description
Why fixing naomi support would be a good thing
I thought i would open a new issue about this, because the old ones don't cover everything.
First, for the remainder, there are quite a lot of games that were never ported from naomi to dreamcast or any other console, you can find a partial list there : http://www.thedreamcastjunkyard.co.uk/2016/01/guest-article-expanding-dreamcast.html, the list only covers until 2007, while there were other games later.
Second, yes, there is mame, but reicast would be far better for this, especially with @flyinghead recent work on OIT.
I wouldn't mind patreonizing this, but at the moment i'm kinda worried about the fact there are many forks with different features, all this good stuff should make its way here, and i don't know why it doesn't (mainly thinking about OIT here, to be honest i'm mainly using flyinghead's fork at the moment)
I was able to start the naomi mode a few days ago (it seems like no one know how it works, so i searched and tried until i found out).
How to start a naomi game
On linux, to start a naomi game, besides building with make NAOMI=1
, you need the naomi_boot.bin
file in the data directory, this file is known as epr-2157XY.ic27
, where X is a number related to the region (6 for japan, 7 for usa, 8 for europe), and Y is the supported features. Depending on the game, it will accept certain bios, the bios with the best compatibility is supposed to be epr-21576h.ic27
. Then you need a converted game rom + some kind of loader. The loader file is like a cue file with this kind of content :
Guilty Gear XX Accent Core
"GuiltyGearXXAccentCore_v6.bin", 0x0000000, 0x0F000000
Where GuiltyGearXXAccentCore_v6.bin
is the path to the rom and 0x0F000000
is the hexadecimal size of the rom.
At the very least it's how things were with nullDC, personally i tried loading the rom file directly and didn't see any difference, so i'm not sure it's still working like this. But it should, right ?
Current issue
When i try launching a game that way, i get the naomi screen with an error saying "error 3 board malfunctioning", i don't know what it means, here is the output :
Config dir is: /home/udoo/.reicast/
Data dir is: /home/udoo/.reicast/
Personality: 00000000
Updated personality: 00000000
Linux paging: 00001000 00001000 00000FFF
MAP 00800000 w/ 50331648
MAP 20000000 w/ 50331648
MAP 04000000 w/ 33554432
MAP 06000000 w/ 33554432
MAP 0C000000 w/ 0
A8
vmem reserve: base: A94D0000, aram: c94d0000, vram: AD4D0000, ram: B54D0000
Resetting mem
Mem alloc successful!wtf /media/DATA/Emulation/roms/dreamcast/Akatsuki Bk Ausf Achse.lst is supposed to do ?
libwebsockets test server - (C) Copyright 2010-2013 Andy Green [email protected] - licensed under LGPL2.1
Initial logging level 7
Library version: 1.3 c11b847
IPV6 not compiled in
libev support not compiled in
Malformed entry on config - ignoring @ 49(ElfFile)
Malformed entry on config - ignoring @ 52(ta.HashCheckFile)
Malformed entry on config - ignoring @ 53(ta.HashLogFile)
static allocation: 4488 + (16 x 1024 fds) = 20872 bytes
canonical_hostname = udoo
per-conn mem: 184 + 1554 headers + protocol rx buf
Listening on port 5678
Found 6 matching FB configs.
Chosen visual ID = 0x21
Loaded /home/udoo/.reicast/data/naomi_boot.bin as bootrom
Loaded /home/udoo/.reicast/data/naomi_nvmem.bin as nvram
Using Recompiler
Auto-selected audio backend "alsa" (Advanced Linux Sound Architecture).
Initializing audio backend "alsa" (Advanced Linux Sound Architecture)...
ALSA: period size set to 1024
ALSA: buffer size set to 5120
recSh4 Init
Freeing fpcb
CodeCache addr: 0x564d5eb49000 | from: 0x564d5eb49000 | addr here: 0x564d5eb47f60
nullDC-Naomi rom loader v1.2
EEPROM file : null.eeprom
GL context version: 4.5
Sh4 Reset
reios: IP.bin is ''
reios: Hardware ID is:
reios: Maker ID is:
reios: Device info is:
reios: Area symbols is:
reios: Peripherals is:
reios: Product number is:
reios: Product version is:
reios: Release date is:
reios: Boot filename is:
reios: Software company is:
reios: Software name is:
reios: loading ip.bin from FAD: 8323072
reios: bootfile is ''
OSD: 6
Error opening /home/udoo/.reicast/data/buttons.png
Error opening /home/udoo/.reicast/pixmaps/font.png
Error opening /home/udoo/.reicast/font.png
Failed to locate bootfile.
evdev: Trying to open device at '/dev/input/event0'
evdev: Found 'Power Button' at '/dev/input/event0'
evdev: reading mapping file: 'controller_generic.cfg'
btn_a = BTN_SOUTH (304)
btn_b = BTN_EAST (305)
btn_c = BTN_C (306)
btn_d = BTN_THUMBL (317)
btn_x = BTN_NORTH (307)
btn_y = BTN_WEST (308)
btn_z = BTN_Z (309)
btn_start = BTN_START (315)
btn_escape = BTN_SELECT (314)
btn_dpad1_left = BTN_DPAD_UP (544)
btn_dpad1_right = BTN_DPAD_DOWN (545)
btn_dpad1_up = BTN_DPAD_LEFT (546)
btn_dpad1_down = BTN_DPAD_RIGHT (547)
btn_trigger_left = BTN_TL (310)
btn_trigger_right = BTN_TR (311)
axis_dpad1_x = ABS_HAT0X (16)
axis_dpad1_y = ABS_HAT0Y (17)
axis_dpad2_x = ABS_HAT1X (18)
axis_x = ABS_X (0)
axis_y = ABS_Y (1)
axis_trigger_left = ABS_Z (2)
axis_trigger_right = ABS_RZ (5)
evdev: Using 'Generic Controller' mapping
evdev ioctl: Invalid argument
evdev ioctl: Invalid argument
evdev ioctl: Invalid argument
evdev ioctl: Invalid argument
evdev: Controller 2 disabled by config.
evdev: Controller 3 disabled by config.
evdev: Controller 4 disabled by config.
Legacy Joystick input disabled by config.
cntx // fpcb offset: -135266304 // pc offset: -184 // pc A0000000
Get MemPtr unsupported area : addr=0xA0000000
Get MemPtr unsupported area : addr=0xA0000018
Sh4: i-cache invalidation A0000016
Freeing fpcb
recSh4:Dynarec Cache clear at A0000016
Get MemPtr unsupported area : addr=0x80000080
sh4io: Const write ignored @@ 00000028 <- 0000A400
Get MemPtr unsupported area : addr=0x800000A8
Get MemPtr unsupported area : addr=0x800000BE
Get MemPtr unsupported area : addr=0x800000C6
Freeing fpcb
recSh4:Dynarec Cache clear at 8C0000DE
Get MemPtr unsupported area : addr=0xA0000420
Get MemPtr unsupported area : addr=0xA0000440
sh4io: Const write ignored @@ 00000028 <- 00000000
Get MemPtr unsupported area : addr=0xA00004BC
sh4io: Const write ignored @@ 00000028 <- 00000000
Get MemPtr unsupported area : addr=0xA0000506
Get MemPtr unsupported area : addr=0xA000057C
Get MemPtr unsupported area : addr=0xA0000586
Get MemPtr unsupported area : addr=0xA000058E
Get MemPtr unsupported area : addr=0xA00005A6
Get MemPtr unsupported area : addr=0xA00005AC
Get MemPtr unsupported area : addr=0xA00005B8
Get MemPtr unsupported area : addr=0xA00005CE
naomi?WTF? WriteMem: 5F7070 <= 7, 4
naomi?WTF? WriteMem: 5F7074 <= 0, 4
naomi?WTF? WriteMem: 5F7070 <= 7, 4
naomi?WTF? ReadMem: 5F7074, 4
naomi?WTF? WriteMem: 5F7070 <= 7, 4
naomi?WTF? WriteMem: 5F7074 <= 1, 4
naomi?WTF? WriteMem: 5F7070 <= 7, 4
naomi?WTF? ReadMem: 5F7074, 4
naomi?WTF? ReadMem: 5F7034, 2
sh4io: Invalid read access @@ 00000030
naomi?WTF? WriteMem: 5F7030 <= 0, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 8, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
naomi?WTF? WriteMem: 5F7030 <= 28, 4
My guess is that the issue is somehow related to the Failed to locate bootfile.
message, which seems like some kind of "i can't load the rom" error, except i'm doing it the right way (at least, that's how it worked with nullDC), and my roms are ok.
Any help would be really appreciated.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.