New version of Phoenix emu + source code

GO TO ADMIN PANEL > ADD-ONS AND INSTALL VERTIFORO SIDEBAR TO SEE FORUMS AND SIDEBAR

Denis

New Member
Joined
Nov 16, 2001
Messages
91
Points
6
Website
Visit site
Current status.

what to do:

1. Find what makes those annoying garbage on screen.

(need to somehow reset/clear vram? or propertly init TV mode?)

2. Add controls.
 

Denis

New Member
Joined
Nov 16, 2001
Messages
91
Points
6
Website
Visit site
little addition (if someone have problems with it)

seems that tripod not allowed to d/l binary (not txt) files directly via right click/save as.. at first time. You need firstly left click on file link and after it you get to tripod.com file download page (there you can save as..). Antileech system?
 

TakaIsSilly

New Member
Joined
Aug 1, 2001
Messages
364
Points
16
Website
www.emuhq.com
Hu. let me have a look. Oh, i see... let's see what can I do to help.

You need to clear the tile memory every loop.

You need something like...

Code:
void ClsFast(){

 int i;

 uint8 *ASCITile;

 ASCITile = ???? #The ASCII tile data location is somewere in the SGL Tutorial...

 for(i=0;i<=0x2000;i++) *(ASCITile++) = 0x00;

}
(could be even more optimized...)

or this slower version, that works right out of the box:

Code:
void ClsSlo(){

 int x,y;

 for(x=0;x<=0x40;x++){

  for(y=0;y<=0x40;y++){

   slPrint(" ", slLocate(x,y));

  }

 }

}
Saturn also likes to synch the system. This means the system will run at 60fps, if possible. Add this code around here, i guess:

Code:
unsigned Z80_RDMEM(dword A)

{

if (A >= 0x7800 && A <=0x7bff)

    {

    if(DipSwitchSYNC == 1)

        {

        [b]ClsFast();[/b]

        VideoDraw();

        [b]slSynch()[/b]

        DipSwitchSYNC = 0;

        return 128;

        }

        else

        return 0;

    }

    else if (A < 0x8000)

    return RAM[A];

    slPrint("WARNING! Reading from", slLocate(1,16));

    return RAM[A];

}
Take this with a grain of salt, i just glanced into the code. If you need help with the controllers, I can also do something for you, but I belive you can figure it out :)
 

Denis

New Member
Joined
Nov 16, 2001
Messages
91
Points
6
Website
Visit site
Wohoo! Thank you! Will try it right now.

About controllers. Yes :) already implemented it. Can't right now upload source. but here is the cut from it (if someone want to try it now):

unsigned Z80_RDMEM(dword A)

{

Uint16 data;

data = Smpc_Peripheral[0].data;

if (A >= 0x7800 && A <=0x7bff)

{

if(DipSwitchSYNC == 1)

{

VideoDraw();

DipSwitchSYNC = 0;

return 128;

}

else

return 0;

}

else if (A >= 0x7000 && A <= 0x73FF)

{

byte hexdata = 0xff;

if ((data & PER_DGT_TR) == 0)hexdata &= ~(1<<0); // Right shift = coin 1

if ((data & PER_DGT_ST) == 0)hexdata &= ~(1<<1); // START button = 1p start

if ((data & PER_DGT_TC) == 0)hexdata &= ~(1<<4); // C button = fire

if ((data & PER_DGT_KR) == 0)hexdata &= ~(1<<5); // D-Right = right

if ((data & PER_DGT_KL) == 0)hexdata &= ~(1<<6); // D-Left = left

if ((data & PER_DGT_TB) == 0)hexdata &= ~(1<<7); // B button = shield

return hexdata;

}

else if (A < 0x8000)

return RAM[A];

slPrint("WARNING! Reading from", slLocate(1,16));

return RAM[A];

}
 
Top