SegaCd bios loading ultimate question

<_< Well, its about six months that i want to make my own bios calling lib (in C, compatible GCC) and its also about 6months that I'm wasting my time on this (yeah, 90% of my dev time was wasted on this F***y bios thing).

:banana

I imediately got something working , i mean, I was able to play audio tracks, open tray, stop audio etc etc :p but I rapidly got stuck on the fallowing things:

-Bios Status functions :huh:

-Bios loading functions <<< :flamethrower:

-Bios close tray functions :huh

Slowly and slowly, i moved to ASM to be sure that the code was working...

Actualy, the critical functions are 100% coded in asm (quick copy from MOD's code) and i'm still no result!

I ABSLUTELY need to get a working loading function (for various projects including tavern rpg) and here is the status:

-Works on Kega and GENS.

-Do not work on Xega and Real HW.

The reading operation always starts with success but the data never arrives (the bios never return that data is here)...

The VINT/Level2 thing is supported and still same problem.

:damn: :damn: I need help o_O

PS: This bios, in some month litteraly killed my dev pleasure, i can't beleive it.

Thx
 
:banana

Yesterday evening, I decided to make a strong strike and i finaly got something working on all emulators (gens, kega, xega, ages...).

I made it working on Xega for an unknown reason (just adding some code that have nothing to do with the stuff here and there <_< who said GCC bug?).

Today I burned a disc to check and :banana it goes a little foward (the data seems to arrives in the buffer) but nothing is loaded into ram :damn: (seems the bios returns wrong cdc status again) or subcpu crashed, who knows...

:huh :thumbs-up:
 
Ho thx =P

this is the subcpu source code of the V0.0 (the first build, the one i was searching to make working on real hardware and xega)...

There is also the compiled result and the assembled iso...

:D If you find out the problem within one minute, I don't know what i can do "crawl a hole and stay there" probably :cheers
 

Attachments

  • scpu.rar
    135.9 KB · Views: 129
  • scpu.rar
    135.9 KB · Views: 122
  • scpu.rar
    135.9 KB · Views: 121
  • scpu.rar
    135.9 KB · Views: 115
The doc says that the bios function itself substract 4 sectors to be sure the CDC gets data of the 4'th at least (sync problem)...

Steve Snake (and an addendum of the official doc) adviced to go 4 sectors before (so it makes 8 sectors before in total) to be 1000% sure...

Also, my loading function support "underrun" and "overrun" so it should not be a problem, shouldn't it?

Thx
 
Back
Top