- Joined: 22 Oct 2017
- Posts: 16
|
SMS/GG disasm using Emulicious, reasm using WLA-DX, RAM problems
Posted: Tue Aug 02, 2022 3:16 am
|
I open the SMS or GG ROM in emulicious, save from the debugger/disassembler in wla-dx format, compile the asm OK, but then when I go to link, I get these types of messages:
/home/user/romhack/z80/drhello/drhello.o: drhello.asm:792: PARSE_STACK: Unresolved reference to "_RAM_E000_".
Calindro on the smspower discord told me Quote you can just add .define _RAM_E000_ $e000 somewhere at the top
however I tried doing this and it requires a ton of them. I tried manually adding but it never ends, and this is for a small game:
.define _RAM_E000_ $e000
.define _RAM_FCC0_ $FCC0
.define _RAM_FD9A_ $FD9A
.define _RAM_FD9F_ $FD9f
.define _RAM_FCAF_ $FCAF
.define _RAM_F3EA_ $F3ea
.define _RAM_F3EB_ $F3eb
.define _RAM_F3E9_ $F3e9
.define _RAM_E4F2_ $e4f2
.define _RAM_E3EC_ $e3ec
.define _RAM_E3E9_ $e3e9
.define _RAM_E00F_ $e00f
.define _RAM_E3EA_ $e3ea
.define _RAM_E3EB_ $e3eB
.define _RAM_E001_ $e001
.define _RAM_E002_ $e002
.define _RAM_E003_ $e003
.define _RAM_E004_ $e004
.define _RAM_E005_ $e005
.define _RAM_E011_ $e011
.define _RAM_E012_ $e012
.define _RAM_E013_ $e013
I had the same issue with Baku Baku gamegear. is there some setting I should be changing within Emulicious so that it generates a RAM map for the object file?
|
- Site Admin
- Joined: 19 Oct 1999
- Posts: 14745
- Location: London
|
Posted: Tue Aug 02, 2022 7:00 am
|
Emulicious ought to be at least defining all the labels it uses, so it’s presumably a bug and Calindro will be fixing it very soon. It’s odd to have so many labels in the $e000..$fff0 range though.
|
- Joined: 22 Oct 2017
- Posts: 16
|
Posted: Tue Aug 02, 2022 7:52 am
|
it does generate most of them at the beginning of the asm file, it seems like it only leaves out a few. I was able to get it to assemble eventually using a combination of what was already there and manually adding.
EDIT: after fixing the .asm of a second game, it's consistent that all of the missing references are in the FXXX and EXXX range
after inspecting mame/sms.cpp, it seems that is not the normal RAM range of 4000 - 47FF
map(0xc000, 0xfff7).rw(FUNC(sms1_state::read_ram), FUNC(sms1_state::write_ram));
map(0xc000, 0xfffb).rw(FUNC(sms_state::read_ram), FUNC(sms_state::write_ram));
the sha1sum matches the original ROM after fixing, so it seems emulicious needs to be updated to account for this range of RAM addresses
|