Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/coolgirl-multirom-builder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2016-05-25 05:56:34 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2016-05-25 05:56:34 +0300
commitb385a9c2eb3a9f02375ede2c568a2cb8f415522e (patch)
treedb17c4146b8cf60d73c738cff7f3e2a55e28adf8 /menu.asm
parentd494d6f4c4a41a23bb4a85b5afb107695b877031 (diff)
Save system fixed
Diffstat (limited to 'menu.asm')
-rw-r--r--menu.asm91
1 files changed, 14 insertions, 77 deletions
diff --git a/menu.asm b/menu.asm
index 7581593..0100fb9 100644
--- a/menu.asm
+++ b/menu.asm
@@ -1884,47 +1884,19 @@ load_save:
lda LOADER_GAME_SAVE
beq load_save_done ; если игра не использует сейвы, то всё
- sta TMP
- dec TMP
- lda TMP
- ; номер супербанка (16 на супербанк)
- lsr A
- lsr A
- lsr A
- lsr A
+ ; номер супербанка
sta LOADER_GAME_SAVE_SUPERBANK
- lda TMP
- ; номер сохранения внутри банка (2 по 0ч2000 на банк по 0x4000)
- and #%00000010 ; банк (по 0x4000) = номер сохранения / 2
- asl A
- sta TMP+1
- lda TMP
- ; номер страницы (они по 128кб)
- and #%00001100
- asl A
- asl A
- asl A
- ora TMP+1
- ; выбираем банк SRAM
- ora LOADER_GAME_SAVE_BANK
+ dec LOADER_GAME_SAVE_SUPERBANK
+ lda LOADER_GAME_SAVE_BANK
; в регистр
sta $5005
lda #0
sta COPY_SOURCE_ADDR
sta COPY_DEST_ADDR
- lda TMP
- and #1
- bne load_save_src_addr_1
lda #$80
sta COPY_SOURCE_ADDR+1
- jmp load_save_src_addr_done
-load_save_src_addr_1:
- lda #$A0
- sta COPY_SOURCE_ADDR+1
-load_save_src_addr_done:
lda #$60
sta COPY_DEST_ADDR+1
-
jsr read_flash
load_save_done:
@@ -1945,47 +1917,19 @@ save_save:
lda LOADER_GAME_SAVE
beq save_save_done ; если игра не использует сейвы, то всё
- sta TMP
- dec TMP
- lda TMP
- ; номер супербанка (16 на супербанк)
- lsr A
- lsr A
- lsr A
- lsr A
+ ; номер супербанка
sta LOADER_GAME_SAVE_SUPERBANK
- lda TMP
- ; номер сохранения внутри банка (2 по 0ч2000 на банк по 0x4000)
- and #%00000010 ; банк (по 0x4000) = номер сохранения / 2
- asl A
- sta TMP+1
- lda TMP
- ; номер страницы (они по 128кб)
- and #%00001100
- asl A
- asl A
- asl A
- ora TMP+1
- ; выбираем банк SRAM
- ora LOADER_GAME_SAVE_BANK
+ dec LOADER_GAME_SAVE_SUPERBANK
+ lda LOADER_GAME_SAVE_BANK
; в регистр
sta $5005
lda #0
sta COPY_SOURCE_ADDR
sta COPY_DEST_ADDR
- lda TMP
- and #1
- bne save_save_src_addr_1
- lda #$80
- sta COPY_DEST_ADDR+1
- jmp save_save_src_addr_done
-save_save_src_addr_1:
- lda #$A0
- sta COPY_DEST_ADDR+1
-save_save_src_addr_done:
lda #$60
sta COPY_SOURCE_ADDR+1
-
+ lda #$80
+ sta COPY_DEST_ADDR+1
jsr write_flash
save_save_done:
@@ -2079,19 +2023,12 @@ save_saves_load_all_saves_skip2:
txa
ldy #2
sta SAVES, y
- dex
- txa
- lsr A
- lsr A
- lsr A
- lsr A
- sta LOADER_GAME_SAVE_SUPERBANK ; номер супербанка (16 на супербанк)
+ dex ; выслисляем начало сектора
txa
- and #%00001100 ; вычисляем номер банка по 128к
- asl A
- asl A
- asl A
- sta $5005 ; выбираем его
+ ora #%00000011
+ sta LOADER_GAME_SAVE_SUPERBANK ; номер супербанка
+ lda #0
+ sta $5005 ; нулевой банк
; стираем сектор
jsr sector_erase
@@ -2414,7 +2351,7 @@ flash_set_superbank:
lda #$00
flash_set_superbank_calc_next:
sec
- sbc #$20
+ sbc #$08
dex
bne flash_set_superbank_calc_next
sta $5001