EMU618社区

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

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

[复制链接]

签到天数: 2051 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式

! k& G$ g. }7 X当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
1 v, A0 ^6 I8 K  `/ v
  E* B- s. x" z( A这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
! H$ V' R. W/ ~3 P3 o
# \+ F# A( [" X" K$ _2 F(一)准备工具:
9 W  |9 l5 u4 G, m. D2 p3 T1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
/ m" R- K8 w: y% W! Z( O7 ^( I5 e3 [( n+ ]
ARMIPS作者是Kingcom1 F+ j5 |$ Y) f; ?2 o+ I3 k
ARMIPS源代码github页面:https://github.com/Kingcom/armips
6 z* c3 s. K; P# u# `ARMIPS Automated builds页面: http://buildbot.orphis.net/armips' G% R8 {( f) ?2 P' }

2 w; E/ a* ^% r; o2.一个将图片转换为二进制bin文件的工具bimbo 1.3" a' Y5 B9 T! f/ F# W* B

7 h8 M  o# x0 w4 _% j$ z, P8 M5 P1 ]& hbimbo 1.3作者是Aleksi Eeben1 Y3 B" m4 @) j2 n

' X0 Q6 `& I( p, }) o- pbimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=1675 l  p7 d2 T& A7 o: `  T
) Q/ x1 w% D3 F0 \
3.一个windows自带的画图或其他图形编辑工具
% g6 n, r' V  x9 ?" z: c! w5 c, C' B5 R/ d1 {% Q1 D, x
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
, a. |- J2 s% t, F$ k) z+ ?3 \% z, Q' I1 I. q$ l
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
" x6 f* n, T! `. A  V! p
% w9 U: A3 N  E, f( {
3 _2 Z9 F, y5 k% a. c
) j- r2 U& C; |) h! _+ Y% [% t(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin4 D2 R0 a$ R0 U3 i
: c3 c0 w5 I# O; |% E9 ?

1 ]) h, ~7 ]3 U# R! `
- p: w3 P8 k/ m% _( K) w" I: g, e(4)新建一个文本,我起名为16pic.asm,文本内容如下:
7 l7 U! r' E) \, m
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    # D" r1 c3 G/ ?! S: U: J2 e* G
  2. .create "16pic_demo.gba",0x080000004 Z8 X  j, L, ?0 o9 X
  3. ;设置为GBA架构9 ?" v0 s# {/ I, V+ p4 O
  4. .gba& E, m( y0 |: A
  5. ;设置为ARM模式$ s& ^( n* j! G( q6 o, i
  6. .arm6 e1 v8 h3 q+ K' e( y3 a( }
  7. ;设置起始地址是0x08000000% t" r' b! f: a7 W# d
  8. .org 0x08000000
    + b6 |& ^5 x% H! m: {" J3 B" h. V
  9. ;创建长度为0xC0文件头数据区域- I( g4 I' K+ |; B- V* a
  10. .area 0xC0
      @8 G+ P5 Z9 T
  11. ;填充文件头数据
    ) g5 b/ I7 N1 W; _9 v: k% B7 m
  12. .fill 0xC0,0x00
    & E- D' K/ i. Y' u' d( Q4 f1 m  A
  13. ;区域结束- l1 k8 p; j+ Z) Q- A5 q6 C
  14. .endarea
    0 C1 z$ g) ?0 L, s
  15. ;主程序
      K* R" q" \  a" z% R. w
  16. main:  ~% q4 G  k! ~. G
  17. ;设置屏幕模式3,BG2开启
    ! q" j5 Q3 d4 f  r( G/ D" w
  18.         mov r0,0x040000006 C% C' g* ]) w9 C. i7 n/ F% r5 S
  19.         mov r1,0x0400
    ! R( q6 z, F7 D2 z
  20.         add r1,r1,0x39 I# \: Z$ w, Z$ B& [+ q
  21.         strh r1,[r0], o  c$ ~0 H, O' V% D/ [5 r$ u
  22. ;设置VRAM起始地址
    2 k' m  p5 ~8 u
  23.         mov r0,0x06000000
    * ]1 R/ `/ x9 x4 a4 ~# W
  24. ;设置图片地址
    - G2 \$ \( @( F4 x! X( A' |, t
  25.         ldr r1,=pic
    # {1 {" n) Q# s1 I
  26. ;设置数据长度为0x9600
    , o  N2 E- ?4 {% D! s) O2 C9 q
  27.         mov r2,0x9600  C+ E5 H. Q0 O" R% X' n9 a
  28. ;传送图片数据到VRAM3 ~: ]2 |  \* J$ G% n
  29. loopl:
    * F6 Y& X3 F) D, e0 e* @9 L+ b
  30.         ldrh r3,[r1],0x2
    # a8 t* g' |1 P0 U
  31.         strh r3,[r0],0x2( r! z2 ^9 a5 j) R/ E, i" q2 p9 c
  32.         subs r2,r2,0x10 \7 a( Z4 U$ J: A! ^6 }
  33.         bne loopl' }2 R$ v" n6 {8 J) T
  34. ;进入死循环
    - T% W% l" k1 L: Z) }0 o
  35. infin:& u8 K4 T- A; r5 l+ v+ S7 j
  36.         b infin: u7 B5 s9 l* ?1 Q6 R% S8 S$ ]
  37. .pool+ d% B# M8 f0 R/ W
  38. ;导入图片二进制数据. n/ [* g  H+ h4 \( P
  39. pic:) Y: i/ M$ Y& \
  40. .incbin "16pic.bin"
    $ N- b- ~4 m1 `. M" p
  41. ;在0x08000000地址设置跳转到主程序入口
    % n4 f4 W# T4 v+ D9 s
  42. .org 0x08000000
    $ B- y0 f) m& \8 w/ q
  43.         b main5 Z9 T2 H, K, e. N8 x; W
  44. ;关闭文件# q" I8 i2 h: J; Y( L
  45. .close6 X, h# D. K; ^0 I; ]$ O
复制代码
: V0 [5 r4 I9 G
保存!
; \" [0 Y9 u0 k8 Q+ C% p% W$ W. y2 ]
(5)把16pic.asm和16pic.bin复制到armips目录下
2 o# n) {. D5 m3 R, j7 C0 G. n# U* z$ [" a+ |4 x
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
5 J: m4 p/ q0 T. F5 B; d, p9 p& i. l  x; j- G( S9 d/ N; ]
(7)用GBA模拟器打开16pic_demo.gba观看效果
4 u4 i; s2 T( Z6 d1 [* T" e* ^, l

6 Z8 Z/ m9 {: @+ G( k. |
8 X/ Z1 l' J& z+ z0 X% z关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
/ J" Q: p1 J: b! T

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-8-26 18:56 , Processed in 1.120118 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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