11 March 2016 - Forum Rules

Main Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Whipon

Quote from: Hulta on April 02, 2022, 07:52:31 AM
I read about RetroArch which is a universal emulator that supports all kinds of retro consoles but I didn't understand the part that I need some codes or cores something that this emulator will function for different types of games for example I need a patch for GBC ROMs and a different code/patch for GB ROMs.

You are correct, it's basically a frontend. You need the required cores for each system.

Here's a tutorial in English:

Good luck ;).
Quote from: Hulta on April 01, 2022, 12:39:45 PM
Is there any other who is playing GB/GBC games in 2022 just to suggest a good emulator for win7, or maybe an emulator that support all kind of retro console games?

I don't know any GB / GBC emulators, but, Have you tried Retroarch?.
It supports dozens of systems.
Only downfall is that it might be a bit tricky to configure.

Thanks a lot!.
I will play it again soon ;).
Have a nice weekend.
Quote from: BlackPaladin on November 25, 2021, 10:14:06 PM
English translation for "The Lord of King" (Astyanax) is now released.


Did you have to modify the script?.

Are there any differences with the last patch?.

Personal Projects / Re: The Lord of King / Astyanax
November 14, 2021, 08:27:01 PM
Hello, BlackPaladin.

Just finished the game.
I did not found any errors, the script seems right to me.
Thanks a lot for sharing the patch.

Regards and have a nice week ;).
Personal Projects / Re: The Lord of King / Astyanax
November 03, 2021, 05:25:14 PM
I love Astyanax, allways wondered what the japanese game story was about.

This is great news, keep on going with your excellent job ;).
Programming / Re: GBA Assembly Tool Help
October 23, 2021, 01:49:20 PM
Quote from: FAST6191 on October 23, 2021, 10:06:20 AM
Not entirely sure who told you what there as there are several different things you go between in that, some of which would not require assembly but or some crazy in depth changes (not examination, changes).

Equally "that can open up the sprites and coding/scripts from the GBA ROM". If you have previously dealt with PC games, DS games and newer, things that came on floppy disc or things that came on CD/DVD then you don't have the option to explode a GBA game, outside of some homebrew, into files with nice names, sizes, directories and extensions to poke at.

On "scripts" then you might want to go into what you mean here. For 99% of the GBA library and ROM hacking hacking purposes most will assume by script you mean the text in the game itself. The main deviation being pokemon hacking wherein scripting refers to the actions the NPCs take in the overworld. I have not dealt the most with GBA Rockman/Megaman hacking (some good people there actually -- the battle network 4.5 project would not have been easy) but they had not adopted such terminology. In this case you might be looking towards the latter, and "scripted AI" or similar is not going to be a unknown term.

Anyway most of those things seem reasonable to look at.

Graphics. Most will start by getting a tile editor, opening up the ROM in it, setting one of the GBA modes and pressing down until they have gone through the ROM, and as the GBA has two main modes (technically 4 + different sizes, though one is never really used and another one will not be used by 99.99% of sprites on the GBA) which are typically known as GBA 4bpp and GBA 8bpp but some editors will do differently.
For tile editors/viewers I like crystaltile2, tiled2002 and tiledggd.

There is also compression to consider (the GBA makes extensive use of it). Two main options for this before you break out the fun tools. That being compression search tools (not the greatest fan but they do work) and SWI log tools (you play the game and when it uses the compression feature of the BIOS, assuming it is one of the games that does it, then you get a nice log of SoftWare Interrupts aka BIOS calls to feed the compression tool with the added bonus of them telling you exactly where, what type and how much is needed).
Several tools should be available on the site here under compression tools unlz gba nlz gba and have a look at in general.

I have a larger guide covering GBA and DS ROM hacking,14708.0.html

Everything else there. This is where assembly starts to appear.
You will want to learn to make cheats as most things there will change memory in some way, and do so repeatability and predictably.
I usually recommend for learning to make cheats.
This will allow you to find memory related things which you will want to use in further steps. For instance equipping a weapon might change stats, being hit loses health which in turn will have resulted somewhere not very far back from a hitbox check.
Alternatively if the action results in a graphical change (new sprite say) then the thing what governs the on screen display and behaviour of sprites is the Object Area Memory aka OAM (objects/objs being an alternative name for sprites).

For tracing I have some stuff in the guide above but also suggest
Mind you rather than old vba-sdl-h then no$gba debug is what will form the gold standard for many
The specifications made to go with the emulator (usually referred to as gbatek) are also the main reference for any GBA hardware question save for some of the audio stuff

Though I do like to flank it with
maybe also

no$gba is not the only modern offering though for there is also and some of the stuff done for mgba (granted is what most tend to look at which is more for game specific faults and emulator quirks).

