设为首页收藏本站

 找回密码
 立即注册
搜索
查看: 797|回复: 0

[原创HACK教程] 制作一个图片ROM(GBA篇)

[复制链接]

签到天数: 2053 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
/ B! B" Y3 B2 F8 s% h2 r+ [
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档. Z$ h6 `) |* N( f1 |

: r* d6 g5 T! W" U, x1 n  g这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
3 d1 ?1 k+ I% N" f; P+ W2 U2 Z. w3 @; y% ^, s0 w
(一)准备工具:
! k: _7 @  h0 i+ u1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
" V& p0 J3 N$ T, s7 ~
2 a& Z; u+ u! @0 TARMIPS作者是Kingcom
2 P6 }- Y; W+ T# bARMIPS源代码github页面:https://github.com/Kingcom/armips
' ]8 \6 Q: b# ~0 p" m, U0 qARMIPS Automated builds页面: http://buildbot.orphis.net/armips
2 O$ f: e( {0 g1 t+ G2 i: i3 I0 h7 @# Q
2.一个将图片转换为二进制bin文件的工具bimbo 1.3
6 D5 \. L! a2 o! ~8 ^2 e$ I
1 b% y, }8 }1 {2 G% U0 V5 `( Dbimbo 1.3作者是Aleksi Eeben0 q( ^. Y2 f( m
/ `( J( c) g7 |( }$ Z
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167( S. T( `" |  L  j
7 o% y% g7 V. C
3.一个windows自带的画图或其他图形编辑工具
% S1 C$ Z4 ~1 H  e% o. {
; U9 N/ @( T  \4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)# u! Z9 W; S. z0 K

# E" s/ ]5 v) I+ o5 U- i$ g  ^0 M% F(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP2 w; ?  {0 t: H/ W6 q1 @

  k) g/ q4 ~1 y5 s1 B3 a5 v$ P5 S$ P" G5 o& T

% Y! e0 K# \; o) G3 M(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin  J3 y$ P1 Q* v; \" |
8 h' H8 s# y! L; y) c- A

0 w* ]5 Z+ G5 m. a" O1 j; {
3 d/ L* H$ _/ Z- W  n1 f- T. T0 s' F(4)新建一个文本,我起名为16pic.asm,文本内容如下:# Y/ {8 \+ P0 ~1 V$ {
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    8 i" j# Y  D( g$ t/ Y) m
  2. .create "16pic_demo.gba",0x08000000
    9 l" K, k+ R! a( n9 ~1 M  `/ {0 E
  3. ;设置为GBA架构6 b0 M1 k0 h5 b
  4. .gba. c+ y+ f9 l" y) u+ W8 ]8 H$ D# g9 x: f
  5. ;设置为ARM模式
    1 x& a& L) q5 U' K5 @- v: E
  6. .arm
    ( g$ m9 Z8 F4 J
  7. ;设置起始地址是0x08000000
    9 c2 [; _* a3 e' v1 G
  8. .org 0x08000000% h9 K9 q! ^: Z4 _* S" q
  9. ;创建长度为0xC0文件头数据区域  M1 ^  m) Q& T! A, B# V+ [
  10. .area 0xC0/ ]/ h$ l3 Y& l1 C- U1 d: _
  11. ;填充文件头数据# l: ^: T7 r$ m, ]' v6 P
  12. .fill 0xC0,0x00
    # a: X, v" n# P/ n. ?6 u* [
  13. ;区域结束! o3 x( v1 J! N7 u' o
  14. .endarea
    * K* v* ^* c. B( U! h8 b; }
  15. ;主程序
    9 K( [2 \- J5 Q
  16. main:! G8 {' k8 Q) `3 q. ]
  17. ;设置屏幕模式3,BG2开启+ N# |' ~2 @. ^+ T; u
  18.         mov r0,0x04000000# B, g7 v$ V# }8 c/ E
  19.         mov r1,0x0400; K6 Y8 U3 J: _
  20.         add r1,r1,0x34 J  L: I9 g: E' u
  21.         strh r1,[r0]$ Q3 w3 R; H, q3 C2 E4 ]
  22. ;设置VRAM起始地址
    ' S$ ]  I- r( B4 p: \
  23.         mov r0,0x06000000
    ; ?. l" I; X( ~# q4 N
  24. ;设置图片地址  u7 u' S7 v% F- c; \" j& h5 t5 W8 i6 y
  25.         ldr r1,=pic" s: P% m) c1 h! V) N. A2 G7 l
  26. ;设置数据长度为0x9600  v% E. q' \# q( }
  27.         mov r2,0x9600& m( b" r& J4 n! \) e+ h. B' P
  28. ;传送图片数据到VRAM
    ( g9 X. _7 p2 P% F" v. ]0 d2 s; ?, N9 {
  29. loopl:, g, T* H  w+ F/ I" |, q4 B& N
  30.         ldrh r3,[r1],0x2' g4 g( {9 M9 k; m
  31.         strh r3,[r0],0x2, f  u3 k$ g' H
  32.         subs r2,r2,0x1# Z1 k6 s! T' U4 v! K9 v
  33.         bne loopl
    4 i* |1 e! A' r8 L) y
  34. ;进入死循环$ T$ y  X1 w3 @3 S7 P
  35. infin:% B0 ~: g+ R8 y# k
  36.         b infin
    ) a9 j! x$ V& Q: S' u" C( b
  37. .pool% D5 Q* G* F' L8 s2 W& o
  38. ;导入图片二进制数据
    9 X9 Y, Y- |6 _. g0 i/ Z
  39. pic:
    6 Q5 q7 ~0 k& j8 M$ f% O& P9 }- ?* X8 A
  40. .incbin "16pic.bin"
    9 I& M; u# K0 S4 k! i, J0 E- T
  41. ;在0x08000000地址设置跳转到主程序入口
    $ Q0 v6 u" v0 p4 K6 M% w0 `+ {7 y
  42. .org 0x08000000
    ' h! t: E( h1 a/ R# ]% U# [- c
  43.         b main
    ( H6 E6 g/ \1 x7 R1 K: B' M
  44. ;关闭文件
    4 P3 |+ a$ j; r4 B) j0 E' F
  45. .close
    : C! u* ^2 C1 Q6 n
复制代码
& a. l; b# f+ j/ B: o2 S
保存!
7 Y2 a- G5 `. S* X+ o( S9 ]* Z/ _$ I- {' F1 S4 x
(5)把16pic.asm和16pic.bin复制到armips目录下( h# B; ]4 g3 W

6 \+ u) j  E1 _0 }3 {8 |(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件5 S0 E9 K" b- d! S1 ]3 R

& Q. ^) M$ R8 O1 U* y(7)用GBA模拟器打开16pic_demo.gba观看效果/ ?% B6 @( _$ Q; m( X" o& W- z

  Z  F/ V# Z3 U
5 }" f% M) v+ O, Y; _  |
0 o! x, R, v. O: j( i关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
6 Z- s0 E* L9 M' i6 _

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2026-8-26 20:56

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表