Previous Thread
Next Thread
Print Thread
Page 33 of 55 1 2 31 32 33 34 35 54 55
Joined: Sep 2007
Posts: 56
K
Member
Offline
Member
K
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).

Code
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
R
Very Senior Member
OP Offline
Very Senior Member
R
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
R
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,217
Likes: 234

Joined: Mar 2001
Posts: 17,217
Likes: 234
R
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,217
Likes: 234
The Columns '97 RAM image is here:

http://rbelmont.mameworld.info/col97.zip

Looks 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
D
Senior Member
Offline
Senior Member
D
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 smile

Joined: Mar 2001
Posts: 17,217
Likes: 234
R
Very Senior Member
OP Offline
Very Senior Member
R
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 smile

Joined: Feb 2008
Posts: 107
D
Senior Member
Offline
Senior Member
D
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 smile

Joined: Mar 2001
Posts: 17,217
Likes: 234
R
Very Senior Member
OP Offline
Very Senior Member
R
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... smile

Joined: Nov 2003
Posts: 459
K
Senior Member
Offline
Senior Member
K
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
D
Senior Member
Offline
Senior Member
D
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 smile 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.

Page 33 of 55 1 2 31 32 33 34 35 54 55

Moderated by  R. Belmont, Richard Bannister 

Link Copied to Clipboard
Who's Online Now
1 members (AJR), 368 guests, and 5 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,944
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com