设为首页收藏本站

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

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

[复制链接]

签到天数: 1993 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式

- x! u; K: {. k) G6 l: t当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
; I$ Q. @' d1 Q2 c; z
; n% r6 P' a8 i5 D& c- R这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
# G% ~' A3 t- d3 P- r% a* T: g0 E+ _" j
(一)准备工具:  t1 q  C" a+ Y4 s$ _
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
9 a0 M& x& d4 M3 V) ^3 _3 E/ j
( b! _" Z6 E7 |5 b. S- Z+ HARMIPS作者是Kingcom2 |, }! _0 E$ \; l7 ^
ARMIPS源代码github页面:https://github.com/Kingcom/armips  Q( p9 r, E, u, P
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips! O. ~7 ^: t! f7 ]& F) _" k/ `

) [6 t6 Y; A5 I! ^% L/ K2.一个将图片转换为二进制bin文件的工具bimbo 1.3* _: N- D, z2 L  p" [: D: _( S

3 i4 X& C5 E. G" e  n  ?3 {bimbo 1.3作者是Aleksi Eeben% Y7 a- \* ~! Q
) s: f5 q8 p: g0 e
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
" [/ ^( P' d- D5 Q- Z( e* }3 s
. N& V0 I% N) m: p3 }. Q+ a- U3.一个windows自带的画图或其他图形编辑工具2 ?. `. n7 P2 G  m
/ [4 `! ?" M2 P8 v
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)6 V2 X: m! S# H: j  ^
7 r! y1 \# v7 F( ]
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP" Q1 [, h3 Z8 ?! ?. h+ l
) R( ?8 s; Z4 y8 m! i
" P" o, |0 h( j' G6 C

4 o+ Q7 `* ^1 b6 R% x(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin4 h; ~2 e  n$ z5 w9 O# v" r9 `' q
, l" A8 q/ X' j* A- k. h4 ^; @
- P; l& C$ |+ E& ]
9 P8 ^, T8 t, K5 A
(4)新建一个文本,我起名为16pic.asm,文本内容如下:6 L% ], F7 J" F6 S- J& ^
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000! Q7 K" G* D8 N! v) T
  2. .create "16pic_demo.gba",0x08000000% p+ _  G! a4 l% r1 g0 t! Y
  3. ;设置为GBA架构/ C# N+ W# Z9 }9 V2 D3 G; F
  4. .gba- \* T3 V+ e9 u" |5 o: ]1 e! M
  5. ;设置为ARM模式* L: m) @/ W7 C3 s, l
  6. .arm8 f4 h9 b  w/ l2 U
  7. ;设置起始地址是0x08000000) O2 M5 @4 j7 T; y
  8. .org 0x08000000+ e% J# X4 [9 ~- C& o
  9. ;创建长度为0xC0文件头数据区域
    . {0 F$ j" A* m1 R* W1 e
  10. .area 0xC0
    ) S) s! f* P; H8 Q( _2 G/ s" l* e- L
  11. ;填充文件头数据
    ' K4 M  ]" z7 h  s8 h
  12. .fill 0xC0,0x00" i+ \0 g- t7 n4 a, t/ E0 S8 S4 v
  13. ;区域结束
    $ w+ ^8 B: ^3 v9 O3 i
  14. .endarea% w2 g9 M& m6 j
  15. ;主程序
    ( H! j1 i" E& ^/ ^
  16. main:
    " _' h3 P  V  W) ?
  17. ;设置屏幕模式3,BG2开启
    # {& l$ o7 R! `# `
  18.         mov r0,0x04000000* |' w: T( h- R8 z" b. }
  19.         mov r1,0x0400* X) I- s' w* G$ s
  20.         add r1,r1,0x3, v, ~& V) x2 h( y2 g" W1 G7 v
  21.         strh r1,[r0]
    # P0 G- N& r6 C, R- @. e' \3 s
  22. ;设置VRAM起始地址
    ! H  y- v2 O8 a
  23.         mov r0,0x06000000* o* R. P# H5 P, O
  24. ;设置图片地址+ m; z; h# l' ^% }
  25.         ldr r1,=pic
    2 F) w4 ^4 l1 c; N8 \, T% x
  26. ;设置数据长度为0x9600
    ; N" a9 U# @0 Y! A$ `0 d
  27.         mov r2,0x9600
    & M1 Z( e+ L% l2 f% P7 {# f2 G: }
  28. ;传送图片数据到VRAM
    0 O* g0 R& }0 K: d6 o( T
  29. loopl:7 n" f' n% F3 H6 ?6 i5 M1 e' P
  30.         ldrh r3,[r1],0x2; h. L8 k& B; M9 O
  31.         strh r3,[r0],0x2! l: _8 s. Z- e. D. m4 W4 W
  32.         subs r2,r2,0x1/ b. X- L3 @* P* `6 h
  33.         bne loopl9 J6 @! K5 |9 |5 k
  34. ;进入死循环/ @9 m2 `1 C8 u, s7 X+ q2 }3 b
  35. infin:; ^8 C. l7 \. Q) Q
  36.         b infin: C) h5 r8 B# B
  37. .pool
    0 e. O$ m: P- `  T5 w6 \# b, T
  38. ;导入图片二进制数据
    , T3 E3 _8 r6 Q6 l0 r
  39. pic:
    7 Z$ P! Z: E8 \/ y3 t
  40. .incbin "16pic.bin"
    ( r/ K4 S+ F% U1 H& k
  41. ;在0x08000000地址设置跳转到主程序入口" Q7 l; L. J- Y6 ~5 t  B' ]
  42. .org 0x08000000# p$ u( V( k$ b% u5 K, a- u$ ~
  43.         b main; g! M& s: n" G9 `( Z
  44. ;关闭文件
    + L3 G( L8 A5 f' [* \0 ]; Q
  45. .close1 r; n: y! ]; I0 m
复制代码

. R) c+ l/ U1 o% ?4 c, s5 N保存!2 s% d! s3 f  }* o7 J8 D- Y
3 U3 N! [7 w; a% W
(5)把16pic.asm和16pic.bin复制到armips目录下
7 s  z5 z* l. _; ~5 w" V4 G; l4 k6 C
- R9 F4 S1 K* [+ K) j' X% l& R(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
4 n$ @! ~; r; y$ _- g6 f0 I
+ K. Y9 w. v' r  Y(7)用GBA模拟器打开16pic_demo.gba观看效果. a3 K; L+ M% D# o

  ^0 M$ ?# O3 E) H! p4 k/ M. k( ^: Q4 m" h6 p

. o7 Z) ]2 o4 l" y& I. `关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
5 V$ f  y  a" `, x

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2026-6-26 07:53

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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