设为首页收藏本站

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

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

[复制链接]

签到天数: 2053 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
0 }8 E7 v  J" ]& \& _/ }0 l' L, p
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
/ i" O0 p( Y" ~6 q+ b4 X1 @& `% Q1 C4 N+ c! F
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
3 J5 C7 y) x0 R
5 ]# m7 L' V3 w0 G) }/ p( u+ s(一)准备工具:
+ P6 d3 e  U* n) D: V! i& c1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
& y6 E9 y& U! z, s7 Q. |$ ^$ W2 Q' p2 c
ARMIPS作者是Kingcom
2 {& }+ Q( p' X5 y# FARMIPS源代码github页面:https://github.com/Kingcom/armips6 X/ @1 m* Z3 S& c3 z/ N' ^
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips# g2 l2 J4 s6 ^9 B2 g, e- t
( W) s+ D7 W4 M! y% d1 u2 G  g
2.一个将图片转换为二进制bin文件的工具bimbo 1.3
) C& f* @1 f& e! K5 w+ S0 ~* J/ E  V2 K4 @0 V' W2 \; o
bimbo 1.3作者是Aleksi Eeben
4 z' d# N2 }' S- t- l4 p$ x# |( c% i7 `3 A
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=1675 m0 N& O1 B' Y2 \

% s9 |! F, d! C% }4 x7 L" w, T3.一个windows自带的画图或其他图形编辑工具
. X1 f) S; @, ]; n. k  r( ^1 w9 u6 M) s) ^9 x: K7 M* A; F
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
) o, A. ^6 y& f) W* O0 u$ i* n9 V
' v1 L& c# W( ~(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP) w  @. O. _+ J' C3 s3 t1 ?

: K" O" |4 j( F/ V
; J; \( Q! u0 j" [. Z
0 u) w; P, H) ]& [3 K% t(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin  T- w- o; G+ f2 |- r! ^) G
# \+ h( P% }+ T* U
6 y' s! z* z1 @) I

$ K, D: X+ j! N4 O(4)新建一个文本,我起名为16pic.asm,文本内容如下:
6 I9 p+ X8 f$ H9 K; l
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000# s  v6 e6 `/ X$ ]- X4 `9 H
  2. .create "16pic_demo.gba",0x080000006 G! h. a6 q1 h2 t: e1 h: q, x
  3. ;设置为GBA架构
    0 ^6 o% V0 x3 L  j) k( s
  4. .gba
    0 @3 V4 k* A7 R8 N
  5. ;设置为ARM模式4 M' e8 l2 ^1 H# v# s2 e0 x; T
  6. .arm- O5 y; c& j$ q! |2 {( V
  7. ;设置起始地址是0x08000000! U  ~7 ~9 e) v" R
  8. .org 0x08000000
    8 ~; _1 r" ?, \
  9. ;创建长度为0xC0文件头数据区域
    9 v2 Q) `% @; W( ^" I
  10. .area 0xC03 j! O: z+ g6 b
  11. ;填充文件头数据' Z1 |4 B# ~* v$ F
  12. .fill 0xC0,0x00# L4 F: X# t6 l' g+ Q
  13. ;区域结束) T  Z" }8 i) s- f. c
  14. .endarea" e7 B& E! t. V4 v, c4 y
  15. ;主程序
    / U. E+ \- c; e! `
  16. main:: c3 w% A3 R4 h. n# C
  17. ;设置屏幕模式3,BG2开启1 U; c  y/ h1 J; m) B) r2 v8 f
  18.         mov r0,0x04000000
    ; {; B% A* g3 p, a/ t) e
  19.         mov r1,0x04003 x0 n: I! ?3 z. l5 ?- g( U
  20.         add r1,r1,0x3( M# k* u* P( }
  21.         strh r1,[r0]6 G3 ]1 \% Q0 |; x" [
  22. ;设置VRAM起始地址
    , ^& v* A, B/ ?
  23.         mov r0,0x060000009 g+ w9 c  G& }
  24. ;设置图片地址, _) W3 X0 d6 d* N# N: [+ _; ]
  25.         ldr r1,=pic
    " i' S3 v" G1 b1 N
  26. ;设置数据长度为0x9600; N$ U2 ~2 d7 T+ }2 B& q- K( Y
  27.         mov r2,0x96004 ]! D4 U% n6 V9 I5 M5 G3 K! x$ [% I
  28. ;传送图片数据到VRAM
    7 c$ D5 L" y9 @2 k! \3 W2 D4 f
  29. loopl:! _( g0 q/ S: A4 B
  30.         ldrh r3,[r1],0x2! z; v. H/ t3 E  n: r. m
  31.         strh r3,[r0],0x2
    0 d3 U, \) o8 V
  32.         subs r2,r2,0x1
    * m  Y* X4 R% H2 S) n3 `# x: X. g
  33.         bne loopl6 O2 a* ]' F3 I
  34. ;进入死循环2 j0 ?. y0 c, e  d8 n7 j
  35. infin:% f+ {- t6 h0 `. ^8 z
  36.         b infin4 r9 p% q: j7 E0 z1 A. M
  37. .pool
    ( j7 d' J! ?  r: q3 x) w
  38. ;导入图片二进制数据
    4 c; a1 R/ V2 w
  39. pic:9 k% p, l- n) h/ D$ ]1 a9 x" b
  40. .incbin "16pic.bin"( t2 Q- U# K- V  r( ~* e& A# o1 ~
  41. ;在0x08000000地址设置跳转到主程序入口7 r4 D4 L1 k0 o5 C$ N+ y
  42. .org 0x080000003 F4 z2 T# B* b6 i" U$ K
  43.         b main) Z( H" r$ N0 ]1 Q) R
  44. ;关闭文件6 w- \: w" x9 Q/ }6 X3 m; V
  45. .close
    # I3 Q) d. \1 C& d3 K3 H
复制代码
1 J) o. E) e( {* m
保存!3 D3 H+ @5 U8 Q: `. z7 e/ S

5 S/ q: u3 z" E0 K6 z" C( j(5)把16pic.asm和16pic.bin复制到armips目录下) ~# z/ P& o, T) K; Q. @6 t
2 w0 X' r2 T7 B+ M& x
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件; ^9 [  S  @! ]) W! ^" a: V# k

1 [) A( i1 |4 X! `) q0 k$ u(7)用GBA模拟器打开16pic_demo.gba观看效果9 R/ J% t  N3 s# X* r: c& r9 h8 d
/ K1 O0 |5 w- q, Q7 s0 v1 ~* n- f9 K
- R) B% ]# V" y# }- ]
2 r" j) Z" v$ C2 K( O; _( d
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
& q/ ]9 S9 j7 L- ?

本帖子中包含更多资源

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

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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