|
Joined: Sep 2007
Posts: 56
Member
|
Member
Joined: Sep 2007
Posts: 56 |
Noticed a few Naomi incompatibilities in AOSDK 1.4.3: - dc_read16() function is limited to 2 MB - SA channel register is a bit too short (22 instead of 23 bits).
diff -Nru aosdk_base/eng_dsf/aica.c aosdk/eng_dsf/aica.c
--- aosdk_base/eng_dsf/aica.c 2008-07-28 11:16:04.000000000 -0700
+++ aosdk/eng_dsf/aica.c 2008-10-19 06:41:52.000000000 -0700
@@ -41,7 +41,7 @@
#define LPCTL(slot) ((slot->udata.data[0x0]>>0x9)&0x0001)
#define PCMS(slot) ((slot->udata.data[0x0]>>0x7)&0x0003)
-#define SA(slot) (((slot->udata.data[0x0]&0x3F)<<16)|(slot->udata.data[0x4/2]))
+#define SA(slot) (((slot->udata.data[0x0]&0x7F)<<16)|(slot->udata.data[0x4/2]))
#define LSA(slot) (slot->udata.data[0x8/2])
diff -Nru aosdk_base/eng_dsf/dc_hw.c aosdk/eng_dsf/dc_hw.c
--- aosdk_base/eng_dsf/dc_hw.c 2008-02-18 09:19:58.000000000 -0800
+++ aosdk/eng_dsf/dc_hw.c 2008-10-19 06:41:11.000000000 -0700
@@ -74,7 +74,7 @@
uint16 dc_read16(int addr)
{
- if (addr < 0x200000)
+ if (addr < 0x800000)
{
return dc_ram[addr] | (dc_ram[addr+1]<<8);
}
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
Very nice. The SA fix greatly improves Toy Fighter in MAME (except in some cases where I'm pretty sure it's streaming samples from the cartridge). I'll update the SDK and AO.
I need to get you a rip from ST-V Columns '97 soon too. It's got an SCSP DSP program with an instruction where "IRA" is greater than 0x31, with predictably crashing results.
Last edited by R. Belmont; 10/19/08 03:03 PM.
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
The Columns '97 RAM image is here: http://rbelmont.mameworld.info/col97.zipLooks like an unknown driver ("Ver 3.2.6|96 9/14|Tit&Sat by Hiro F.") to boot, although the host commands at least seem compatible.
Last edited by R. Belmont; 10/19/08 03:55 PM.
|
|
|
|
Joined: Feb 2008
Posts: 107
Senior Member
|
Senior Member
Joined: Feb 2008
Posts: 107 |
Consider #define'ing AICA RAM size to 2/8MB, selected by another definition (command-line given) to switch between NAOMI and DC. Also, rather than doing that if (in_range) you could do address & mask, where mask is size - 1. This way you can always have wide SA and not worry about it, as it will get masked and fit into DC memory even if you set the high bits. This BTW makes my life much easier, I can work on either project and when I change the sources I just copy the files over. I know next to nothing about Saturn but my DSP code treats invalid IRA as hardware zeros. Well it's either that or the address decoder only tests the highest bits and will wrap. Then again I've seen some "invalid" values being written to hardware and performing neat tricks
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
It'd be nice to test some of the "out of range" things on real hardware sometime. BTW, DK, I'll warn you in advance: 99% of the bitching we get about the Windows version of AO is due to the stupid and misleading error messages XP and Vista generate when the newer runtime DLLs are missing (usually something about "incorrect install"). Brace yourself
|
|
|
|
Joined: Feb 2008
Posts: 107
Senior Member
|
Senior Member
Joined: Feb 2008
Posts: 107 |
I can test that particular case on my DC (that is, SA vs 2MB). I hadn't so far because I've never had any problems related to addressing. As for the MS compiler - Knurek was my test subject (though it's usually guinea pigs that are used for that *) and he got it running within minutes. I admit the SxS error message you get is cryptic at best - shame on MS for that. There are several ways to make it work, the preffered being to download and install a redistributable with necessary dynamic libraries. It's only 4MB and all you need to do is run it and wait for the progress bar to reach 100%. And that's it, Makaron starts working again. A bit of a pain in the behind, yes, but a small price to pay for a decent compiler + debugger combo. If it has bugs I've yet to find them. *) that joke is only funny in Polish
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
SA I expect would wrap on the real DC, but I gave up on trying to predict Sega somewhere around Charles discovering that System 16 had a fully remappable address space for no particular reason. And if users could follow instructions...
|
|
|
|
Joined: Nov 2003
Posts: 459
Senior Member
|
Senior Member
Joined: Nov 2003
Posts: 459 |
Two new DSF rips: Guruguru Onsen 2 (2001)(Overworks, Sega) Industrial Spy - Operation Espionage [Espion-Age-Nts] (1999)(HuneX, NEC) Guruguru Onsen 2 shares some tracks with the earlier Atsumare Guruguru Onsen rip. The source MLTs are binary different, so I've included them just to be safe. Both available here: http://hcs64.com/dsf/I'll upload the older rips soonish (maybe add a proper frontend too, we'll see).
|
|
|
|
Joined: Feb 2008
Posts: 107
Senior Member
|
Senior Member
Joined: Feb 2008
Posts: 107 |
Sorry it took so long but I had other things on my head... As was to be expected, Dreamcast AICA will effectively ignore the highest bits of a given channel SA. Address decoding in this case is imperfect and the physical 2MB memory is being mirrored in the available address range. This is true for both AICA side and SH4 side access. As for DSP - testing that would require me to create a whole new tool (my current code doesn't even touch DSP). Quite frankly I'm too lazy for that However, if someone comes up with a KOS-compatible source, ELF, plain binary, or even a hacked 2MB memory dump from AO for example - I will give that a try.
|
|
|
0 members (),
316
guests, and
5
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|