2017-04-21 42 views
0

这个问题可能不会由任何人负责,但创造者,但我在这里找到了一个Gameboy模拟器:https://www.omnimaga.org/ti-boy-se-game-boy...ti.../official-ti-boy-cse-alpha-thread/ ti-83/84计算器,并想知道它是如何工作的。对我来说这似乎是一个奇迹,因为Gameboy游戏的纯粹内存消耗应该足以使计算器爆炸。我认为这是可能的,因为它可以运行存储在存档内存中的东西(我知道这是可能的,因为Door-CSE)。但是,似乎我可以运行模拟器数小时而不会耗尽内存!任何见解,将不胜感激。某人能够如何在ti计算器上实现一个游戏男孩模拟器?

回答

3

GameBoy有8kB S-RAM和8kB内部视频Ram;总共16kB。 TI-83计算器具有32kB RAM;是GameBoy的两倍。 TI-83 +具有27 kB RAM(160kB Flash ROM),TI-83 + SE具有128kB RAM(1.5MB Flash ROM),TI-84具有128/48kB RAM(1MB Flash ROM),TI-83 + TI-84 + SE具有128/48kB RAM(2MB Flash ROM),TI-84 + CSE具有128kB RAM(4MB Flash ROM),TI-84 + CE具有256kB RAM(4MB Flash ROM)。

正如你可以看到所有这些计算器可以在查看RAM使用情况时运行GameBoy游戏。现在需要存储在计算器上的实际代码:GameBoy盒式存储器的容量在256kB到8MB之间。 TI-83和TI-83 +无法保存这么多的内存,并且无法工作(我似乎无法使用您发送的链接(403错误),但通过快速搜索,我又转到另一页,这些不被支持)。 TI-83 + SE和TI-84可以处理大小为256kB,512kB或1MB的游戏,TI-84 + SE可以处理大小为256kB,512kB,1MB和2MB的游戏以及TI-84 + CSE TI-84 + CE可以处理大小为256kB,512kB,1MB,2MB或4MB的游戏。

GameBoy游戏神奇宝贝红色的弹药大小为512kB(日本)和1MB(美国),因此计算器有足够的空间来处理这个游戏。 GameBoy Color(不支持)有32kB RAM,16kB V-RAM和128kB盒式RAM。墨盒尺寸仍然是最大8MB,因此保持不变。只有TI-84 + CE才能处理这个问题。 GameBoy Advance(SP)(不支持)具有32kB + 96kB V-RAM和256kB D-RAM,因此TI-83或TI-84计算器无法处理该问题,但TI-Nspire可能能够处理这个(最新的型号有100MB用户内存和64MB内存寄存器)。总而言之,该程序令人印象深刻,但内存消耗并不是什么大问题,因为这些计算器似乎有足够的内存来处理所有这些。当然,计算器的操作系统也使用RAM和ROM,所以我不会尝试玩一个4MB的游戏,但小型游戏不应该成为问题。

来源:

GameBoy: https://en.wikipedia.org/wiki/Game_Boy 
GameBoy Color: https://en.wikipedia.org/wiki/Game_Boy_Color 
GameBoy Advance: https://en.wikipedia.org/wiki/Game_Boy_Advance 
GameBoy Advance SP: https://en.wikipedia.org/wiki/Game_Boy_Advance_SP 
Pokémon Red Cartridge size: https://news.ycombinator.com/item?id=3473111 
TI-83: https://en.wikipedia.org/wiki/TI-83_series 
TI-84: https://en.wikipedia.org/wiki/TI-84_Plus_series 
TI-Nspire: https://en.wikipedia.org/wiki/TI-Nspire_series 
TI-Boy SE Beta 0.2.04: http://www.ticalc.org/archives/files/fileinfo/419/41990.html 
+0

那真是太好了!感谢您研究所有细节!这真的很有帮助。即使你没有回答如何实现这一点,你已经明确了它将如何实现。我不会将这个问题标记为几天的答案,但这是一个经过深入研究的答案,我很欣赏这样做的时间。 – Meepo

+2

那么,随着内存消耗的方式,你只需要'翻译'的代码。 GameBoy游戏已经以Assembly编写,因此您只需更改TI计算器特有的部分(如渲染和键输入)即可。 GameBoy使用某种与Intel8080和Z80处理器的组合,而TI计算器也使用Z80,所以你只需要改变特定于Intel8080的东西。一旦你知道如何做到这一点,你可以编写一个程序来改变这个东西,你可以玩GameBoy游戏。 – stefvanschie

+0

哦,真棒,谢谢。 – Meepo