Página 1 de 1
 
 

Mensaje [Homebrew] Problema Con El Código

#1  milestailsprower 24 Diciembre 2009, 07:43 AM

Hola, cuando intento cargar la ISO en el emulador SSF, no funciona
Aquí está el código

/*----------------------------------------------------------------------*/
/*    Draw 1 Polygon                            */
/*----------------------------------------------------------------------*/
#include    "sgl.h"
#include    "sega_tim.h"

/****************************************************************************************************/
/* CD access stuff **********************************************************************************/
/****************************************************************************************************/

#include <SEGA_GFS.H>
#define   OPEN_MAX  (Sint32)5
#define   DIR_MAX   (Sint32)25  
 
// keep this info global
GfsDirTbl gfsDirTbl;
GfsDirName gfsDirName[DIR_MAX];
Uint32 gfsLibWork[GFS_WORK_SIZE(OPEN_MAX)/sizeof(Uint32)];    
// number of files in current directory
Sint32 gfsDirN;

void init_CD()
{
    GFS_DIRTBL_TYPE(&gfsDirTbl) = GFS_DIR_NAME;
    GFS_DIRTBL_DIRNAME(&gfsDirTbl) = gfsDirName;
    GFS_DIRTBL_NDIR(&gfsDirTbl) = DIR_MAX;
    gfsDirN = GFS_Init(OPEN_MAX, gfsLibWork, &gfsDirTbl);
}


void init_VDP2()
{
//Desactivamos la salida de video.
slTVOff();
//Pintamos el fondo negro por si las dudas. ;)
slBack1ColSet((void *)BACK_CRAM, CD_Black);
//Asignamos un la prioridad en la que se verán los fondos. Siendo 7 el del frente.
slPriorityNbg0(7);
slPriorityNbg1(6);
//  paleta:           COL_TYPE_16, COL_TYPE_256, COL_TYPE_2048
//  rgb:                COL_TYPE_32768, COL_TYPE_1M
// bitmap sizes(BM_HxV):    BM_512x256, BM_512x512, BM_1024x256, BM_1024x512
slBitMapNbg1(COL_TYPE_32768, BM_512x256, (void *)VDP2_VRAM_A0);
//Posicionamos el fondo.
slScrPosNbg1(toFIXED(0.0), toFIXED(0.0));
//Activamos ambos backgrounds
slScrAutoDisp(NBG0ON|NBG1ON);
//Activamos la salida de video.
slTVOn();
}

/****************************************************************************************************/
/* background ***************************************************************************************/
/****************************************************************************************************/

//funciones necesarias para la decompresión. Esto solo usa la cabecera de la función.
#include "DEHUFF.H"
// Transfiere linea a linea a la ram de video.
void img2VRAM(Uint16 *vram, Uint16 vram_width, Uint16 *img, Uint16 img_height, Uint16 img_width)
{
    int i;
    Uint32 oVRAM = 0;
    Uint32 oIMG = 0;
    
    for(i = 0; i < img_height; i++) {
        memcpy((void *)(vram + oVRAM), (void *)(img + oIMG), img_width*sizeof(Uint16));
        oVRAM += vram_width;
        oIMG += img_width;
    }    
}
//Variables globales del background
    #define BUFFER_SIZE 160096
    
//Carga del background
void loadBG()
{  
// Cargamos del CD en un buffer de memoria, decomprimimos y luego lo cargamos a la video ram
// background image
    void *buffer = malloc(BUFFER_SIZE);
    Uint8 *adr = (Uint8 *)0x200000;
    Sint32 load;

    load = GFS_Load(GFS_NameToId("FONDO1.BIN"), 0, (Uint32 *)buffer, 120260);
    if(load <= 0){
        slPrint("Error: en cargar la imagen",slLocate(2,21));
        };
    if(DeHuff(buffer, (void *)adr) != 0)
    {slPrint("Error: en decompresion",slLocate(2,21));
        };
  
    img2VRAM((Uint16 *)VDP2_VRAM_A0, 512, (Uint16 *)(0x200000), 240, 320);
}


void ss_main(void)
{
    //Inicializamos el sistema con los sprites----------------------------
    slInitSystem(TV_320x240, NULL, 0);
    
    //Iniciamos el CD-----------------------------------------------------
    init_CD();
    //Iniciamos las configuraciones básicas del VDP2----------------------
    init_VDP2();
    //Cargamos el fondo---------------------------------------------------
    loadBG();
    
    FIXED pos[XYZS] = {toFIXED(0.0), toFIXED(50.0), toFIXED(104.0), toFIXED(1.0)};
    ANGLE ang = DEGtoANG(0.0);

    slSynch();
}

/*********************************/
/* taken from cinit.c */
/*********************************/
#define        SystemWork        0x060ffc00        /* System Variable Address */
#define        SystemSize        (0x06100000-0x060ffc00)        /* System Variable Size */
/* sl.lnk ‚ÅŽw’肵‚½.bssƒZƒNƒVƒ‡ƒ“‚ÌŠJŽnAI—¹ƒVƒ“ƒ{ƒ‹ */
extern Uint32 _bstart, _bend;
 
int main( void )
{
    Uint8    *dst;
    Uint32    i;

    /* 1.Zero Set .bss Section */
    for( dst = (Uint8 *)&_bstart; dst < (Uint8 *)&_bend; dst++ ) {
        *dst = 0;
    }
    /* 2.ROM has data at end of text; copy it. */

    /* 3.SGL System Variable Clear */
    for( dst = (Uint8 *)SystemWork, i = 0;i < SystemSize; i++) {
        *dst = 0;
    }

    /* Application Call */
    ss_main();
    return 1;
}




Si estoy usando una muestra, pero no quiero cargar Sonic  
 



 
avatar
 milestailsprower Sexo: Femenino
Recien llegado
Recien llegado
 
Registrado: Diciembre 2009
Mensajes: 1
  • Volver arriba Página inferior
 

Mensaje Re: Problema Con El Código

#2  FacundoARG 26 Diciembre 2009, 08:18 PM

Hola, veo que estas usando uno de mis ejemplos.
Que es lo que no te carga en el ssf? a mi parecer no hay ningun problema con este código.

No entiendo que me decis, en "Si estoy usando una muestra"  
 




____________
SegaSaturn Developer Addict
 
avatar
argentina.png FacundoARG Sexo: Masculino
Colaborador SEGASATURNO
Colaborador SEGASATURNO
Professional Videogamer Coder
Donante Unreleased €
 
Registrado: Diciembre 2006
Ubicación: San Luis
Mensajes: 691
  • Volver arriba Página inferior
 


Ocultar¿Este tema fue útil?
Compartir este tema
Correo a un amigo Facebook Twitter Windows Live Favorites MySpace del.icio.us Digg SlashDot google.com LinkedIn StumbleUpon Blogmarks Diigo reddit.com Blinklist co.mments.com
technorati.com DIGG ITA linkagogo.com meneame.net netscape.com newsvine.com yahoo.com Fai Informazione Ok Notizie Segnalo Bookmark IT fark.com feedmelinks.com spurl.net

Página 1 de 1