Been a while since I got into this stuff, then recently I came back to mess around some more. Now I'm working on a new tool(still using Lua). this tool will have a remade palette editor, real time level editing/saving/loading tool, real time changing of generic stuff like lives, rings, zone, act, etc. I guess you can say the new tool is like a crazy new debug hooked right into the game. But Tribeam...why?, I don't know.. why not? heh. Anyway while working on this tool, during a boring session, I decided to play around with some ASM and unfortunately I don't have time to be learning a new language. However I did learn the bare basics of how it works and I decided to try something new. Try to get Lua and ASM to communicate between each other. First I started off small, getting Lua to play any sound I want with a simple "Gamesound(id)" function. Then I moved on to changing the music speed whenever I wanted. Then I decided to try something else(though this didn't require any ASM editing) while playing LBZ and curious as to how LBZ changes its chunks instantly, I attempted to make a copy/paste like function in Lua, simply copychunks(x2, y2, x2, y2, x3, y3). It worked fairly well(though still unsure about how to get the screen to refresh). This is when an idea hit me. If someone(me) was to hook Lua in to possibly everything I can imagine would work, this could probably make for an interesting hack by breaking a few limits, spawn items at will, animate chunk changes(I guess like MGZ does?), move objects at will(maybe a floating platform like seen in Mario3 that follows a line path), draw images outside the genesis palette(32bit), mouse interactions, make new objects that Lua specifically uses to make new crazy enemies and bosses, the list goes on.
Before I decide to dive into this further, I got 1 part of me that says "this could work", then there's another part that says "this is stupid and the community will never go for it blah blah".
So I come here asking what does Retro think?
Should I dump this idea in the trash or continue on and see what can come of it?
I'm not suggesting this as a new way for the community to hack, basically just a way for me heh.
Also if I do go forward with this, I'd need an ASM person(or some) to help me
AIZ1_ScreenEvent: jsr DrawTilesAsYouMove(pc) ; start lua checks ; Play sound functionality for Lua Lua_CheckSound: cmpi.b #$1, ($FFFFEF00).w ; check if activator value is 1 bne.s Lua_End ; if not skip Lua_PlaySound: move.w ($FFFFEF02).w,d0 ; else set sound id value to d0 jsr (Play_Sound).l ; play that sound move.w #$0, ($FFFFEF00).w ; change activator value to 0(so it doesn't repeat) Lua_End: ; end lua checks ...
function Game_PlaySound(id) memory.writeword(0xFFEF02, id) memory.writebyte(0xFFEF00, 0x01) end