Tracing in general is easy enough in concept. Computers/CPU can do three main things with memory.
1) Read something
2) Write something
3) Execute a line of code there.

Consequently you have three main types of breakpoint (break as in stop program, if you ever wondered what the pause-break button on your keyboard was related to then yeah), or log point if you want to log things for later examination (useful if you don't know when something more unique will happen to a commonly accessed area).
Break on read aka BPR
Break on write aka BPW
Break on execute aka BPE but sometimes in some emulators BOE.
You can also log new functions executed if you want with the general flow there being to do everything but what you want to do (move, idle...) such that the game sees timers tick down, music play, idle animations, animation upkeep and whatnot and then you do the thing you want, that being both a new function and last thing done before you stop and have a look.

If you are unfamiliar with assembly then it is a type of programming. It is unique to every style of CPU, and every class of system you use it on -- the GBA and Wii might both have ARM processors in them but their memory, hardware hanging off it and more besides will be arranged very differently.
You also necessarily have to micromanage things as CPUs are very basic devices when all is said and done, ARM stuff even more than many others (though this is by design and not necessarily a bad one).
If you are not familiar with the basic ideas of loops then probably want to get familiar there. Any programming tutorial will cover these
It will look a bit different in assembly (compare/cmp followed by a branch/b/bne for IF ELSE type setups) but still be the same thing underneath it all.
Anyway I usually figure there are three types of instruction
1) Maths
2) Housekeeping
3) Program flow

1) Maths is obvious. Computers are very good at simple maths instructions (see "everything is adding" that they get newer computer science and electrical engineering types to consider -- adding it adding, subtracting is just a different type of adding, multiplication is adding...)
2) Housekeeping.
When the hardware docs say you have 16 registers (arguably a few less as a few of those are normally used for specific tasks) and each of those are 32 bits (which is a luxury compared to earlier devices -- NES is 8 bit, and has 3 general use registers) it means it.
This means copying data around (mov command), push and pop (frees up and returns the old data when you are done), resetting states and whatever else needs to be done often.
3) Program flow. Adding things up is wonderful but ultimately boring. This is why I told you to get familiar with loops as this is that.

Oh and the GBA has two instruction sets. One called ARM, the other called THUMB which is 16 bit instructions (faster, less space needed) with a few limitations though still using the 32 bit registers.

That should be enough to get started with. Some of this is jumping in at the deep end compared to what a lot of hackers start out with but you can get some real stuff done here.

"jumping/mobility/velocity physics,"
Do have a read of

Sorry for the off topic.

I have been in this wonderful site for years, just wanted to thank you for your excellent responses.
I check the forums everyday and I see you take your time to assist other members with long and detailed explanations.

Regards and congratulations ;).
You can create an account in Imgur:

Upload the picture there, then share the link here.

Regards ;).
Hello, good night.

I use the MAME / MESS / HazeMD debugger to hack Sega Genesis games.
I got used to it in a few days.

This is a post where Pugsy teached me how to use it, several years ago:

Good luck in your new project ;).

You can try other values until you find the correct one.

Graphics hacks are not my thing :P.
Quote from: thepirategamerboy12 on January 30, 2021, 02:14:12 PM
Thanks for the reply.  One thing, I did look at the game in a savestate editor comparing the US and JP versions of Pebble Beach and both versions use the exact same palette in-game, I guess with the colors just placed in different spots.  If I simply edit the palette, it'll mess up things like the trees.

You can try comparing both save states with a hex editor.
Then you copy some parts of one of them in the other one.
Load the save state and see if there's any changes.
With patience you can find the RAM addresses you're looking for.

If you are using Kega, or any Gens version, its save state format (GS*) has a usefull trick.

Any address you find by comparing both save states can be converted to a RAM address by adding 0xFEDB88 to it.

Good luck ;).

Have a nice week.
Thanks a lot, Phonymike.

I'll give it a try in the next hack ;).

While I never did graphics or palette hacks, I do have some experience doing Sega Genesis asm hacks.
I use the MESS / MAME debugger for it.

First you will need to find some RAM addresses related to the colors you want to hack.
Then you use these addresses in the debugger. Some 68k asm understanding is needed.

When you find the related instruction or values that need to be changed, its the time to open the ROM with your favourite hex editor to modify it.

Sorry if I cannot help you further, as I said I never did graphics hacks.

I wish you good luck with this project.

Regards ;).
Thank you very much, FAST6191, that was a wonderful explanation ;).

It turns out that the opcode I got through trial and error in VBA was indeed invalid.
The correct one was the one I found through NO$GBA.

Correct Opcode:

0802974E 0A88 E08A => B1F0 29FB (F0B1 FB29 BL 080DADA4)

