设为首页收藏本站

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

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

[复制链接]

签到天数: 1993 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
2 x: N3 N- P3 Q
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档; S0 }% c; t" Y0 f/ L! l7 `; _
+ E. |; l7 ]" b
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
- e* {/ A4 k. B% u1 b
& }% q- R, W: j6 {(一)准备工具:% e+ i! k0 _$ X# S9 A- L5 y9 B$ v
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
5 `% r+ v0 ~6 R
! [! m0 u. X; j4 e, k: Q! ~0 D! T4 f1 ~ARMIPS作者是Kingcom
, L! \: u/ }) ?ARMIPS源代码github页面:https://github.com/Kingcom/armips0 m( [, ?, `2 O& z- w- c  T
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips! V, u2 B# S2 p8 _! `" J
9 I0 [" }2 O" w. T/ @- D
2.一个将图片转换为二进制bin文件的工具bimbo 1.34 _& D9 W  @9 R& ?
- t/ I0 d' R0 r7 V" ^
bimbo 1.3作者是Aleksi Eeben$ H3 @' s% S8 |( j) J

7 ?7 O& M5 c! O7 n' u9 L) Fbimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
1 V2 M( C! w2 g8 D& B
% J" Q9 f: R" o! D3.一个windows自带的画图或其他图形编辑工具( L9 ~7 A' E9 ~# O6 c
+ A# E! D4 d: x' \) w: Z
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)9 u, L! G" ~# @

) Y5 C# y  R7 V3 H2 N, N(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
8 ^1 C4 B' x4 f; B, D& }: T, d- O$ v2 _& j; Q8 T9 T
/ ^+ q$ ?. G$ E2 m6 W1 P

4 u. R: d6 x" }: c2 i4 Y# T" f: N(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
2 u- z5 f. J% S+ M: _2 k4 |) A7 ~4 F" h
7 @* V4 U. E3 _) v; a7 S

! N1 _. i- [+ J(4)新建一个文本,我起名为16pic.asm,文本内容如下:
  V7 D. P  @* V. d2 @( P0 W" s
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000! m# z7 z4 z5 A* n
  2. .create "16pic_demo.gba",0x080000007 Q9 M$ b5 X1 N4 A" Z5 ~
  3. ;设置为GBA架构: G- Q) m0 b: E3 z. k, v! j( u& O, b
  4. .gba
    & e9 A( [! G/ v% C- _
  5. ;设置为ARM模式
    ; \% ^; B. J0 I
  6. .arm
    " g! G# V' T. I. U- A  d- T
  7. ;设置起始地址是0x08000000! F) [% R6 [) ]0 f" e2 I+ D3 \
  8. .org 0x08000000
    8 H- w. e, E0 ^6 h$ o
  9. ;创建长度为0xC0文件头数据区域% N# L9 b6 ]* E' {7 V
  10. .area 0xC0( j: V+ `. g5 G* ]: |. k$ ~) ^* P2 ^
  11. ;填充文件头数据
    . a0 _) z) p/ Z) @7 v
  12. .fill 0xC0,0x00
    % X* }1 c( U: H0 t7 N+ |2 J
  13. ;区域结束! b( C% N; F+ V5 k
  14. .endarea; S3 o' y$ z0 G  T0 f: g3 ?& _& ?
  15. ;主程序3 O: F9 P* I. K: I4 q. ^$ G9 ~5 p
  16. main:
    2 V& W* D( ^7 Q. z
  17. ;设置屏幕模式3,BG2开启  v' H/ I) r: o/ n: A
  18.         mov r0,0x04000000% y# j: y  i2 h' S' b, }0 }! {
  19.         mov r1,0x0400  x, `2 R! |3 O( ^
  20.         add r1,r1,0x3
      P3 v# p, m/ Q. n% `3 e
  21.         strh r1,[r0]
    ' U. W: j  A/ |. y
  22. ;设置VRAM起始地址
    4 k; q' E- j0 G+ \- W
  23.         mov r0,0x06000000
    ! l1 B# Z3 M; {7 U( `
  24. ;设置图片地址
    . z: m2 V! h" k) e
  25.         ldr r1,=pic
    - p& _) P  O# S2 a$ J" o
  26. ;设置数据长度为0x96007 l5 @  u7 f( ^
  27.         mov r2,0x9600
    & y- `3 [/ [! U; u* G6 U/ |5 s
  28. ;传送图片数据到VRAM
    , G1 T) ^# n% O( z( \: ~/ a( K+ H
  29. loopl:/ j9 }' K+ a6 X0 y/ H! Z! W
  30.         ldrh r3,[r1],0x25 j( ~* \5 W7 S% O. a4 {! P
  31.         strh r3,[r0],0x2
    & D4 {% m/ _. }$ ^! w9 N
  32.         subs r2,r2,0x1
    # W$ x/ y- i* r& a  ]: M
  33.         bne loopl
    # p' G$ ?: j0 L7 ^
  34. ;进入死循环( e( r0 |; x, i9 g! j: L. N
  35. infin:6 q! A) D% P8 ~7 y4 e: Q7 e
  36.         b infin
    3 P" Z' W3 I5 T6 l
  37. .pool  H/ x$ @" t6 m8 Q" n6 _
  38. ;导入图片二进制数据
    " S* d, U/ Y4 s5 E% G+ c6 f
  39. pic:
    % @$ B! d9 N% J
  40. .incbin "16pic.bin"
    $ F9 e' y5 P( s
  41. ;在0x08000000地址设置跳转到主程序入口
    ' L+ M8 Q6 l5 @( y# D
  42. .org 0x08000000
    5 ^8 n( n) }0 F8 J3 u( i$ Q5 B+ L
  43.         b main
    " M, W& _8 ^) E# s! x+ G
  44. ;关闭文件
    ; }0 `- k9 ?4 ]" `! ^; q
  45. .close5 _2 j5 T- B) [. q0 M* V6 M6 [( s
复制代码
) Z$ F, @: o( V" l8 F( q, o8 L/ K
保存!7 W9 Z' V: Q( k0 N/ |% p7 x6 l
1 {' P3 n4 z& i) b" i1 [- @5 d
(5)把16pic.asm和16pic.bin复制到armips目录下$ Z; t0 s) s% i2 d2 a
  }3 w; }& U+ e- G: K& D. ~
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件) |- I: p0 H3 a: o4 ]
2 |% v, ?2 ?, r- O: q; Q
(7)用GBA模拟器打开16pic_demo.gba观看效果
& R- K5 W2 y' A* F" w7 s- ~% n6 t5 @$ l

; H! z; V- Q5 L% L$ x
0 W1 b1 a" }. O: R* W关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
! e& m0 P5 E; @2 s: s- w5 V/ y/ e& E

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2026-6-26 09:02

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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