mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 15:48:05 -04:00
Gizmondo port updated to 1.51b
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@567 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
fcf94fcc20
commit
84100c0fd5
17 changed files with 537 additions and 228 deletions
10
Pico/Pico.h
10
Pico/Pico.h
|
@ -22,10 +22,14 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
// external funcs for Sega/Mega CD
|
||||
int mp3_get_bitrate(FILE *f, int size);
|
||||
void mp3_start_play(FILE *f, int pos);
|
||||
void mp3_update(int *buffer, int length, int stereo);
|
||||
extern int mp3_get_bitrate(FILE *f, int size);
|
||||
extern void mp3_start_play(FILE *f, int pos);
|
||||
extern void mp3_update(int *buffer, int length, int stereo);
|
||||
|
||||
// this function should write-back d-cache and invalidate i-cache
|
||||
// on a mem region [start_addr, end_addr)
|
||||
// used by SVP dynarec
|
||||
extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr);
|
||||
|
||||
// Pico.c
|
||||
#define POPT_EN_FM (1<< 0) // 00 000x
|
||||
|
|
|
@ -23,9 +23,10 @@ extern ssp1601_t *ssp;
|
|||
|
||||
#ifndef ARM
|
||||
#define DUMP_BLOCK 0x0c9a
|
||||
u32 tcache[SSP_TCACHE_SIZE/4];
|
||||
u32 *ssp_block_table[0x5090/2];
|
||||
u32 *ssp_block_table_iram[15][0x800/2];
|
||||
u32 tcache[SSP_TCACHE_SIZE/4];
|
||||
char ssp_align[SSP_BLOCKTAB_ALIGN_SIZE];
|
||||
void ssp_drc_next(void){}
|
||||
void ssp_drc_next_patch(void){}
|
||||
void ssp_drc_end(void){}
|
||||
|
|
|
@ -204,8 +204,8 @@ static void emit_jump(int cond, void *target)
|
|||
static void handle_caches(void)
|
||||
{
|
||||
#ifdef ARM
|
||||
extern void flush_inval_caches(const void *start_addr, const void *end_addr);
|
||||
flush_inval_caches(tcache, tcache_ptr);
|
||||
extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr);
|
||||
cache_flush_d_inval_i(tcache, tcache_ptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
.global ssp_block_table
|
||||
.global ssp_block_table_iram
|
||||
|
||||
.global flush_inval_caches
|
||||
.global ssp_drc_entry
|
||||
.global ssp_drc_next
|
||||
.global ssp_drc_next_patch
|
||||
|
@ -28,11 +27,11 @@
|
|||
.global ssp_hle_11_38a
|
||||
|
||||
@ translation cache buffer + pointer table
|
||||
.text
|
||||
.data
|
||||
.align 12 @ 4096
|
||||
.size tcache, SSP_TCACHE_SIZE
|
||||
.size ssp_block_table, SSP_BLOCKTAB_SIZE
|
||||
.size ssp_block_table_iram, SSP_BLOCKTAB_IRAM_SIZE
|
||||
@.size tcache, SSP_TCACHE_SIZE
|
||||
@.size ssp_block_table, SSP_BLOCKTAB_SIZE
|
||||
@.size ssp_block_table_iram, SSP_BLOCKTAB_IRAM_SIZE
|
||||
tcache:
|
||||
.space SSP_TCACHE_SIZE
|
||||
ssp_block_table:
|
||||
|
@ -46,12 +45,6 @@ ssp_block_table_iram:
|
|||
.align 2
|
||||
|
||||
|
||||
flush_inval_caches:
|
||||
mov r2, #0x0 @ must be 0
|
||||
swi 0x9f0002
|
||||
bx lr
|
||||
|
||||
|
||||
@ SSP_GR0, SSP_X, SSP_Y, SSP_A,
|
||||
@ SSP_ST, SSP_STACK, SSP_PC, SSP_P,
|
||||
@ SSP_PM0, SSP_PM1, SSP_PM2, SSP_XST,
|
||||
|
@ -220,7 +213,7 @@ ssp_drc_dp_end:
|
|||
str r2, [r7, #SSP_OFFS_TMP1]
|
||||
sub r0, r1, #4
|
||||
add r1, r1, #4
|
||||
bl flush_inval_caches
|
||||
bl cache_flush_d_inval_i
|
||||
ldr r2, [r7, #SSP_OFFS_TMP1]
|
||||
ldr r0, [r7, #SSP_OFFS_TMP0]
|
||||
bx r2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue