Думаю, каждый хочет, чтобы его перевод украшал своё интро, так, для выпендрёжа.
Вот вам моя заготовка, надеюсь, вы знаете хоть немного архитектуру Snes, чтобы указать адрес изображения, которая будет показываться при запуске рома.
ВНИМАНИЕ!!! WARNING!!!
ЭТОТ КОД ТОЛЬКО ДЛЯ МАППЕРА HIROM!!!
Для начала:
1. увеличите ром, хотя бы на $8000 байт (64кб)
2. создайте там рисунок, 32х28 тайла (в каждом тайле 8 пикселей, значит надо картинку с разрешением 256х224 пикселя – это стандартное разрешение Snes )
3. Открываем дебаг (я использую «snes9x1.43.ep9r8»), смотрим откуда начинается загружаться ром. В основном идет так:
SEI
CLC
XCE
JMP $xx:xxxx
4. JMP $указываем на чистое место
Ставим JSR ($22) и указываем адрес, откуда начинается код ассемблера.
После вашего адреса ставим JMP, который вы заменили в оригинале (чтобы после интро грузилась игра, а не чёрный экран).
Интересное:
JMP – перепрыгивает на новое место и продолжает код от туда.
JSR – перепрыгивает на новое место, и после того как кончается код, он возвращается.
Код добавил комментарием, а то много места занимает
Код ассеблера(вставляем в пустое место в роме):
ОтветитьУдалитьSEP #$20
REP #$10
LDA #$8F
STA $2100
STZ $210D
STZ $210D
STZ $210E
STZ $210E
LDA #$01
STA $2105
LDA #$02
STA $210B
LDA #$10
STA $2107
LDA #$80
STA $2115
LDA #$00
STA $2121
STA $2121
LDA #$00
STA $2122
LDA #$00
STA $2122
LDA #$1F
STA $2122
LDA #$00
STA $2122
LDA #$00
STA $2122
LDA #$70
STA $2122
LDA #$FF
STA $2122
LDA #$7F
STA $2122
LDA #$0D
STA $2122
LDA #$78
STA $2122
REP #$20
LDA #$2000
STA $2116
LDX #$0000
LDY #$A000
LDA $адрес изображения(,х не удалять),x
STA $2118
INX
INX
DEY
CPY #$0000
BNE $F1
LDA #$1000
STA $2116
LDY #$1000
LDA #$0000
STA $2118
INC A
DEY
CPY #$0000
BNE $F6
SEP #$20
LDA #$01
STA $212C
LDA #$00
JSR $00F5
STA $2100
LDX #$9FFF
DEX
CPX #$0000
BNE $FA
INC A
CMP #$10
BNE $EC
LDA #$01
STA $4200
LDA #$10
STA $36
JSR $00F5
LDA $4212
AND #$01
BNE $F9
LDA $4219
AND #$10
BNE $02
BRA $F0
LDA #$0F
LDA #$00
STA $30
LDA #$03
STA $30
STA $2106
JSR $00F5
LDA $30
STA $2106
LDX #$7FFF
DEX
CPX #$0000
BNE $FA
CLC
ADC #$10
CMP #$03
BNE $ED
RTL
PHA
LDA $4212
AND #$80
BNE $F9
PLA
RTS
Марат:
ОтветитьУдалитьИмхо, но неплохо было бы комментарии добавить возле каждой команды. А то не сразу понятно почему нет загрузки карты тайлов. Да и палитру считай надо свою в код вписывать, но про палитру ничего не сказано.
Эм, здесь нет палитры, карты тайлов тоже нет, просто идет рисунком, который сделан в роме, я собираюсь палитру добавить, позже сделаю, и откомментирую
ОтветитьУдалить