I tested the above opcode in VBA and NO$GBA and it works perfectly now, HP restore also works.

I don't know why it didn't work before.

I wonder if there's an easier method to get the proper opcodes for the BL Thumb instruction.
I have a list of Thumb hex opcodes, but I had to figure out the last two bytes of the instruction.
(Edited those bytes until I got the desired address).

Have a nice weekend  :).

I'm trying to do a simple ASM hack to the GBA game Castlevania - Harmony of Dissonance.

I want to be able to change weapons each time I use a potion, high potion or elixir.

My first approach was to just replace some of the code involved in using these items:

(NOTE: Opcodes are reversed, as they are stored that way in the ROM).


8242 2ED2 0125 D888 1018 0880 => A07B 0130 0728 00D1 0120 A073

7BA0 LDRB R0, [R4 + #0e]
3001 ADD R0, 01
2807 CMP R0, 07
D100 BNE 000001a6 (00)
2001 MOV R0, 01
73A0 STRB R0, [R4 + #0e]

I did the above hack several years ago and worked very well. This time I wanted to keep the original code and jump to a sub routine instead.

I found lots of free space at the offset 080DADA4.

So I wanted to insert a BL at offset 0802974E

I had to modify the opcode since it made No$GBA to stop because the one I used with VBA was read as invalid. I don't understand why.

0A88 E08A => B1F0 29FB (F0B1 FB29 BL 080DADA4) (No$GBA) - B1F0 29DB (F0B1 DB29) (VBA)


7BA0 LDRB R0, [R4 + #0e]
3001 ADD R0, 01
2807 CMP R0, 07
D100 BNE 000001a6 (00)
2001 MOV R0, 01
73A0 STRB R0, [R4 + #0e]
0A88    LDRH R2, [R1, #000] (Replaced instruction at 0802974E)
E08A    LDRH R0, [R4, #016] (Replaced instruction at 08029750)
7047    BX R14 (Return to 8029752)

The problem I'm facing is that the jump never happens. It just continues execution at next instruction (8029752).

I tried looking for help in several documents I found in the web, with no luck. I can't figure what I'm doing wrong.

Also I searched in several trace text files, in hope to find if I'm missing some opcodes, but it seems that's not the issue.

I wanted to learn how to jump and return from subroutines to improve my GBA hacking skills.

I'll really appreciate if somebody can lend me a hand.

Thanks in advance ;).

Help Wanted Ads / Re: [JPN -> ENG] [MD] Surging Aura
November 19, 2020, 09:03:51 AM
Quote from: RedComet on November 18, 2020, 11:32:15 PM
It's a work-in-progress and being actively worked on as time permits, but 2020 has been (and continues to be) a hell of a ride for all of us. :-\

I second Aqualung, best wishes on this project, the remanining of 2020 and the next year.

I learnt of this game almost 20 years ago and I've been waiting to play it since then.

Keep up the good work ;).
This is great, Cyneprepou4uk, these are all welcome changes.
Thank you, and keep up the good work ;).
Quote from: Cyneprepou4uk on August 06, 2020, 01:16:35 PM
A little demo of this project

You can check out a couple of cutscenes at the beginning of the game, and look at the menus before the match.

It looks awesome!. Congratulations!. Looking forward for the final release ;).
You even upgraded the mapper to MMC5. That increases the free rom space a lot.
Keep on going the good work.
Have a nice weekend ;).
Gaming Discussion / Re: PC Gaming Miscellany
June 12, 2020, 01:22:31 PM
Quote from: Spooniest on June 11, 2020, 08:42:53 PM
I dunno which version you have, but the Standard Free version I got has System Clone behind a paywall.

Yes, System Clone is avalaible in the paid version.
I allways use "Disk Clone" wich is avalaible for free.
Good luck ;).
Gaming Discussion / Re: PC Gaming Miscellany
June 11, 2020, 03:12:18 PM
Quote from: Spooniest on June 11, 2020, 11:45:26 AM
I don't think I can do that without physical media to copy my original installation from. My PC came used from Newegg with a copy of Windows 7 installed, and no disc to restore from, and I later upgraded to Windows 10 when Microsoft was offering it for free, without any backup of Windows 7 to restore to. Or, is there a way to have Windows install on my SSD using Windows Security's Fresh Start feature?

I successfully cloned all my hard disks to new SDD using Aomei Backuper.
Its free.
When you open the app you have to open the "Tools" section, then choose "Create Boot Disk" (Maybe its listed differently, I have the Spanish language by default. This way you create a bootable flash drive and boot the system with it to clone the drive.

You can download the free version here:

You can also do the same through Windows, but I prefer to do it with a bootable usb, just in case.