Mattress Monkeys / ELF format

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JetSetIlly

https://forums.atariage.com/topic/344323-fluid-simulation-for-new-2600-game-concept/?do=findComment&comment=5489943

Mattress Monkeys is the first public release of a game that uses the new ELF format. This new 2600 format facilitates the relocation of ARM code in accordance with the specific memory requirements of the host cartridge.

The problem with DPC+ and CDFJ is that they are specific to a particular cartridge type. In practical terms this means that game binaries are specific to either the Harmony or the Uno/PlusCart. ELF solves that problem by rewriting address references in the ARM program as part of the loading process.

The goal here is for ARM games to be usable on a variety of cartridge types with different memory requirements. Whether that be UnoCart, PlusCart or other cheaper alternatives that have yet to be developed. I hope that the Harmony class of cartridges will be updated to support ELF too, but that remains to be seen.



Mattress Monkeys also uses something called StrongARM. StrongARM can be thought of as a suite of functions that can be called from the ARM program. Each function causes the cartridge to stuff the data bus with 6507 instructions. In other words, Mattress Monkeys is a complete bus-stuffing game. There is no bank-switching as such, just an ever continuous and ever changing stream of instructions.


So, memory relocation and practical bus-stuffing. Two big milestones in 2600/ARM game development. Both technical achievements should be credited to ZackAttack and I think is something to be celebrated :-)
https://github.com/JetSetIlly/Gopher2600
@JetSetIlly@mastodon.gamedev.place
@jetsetilly.bsky.social

Andrew Davie

Incredible. This opens up so much potential. I hope the bootstrapping for developers isn't too difficult. Documentation, example code, etc. It deserves to be developed for.

JetSetIlly

Quote from: Andrew Davie on 25 Jun 2024, 04:29 PMIncredible. This opens up so much potential. I hope the bootstrapping for developers isn't too difficult. Documentation, example code, etc. It deserves to be developed for.

Zack is working on documentation now I believe.

And needless to say, full support is available in Gopher2600 with the usual performance profiling we've come to expect for ARM development :-)
https://github.com/JetSetIlly/Gopher2600
@JetSetIlly@mastodon.gamedev.place
@jetsetilly.bsky.social

Zack

The documentation is still a way off. I'm also working on creating a sort of standard library that does most of the heavy lifting. Stuff like asset parsing scripts, display kernels, sound engines, fixed point math, etc.

Mattress Monkeys doesn't use bus-stuffing. Wushu Masters and the Ray Casting demo do.

JetSetIlly

Quote from: Zack on 28 Jun 2024, 01:39 PMMattress Monkeys doesn't use bus-stuffing. Wushu Masters and the Ray Casting demo do.
I stand corrected. I assumed Mattress Monkeys did too.
https://github.com/JetSetIlly/Gopher2600
@JetSetIlly@mastodon.gamedev.place
@jetsetilly.bsky.social