EMU618社区

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

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

[复制链接]

签到天数: 1895 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
, e. L: Y, N; n* ~
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
6 C% P. `- e3 E+ `, F( N, x4 P7 B' Y0 l& T% Y& v5 v
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧! ~8 B; \4 q& I5 b2 r

/ b: |- s" [6 `4 q4 Q(一)准备工具:
. H  N7 q9 }2 _% s9 M5 ^( C1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例& o/ @3 S! g9 e6 [
. {2 e8 F. u- K. J7 ]
ARMIPS作者是Kingcom& f+ m, t: A' X! Z% }
ARMIPS源代码github页面:https://github.com/Kingcom/armips" u# K; v1 h' X1 h
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
- e5 c; f* i8 @2 D3 I. C
/ k6 E0 k/ n* L3 a- N, n" `$ F2.一个将图片转换为二进制bin文件的工具bimbo 1.3. y# @5 ]/ l* k, J
* m; E( H1 N( |/ [( X4 j
bimbo 1.3作者是Aleksi Eeben
- l, q3 r5 U; D; L- c4 l- R1 e6 g: R6 s4 K6 L
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167' c- o* h/ }. ]9 j) j

! f: l: Q3 u% F$ M3.一个windows自带的画图或其他图形编辑工具: o8 u$ N- `  E6 W" _6 }& g
: B; v0 T$ H  @0 t* O
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)0 U  c& J& L$ s( T9 W* c$ k
7 I5 ?% s9 _+ g" Z/ E" s7 }9 [0 o- O
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
  _6 z& C+ [) u& z: F; g& b1 h1 L3 \$ q

4 M# ]# d: E. x0 O9 S4 Q$ e! t7 p2 v! j% H
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
1 C9 K) C5 c, I2 M9 ], Z: }$ m- f2 ^( e# u2 ?+ N/ b! J3 `

2 N/ e$ u  S) ?. ~/ Q' t' {; n5 h7 E9 v3 s: b& i0 r) N: h
(4)新建一个文本,我起名为16pic.asm,文本内容如下:- I& G) S5 e% C; K# Q: U7 W
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    5 u$ o* _+ o9 \8 K. P$ a# ?
  2. .create "16pic_demo.gba",0x08000000  \6 r, N- F( i4 C2 _
  3. ;设置为GBA架构0 r8 s7 H; Q; g* o
  4. .gba7 d" v' n7 J8 {
  5. ;设置为ARM模式( Z/ x3 i& W, h; r& c
  6. .arm
    - I$ z4 C+ F- H$ ?
  7. ;设置起始地址是0x080000009 v# c- e. C* v
  8. .org 0x080000005 W( J* l7 `+ L
  9. ;创建长度为0xC0文件头数据区域& p5 r$ u0 h! O! O7 x
  10. .area 0xC0
    $ F" e; @1 g9 N, S( `' M
  11. ;填充文件头数据
    ) n( n, M$ }: A& L7 e5 ^
  12. .fill 0xC0,0x003 _6 X4 |' O4 D: f
  13. ;区域结束
    " Y" \; ?: z0 }- s, ^3 o- \8 O
  14. .endarea4 q0 ^* t8 T3 h) y' R
  15. ;主程序
    5 T* E! n8 j4 m6 B5 M$ ~! p9 `9 ^8 ^
  16. main:
    ; L; _% l* r2 _0 H7 \! Z2 S
  17. ;设置屏幕模式3,BG2开启
    : Y0 f% W2 y5 K, p
  18.         mov r0,0x040000004 o( m3 n0 M1 y
  19.         mov r1,0x0400
    , ?2 H) J2 a) l  _. e% T
  20.         add r1,r1,0x32 o: U( e( z" T+ s+ A9 j" o* e
  21.         strh r1,[r0]- W, U; F+ M, T7 U3 Y$ M) F! c. k
  22. ;设置VRAM起始地址
    3 N. m2 v! u; ~: b: H
  23.         mov r0,0x060000003 G1 G0 `0 Q6 P! }7 o- R
  24. ;设置图片地址
    2 H7 D# Y- ]$ c% ]7 J
  25.         ldr r1,=pic8 X2 g0 E4 k& A0 ~1 B( X2 @
  26. ;设置数据长度为0x9600% d$ n+ H$ f( ?' |7 y
  27.         mov r2,0x96007 w, p2 c- d6 P$ Q' p/ f5 @
  28. ;传送图片数据到VRAM7 N! Q4 [. Q; a" A, K
  29. loopl:4 ^$ N5 ^, l9 o% ]$ [
  30.         ldrh r3,[r1],0x2
    0 [$ e2 R" j5 G8 S' X
  31.         strh r3,[r0],0x2# d+ j8 U4 N6 \3 h+ p/ ^0 I
  32.         subs r2,r2,0x1
    3 Z8 F; d+ w5 H2 n4 ]) g
  33.         bne loopl
    + q# p4 M: B( p
  34. ;进入死循环" Z# q* i$ M; T4 H& Z, ~" K
  35. infin:0 V8 o  \0 r5 s% p) [
  36.         b infin; i) X( c+ z* H" B* o
  37. .pool
    ( u! O, q3 S2 B! C  _" O
  38. ;导入图片二进制数据
      s! ]6 y1 A) s% j% j  W! ]
  39. pic:. v* \$ F2 s& [4 A
  40. .incbin "16pic.bin"
    2 r0 Z7 i, b4 \. E' \- q
  41. ;在0x08000000地址设置跳转到主程序入口' l  S9 j& s: l5 d; T, O7 B
  42. .org 0x08000000) t- g! j5 Y3 }+ [9 L! a
  43.         b main
    / k9 H& z5 j3 r! V  }
  44. ;关闭文件2 F& c1 i; X- H3 X7 G* i
  45. .close" L- u" C$ A3 C8 s/ w4 P' a  g( ]+ ~1 Z
复制代码

& |: n& Y' Q% V: [保存!! D7 Z4 Y3 H( W: Q" y  t

6 `8 g9 R; e+ X& {+ `  s(5)把16pic.asm和16pic.bin复制到armips目录下
! x, [4 O8 v$ q0 W5 `
2 Y5 K' E. s/ p9 \# k- o- k+ q( [' E4 V(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件& D$ O( L+ N* Y/ x' B& U1 E
) t. o7 k2 j% {4 ]
(7)用GBA模拟器打开16pic_demo.gba观看效果2 u; m  Y, o* \: O5 O

8 M6 H6 h" V7 r+ h& x& Q# r' N& R" u
5 F, M0 k: Q; Y/ e$ F
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)+ v& _" W9 g) F: S  S  C  m6 G8 @3 M

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2026-2-25 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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