设为首页收藏本站

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

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

[复制链接]

签到天数: 2032 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
0 Y: i7 G+ f% Y( b! S9 f
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
8 Y' s. ?# p' B, s
9 i# A3 I! t; a- l1 i. c3 o这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
/ R3 X' L0 \  K9 U/ V" l( }
9 d* c1 Q) t, E# n$ o* M6 E! n(一)准备工具:
: q$ c* F" g+ z9 M  u  ~1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
. `# x: O9 ^1 ~+ z
% Y# ~1 R! [# b, C: |# |1 Q+ T8 A. ZARMIPS作者是Kingcom
- N& F/ d1 _8 Y: Z( x1 }ARMIPS源代码github页面:https://github.com/Kingcom/armips' u" P8 m: X2 B1 R7 L
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
% V: U( \# B; R1 ?+ V
% d7 z5 q/ o' z! b1 |1 W2.一个将图片转换为二进制bin文件的工具bimbo 1.3
: o  p# V; F. e
6 W' ?/ O! Z2 u+ K" ^0 B, Xbimbo 1.3作者是Aleksi Eeben, w* n* o" x. S1 h6 y1 P
* _( b' _1 [: @) u$ N: T: ~
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167" {9 }& P8 O; A; M
7 c* u- O+ b6 n' f
3.一个windows自带的画图或其他图形编辑工具( o! Y- d! \5 B: a5 X% C
4 O* R+ X2 O7 O: Q
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
, h0 \4 Y% [5 f* ~8 C* t* s8 D) x7 ]9 b* }- O6 k' B3 ^
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP* E5 [# I; d. e7 G; S  o4 J- u
# B2 p: `% R  ^( D

( l. k$ K7 G& f1 o" [8 U8 ]+ F) s! t: `% ]: ~6 G$ k
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
8 g4 W/ n3 ]4 k6 K
5 `' a* `1 X8 S! l
  N( f6 d# L; |+ [9 w- j9 I% m; p4 E9 K
(4)新建一个文本,我起名为16pic.asm,文本内容如下:
  [6 [4 g, y) A8 S# T
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000! F0 b9 T5 b5 Z3 S9 Y
  2. .create "16pic_demo.gba",0x08000000
    ( h' z% g, I1 _3 N
  3. ;设置为GBA架构* D$ q7 C' x, |: W0 Z6 ^7 b
  4. .gba  x! [) o6 J! P6 j7 u; X
  5. ;设置为ARM模式
      ^7 C; w1 O9 X) l7 a2 M
  6. .arm1 F6 u5 [$ k' h6 K3 |. P
  7. ;设置起始地址是0x08000000
    9 R" G8 j' M7 o; |  Z
  8. .org 0x080000006 j. P0 [+ n  r6 U0 J" O: C( m4 T. j
  9. ;创建长度为0xC0文件头数据区域
    3 v# C6 o* m! ~8 {
  10. .area 0xC08 J) m% [+ {. W- O- o
  11. ;填充文件头数据
    6 ?7 b. a1 Q* A9 w7 t7 B
  12. .fill 0xC0,0x003 B4 d4 l/ E# S% V* C* p
  13. ;区域结束( ^' J! m& a+ g- |. |3 x) y
  14. .endarea# X/ \8 B* `2 U& e) N
  15. ;主程序
    , E+ z8 r! w) q4 D) }! O
  16. main:
    ' n0 Q" s/ L7 [+ Z4 {% s% R
  17. ;设置屏幕模式3,BG2开启
    / b9 _, Z) S/ D$ \& ?2 X
  18.         mov r0,0x04000000
    , ]2 k/ Q8 z, I0 T9 l& p0 J* G
  19.         mov r1,0x0400
    ' H: ^' V- q# u+ x( ^- D
  20.         add r1,r1,0x32 R, ~1 h* d  b" {: n& Y& r
  21.         strh r1,[r0]% `7 g5 `$ \# Q6 m0 k% \
  22. ;设置VRAM起始地址
    0 u) }) e( v  W" Q# f2 v* v
  23.         mov r0,0x060000007 w6 H. b& `9 L) ?! w2 F
  24. ;设置图片地址
    ) J; `" ~7 j- }5 _; s
  25.         ldr r1,=pic5 F6 ~6 d( f: W
  26. ;设置数据长度为0x9600
    # g4 x0 g& Y: \8 h# W5 n
  27.         mov r2,0x96003 [1 w4 ~6 X6 Q1 o) }. s' S! K6 @5 Q
  28. ;传送图片数据到VRAM
    ' ^9 t. a% ~. [
  29. loopl:
    0 l7 C2 q+ j; ~% f2 o8 I
  30.         ldrh r3,[r1],0x2
    9 X3 j  V; _2 e* H  L
  31.         strh r3,[r0],0x23 ?* p% i0 K# p9 O4 n
  32.         subs r2,r2,0x1. k  j  L7 L/ ]5 B
  33.         bne loopl
    ( N% o6 M# b. [/ g: j3 u* i# T
  34. ;进入死循环- a) g: L' W+ H7 H
  35. infin:
    # J/ ]) N. ]1 Z7 O
  36.         b infin" y- f$ H$ a' ]! i9 h+ f/ M
  37. .pool
    ; x. B& y+ r/ y
  38. ;导入图片二进制数据! r. v$ }6 l& j# p# B9 F
  39. pic:# y% M) Q6 t6 Z. v# V
  40. .incbin "16pic.bin"
    & [$ a) l8 w4 n: O" \
  41. ;在0x08000000地址设置跳转到主程序入口
    7 ]! x9 Q+ O; ^( w5 X
  42. .org 0x08000000
    + G9 S  ~( @$ ^* _* G# ^# X) h
  43.         b main
    - c: I: Y# {0 q# C7 L
  44. ;关闭文件: u; }5 j1 ?! S; o+ F
  45. .close
    5 t# d, ]0 X1 n6 p$ C
复制代码

% A; b: M3 p, `9 g7 D保存!% r9 c2 B1 z+ M- u
" H9 L: Y6 c  m6 n8 r6 X8 V2 m! k
(5)把16pic.asm和16pic.bin复制到armips目录下' |7 W% ^4 v% A- i  \

4 T3 p4 {+ H' P5 K2 k$ }( O& b(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
; F- P+ F& M1 m# u% X& B) I% ~# T; ]# r' u6 h1 [' M
(7)用GBA模拟器打开16pic_demo.gba观看效果
! M8 L- B* g9 K" [9 t$ {$ R2 J& i0 i( R( L# U6 b5 y) C9 T$ {
' e+ c% a9 G7 r. f: u
- f+ L' }' x" R4 a
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
6 b( \" L, Q* T

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2026-8-5 14:10

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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