Search
lxdream.org :: lxdream/src/dreamcast.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/dreamcast.h
changeset 931:430048ea8b71
prev922:8a8361264b1e
next934:3acd3b3ee6d1
author nkeynes
date Tue Dec 23 05:48:05 2008 +0000 (13 years ago)
branchlxdream-mem
permissions -rw-r--r--
last change More refactoring and general cleanup. Most things should be working again now.
Split off cache and start real implementation, breaking save states in the process
view annotate diff log raw
     1 /**
     2  * $Id$
     3  *
     4  * Public interface for dreamcast.c -
     5  * Central switchboard for the system. This pulls all the individual modules
     6  * together into some kind of coherent structure. This is also where you'd
     7  * add Naomi support, if I ever get a board to play with...
     8  *
     9  * Copyright (c) 2005 Nathan Keynes.
    10  *
    11  * This program is free software; you can redistribute it and/or modify
    12  * it under the terms of the GNU General Public License as published by
    13  * the Free Software Foundation; either version 2 of the License, or
    14  * (at your option) any later version.
    15  *
    16  * This program is distributed in the hope that it will be useful,
    17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19  * GNU General Public License for more details.
    20  */
    22 #ifndef lxdream_dreamcast_H
    23 #define lxdream_dreamcast_H 1
    25 #include <stdio.h>
    26 #include "lxdream.h"
    28 #ifdef __cplusplus
    29 extern "C" {
    30 #endif
    32 #define DEFAULT_TIMESLICE_LENGTH 1000000 /* nanoseconds */
    34 #define XLAT_NEW_CACHE_SIZE 40 MB
    35 #define XLAT_TEMP_CACHE_SIZE 2 MB
    36 #define XLAT_OLD_CACHE_SIZE 8 MB
    38 void dreamcast_configure(void);
    39 void dreamcast_configure_aica_only(void);
    40 void dreamcast_init(void);
    41 void dreamcast_reset(void);
    42 void dreamcast_run(void);
    43 void dreamcast_set_run_time( unsigned int seconds, unsigned int nanosecs );
    44 void dreamcast_set_exit_on_stop( gboolean flag );
    45 void dreamcast_stop(void);
    46 void dreamcast_shutdown(void);
    47 void dreamcast_config_changed(void);
    48 gboolean dreamcast_is_running(void);
    50 /**
    51  * Return if it's possible to start the VM - currently this requires 
    52  * a) A configured system
    53  * b) Some code to run (either a user program or a ROM)
    54  */
    55 gboolean dreamcast_can_run(void);
    57 /**
    58  * Notify the VM that a program (ELF or other binary) has been loaded.
    59  * 
    60  */
    61 void dreamcast_program_loaded( const gchar *name, sh4addr_t entry_point );
    63 #define DREAMCAST_SAVE_MAGIC "%!-lxDream!Save\0"
    64 #define DREAMCAST_SAVE_VERSION 0x00010006
    66 int dreamcast_save_state( const gchar *filename );
    67 int dreamcast_load_state( const gchar *filename );
    69 /**
    70  * Load the front-buffer image from the specified file.
    71  * If the file is not a valid save state, returns NULL. Otherwise,
    72  * returns a newly allocated frame_buffer that should be freed
    73  * by the caller. (The data buffer is contained within the
    74  * allocation and does not need to be freed separately)
    75  */
    76 frame_buffer_t dreamcast_load_preview( const gchar *filename );
    78 #define SCENE_SAVE_MAGIC "%!-lxDream!Scene"
    79 #define SCENE_SAVE_VERSION 0x00010000
    81 #ifdef __cplusplus
    82 }
    83 #endif
    85 #endif /* !lxdream_dreamcast_H */
.