EMU618社区

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

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

[复制链接]

签到天数: 1949 天

[LV.Master]伴坛终老

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

7 E5 ?6 M* n: |) x) l当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
7 @6 Y" [% D* V+ T8 j1 ]7 `/ p+ p
* ?! @5 K0 r; w. U$ D  A这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧1 d2 N/ e1 x& L+ M$ e) y+ m
( \. B, l* q: D; b
(一)准备工具:( c9 [. l1 h' [) P4 G, I9 W" t
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例0 J6 p7 `& s( l
7 L! |$ X" F8 `" s0 ~0 D# a5 @( i
ARMIPS作者是Kingcom
: s, z3 z' k0 @$ h9 pARMIPS源代码github页面:https://github.com/Kingcom/armips
) h8 d  l, F, p/ k* Y! |ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
! ?2 @( i5 k9 k/ N3 j, d- F& K. V% m" o% h. k) x/ K' l6 G+ M
2.一个将图片转换为二进制bin文件的工具bimbo 1.3" ]( u, t$ t6 l6 ^
3 D  n2 W! m) R; @" F
bimbo 1.3作者是Aleksi Eeben
3 c6 g, l$ w. L( D) R4 y# p# x  x# l
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
0 L+ C" G- E$ K/ C
* p$ a, t; @% a9 {+ `" C" q- l3.一个windows自带的画图或其他图形编辑工具, V- p# ~& o. s/ r7 E/ D5 X( e
: O7 \2 W' Z5 U  I
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
6 A  v! Z1 W3 K" b/ {5 U8 t/ ?9 G0 {; T
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP% d  k) g# h: }. p
0 S. f7 T$ \$ T

" @/ S/ H5 |) K2 }5 ]/ ^2 R0 Z) S$ z) x! Q5 y
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
! T) |4 i$ K" d8 c, a; X" F* C1 T5 L8 ^$ J0 r( c5 S# B( J

* T' p" h6 m5 x9 u* [$ {
% J/ ^( J+ m/ z- X* a* C% O! C/ a(4)新建一个文本,我起名为16pic.asm,文本内容如下:
2 X+ g7 n' z1 X; ^* e* |7 G
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x080000001 I6 B7 j1 ^. X- `
  2. .create "16pic_demo.gba",0x08000000
    ! E% ~$ ?# j! k" M5 m
  3. ;设置为GBA架构2 h& t5 V8 a9 |7 m' W% Z$ a4 i- f
  4. .gba
    % P/ M: J0 E9 w% g& q5 P' v
  5. ;设置为ARM模式' j3 ?0 u. }5 t4 p, ~! [0 L: v6 Z
  6. .arm- M$ k8 k# [- g" B$ s3 b0 i
  7. ;设置起始地址是0x08000000
    - w; X$ Y9 J# T! b' U& a  U
  8. .org 0x080000007 x$ Y" S/ p, g2 l$ w! C
  9. ;创建长度为0xC0文件头数据区域2 K5 g( M7 F: c7 J, ?  Z
  10. .area 0xC05 v" A& g. v/ h% {" ~
  11. ;填充文件头数据
    0 A; _$ `& ~8 k' q  e1 L5 n6 o8 K
  12. .fill 0xC0,0x00
    % [# A1 }4 W- E% O2 V7 t
  13. ;区域结束
    ( Y  m. M: ^6 C
  14. .endarea4 c, r+ k4 B) i. E6 F! X
  15. ;主程序. o3 K" Z) b' q
  16. main:
    3 F; K# {; v( l# [7 \) t
  17. ;设置屏幕模式3,BG2开启
    0 X% q1 Q# C) R* e- A1 z
  18.         mov r0,0x040000004 y( u# P; n5 H- \1 w: A. |# x
  19.         mov r1,0x0400
    6 W, i5 z) M. p+ S& y- S
  20.         add r1,r1,0x3
    : d% O* U$ Q2 h) B! ~2 k$ H- _
  21.         strh r1,[r0]$ L, c, |% w; v1 P  e% j
  22. ;设置VRAM起始地址& I% g. t+ s0 _3 s6 R- j) e
  23.         mov r0,0x06000000
    7 S- N2 f5 A9 }! d4 T, I
  24. ;设置图片地址, U; e# R( H( G" G) Q" T
  25.         ldr r1,=pic
    / R* U/ _7 S! I) Y5 {
  26. ;设置数据长度为0x9600
    - ?  ~  ^* \5 e- _6 p2 G7 {' f
  27.         mov r2,0x96006 t# h$ L( ?. C6 g0 P7 T8 L3 c
  28. ;传送图片数据到VRAM; p) x+ E+ V+ V; M6 w: H
  29. loopl:2 D; K6 \' o- J6 _! x% z. y
  30.         ldrh r3,[r1],0x2
    2 T, \) B1 E, n9 k8 k7 h+ f
  31.         strh r3,[r0],0x2! E# |4 q2 ]3 O: m
  32.         subs r2,r2,0x1
    3 t' `! ~' K/ b; I, j* Y
  33.         bne loopl/ _/ C: b3 C2 ]- ?' T, m) Q/ i
  34. ;进入死循环
    & d$ ~9 h3 @: Q" S/ W
  35. infin:
    + X9 y% {% @/ C# R
  36.         b infin
    9 X$ Z" U  [9 _+ O3 {
  37. .pool2 `( b) t, `: F6 [
  38. ;导入图片二进制数据0 |' Q; w, y  ]& m) _
  39. pic:# v* T& S& W" O' S8 [$ X
  40. .incbin "16pic.bin") i* g5 N' [6 N0 t- \6 K
  41. ;在0x08000000地址设置跳转到主程序入口4 R5 M  J2 Q5 [; B) h
  42. .org 0x080000002 S/ u& E% m, L* y2 H
  43.         b main, q/ F$ e1 S, Y) G
  44. ;关闭文件0 i* d+ n/ }0 Z7 p0 M
  45. .close) o' N' s& A9 ]% t4 }; G% {2 @1 v8 a
复制代码
+ |% @( s( ~9 W# Z9 Y
保存!
% v# |* d9 e' d! E0 z! c" V1 g6 [( g: ]: g5 ?! S1 C6 ~* y4 @: ]
(5)把16pic.asm和16pic.bin复制到armips目录下
% j3 V" b( F2 q" ^2 U
/ m4 O8 T3 ~. S7 Q" f" p(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
# {# d& d& P1 {
4 y7 n) R5 ]. C(7)用GBA模拟器打开16pic_demo.gba观看效果2 e4 Y, k, d7 c

" k  S9 h% \" @* M; P% c) i7 i& b" z! A+ f
, O( g( G# ?( e, s
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
" c# Y, G+ w1 m6 L9 G% j

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-5-14 19:49 , Processed in 1.077149 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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