• R/O
  • SSH
  • HTTPS

gpsp-kai: Commit


Commit MetaInfo

Revision398 (tree)
Time2008-06-10 00:11:18
Authortakka

Log Message

UnOfficial gpSP kai 3.3 test 2

Change Summary

Incremental Difference

--- trunk/gpsp-kai-test/src/zip.c (revision 397)
+++ trunk/gpsp-kai-test/src/zip.c (revision 398)
@@ -21,7 +21,7 @@
2121
2222 #include "common.h"
2323
24-#define ZIP_BUFFER_SIZE (256 * 1024) // 256KB
24+#define ZIP_BUFFER_SIZE (320 * 1024) // 320KB
2525
2626 struct SZIPFileDataDescriptor
2727 {
@@ -65,12 +65,11 @@
6565 zip_buffer_size -= (1 * 1024 * 1024);
6666 cbuffer = malloc(zip_buffer_size);
6767 }
68- zip_buffer_size = zip_buffer_size;
6968 }
7069 else
7170 {
7271 zip_buffer_size = ZIP_BUFFER_SIZE;
73- cbuffer = (u8 *)0x441A5C00; // 汎用フレームバッファを使用
72+ cbuffer = (u8 *)UNIVERSAL_VRAM_ADDR; // 汎用フレームバッファを使用
7473 }
7574
7675 chdir(rom_path);
@@ -145,7 +144,7 @@
145144 stream.zfree = (free_func)0;
146145 stream.opaque = (voidpf)0;
147146
148- err = inflateInit2(&stream, MAX_WBITS);
147+ err = inflateInit2(&stream, -MAX_WBITS);
149148
150149 FILE_READ(fd, cbuffer, zip_buffer_size);
151150
--- trunk/gpsp-kai-test/src/gu.c (revision 397)
+++ trunk/gpsp-kai-test/src/gu.c (revision 398)
@@ -31,7 +31,7 @@
3131 #define GBA_LINE_SIZE 240
3232 #define FRAME_LINE_SIZE 768
3333
34-#define GPSP_CONFIG_FILENAME "cfg/video.cfg"
34+#define VIDEO_CONFIG_FILENAME "cfg/video.cfg"
3535
3636 // VRAM メモリマップ(VRAM割当てのAPIを使用しないで全て自前で管理)
3737 // 0x000000~0x0BFFFF(0xC0000 768.0kb) 表示用フレームバッファ
@@ -50,7 +50,7 @@
5050 static u32 *ge_cmd_ptr = (u32 *)0x441FC000;
5151 static u32 gecbid;
5252 float *temp_vertex = (float *)0x441FC200;
53-u16 *vram_data = (u16 *)0x441A5C00;
53+u16 *vram_data = (u16 *)UNIVERSAL_VRAM_ADDR;
5454
5555 u32 video_draw_frame = FRAME_GAME;
5656
@@ -434,7 +434,7 @@
434434 memcpy(&screen_parameter_psp_game, &screen_parameter_psp_game_init, sizeof(SCREEN_PARAMETER)*5);
435435
436436 // video configファイルのオープン
437- video_file = fopen(GPSP_CONFIG_FILENAME, "r");
437+ video_file = fopen(VIDEO_CONFIG_FILENAME, "r");
438438
439439 if(video_file)
440440 {
--- trunk/gpsp-kai-test/src/gu.h (revision 397)
+++ trunk/gpsp-kai-test/src/gu.h (revision 398)
@@ -145,7 +145,6 @@
145145 extern float *temp_vertex;
146146 extern u16 *vram_data;
147147
148-
149148 extern u16 *screen_address;
150149 extern u32 screen_pitch;
151150 extern u32 screen_width;
@@ -170,4 +169,6 @@
170169 void set_resolution_parameter_game(video_scale_type scale);
171170 void set_resolution_parameter_menu();
172171
172+#define UNIVERSAL_VRAM_ADDR (0x441A5C00)
173+
173174 #endif
--- trunk/gpsp-kai-test/src/sound.c (revision 397)
+++ trunk/gpsp-kai-test/src/sound.c (revision 398)
@@ -256,12 +256,10 @@
256256
257257 #define sound_savestate_body(type) \
258258 { \
259- u32 temp_sound_read_offset = sound_read_offset; \
260- u32 temp_gbc_sound_buffer_index = gbc_sound_buffer_index; \
261259 FILE_##type##_VARIABLE(g_state_buffer_ptr, sound_on); \
262- FILE_##type##_VARIABLE(g_state_buffer_ptr, /*temp_*/sound_read_offset); \
260+ FILE_##type##_VARIABLE(g_state_buffer_ptr, sound_read_offset); \
263261 FILE_##type##_VARIABLE(g_state_buffer_ptr, sound_last_cpu_ticks); \
264- FILE_##type##_VARIABLE(g_state_buffer_ptr, /*temp_*/gbc_sound_buffer_index); \
262+ FILE_##type##_VARIABLE(g_state_buffer_ptr, gbc_sound_buffer_index); \
265263 FILE_##type##_VARIABLE(g_state_buffer_ptr, gbc_sound_last_cpu_ticks); \
266264 FILE_##type##_VARIABLE(g_state_buffer_ptr, gbc_sound_partial_ticks); \
267265 FILE_##type##_VARIABLE(g_state_buffer_ptr, gbc_sound_master_volume_left); \
@@ -409,7 +407,7 @@
409407 { 0xF8, 0xF8, 0xF8, 0xF8, 0x07, 0xF8, 0xF8, 0xF8 },
410408 { 0xF8, 0xF8, 0xF8, 0xF8, 0x07, 0x07, 0xF8, 0xF8 },
411409 { 0xF8, 0xF8, 0x07, 0x07, 0x07, 0x07, 0xF8, 0xF8 },
412- { 0x07, 0x07, 0x07, 0x07, 0xF8, 0xF8, 0x07, 0x07 },
410+ { 0x07, 0x07, 0x07, 0x07, 0xF8, 0xF8, 0x07, 0x07 },
413411 };
414412
415413 s8 wave_samples[64];
@@ -420,32 +418,32 @@
420418 u32 gbc_sound_master_volume_table[4] = { 1, 2, 4, 0 };
421419
422420 u32 gbc_sound_channel_volume_table[8] =
423- { FIXED_DIV(0, 7, 12),
424- FIXED_DIV(1, 7, 12),
425- FIXED_DIV(2, 7, 12),
426- FIXED_DIV(3, 7, 12),
427- FIXED_DIV(4, 7, 12),
428- FIXED_DIV(5, 7, 12),
429- FIXED_DIV(6, 7, 12),
421+ { FIXED_DIV(0, 7, 12),
422+ FIXED_DIV(1, 7, 12),
423+ FIXED_DIV(2, 7, 12),
424+ FIXED_DIV(3, 7, 12),
425+ FIXED_DIV(4, 7, 12),
426+ FIXED_DIV(5, 7, 12),
427+ FIXED_DIV(6, 7, 12),
430428 FIXED_DIV(7, 7, 12)
431429 };
432430
433431 u32 gbc_sound_envelope_volume_table[16] =
434- { FIXED_DIV(0, 15, 14),
435- FIXED_DIV(1, 15, 14),
436- FIXED_DIV(2, 15, 14),
437- FIXED_DIV(3, 15, 14),
438- FIXED_DIV(4, 15, 14),
439- FIXED_DIV(5, 15, 14),
440- FIXED_DIV(6, 15, 14),
441- FIXED_DIV(7, 15, 14),
442- FIXED_DIV(8, 15, 14),
443- FIXED_DIV(9, 15, 14),
444- FIXED_DIV(10, 15, 14),
445- FIXED_DIV(11, 15, 14),
446- FIXED_DIV(12, 15, 14),
447- FIXED_DIV(13, 15, 14),
448- FIXED_DIV(14, 15, 14),
432+ { FIXED_DIV(0, 15, 14),
433+ FIXED_DIV(1, 15, 14),
434+ FIXED_DIV(2, 15, 14),
435+ FIXED_DIV(3, 15, 14),
436+ FIXED_DIV(4, 15, 14),
437+ FIXED_DIV(5, 15, 14),
438+ FIXED_DIV(6, 15, 14),
439+ FIXED_DIV(7, 15, 14),
440+ FIXED_DIV(8, 15, 14),
441+ FIXED_DIV(9, 15, 14),
442+ FIXED_DIV(10, 15, 14),
443+ FIXED_DIV(11, 15, 14),
444+ FIXED_DIV(12, 15, 14),
445+ FIXED_DIV(13, 15, 14),
446+ FIXED_DIV(14, 15, 14),
449447 FIXED_DIV(15, 15, 14) };
450448
451449 volatile /*static*/ u32 gbc_sound_buffer_index = 0;
@@ -571,7 +569,7 @@
571569 sound_thread = sceKernelCreateThread("Sound thread", sound_update_thread, 0x8, 0x1000, 0, NULL);
572570 if (sound_thread < 0)
573571 {
574- quit();
572+ quit(1);
575573 }
576574
577575 //スレッドの開始
--- trunk/gpsp-kai-test/src/mips_emit.h (revision 397)
+++ trunk/gpsp-kai-test/src/mips_emit.h (revision 398)
@@ -1041,11 +1041,11 @@
10411041 {
10421042 set_cpu_mode(cpu_modes[reg[REG_CPSR] & 0x1F]);
10431043 if((io_registers[REG_IE] & io_registers[REG_IF]) &&
1044- io_registers[REG_IME] && ((reg[REG_CPSR] & 0x80) == 0))
1044+ (io_registers[REG_IME] & 0x01) && ((reg[REG_CPSR] & 0x80) == 0))
10451045 {
10461046 reg_mode[MODE_IRQ][6] = address + 4;
10471047 spsr[MODE_IRQ] = reg[REG_CPSR];
1048- reg[REG_CPSR] = (reg[REG_CPSR] & ~0xFF) | 0xD2;
1048+ reg[REG_CPSR] = /*(reg[REG_CPSR] & ~0xFF) |*/ 0xD2;
10491049 address = 0x00000018;
10501050 set_cpu_mode(MODE_IRQ);
10511051 }
@@ -1615,11 +1615,11 @@
16151615 {
16161616 set_cpu_mode(cpu_modes[_cpsr & 0x1F]);
16171617 if((io_registers[REG_IE] & io_registers[REG_IF]) &&
1618- io_registers[REG_IME] && ((_cpsr & 0x80) == 0))
1618+ (io_registers[REG_IME] & 0x01) && ((_cpsr & 0x80) == 0))
16191619 {
16201620 reg_mode[MODE_IRQ][6] = address + 4;
16211621 spsr[MODE_IRQ] = _cpsr;
1622- reg[REG_CPSR] = (reg[REG_CPSR] & ~0xFF) | 0xD2;
1622+ reg[REG_CPSR] = /*(reg[REG_CPSR] & ~0xFF) |*/ 0xD2;
16231623 set_cpu_mode(MODE_IRQ);
16241624 return 0x00000018;
16251625 }
--- trunk/gpsp-kai-test/src/cpu.h (revision 397)
+++ trunk/gpsp-kai-test/src/cpu.h (revision 398)
@@ -119,8 +119,8 @@
119119 s32 translate_block_thumb(u32 pc, TRANSLATION_REGION_TYPE translation_region,
120120 u32 smc_enable);
121121
122-#define ROM_TRANSLATION_CACHE_SIZE (1024 * 512 * 2) /* 2048 KB 0x20 0000 */
123-#define RAM_TRANSLATION_CACHE_SIZE (1024 * 384 * 1) /* 384 KB 0x06 0000 現在の所 0x020000を超えた状況はない*/
122+#define ROM_TRANSLATION_CACHE_SIZE (1024 * 512 * 4) /* 2048 KB 0x20 0000 */
123+#define RAM_TRANSLATION_CACHE_SIZE (1024 * 128 * 1) /* 128 KB 0x06 0000 現在の所 0x020000を超えた状況はない*/
124124 #define BIOS_TRANSLATION_CACHE_SIZE (1024 * 128 * 1) /* 32 KB 0x00 8000 現在の所 0x008000を超えた状況はない*/
125125 #define TRANSLATION_CACHE_LIMIT_THRESHOLD (1024)
126126
--- trunk/gpsp-kai-test/src/input.c (revision 397)
+++ trunk/gpsp-kai-test/src/input.c (revision 398)
@@ -93,7 +93,7 @@
9393 sceKernelDelayThread(25000);
9494
9595 // if (quit_flag == 1)
96-// quit();
96+// quit(0);
9797
9898 sceCtrlPeekBufferPositive(&ctrl_data, 1);
9999 ctrl_buttons = readHomeButton();
--- trunk/gpsp-kai-test/src/memory.c (revision 397)
+++ trunk/gpsp-kai-test/src/memory.c (revision 398)
@@ -150,9 +150,9 @@
150150 u16 oam_ram[512];
151151 // IOレジスタ 32kb
152152 u16 io_registers[1024 * 16];
153-// ExtワークRAM 512kb
153+// ExtワークRAM 256KB x2
154154 u8 ewram[1024 * 256 * 2];
155-// IntワークRAM 64kb
155+// IntワークRAM 32KB x2
156156 u8 iwram[1024 * 32 * 2];
157157 // VRAM 192kb
158158 u8 vram[1024 * 96 * 2];
@@ -2570,8 +2570,8 @@
25702570
25712571 if(!strcasecmp(dot_position, ".zip"))
25722572 {
2573- set_cpu_clock(9);
25742573 // プログレスバーの表示
2574+ set_cpu_clock(9); // 一時的に333MHzに
25752575 init_progress(5, "Load ZIP ROM."); // TODO エラーチェック
25762576 file_size = load_file_zip(name);
25772577 }
@@ -3679,7 +3679,7 @@
36793679 }
36803680 else
36813681 {
3682- quit();
3682+ quit(0);
36833683 }
36843684
36853685 real_frame_count = 0;
--- trunk/gpsp-kai-test/src/adhoc.c (revision 397)
+++ trunk/gpsp-kai-test/src/adhoc.c (revision 398)
@@ -78,7 +78,7 @@
7878 u32 g_adhoc_transfer_flag;
7979 u32 g_adhoc_link_flag;
8080
81-static u32 s_multi_mode;
81+static u32 s_multi_mode;
8282
8383
8484 /***************************************************************************
@@ -352,7 +352,7 @@
352352 network_thread = sceKernelCreateThread("Net thread", net_thread, 0x13, 0x2000, 0, NULL);
353353 if (network_thread < 0)
354354 {
355- quit();
355+ quit(0);
356356 }
357357
358358 //スレッドの開始
@@ -1106,7 +1106,7 @@
11061106 {
11071107 u32 value;
11081108 u32 length;
1109- u8 data1, data2;
1109+ u8 data1, data2;
11101110 u8 work[ADHOC_BUFFER_SIZE];
11111111 switch(g_multi_id)
11121112 {
--- trunk/gpsp-kai-test/src/fbm_print.c (revision 397)
+++ trunk/gpsp-kai-test/src/fbm_print.c (revision 398)
@@ -324,7 +324,7 @@
324324
325325 if (size == 0) return NULL;
326326
327- h_block = malloc(size);
327+ h_block = (int)malloc(size);
328328
329329 if (h_block < 0) return NULL;
330330
--- trunk/gpsp-kai-test/src/main.c (revision 397)
+++ trunk/gpsp-kai-test/src/main.c (revision 398)
@@ -213,7 +213,7 @@
213213
214214 int exit_callback(int arg1, int arg2, void *common)
215215 {
216- quit();
216+ quit(0);
217217 // quit_flag = 1; // TODO
218218 return 0;
219219 }
@@ -281,19 +281,25 @@
281281 return callback_thread_id;
282282 }
283283
284-void quit()
284+// mode = 0 NORMAL
285+// mode = 1 INIT ERROR
286+// mode = 2 FONT INIT ERROR
287+void quit(u32 mode)
285288 {
286- save_game_config_file();
287- save_config_file();
289+ if(mode == 0)
290+ {
291+ save_game_config_file();
292+ save_config_file();
288293
289- update_backup_force();
290-
294+ update_backup_force();
295+ }
291296 #ifdef USE_ADHOC
292297 adhoc_exit();
293298 #endif
294299
295300 sound_exit();
296- fbm_freeall();
301+ if(mode != 2)
302+ fbm_freeall();
297303
298304 #ifdef USE_DEBUG
299305 fclose(g_dbg_file);
@@ -312,6 +318,13 @@
312318 sceDisplaySetMode(0, PSP_SCREEN_WIDTH, PSP_SCREEN_HEIGHT);
313319 pspDebugScreenInit();
314320
321+ // Copy the directory path of the executable into main_path
322+ getcwd(main_path, MAX_FILE);
323+ chdir(main_path);
324+
325+ // 設定ファイルの読込み
326+ load_config_file();
327+
315328 psp_model = get_model();
316329
317330 // HOMEボタンを読取り可能にする
@@ -318,7 +331,7 @@
318331 if(pspSdkLoadStartModule("homehook.prx", PSP_MEMORY_PARTITION_KERNEL) < 0)
319332 {
320333 error_msg("Error in load/start homehook module.\n");
321- quit();
334+ quit(1);
322335 }
323336
324337 // PSP-2000(CFW3.71)なら、外部出力用のモジュールを読込む
@@ -341,8 +354,6 @@
341354 DBGOUT("\nStart gpSP\n");
342355 #endif
343356
344- getcwd(main_path, 512);
345-
346357 #ifdef USE_ADHOC
347358 // adhoc用モジュールのロード
348359 if (load_adhoc_modules() != 0)
@@ -349,11 +360,7 @@
349360 error_msg("not load adhoc modules!!\n");
350361 #endif
351362
352- // Copy the directory path of the executable into main_path
353- chdir(main_path);
354-
355- // 設定ファイルの読込み
356- load_config_file();
363+ // 初期化
357364 init_game_config();
358365
359366 init_main();
@@ -379,7 +386,7 @@
379386 {
380387 pspDebugScreenInit();
381388 error_msg("dir.cfg Error!!");
382- quit();
389+ quit(1);
383390 }
384391 update_progress();
385392
@@ -389,7 +396,7 @@
389396 {
390397 pspDebugScreenInit();
391398 error_msg("font.cfg Error!!");
392- quit();
399+ quit(1);
393400 }
394401 update_progress();
395402
@@ -399,7 +406,7 @@
399406 {
400407 pspDebugScreenInit();
401408 error_msg("message.cfg Error!!");
402- quit();
409+ quit(1);
403410 }
404411 update_progress();
405412
@@ -408,7 +415,7 @@
408415 {
409416 pspDebugScreenInit();
410417 error_msg("font init Error!!");
411- quit();
418+ quit(2);
412419 }
413420 update_progress();
414421
@@ -429,7 +436,7 @@
429436 PRINT_STRING_BG(msg[MSG_ERR_BIOS_2], 0xFFFF, 0x0000, 0, 60);
430437 flip_screen();
431438 error_msg("");
432- quit();
439+ quit(1);
433440 }
434441 update_progress();
435442 if(bios_ret == -2) // MD5が違う場合
@@ -447,7 +454,7 @@
447454 if(load_gamepak((char *)argv[1]) == -1)
448455 {
449456 printf("Failed to load gamepak %s, exiting.\n", load_filename);
450- exit(-1);
457+ quit(1);
451458 }
452459
453460 clear_screen(0);
@@ -475,7 +482,7 @@
475482 video_resolution(FRAME_MENU);
476483 printf("Failed to load gamepak %s, exiting.\n", load_filename);
477484 sceKernelDelayThread(5000000);
478- quit();
485+ quit(1);
479486 }
480487
481488 clear_screen(0);
@@ -503,11 +510,11 @@
503510 execute_arm_translate(execute_cycles);
504511 else
505512 execute_arm(execute_cycles);
506- return 0;
507513 #else
508514 execute_arm_translate(execute_cycles);
509515 #endif
510516
517+ return 0;
511518 }
512519
513520 // サスペンド時にメニューに入る処理
@@ -530,27 +537,22 @@
530537
531538 // video_countの初期値は960(水平表示クロック)
532539
533-/*
534-
535-----+-+----+-+----
536-
537-
538-*/
539-
540540 u32 update_gba()
541541 {
542542 // TODO このあたりのログをとる必要があるかも
543543 IRQ_TYPE irq_raised = IRQ_NONE;
544544
545- do {
546- cpu_ticks += execute_cycles;
545+ do
546+ {
547+ cpu_ticks += execute_cycles;
547548
548- reg[CHANGED_PC_STATUS] = 0;
549+ reg[CHANGED_PC_STATUS] = 0;
549550
550- if(gbc_sound_update) {
551- update_gbc_sound(cpu_ticks);
552- gbc_sound_update = 0;
553- }
551+ if(gbc_sound_update)
552+ {
553+ update_gbc_sound(cpu_ticks);
554+ gbc_sound_update = 0;
555+ }
554556
555557 update_timer(0);
556558 update_timer(1);
@@ -558,7 +560,7 @@
558560 update_timer(3);
559561
560562 video_count -= execute_cycles;
561- DBGOUT("%d\n",video_count);
563+ DBGOUT("%d %d\n",video_count, io_registers[REG_VCOUNT]);
562564
563565 // TODO ここでvideo_countの値により分岐すれば、最適化できるかも
564566 if(video_count <= 0)
@@ -607,9 +609,7 @@
607609
608610 dispstat |= 0x01;
609611 if(dispstat & 0x8)
610- {
611612 irq_raised |= IRQ_VBLANK;
612- }
613613
614614 affine_reference_x[0] = (s32)(ADDRESS32(io_registers, 0x28) << 4) >> 4;
615615 affine_reference_y[0] = (s32)(ADDRESS32(io_registers, 0x2C) << 4) >> 4;
@@ -624,7 +624,8 @@
624624 dma_transfer(dma + 2);
625625 if(dma[3].start_type == DMA_START_VBLANK)
626626 dma_transfer(dma + 3);
627- }
627+
628+ }
628629 else
629630
630631 if(vcount == 228) {
@@ -650,7 +651,7 @@
650651 vcount = 0; // TODO vcountを0にするタイミングを検討
651652
652653 //TODO 調整必要
653- if((gpsp_config.screen_interlace == PROGRESSIVE) || (video_out_mode == 0))
654+ if((video_out_mode == 0) || (gpsp_config.screen_interlace == PROGRESSIVE))
654655 synchronize();
655656 else
656657 {
@@ -719,7 +720,7 @@
719720 if(psp_fps_debug)
720721 {
721722 char print_buffer[256];
722- sprintf(print_buffer, "FPS:%02d DRAW:(%02d) S_BUF:%02d", (int)fps, (int)frames_drawn, (int)left_buffer);
723+ sprintf(print_buffer, "FPS:%02d DRAW:(%02d) S_BUF:%02d PC:%08X", (int)fps, (int)frames_drawn, (int)left_buffer, (int)reg[REG_PC]);
723724 PRINT_STRING_BG(print_buffer, 0xFFFF, 0x000, 0, 0);
724725 }
725726
@@ -939,8 +940,7 @@
939940 // and it must be on in the flags.
940941 io_registers[REG_IF] |= irq_raised;
941942
942- if((io_registers[REG_IE] & io_registers[REG_IF]) && io_registers[REG_IME] &&
943- ((reg[REG_CPSR] & 0x80) == 0))
943+ if((io_registers[REG_IME] & 0x01) && (io_registers[REG_IE] & io_registers[REG_IF]) && ((reg[REG_CPSR] & 0x80) == 0))
944944 {
945945 bios_read_protect = 0xe55ec002;
946946
@@ -947,7 +947,7 @@
947947 // Interrupt handler in BIOS
948948 reg_mode[MODE_IRQ][6] = reg[REG_PC] + 4;
949949 spsr[MODE_IRQ] = reg[REG_CPSR];
950- reg[REG_CPSR] = (reg[REG_CPSR] & ~0xFF) | 0xD2;
950+ reg[REG_CPSR] = 0xD2;
951951 reg[REG_PC] = 0x00000018;
952952 bios_region_read_allow();
953953 set_cpu_mode(MODE_IRQ);
@@ -959,7 +959,7 @@
959959
960960 MODEL_TYPE get_model()
961961 {
962- if(kuKernelGetModel() != 1 /*PSP_MODEL_SLIM_AND_LITE*/)
962+ if((kuKernelGetModel() <= 0 /* original PSP */) || ( gpsp_config.fake_fat == YES))
963963 {
964964 return PSP_1000;
965965 }
--- trunk/gpsp-kai-test/src/gui.c (revision 397)
+++ trunk/gpsp-kai-test/src/gui.c (revision 398)
@@ -801,6 +801,7 @@
801801 gpsp_config.language = temp;
802802 gpsp_config.emulate_core = ASM_CORE;
803803 gpsp_config.debug_flag = NO;
804+ gpsp_config.fake_fat = NO;
804805 }
805806
806807 /*--------------------------------------------------------
@@ -971,7 +972,7 @@
971972
972973 void menu_quit()
973974 {
974- quit();
975+ quit(0);
975976 }
976977
977978 void menu_load()
@@ -989,7 +990,7 @@
989990 {
990991 if(load_gamepak(load_filename) == -1)
991992 {
992- quit();
993+ quit(0);
993994 }
994995 reset_gba();
995996 return_value = 1;
@@ -1317,22 +1318,24 @@
13171318 MAKE_MENU(cheats, submenu_cheats, NULL);
13181319
13191320 /*--------------------------------------------------------
1320- mics オプション
1321+ その他 オプション
13211322 --------------------------------------------------------*/
13221323 MENU_OPTION_TYPE misc_options[] =
13231324 {
1325+ STRING_SELECTION_OPTION(NULL, msg[MSG_CHEAT_MENU_2], clock_speed_options, &game_config.clock_speed_number, 10, msg[MSG_CHEAT_MENU_HELP_2], 0),
1326+ STRING_SELECTION_OPTION(NULL, msg[MSG_CHEAT_MENU_3], update_backup_options, &game_config.update_backup_flag, 2, msg[MSG_CHEAT_MENU_HELP_3], 1),
1327+ STRING_SELECTION_OPTION(home_mode, msg[MSG_CHEAT_MENU_6], yes_no_options, &gpsp_config.enable_home, 2, msg[MSG_CHEAT_MENU_HELP_6], 2),
1328+
13241329 #ifdef USE_C_CORE
1325- STRING_SELECTION_OPTION(NULL, "Emulate Core : %s", emulate_core_options, &gpsp_config.emulate_core , 2, "Emulate Core", 1),
1330+ STRING_SELECTION_OPTION(NULL, "Emulate Core : %s", emulate_core_options, &gpsp_config.emulate_core , 2, "Emulate Core", 3),
13261331 #endif
13271332
13281333 #ifdef USE_DEBUG
1329- STRING_SELECTION_OPTION(NULL, "Debug mode : %s", yes_no_options, &gpsp_config.debug_flag, 2, "Debug mode", 2),
1334+ STRING_SELECTION_OPTION(NULL, "Debug mode : %s", yes_no_options, &gpsp_config.debug_flag, 2, "Debug mode", 4),
13301335 #endif
13311336
1332- STRING_SELECTION_OPTION(NULL, "Lang : %s", language_options, &gpsp_config.language, 12, "Lang", 12), /* TODO */
1333- STRING_SELECTION_OPTION(NULL, msg[MSG_CHEAT_MENU_2], clock_speed_options, &game_config.clock_speed_number, 10, msg[MSG_CHEAT_MENU_HELP_2], 13),
1334- STRING_SELECTION_OPTION(NULL, msg[MSG_CHEAT_MENU_3], update_backup_options, &game_config.update_backup_flag, 2, msg[MSG_CHEAT_MENU_HELP_3], 14),
1335- STRING_SELECTION_OPTION(home_mode, msg[MSG_CHEAT_MENU_6], yes_no_options, &gpsp_config.enable_home, 2, msg[MSG_CHEAT_MENU_HELP_6], 15),
1337+ STRING_SELECTION_OPTION(NULL, "言語 : %s", language_options, &gpsp_config.language, 12, "言語", 5), /* TODO */
1338+ STRING_SELECTION_OPTION(NULL, "Fake Fat : %s", yes_no_options, &gpsp_config.fake_fat, 2, "Fake Fat", 6), /* TODO */
13361339
13371340 SUBMENU_OPTION(NULL, msg[MSG_CHEAT_MENU_4], msg[MSG_CHEAT_MENU_HELP_4], 16)
13381341 };
@@ -1857,13 +1860,9 @@
18571860
18581861 fclose(msg_file);
18591862 if (loop > 0)
1860- {
18611863 return 0;
1862- }
18631864 else
1864- {
18651865 return -1;
1866- }
18671866 }
18681867 fclose(msg_file);
18691868 return -1;
@@ -2179,11 +2178,11 @@
21792178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21802179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
21812180
2182- char ss_filename[512];
2183- char timestamp[512];
2184- char save_ss_path[1024];
2181+ char ss_filename[MAX_FILE];
2182+ char timestamp[MAX_FILE];
2183+ char save_ss_path[MAX_PATH];
21852184 pspTime current_time;
2186- u8 rgb_data[160][240][3];
2185+ u8 *rgb_data = (u8 *)UNIVERSAL_VRAM_ADDR;
21872186 u8 x,y;
21882187 u16 col;
21892188 u8 r,g,b;
@@ -2212,9 +2211,9 @@
22122211 g = (col >> 5) & 0x1F;
22132212 b = (col) & 0x1F;
22142213
2215- rgb_data[159-y][x][2] = b * 255 / 31;
2216- rgb_data[159-y][x][1] = g * 255 / 31;
2217- rgb_data[159-y][x][0] = r * 255 / 31;
2214+ rgb_data[(159-y)*240*3+x*3+2] = b * 255 / 31;
2215+ rgb_data[(159-y)*240*3+x*3+1] = g * 255 / 31;
2216+ rgb_data[(159-y)*240*3+x*3+0] = r * 255 / 31;
22182217 }
22192218 }
22202219
--- trunk/gpsp-kai-test/src/cpu_asm.c (revision 397)
+++ trunk/gpsp-kai-test/src/cpu_asm.c (revision 398)
@@ -2876,7 +2876,7 @@
28762876 PRINT_STRING_BG(buffer, COLOR_WHITE, COLOR_BLACK, 0, 10); \
28772877 flip_screen(); \
28782878 error_msg(""); \
2879- quit(); \
2879+ quit(0); \
28802880 } \
28812881 block_address = (u8 *)(-1); \
28822882 break; \
--- trunk/gpsp-kai-test/src/main.h (revision 397)
+++ trunk/gpsp-kai-test/src/main.h (revision 398)
@@ -184,7 +184,7 @@
184184 u32 update_gba();
185185 void reset_gba();
186186 void synchronize();
187-void quit();
187+void quit(u32 mode);
188188 void game_name_ext(u8 *src, u8 *buffer, u8 *extension);
189189 void main_read_mem_savestate();
190190 void main_write_mem_savestate();
--- trunk/gpsp-kai-test/src/gui.h (revision 397)
+++ trunk/gpsp-kai-test/src/gui.h (revision 398)
@@ -43,6 +43,7 @@
4343 u32 language;
4444 u32 emulate_core;
4545 u32 debug_flag;
46+ u32 fake_fat;
4647 } GPSP_CONFIG;
4748
4849 typedef struct
--- trunk/gpsp-kai-test/src/cpu_c.c (revision 397)
+++ trunk/gpsp-kai-test/src/cpu_c.c (revision 398)
@@ -498,7 +498,7 @@
498498
499499 #define check_for_interrupts() \
500500 if((io_registers[REG_IE] & io_registers[REG_IF]) && \
501- io_registers[REG_IME] && ((reg[REG_CPSR] & 0x80) == 0)) \
501+ (io_registers[REG_IME] & 0x01) && ((reg[REG_CPSR] & 0x80) == 0)) \
502502 { \
503503 reg_mode[MODE_IRQ][6] = reg[REG_PC] + 4; \
504504 spsr[MODE_IRQ] = reg[REG_CPSR]; \
@@ -1472,7 +1472,7 @@
14721472 \
14731473 case 0xF: \
14741474 /* Reserved - treat as "never" */ \
1475- quit(); \
1475+ quit(0); \
14761476 arm_next_instruction(); \
14771477 break; \
14781478 } \
@@ -2929,7 +2929,7 @@
29292929 spsr[MODE_SUPERVISOR] = reg[REG_CPSR]; \
29302930 reg[REG_PC] = 0x00000008; \
29312931 arm_update_pc(); \
2932- reg[REG_CPSR] = (reg[REG_CPSR] & ~0x3F) | 0x13; \
2932+ reg[REG_CPSR] = /*(reg[REG_CPSR] & ~0x3F) |*/ 0x13; \
29332933 set_cpu_mode(MODE_SUPERVISOR); \
29342934 break; \
29352935 } \
@@ -3752,7 +3752,7 @@
37523752 spsr[MODE_SUPERVISOR] = reg[REG_CPSR]; \
37533753 reg[REG_PC] = 0x00000008; \
37543754 thumb_update_pc(); \
3755- reg[REG_CPSR] = (reg[REG_CPSR] & ~0x3F) | 0x13; \
3755+ reg[REG_CPSR] = /*(reg[REG_CPSR] & ~0x3F) |*/ 0x13; \
37563756 set_cpu_mode(MODE_SUPERVISOR); \
37573757 collapse_flags(); \
37583758 goto arm_loop; \
--- trunk/gpsp-kai-test/documents/tv_out_jp.txt (revision 397)
+++ trunk/gpsp-kai-test/documents/tv_out_jp.txt (revision 398)
@@ -67,4 +67,4 @@
6767 480i時には、スプライトをさらにもう一枚262ライン下に表示させ、インタレース出力に対応している
6868
6969 メニュー画面はどちらもフレームバッファに直接書き込んでいる
70- ※3.2 test06以降はメニュー用テクスチャバッファを使用する
\ No newline at end of file
70+ ※3.2 test06以降はメニュー用テクスチャバッファを使用する
--- trunk/gpsp-kai-test/documents/gpl-2.0.txt (nonexistent)
+++ trunk/gpsp-kai-test/documents/gpl-2.0.txt (revision 398)
@@ -0,0 +1,339 @@
1+ GNU GENERAL PUBLIC LICENSE
2+ Version 2, June 1991
3+
4+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6+ Everyone is permitted to copy and distribute verbatim copies
7+ of this license document, but changing it is not allowed.
8+
9+ Preamble
10+
11+ The licenses for most software are designed to take away your
12+freedom to share and change it. By contrast, the GNU General Public
13+License is intended to guarantee your freedom to share and change free
14+software--to make sure the software is free for all its users. This
15+General Public License applies to most of the Free Software
16+Foundation's software and to any other program whose authors commit to
17+using it. (Some other Free Software Foundation software is covered by
18+the GNU Lesser General Public License instead.) You can apply it to
19+your programs, too.
20+
21+ When we speak of free software, we are referring to freedom, not
22+price. Our General Public Licenses are designed to make sure that you
23+have the freedom to distribute copies of free software (and charge for
24+this service if you wish), that you receive source code or can get it
25+if you want it, that you can change the software or use pieces of it
26+in new free programs; and that you know you can do these things.
27+
28+ To protect your rights, we need to make restrictions that forbid
29+anyone to deny you these rights or to ask you to surrender the rights.
30+These restrictions translate to certain responsibilities for you if you
31+distribute copies of the software, or if you modify it.
32+
33+ For example, if you distribute copies of such a program, whether
34+gratis or for a fee, you must give the recipients all the rights that
35+you have. You must make sure that they, too, receive or can get the
36+source code. And you must show them these terms so they know their
37+rights.
38+
39+ We protect your rights with two steps: (1) copyright the software, and
40+(2) offer you this license which gives you legal permission to copy,
41+distribute and/or modify the software.
42+
43+ Also, for each author's protection and ours, we want to make certain
44+that everyone understands that there is no warranty for this free
45+software. If the software is modified by someone else and passed on, we
46+want its recipients to know that what they have is not the original, so
47+that any problems introduced by others will not reflect on the original
48+authors' reputations.
49+
50+ Finally, any free program is threatened constantly by software
51+patents. We wish to avoid the danger that redistributors of a free
52+program will individually obtain patent licenses, in effect making the
53+program proprietary. To prevent this, we have made it clear that any
54+patent must be licensed for everyone's free use or not licensed at all.
55+
56+ The precise terms and conditions for copying, distribution and
57+modification follow.
58+
59+ GNU GENERAL PUBLIC LICENSE
60+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61+
62+ 0. This License applies to any program or other work which contains
63+a notice placed by the copyright holder saying it may be distributed
64+under the terms of this General Public License. The "Program", below,
65+refers to any such program or work, and a "work based on the Program"
66+means either the Program or any derivative work under copyright law:
67+that is to say, a work containing the Program or a portion of it,
68+either verbatim or with modifications and/or translated into another
69+language. (Hereinafter, translation is included without limitation in
70+the term "modification".) Each licensee is addressed as "you".
71+
72+Activities other than copying, distribution and modification are not
73+covered by this License; they are outside its scope. The act of
74+running the Program is not restricted, and the output from the Program
75+is covered only if its contents constitute a work based on the
76+Program (independent of having been made by running the Program).
77+Whether that is true depends on what the Program does.
78+
79+ 1. You may copy and distribute verbatim copies of the Program's
80+source code as you receive it, in any medium, provided that you
81+conspicuously and appropriately publish on each copy an appropriate
82+copyright notice and disclaimer of warranty; keep intact all the
83+notices that refer to this License and to the absence of any warranty;
84+and give any other recipients of the Program a copy of this License
85+along with the Program.
86+
87+You may charge a fee for the physical act of transferring a copy, and
88+you may at your option offer warranty protection in exchange for a fee.
89+
90+ 2. You may modify your copy or copies of the Program or any portion
91+of it, thus forming a work based on the Program, and copy and
92+distribute such modifications or work under the terms of Section 1
93+above, provided that you also meet all of these conditions:
94+
95+ a) You must cause the modified files to carry prominent notices
96+ stating that you changed the files and the date of any change.
97+
98+ b) You must cause any work that you distribute or publish, that in
99+ whole or in part contains or is derived from the Program or any
100+ part thereof, to be licensed as a whole at no charge to all third
101+ parties under the terms of this License.
102+
103+ c) If the modified program normally reads commands interactively
104+ when run, you must cause it, when started running for such
105+ interactive use in the most ordinary way, to print or display an
106+ announcement including an appropriate copyright notice and a
107+ notice that there is no warranty (or else, saying that you provide
108+ a warranty) and that users may redistribute the program under
109+ these conditions, and telling the user how to view a copy of this
110+ License. (Exception: if the Program itself is interactive but
111+ does not normally print such an announcement, your work based on
112+ the Program is not required to print an announcement.)
113+
114+These requirements apply to the modified work as a whole. If
115+identifiable sections of that work are not derived from the Program,
116+and can be reasonably considered independent and separate works in
117+themselves, then this License, and its terms, do not apply to those
118+sections when you distribute them as separate works. But when you
119+distribute the same sections as part of a whole which is a work based
120+on the Program, the distribution of the whole must be on the terms of
121+this License, whose permissions for other licensees extend to the
122+entire whole, and thus to each and every part regardless of who wrote it.
123+
124+Thus, it is not the intent of this section to claim rights or contest
125+your rights to work written entirely by you; rather, the intent is to
126+exercise the right to control the distribution of derivative or
127+collective works based on the Program.
128+
129+In addition, mere aggregation of another work not based on the Program
130+with the Program (or with a work based on the Program) on a volume of
131+a storage or distribution medium does not bring the other work under
132+the scope of this License.
133+
134+ 3. You may copy and distribute the Program (or a work based on it,
135+under Section 2) in object code or executable form under the terms of
136+Sections 1 and 2 above provided that you also do one of the following:
137+
138+ a) Accompany it with the complete corresponding machine-readable
139+ source code, which must be distributed under the terms of Sections
140+ 1 and 2 above on a medium customarily used for software interchange; or,
141+
142+ b) Accompany it with a written offer, valid for at least three
143+ years, to give any third party, for a charge no more than your
144+ cost of physically performing source distribution, a complete
145+ machine-readable copy of the corresponding source code, to be
146+ distributed under the terms of Sections 1 and 2 above on a medium
147+ customarily used for software interchange; or,
148+
149+ c) Accompany it with the information you received as to the offer
150+ to distribute corresponding source code. (This alternative is
151+ allowed only for noncommercial distribution and only if you
152+ received the program in object code or executable form with such
153+ an offer, in accord with Subsection b above.)
154+
155+The source code for a work means the preferred form of the work for
156+making modifications to it. For an executable work, complete source
157+code means all the source code for all modules it contains, plus any
158+associated interface definition files, plus the scripts used to
159+control compilation and installation of the executable. However, as a
160+special exception, the source code distributed need not include
161+anything that is normally distributed (in either source or binary
162+form) with the major components (compiler, kernel, and so on) of the
163+operating system on which the executable runs, unless that component
164+itself accompanies the executable.
165+
166+If distribution of executable or object code is made by offering
167+access to copy from a designated place, then offering equivalent
168+access to copy the source code from the same place counts as
169+distribution of the source code, even though third parties are not
170+compelled to copy the source along with the object code.
171+
172+ 4. You may not copy, modify, sublicense, or distribute the Program
173+except as expressly provided under this License. Any attempt
174+otherwise to copy, modify, sublicense or distribute the Program is
175+void, and will automatically terminate your rights under this License.
176+However, parties who have received copies, or rights, from you under
177+this License will not have their licenses terminated so long as such
178+parties remain in full compliance.
179+
180+ 5. You are not required to accept this License, since you have not
181+signed it. However, nothing else grants you permission to modify or
182+distribute the Program or its derivative works. These actions are
183+prohibited by law if you do not accept this License. Therefore, by
184+modifying or distributing the Program (or any work based on the
185+Program), you indicate your acceptance of this License to do so, and
186+all its terms and conditions for copying, distributing or modifying
187+the Program or works based on it.
188+
189+ 6. Each time you redistribute the Program (or any work based on the
190+Program), the recipient automatically receives a license from the
191+original licensor to copy, distribute or modify the Program subject to
192+these terms and conditions. You may not impose any further
193+restrictions on the recipients' exercise of the rights granted herein.
194+You are not responsible for enforcing compliance by third parties to
195+this License.
196+
197+ 7. If, as a consequence of a court judgment or allegation of patent
198+infringement or for any other reason (not limited to patent issues),
199+conditions are imposed on you (whether by court order, agreement or
200+otherwise) that contradict the conditions of this License, they do not
201+excuse you from the conditions of this License. If you cannot
202+distribute so as to satisfy simultaneously your obligations under this
203+License and any other pertinent obligations, then as a consequence you
204+may not distribute the Program at all. For example, if a patent
205+license would not permit royalty-free redistribution of the Program by
206+all those who receive copies directly or indirectly through you, then
207+the only way you could satisfy both it and this License would be to
208+refrain entirely from distribution of the Program.
209+
210+If any portion of this section is held invalid or unenforceable under
211+any particular circumstance, the balance of the section is intended to
212+apply and the section as a whole is intended to apply in other
213+circumstances.
214+
215+It is not the purpose of this section to induce you to infringe any
216+patents or other property right claims or to contest validity of any
217+such claims; this section has the sole purpose of protecting the
218+integrity of the free software distribution system, which is
219+implemented by public license practices. Many people have made
220+generous contributions to the wide range of software distributed
221+through that system in reliance on consistent application of that
222+system; it is up to the author/donor to decide if he or she is willing
223+to distribute software through any other system and a licensee cannot
224+impose that choice.
225+
226+This section is intended to make thoroughly clear what is believed to
227+be a consequence of the rest of this License.
228+
229+ 8. If the distribution and/or use of the Program is restricted in
230+certain countries either by patents or by copyrighted interfaces, the
231+original copyright holder who places the Program under this License
232+may add an explicit geographical distribution limitation excluding
233+those countries, so that distribution is permitted only in or among
234+countries not thus excluded. In such case, this License incorporates
235+the limitation as if written in the body of this License.
236+
237+ 9. The Free Software Foundation may publish revised and/or new versions
238+of the General Public License from time to time. Such new versions will
239+be similar in spirit to the present version, but may differ in detail to
240+address new problems or concerns.
241+
242+Each version is given a distinguishing version number. If the Program
243+specifies a version number of this License which applies to it and "any
244+later version", you have the option of following the terms and conditions
245+either of that version or of any later version published by the Free
246+Software Foundation. If the Program does not specify a version number of
247+this License, you may choose any version ever published by the Free Software
248+Foundation.
249+
250+ 10. If you wish to incorporate parts of the Program into other free
251+programs whose distribution conditions are different, write to the author
252+to ask for permission. For software which is copyrighted by the Free
253+Software Foundation, write to the Free Software Foundation; we sometimes
254+make exceptions for this. Our decision will be guided by the two goals
255+of preserving the free status of all derivatives of our free software and
256+of promoting the sharing and reuse of software generally.
257+
258+ NO WARRANTY
259+
260+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268+REPAIR OR CORRECTION.
269+
270+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278+POSSIBILITY OF SUCH DAMAGES.
279+
280+ END OF TERMS AND CONDITIONS
281+
282+ How to Apply These Terms to Your New Programs
283+
284+ If you develop a new program, and you want it to be of the greatest
285+possible use to the public, the best way to achieve this is to make it
286+free software which everyone can redistribute and change under these terms.
287+
288+ To do so, attach the following notices to the program. It is safest
289+to attach them to the start of each source file to most effectively
290+convey the exclusion of warranty; and each file should have at least
291+the "copyright" line and a pointer to where the full notice is found.
292+
293+ <one line to give the program's name and a brief idea of what it does.>
294+ Copyright (C) <year> <name of author>
295+
296+ This program is free software; you can redistribute it and/or modify
297+ it under the terms of the GNU General Public License as published by
298+ the Free Software Foundation; either version 2 of the License, or
299+ (at your option) any later version.
300+
301+ This program is distributed in the hope that it will be useful,
302+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304+ GNU General Public License for more details.
305+
306+ You should have received a copy of the GNU General Public License along
307+ with this program; if not, write to the Free Software Foundation, Inc.,
308+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309+
310+Also add information on how to contact you by electronic and paper mail.
311+
312+If the program is interactive, make it output a short notice like this
313+when it starts in an interactive mode:
314+
315+ Gnomovision version 69, Copyright (C) year name of author
316+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317+ This is free software, and you are welcome to redistribute it
318+ under certain conditions; type `show c' for details.
319+
320+The hypothetical commands `show w' and `show c' should show the appropriate
321+parts of the General Public License. Of course, the commands you use may
322+be called something other than `show w' and `show c'; they could even be
323+mouse-clicks or menu items--whatever suits your program.
324+
325+You should also get your employer (if you work as a programmer) or your
326+school, if any, to sign a "copyright disclaimer" for the program, if
327+necessary. Here is a sample; alter the names:
328+
329+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331+
332+ <signature of Ty Coon>, 1 April 1989
333+ Ty Coon, President of Vice
334+
335+This General Public License does not permit incorporating your program into
336+proprietary programs. If your program is a subroutine library, you may
337+consider it more useful to permit linking proprietary applications with the
338+library. If this is what you want to do, use the GNU Lesser General
339+Public License instead of this License.
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/gpsp-kai-test/gpsp/Makefile (revision 397)
+++ trunk/gpsp-kai-test/gpsp/Makefile (revision 398)
@@ -10,8 +10,10 @@
1010 PSPSDK = ${shell psp-config --pspsdk-path}
1111 PREFIX = ${shell psp-config --psp-prefix}
1212
13-PSP_EBOOT_ICON = ../image/icon1.png
13+PSP_EBOOT_ICON = ../image/up_gbsp_kai_logo01_trim.png
14+#PSP_EBOOT_ICON = ../image/icon1.png
1415 #文字列が表示されないので保留
16+PSP_EBOOT_PIC1 = ../image/up_gbsp_kai_launch01_s.png
1517 #PSP_EBOOT_PIC1 = ../image/pic1.png
1618
1719 OBJS = main.o cpu_common.o cpu_asm.o cpu_c.o video.o memory.o sound.o input.o gu.o
--- trunk/gpsp-kai-test/prx/dvemgr/exports.c (nonexistent)
+++ trunk/gpsp-kai-test/prx/dvemgr/exports.c (revision 398)
@@ -0,0 +1,38 @@
1+#include <pspmoduleexport.h>
2+#define NULL ((void *) 0)
3+
4+void extern module_start;
5+void extern module_stop;
6+void extern module_info;
7+static const unsigned int __syslib_exports[6] __attribute__((section(".rodata.sceResident"))) = {
8+ 0xD632ACDB,
9+ 0xCEE8593C,
10+ 0xF01D73A7,
11+ (unsigned int) &module_start,
12+ (unsigned int) &module_stop,
13+ (unsigned int) &module_info,
14+};
15+
16+void extern pspDveMgrCheckVideoOut;
17+void extern pspDveMgrSetVideoOut;
18+static const unsigned int __pspDveManager_exports[4] __attribute__((section(".rodata.sceResident"))) = {
19+ 0x2ACFCB6D,
20+ 0xF9C86C73,
21+ (unsigned int) &pspDveMgrCheckVideoOut,
22+ (unsigned int) &pspDveMgrSetVideoOut,
23+};
24+
25+void extern pspDveMgrCheckVideoOut;
26+void extern pspDveMgrSetVideoOut;
27+static const unsigned int __pspDveManager_driver_exports[4] __attribute__((section(".rodata.sceResident"))) = {
28+ 0x2ACFCB6D,
29+ 0xF9C86C73,
30+ (unsigned int) &pspDveMgrCheckVideoOut,
31+ (unsigned int) &pspDveMgrSetVideoOut,
32+};
33+
34+const struct _PspLibraryEntry __library_exports[3] __attribute__((section(".lib.ent"), used)) = {
35+ { NULL, 0x0000, 0x8000, 4, 1, 2, &__syslib_exports },
36+ { "pspDveManager", 0x0000, 0x4001, 4, 0, 2, &__pspDveManager_exports },
37+ { "pspDveManager_driver", 0x0000, 0x0001, 4, 0, 2, &__pspDveManager_driver_exports },
38+};
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/gpsp-kai-test/readme_kai_jp.html (revision 397)
+++ trunk/gpsp-kai-test/readme_kai_jp.html (revision 398)
@@ -5,16 +5,28 @@
55
66 -- Release log --
77 <!--
8--UnOfficial gpSP kai 3.3 test 2
8+-UnOfficial gpSP kai 3.3 test 3
99 (現在修正中)HBLANK割込の処理を修正
1010 (現在修正中)メッセージの変更
1111 (現在修正中)MULTIモードの通信に対応(現状では2台のみ)
12- (現在修正中)デバッグ用にCコアARMエミュを復活
13- (現在修正中)チートとその他のオプションを分離
14- (現在修正中)CコアとASMコアのARMエミュを切替えられる様にした
15- (現在修正中)一時的にROMキャッシュを1MBに減らす
1612 (現在修正中)ASMコアのthumb BLの修正(Cコアでは正常)
1713 -->
14+-UnOfficial gpSP kai 3.3 test 2
15+ チートとその他のオプションを分離
16+ デバッグ用にCコアARMエミュを復活
17+ CコアとASMコアのARMエミュを切替えられる様にした(再起動後に有効)
18+ 一時的にROMキャッシュを1MBに減らしていたのを元に戻す
19+ その分、RAMキャッシュを少し減らす
20+ ZIPファイルの解凍時に、PSP-1000の解凍用バッファを320KBに拡張
21+ BMPバッファを汎用VRAM上に取り、112.5KBほどメモリを節約
22+ PSP-1000で16MBのROMバッファを確保
23+ アイコン/イメージをpochiさんのものに変更
24+ フォントをいくつか追加(ネットワークアップデートではなく、ZIPファイルに同梱)
25+ フォント初期化失敗時にフリーズするのを修正
26+ IRQ割込時に、IMEレジスタの0ビット以外もチェックしていたのを修正(これによる不具合が出ていたかどうかは不明)
27+ デバッグ用に、旧型として起動するオプションを追加(再起動後に有効)
28+ デバッグ用のオプションを追加(テスト用の情報をメモステにガリガリ書き込むので注意)
29+
1830 -UnOfficial gpSP kai 3.3 test 1 build 172 svn rev.392
1931 R連打が有効になっていなかったのを修正
2032 ビルド番号を追加
Show on old repository browser