EMU618社区

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

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

[复制链接]

签到天数: 2051 天

[LV.Master]伴坛终老

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

0 D; A1 j: J) U0 p# y" _当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档4 U8 `$ D% h" c( s0 `  @
* `# e  j. X" @) n* t# x
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧! P4 w: G7 U% u% r

3 Z, [2 k  G7 T. b5 l& e4 W(一)准备工具:
( F. B9 x& v  b) k3 j1 a3 W, Y1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例' A7 e, p4 n. O3 U4 Z8 w
! f$ y' ~: x0 a+ \  |. s. ?
ARMIPS作者是Kingcom9 ]2 r2 k( x( j
ARMIPS源代码github页面:https://github.com/Kingcom/armips
& M% }3 O# f7 F' }4 G! VARMIPS Automated builds页面: http://buildbot.orphis.net/armips. `# k( j6 C, U% V: _9 }
( j, I& x, q. N7 m: e$ ]2 p( e
2.一个将图片转换为二进制bin文件的工具bimbo 1.3. Q& ?0 t" p2 }+ F% T% A- b& u

6 Y7 @% c1 o( }3 Z8 zbimbo 1.3作者是Aleksi Eeben5 m: M5 Q! V' p" F
1 \* R. {! @2 y4 h) A
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
/ [) ~4 f& H8 ?/ g+ S
1 d& Z, J& H* T) {$ K- }0 x4 I3.一个windows自带的画图或其他图形编辑工具& ?. |  Z2 e0 w* `% d' K

6 A' u9 [; q3 E9 {4 @  x% y& ~4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
% V& J" b. P1 z6 ^. n; h: `
# p8 t9 M" C" [* \  @(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
& `0 Z' h& B% p$ F% p$ \
) [5 }/ H) c, g3 b
  K' g" k4 r: n4 ]+ d% O1 q6 x& H8 B7 s! v1 k. u* a" `
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin" l# I2 N# F1 W3 _8 I
/ j& L$ z; l; Y# N2 W' k: V
' A6 x" E$ g) a

, u& v0 b0 C# d' K! p% T' O(4)新建一个文本,我起名为16pic.asm,文本内容如下:3 ~" h3 U" ~" I) m; @9 B) z; I
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000$ J5 N7 X# d5 }3 X- H
  2. .create "16pic_demo.gba",0x080000001 V' `. [* G* q) T* Q4 G% t5 L8 M
  3. ;设置为GBA架构
    6 {2 A5 y, t2 t0 F! s! _
  4. .gba
    , t: u( Q; x! V
  5. ;设置为ARM模式! N; a4 ~+ v/ _* D
  6. .arm% i/ R  s: @( D; p
  7. ;设置起始地址是0x08000000
    " e' q1 w+ _+ D3 N! D7 L
  8. .org 0x08000000- S* i$ [; u4 k" a- W* }6 I4 m
  9. ;创建长度为0xC0文件头数据区域
    4 d7 W" a$ B2 |2 f* {. H
  10. .area 0xC05 k9 o; m+ |8 `
  11. ;填充文件头数据- o( c8 Q, \5 _) |# e( |
  12. .fill 0xC0,0x00
      `1 l; t( R& o) Z- e( j* d# h
  13. ;区域结束6 N6 G6 }3 ]2 b3 \1 d
  14. .endarea
    7 Q( W& K) @  M2 I
  15. ;主程序* P0 K; p3 k0 N5 U
  16. main:
    6 I! Z* ~, t( J- i# i
  17. ;设置屏幕模式3,BG2开启
    9 b8 H4 x! o) G& H# ]2 \! y
  18.         mov r0,0x04000000
    1 r- m% [" I7 k' y5 {/ O- m
  19.         mov r1,0x0400
    ' B3 ~5 r4 c7 X& E6 K$ k
  20.         add r1,r1,0x3
    , [9 Z$ g. i& F' U7 w3 n
  21.         strh r1,[r0]
    + H, B( q/ p2 i  o6 B
  22. ;设置VRAM起始地址; X+ I' {2 i3 H, j
  23.         mov r0,0x06000000+ D+ D( |. }8 r* _# x7 ^' @
  24. ;设置图片地址
    9 M4 ^4 r9 G4 E, ?8 G1 Q" D3 }
  25.         ldr r1,=pic
    # E; g2 d0 g7 L
  26. ;设置数据长度为0x9600, o0 a- A9 u3 {" P
  27.         mov r2,0x96002 R7 ^5 D- q$ r( o
  28. ;传送图片数据到VRAM% b+ d% M; d4 k5 h% c
  29. loopl:0 f* j* d1 W2 x. a; C( q' x5 I
  30.         ldrh r3,[r1],0x20 d  n1 G! o, e* P- h" p
  31.         strh r3,[r0],0x2# i3 ]8 G% J7 z/ D$ y
  32.         subs r2,r2,0x1
    3 T6 t7 l) _  m% _
  33.         bne loopl+ A; p4 j$ q- t+ ]& R$ y) {* O
  34. ;进入死循环
    ) f% R( m! j1 T3 G( s" y5 E/ a8 S" j
  35. infin:0 q0 f$ c' v% m! E
  36.         b infin
    5 N0 I$ o- J. [( G
  37. .pool! X1 M! r+ X+ }& ?! ]
  38. ;导入图片二进制数据! \9 j! t3 l( m" N% ?. G( k
  39. pic:0 t- a7 W0 \% P/ @
  40. .incbin "16pic.bin"
    % O7 g) J% U! j  l
  41. ;在0x08000000地址设置跳转到主程序入口
    $ [3 s: r& d) W% P* C. `* s/ t) K+ C' o
  42. .org 0x08000000
    , V0 b. R/ ?, Y, S# ]1 x1 o
  43.         b main2 D' ^  G5 a) Q2 ]/ w! s" `2 ^# x
  44. ;关闭文件6 n: f/ H1 V* T: N2 t5 Q3 M! z$ M2 e
  45. .close
    ! A( S4 h! `) M+ Q- i- R( h
复制代码

: P+ b: d. H  A" H保存!/ b; u9 f7 E9 w, g% V' L! `

# s& A3 o5 u) ]2 G" Y(5)把16pic.asm和16pic.bin复制到armips目录下
" c/ j3 i% ]3 {+ ^1 E& t( p! E+ ]8 @
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件# X* a- T( x2 {% n
* I+ E8 p9 G7 N. e" }
(7)用GBA模拟器打开16pic_demo.gba观看效果9 X0 O! _$ ?+ J3 P; Z  K

/ s2 }  k/ I' q1 C4 ~  A
* x( `- {* N. ]: s- E
  l+ M7 ]% ^1 b- W- h. O! }; V! P关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
* |# b7 f& S; v5 @+ H

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-8-26 19:06 , Processed in 1.087890 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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