EMU618社区

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

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

[复制链接]

签到天数: 1590 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
& V2 o' X7 y) o
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
. [' K" B$ N: r3 ^2 \
& V4 L5 ]+ L1 @, c4 _# w$ H) M& y这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
" y! y8 E! R! F7 _- F' U, \5 W  Y  S' f# l' v' [
(一)准备工具:
; U# Y, C) T0 o' [1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例, n0 d  b7 i# y4 U  q! w5 |

* y2 [/ M* n) \% |1 B' KARMIPS作者是Kingcom
, f# K9 B3 F4 _0 R" b$ U) Z. vARMIPS源代码github页面:https://github.com/Kingcom/armips
% j2 g9 s/ F6 Z" f2 pARMIPS Automated builds页面: http://buildbot.orphis.net/armips1 m9 h# ?" L: ~# u! G& `

* |# {2 J8 F4 }/ y4 E9 U2.一个将图片转换为二进制bin文件的工具bimbo 1.3& g1 I2 \+ v2 U7 c" T# l) r5 w

* d6 F1 p5 f; S7 `- F+ Pbimbo 1.3作者是Aleksi Eeben; H* z8 @6 ~& U  D, }8 ]) {
# O( g0 x1 N( y0 e5 b/ s
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=1679 e2 r% ]8 a$ Q) `8 y

; o1 f& U0 \0 _) E& Z4 K3.一个windows自带的画图或其他图形编辑工具
- W; d3 s% D5 T: e! i( }
8 t* R& b9 M5 B. Z  _; l- b4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
' L4 T, ]* B' h; l. D$ j* D4 ~
0 L: g: n% w$ W/ T5 r(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
* R3 t/ e. {- T9 q+ S8 W
' Y* n) d, i! t4 V0 e+ ~% @. F: C1 f8 D8 R2 V  v
& C; i) Y' t6 w0 ]
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin3 a0 W# Z7 m% f( `. }

; U! J( J  O& ]! ~' U0 ^
$ ?. C4 K# B0 F" s! w
9 y/ x' K8 a+ {(4)新建一个文本,我起名为16pic.asm,文本内容如下:
& d# z6 k$ A2 t7 V/ h4 \8 s% e
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    1 i' m+ D$ z" a1 {1 i  Q. R
  2. .create "16pic_demo.gba",0x08000000: h* ]. m7 q$ W/ C
  3. ;设置为GBA架构# I+ a# e3 w% c% b+ E
  4. .gba
    2 s2 f$ z8 D7 p7 Z# Q& e. P. `
  5. ;设置为ARM模式% E3 f0 b) U$ g, G
  6. .arm3 T$ z8 O& d  O) D% ~3 \
  7. ;设置起始地址是0x080000001 X7 u1 ~1 [) I( f+ b
  8. .org 0x08000000
    7 c  F. I" F! N' T3 U4 p# d- h$ |1 P
  9. ;创建长度为0xC0文件头数据区域( f( q1 j; F$ B7 e
  10. .area 0xC0
    - i) w) k& B3 z% x- b) U
  11. ;填充文件头数据
    / l& G2 X( p" E3 G
  12. .fill 0xC0,0x00& n, l" U* t, d0 C
  13. ;区域结束% k6 @! ?5 S8 n
  14. .endarea
    ' t" P* u7 z' B2 j
  15. ;主程序
    ! f9 V' U( i0 C( ~9 |" T7 p: y* B
  16. main:
    2 J0 F" l6 u3 p+ D% R4 o
  17. ;设置屏幕模式3,BG2开启
    7 N4 H5 N5 O8 X! }2 ~
  18.         mov r0,0x04000000
    8 o, _7 |" b- y& c, H) H, N1 Q
  19.         mov r1,0x0400
    ) @3 M: C/ V" R2 |% F
  20.         add r1,r1,0x3
    ( U4 ?* I! y+ o8 a2 Z
  21.         strh r1,[r0]/ ?+ l% z$ _% I4 v
  22. ;设置VRAM起始地址; p' D! F+ z5 x) _' ~, q% a; H3 ^2 r
  23.         mov r0,0x06000000
    ( p; }1 v, M" H' n: b) F+ L
  24. ;设置图片地址
    / U- o$ j7 Y  d9 h, n# k: Q
  25.         ldr r1,=pic
    8 @( v2 F4 R: u# z- u
  26. ;设置数据长度为0x9600
    / \& j' P+ F" g& `; x& x
  27.         mov r2,0x9600. B7 y# y4 k1 q
  28. ;传送图片数据到VRAM
    0 A4 e9 D6 v" ^7 [) ^3 p6 I0 t8 l
  29. loopl:! B9 K) h$ P# P1 ?& u
  30.         ldrh r3,[r1],0x2
    2 O, |; z6 {- Q! v. I% m6 b
  31.         strh r3,[r0],0x2
    % f, F/ ~/ H" i* `
  32.         subs r2,r2,0x13 g+ M8 L3 E, _  T
  33.         bne loopl
    - @  K9 N' a, V  u
  34. ;进入死循环
    $ Q& t8 p: {4 {  ]+ a" p8 }" A
  35. infin:) F" B5 V  \; z2 y
  36.         b infin% d2 e, X) U$ b, x7 P2 A& W6 x% L
  37. .pool
    % t$ ]+ y3 I. g% F2 z5 A
  38. ;导入图片二进制数据
    ( M5 C5 l, Q; p; a. d2 X
  39. pic:$ g# ^# T% V- a7 \1 O$ }
  40. .incbin "16pic.bin"* K; [+ A3 R; y. N0 R( e
  41. ;在0x08000000地址设置跳转到主程序入口# \+ `/ ?1 v# v# k& F
  42. .org 0x08000000
    + `7 j6 x5 A; S4 S* z
  43.         b main# S" F! C+ D) R9 n+ e
  44. ;关闭文件
    3 s; ?: q* G' i' B: _+ o
  45. .close
    ; m7 s" C0 n8 A6 \( h3 P
复制代码
2 @. R$ G  u& n( {" U0 `- D
保存!
3 S7 S8 ~( ?, |. H( F2 H, F  @* I8 z: ]; M( u
(5)把16pic.asm和16pic.bin复制到armips目录下
6 U) H+ L. Y5 }# p/ H( N
* Q0 {! }9 c, o" b# g(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件  i8 N, n/ u" S
: e7 e6 a' V! Y
(7)用GBA模拟器打开16pic_demo.gba观看效果3 X) x5 o6 ^3 N! a* m2 Z

0 R8 W* }% ?' M% E
* z3 k5 F3 P5 l5 D8 v: N! R/ w, ~
; i! q" S2 L7 c  C关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)$ Z; S" `* f2 c

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-5-20 08:35 , Processed in 1.078125 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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